Răsfoiți Sursa

维多利亚

24282 2 ani în urmă
părinte
comite
5a2eb6bc1f

+ 6 - 3
hx-service/victoriatourist/src/main/java/com/fjhx/service/quality/impl/QualityDetailsServiceImpl.java

@@ -99,9 +99,12 @@ public class QualityDetailsServiceImpl extends ServiceImpl<QualityDetailsMapper,
                 BigDecimal bigDecimal = ObjectUtil.defaultIfNull(map.get(productInfoId), BigDecimal.ZERO);
                 map.put(productInfoId, bigDecimal.add(qualifiedQuantity));
             }
-            qualityDetails.setQualifiedQuantity(oldQualityDetails.getQualifiedQuantity().add(qualityDetails.getQualifiedQuantity()));
-            qualityDetails.setDisqualificationQuantity(oldQualityDetails.getDisqualificationQuantity().add(qualityDetails.getDisqualificationQuantity()));
-            int compareTo = qualityDetails.getQualifiedQuantity().add(qualityDetails.getDisqualificationQuantity()).compareTo(qualityDetails.getTotalQuantity());
+
+            BigDecimal newQualifiedQuantity = oldQualityDetails.getQualifiedQuantity().add(qualityDetails.getQualifiedQuantity());
+            BigDecimal newDisqualificationQuantity = oldQualityDetails.getDisqualificationQuantity().add(qualityDetails.getDisqualificationQuantity());
+            qualityDetails.setQualifiedQuantity(newQualifiedQuantity);
+            qualityDetails.setDisqualificationQuantity(newDisqualificationQuantity);
+            int compareTo = newQualifiedQuantity.add(newDisqualificationQuantity).compareTo(oldQualityDetails.getTotalQuantity());
             if (compareTo > 0) {
                 throw new ServiceException("合格数量加不合格数量不能大于需要质检的总数量");
             }

+ 24 - 20
hx-service/victoriatourist/src/main/java/com/fjhx/service/stock/impl/StockServiceImpl.java

@@ -184,25 +184,26 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
             // 生成mapKey
             String key = goodsId.toString() + warehouseId.toString();
             Stock stock = map.get(key);
-
             if (null == stock) {
                 stock = new Stock();
                 stock.setWarehouseId(warehouseId);
                 stock.setGoodsId(goodsId);
-                if (typeEnum.equals(InTypeEnum.PURCHASE)) {
+                // 如果是采购入库或质检不合格出库,添加冻结数量
+                if (typeEnum.equals(InTypeEnum.PURCHASE) || typeEnum.equals(OutTypeEnum.UNQUALIFIED_QUALITY_INSPECTION)) {
                     stock.setFrozenQuantity(changeQuantity);
-                } else if (typeEnum.equals(OutTypeEnum.UNQUALIFIED_QUALITY_INSPECTION)) {
-                    stock.setFrozenQuantity(BigDecimal.ZERO);
-                } else {
+                }
+                // 否则添加库存数量
+                else {
                     stock.setQuantity(changeQuantity);
                 }
                 map.put(key, stock);
             } else {
-                if (typeEnum.equals(InTypeEnum.PURCHASE)) {
+                // 如果是采购入库或质检不合格出库,添加冻结数量
+                if (typeEnum.equals(InTypeEnum.PURCHASE) || typeEnum.equals(OutTypeEnum.UNQUALIFIED_QUALITY_INSPECTION)) {
                     stock.setFrozenQuantity(stock.getFrozenQuantity().add(changeQuantity));
-                } else if (typeEnum.equals(OutTypeEnum.UNQUALIFIED_QUALITY_INSPECTION)) {
-                    stock.setFrozenQuantity(stock.getFrozenQuantity().add(changeQuantity));
-                } else {
+                }
+                // 否则添加库存数量
+                else {
                     stock.setQuantity(stock.getQuantity().add(changeQuantity));
                 }
             }
@@ -217,27 +218,30 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
         Set<String> keySet = map.keySet();
 
         List<Stock> list = list(Wrappers.<Stock>query().in("CONCAT(goods_id, warehouse_id)", keySet));
-        for (Stock stock : list) {
-            String key = stock.getGoodsId().toString() + stock.getWarehouseId().toString();
-            Stock changeStock = map.get(key);
+        for (Stock oldStock : list) {
+            Stock newStock = map.get(oldStock.getGoodsId().toString() + oldStock.getWarehouseId().toString());
 
-            changeStock.setId(stock.getId());
+            newStock.setId(oldStock.getId());
+            // 入库逻辑
             if (typeEnum instanceof InTypeEnum) {
+                // 采购入库,增加锁定库存
                 if (typeEnum.equals(InTypeEnum.PURCHASE)) {
-                    changeStock.setFrozenQuantity(stock.getFrozenQuantity().add(changeStock.getFrozenQuantity()));
-                } else {
-                    changeStock.setQuantity(stock.getQuantity().add(changeStock.getQuantity()));
+                    newStock.setFrozenQuantity(oldStock.getFrozenQuantity().add(newStock.getFrozenQuantity()));
+                }
+                // 其他入库,增加库存
+                else {
+                    newStock.setQuantity(oldStock.getQuantity().add(newStock.getQuantity()));
                 }
             } else {
                 // 质检不合格出库,扣减锁定库存
                 if (typeEnum.equals(OutTypeEnum.UNQUALIFIED_QUALITY_INSPECTION)) {
-                    changeStock.setFrozenQuantity(changeStock.getFrozenQuantity().subtract(stock.getFrozenQuantity()));
+                    newStock.setFrozenQuantity(oldStock.getFrozenQuantity().subtract(newStock.getFrozenQuantity()));
                 }
-                // 其他出库扣减库存
+                // 其他出库扣减库存
                 else {
-                    BigDecimal subtract = changeStock.getQuantity().subtract(stock.getQuantity());
+                    BigDecimal subtract = oldStock.getQuantity().subtract(newStock.getQuantity());
                     Assert.eqTrue(subtract.compareTo(BigDecimal.ZERO) < 0, "产品库存不足,出库失败");
-                    changeStock.setQuantity(subtract);
+                    newStock.setQuantity(subtract);
                 }
             }
         }