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/ShippingInfoMapper.xml |   63 +++++++++++++++++++++++++++++++
 1 files changed, 62 insertions(+), 1 deletions(-)

diff --git a/src/main/resources/mapper/sales/ShippingInfoMapper.xml b/src/main/resources/mapper/sales/ShippingInfoMapper.xml
index 161b384..0d2dae7 100644
--- a/src/main/resources/mapper/sales/ShippingInfoMapper.xml
+++ b/src/main/resources/mapper/sales/ShippingInfoMapper.xml
@@ -26,7 +26,13 @@
         sl.customer_name,
         spd.totalQuantity,
         sor.outboundBatches,
-        pl.purchase_contract_number
+        pl.purchase_contract_number,
+        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) >= spd.totalQuantity THEN '鍏ㄩ儴閫�璐�'
+            ELSE '閮ㄥ垎閫�璐�'
+        END AS returnStatus
         FROM shipping_info s
         LEFT JOIN (select shipping_info_id,sum(quantity) totalQuantity from shipping_product_detail GROUP BY shipping_info_id) spd ON spd.shipping_info_id = s.id
         LEFT JOIN sales_ledger sl ON s.sales_ledger_id = sl.id
@@ -38,6 +44,16 @@
                    from stock_out_record
                    where record_type='13'and approval_status=1
                    group by record_id)sor on sor.record_id= s.id
+        LEFT JOIN (
+            SELECT
+                si.id AS shipping_info_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.id
+        ) rs ON rs.shipping_info_id = s.id
         WHERE 1=1
         <if test="req.salesContractNo != null and req.salesContractNo != ''">
             AND sl.sales_contract_no LIKE CONCAT('%',#{req.salesContractNo},'%')
@@ -111,4 +127,49 @@
         left join sales_ledger sl on si.sales_ledger_id = sl.id
         where  sl.customer_name = #{customerName}
     </select>
+
+    <!-- 閿�鍞��璐х敤锛氭煡璇㈠彂璐т俊鎭惈鎵规鍙� -->
+    <select id="getShippingInfoForReturn" resultType="com.ruoyi.sales.vo.ShippingInfoForReturnVo">
+        SELECT
+            si.id AS shippingId,
+            si.shipping_no AS shippingNo,
+            sl.sales_contract_no AS salesContractNo,
+            sl.customer_name AS customerName,
+            IFNULL(p.product_name, slp.product_category) AS productName,
+            IFNULL(pm.model, slp.specification_model) AS model,
+            sor.stock_out_num AS shippingQuantity,
+            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) >= sor.stock_out_num THEN '鍏ㄩ儴閫�璐�'
+                ELSE '閮ㄥ垎閫�璐�'
+            END AS returnStatus,
+            sor.batch_no AS batchNo,
+            si.shipping_car_number AS shippingCarNumber,
+            si.create_time AS createTime,
+            CONCAT(
+                IFNULL(sor.batch_no, ''),
+                '-',
+                IFNULL(si.shipping_car_number, ''),
+                '-',
+                DATE_FORMAT(si.create_time, '%Y-%m-%d')
+            ) AS displayLabel
+        FROM shipping_info si
+        LEFT JOIN sales_ledger sl ON si.sales_ledger_id = sl.id
+        LEFT JOIN sales_ledger_product slp ON si.sales_ledger_product_id = slp.id AND slp.type = 1
+        LEFT JOIN product_model pm ON slp.product_id = pm.id
+        LEFT JOIN product p ON pm.product_id = p.id
+        LEFT JOIN stock_out_record sor ON sor.record_id = si.id AND sor.record_type = '13' AND sor.approval_status = 1
+        LEFT JOIN (
+            SELECT
+                stock_out_record_id,
+                SUM(num) AS total_return_num
+            FROM return_sale_product rsp
+            LEFT JOIN return_management rm ON rm.id = rsp.return_management_id
+            WHERE rm.status = 1
+            GROUP BY stock_out_record_id
+        ) rs ON rs.stock_out_record_id = sor.id
+        WHERE sl.customer_name = #{customerName}
+        ORDER BY si.create_time DESC
+    </select>
 </mapper>

--
Gitblit v1.9.3