xda 2 роки тому
батько
коміт
eee9107559

+ 30 - 0
src/main/java/com/winhc/repal/enums/OverdueStatusEnum.java

@@ -0,0 +1,30 @@
+package com.winhc.repal.enums;
+
+/**
+ * @Description: OverdueStatusEnum
+ * @Author: xda
+ * @Date: 2022/4/14 16:41
+ */
+public enum OverdueStatusEnum {
+
+    /**
+     *  逾期状态
+     */
+    正常(1),
+    即将逾期(2),
+    已逾期(3),
+    已结清(4),
+    已终止(5);
+
+    private final Integer code;
+
+
+    OverdueStatusEnum(Integer code) {
+        this.code = code;
+    }
+
+    public Integer getCode() {
+        return this.code;
+    }
+
+}

+ 1 - 1
src/main/java/com/winhc/repal/model/dto/GetRepalBillPageDTO.java

@@ -36,7 +36,7 @@ public class GetRepalBillPageDTO extends PageRequest {
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     private LocalDate endDate;
 
-    @ApiModelProperty(value = "账款逾期状态,[1]进行中,[2]即将逾期(7天内),[3]已逾期.[4]已结清。[5]已终止")
+    @ApiModelProperty(value = "账款逾期状态,[1]正常,[2]即将逾期(7天内),[3]已逾期.[4]已结清。[5]已终止")
     private Integer overdueStatus;
 
     @ApiModelProperty(value = "[1]风险预警。[2]财产提醒。[3]评级动态。[4]逾期动态")

+ 20 - 13
src/main/java/com/winhc/repal/service/impl/RepalBillServiceImpl.java

@@ -162,7 +162,7 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
         }
         LOGGER.info("allFlag:[{}]", allFlag);
         TotalMoneyBO totalMoneyBO;
-        TotalMoneyBO overdueBO;
+        TotalMoneyBO overdueBO = new TotalMoneyBO();
         TotalMoneyBO totalBO;
         BillPageBO totalQueryBO = new BillPageBO();
         BillPageBO totalOverdueQueryBO = new BillPageBO();
@@ -170,26 +170,33 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
         BeanUtils.copyProperties(billPageBO, totalQueryBO);
         BeanUtils.copyProperties(billPageBO, totalOverdueQueryBO);
         BeanUtils.copyProperties(billPageBO, totalSumBO);
-        totalQueryBO.setOverdueStatus(RepalBillStatusEnum.PROGRESSING.getCode());
-        totalOverdueQueryBO.setOverdueStatus(RepalBillStatusEnum.OVERDUE.getCode());
-        totalSumBO.setOverdueStatus(null);
+        totalQueryBO.setOverdueStatus(Objects.isNull(dto.getOverdueStatus()) ? 6 : dto.getOverdueStatus());
+        if (Objects.isNull(dto.getOverdueStatus()) || OverdueStatusEnum.已逾期.getCode().equals(dto.getOverdueStatus())) {
+            totalOverdueQueryBO.setOverdueStatus(OverdueStatusEnum.已逾期.getCode());
+        }
         if (allFlag) {
             totalQueryBO.setUserId(null);
             totalOverdueQueryBO.setUserId(null);
             totalSumBO.setUserId(null);
-            totalMoneyBO = repalBillMapper.getTotalMoneyByGroup(totalQueryBO);
-            overdueBO = repalBillMapper.getTotalMoneyByGroup(totalOverdueQueryBO);
-            totalBO = repalBillMapper.getTotalMoneyByGroup(totalSumBO);
-        } else {
-            // 只查询自己负责的
-            totalMoneyBO = repalBillMapper.getTotalMoneyByGroup(totalQueryBO);
+        }
+        totalMoneyBO = repalBillMapper.getTotalMoneyByGroup(totalQueryBO);
+        if (OverdueStatusEnum.已逾期.getCode().equals(totalOverdueQueryBO.getOverdueStatus())) {
             overdueBO = repalBillMapper.getTotalMoneyByGroup(totalOverdueQueryBO);
-            totalBO = repalBillMapper.getTotalMoneyByGroup(totalSumBO);
         }
