/**
* 根据配货数量更新相关订单实际配货数量
* @param stockWorkOrder 库存工作单
* @param deliverySumMap 实际发货数量的MAP
* @return
*/
private boolean updateShopOrdersActualDeliveryNum(StockWorkOrder stockWorkOrder, Map<Long,BigDecimal> deliverySumMap){
List<Long> productItemIds = new ArrayList<>(deliverySumMap.keySet());
//更新订单实际配货量
List<ShopOrderItem> newUpdateItemList = new ArrayList<>();
List<ShopOrderItem> shopOrderItemList = shopOrderItemService.findItemByOrderCodesAndProductItemIds(Arrays.asList(stockWorkOrder.getRelativeShopOrderCode().split(",")),productItemIds);
for(Long productItemId : deliverySumMap.keySet()){
//过滤出该品项的所有订单元素
List<ShopOrderItem> shopOrderItems =shopOrderItemList.stream().filter(item -> item.getProductItemId() == productItemId).collect(Collectors.toList());
//实际剩余配货数量
BigDecimal remainNum = deliverySumMap.get(productItemId);
for(int index = 0 ; index < shopOrderItems.size(); index++){
ShopOrderItem shopOrderItem = shopOrderItems.get(index);
//最后一个
if(index == shopOrderItemList.size() - 1){
shopOrderItem.setActualInNum(remainNum);
}else{
// 采购数量大于实际配货数量
if(shopOrderItem.getPurchaseNum().compareTo(remainNum) >= 0){
shopOrderItem.setActualInNum(remainNum);
remainNum = BigDecimal.ZERO;
}else{
//采购数量小于实际配送数量
shopOrderItem.setActualInNum(shopOrderItem.getPurchaseNum());
remainNum = NumberUtil.sub(remainNum, shopOrderItem.getPurchaseNum());
}
}
}
newUpdateItemList.addAll(shopOrderItems);
}
return shopOrderItemService.updateBatchById(newUpdateItemList);
}
过滤出该品项的所有订单元素
最新推荐文章于 2024-10-08 12:29:23 发布