From ba473638c25efe295a039ff4dd9585bbd8dd4474 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期三, 01 七月 2026 17:20:36 +0800
Subject: [PATCH] 销售退货:调整新增和编辑时计算可退货数量的逻辑
---
src/main/java/com/ruoyi/procurementrecord/service/impl/ReturnManagementServiceImpl.java | 9 +++++++++
src/main/java/com/ruoyi/procurementrecord/bean/vo/ShippingProductVo.java | 3 +++
src/main/java/com/ruoyi/procurementrecord/bean/dto/ReturnSaleProductDto.java | 3 +++
src/main/resources/mapper/sales/ShippingInfoMapper.xml | 7 +++++--
src/main/resources/mapper/procurementrecord/ReturnSaleProductMapper.xml | 15 ++++++---------
5 files changed, 26 insertions(+), 11 deletions(-)
diff --git a/src/main/java/com/ruoyi/procurementrecord/bean/dto/ReturnSaleProductDto.java b/src/main/java/com/ruoyi/procurementrecord/bean/dto/ReturnSaleProductDto.java
index 6cfae1b..b24ad14 100644
--- a/src/main/java/com/ruoyi/procurementrecord/bean/dto/ReturnSaleProductDto.java
+++ b/src/main/java/com/ruoyi/procurementrecord/bean/dto/ReturnSaleProductDto.java
@@ -35,4 +35,7 @@
@Schema(description = "鍙戣揣鍑哄簱鏁伴噺")
private BigDecimal stockOutNum;
+
+ @Schema(description = "寰呭鐞嗛��璐ф暟閲�")
+ private BigDecimal pendingReturnNum;
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/bean/vo/ShippingProductVo.java b/src/main/java/com/ruoyi/procurementrecord/bean/vo/ShippingProductVo.java
index 9f87aef..760d83f 100644
--- a/src/main/java/com/ruoyi/procurementrecord/bean/vo/ShippingProductVo.java
+++ b/src/main/java/com/ruoyi/procurementrecord/bean/vo/ShippingProductVo.java
@@ -40,4 +40,7 @@
@Schema(description = "鍚◣鍗曚环")
private BigDecimal taxInclusiveUnitPrice;
+
+ @Schema(description = "寰呭鐞嗛��璐ф暟閲�")
+ private BigDecimal pendingReturnNum;
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/service/impl/ReturnManagementServiceImpl.java b/src/main/java/com/ruoyi/procurementrecord/service/impl/ReturnManagementServiceImpl.java
index 048f1df..a6e3d6f 100644
--- a/src/main/java/com/ruoyi/procurementrecord/service/impl/ReturnManagementServiceImpl.java
+++ b/src/main/java/com/ruoyi/procurementrecord/service/impl/ReturnManagementServiceImpl.java
@@ -33,6 +33,7 @@
import java.math.BigDecimal;
import java.util.List;
+import java.util.stream.Collectors;
/**
* @author :yys
@@ -122,6 +123,14 @@
byId.setSettler(SecurityUtils.getLoginUser().getNickName());
byId.setRefundAmount(totalRefund);
updateById(byId);
+ //鏇存柊閫�璐т骇鍝佸垪琛ㄧ殑鐘舵��
+ List<ReturnSaleProduct> updateList = list.stream().map(m -> {
+ ReturnSaleProduct returnSaleProduct = new ReturnSaleProduct();
+ returnSaleProduct.setId(m.getId());
+ returnSaleProduct.setStatus(1);
+ return returnSaleProduct;
+ }).collect(Collectors.toList());
+ returnSaleProductService.updateBatchById(updateList);
// 3. 鏇存柊閿�鍞彴璐︾殑瀹為檯鍚堝悓閲戦
if (byId.getShippingId() != null) {
diff --git a/src/main/resources/mapper/procurementrecord/ReturnSaleProductMapper.xml b/src/main/resources/mapper/procurementrecord/ReturnSaleProductMapper.xml
index 6b15d56..d104b21 100644
--- a/src/main/resources/mapper/procurementrecord/ReturnSaleProductMapper.xml
+++ b/src/main/resources/mapper/procurementrecord/ReturnSaleProductMapper.xml
@@ -19,8 +19,9 @@
sor.outbound_batches,
sor.stock_out_num,
sor.batch_no,
- 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
+ GREATEST( sor.stock_out_num - COALESCE ( rs.total_return_num, 0 ), 0 ) AS un_quantity,
+ COALESCE ( rs.pending_return_num, 0 ) AS pending_return_num ,
+ COALESCE ( rs.return_num, 0 ) AS total_return_num
FROM return_sale_product rsp
LEFT JOIN return_management rm ON rm.id = rsp.return_management_id
LEFT JOIN shipping_info si ON si.id = rm.shipping_id
@@ -30,15 +31,11 @@
left join product_model pm on slp.product_model_id = pm.id
LEFT JOIN product p on pm.product_id = p.id
LEFT JOIN (SELECT stock_out_record_id,
- SUM(num) AS total_return_num
+ SUM(num) AS total_return_num,
+ SUM( CASE WHEN return_management_id =#{returnManagementId} AND STATUS = 0 THEN num ELSE 0 END ) AS pending_return_num ,
+ SUM( CASE WHEN STATUS = 1 THEN num ELSE 0 END ) AS return_num
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/sales/ShippingInfoMapper.xml b/src/main/resources/mapper/sales/ShippingInfoMapper.xml
index 6fc1842..8775933 100644
--- a/src/main/resources/mapper/sales/ShippingInfoMapper.xml
+++ b/src/main/resources/mapper/sales/ShippingInfoMapper.xml
@@ -78,7 +78,8 @@
sor.batch_no,
slp.tax_inclusive_unit_price,
GREATEST(sor.stock_out_num - COALESCE(rs.total_return_num, 0), 0) AS un_quantity,
- COALESCE(rs.total_return_num, 0) AS total_return_num
+ COALESCE(rs.return_num, 0) AS total_return_num,
+ COALESCE(rs.pending_return_num, 0) AS pending_return_num
FROM shipping_info si
LEFT JOIN shipping_product_detail spd ON spd.shipping_info_id = si.id
LEFT JOIN stock_out_record sor ON sor.record_id = si.id and sor.record_type = '13'
@@ -86,7 +87,9 @@
LEFT JOIN (
SELECT
stock_out_record_id,
- SUM(num) AS total_return_num
+ SUM(num) AS total_return_num,
+ SUM( CASE WHEN rsp.STATUS = 0 THEN rsp.num ELSE 0 END ) AS pending_return_num ,
+ SUM( CASE WHEN rsp.STATUS = 1 THEN rsp.num ELSE 0 END ) AS return_num
FROM return_sale_product rsp
left join return_management rm on rm.id = rsp.return_management_id
left join shipping_info si on si.id = rm.shipping_id
--
Gitblit v1.9.3