过滤出该品项的所有订单元素

/**
     * 根据配货数量更新相关订单实际配货数量
     * @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);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值