From 655cb5bc1e4f319477f5bc08af4ddc825ce7a5a3 Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期六, 13 六月 2026 12:35:28 +0800
Subject: [PATCH] fix: 采购台账不合格处理 放行 算入库

---
 src/main/resources/mapper/basic/SupplierManageMapper.xml    |   23 +++++++++++++++++++++++
 src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml |   17 +++++++++++++++++
 2 files changed, 40 insertions(+), 0 deletions(-)

diff --git a/src/main/resources/mapper/basic/SupplierManageMapper.xml b/src/main/resources/mapper/basic/SupplierManageMapper.xml
index c38dac0..1df63aa 100644
--- a/src/main/resources/mapper/basic/SupplierManageMapper.xml
+++ b/src/main/resources/mapper/basic/SupplierManageMapper.xml
@@ -178,6 +178,29 @@
                                    ON slp_agg.sales_ledger_id = pl2.id
                                        AND slp_agg.product_model_id = sir.product_model_id
                WHERE sir.approval_status = 1 AND sir.record_type = 10
+               UNION ALL
+               SELECT sir.stock_in_num * slp_agg.tax_inclusive_unit_price AS inbound_amount,
+                      slp_agg.sales_ledger_id
+               FROM stock_in_record sir
+                        INNER JOIN quality_unqualified qu
+                                   ON qu.id = sir.record_id
+                        INNER JOIN quality_inspect qi
+                                   ON qi.id = qu.inspect_id
+                        INNER JOIN purchase_ledger pl2
+                                   ON pl2.id = qi.purchase_ledger_id
+                        INNER JOIN (
+                   SELECT
+                       sales_ledger_id,
+                       product_model_id,
+                       MIN(tax_inclusive_unit_price) AS tax_inclusive_unit_price
+                   FROM sales_ledger_product
+                   WHERE type = 2
+                   GROUP BY sales_ledger_id, product_model_id
+               ) slp_agg
+                                   ON slp_agg.sales_ledger_id = pl2.id
+                                       AND slp_agg.product_model_id = sir.product_model_id
+               WHERE sir.approval_status = 1
+                 AND sir.record_type = 11
            ) t
            GROUP BY t.sales_ledger_id
        ) T2 ON T2.sales_ledger_id = pl.id
diff --git a/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml b/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
index 2156690..ea98e2b 100644
--- a/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
+++ b/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
@@ -88,6 +88,23 @@
                                 AND slp.sales_ledger_id = qi.purchase_ledger_id
                                 AND slp.product_model_id = qi.product_model_id
                             WHERE sir.approval_status = 1
+
+                            UNION ALL
+
+        SELECT slp.id AS sales_ledger_product_id,
+        sir.stock_in_num
+        FROM stock_in_record sir
+        INNER JOIN quality_unqualified qu
+        ON TRIM(sir.record_type) = '11'
+        AND sir.record_id = qu.id
+        INNER JOIN quality_inspect qi
+        ON qi.id = qu.inspect_id
+        INNER JOIN sales_ledger_product slp
+        ON slp.type = 2
+        AND slp.sales_ledger_id = qi.purchase_ledger_id
+        AND slp.product_model_id = qi.product_model_id
+        WHERE sir.approval_status = 1
+
                         ) rel
                         GROUP BY rel.sales_ledger_product_id
                     ) approved_qty ON approved_qty.sales_ledger_product_id = slp.id

--
Gitblit v1.9.3