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

+ 3 - 1
hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockWaitDetailsServiceImpl.java

@@ -104,7 +104,9 @@ public class StockWaitDetailsServiceImpl extends ServiceImpl<StockWaitDetailsMap
     public void add(StockWaitDetailsDto stockWaitDetailsDto) {
         //更新已入库数量 根据明细id
         StockWaitDetails stockWaitDetails = getById(stockWaitDetailsDto.getId());
-        stockWaitDetails.setReceiptQuantity(stockWaitDetails.getReceiptQuantity().add(stockWaitDetailsDto.getQuantity()));
+        BigDecimal receiptQuantity = stockWaitDetails.getReceiptQuantity();
+        receiptQuantity = ObjectUtil.isEmpty(receiptQuantity) ? BigDecimal.ZERO : receiptQuantity;
+        stockWaitDetails.setReceiptQuantity(receiptQuantity.add(stockWaitDetailsDto.getQuantity()));
         if (stockWaitDetails.getReceiptQuantity().compareTo(stockWaitDetails.getQuantity()) > 0) {
             throw new ServiceException("出库数量+已出库数量不能大于待出库数量");
         }

+ 49 - 42
hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockWaitServiceImpl.java

@@ -12,6 +12,7 @@ import com.fjhx.item.entity.product.po.ProductInfo;
 import com.fjhx.item.service.product.ProductInfoService;
 import com.fjhx.wms.entity.arrival.po.ArrivalStockRecords;
 import com.fjhx.wms.entity.arrival.po.ArrivalStockRecordsDetails;
+import com.fjhx.wms.entity.stock.dto.StockWaitDetailsDto;
 import com.fjhx.wms.entity.stock.dto.StockWaitDto;
 import com.fjhx.wms.entity.stock.dto.StockWaitSelectDto;
 import com.fjhx.wms.entity.stock.emums.JournalType;
@@ -175,53 +176,59 @@ public class StockWaitServiceImpl extends ServiceImpl<StockWaitMapper, StockWait
         return result;
     }
 
