From 82a1cf87de473e970185d6a60291f8087efa5afd Mon Sep 17 00:00:00 2001
From: wujianwei <wjw@11.com>
Date: 星期一, 18 八月 2025 13:42:24 +0800
Subject: [PATCH] 新增确认取消判断

---
 quartz/src/main/java/com/ruoyi/quartz/task/SettlementTask.java                        |    3 +++
 service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableServiceImpl.java |   27 +++++++++++++++++++++++++++
 service/src/main/resources/mapper/cwgl/PendingSettlementBusinessMapper.xml            |    6 +-----
 3 files changed, 31 insertions(+), 5 deletions(-)

diff --git a/quartz/src/main/java/com/ruoyi/quartz/task/SettlementTask.java b/quartz/src/main/java/com/ruoyi/quartz/task/SettlementTask.java
index 2ad1316..a32967c 100644
--- a/quartz/src/main/java/com/ruoyi/quartz/task/SettlementTask.java
+++ b/quartz/src/main/java/com/ruoyi/quartz/task/SettlementTask.java
@@ -49,6 +49,9 @@
         List<EstimatedReceivable> estimatedReceivables = new ArrayList<>();
         for (PendingSettlementBusiness pendingSettlementBusiness : pendingSettlementBusinesses) {
             pendingSettlementBusiness.setIsCreate(0);
+            pendingSettlementBusiness.setEstimatedTotalCost(BigDecimal.ZERO);
+
+            pendingSettlementBusiness.setEstimatedTotalIncome(BigDecimal.ZERO);
             ReceivableLineTruckPriceRule exactMatchingRule = ExactPricingRuleMatcher.findExactMatchingRule(receivableLineTruckPriceRules, pendingSettlementBusiness.getCustomerName(), pendingSettlementBusiness.getDepartureLocation(), pendingSettlementBusiness.getArrivalLocation(), pendingSettlementBusiness.getVehicleType());
             if (exactMatchingRule!=null) {
                 //搴旀敹鏁版嵁
diff --git a/service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableServiceImpl.java b/service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableServiceImpl.java
index 564fa6a..2940f2f 100644
--- a/service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableServiceImpl.java
+++ b/service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableServiceImpl.java
@@ -267,6 +267,9 @@
             BigDecimal totalAmount = estimatedReceivableBill.getTotalAmount();
             estimatedReceivableBill.setTotalAmount(totalAmount.add(estimatedReceivable.getEstimatedAmount()));
             estimatedReceivableBillMapper.updateEstimatedReceivableBill(estimatedReceivableBill);
+            pendingSettlementBusiness.setEstimatedTotalIncome(pendingSettlementBusiness.getEstimatedTotalIncome().add(estimatedReceivable.getEstimatedAmount()));
+            pendingSettlementBusinessMapper.updatePendingSettlementBusiness(pendingSettlementBusiness);
+            estimatedReceivable.setRelatedBillStatus(1);
         }
         String username = SecurityUtils.getUsername();
 
@@ -305,6 +308,9 @@
             BigDecimal totalAmount = estimatedReceivableBill.getTotalAmount();
             estimatedReceivableBill.setTotalAmount(totalAmount.subtract(estimatedReceivable.getEstimatedAmount()));
             estimatedReceivableBillMapper.updateEstimatedReceivableBill(estimatedReceivableBill);
+            pendingSettlementBusiness.setEstimatedTotalIncome(pendingSettlementBusiness.getConfirmedTotalIncome().subtract(estimatedReceivable.getEstimatedAmount()));
+            pendingSettlementBusinessMapper.updatePendingSettlementBusiness(pendingSettlementBusiness);
+            estimatedReceivable.setRelatedBillStatus(0);
         }
         String username = SecurityUtils.getUsername();
 
@@ -324,6 +330,27 @@
             throw new ServiceException("鏃犻渶閲嶅浣滃簾");
 
         }
+        PendingSettlementBusiness pendingSettlementBusiness = pendingSettlementBusinessMapper.selectPendingSettlementBusinessByNo(estimatedReceivable.getDispatchNo());
+        if (pendingSettlementBusiness == null){
+            throw new ServiceException("璋冨害鍗曚笉瀛樺湪");
+
+        }
+        Integer relatedBillStatus = pendingSettlementBusiness.getRelatedBillStatus();
+        if (relatedBillStatus.equals(2)||relatedBillStatus.equals(3)){
+            throw new ServiceException("褰撳墠璋冨害鍗曞凡缁撶畻鎴栭儴鍒嗙粨绠楁棤娉曚綔搴�");
+        }
+        //纭鐘舵�佷笅浣滃簾鎵嶆墽琛�
+        if (estimatedReceivable.getIsConfirmed().equals(1)) {
+        if (pendingSettlementBusiness.getBillId()!=null){
+            EstimatedReceivableBill estimatedReceivableBill = estimatedReceivableBillMapper.selectEstimatedReceivableBillById(pendingSettlementBusiness.getBillId());
+            BigDecimal totalAmount = estimatedReceivableBill.getTotalAmount();
+            estimatedReceivableBill.setTotalAmount(totalAmount.subtract(estimatedReceivable.getEstimatedAmount()));
+            estimatedReceivableBillMapper.updateEstimatedReceivableBill(estimatedReceivableBill);
+            pendingSettlementBusiness.setEstimatedTotalIncome(pendingSettlementBusiness.getConfirmedTotalIncome().subtract(estimatedReceivable.getEstimatedAmount()));
+            pendingSettlementBusinessMapper.updatePendingSettlementBusiness(pendingSettlementBusiness);
+            estimatedReceivable.setRelatedBillStatus(0);
+        }
+        }
         String username = SecurityUtils.getUsername();
 
         logService.insertEstimatedReceivableLog("浣滃簾搴旀敹",id,username);
diff --git a/service/src/main/resources/mapper/cwgl/PendingSettlementBusinessMapper.xml b/service/src/main/resources/mapper/cwgl/PendingSettlementBusinessMapper.xml
index 4864194..5015b18 100644
--- a/service/src/main/resources/mapper/cwgl/PendingSettlementBusinessMapper.xml
+++ b/service/src/main/resources/mapper/cwgl/PendingSettlementBusinessMapper.xml
@@ -561,11 +561,7 @@
     </update>
     <update id="updateEstimatedReceivableBillStatus">
         UPDATE pending_settlement_business
-        SET
-        is_create = 1,
-        bill_id = #{id},
-        bill_name = #{billName},
-        related_bill_status = 1,
+        SET related_bill_status = #{status}
         WHERE dispatch_no IN
         <foreach item="item" collection="list" open="(" separator="," close=")">
             #{item}

--
Gitblit v1.8.0