From e0cc9278a0bcbf480446f87a78b9d7ddd8819eeb Mon Sep 17 00:00:00 2001
From: sen <sen@qq.com>
Date: 星期一, 18 八月 2025 11:32:43 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/yagwly_fa_master' into yagwly_fa_master

---
 service/src/main/resources/mapper/cwgl/EstimatedReceivableMapper.xml                        |    4 ++
 service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableServiceImpl.java       |   40 ++++++++++++++++++++
 service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableBillServiceImpl.java   |    8 +--
 service/src/main/java/com/ruoyi/cwgl/service/impl/PendingSettlementBusinessServiceImpl.java |    4 +-
 service/src/main/resources/mapper/cwgl/PendingSettlementBusinessMapper.xml                  |   23 ++++++-----
 service/src/main/java/com/ruoyi/cwgl/mapper/EstimatedReceivableMapper.java                  |    2 
 6 files changed, 62 insertions(+), 19 deletions(-)

diff --git a/service/src/main/java/com/ruoyi/cwgl/mapper/EstimatedReceivableMapper.java b/service/src/main/java/com/ruoyi/cwgl/mapper/EstimatedReceivableMapper.java
index 5335f30..7887584 100644
--- a/service/src/main/java/com/ruoyi/cwgl/mapper/EstimatedReceivableMapper.java
+++ b/service/src/main/java/com/ruoyi/cwgl/mapper/EstimatedReceivableMapper.java
@@ -86,5 +86,5 @@
      */
     public int deleteEstimatedReceivableByIds(Integer[] ids);
 
-    void updateEstimatedReceivableBillStatus(@Param("list") List<String> list, @Param("status") int status);
+    void updateEstimatedReceivableBillStatus(@Param("list") List<String> list, @Param("status") int status,@Param("billName")String billName);
 }
diff --git a/service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableBillServiceImpl.java b/service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableBillServiceImpl.java
index d422d8b..82746c1 100644
--- a/service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableBillServiceImpl.java
+++ b/service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableBillServiceImpl.java
@@ -241,12 +241,12 @@
        if (settlementAmount.add(settledAmount).compareTo(totalAmount) == 0) {
             //宸茬粨绠楀ぇ浜庡簲璁$畻閲戦涓哄凡缁撶畻
             estimatedReceivableBill.setStatus(2);
-            estimatedReceivableMapper.updateEstimatedReceivableBillStatus(dispatchNos,3);
+            estimatedReceivableMapper.updateEstimatedReceivableBillStatus(dispatchNos,3,null);
             pendingSettlementBusinessMapper.updateEstimatedReceivableBillStatus(dispatchNos,3);
         }else {
             //鍚﹀垯閮ㄥ垎缁撶畻
             estimatedReceivableBill.setStatus(1);
-            estimatedReceivableMapper.updateEstimatedReceivableBillStatus(dispatchNos,2);
+            estimatedReceivableMapper.updateEstimatedReceivableBillStatus(dispatchNos,2,null);
            pendingSettlementBusinessMapper.updateEstimatedReceivableBillStatus(dispatchNos,2);
         }
         settledAmount = settledAmount.add(settlementAmount);
@@ -273,9 +273,7 @@
         String dispatchNo = pendingSettlementBusiness.getDispatchNo();
         estimatedReceivableBillLog.setOperation("鍙栨秷璋冨害鍗�"+ dispatchNo +"鍏宠仈");
         logService.insertEstimatedReceivableBillLog(estimatedReceivableBillLog);
-        List<String> dispatchNos = new ArrayList<>();
-        dispatchNos.add(dispatchNo);
-        estimatedReceivableMapper.updateEstimatedReceivableBillStatus(dispatchNos,0);
+
 
         return  pendingSettlementBusinessMapper.cancelRelevancy(id);
 
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 02aef7d..564fa6a 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
@@ -128,6 +128,15 @@
         estimatedReceivable.setCreateTime(nowDate);
         estimatedReceivable.setFeeSystemNo("YF"+datePart+ RandomUtils.random(5));
         estimatedReceivable.setFeeType(0);
+        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("褰撳墠璋冨害鍗曞凡缁撶畻鎴栭儴鍒嗙粨绠楁棤娉曟柊澧炴槑缁�");
+        }
         return estimatedReceivableMapper.insertEstimatedReceivable(estimatedReceivable);
     }
 
@@ -244,6 +253,21 @@
             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 (pendingSettlementBusiness.getBillId()!=null){
+            EstimatedReceivableBill estimatedReceivableBill = estimatedReceivableBillMapper.selectEstimatedReceivableBillById(pendingSettlementBusiness.getBillId());
+            BigDecimal totalAmount = estimatedReceivableBill.getTotalAmount();
+            estimatedReceivableBill.setTotalAmount(totalAmount.add(estimatedReceivable.getEstimatedAmount()));
+            estimatedReceivableBillMapper.updateEstimatedReceivableBill(estimatedReceivableBill);
+        }
         String username = SecurityUtils.getUsername();
 
         logService.insertEstimatedReceivableLog("纭搴旀敹",id,username);
