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

---
 quartz/src/main/java/com/ruoyi/quartz/task/SettlementTask.java                            |    1 +
 service/src/main/java/com/ruoyi/cwgl/domain/PendingSettlementBusiness.java                |    6 ++++++
 service/src/main/java/com/ruoyi/cwgl/mapper/PendingSettlementBusinessMapper.java          |    2 ++
 service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableBillServiceImpl.java |    7 ++++++-
 service/src/main/resources/mapper/cwgl/PendingSettlementBusinessMapper.xml                |   39 ++++++++++++++++++++++++++++++++-------
 5 files changed, 47 insertions(+), 8 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 efc10ca..2ad1316 100644
--- a/quartz/src/main/java/com/ruoyi/quartz/task/SettlementTask.java
+++ b/quartz/src/main/java/com/ruoyi/quartz/task/SettlementTask.java
@@ -48,6 +48,7 @@
 
         List<EstimatedReceivable> estimatedReceivables = new ArrayList<>();
         for (PendingSettlementBusiness pendingSettlementBusiness : pendingSettlementBusinesses) {
+            pendingSettlementBusiness.setIsCreate(0);
             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/domain/PendingSettlementBusiness.java b/service/src/main/java/com/ruoyi/cwgl/domain/PendingSettlementBusiness.java
index 3b50813..f43da9d 100644
--- a/service/src/main/java/com/ruoyi/cwgl/domain/PendingSettlementBusiness.java
+++ b/service/src/main/java/com/ruoyi/cwgl/domain/PendingSettlementBusiness.java
@@ -391,10 +391,16 @@
      */
     @TableField("bill_id")
     private Integer billId;
+    /** 鍏宠仈璐﹀崟鐘舵�� */
+    @Excel(name = "鍏宠仈璐﹀崟鐘舵��")
+    @TableField("related_bill_status")
+    private Integer relatedBillStatus;
+
 
     /**
      * 鍏宠仈璐﹀崟id
      */
+    @Excel(name = "璐﹀崟鍚嶇О")
     @TableField("bill_name")
     private String billName;
 
diff --git a/service/src/main/java/com/ruoyi/cwgl/mapper/PendingSettlementBusinessMapper.java b/service/src/main/java/com/ruoyi/cwgl/mapper/PendingSettlementBusinessMapper.java
index 0d5f51e..c55dba1 100644
--- a/service/src/main/java/com/ruoyi/cwgl/mapper/PendingSettlementBusinessMapper.java
+++ b/service/src/main/java/com/ruoyi/cwgl/mapper/PendingSettlementBusinessMapper.java
@@ -110,4 +110,6 @@
     void updatePendingSettlementBusinessByBillId(@Param("id") Integer id, @Param("billName")String billName);
 
     PendingSettlementBusiness selectPendingSettlementBusinessByNo(String dispatchNo);
+
+    void updateEstimatedReceivableBillStatus(@Param("list") List<String> list, @Param("status") int status);
 }
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 45c4a2b..d422d8b 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
@@ -160,6 +160,7 @@
         estimatedReceivableBillLog.setOperation("淇敼璐﹀崟鍚嶇О涓�"+estimatedReceivableBill.getBillName());
         logService.insertEstimatedReceivableBillLog(estimatedReceivableBillLog);
          pendingSettlementBusinessMapper.updatePendingSettlementBusinessByBillId(estimatedReceivableBill.getId(),estimatedReceivableBill.getBillName());
+
         return estimatedReceivableBillMapper.updateEstimatedReceivableBill(estimatedReceivableBill);
     }
 
@@ -230,7 +231,7 @@
         estimatedReceivableBillLog.setOperation("鏈鎻愪氦閲戦"+ settlementAmount);
         estimatedReceivableBillLog.setFileName(estimatedReceivableBill.getAttachment());
         logService.insertEstimatedReceivableBillLog(estimatedReceivableBillLog);
-        settledAmount = settledAmount.add(settlementAmount);
+
         List<String>dispatchNos =pendingSettlementBusinessMapper.selectPendingSettlementBusinessDispatchNos(estimatedReceivableBill.getId());
         // 妫�鏌ュ綋鍓嶆彁浜ら噾棰�+宸茬粨绠楅噾棰濇槸鍚﹁秴杩囧簲缁撶畻閲戦
         if (settlementAmount.add(settledAmount).compareTo(totalAmount) > 0) {
@@ -241,11 +242,15 @@
             //宸茬粨绠楀ぇ浜庡簲璁$畻閲戦涓哄凡缁撶畻
             estimatedReceivableBill.setStatus(2);
             estimatedReceivableMapper.updateEstimatedReceivableBillStatus(dispatchNos,3);
+            pendingSettlementBusinessMapper.updateEstimatedReceivableBillStatus(dispatchNos,3);
         }else {
             //鍚﹀垯閮ㄥ垎缁撶畻
             estimatedReceivableBill.setStatus(1);
             estimatedReceivableMapper.updateEstimatedReceivableBillStatus(dispatchNos,2);
+           pendingSettlementBusinessMapper.updateEstimatedReceivableBillStatus(dispatchNos,2);
         }
+        settledAmount = settledAmount.add(settlementAmount);
+        estimatedReceivableBill.setSettledAmount(settledAmount);
         return estimatedReceivableBillMapper.updateEstimatedReceivableBill(estimatedReceivableBill);
     }
 