+        totalBO = repalBillMapper.getTotalMoneyByGroup(totalSumBO);
         infoVO.setTotalBillMoneyStr(totalMoneyBO.getTotalMoney().stripTrailingZeros().toPlainString());
         infoVO.setTotalBillCount(totalMoneyBO.getTotalCount());
-        infoVO.setTotalOverdueCount(overdueBO.getTotalCount());
-        infoVO.setTotalOverdueStr(overdueBO.getTotalMoney().stripTrailingZeros().toPlainString());
+        if (OverdueStatusEnum.已逾期.getCode().equals(totalOverdueQueryBO.getOverdueStatus())) {
+            infoVO.setTotalOverdueCount(overdueBO.getTotalCount());
+            infoVO.setTotalOverdueStr(overdueBO.getTotalMoney().stripTrailingZeros().toPlainString());
+        } else {
+            infoVO.setTotalOverdueStr("0");
+            infoVO.setTotalOverdueCount(0);
+        }
+        if (OverdueStatusEnum.已结清.getCode().equals(dto.getOverdueStatus()) || OverdueStatusEnum.已终止.getCode().equals(dto.getOverdueStatus())) {
+            infoVO.setTotalBillCount(0);
+            infoVO.setTotalBillMoneyStr("0");
+        }
         infoVO.setTotalCount(totalBO.getTotalCount());
         infoVO.setTotalStr(totalBO.getTotalMoney().stripTrailingZeros().toPlainString());
         repalBillPage = repalBillMapper.getRepalBillPage(repalBillPage, billPageBO);

+ 10 - 14
src/main/resources/mapper/RepalBillMapper.xml

@@ -106,17 +106,23 @@
             AND bill.REPAL_BILL_TYPE = #{repalBillType}
             <if test="overdueStatus != null">
                 <if test="overdueStatus == 1">
-                    AND bill.REPAL_BILL_STATUS NOT IN (3,4)
+                    AND bill.REPAL_BILL_STATUS = 1
                 </if>
                 <if test="overdueStatus == 2">
-                    AND bill.REPAL_BILL_STATUS = 2
+                    AND bill.REPAL_BILL_STATUS = 1 AND bill.END_DATE <![CDATA[<=]]> date_add(CURDATE(), interval 7 day) and bill.END_DATE >= CURDATE()
                 </if>
                 <if test="overdueStatus == 3">
-                    AND bill.REPAL_BILL_STATUS = 3
+                    AND bill.REPAL_BILL_STATUS = 2
                 </if>
                 <if test="overdueStatus == 4">
+                    AND bill.REPAL_BILL_STATUS = 3
+                </if>
+                <if test="overdueStatus == 5">
                     AND bill.REPAL_BILL_STATUS = 4
                 </if>
+                <if test="overdueStatus == 6">
+                    AND bill.REPAL_BILL_STATUS IN (1,2)
+                </if>
             </if>
             <if test="diagnosisGrade != null">
                 <if test='diagnosisGrade == "E"'>
@@ -191,17 +197,7 @@
         </where>
         ORDER BY bill.ID DESC
     </select>
-    
-    
-<!--    <select id="getTotalMoneyByGroup" resultType="com.winhc.repal.model.bo.TotalMoneyBO">-->
-<!--        SELECT COUNT(*) AS totalCount, IFNULL(SUM(RECEIVABLE),0) AS totalMoney FROM REPAL_BILL-->
-<!--        WHERE REPAL_GROUP_ID = #{repalGroupId}-->
-<!--        <if test="repalBillStatus != null">-->
-<!--            AND REPAL_BILL_STATUS = #{repalBillStatus}-->
-<!--        </if>-->
-<!--        AND REPAL_BILL_TYPE = #{repalBillType}-->
-<!--        AND REPAL_BOOK_ID = #{repalBookId}-->
-<!--    </select>-->
+
 
     <select id="getTotalMoneyByUser" resultType="com.winhc.repal.model.bo.TotalMoneyBO">
         SELECT COUNT(*) AS totalCount, IFNULL(SUM(bill.RECEIVABLE), 0) AS totalMoney  FROM REPAL_RESPONSIBLE_PERSON AS person