@@ -267,10 +291,26 @@
             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 (pendingSettlementBusiness.getBillId()!=null){
+            EstimatedReceivableBill estimatedReceivableBill = estimatedReceivableBillMapper.selectEstimatedReceivableBillById(pendingSettlementBusiness.getBillId());
+            BigDecimal totalAmount = estimatedReceivableBill.getTotalAmount();
+            estimatedReceivableBill.setTotalAmount(totalAmount.subtract(estimatedReceivable.getEstimatedAmount()));
+            estimatedReceivableBillMapper.updateEstimatedReceivableBill(estimatedReceivableBill);
+        }
         String username = SecurityUtils.getUsername();
 
         logService.insertEstimatedReceivableLog("鍙栨秷搴旀敹",id,username);
         estimatedReceivable.setIsConfirmed(0);
+
         return estimatedReceivableMapper.updateEstimatedReceivable(estimatedReceivable);
     }
 
diff --git a/service/src/main/java/com/ruoyi/cwgl/service/impl/PendingSettlementBusinessServiceImpl.java b/service/src/main/java/com/ruoyi/cwgl/service/impl/PendingSettlementBusinessServiceImpl.java
index e942a58..90b16c2 100644
--- a/service/src/main/java/com/ruoyi/cwgl/service/impl/PendingSettlementBusinessServiceImpl.java
+++ b/service/src/main/java/com/ruoyi/cwgl/service/impl/PendingSettlementBusinessServiceImpl.java
@@ -320,7 +320,7 @@
         estimatedReceivableBill.setCreateBy(username);
         estimatedReceivableBillMapper.insertEstimatedReceivableBill(estimatedReceivableBill);
         //淇敼鍏ヨ处
-        estimatedReceivableMapper.updateEstimatedReceivableBillStatus(collect,1);
+        estimatedReceivableMapper.updateEstimatedReceivableBillStatus(collect,1,createBillVo.getBillName());
 
         //淇敼璋冨害鍗曚负宸插垱寤鸿处鍗�
         return  pendingSettlementBusinessMapper.updatePendingSettlementBusinessIsCreate(collect,estimatedReceivableBill.getId(),createBillVo.getBillName());
@@ -366,7 +366,7 @@
         estimatedReceivableBill.setCreateBy(username);
         estimatedReceivableBillMapper.insertEstimatedReceivableBill(estimatedReceivableBill);
         //淇敼搴旀敹绠$悊琛ㄥ凡鍏ヨ处
-        estimatedReceivableMapper.updateEstimatedReceivableBillStatus(collect,1);
+        estimatedReceivableMapper.updateEstimatedReceivableBillStatus(collect,1,billName);
         //淇敼璋冨害鍗曚负宸插垱寤鸿处鍗�
         return  pendingSettlementBusinessMapper.updatePendingSettlementBusinessIsCreate(collect,estimatedReceivableBill.getId(),billName);
     }
diff --git a/service/src/main/resources/mapper/cwgl/EstimatedReceivableMapper.xml b/service/src/main/resources/mapper/cwgl/EstimatedReceivableMapper.xml
index 41b368e..3462f13 100644
--- a/service/src/main/resources/mapper/cwgl/EstimatedReceivableMapper.xml
+++ b/service/src/main/resources/mapper/cwgl/EstimatedReceivableMapper.xml
@@ -194,6 +194,10 @@
     <update id="updateEstimatedReceivableBillStatus">
         UPDATE estimated_receivable
         SET related_bill_status = #{status}
+        <if test="billName !=null and billName != ''">
+            , related_bill_name = #{billName}
+        </if>
+
         WHERE dispatch_no IN
         <foreach item="item" collection="list" open="(" separator="," close=")">
             #{item}
diff --git a/service/src/main/resources/mapper/cwgl/PendingSettlementBusinessMapper.xml b/service/src/main/resources/mapper/cwgl/PendingSettlementBusinessMapper.xml
index 7510e95..4864194 100644
--- a/service/src/main/resources/mapper/cwgl/PendingSettlementBusinessMapper.xml
+++ b/service/src/main/resources/mapper/cwgl/PendingSettlementBusinessMapper.xml
@@ -540,9 +540,12 @@
 
     </update>
     <update id="updatePendingSettlementBusinessIsCreate">
-
         UPDATE pending_settlement_business
-        SET is_create = 1 ,bill_id = #{id},bill_name = #{billName},related_bill_status = 1
+        SET
+        is_create = 1,
+        bill_id = #{id},
+        bill_name = #{billName},
+        related_bill_status = 1
         WHERE dispatch_no IN
         <foreach item="item" collection="list" open="(" separator="," close=")">
             #{item}
@@ -554,18 +557,16 @@
             SET
             p.bill_name = #{billName},
             e.related_bill_name = #{billName}
-            WHERE p.bill_id = #{id};
+            WHERE p.bill_id = #{id}
     </update>
     <update id="updateEstimatedReceivableBillStatus">
-        UPDATE pending_settlement_business p
-        JOIN estimated_receivable e ON p.dispatch_no = e.dispatch_no
+        UPDATE pending_settlement_business
         SET
-        p.is_create = 1,
-        p.bill_id = #{id},
-        p.bill_name = #{billName},
-        p.related_bill_status = 1,
-        e.related_bill_name = #{billName}
-        WHERE p.dispatch_no IN
+        is_create = 1,
+        bill_id = #{id},
+        bill_name = #{billName},
+        related_bill_status = 1,
+        WHERE dispatch_no IN
         <foreach item="item" collection="list" open="(" separator="," close=")">
             #{item}
         </foreach>

--
Gitblit v1.8.0