From d98640df9936007201b9fe2f2a2219a97e85de11 Mon Sep 17 00:00:00 2001 From: zjf <1799650030@qq.com> Date: Thu, 18 Sep 2025 18:26:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=205.=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E5=90=8E=E7=9A=84=E5=85=A5=E5=BA=93=E6=80=BB=E9=87=91=E9=A2=9D?= =?UTF-8?q?=E5=92=8C=E5=85=A5=E5=BA=93=E5=AE=8C=E5=90=8E=E7=9A=84=E6=80=BB?= =?UTF-8?q?=E9=87=91=E9=A2=9D=E6=98=BE=E7=A4=BA=E4=B8=8D=E4=B8=80=E6=A0=B7?= =?UTF-8?q?(=E6=8C=89=E7=85=A7=E5=8E=9F=E8=BF=9B=E4=BB=B7=E6=A0=B8?= =?UTF-8?q?=E7=AE=97=E7=9A=84=E4=BB=B7=E6=A0=BC)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SmErpInventoryRecordsServiceImpl.java | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpInventoryRecordsServiceImpl.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpInventoryRecordsServiceImpl.java index b019f99e9..0ce371795 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpInventoryRecordsServiceImpl.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpInventoryRecordsServiceImpl.java @@ -230,17 +230,26 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl cgPlanItemEntities = smErpInventoryRecordsItemMapper.selectList(smErpCgPlanItemEntityLambdaQueryWrapper); // 按 inventoryId 分组并计算每个分组的 totalAmount 总和 - Map inventoryTotalAmountMap = cgPlanItemEntities.stream() +// Map inventoryTotalAmountMap = cgPlanItemEntities.stream() +// .collect(Collectors.groupingBy( +// SmErpInventoryRecordsItemEntity::getInventoryId, +// Collectors.summingInt(item -> +// (int) (Math.abs(item.getQuantity()) * (item.getRealPrice())) +// ) +// ); + + Map> smerpInventoryRecordsItemEntityMap= cgPlanItemEntities.stream() .collect(Collectors.groupingBy( - SmErpInventoryRecordsItemEntity::getInventoryId, - Collectors.summingInt(item -> - (int) (Math.abs(item.getQuantity()) * item.getUnitPrice()) - ) - )); + SmErpInventoryRecordsItemEntity::getInventoryId)); + // 将计算出的 totalAmount 总和设置回 pageData 的 records 中 records.forEach(record -> { - Integer totalAmount = inventoryTotalAmountMap.getOrDefault(record.getId(), 0); - record.setTotalAmount(totalAmount); +// if +// Integer totalAmount = inventoryTotalAmountMap.getOrDefault(record.getId(), 0); + List smErpInventoryRecordsItemEntityList = smerpInventoryRecordsItemEntityMap.get(record.getId()); +// record.setTotalAmount(totalAmount); + //todo 这里有一个问题就是出入库编辑的时候,没有更新主表的totalAmount,所以一直用的子表的totalAmount,子表的totalAmount又存在为空的情况,涉及到多个业务 + record.setTotalAmount(smErpInventoryRecordsItemEntityList.stream().mapToInt(item -> item.getTotalAmount()==null?0:item.getTotalAmount()).sum()); }); Set erpSpuIds = cgPlanItemEntities.stream().map(SmErpInventoryRecordsItemEntity::getErpSpuId).collect(Collectors.toSet()); @@ -477,7 +486,6 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl units = items.stream().map(s -> s.getUnitId()).collect(Collectors.toSet()); List smErpUnitEntities = smErpUnitMapper.selectList(new LambdaQueryWrapper().in(SmErpUnitEntity::getId, units)); Map unitMap = smErpUnitEntities.stream().collect(Collectors.toMap(SmErpUnitEntity::getId, unit -> unit)); - for (InventoryRecordEditItemDTO item : items){ SmErpInventoryRecordsItemEntity smErpInventoryRecordsItemEntity = new SmErpInventoryRecordsItemEntity(); org.springframework.beans.BeanUtils.copyProperties(item,smErpInventoryRecordsItemEntity);