Explorar o código

1.认领产品回款后,删除未确认的罚款记录

GouGengquan hai 2 meses
pai
achega
22898a8345

+ 1 - 1
dao/src/main/resources/mapper/OrderFundMapper.xml

@@ -45,7 +45,7 @@
     <!--更新折扣比例-->
     <update id="updateDiscountByOrderIdAfter">
         UPDATE order_fund
-        SET discount =  order_fund.real_amount / order_fund.should_amount
+        SET discount = IF(order_fund.should_amount > 0, order_fund.real_amount / order_fund.should_amount, NULL)
         WHERE id = #{orderFundId}
     </update>
 

+ 20 - 10
service/src/main/java/com/dayou/service/impl/AssetsProductionServiceImpl.java

@@ -216,6 +216,7 @@ public class AssetsProductionServiceImpl extends ServiceImpl<AssetsProductionMap
         if (!assetsProduction.getProductionType().equals(STATEMENT.getCode())) {
             addAssetsProShouldAmount(assetsProduction);
         }
+        // 保存撰写的产品信息
         assetsProductionMapper.writeAssetsProduction(assetsProduction);
         AssetsProduction validateCodeProInfo = this.getOne(new LambdaQueryWrapper<AssetsProduction>()
                 .eq(AssetsProduction::getBusinessId, assetsProduction.getBusinessId())
@@ -432,17 +433,26 @@ public class AssetsProductionServiceImpl extends ServiceImpl<AssetsProductionMap
                 orderFundMapper.updateDiscountByOrderIdAfter(orderReportDTO.getOrderFundId());
 
                 // 新增罚款后退款记录
-                FinanceFine financeFine = financeFineService.getFineByFundInfo(orderReportDTO.getOrderFundId(), orderReportDTO.getProductionFundId());
-                // 判断罚款记录是否为空,为空说明没有已确认的罚款,不新增罚款退款记录
+                // 罚款记录查询
+                FinanceFine financeFine = financeFineService.getOne(new LambdaQueryWrapper<FinanceFine>()
+                        .eq(BaseEntity::getDeleted, 0)
+                        .eq(FinanceFine::getOrderFundId, orderReportDTO.getOrderFundId())
+                        .eq(FinanceFine::getProductionFundId, orderReportDTO.getProductionFundId()));
+                // 判断罚款记录是否为空
                 if (ObjectUtil.isNotNull(financeFine)) {
-                    FinanceFineRefund financeFineRefund = FinanceFineRefund
-                            .builder()
-                            .fineId(financeFine.getId())
-                            .refundAmount(financeFine.getRealFineAmount())
-                            .refundReason(RETURN_MONEY.getCode())
-                            .status(NOT_RETURNED.getCode())
-                            .build();
-                    financeFineRefundService.saveIfNotExists(financeFineRefund);
+                    // 判断罚款记录是否已经确认
+                    if (financeFine.getStatus()) { // 已确认新增退款记录
+                        FinanceFineRefund financeFineRefund = FinanceFineRefund
+                                .builder()
+                                .fineId(financeFine.getId())
+                                .refundAmount(financeFine.getRealFineAmount())
+                                .refundReason(RETURN_MONEY.getCode())
+                                .status(NOT_RETURNED.getCode())
+                                .build();
+                        financeFineRefundService.saveIfNotExists(financeFineRefund);
+                    } else { // 未确认的罚款记录直接删除
+                        financeFineService.delete(financeFine.getId());
+                    }
                 }
 
                 //插入订单认领记录流水表

+ 19 - 10
service/src/main/java/com/dayou/service/impl/MajorProductionServiceImpl.java

@@ -417,17 +417,26 @@ public class MajorProductionServiceImpl extends ServiceImpl<MajorProductionMappe
                 orderFundMapper.updateRealAmount(orderFundId, thisTimeAmount);
 
                 // 新增罚款后退款记录
-                FinanceFine financeFine = financeFineService.getFineByFundInfo(orderFundId, productionFundId);
-                // 判断罚款记录是否为空,为空说明没有已确认的罚款,不新增罚款退款记录
+                // 罚款记录查询
+                FinanceFine financeFine = financeFineService.getOne(new LambdaQueryWrapper<FinanceFine>()
+                        .eq(BaseEntity::getDeleted, 0)
+                        .eq(FinanceFine::getOrderFundId, orderFundId)
+                        .eq(FinanceFine::getProductionFundId, productionFundId));
+                // 判断罚款记录是否为空
                 if (ObjectUtil.isNotNull(financeFine)) {
-                    FinanceFineRefund financeFineRefund = FinanceFineRefund
-                            .builder()
-                            .fineId(financeFine.getId())
-                            .refundAmount(financeFine.getRealFineAmount())
-                            .refundReason(RETURN_MONEY.getCode())
-                            .status(NOT_RETURNED.getCode())
-                            .build();
-                    financeFineRefundService.saveIfNotExists(financeFineRefund);
+                    // 判断罚款记录是否已经确认
+                    if (financeFine.getStatus()) { // 已确认新增退款记录
+                        FinanceFineRefund financeFineRefund = FinanceFineRefund
+                                .builder()
+                                .fineId(financeFine.getId())
+                                .refundAmount(financeFine.getRealFineAmount())
+                                .refundReason(RETURN_MONEY.getCode())
+                                .status(NOT_RETURNED.getCode())
+                                .build();
+                        financeFineRefundService.saveIfNotExists(financeFineRefund);
+                    }else { // 未确认的罚款记录直接删除
+                        financeFineService.delete(financeFine.getId());
+                    }
                 }
 
                 //插入订单认领流水表

+ 18 - 10
service/src/main/java/com/dayou/service/impl/PersonalServiceImpl.java

@@ -405,17 +405,25 @@ public class PersonalServiceImpl extends ServiceImpl<PersonalMapper, Personal> i
                 }
 
                 // 新增罚款后退款记录
-                FinanceFine financeFine = financeFineService.getFineByFundInfo(orderFund.getId(), null);
-                // 判断罚款记录是否为空,为空说明没有已确认的罚款,不新增罚款退款记录
+                // 罚款记录查询
+                FinanceFine financeFine = financeFineService.getOne(new LambdaQueryWrapper<FinanceFine>()
+                        .eq(BaseEntity::getDeleted, 0)
+                        .eq(FinanceFine::getOrderFundId, orderFund.getId()));
+                // 判断罚款记录是否为空
                 if (ObjectUtil.isNotNull(financeFine)) {
-                    FinanceFineRefund financeFineRefund = FinanceFineRefund
-                            .builder()
-                            .fineId(financeFine.getId())
-                            .refundAmount(financeFine.getRealFineAmount())
-                            .refundReason(RETURN_MONEY.getCode())
-                            .status(NOT_RETURNED.getCode())
-                            .build();
-                    financeFineRefundService.saveIfNotExists(financeFineRefund);
+                    // 判断罚款记录是否已经确认
+                    if (financeFine.getStatus()) { // 已确认新增退款记录
+                        FinanceFineRefund financeFineRefund = FinanceFineRefund
+                                .builder()
+                                .fineId(financeFine.getId())
+                                .refundAmount(financeFine.getRealFineAmount())
+                                .refundReason(RETURN_MONEY.getCode())
+                                .status(NOT_RETURNED.getCode())
+                                .build();
+                        financeFineRefundService.saveIfNotExists(financeFineRefund);
+                    }else { // 未确认的罚款记录直接删除
+                        financeFineService.delete(financeFine.getId());
+                    }
                 }
 
                 FinanceClaim financeClaim = new FinanceClaim();