From 5ac6ad0ec6e861d4d2275753d15d2ad7f870915a Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 22 六月 2026 17:20:07 +0800
Subject: [PATCH] 6、明细记录中有删除操作的,需设置权限; 7、质量管理要设置检验规则;

---
 src/main/resources/mapper/sales/SalesLedgerMapper.xml |   27 ++++++++++++++++++++++++++-
 1 files changed, 26 insertions(+), 1 deletions(-)

diff --git a/src/main/resources/mapper/sales/SalesLedgerMapper.xml b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
index 1cd3971..b4562d0 100644
--- a/src/main/resources/mapper/sales/SalesLedgerMapper.xml
+++ b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
@@ -45,6 +45,7 @@
     <select id="selectSalesLedgerListPage" resultType="com.ruoyi.sales.vo.SalesLedgerVo">
         SELECT T1.id,
         T1.sales_contract_no,
+        T1.master_contract_no,
         T1.customer_contract_no,
         T1.project_name,
         T1.entry_date,
@@ -63,7 +64,14 @@
         T1.delivery_date,
         DATEDIFF(T1.delivery_date, CURDATE()) AS delivery_days_diff,
         IFNULL(shipping_status_counts.is_all_shipped, FALSE) AS is_fh,
-        T3.purchase_contract_number
+        T3.purchase_contract_number,
+        T3.master_contract_no AS purchaseMasterContractNo,
+        IFNULL(rs.total_return_num, 0) AS returnedQuantity,
+        CASE
+            WHEN IFNULL(rs.total_return_num, 0) = 0 THEN '鏃犻��璐�'
+            WHEN IFNULL(rs.total_return_num, 0) >= IFNULL(shipping_qty.total_qty, 0) THEN '鍏ㄩ儴閫�璐�'
+            ELSE '閮ㄥ垎閫�璐�'
+        END AS returnStatus
         FROM sales_ledger T1
         LEFT JOIN sys_user T2 ON T1.entry_person = T2.user_id
         LEFT JOIN (
@@ -76,6 +84,20 @@
         GROUP BY sales_ledger_id
         ) shipping_status_counts ON T1.id = shipping_status_counts.sales_ledger_id
         LEFT JOIN purchase_ledger T3 ON T1.purchase_ledger_id = T3.id
+        LEFT JOIN (
+            SELECT si.sales_ledger_id, SUM(sor.stock_out_num) AS total_qty
+            FROM shipping_info si
+            LEFT JOIN stock_out_record sor ON sor.record_id = si.id AND sor.record_type = '13' AND sor.approval_status = 1
+            GROUP BY si.sales_ledger_id
+        ) shipping_qty ON shipping_qty.sales_ledger_id = T1.id
+        LEFT JOIN (
+            SELECT si.sales_ledger_id, SUM(rsp.num) AS total_return_num
+            FROM return_sale_product rsp
+            LEFT JOIN return_management rm ON rm.id = rsp.return_management_id
+            LEFT JOIN shipping_info si ON si.id = rm.shipping_id
+            WHERE rm.status = 1
+            GROUP BY si.sales_ledger_id
+        ) rs ON rs.sales_ledger_id = T1.id
 
         <where>
             <if test="salesLedgerDto.customerName != null and salesLedgerDto.customerName != '' ">
@@ -87,6 +109,9 @@
             <if test="salesLedgerDto.salesContractNo != null and salesLedgerDto.salesContractNo != '' ">
                 AND T1.sales_contract_no LIKE CONCAT('%',#{salesLedgerDto.salesContractNo},'%')
             </if>
+            <if test="salesLedgerDto.masterContractNo != null and salesLedgerDto.masterContractNo != '' ">
+                AND T1.master_contract_no LIKE CONCAT('%',#{salesLedgerDto.masterContractNo},'%')
+            </if>
             <if test="salesLedgerDto.projectName != null and salesLedgerDto.projectName != '' ">
                 AND T1.project_name LIKE CONCAT('%',#{salesLedgerDto.projectName},'%')
             </if>

--
Gitblit v1.9.3