-    @Transactional(rollbackFor = Exception.class)
+    @DSTransactional
     @Override
     public void add(StockWaitDto stockWaitDto) {
         //更新已入库数量 根据明细id
         StockWaitDetails stockWaitDetails = stockWaitDetailsService.getOne(q->q.eq(StockWaitDetails::getStockWaitId,stockWaitDto.getId())
                 .or().eq(StockWaitDetails::getId,stockWaitDto.getId()));
-        BigDecimal receiptQuantity = stockWaitDetails.getReceiptQuantity();
-        receiptQuantity = ObjectUtil.isEmpty(receiptQuantity) ? BigDecimal.ZERO : receiptQuantity;
-        stockWaitDetails.setReceiptQuantity(receiptQuantity.add(stockWaitDto.getQuantity()));
-        if (stockWaitDetails.getReceiptQuantity().compareTo(stockWaitDetails.getQuantity()) > 0) {
-            throw new ServiceException("入库数量+已入库数量不能大于待采购数量");
-        }
-        stockWaitDetailsService.updateById(stockWaitDetails);
-        StockWait byId = getById(stockWaitDetails.getStockWaitId());
-        //创建出入库记录
-        StockJournal stockJournal = new StockJournal();
-        stockJournal.setOpType(byId.getType());
-        //根据待入库业务类型创建待出入库记录
-        StockWait stockWait = getById(stockWaitDetails.getStockWaitId());
-        Integer businessType = stockWait.getBusinessType();
-        if (StockWaitType.BORDER_OF_LINE_IN.getDetailType().equals(businessType)) {
-            //线边回仓库
-            stockJournal.setType(JournalType.BORDER_OF_LINE_IN.getDetailType());
-        } else if (StockWaitType.COMPLETION_IN.getDetailType().equals(businessType)) {
-            //完工入库
-            stockJournal.setType(JournalType.COMPLETION_IN.getDetailType());
-        } else if (StockWaitType.PURCHASE_ARRIVAL_IN.getDetailType().equals(businessType)) {
-            //采购到货
-            stockJournal.setType(JournalType.PURCHASE_ARRIVAL_IN.getDetailType());
-        } else if (StockWaitType.BACK_OUT.getDetailType().equals(businessType)) {
-            //退货出货
-            stockJournal.setType(JournalType.BACK_OUT.getDetailType());
-        } else {
-            throw new ServiceException("未知待入库业务类型");
-        }
-        stockJournal.setCode(byId.getType() == 1 ? CodeEnum.SIN_CODE.getCode() : CodeEnum.SOUT_CODE.getCode());
-        stockJournal.setWarehouseId(stockWaitDto.getWarehouseId());
-        stockJournal.setBusinessId(byId.getId());
-        //保存出入库记录
-        stockJournalService.save(stockJournal);
-        //操作库存
-        Stock stock = new Stock();
-        stock.setQuantity(stockWaitDto.getQuantity());
-        stock.setProductId(stockWaitDetails.getProductId());
-        List<StockJournalDetails> stockJournalDetailsList = stockService.ModifyInventory(stockJournal.getId(), byId.getType(), Arrays.asList(stock), stockWaitDto.getWarehouseId());
-        //保存出入库明细
-        stockJournalDetailsService.saveBatch(stockJournalDetailsList);
+        //-----------------
+        StockWaitDetailsDto stockWaitDetailsDto = BeanUtil.copyProperties(stockWaitDetails, StockWaitDetailsDto.class);
+        stockWaitDetailsDto.setBusinessType(stockWaitDto.getBusinessType());
+        stockWaitDetailsDto.setWarehouseId(stockWaitDto.getWarehouseId());
+        stockWaitDetailsService.add(stockWaitDetailsDto);
+
+//        BigDecimal receiptQuantity = stockWaitDetails.getReceiptQuantity();
+//        receiptQuantity = ObjectUtil.isEmpty(receiptQuantity) ? BigDecimal.ZERO : receiptQuantity;
+//        stockWaitDetails.setReceiptQuantity(receiptQuantity.add(stockWaitDto.getQuantity()));
+//        if (stockWaitDetails.getReceiptQuantity().compareTo(stockWaitDetails.getQuantity()) > 0) {
+//            throw new ServiceException("入库数量+已入库数量不能大于待采购数量");
+//        }
+//        stockWaitDetailsService.updateById(stockWaitDetails);
+//        StockWait byId = getById(stockWaitDetails.getStockWaitId());
+//        //创建出入库记录
+//        StockJournal stockJournal = new StockJournal();
+//        stockJournal.setOpType(byId.getType());
+//        //根据待入库业务类型创建待出入库记录
+//        StockWait stockWait = getById(stockWaitDetails.getStockWaitId());
+//        Integer businessType = stockWait.getBusinessType();
+//        if (StockWaitType.BORDER_OF_LINE_IN.getDetailType().equals(businessType)) {
+//            //线边回仓库
+//            stockJournal.setType(JournalType.BORDER_OF_LINE_IN.getDetailType());
+//        } else if (StockWaitType.COMPLETION_IN.getDetailType().equals(businessType)) {
+//            //完工入库
+//            stockJournal.setType(JournalType.COMPLETION_IN.getDetailType());
+//        } else if (StockWaitType.PURCHASE_ARRIVAL_IN.getDetailType().equals(businessType)) {
+//            //采购到货
+//            stockJournal.setType(JournalType.PURCHASE_ARRIVAL_IN.getDetailType());
+//        } else if (StockWaitType.BACK_OUT.getDetailType().equals(businessType)) {
+//            //退货出货
+//            stockJournal.setType(JournalType.BACK_OUT.getDetailType());
+//        } else {
+//            throw new ServiceException("未知待入库业务类型");
+//        }
+//        stockJournal.setCode(byId.getType() == 1 ? CodeEnum.SIN_CODE.getCode() : CodeEnum.SOUT_CODE.getCode());
+//        stockJournal.setWarehouseId(stockWaitDto.getWarehouseId());
+//        stockJournal.setBusinessId(byId.getId());
+//        //保存出入库记录
+//        stockJournalService.save(stockJournal);
+//        //操作库存
+//        Stock stock = new Stock();
+//        stock.setQuantity(stockWaitDto.getQuantity());
+//        stock.setProductId(stockWaitDetails.getProductId());
+//        List<StockJournalDetails> stockJournalDetailsList = stockService.ModifyInventory(stockJournal.getId(), byId.getType(), Arrays.asList(stock), stockWaitDto.getWarehouseId());
+//        //保存出入库明细
+//        stockJournalDetailsService.saveBatch(stockJournalDetailsList);
     }
 
     @DSTransactional