From 1ec3b6f73b1ee8b81d8c6583c38ffdf5ea52ed56 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 29 九月 2026 14:29:08 +0800
Subject: [PATCH] 新疆-融邦 1.协同办公-协同审批:采购及销售审批进入销售流程后也可预览在台账上传的附件

---
 src/main/resources/mapper/purchase/PurchaseReturnOrdersMapper.xml |   62 ++++++++++++++++++++++++-------
 1 files changed, 48 insertions(+), 14 deletions(-)

diff --git a/src/main/resources/mapper/purchase/PurchaseReturnOrdersMapper.xml b/src/main/resources/mapper/purchase/PurchaseReturnOrdersMapper.xml
index 4b09890..fa6d51f 100644
--- a/src/main/resources/mapper/purchase/PurchaseReturnOrdersMapper.xml
+++ b/src/main/resources/mapper/purchase/PurchaseReturnOrdersMapper.xml
@@ -26,7 +26,18 @@
         SELECT
             pro.*,
             sm.supplier_name as supplier_name,
-            pl.purchase_contract_number as purchase_contract_number
+            pl.purchase_contract_number as purchase_contract_number,
+            CASE
+                WHEN EXISTS (
+                    SELECT 1
+                    FROM purchase_return_order_products prop
+                    INNER JOIN stock_out_record sor ON sor.record_id = prop.id
+                        AND sor.record_type = '9'
+                        AND sor.approval_status = 1
+                    WHERE prop.purchase_return_order_id = pro.id
+                ) THEN 1
+                ELSE 0
+            END AS stock_out_approved
         FROM purchase_return_orders pro
                  LEFT JOIN supplier_manage sm ON pro.supplier_id = sm.id
                  LEFT JOIN purchase_ledger pl ON pl.id = pro.purchase_ledger_id
@@ -134,20 +145,43 @@
                 GROUP BY stock_in_record_id
             ) rs ON rs.stock_in_record_id = sir.id
             LEFT JOIN (
+                <!-- 宸查攢鍞暟閲忥細鈶� 鎵嬪伐鍙戣揣鍗曞嚭搴撲粛璧� shipping_product_detail锛�
+                     鈶� 娌瑰搧鍑哄簱涓嶅啀浜� shipping_product_detail锛屾敼鎸夈�屽嚭搴撳崟鐨勮鏍�+鎵规銆嶅涓婇噰璐叆搴撴壒娆★紝
+                     姹囨�荤粦瀹氳鐨勫垎鎽婃暟閲忥紙涓�涓嚭搴撳崟缁戝涓彴璐︽椂锛岀粦瀹氳鏁伴噺涔嬪拰=鏁村崟鍑哄簱閲忥級 -->
                 SELECT
-                    inv.batch_no,
-                    inv.product_model_id,
-                    SUM(spd.quantity) AS total_sale_out_num
-                FROM shipping_product_detail spd
-                INNER JOIN shipping_info si
-                    ON si.id = spd.shipping_info_id
-                INNER JOIN stock_out_record sor
-                    ON sor.record_id = si.id
-                   AND sor.record_type = '13'
-                   AND sor.approval_status IN (0, 1, 3)
-                INNER JOIN stock_inventory inv
-                    ON inv.id = spd.stock_inventory_id
-                GROUP BY inv.batch_no, inv.product_model_id
+                    x.batch_no,
+                    x.product_model_id,
+                    SUM(x.total_sale_out_num) AS total_sale_out_num
+                FROM (
+                    SELECT
+                        inv.batch_no,
+                        inv.product_model_id,
+                        SUM(spd.quantity) AS total_sale_out_num
+                    FROM shipping_product_detail spd
+                    INNER JOIN shipping_info si
+                        ON si.id = spd.shipping_info_id
+                    INNER JOIN stock_out_record sor
+                        ON sor.record_id = si.id
+                       AND sor.record_type = '13'
+                       AND sor.approval_status IN (0, 1, 3)
+                    INNER JOIN stock_inventory inv
+                        ON inv.id = spd.stock_inventory_id
+                    GROUP BY inv.batch_no, inv.product_model_id
+
+                    UNION ALL
+
+                    SELECT
+                        sor.batch_no,
+                        sor.product_model_id,
+                        SUM(b.quantity) AS total_sale_out_num
+                    FROM stock_out_record_sales_ledger b
+                    INNER JOIN stock_out_record sor
+                        ON sor.id = b.stock_out_record_id
+                       AND sor.approval_status IN (0, 1, 3)
+                       AND (sor.type IS NULL OR sor.type = '')
+                    GROUP BY sor.batch_no, sor.product_model_id
+                ) x
+                GROUP BY x.batch_no, x.product_model_id
             ) so ON so.product_model_id = sir.product_model_id
                AND (so.batch_no = sir.batch_no OR (so.batch_no IS NULL AND sir.batch_no IS NULL))
         WHERE sir.approval_status = 1

--
Gitblit v1.9.3