fix(智慧超市):修复编辑了入库的商品数量之后,编辑里的累计总金额和列表里最后一列显示的入库总金额不一致

This commit is contained in:
zjf committed 2025-08-04 10:12:52 +08:00
1 parent 0a2f11b7ce
commit d7d413e3a4
1 file changed
+13 -1
@@ -210,12 +210,24 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl<SmErpInventory
.collect(Collectors.toSet());
//请求得到所有的userIds
Map<Long, SysUser> userMap = remoteUserService.getUserMap(userIds).getData();
List<String> processInstanceIds= records.stream().map(SmErpInventoryRecordsEntity::getProcessInstanceId).filter(Objects::nonNull).collect(Collectors.toList());
// List<String> processInstanceIds= records.stream().map(SmErpInventoryRecordsEntity::getProcessInstanceId).filter(Objects::nonNull).collect(Collectors.toList());
LambdaQueryWrapper<SmErpInventoryRecordsItemEntity> smErpCgPlanItemEntityLambdaQueryWrapper = new LambdaQueryWrapper<>();
smErpCgPlanItemEntityLambdaQueryWrapper.in(SmErpInventoryRecordsItemEntity::getInventoryId,planIds);
List<SmErpInventoryRecordsItemEntity> cgPlanItemEntities = smErpInventoryRecordsItemMapper.selectList(smErpCgPlanItemEntityLambdaQueryWrapper);
// 按 inventoryId 分组并计算每个分组的 totalAmount 总和
Map<Long, Integer> inventoryTotalAmountMap = cgPlanItemEntities.stream()
.collect(Collectors.groupingBy(
SmErpInventoryRecordsItemEntity::getInventoryId,
Collectors.summingInt(SmErpInventoryRecordsItemEntity::getTotalAmount)
));
// 将计算出的 totalAmount 总和设置回 pageData 的 records 中
records.forEach(record -> {
Integer totalAmount = inventoryTotalAmountMap.getOrDefault(record.getId(), 0);
record.setTotalAmount(totalAmount);
});
Set<Long> erpSpuIds = cgPlanItemEntities.stream().map(SmErpInventoryRecordsItemEntity::getErpSpuId).collect(Collectors.toSet());
List<SmErpSpuEntity> smErpSpuEntities = smErpSpuMapper.selectList(new LambdaQueryWrapper<SmErpSpuEntity>().in(SmErpSpuEntity::getId, erpSpuIds));
Map<Long,SmErpSpuEntity> spuMap = smErpSpuEntities.stream().collect(Collectors.toMap(SmErpSpuEntity::getId, spu -> spu));