caotao 1 неделя назад
Родитель
Сommit
121632eb35

+ 11 - 2
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyagestockdistribute/VoyageStockDistributeNewServiceImpl.java

@@ -348,8 +348,17 @@ public class VoyageStockDistributeNewServiceImpl implements VoyageStockDistribut
 //        List<VoyageStockDetailDO> stockDetailDOList1 = stockDetailDOList.stream().filter(item -> item.getCanSellNum().compareTo(BigDecimal.ZERO) > 0).collect(Collectors.toList());
         //减去已分配的库存,剩下的就是共享库存
         List<VoyageStockDistributeNewDO> distributeNewList = voyageStockDistributeNewMapper.selectListByVoyageId(reqVO.getVoyageId(), reqVO.getType());
-        Map<String, BigDecimal> distributeNewMap = CollectionUtils.convertMap(distributeNewList, item -> item.getRoomModelId() + "_" + item.getFloor(), item -> item.getNum());
-
+//        Map<String, BigDecimal> distributeNewMap = CollectionUtils.convertMap(distributeNewList, item -> item.getRoomModelId() + "_" + item.getFloor(), item -> item.getNum());
+        Map<String, List<VoyageStockDistributeNewDO>> groupMap = CollectionUtils.convertMultiMap(
+                distributeNewList,
+                item -> item.getRoomModelId() + "_" + item.getFloor());
+        Map<String, BigDecimal> distributeNewMap = new HashMap<>();
+        groupMap.forEach((key, l) -> {
+            BigDecimal sum = l.stream()
+                    .map(item -> item.getNum() == null ? BigDecimal.ZERO : item.getNum())
+                    .reduce(BigDecimal.ZERO, BigDecimal::add);
+            distributeNewMap.put(key, sum);
+        });
         stockDetailDOList.forEach(item -> {
             BigDecimal bigDecimal = distributeNewMap.get(item.getRoomModelId() + "_" + item.getFloor());
             if (bigDecimal == null) {