From e04db107292ac4e1802dce3b587620423cf0efb8 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期二, 12 五月 2026 16:50:09 +0800
Subject: [PATCH] refactor(purchase): 使用 productModelId 替换 salesLedgerProductId 以统一退货统计逻辑
---
src/main/java/com/ruoyi/purchase/dto/SimpleReturnOrderGroupDto.java | 2 +-
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java | 6 +++---
src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java | 6 +++---
src/main/resources/mapper/purchase/PurchaseReturnOrderProductsMapper.xml | 8 +++++---
4 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/src/main/java/com/ruoyi/purchase/dto/SimpleReturnOrderGroupDto.java b/src/main/java/com/ruoyi/purchase/dto/SimpleReturnOrderGroupDto.java
index dc9220a..e66382e 100644
--- a/src/main/java/com/ruoyi/purchase/dto/SimpleReturnOrderGroupDto.java
+++ b/src/main/java/com/ruoyi/purchase/dto/SimpleReturnOrderGroupDto.java
@@ -16,6 +16,6 @@
@AllArgsConstructor
@NoArgsConstructor
public class SimpleReturnOrderGroupDto implements Serializable {
- private Long salesLedgerProductId;
+ private Long productModelId;
private BigDecimal sumReturnQuantity;
}
diff --git a/src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java b/src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java
index a4c1106..9485919 100644
--- a/src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java
+++ b/src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java
@@ -71,9 +71,9 @@
if (CollUtil.isEmpty(list)) {
return AjaxResult.success(list);
}
- List<Long> productIds = list.stream().map(SalesLedgerProduct::getId).collect(Collectors.toList());
+ List<Long> productIds = list.stream().map(SalesLedgerProduct::getProductModelId).collect(Collectors.toList());
List<SimpleReturnOrderGroupDto> groupListByProductIds = purchaseReturnOrderProductsMapper.getReturnOrderGroupListByProductIds(productIds);
- Map<Long, BigDecimal> returnOrderGroupDtoMap = groupListByProductIds.stream().collect(Collectors.toMap(SimpleReturnOrderGroupDto::getSalesLedgerProductId, item -> item.getSumReturnQuantity()));
+ Map<Long, BigDecimal> returnOrderGroupDtoMap = groupListByProductIds.stream().collect(Collectors.toMap(SimpleReturnOrderGroupDto::getProductModelId, item -> item.getSumReturnQuantity()));
list.forEach(item -> {
if (item.getFutureTickets().compareTo(BigDecimal.ZERO) == 0) {
@@ -90,7 +90,7 @@
}
}
// 缁熻閫�璐ф暟閲�
- BigDecimal returnQuality = returnOrderGroupDtoMap.getOrDefault(item.getId(), BigDecimal.ZERO);
+ BigDecimal returnQuality = returnOrderGroupDtoMap.getOrDefault(item.getProductModelId(), BigDecimal.ZERO);
item.setReturnQuality(returnQuality);
item.setAvailableQuality(item.getQuantity().subtract(returnQuality));
});
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
index 9803611..a01fbde 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -142,14 +142,14 @@
List<SalesLedgerProduct> salesLedgerProducts = salesLedgerProductMapper.selectList(productWrapper);
if (type.equals(SaleEnum.PURCHASE)) {
// 鏌ヨ閫�璐т俊鎭�
- List<Long> productIds = salesLedgerProducts.stream().map(SalesLedgerProduct::getId).collect(Collectors.toList());
+ List<Long> productIds = salesLedgerProducts.stream().map(SalesLedgerProduct::getProductModelId).collect(Collectors.toList());
List<SimpleReturnOrderGroupDto> groupListByProductIds = new ArrayList<>();
if(CollectionUtils.isNotEmpty(productIds)){
groupListByProductIds = purchaseReturnOrderProductsMapper.getReturnOrderGroupListByProductIds(productIds);
}
- Map<Long, BigDecimal> returnOrderGroupDtoMap = groupListByProductIds.stream().collect(Collectors.toMap(SimpleReturnOrderGroupDto::getSalesLedgerProductId, SimpleReturnOrderGroupDto::getSumReturnQuantity));
+ Map<Long, BigDecimal> returnOrderGroupDtoMap = groupListByProductIds.stream().collect(Collectors.toMap(SimpleReturnOrderGroupDto::getProductModelId, SimpleReturnOrderGroupDto::getSumReturnQuantity));
salesLedgerProducts.forEach(item -> {
- BigDecimal returnQuality = returnOrderGroupDtoMap.getOrDefault(item.getId(), BigDecimal.ZERO);
+ BigDecimal returnQuality = returnOrderGroupDtoMap.getOrDefault(item.getProductModelId(), BigDecimal.ZERO);
item.setReturnQuality(returnQuality);
item.setAvailableQuality(item.getQuantity().subtract(returnQuality));
});
diff --git a/src/main/resources/mapper/purchase/PurchaseReturnOrderProductsMapper.xml b/src/main/resources/mapper/purchase/PurchaseReturnOrderProductsMapper.xml
index cd13f3c..db6c7e6 100644
--- a/src/main/resources/mapper/purchase/PurchaseReturnOrderProductsMapper.xml
+++ b/src/main/resources/mapper/purchase/PurchaseReturnOrderProductsMapper.xml
@@ -13,12 +13,14 @@
</resultMap>
<select id="getReturnOrderGroupListByProductIds" resultType="com.ruoyi.purchase.dto.SimpleReturnOrderGroupDto"
parameterType="java.util.List">
- select t1.sales_ledger_product_id,sum(t1.return_quantity) as sum_return_quantity from purchase_return_order_products as t1
+ select t1.product_model_id,
+ sum(t1.return_quantity) as sum_return_quantity
+ from purchase_return_order_products as t1
inner join purchase_return_orders as t2 on t1.purchase_return_order_id = t2.id
- WHERE t1.sales_ledger_product_id IN
+ WHERE t1.product_model_id IN
<foreach item="id" collection="productIds" separator="," open="(" close=")">
#{id}
</foreach>
- group by t1.sales_ledger_product_id
+ group by t1.product_model_id
</select>
</mapper>
--
Gitblit v1.9.3