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 f7264e93a..962c88bf5 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 @@ -251,11 +251,21 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl 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()); + //存在脏数据,判断下,防止空数据查询报错 + if (!CollectionUtils.isEmpty(smErpInventoryRecordsItemEntityList)) { + record.setTotalAmount(smErpInventoryRecordsItemEntityList.stream().mapToInt(item -> item.getTotalAmount()==null?0:item.getTotalAmount()).sum()); + }else { + record.setTotalAmount(0); + } + }); Set erpSpuIds = cgPlanItemEntities.stream().map(SmErpInventoryRecordsItemEntity::getErpSpuId).collect(Collectors.toSet()); - List smErpSpuEntities = smErpSpuMapper.selectList(new LambdaQueryWrapper().in(SmErpSpuEntity::getId, erpSpuIds)); + List smErpSpuEntities=new ArrayList<>(); + //存在脏数据,判断下,防止空数据查询报错 + if (!CollectionUtils.isEmpty(erpSpuIds)){ + smErpSpuEntities = smErpSpuMapper.selectList(new LambdaQueryWrapper().in(SmErpSpuEntity::getId, erpSpuIds)); + } Map spuMap = smErpSpuEntities.stream().collect(Collectors.toMap(SmErpSpuEntity::getId, spu -> spu));