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