Browse Source

盘点问题处理

yzc 1 năm trước cách đây
mục cha
commit
3c69a5f77f

+ 0 - 1
hx-wms/src/main/java/com/fjhx/wms/entity/stock/po/StockCheckRegister.java

@@ -38,7 +38,6 @@ public class StockCheckRegister extends BasePo {
     /**
      * 库存数量
      */
-    @NotNull(message = "库存数量不能为空")
     private Long quantity;
 
     /**

+ 0 - 1
hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockCheckRegisterServiceImpl.java

@@ -67,7 +67,6 @@ public class StockCheckRegisterServiceImpl extends ServiceImpl<StockCheckRegiste
 
     @Override
     public void add(StockCheckRegisterDto stockCheckRegisterDto) {
-        Assert.notEmpty(stockCheckRegisterDto.getQuantity(), "库存数量不能为空!");
         Assert.notEmpty(stockCheckRegisterDto.getCheckQuantity(), "盘点数量不能为空!");
 
         Stock stock = stockService.getById(stockCheckRegisterDto.getStockId());

+ 16 - 5
hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockCheckServiceImpl.java

@@ -261,18 +261,29 @@ public class StockCheckServiceImpl extends ServiceImpl<StockCheckMapper, StockCh
 
     @DSTransactional
     @Override
-    public void submitAll() {
+    public synchronized void submitAll() {
         List<StockCheckRegister> list = stockCheckRegisterService.list();
         Assert.notEmpty(list, "无盘点登记信息,盘点提交失败!");
         Map<Long, List<StockCheckRegister>> collect = list.stream().collect(Collectors.groupingBy(StockCheckRegister::getWarehouseId));
         for (Map.Entry<Long, List<StockCheckRegister>> entry : collect.entrySet()) {
+
             //生成盘点明细
             List<StockCheckDetails> stockCheckDetailsList = new ArrayList<>();
-            for (StockCheckRegister stockCheckRegister : entry.getValue()) {
+
+            //根据库存id分组
+            Map<Long, List<StockCheckRegister>> collect1 = entry.getValue().stream().collect(Collectors.groupingBy(StockCheckRegister::getStockId));
+            for (Map.Entry<Long, List<StockCheckRegister>> entry1 : collect1.entrySet()) {
+                List<StockCheckRegister> value = entry1.getValue();
+                Long productId = value.get(0).getProductId();
+                Long checkQuantity = value.stream().map(StockCheckRegister::getCheckQuantity).reduce(Long::sum).orElse(0L);
+
+                //获取数据库库存
+                Stock baseStock = stockService.getById(entry1.getKey());
+
                 StockCheckDetails stockCheckDetails = new StockCheckDetails();
-                stockCheckDetails.setProductId(stockCheckRegister.getProductId());
-                stockCheckDetails.setQuantity(stockCheckRegister.getQuantity());
-                stockCheckDetails.setCheckQuantity(stockCheckRegister.getCheckQuantity());
+                stockCheckDetails.setProductId(productId);
+                stockCheckDetails.setQuantity(baseStock.getQuantity().longValue());
+                stockCheckDetails.setCheckQuantity(checkQuantity);
                 stockCheckDetailsList.add(stockCheckDetails);
             }
 

+ 1 - 0
hx-wms/src/main/resources/mapper/stock/StockCheckRegisterMapper.xml

@@ -9,6 +9,7 @@
             scr.warehouse_id,
             scr.product_id,
             scr.quantity,
+            scr.check_quantity,
             scr.create_user,
             scr.create_time,
             scr.update_user,