yzc il y a 1 an
Parent
commit
08de55d785

+ 22 - 21
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionTaskServiceImpl.java

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

+ 12 - 8
hx-sale/src/main/java/com/fjhx/sale/flow/PurchaseFlow.java

@@ -218,15 +218,19 @@ public class PurchaseFlow extends FlowDelegate {
                             .eq(PurchaseDetail::getSubscribeDetailId, purchaseDetail.getSubscribeDetailId())
                     );
                     BigDecimal pdCount = purchaseDetails.stream().map(PurchaseDetail::getCount).reduce(BigDecimal.ZERO, BigDecimal::add);
-                    SubscribeDetail subscribeDetail = subscribeDetailService.getById(purchaseDetail.getSubscribeDetailId());
-                    if (pdCount.compareTo(subscribeDetail.getCount()) >= 0) {
-                        //修改为已采购
-                        subscribeDetail.setStatus(SubscribeDetailStatusEnum.PURCHASED.getKey());
-                    } else {
-                        //修改为部分采购
-                        subscribeDetail.setStatus(SubscribeDetailStatusEnum.LITT_PAID_AMOUNT.getKey());
+
+                    //判断是否来自申购改申购状态   直接采购没有申购跳过
+                    if(ObjectUtils.isNotEmpty(purchaseDetail.getSubscribeDetailId())) {
+                        SubscribeDetail subscribeDetail = subscribeDetailService.getById(purchaseDetail.getSubscribeDetailId());
+                        if (pdCount.compareTo(subscribeDetail.getCount()) >= 0) {
+                            //修改为已采购
+                            subscribeDetail.setStatus(SubscribeDetailStatusEnum.PURCHASED.getKey());
+                        } else {
+                            //修改为部分采购
+                            subscribeDetail.setStatus(SubscribeDetailStatusEnum.LITT_PAID_AMOUNT.getKey());
+                        }
+                        subscribeDetailService.updateById(subscribeDetail);
                     }
-                    subscribeDetailService.updateById(subscribeDetail);
                 }
             }