diff --git a/service/src/main/resources/mapper/cwgl/PendingSettlementBusinessMapper.xml b/service/src/main/resources/mapper/cwgl/PendingSettlementBusinessMapper.xml
index d9e1d2e..7510e95 100644
--- a/service/src/main/resources/mapper/cwgl/PendingSettlementBusinessMapper.xml
+++ b/service/src/main/resources/mapper/cwgl/PendingSettlementBusinessMapper.xml
@@ -60,10 +60,11 @@
         <result property="confirmedTotalCost"    column="confirmed_total_cost"    />
         <result property="isIncomeMatched"    column="is_income_matched"    />
         <result property="isCostMatched"    column="is_cost_matched"    />
+        <result property="relatedBillStatus"    column="related_bill_status"    />
     </resultMap>
 
     <sql id="selectPendingSettlementBusinessVo">
-        select thisTab.id, thisTab.booking_no, thisTab.customer_id, thisTab.carrier_id, thisTab.project_name, thisTab.dispatch_no, thisTab.created_time, thisTab.transport_mode, thisTab.product_id, thisTab.customer_name, thisTab.operation_mode, thisTab.carrier_name, thisTab.departure_location, thisTab.arrival_location, thisTab.vehicle_id, thisTab.license_plate_number, thisTab.vehicle_type, thisTab.main_driver, thisTab.assistant_driver, thisTab.point_num, thisTab.business_contact, thisTab.estimated_total_income, thisTab.estimated_total_cost, thisTab.estimated_profit, thisTab.electronic_lock, thisTab.re_weighing_weight, thisTab.quantity, thisTab.actual_departure_time, thisTab.required_arrival_time, thisTab.actual_arrival_time, thisTab.be_return, thisTab.dispatch_quantity, thisTab.dispatch_weight, thisTab.dispatch_volume, thisTab.empty_mileage, thisTab.empty_fuel, thisTab.heavy_mileage, thisTab.heavy_fuel, thisTab.be_scheduled, thisTab.tracking_no, thisTab.seal_no, thisTab.schedule_no, thisTab.transport_status, thisTab.estimated_bill_id, thisTab.settlement_bill_id, thisTab.bill_id, thisTab.settlement_status, thisTab.create_time, thisTab.update_time, thisTab.is_create, thisTab.bill_name, thisTab.confirmed_total_income, thisTab.confirmed_total_cost, thisTab.is_income_matched, thisTab.is_cost_matched from pending_settlement_business AS thisTab
+        select thisTab.id, thisTab.booking_no, thisTab.customer_id, thisTab.carrier_id, thisTab.project_name, thisTab.dispatch_no, thisTab.created_time, thisTab.transport_mode, thisTab.product_id, thisTab.customer_name, thisTab.operation_mode, thisTab.carrier_name, thisTab.departure_location, thisTab.arrival_location, thisTab.vehicle_id, thisTab.license_plate_number, thisTab.vehicle_type, thisTab.main_driver, thisTab.assistant_driver, thisTab.point_num, thisTab.business_contact, thisTab.estimated_total_income, thisTab.estimated_total_cost, thisTab.estimated_profit, thisTab.electronic_lock, thisTab.re_weighing_weight, thisTab.quantity, thisTab.actual_departure_time, thisTab.required_arrival_time, thisTab.actual_arrival_time, thisTab.be_return, thisTab.dispatch_quantity, thisTab.dispatch_weight, thisTab.dispatch_volume, thisTab.empty_mileage, thisTab.empty_fuel, thisTab.heavy_mileage, thisTab.heavy_fuel, thisTab.be_scheduled, thisTab.tracking_no, thisTab.seal_no, thisTab.schedule_no, thisTab.transport_status, thisTab.estimated_bill_id, thisTab.settlement_bill_id, thisTab.bill_id, thisTab.settlement_status, thisTab.create_time, thisTab.update_time, thisTab.is_create, thisTab.bill_name, thisTab.confirmed_total_income, thisTab.confirmed_total_cost, thisTab.is_income_matched, thisTab.is_cost_matched, thisTab.related_bill_status from pending_settlement_business AS thisTab
     </sql>
     <sql id="selectPendingSettlementBusinessVoCount">
         select count(0) from pending_settlement_business as thisTab
@@ -541,16 +542,33 @@
     <update id="updatePendingSettlementBusinessIsCreate">
 
         UPDATE pending_settlement_business
-        SET is_create = 1 ,bill_id = #{id},bill_name = #{billName}
+        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}
         </foreach>
     </update>
     <update id="updatePendingSettlementBusinessByBillId">
-          UPDATE pending_settlement_business set bill_name = #{billName}
-          where bill_id = #{id}
-
+            UPDATE pending_settlement_business p
+            JOIN estimated_receivable e ON p.dispatch_no = e.dispatch_no
+            SET
+            p.bill_name = #{billName},
+            e.related_bill_name = #{billName}
+            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
+        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
+        <foreach item="item" collection="list" open="(" separator="," close=")">
+            #{item}
+        </foreach>
     </update>
 
     <!--鍒犻櫎-->
@@ -564,8 +582,15 @@
         </foreach>
     </delete>
     <delete id="cancelRelevancy">
-         UPDATE pending_settlement_business set bill_id = null ,bill_name = null,is_create = 0
-         where id = #{id}
+       UPDATE pending_settlement_business p
+LEFT JOIN estimated_receivable e ON p.dispatch_no = e.dispatch_no
+SET
+    p.bill_id = NULL,
+    p.bill_name = NULL,
+    p.is_create = 0,
+    p.related_bill_status = 0,
+    e.related_bill_name = NULL
+    WHERE p.id = #{id}
     </delete>
 
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0