瀏覽代碼

查询汇总

xda 2 年之前
父節點
當前提交
0988906774

+ 3 - 9
src/main/java/com/winhc/repal/repository/RepalBillMapper.java

@@ -45,18 +45,12 @@ public interface RepalBillMapper extends BaseMapper<RepalBill> {
 
 
     /**
     /**
      * 获取对应类型的总金额和笔数
      * 获取对应类型的总金额和笔数
-     * @param repalGroupId repalGroupId
-     * @param repalBillType repalBillType
-     * @param repalBillStatus repalBillStatus
-     * @param repalBookId repalBookId
+     * @param billPageBO billPageBO
      * @return com.winhc.repal.model.bo.TotalMoneyBO
      * @return com.winhc.repal.model.bo.TotalMoneyBO
      * @author xda
      * @author xda
-     * @date 2022/4/30 09:25
+     * @date 2022/5/23 19:25
      */
      */
-    TotalMoneyBO getTotalMoneyByGroup(@Param("repalGroupId") Long repalGroupId,
-                                      @Param("repalBillType") Integer repalBillType,
-                                      @Param("repalBillStatus") Integer repalBillStatus,
-                                      @Param("repalBookId") Long repalBookId);
+    TotalMoneyBO getTotalMoneyByGroup(BillPageBO billPageBO);
 
 
     /**
     /**
      * 获取用户所负责的账款信息金额和count
      * 获取用户所负责的账款信息金额和count

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

@@ -126,26 +126,6 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
         RepalBillInfoVO infoVO = new RepalBillInfoVO();
         RepalBillInfoVO infoVO = new RepalBillInfoVO();
         boolean allFlag = repalRolePermissionService.checkUserPermission(userId,
         boolean allFlag = repalRolePermissionService.checkUserPermission(userId,
                 RepalBillTypeEnum.RECEIVABLE.getCode().equals(dto.getRepalBillType()) ? PermissionEnum.QUERY_ALL_RECEIVABLE.getCode() : PermissionEnum.QUERY_ALL_RECEIPT.getCode());
                 RepalBillTypeEnum.RECEIVABLE.getCode().equals(dto.getRepalBillType()) ? PermissionEnum.QUERY_ALL_RECEIVABLE.getCode() : PermissionEnum.QUERY_ALL_RECEIPT.getCode());
-        LOGGER.info("allFlag:[{}]", allFlag);
-        TotalMoneyBO totalMoneyBO;
-        TotalMoneyBO overdueBO;
-        TotalMoneyBO totalBO;
-        if (allFlag) {
-            totalMoneyBO = repalBillMapper.getTotalMoneyByGroup(groupId, dto.getRepalBillType(), RepalBillStatusEnum.PROGRESSING.getCode(), dto.getRepalBookId());
-            overdueBO = repalBillMapper.getTotalMoneyByGroup(groupId, dto.getRepalBillType(), RepalBillStatusEnum.OVERDUE.getCode(), dto.getRepalBookId());
-            totalBO = repalBillMapper.getTotalMoneyByGroup(groupId, dto.getRepalBillType(), null, dto.getRepalBookId());
-        } else {
-            // 只查询自己负责的
-            totalMoneyBO = repalBillMapper.getTotalMoneyByUser(userId, groupId, dto.getRepalBillType(), RepalBillStatusEnum.PROGRESSING.getCode(), dto.getRepalBookId());
-            overdueBO = repalBillMapper.getTotalMoneyByUser(userId, groupId, dto.getRepalBillType(), RepalBillStatusEnum.OVERDUE.getCode(), dto.getRepalBookId());
-            totalBO = repalBillMapper.getTotalMoneyByUser(userId, groupId, dto.getRepalBillType(), null, dto.getRepalBookId());
-        }
-        infoVO.setTotalBillMoneyStr(totalMoneyBO.getTotalMoney().stripTrailingZeros().toPlainString());
-        infoVO.setTotalBillCount(totalMoneyBO.getTotalCount());
-        infoVO.setTotalOverdueCount(overdueBO.getTotalCount());
-        infoVO.setTotalOverdueStr(overdueBO.getTotalMoney().stripTrailingZeros().toPlainString());
-        infoVO.setTotalCount(totalBO.getTotalCount());
-        infoVO.setTotalStr(totalBO.getTotalMoney().stripTrailingZeros().toPlainString());
         // 分页数据
         // 分页数据
         Page<RepalBill> repalBillPage = new Page<>(dto.getPageNum(),dto.getPageSize());
         Page<RepalBill> repalBillPage = new Page<>(dto.getPageNum(),dto.getPageSize());
         BillPageBO billPageBO = new BillPageBO();
         BillPageBO billPageBO = new BillPageBO();
@@ -175,6 +155,38 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
                     break;
                     break;
             }
             }
         }
         }
+        LOGGER.info("allFlag:[{}]", allFlag);
+        TotalMoneyBO totalMoneyBO;
+        TotalMoneyBO overdueBO;
+        TotalMoneyBO totalBO;
+        BillPageBO totalQueryBO = new BillPageBO();
+        BillPageBO totalOverdueQueryBO = new BillPageBO();
+        BillPageBO totalSumBO = new BillPageBO();
+        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);
+        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);
+            overdueBO = repalBillMapper.getTotalMoneyByGroup(totalOverdueQueryBO);
+            totalBO = repalBillMapper.getTotalMoneyByGroup(totalSumBO);
+        }
+        infoVO.setTotalBillMoneyStr(totalMoneyBO.getTotalMoney().stripTrailingZeros().toPlainString());
+        infoVO.setTotalBillCount(totalMoneyBO.getTotalCount());
+        infoVO.setTotalOverdueCount(overdueBO.getTotalCount());
+        infoVO.setTotalOverdueStr(overdueBO.getTotalMoney().stripTrailingZeros().toPlainString());
+        infoVO.setTotalCount(totalBO.getTotalCount());
+        infoVO.setTotalStr(totalBO.getTotalMoney().stripTrailingZeros().toPlainString());
         repalBillPage = repalBillMapper.getRepalBillPage(repalBillPage, billPageBO);
         repalBillPage = repalBillMapper.getRepalBillPage(repalBillPage, billPageBO);
         voPage.setTotalPage(Math.toIntExact(repalBillPage.getPages()));
         voPage.setTotalPage(Math.toIntExact(repalBillPage.getPages()));
         voPage.setTotalNum(repalBillPage.getTotal());
         voPage.setTotalNum(repalBillPage.getTotal());

+ 78 - 11
src/main/resources/mapper/RepalBillMapper.xml

@@ -38,10 +38,10 @@
            </if>
            </if>
         </if>
         </if>
         <if test="param2.diagnosisGrade != null">
         <if test="param2.diagnosisGrade != null">
-            <if test="param2.diagnosisGrade == 'E'">
+            <if test='param2.diagnosisGrade == "E"'>
                 AND (DIAGNOSIS_GRADE = '' OR DIAGNOSIS_GRADE IS NULL)
                 AND (DIAGNOSIS_GRADE = '' OR DIAGNOSIS_GRADE IS NULL)
             </if>
             </if>
-            <if test="param2.diagnosisGrade != 'E'">
+            <if test='param2.diagnosisGrade != "E"'>
                 AND bill.DIAGNOSIS_GRADE = #{param2.diagnosisGrade}
                 AND bill.DIAGNOSIS_GRADE = #{param2.diagnosisGrade}
             </if>
             </if>
         </if>
         </if>
@@ -87,6 +87,73 @@
         </if>
         </if>
     </select>
     </select>
 
 
+    <select id="getTotalMoneyByGroup" resultType="com.winhc.repal.model.bo.TotalMoneyBO" parameterType="com.winhc.repal.model.bo.BillPageBO">
+        SELECT IFNULL(SUM(bill.TOTAL_MONEY),0) AS totalMoney, COUNT(bill.ID) AS totalCount FROM REPAL_BILL AS bill
+        <if test="!allFlag">
+            LEFT JOIN REPAL_RESPONSIBLE_PERSON AS person ON person.REPAL_BILL_ID = bill.ID
+        </if>
+        <if test="dynamicType != null">
+            LEFT JOIN REPAL_REMIND_READ_INFO ri ON bill.id = ri.REPAL_BILL_ID AND ri.USER_ID = #{param2.userId}
+        </if>
+        <where>
+            <if test="!allFlag">
+                AND person.USER_ID = #{userId}
+                AND person.DELETED = 0
+            </if>
+            AND bill.REPAL_BOOK_ID = #{repalBookId}
+            AND bill.REPAL_GROUP_ID = #{repalGroupId}
+            AND bill.DELETED = 0
+            AND bill.REPAL_BILL_TYPE = #{repalBillType}
+            <if test="overdueStatus != null">
+                <if test="overdueStatus == 1">
+                    AND bill.REPAL_BILL_STATUS = 1
+                </if>
+                <if test="overdueStatus == 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 = 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>
+            <if test="diagnosisGrade != null">
+                <if test='diagnosisGrade == "E"'>
+                    AND (DIAGNOSIS_GRADE = '' OR DIAGNOSIS_GRADE IS NULL)
+                </if>
+                <if test='diagnosisGrade != "E"'>
+                    AND bill.DIAGNOSIS_GRADE = #{diagnosisGrade}
+                </if>
+            </if>
+            <if test="startDate != null">
+                AND bill.END_DATE >= #{startDate}
+            </if>
+            <if test="endDate != null">
+                AND bill.END_DATE <![CDATA[<=]]> #{endDate}
+            </if>
+            <if test="dynamicType != null">
+                AND EXISTS (SELECT 1 FROM REPAL_REMIND_HISTORY his WHERE
+                <if test="dynamicType == 1">
+                    his.REMIND_TYPE = 'RISK' AND his.id > ri.RISK_REMIND_ID
+                </if>
+                <if test="dynamicType == 2">
+                    his.REMIND_TYPE = 'FINANCE' AND his.id > ri.FINANCE_REMIND_ID
+                </if>
+                <if test="dynamicType == 3">
+                    his.REMIND_TYPE = 'RANK' AND his.id > ri.RANK_REMIND_ID
+                </if>
+                <if test="dynamicType == 4">
+                    his.REMIND_TYPE = 'OVERDUE' AND his.id > ri.OVERDUE_REMIND_ID
+                </if>
+                AND his.REPAL_BILL_ID = bill.ID)
+            </if>
+        </where>
+    </select>
+
 
 
     <select id="searchPage" parameterType="com.winhc.repal.model.bo.SearchBillPageBO" resultType="com.winhc.repal.entity.RepalBill">
     <select id="searchPage" parameterType="com.winhc.repal.model.bo.SearchBillPageBO" resultType="com.winhc.repal.entity.RepalBill">
         SELECT bill.* FROM REPAL_BILL AS bill
         SELECT bill.* FROM REPAL_BILL AS bill
@@ -116,15 +183,15 @@
     </select>
     </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="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 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
         SELECT COUNT(*) AS totalCount, IFNULL(SUM(bill.RECEIVABLE), 0) AS totalMoney  FROM REPAL_RESPONSIBLE_PERSON AS person