From ad942d6dd78f9d9ffbbe6c61011ac87e0baf0777 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期日, 24 五月 2026 14:03:55 +0800
Subject: [PATCH] fix: 供应商/客户往来修改回款和付款
---
src/main/resources/mapper/basic/SupplierManageMapper.xml | 124 ++++++++++++++++-------------------------
1 files changed, 49 insertions(+), 75 deletions(-)
diff --git a/src/main/resources/mapper/basic/SupplierManageMapper.xml b/src/main/resources/mapper/basic/SupplierManageMapper.xml
index 5c5af54..6f3ec54 100644
--- a/src/main/resources/mapper/basic/SupplierManageMapper.xml
+++ b/src/main/resources/mapper/basic/SupplierManageMapper.xml
@@ -68,95 +68,69 @@
</if>
</where>
</select>
+
<select id="supplierTransactions" resultType="com.ruoyi.purchase.vo.SupplierTransactionsVo">
- select T1.supplier_id,
+ SELECT T1.supplier_id,
sm.supplier_name,
T1.contractAmounts,
- IFNULL(T2.paymentAmount, 0) AS paymentAmount,
- IFNULL(T3.InboundAmount, 0) - IFNULL(T4.returnAmount, 0) AS payableAmount
- from (select supplier_id, sum(contract_amount) as contractAmounts from purchase_ledger group by supplier_id) T1
- left join (select supplier_id, sum(payment_amount) as paymentAmount from account_purchase_payment group by supplier_id) T2 on T1.supplier_id = T2.supplier_id
- left join (
- SELECT
- pl.supplier_id,
- sum(sir.stock_in_num * slp.tax_inclusive_unit_price) AS InboundAmount
- FROM stock_in_record sir
- -- 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)
- -- 浜у搧鍏宠仈涓嶅姩
- LEFT JOIN sales_ledger_product slp ON pl.id = slp.sales_ledger_id
- -- 鏉′欢
- WHERE sir.approval_status = 1 AND slp.type = 2
- AND sir.record_type IN ('7','10')
- group by pl.supplier_id
- ) T3 on T3.supplier_id=T1.supplier_id
- left join (
- select
- supplier_id,
- sum(total_amount) as returnAmount
- from purchase_return_orders pro
- group by supplier_id
- ) T4 on T4.supplier_id=T1.supplier_id
- left join supplier_manage sm on T1.supplier_id = sm.id
+ IFNULL(T3.InboundAmount, 0) AS shippedAmount,
+ T1.contractAmounts - IFNULL(T3.InboundAmount, 0) AS unshippedAmount
+ FROM (SELECT supplier_id, SUM(contract_amount) AS contractAmounts FROM purchase_ledger GROUP BY supplier_id) T1
+ LEFT JOIN (
+ SELECT t.supplier_id,
+ SUM(t.inbound_amount) AS InboundAmount
+ FROM (
+ SELECT sir.stock_in_num * slp.tax_inclusive_unit_price AS inbound_amount, pl.supplier_id
+ FROM stock_in_record sir
+ INNER JOIN sales_ledger_product slp ON slp.id = sir.record_id
+ INNER JOIN purchase_ledger pl ON pl.id = slp.sales_ledger_id
+ WHERE sir.approval_status = 1 AND sir.record_type = 7 AND slp.type = 2
+ UNION ALL
+ SELECT sir.stock_in_num * slp.tax_inclusive_unit_price AS inbound_amount, pl.supplier_id
+ FROM stock_in_record sir
+ INNER JOIN quality_inspect qi ON qi.id = sir.record_id
+ INNER JOIN purchase_ledger pl ON pl.id = qi.purchase_ledger_id
+ INNER JOIN sales_ledger_product slp ON slp.sales_ledger_id = pl.id AND slp.product_model_id = sir.product_model_id
+ WHERE sir.approval_status = 1 AND sir.record_type = 10 AND slp.type = 2
+ ) t
+ GROUP BY t.supplier_id
+ ) T3 ON T3.supplier_id = T1.supplier_id
+ LEFT JOIN supplier_manage sm ON T1.supplier_id = sm.id
<where>
<if test="supplierName!=null and supplierName!=''">
AND sm.supplier_name LIKE CONCAT('%',#{supplierName},'%')
</if>
</where>
</select>
+
<select id="supplierTransactionsDetails"
resultType="com.ruoyi.purchase.vo.SupplierTransactionsDetailsVo">
- select pl.id purchaseLedgerId,
+ SELECT pl.id purchaseLedgerId,
pl.purchase_contract_number,
pl.execution_date,
pl.contract_amount,
- IFNULL(T1.paymentAmount, 0) AS paymentAmount,
- IFNULL(T2.InboundAmount, 0) - IFNULL(T3.returnAmount, 0) AS payableAmount
- from purchase_ledger pl
- left join (
- select
- pl.id,
- sum(app.payment_amount) as paymentAmount
- 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 pl.id
- )T1 on T1.id = pl.id
- left join (
- SELECT
- pl.id,
- sum(sir.stock_in_num * slp.tax_inclusive_unit_price) AS InboundAmount
- FROM stock_in_record sir
- -- 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)
- -- 浜у搧鍏宠仈涓嶅姩
- LEFT JOIN sales_ledger_product slp ON pl.id = slp.sales_ledger_id
- -- 鏉′欢
- WHERE sir.approval_status = 1 AND slp.type = 2
- AND sir.record_type IN ('7','10')
- group by pl.id
- )T2 on T2.id = pl.id
- left join (
- select pl.id,
- sum(pro.total_amount) as returnAmount
- from purchase_return_orders pro
- left join purchase_ledger pl on pro.purchase_ledger_id = pl.id
- group by pl.id
- )T3 on T3.id = pl.id
- where pl.supplier_id = #{supplierId}
+ IFNULL(T2.InboundAmount, 0) AS shippedAmount,
+ pl.contract_amount - IFNULL(T2.InboundAmount, 0) AS unshippedAmount
+ FROM purchase_ledger pl
+ LEFT JOIN (
+ SELECT t.sales_ledger_id,
+ SUM(t.inbound_amount) AS InboundAmount
+ FROM (
+ SELECT sir.stock_in_num * slp.tax_inclusive_unit_price AS inbound_amount, slp.sales_ledger_id
+ FROM stock_in_record sir
+ INNER JOIN sales_ledger_product slp ON slp.id = sir.record_id
+ WHERE sir.approval_status = 1 AND sir.record_type = 7 AND slp.type = 2
+ UNION ALL
+ SELECT sir.stock_in_num * slp.tax_inclusive_unit_price AS inbound_amount, slp.sales_ledger_id
+ FROM stock_in_record sir
+ INNER JOIN quality_inspect qi ON qi.id = sir.record_id
+ INNER JOIN purchase_ledger pl2 ON pl2.id = qi.purchase_ledger_id
+ INNER JOIN sales_ledger_product slp ON slp.sales_ledger_id = pl2.id AND slp.product_model_id = sir.product_model_id
+ WHERE sir.approval_status = 1 AND sir.record_type = 10 AND slp.type = 2
+ ) t
+ GROUP BY t.sales_ledger_id
+ ) T2 ON T2.sales_ledger_id = pl.id
+ WHERE pl.supplier_id = #{supplierId}
</select>
</mapper>
--
Gitblit v1.9.3