|
|
@@ -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) {
|