|
@@ -233,27 +233,29 @@ public class ProductionTaskServiceImpl extends ServiceImpl<ProductionTaskMapper,
|
|
|
if (ObjectUtil.isEmpty(stocks)) {
|
|
|
//物料不存在添加到异常列表
|
|
|
errProductIdList.add(productId);
|
|
|
- }
|
|
|
- //计算库存是否充足(可用库存 - 冻结库存 - 所需的数量)是否大等于0
|
|
|
- BigDecimal quantity = stocks.stream().map(Stock::getQuantity).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- Map<Long, StockFrozen> stockFrozenMap = stockFrozenService.mapKEntity(StockFrozen::getProductId, q -> q.in(StockFrozen::getProductId, productIds));
|
|
|
- StockFrozen stockFrozen = stockFrozenMap.get(bomDetail.getProductId());
|
|
|
- if (ObjectUtil.isEmpty(stockFrozen)) {
|
|
|
- stockFrozen = new StockFrozen();
|
|
|
- stockFrozen.setProductId(bomDetail.getProductId());
|
|
|
- stockFrozen.setFrozenQuantity(BigDecimal.ZERO);
|
|
|
- }
|
|
|
- BigDecimal subtract = quantity.subtract(stockFrozen.getFrozenQuantity()).subtract(multiply);
|
|
|
- if (subtract.compareTo(BigDecimal.ZERO) < 0) {
|
|
|
- //物料不足添加到异常列表
|
|
|
- errProductIdList.add(productId);
|
|
|
- }
|
|
|
+ }else {
|
|
|
+ //计算库存是否充足(可用库存 - 冻结库存 - 所需的数量)是否大等于0
|
|
|
+ BigDecimal quantity = stocks.stream().map(Stock::getQuantity).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+
|
|
|
+ Map<Long, StockFrozen> stockFrozenMap = stockFrozenService.mapKEntity(StockFrozen::getProductId, q -> q.in(StockFrozen::getProductId, productIds));
|
|
|
+ StockFrozen stockFrozen = stockFrozenMap.get(bomDetail.getProductId());
|
|
|
+ if (ObjectUtil.isEmpty(stockFrozen)) {
|
|
|
+ stockFrozen = new StockFrozen();
|
|
|
+ stockFrozen.setProductId(bomDetail.getProductId());
|
|
|
+ stockFrozen.setFrozenQuantity(BigDecimal.ZERO);
|
|
|
+ }
|
|
|
+ BigDecimal subtract = quantity.subtract(stockFrozen.getFrozenQuantity()).subtract(multiply);
|
|
|
+ if (subtract.compareTo(BigDecimal.ZERO) < 0) {
|
|
|
+ //物料不足添加到异常列表
|
|
|
+ errProductIdList.add(productId);
|
|
|
+ }
|
|
|
|
|
|
- //存在库存
|
|
|
- BigDecimal add = stockFrozen.getFrozenQuantity().add(multiply);
|
|
|
- stockFrozen.setFrozenQuantity(add);
|
|
|
+ //存在库存
|
|
|
+ BigDecimal add = stockFrozen.getFrozenQuantity().add(multiply);
|
|
|
+ stockFrozen.setFrozenQuantity(add);
|
|
|
|
|
|
- stockFrozenList.add(stockFrozen);
|
|
|
+ stockFrozenList.add(stockFrozen);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//判断库存是否充足
|
|
@@ -261,9 +263,8 @@ public class ProductionTaskServiceImpl extends ServiceImpl<ProductionTaskMapper,
|
|
|
List<String> productNames = productInfoService.listObject(ProductInfo::getName, q -> q
|
|
|
.in(ObjectUtil.isNotEmpty(errProductIdList), ProductInfo::getId, errProductIdList)
|
|
|
);
|
|
|
- String collect = productNames.stream().collect(Collectors.joining(","));
|
|
|
+ String collect = productNames.stream().collect(Collectors.joining(","));
|
|
|
throw new ServiceException(String.format("以下物料库存不足 %s", collect));
|
|
|
-
|
|
|
}
|
|
|
|
|
|
stockFrozenService.saveOrUpdateBatch(stockFrozenList);
|