Browse Source

收费管理没有收费信息处理

大数据与最优化研究所 8 months ago
parent
commit
da8c5a5349

+ 43 - 2
src/main/java/com/xjrsoft/module/student/service/impl/PbVXsxxsfytbServiceImpl.java

@@ -1,6 +1,7 @@
 package com.xjrsoft.module.student.service.impl;
 
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -13,6 +14,7 @@ import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.base.entity.BaseClass;
 import com.xjrsoft.module.base.entity.BaseSemester;
+import com.xjrsoft.module.base.mapper.BaseSemesterMapper;
 import com.xjrsoft.module.student.dto.*;
 import com.xjrsoft.module.student.entity.BaseStudent;
 import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
@@ -24,10 +26,14 @@ import com.xjrsoft.module.student.service.IPbVXsxxsfytbService;
 import com.xjrsoft.module.student.vo.*;
 import com.xjrsoft.module.teacher.entity.XjrUser;
 import lombok.AllArgsConstructor;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.ObjectUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.time.LocalDate;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -47,10 +53,26 @@ public class PbVXsxxsfytbServiceImpl extends MPJBaseServiceImpl<PbVXsxxsfytbMapp
     private final PbVXsxxsfytbMapper pbVXsxxsfytbMapper;
     private final PbSemesterConfigMapper pbSemesterConfigMapper;
 
+    private final BaseSemesterMapper baseSemesterMapper;
+
     @Override
     public PersonalPortraitFeeInformationVo listCostInformation(PersonalPortraitFeeInformationDto dto) {
+        LocalDate currentDate = LocalDate.now();
+
+        // 获取年份
+        int year = currentDate.getYear();
+        if(StringUtils.isEmpty(dto.getYear())){
+            dto.setYear(year + "");
+        }
+
+        LambdaQueryWrapper<BaseSemester> baseSemesterLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        baseSemesterLambdaQueryWrapper
+                .select(BaseSemester.class, x -> VoToColumnUtil.fieldsToColumns(BaseSemester.class).contains(x.getProperty()))
+                .like(BaseSemester::getName, dto.getYear())
+                ;
+        List<BaseSemester> baseSemesters = baseSemesterMapper.selectList(baseSemesterLambdaQueryWrapper);
 
-        //查出所有的消费记录
+        // 查出所有的消费记录
         MPJLambdaWrapper<PbVXsxxsfytb> pbVXsxxsfytbMPJLambdaWrapper = new MPJLambdaWrapper<>();
         pbVXsxxsfytbMPJLambdaWrapper
                 .selectAs(BaseSemester::getId, PbVXsxxsfytbPersonal::getBaseSemester)
@@ -60,10 +82,29 @@ public class PbVXsxxsfytbServiceImpl extends MPJBaseServiceImpl<PbVXsxxsfytbMapp
                 .leftJoin(PbSemesterConfig.class, PbSemesterConfig::getBeltcode, PbVXsxxsfytb::getBeltcode)
                 .leftJoin(BaseSemester.class, BaseSemester::getId, PbSemesterConfig::getBaseSemesterId)
                 .eq(dto.getUserId() != null && dto.getUserId() > 0, XjrUser::getId, dto.getUserId())
-                .like(dto.getYear() != null && !dto.getYear().equals(""), PbVXsxxsfytb::getBeltcode, dto.getYear())
+                .like(dto.getYear() != null && !dto.getYear().isEmpty(), PbVXsxxsfytb::getBeltcode, dto.getYear())
         ;
         List<PbVXsxxsfytbPersonal> pbVXsxxsfytbPersonalList = this.selectJoinList(PbVXsxxsfytbPersonal.class, pbVXsxxsfytbMPJLambdaWrapper);
 
+        if(CollectionUtils.isEmpty(pbVXsxxsfytbPersonalList)){
+            pbVXsxxsfytbPersonalList = new ArrayList<>();
+            for (BaseSemester b : baseSemesters){
+                PbVXsxxsfytbPersonal pbVXsxxsfytbPersonal = new PbVXsxxsfytbPersonal();
+                pbVXsxxsfytbPersonal.setBaseSemester(b.getId().toString());
+                pbVXsxxsfytbPersonal.setBaseSemesterCn(b.getName());
+                pbVXsxxsfytbPersonal.setBeltcode("无缴费");
+                pbVXsxxsfytbPersonal.setBeltname("无缴费");
+                pbVXsxxsfytbPersonal.setFeeitemcode("无缴费");
+                pbVXsxxsfytbPersonal.setFeeitemname("无缴费");
+                pbVXsxxsfytbPersonal.setFactar(BigDecimal.ZERO);
+                pbVXsxxsfytbPersonal.setFactrecarmny(BigDecimal.ZERO);
+                pbVXsxxsfytbPersonal.setAdjustmny(BigDecimal.ZERO);
+                pbVXsxxsfytbPersonal.setArrearagemny(BigDecimal.ZERO);
+                pbVXsxxsfytbPersonal.setJfzt("已缴费");
+                pbVXsxxsfytbPersonalList.add(pbVXsxxsfytbPersonal);
+            }
+        }
+
         // 统计总消费金额
         BigDecimal totalConsumption = pbVXsxxsfytbPersonalList.stream()
                 .map(p -> p.getFactrecarmny().add((p.getArrearagemny() == null ? BigDecimal.ZERO : p.getArrearagemny())))