Переглянути джерело

出入库流水问题处理

yzc 2 роки тому
батько
коміт
bc9cd03dab

+ 5 - 26
hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockWaitServiceImpl.java

@@ -9,6 +9,7 @@ import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.common.utils.Assert;
 import com.fjhx.item.entity.product.po.ProductInfo;
 import com.fjhx.item.service.product.ProductInfoService;
 import com.fjhx.wms.entity.arrival.po.ArrivalStockRecords;
@@ -207,40 +208,18 @@ public class StockWaitServiceImpl extends ServiceImpl<StockWaitMapper, StockWait
     @DSTransactional
     @Override
     public void addByWdly(StockWaitDto stockWaitDto) {
+        Assert.notEmpty(stockWaitDto.getId(), "待出入库id不能为空");
+        Assert.notEmpty(stockWaitDto.getWarehouseId(), "仓库id不能为空");
+
         List<Stock> stockList = new ArrayList<>();
 
         List<StockWaitDetails> stockWaitDetailsDtoList = stockWaitDto.getStockWaitDetailsList();
-//        List<Long> dids = stockWaitDetailsDtoList.stream().map(StockWaitDetails::getId).collect(Collectors.toList());
         Map<Long, StockWaitDetails> stockWaitDetailsMap = stockWaitDetailsDtoList.stream().collect(Collectors.toMap(StockWaitDetails::getId, Function.identity()));
-//        List<StockWaitDetails> stockWaitDetailss = stockWaitDetailsService.listByIds(dids);
-
-        //已经完全入库数量统计
-//        int statusFlag = 0;
-//        for (StockWaitDetails stockWaitDetail : stockWaitDetailss) {
-//            StockWaitDetails temp = stockWaitDetailsMap.get(stockWaitDetail.getId());
-//            //更新已入库数量
-//            BigDecimal receiptQuantity = stockWaitDetail.getReceiptQuantity() == null ? BigDecimal.ZERO : stockWaitDetail.getReceiptQuantity();
-//            stockWaitDetail.setReceiptQuantity(receiptQuantity.add(temp.getQuantity()));
-//
-//            //计算已经完全入库的数量
-//            if (stockWaitDetail.getReceiptQuantity().compareTo(stockWaitDetail.getQuantity()) >= 0) {
-//                statusFlag++;
-//            }
-//        }
-//        stockWaitDetailsService.updateBatchById(stockWaitDetailss);
-//        //修改待入库状态
-//        StockWait stockWait = getById(stockWaitDto.getId());
-//        if (statusFlag == stockWaitDetailss.size()) {
-//            stockWait.setStatus(2);//入库完成
-//        } else {
-//            stockWait.setStatus(1);//部分入库
-//        }
 
         //更新已出入库数量以及待出入库状态
         stockWaitDetailsService.changeStockWaitStatus(stockWaitDto);
         StockWait stockWait = getById(stockWaitDto.getId());
 
-
         String victoriatouristJson = stockWait.getVictoriatouristJson();
         JSONObject json = ObjectUtil.isNotEmpty(victoriatouristJson) ? JSONObject.parseObject(victoriatouristJson) : new JSONObject();
         json.put("receiptWarehouseId", stockWaitDto.getWarehouseId());
@@ -260,7 +239,7 @@ public class StockWaitServiceImpl extends ServiceImpl<StockWaitMapper, StockWait
         //创建出入库记录
         Integer businessType = stockWait.getBusinessType();
         StockJournal stockJournal = new StockJournal();
-        stockJournal.setOpType(stockWaitDto.getType());
+        stockJournal.setOpType(stockWait.getType());//根据待入库类型赋值操作类型 1入库 2出库
         stockJournal.setType(getStockJournalType(businessType));
         stockJournal.setCode(stockWait.getType() == 1 ? CodeEnum.SIN_CODE.getCode() : CodeEnum.SOUT_CODE.getCode());
         stockJournal.setWarehouseId(stockWaitDto.getWarehouseId());

+ 3 - 4
hx-wms/src/main/resources/mapper/stock/StockJournalDetailsMapper.xml

@@ -14,10 +14,9 @@
             sjd.create_time,
             sjd.create_user,
             sj.business_id
-        FROM
-            stock_journal sj
-                JOIN stock_journal_details sjd ON sjd.stock_journal_id = sj.id
-                JOIN warehouse w ON sj.warehouse_id = w.id
+        FROM stock_journal_details sjd
+                 LEFT JOIN stock_journal sj ON sjd.stock_journal_id = sj.id
+                 LEFT JOIN warehouse w ON sj.warehouse_id = w.id
             ${ew.customSqlSegment}
     </select>