From 9cd4074a456fd5c422506279191b6015836347e5 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 30 十月 2026 10:08:35 +0800
Subject: [PATCH] feat: 设备台账启用状态、审批签核展示与导入健壮性

---
 src/main/resources/mapper/basic/SupplierManageMapper.xml |   27 +++++++++++++++++----------
 1 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/src/main/resources/mapper/basic/SupplierManageMapper.xml b/src/main/resources/mapper/basic/SupplierManageMapper.xml
index 2bc6fbd..fa8d471 100644
--- a/src/main/resources/mapper/basic/SupplierManageMapper.xml
+++ b/src/main/resources/mapper/basic/SupplierManageMapper.xml
@@ -113,18 +113,25 @@
                select
                    app.id,
                    app.payment_amount,
-                   pl.id as purchase_ledger_id
+                   -- 浼樺厛鎸夊叆搴撳崟鍏宠仈閲囪喘鍚堝悓锛涘叆搴撳崟鏈鏍�/涓嶅瓨鍦ㄦ椂锛屽洖閫�鎸変粯娆剧敵璇蜂腑鐨勯噰璐悎鍚屽彿鍏宠仈锛�
+                   -- 閬垮厤鈥滄柊澧炰粯娆锯�濇垚鍔熷悗鏄庣粏涓湅涓嶅埌璇ョ瑪浠樻
+                   COALESCE(
+                       (select min(pl_sir.id)
+                        from stock_in_record sir
+                        left join quality_inspect qi on sir.record_type = 10 and sir.record_id = qi.id
+                        left join purchase_ledger pl_sir
+                               on pl_sir.id = if(sir.record_type = 7, sir.record_id, qi.purchase_ledger_id)
+                        where find_in_set(sir.id, apa.stock_in_record_ids) > 0
+                          and sir.approval_status = 1
+                          and sir.record_type in ('7','10')),
+                       (select pl_no.id
+                        from purchase_ledger pl_no
+                        where pl_no.purchase_contract_number = apa.payment_content
+                        order by pl_no.id
+                        limit 1)
+                   ) as purchase_ledger_id
                from account_purchase_payment app
                left join account_payment_application apa on app.account_payment_application_id = apa.id
-               left join stock_in_record sir on FIND_IN_SET(sir.id, apa.stock_in_record_ids) > 0
-                   -- 10 绫诲瀷鎵嶅叧鑱旇川妫�琛�
-               LEFT JOIN quality_inspect qi ON sir.record_type = 10 AND sir.record_id = qi.id
-                   -- 鍔ㄦ�佸叧鑱旈噰璐紙鑷姩閫傞厤 7 鍜� 10锛�
-               LEFT JOIN purchase_ledger pl
-                         ON pl.id = IF(sir.record_type = 7, sir.record_id, qi.purchase_ledger_id)
-               WHERE sir.approval_status = 1
-                 AND sir.record_type IN ('7','10')
-               group by app.id, pl.id
            ) t
            left join purchase_ledger pl on t.purchase_ledger_id = pl.id
            group by pl.id

--
Gitblit v1.9.3