Bläddra i källkod

1.超期预警大中型/个贷排除已退产品的项目
2.同步超期项目时排除已退产品的项目
3.取消注释同步超期数据的定时任务

GouGengquan 3 månader sedan
förälder
incheckning
6ff0786178

+ 7 - 1
dao/src/main/resources/mapper/FinanceFineMapper.xml

@@ -167,7 +167,7 @@
                 LEFT JOIN ( SELECT id, business_id, should_amount FROM order_fund WHERE business_type = 'ASSET_BUSINESS' AND deleted = 0 ) AS `of` ON `of`.business_id = ap.business_id
                 LEFT JOIN assets AS a ON a.id = ap.business_id
                 LEFT JOIN finance_fine AS ff ON ff.deleted = 0 AND `of`.id = ff.order_fund_id AND pf.id = ff.production_fund_id
-                LEFT JOIN production_return AS `return` ON `return`.deleted = 0 AND `return`.status = 'APPROVE' AND `return`.business_id = ap.business_id AND `return`.production_id = ap.id AND `return`.production_no = ap.production_no
+                LEFT JOIN production_return AS `return` ON `return`.deleted = 0 AND business_type = 'ASSET_BUSINESS' AND `return`.status = 'APPROVE' AND `return`.business_id = ap.business_id AND `return`.production_id = ap.id AND `return`.production_no = ap.production_no
         WHERE ( pf.production_no IS NULL OR pf.real_amount IS NULL )
           AND ap.repertory_out_time > '2024-01-01 00:00:00'
           AND DATEDIFF(CURDATE(), DATE( ap.repertory_out_time )) >= 90
@@ -186,9 +186,12 @@
                     INNER JOIN ( SELECT id, business_id FROM order_fund WHERE business_type = 'PERSONAL_BUSINESS' AND deleted = 0 AND real_amount IS NULL ) AS ofu ON ofu.business_id = p.id
                     INNER JOIN ( SELECT target_id,( repertory_out_time ) AS rot,production FROM personal_production WHERE repertory_out_time IS NOT NULL GROUP BY target_id ) AS pp ON pp.target_id = pt.id
                     LEFT JOIN finance_fine AS ff ON ff.deleted = 0 AND ofu.id = ff.order_fund_id
+                    LEFT JOIN production_return AS `return` ON `return`.deleted = 0 AND business_type = 'PERSONAL_BUSINESS' AND `return`.status = 'APPROVE' AND `return`.business_id = p.id AND `return`.production_id IS NULL
         WHERE pp.rot > '2024-01-01 00:00:00'
           AND DATEDIFF(CURDATE(), DATE( pp.rot )) >= 90
           AND ff.id IS NULL
+          # 退产品后不添加到罚款表中,所以审核通过的退产品记录必须为null
+          AND `return`.id IS NULL
     </select>
 
     <!--获取逾期大中型产品款项信息-->
@@ -232,9 +235,12 @@
             ) AS mp ON ( mp.major_id = pf.business_id AND mp.report_no = pf.production_no AND mp.productionType = pf.production_type )
                 LEFT JOIN major AS m ON m.id = mp.major_id
                 LEFT JOIN finance_fine AS ff ON ff.deleted = 0 AND pf.order_fund_id = ff.order_fund_id AND pf.id = ff.production_fund_id
+                LEFT JOIN production_return AS `return` ON `return`.deleted = 0 AND business_type = 'MAJOR_BUSINESS' AND `return`.status = 'APPROVE' AND `return`.business_id = mp.major_id AND `return`.production_id = mp.id AND `return`.production_no = mp.report_no
         WHERE mp.repertory_out_time > '2024-01-01 00:00:00'
           AND DATEDIFF(CURDATE(), DATE( mp.repertory_out_time )) >= 90
           AND ff.id IS NULL
+          # 退产品后不添加到罚款表中,所以审核通过的退产品记录必须为null
+          AND `return`.id IS NULL
     </select>
 
     <!--根据收款信息获取符合条件的实际开票金额的5%-->

+ 7 - 2
dao/src/main/resources/mapper/FinanceRealFundMapper.xml

@@ -307,8 +307,11 @@
         LEFT JOIN user u1 ON u1.id = m.principal_id
         LEFT JOIN customer_company cc1 ON cc1.id = m.clientele_id
         LEFT JOIN customer_company cc2 ON cc2.id = m.clientele_sub_id
+        LEFT JOIN production_return AS `return` ON `return`.deleted = 0 AND business_type = 'MAJOR_BUSINESS' AND `return`.status = 'APPROVE' AND `return`.business_id = mp.major_id AND `return`.production_id = mp.id AND `return`.production_no = mp.report_no
         <where>
             and mp.repertory_out_time>'2024-01-01 00:00:00'
+            # 退产品后超期也不预警,所以审核通过的退产品记录必须为null
+            AND `return`.id IS NULL
             <if test="overdueVO!=null and overdueVO.overdueMin!=null">
                 AND DATEDIFF(CURDATE(),DATE( mp.repertory_out_time )) >= #{overdueVO.overdueMin}
             </if>
@@ -1139,8 +1142,10 @@
         LEFT JOIN `user` u1 ON u1.id = p.outward_staff
         LEFT JOIN `user` u2 ON u2.id = p.inward_staff
         LEFT JOIN `user` u3 ON u3.id = p.pricing_staff
+        LEFT JOIN production_return AS `return` ON `return`.deleted = 0 AND business_type = 'PERSONAL_BUSINESS' AND `return`.status = 'APPROVE' AND `return`.business_id = p.id AND `return`.production_id IS NULL
         <where>
-                                 pp.rot>'2024-01-01 00:00:00'
+            AND pp.rot>'2024-01-01 00:00:00'
+            AND `return`.id IS NULL
             <if test="overdueVO!=null and overdueVO.overdueMin!=null">
                 AND DATEDIFF(CURDATE(),DATE ( pp.rot )) >= #{overdueVO.overdueMin}
             </if>
@@ -1717,7 +1722,7 @@
         LEFT JOIN user u1 ON u1.id = a.principal_id
         LEFT JOIN customer_company cc1 ON cc1.id = a.clientele_id
         LEFT JOIN customer_company cc2 ON cc2.id = a.clientele_sub_id
-        LEFT JOIN production_return AS `return` ON `return`.deleted = 0 AND `return`.status = 'APPROVE' AND `return`.business_id = ap.business_id AND `return`.production_id = ap.id AND `return`.production_no = ap.production_no
+        LEFT JOIN production_return AS `return` ON `return`.deleted = 0 AND business_type = 'ASSET_BUSINESS' AND `return`.status = 'APPROVE' AND `return`.business_id = ap.business_id AND `return`.production_id = ap.id AND `return`.production_no = ap.production_no
         WHERE
         ap.productionType != 'STATEMENT'
         AND ( pf.production_no IS NULL OR pf.real_amount IS NULL )

+ 1 - 1
service/src/main/java/com/dayou/task/FinanceFineScheduled.java

@@ -16,7 +16,7 @@ public class FinanceFineScheduled {
     /**
      * 每⽉23日凌晨0点 将逾期订单/产品信息新增到finance_fine表
      */
-//    @Scheduled(cron = "0 0 0 23 * ?")
+    @Scheduled(cron = "0 0 0 23 * ?")
     public void compileFineOrderTask() {
         financeFineService.compileFineOrder();
         log.info("搜集逾期订单/产品信息并添加到罚款表完成");