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/sales/SalesLedgerProductMapper.xml | 3 ++-
src/main/resources/mapper/procurementrecord/ReturnSaleProductMapper.xml | 7 ++++++-
src/main/resources/mapper/purchase/PurchaseReturnOrdersMapper.xml | 7 ++++++-
3 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/src/main/resources/mapper/procurementrecord/ReturnSaleProductMapper.xml b/src/main/resources/mapper/procurementrecord/ReturnSaleProductMapper.xml
index 93bd879..6b15d56 100644
--- a/src/main/resources/mapper/procurementrecord/ReturnSaleProductMapper.xml
+++ b/src/main/resources/mapper/procurementrecord/ReturnSaleProductMapper.xml
@@ -19,7 +19,7 @@
sor.outbound_batches,
sor.stock_out_num,
sor.batch_no,
- GREATEST(sor.stock_out_num - COALESCE(rsp.num, 0), 0) AS un_quantity,
+ GREATEST(sor.stock_out_num - COALESCE(rs1.total_return_num1, 0), 0) AS un_quantity,
COALESCE(rs.total_return_num, 0) AS total_return_num
FROM return_sale_product rsp
LEFT JOIN return_management rm ON rm.id = rsp.return_management_id
@@ -34,6 +34,11 @@
FROM return_sale_product
WHERE 1 = 1 and return_management_id = #{returnManagementId}
GROUP BY stock_out_record_id) rs ON rs.stock_out_record_id = sor.id
+ LEFT JOIN (SELECT stock_out_record_id,
+ SUM(num) AS total_return_num1
+ FROM return_sale_product
+ WHERE 1 = 1
+ GROUP BY stock_out_record_id) rs1 ON rs1.stock_out_record_id = sor.id
where rm.id =#{returnManagementId}
</select>
<select id="listReturnSaleProduct" resultType="com.ruoyi.procurementrecord.bean.dto.ReturnSaleProductDto">
diff --git a/src/main/resources/mapper/purchase/PurchaseReturnOrdersMapper.xml b/src/main/resources/mapper/purchase/PurchaseReturnOrdersMapper.xml
index a001e9a..6732a66 100644
--- a/src/main/resources/mapper/purchase/PurchaseReturnOrdersMapper.xml
+++ b/src/main/resources/mapper/purchase/PurchaseReturnOrdersMapper.xml
@@ -132,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
@@ -143,6 +143,11 @@
FROM purchase_return_order_products
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>
diff --git a/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml b/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
index f3fa32d..ec1124a 100644
--- a/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
+++ b/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
@@ -48,7 +48,8 @@
END as has_sufficient_stock,
(IFNULL(T1.quantity, 0) - IFNULL(t3.shipped_quantity, 0)) as no_quantity,
CASE
- WHEN (IFNULL(T1.quantity, 0) - IFNULL(t3.shipped_quantity, 0)) > 0 THEN '寰呭彂璐�'
+ WHEN IFNULL(t3.shipped_quantity, 0) = 0 THEN '寰呭彂璐�'
+ WHEN (IFNULL(T1.quantity, 0) - IFNULL(t3.shipped_quantity, 0)) > 0 THEN '閮ㄥ垎鍙戣揣'
ELSE '宸插彂璐�'
END as shippingStatus
FROM
--
Gitblit v1.9.3