| | |
| | | // 1. 更新每个采购订单项 |
| | | orderItems.forEach(item -> { |
| | | BigDecimal inCount = inCountMap.getOrDefault(item.getId(), BigDecimal.ZERO); |
| | | if (item.getInCount().equals(inCount)) { |
| | | // 历史/导入数据的入库数量可能为空,按 0 处理,避免 NPE |
| | | if (ObjectUtil.defaultIfNull(item.getInCount(), BigDecimal.ZERO).compareTo(inCount) == 0) { |
| | | return; |
| | | } |
| | | if (inCount.compareTo(item.getCount()) > 0) { |
| | |
| | | // 1. 更新每个采购订单项 |
| | | orderItems.forEach(item -> { |
| | | BigDecimal returnCount = returnCountMap.getOrDefault(item.getId(), BigDecimal.ZERO); |
| | | if (item.getReturnCount().equals(returnCount)) { |
| | | // 历史/导入数据的退货数量、入库数量可能为空,按 0 处理,避免 NPE |
| | | if (ObjectUtil.defaultIfNull(item.getReturnCount(), BigDecimal.ZERO).compareTo(returnCount) == 0) { |
| | | return; |
| | | } |
| | | if (returnCount.compareTo(item.getInCount()) > 0) { |
| | | BigDecimal inCount = ObjectUtil.defaultIfNull(item.getInCount(), BigDecimal.ZERO); |
| | | if (returnCount.compareTo(inCount) > 0) { |
| | | throw exception(PURCHASE_ORDER_ITEM_RETURN_FAIL_IN_EXCEED, |
| | | "产品ID:" + item.getProductId(), item.getInCount()); |
| | | "产品ID:" + item.getProductId(), inCount); |
| | | } |
| | | purchaseOrderItemMapper.updateById(new ErpPurchaseOrderItemDO().setId(item.getId()).setReturnCount(returnCount)); |
| | | }); |