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/java/com/ruoyi/purchase/vo/SupplierTransactionsVo.java | 11 +-
src/main/java/com/ruoyi/sales/vo/CustomerTransactionsDetailsVo.java | 8 +-
src/main/resources/mapper/basic/CustomerMapper.xml | 42 +---------
src/main/resources/mapper/basic/SupplierManageMapper.xml | 124 ++++++++++++------------------
src/main/java/com/ruoyi/sales/vo/CustomerTransactionsVo.java | 11 +-
src/main/java/com/ruoyi/purchase/vo/SupplierTransactionsDetailsVo.java | 8 +-
6 files changed, 71 insertions(+), 133 deletions(-)
diff --git a/src/main/java/com/ruoyi/purchase/vo/SupplierTransactionsDetailsVo.java b/src/main/java/com/ruoyi/purchase/vo/SupplierTransactionsDetailsVo.java
index 3533e6e..845825e 100644
--- a/src/main/java/com/ruoyi/purchase/vo/SupplierTransactionsDetailsVo.java
+++ b/src/main/java/com/ruoyi/purchase/vo/SupplierTransactionsDetailsVo.java
@@ -24,10 +24,10 @@
@Schema(description = "鍚堝悓閲戦")
private BigDecimal contractAmount;
- @Schema(description = "浠樻閲戦")
- private BigDecimal paymentAmount;
+ @Schema(description = "宸插叆搴撻噾棰�")
+ private BigDecimal shippedAmount;
- @Schema(description = "搴斾粯閲戦")
- private BigDecimal payableAmount;
+ @Schema(description = "鏈叆搴撻噾棰�")
+ private BigDecimal unshippedAmount;
}
diff --git a/src/main/java/com/ruoyi/purchase/vo/SupplierTransactionsVo.java b/src/main/java/com/ruoyi/purchase/vo/SupplierTransactionsVo.java
index 35cefc0..df811bb 100644
--- a/src/main/java/com/ruoyi/purchase/vo/SupplierTransactionsVo.java
+++ b/src/main/java/com/ruoyi/purchase/vo/SupplierTransactionsVo.java
@@ -16,15 +16,12 @@
private String supplierName;
@Schema(description = "鍚堝悓鎬婚噾棰�")
- //璇ヤ緵搴斿晢閲囪喘鍚堝悓绱閲戦
private BigDecimal contractAmounts;
- @Schema(description = "浠樻閲戦")
- //璇ヤ緵搴斿晢閲囪喘浠樻绱閲戦
- private BigDecimal paymentAmount;
+ @Schema(description = "宸插叆搴撻噾棰�")
+ private BigDecimal shippedAmount;
- @Schema(description = "搴斾粯閲戦")
- //璇ヤ緵搴斿晢閲囪喘搴斾粯绱閲戦=璐㈠姟(鍏ュ簱-閫�璐�)
- private BigDecimal payableAmount;
+ @Schema(description = "鏈叆搴撻噾棰�")
+ private BigDecimal unshippedAmount;
}
diff --git a/src/main/java/com/ruoyi/sales/vo/CustomerTransactionsDetailsVo.java b/src/main/java/com/ruoyi/sales/vo/CustomerTransactionsDetailsVo.java
index 992860e..96ed799 100644
--- a/src/main/java/com/ruoyi/sales/vo/CustomerTransactionsDetailsVo.java
+++ b/src/main/java/com/ruoyi/sales/vo/CustomerTransactionsDetailsVo.java
@@ -24,10 +24,10 @@
@Schema(description = "鍚堝悓閲戦")
private BigDecimal contractAmount;
- @Schema(description = "鏀舵閲戦")
- private BigDecimal receiptPaymentAmount;
+ @Schema(description = "宸插嚭搴撻噾棰�")
+ private BigDecimal shippedAmount;
- @Schema(description = "搴旀敹閲戦")
- private BigDecimal receiptableAmount;
+ @Schema(description = "鏈嚭搴撻噾棰�")
+ private BigDecimal unshippedAmount;
}
diff --git a/src/main/java/com/ruoyi/sales/vo/CustomerTransactionsVo.java b/src/main/java/com/ruoyi/sales/vo/CustomerTransactionsVo.java
index 7b8fc1a..a88b6ea 100644
--- a/src/main/java/com/ruoyi/sales/vo/CustomerTransactionsVo.java
+++ b/src/main/java/com/ruoyi/sales/vo/CustomerTransactionsVo.java
@@ -16,15 +16,12 @@
private String customerName;
@Schema(description = "鍚堝悓鎬婚噾棰�")
- //璇ュ鎴烽攢鍞悎鍚岀疮璁¢噾棰�
private BigDecimal contractAmounts;
- @Schema(description = "鏀舵閲戦")
- //璇ュ鎴烽攢鍞敹娆剧疮璁¢噾棰�
- private BigDecimal receiptPaymentAmount;
+ @Schema(description = "宸插嚭搴撻噾棰�")
+ private BigDecimal shippedAmount;
- @Schema(description = "搴旀敹閲戦")
- //璇ュ鎴烽攢鍞簲鏀剁疮璁¢噾棰�=璐㈠姟(鍑哄簱-閫�璐�)
- private BigDecimal receiptableAmount;
+ @Schema(description = "鏈嚭搴撻噾棰�")
+ private BigDecimal unshippedAmount;
}
diff --git a/src/main/resources/mapper/basic/CustomerMapper.xml b/src/main/resources/mapper/basic/CustomerMapper.xml
index 8117c66..7453e03 100644
--- a/src/main/resources/mapper/basic/CustomerMapper.xml
+++ b/src/main/resources/mapper/basic/CustomerMapper.xml
@@ -107,14 +107,14 @@
</if>
</where>
</select>
+
<select id="customewTransactions" resultType="com.ruoyi.sales.vo.CustomerTransactionsVo">
select T1.customer_id,
c.customer_name,
T1.contractAmounts,
- IFNULL(T2.receiptPaymentAmount, 0) AS receiptPaymentAmount,
- IFNULL(T3.outboundAmount, 0) - IFNULL(T4.returnAmount, 0) AS receiptableAmount
+ IFNULL(T3.outboundAmount, 0) AS shippedAmount,
+ GREATEST(T1.contractAmounts - IFNULL(T3.outboundAmount, 0), 0) AS unshippedAmount
from (select customer_id, sum(contract_amount) as contractAmounts from sales_ledger group by customer_id) T1
- left join (select customer_id, sum(collection_amount) as receiptPaymentAmount from account_sales_collection group by customer_id) T2 on T1.customer_id = T2.customer_id
left join (
SELECT
sl.customer_id,
@@ -128,16 +128,6 @@
and slp.type = 1
group by sl.customer_id
) T3 on T3.customer_id=T1.customer_id
- left join (
- select
- sl.customer_id,
- sum(rm.refund_amount) as returnAmount
- from return_management rm
- left join shipping_info si on rm.shipping_id = si.id
- left join sales_ledger sl on si.sales_ledger_id = sl.id
- where rm.status=1
- group by sl.customer_id
- ) T4 on T4.customer_id=T1.customer_id
left join customer c on T1.customer_id = c.id
<where>
<if test="customerName!=null and customerName!=''">
@@ -145,27 +135,16 @@
</if>
</where>
</select>
+
<select id="customewTransactionsDetails"
resultType="com.ruoyi.sales.vo.CustomerTransactionsDetailsVo">
select sl.id salesLedgerId,
sl.sales_contract_no,
sl.execution_date,
sl.contract_amount,
- IFNULL(T1.receiptPaymentAmount, 0) AS receiptPaymentAmount,
- IFNULL(T2.outboundAmount, 0) - IFNULL(T3.returnAmount, 0) AS receiptableAmount
+ IFNULL(T2.outboundAmount, 0) AS shippedAmount,
+ GREATEST(sl.contract_amount - IFNULL(T2.outboundAmount, 0), 0) AS unshippedAmount
from sales_ledger sl
- left join (
- select
- sl.id,
- sum(ascc.collection_amount) as receiptPaymentAmount
- from account_sales_collection ascc
- left join stock_out_record sor on FIND_IN_SET(sor.id, ascc.stock_out_record_ids) > 0
- left join shipping_info s on sor.record_id = s.id
- LEFT JOIN sales_ledger sl ON s.sales_ledger_id = sl.id
- WHERE sor.record_type='13'
- and sor.approval_status=1
- group by sl.id
- )T1 on T1.id = sl.id
left join (
SELECT
sl.id,
@@ -179,15 +158,6 @@
and slp.type = 1
group by sl.id
)T2 on T2.id = sl.id
- left join (
- select sl.id,
- sum(rm.refund_amount) as returnAmount
- from return_management rm
- left join shipping_info si on rm.shipping_id = si.id
- left join sales_ledger sl on si.sales_ledger_id = sl.id
- where rm.status=1
- group by sl.id
- )T3 on T3.id = sl.id
where sl.customer_id = #{customerId}
</select>
</mapper>
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