From aa4fe9378455c7b0492cdac07bc55752b4bfc312 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期三, 13 五月 2026 17:23:23 +0800
Subject: [PATCH] fix(mapper): 优化退货和发货数量计算逻辑
---
src/main/resources/mapper/purchase/PurchaseReturnOrdersMapper.xml | 22 +++++++++++++++++-----
1 files changed, 17 insertions(+), 5 deletions(-)
diff --git a/src/main/resources/mapper/purchase/PurchaseReturnOrdersMapper.xml b/src/main/resources/mapper/purchase/PurchaseReturnOrdersMapper.xml
index 12f62ac..6732a66 100644
--- a/src/main/resources/mapper/purchase/PurchaseReturnOrdersMapper.xml
+++ b/src/main/resources/mapper/purchase/PurchaseReturnOrdersMapper.xml
@@ -57,14 +57,21 @@
resultType="com.ruoyi.account.bean.vo.PurchaseReturnVo">
select pro.id,
pro.no returnNo,
+ t.inboundBatches,
sm.supplier_name,
pro.prepared_at,
pro.total_amount,
CASE pro.return_type WHEN 0 THEN '閫�璐ч��娆�' WHEN 1 THEN '鎷掓敹' END AS returnType,
pl.purchase_contract_number
from purchase_return_orders pro
- left join supplier_manage sm on pro.supplier_id = sm.id
- left join purchase_ledger pl on pro.purchase_ledger_id = pl.id
+ left join
+ (select prop.purchase_return_order_id,
+ GROUP_CONCAT(sir.inbound_batches SEPARATOR ',') AS inboundBatches
+ from purchase_return_order_products prop
+ left join stock_in_record sir on prop.stock_in_record_id = sir.id
+ GROUP BY prop.purchase_return_order_id) t on t.purchase_return_order_id = pro.id
+ left join supplier_manage sm on pro.supplier_id = sm.id
+ left join purchase_ledger pl on pro.purchase_ledger_id = pl.id
where 1=1
<if test="req.returnNo != null and req.returnNo != ''">
and pro.no like concat('%',#{req.returnNo},'%')
@@ -81,7 +88,7 @@
SELECT
sir.id,
sir.product_model_id,
- slp.id saleLedgerProductId,
+ slp.id salesLedgerProductId,
slp.product_category,
slp.specification_model,
slp.unit,
@@ -125,7 +132,7 @@
slp.tax_inclusive_unit_price,
prop.return_quantity,
prop.purchase_return_order_id,
- GREATEST(sir.stock_in_num - COALESCE(prop.return_quantity, 0), 0) AS un_quantity,
+ GREATEST(sir.stock_in_num - COALESCE(rs1.total_return_num1, 0), 0) AS un_quantity,
COALESCE(rs.total_return_num, 0) AS total_return_num
from purchase_return_order_products prop
left join purchase_return_orders pro on prop.purchase_return_order_id = pro.id
@@ -134,8 +141,13 @@
LEFT JOIN (SELECT stock_in_record_id,
SUM(return_quantity) AS total_return_num
FROM purchase_return_order_products
- WHERE 1 = 1 and purchase_return_order_id != #{id}
+ WHERE 1 = 1 and purchase_return_order_id = #{id}
GROUP BY stock_in_record_id) rs ON rs.stock_in_record_id = sir.id
+ LEFT JOIN (SELECT stock_in_record_id,
+ SUM(return_quantity) AS total_return_num1
+ FROM purchase_return_order_products
+ WHERE 1 = 1 and purchase_return_order_id = #{id}
+ GROUP BY stock_in_record_id) rs1 ON rs1.stock_in_record_id = sir.id
where pro.id = #{id}
</select>
</mapper>
--
Gitblit v1.9.3