diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRecord/TransferissueRecordMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRecord/TransferissueRecordMainController.java index a3f82d54..c22c2064 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRecord/TransferissueRecordMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRecord/TransferissueRecordMainController.java @@ -46,7 +46,7 @@ public class TransferissueRecordMainController { @PostMapping("/create") @Operation(summary = "创建调拨出库记录主") @PreAuthorize("@ss.hasPermission('wms:transferissue-record-main:create')") - public CommonResult createTransferissueRecordMain(@Valid @RequestBody TransferissueRecordMainCreateReqVO createReqVO) { + public CommonResult createTransferissueRecordMain(@Valid @RequestBody TransferissueRecordMainCreateReqVO createReqVO) { return success(transferissueRecordMainService.createTransferissueRecordMain(createReqVO)); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRecord/TransferreceiptRecordMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRecord/TransferreceiptRecordMainController.java index 76f52034..bcbfc6e7 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRecord/TransferreceiptRecordMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRecord/TransferreceiptRecordMainController.java @@ -43,7 +43,7 @@ public class TransferreceiptRecordMainController { @PostMapping("/create") @Operation(summary = "创建调拨入库记录主") @PreAuthorize("@ss.hasPermission('wms:transferreceipt-record-main:create')") - public CommonResult createTransferreceiptRecordMain(@Valid @RequestBody TransferreceiptRecordMainCreateReqVO createReqVO) { + public CommonResult createTransferreceiptRecordMain(@Valid @RequestBody TransferreceiptRecordMainCreateReqVO createReqVO) { return success(transferreceiptRecordMainService.createTransferreceiptRecordMain(createReqVO)); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRecord/vo/TransferreceiptRecordDetailBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRecord/vo/TransferreceiptRecordDetailBaseVO.java index a402aac8..437f890f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRecord/vo/TransferreceiptRecordDetailBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRecord/vo/TransferreceiptRecordDetailBaseVO.java @@ -24,14 +24,12 @@ public class TransferreceiptRecordDetailBaseVO { private String fromBatch; @Schema(description = "库存状态", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "库存状态不能为空") private String inventoryStatus; @Schema(description = "从货主代码") private String fromOwnerCode; @Schema(description = "从库位代码", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "从库位代码不能为空") private String fromLocationCode; @Schema(description = "从库位组代码") @@ -44,7 +42,6 @@ public class TransferreceiptRecordDetailBaseVO { private String toOwnerCode; @Schema(description = "到库位代码", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "到库位代码不能为空") private String toLocationCode; @Schema(description = "到库位组代码") @@ -81,19 +78,16 @@ public class TransferreceiptRecordDetailBaseVO { private String number; @Schema(description = "物品代码", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "物品代码不能为空") private String itemCode; @Schema(description = "备注") private String remark; @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "创建时间不能为空") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime createTime; @Schema(description = "创建者Id", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "创建者Id不能为空") private String creator; @Schema(description = "任务明细ID") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRecord/vo/TransferreceiptRecordMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRecord/vo/TransferreceiptRecordMainBaseVO.java index 8ff1b30f..2da3634f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRecord/vo/TransferreceiptRecordMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRecord/vo/TransferreceiptRecordMainBaseVO.java @@ -42,11 +42,9 @@ public class TransferreceiptRecordMainBaseVO { private String vehiclePlateNumber; @Schema(description = "从仓库代码", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "从仓库代码不能为空") private String fromWarehouseCode; @Schema(description = "到仓库代码", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "到仓库代码不能为空") private String toWarehouseCode; @Schema(description = "出库事务类型", requiredMode = Schema.RequiredMode.REQUIRED) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productrepairRequest/ProductrepairRequestDetailaServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productrepairRequest/ProductrepairRequestDetailaServiceImpl.java index e6faa050..a9ff5e87 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productrepairRequest/ProductrepairRequestDetailaServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productrepairRequest/ProductrepairRequestDetailaServiceImpl.java @@ -101,7 +101,7 @@ public class ProductrepairRequestDetailaServiceImpl implements ProductrepairRequ // 校验--工位基础信息 if(StringUtils.isNotEmpty(detailDo.getWorkStationCode())){ WorkstationDO workstationDO = workstationService.selectWorkstationExist(detailDo.getWorkStationCode(), mainDO.getWorkshopCode(), detailDo.getProductionLineCode()); - detailDo.setFromLocationCode(workstationDO.getRawLocationCode()); + detailDo.setFromLocationCode(workstationDO.getFgLocationCode()); } // 校验--库存余额 TB——>TB1 validateBalance(detailDo,mainDO); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueJob/TransferissueJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueJob/TransferissueJobMainServiceImpl.java index 2ec7fb76..b79f4017 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueJob/TransferissueJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueJob/TransferissueJobMainServiceImpl.java @@ -15,6 +15,7 @@ import com.win.module.wms.controller.transferissueJob.vo.*; import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestDetailCreateReqVO; import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestMainCreateReqVO; import com.win.module.wms.convert.transferissueJob.TransferissueJobMainConvert; +import com.win.module.wms.dal.dataobject.balance.BalanceDO; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; import com.win.module.wms.dal.dataobject.location.LocationDO; import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; @@ -23,6 +24,7 @@ import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobDetail import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobMainDO; import com.win.module.wms.dal.dataobject.transferissueRecord.TransferissueRecordDetailDO; import com.win.module.wms.dal.dataobject.transferissueRecord.TransferissueRecordMainDO; +import com.win.module.wms.dal.mysql.balance.BalanceMapper; import com.win.module.wms.dal.mysql.transferissueJob.TransferissueJobMainMapper; import com.win.module.wms.dal.mysql.transferissueRecord.TransferissueRecordDetailMapper; import com.win.module.wms.dal.mysql.transferissueRecord.TransferissueRecordMainMapper; @@ -88,7 +90,8 @@ public class TransferissueJobMainServiceImpl implements TransferissueJobMainServ private TransferreceiptRequestMainService transferreceiptRequestMainService; @Resource private RequestsettingService requestsettingService; - + @Resource + private BalanceMapper balanceMapper; @Override public Long createTransferissueJobMain(TransferissueJobMainCreateReqVO createReqVO) { @@ -308,24 +311,56 @@ public class TransferissueJobMainServiceImpl implements TransferissueJobMainServ transferreceiptRequestDetailCreateReqVO.setBatch(transferissueJobDetailUpdateReqVO.getBatch()); transferreceiptReqSubList.add(transferreceiptRequestDetailCreateReqVO); + //查询库存余额 + BalanceDO balanceDO = balanceMapper.getBalanceQty(transferissueJobDetailDO.getPackingNumber(), transferissueJobDetailDO.getItemCode(), transferissueJobDetailDO.getBatch(), transferissueJobDetailDO.getInventoryStatus(), transferissueJobDetailDO.getFromLocationCode()); + //添加库存事务list TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); BeanUtils.copyProperties(transferissueRecordDetailDO, transactionCreateReqVO); //增加业务类型 transactionCreateReqVO.setBusinessType(businesstypeDO.getCode()); - TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); + TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType()); transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction()); transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode()); transactionCreateReqVO.setBusinessType(transferissueRecordMainDO.getBusinessType()); transactionCreateReqVO.setLocationCode(transferissueRecordDetailDO.getToLocationCode()); transactionCreateReqVO.setOwnerCode(transferissueRecordDetailDO.getFromOwnerCode()); - transactionCreateReqVO.setPackingNumber(transferissueJobDetailDO.getPackingNumber()); + transactionCreateReqVO.setPackingNumber(transferissueRecordDetailDO.getFromPackingNumber()); transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); - transactionCreateReqVO.setBatch(transferissueJobDetailDO.getBatch()); - transactionCreateReqVO.setWarehouseCode(transferissueRecordMainDO.getToWarehouseCode()); + transactionCreateReqVO.setBatch(transferissueRecordDetailDO.getFromBatch()); + transactionCreateReqVO.setWarehouseCode(transferissueRecordMainDO.getFromWarehouseCode()); transactionCreateReqVO.setRecordNumber(number); + transactionCreateReqVO.setAmount(balanceDO.getAmount()); + transactionCreateReqVO.setArriveDate(balanceDO.getArriveDate()); + transactionCreateReqVO.setProduceDate(balanceDO.getProduceDate()); + transactionCreateReqVO.setExpireDate(balanceDO.getExpireDate()); transactionCreateReqVO.setId(null); transactionCreateReqVOList.add(transactionCreateReqVO); + if(businesstypeDO.getInTransactionType() != null && !businesstypeDO.getInTransactionType().isEmpty()) { + TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO(); + BeanUtils.copyProperties(transferissueRecordDetailDO, transactionCreateReqVOIn); + //增加业务入类型 + transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode()); + TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); + transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction()); + transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode()); + transactionCreateReqVOIn.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); + transactionCreateReqVOIn.setBatch(transferissueRecordDetailDO.getToBatch()); + transactionCreateReqVOIn.setPackingNumber(transferissueRecordDetailDO.getToPackingNumber()); + transactionCreateReqVOIn.setInventoryStatus(transferissueRecordDetailDO.getInventoryStatus()); + transactionCreateReqVOIn.setLocationCode(transferissueRecordDetailDO.getToLocationCode()); + transactionCreateReqVOIn.setSinglePrice(balanceDO.getSinglePrice()); + transactionCreateReqVOIn.setAmount(balanceDO.getAmount()); + transactionCreateReqVOIn.setArriveDate(balanceDO.getArriveDate()); + transactionCreateReqVOIn.setProduceDate(balanceDO.getProduceDate()); + transactionCreateReqVOIn.setExpireDate(balanceDO.getExpireDate()); + transactionCreateReqVOIn.setWarehouseCode(transferissueRecordMainDO.getFromWarehouseCode()); + transactionCreateReqVOIn.setRecordNumber(number); + transactionCreateReqVOIn.setId(null); + //待确定库存事务信息 + transactionCreateReqVOList.add(transactionCreateReqVOIn); + } + } } if(!transferissueRecordDetailDOList.isEmpty()) { diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRecord/TransferissueRecordMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRecord/TransferissueRecordMainService.java index 040b3530..57f0a30b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRecord/TransferissueRecordMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRecord/TransferissueRecordMainService.java @@ -22,7 +22,7 @@ public interface TransferissueRecordMainService { * @param createReqVO 创建信息 * @return 编号 */ - Long createTransferissueRecordMain(@Valid TransferissueRecordMainCreateReqVO createReqVO); + String createTransferissueRecordMain(@Valid TransferissueRecordMainCreateReqVO createReqVO); /** * 获得用高级搜索调拨出库记录主分页列表 * diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRecord/TransferissueRecordMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRecord/TransferissueRecordMainServiceImpl.java index 467a1946..f50d90df 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRecord/TransferissueRecordMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRecord/TransferissueRecordMainServiceImpl.java @@ -11,10 +11,12 @@ import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; import com.win.module.wms.controller.transferissueRecord.vo.*; import com.win.module.wms.convert.transferissueRecord.TransferissueRecordDetailConvert; import com.win.module.wms.convert.transferissueRecord.TransferissueRecordMainConvert; +import com.win.module.wms.dal.dataobject.balance.BalanceDO; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; import com.win.module.wms.dal.dataobject.transferissueRecord.TransferissueRecordDetailDO; import com.win.module.wms.dal.dataobject.transferissueRecord.TransferissueRecordMainDO; +import com.win.module.wms.dal.mysql.balance.BalanceMapper; import com.win.module.wms.dal.mysql.transferissueRecord.TransferissueRecordDetailMapper; import com.win.module.wms.dal.mysql.transferissueRecord.TransferissueRecordMainMapper; import com.win.module.wms.service.recordsetting.RecordsettingService; @@ -61,10 +63,13 @@ public class TransferissueRecordMainServiceImpl implements TransferissueRecordMa private TransactionService transactionService; @Resource private TrendsApi trendsApi; + @Resource + private BalanceMapper balanceMapper; + @Transactional @Override - public Long createTransferissueRecordMain(TransferissueRecordMainCreateReqVO createReqVO) { + public String createTransferissueRecordMain(TransferissueRecordMainCreateReqVO createReqVO) { TransferissueRecordMainDO transferissueRecordMainDO = TransferissueRecordMainConvert.INSTANCE.convert(createReqVO); String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_DELIVER_RECORD.getCode()); transferissueRecordMainDO.setNumber(number); @@ -95,12 +100,15 @@ public class TransferissueRecordMainServiceImpl implements TransferissueRecordMa recordDetailDO.setId(null); transferissueRecordDetailMapper.insert(recordDetailDO); + //查询库存余额 + BalanceDO balanceDO = balanceMapper.getBalanceQty(recordDetailDO.getFromPackingNumber(), recordDetailDO.getItemCode(), recordDetailDO.getFromBatch(), recordDetailDO.getInventoryStatus(), recordDetailDO.getFromLocationCode()); + //添加库存事务list TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); BeanUtils.copyProperties(recordDetailDO, transactionCreateReqVO); //增加业务类型 transactionCreateReqVO.setBusinessType(businesstypeDO.getCode()); - TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); + TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType()); transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction()); transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode()); transactionCreateReqVO.setBusinessType(transferissueRecordMainDO.getBusinessType()); @@ -109,16 +117,43 @@ public class TransferissueRecordMainServiceImpl implements TransferissueRecordMa transactionCreateReqVO.setPackingNumber(recordDetailDO.getFromPackingNumber()); transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); transactionCreateReqVO.setBatch(recordDetailDO.getFromBatch()); - transactionCreateReqVO.setWarehouseCode(transferissueRecordMainDO.getToWarehouseCode()); + transactionCreateReqVO.setWarehouseCode(transferissueRecordMainDO.getFromWarehouseCode()); transactionCreateReqVO.setRecordNumber(number); + transactionCreateReqVO.setAmount(balanceDO.getAmount()); + transactionCreateReqVO.setArriveDate(balanceDO.getArriveDate()); + transactionCreateReqVO.setProduceDate(balanceDO.getProduceDate()); + transactionCreateReqVO.setExpireDate(balanceDO.getExpireDate()); transactionCreateReqVO.setId(null); - transactionCreateReqVO.setAmount(BigDecimal.ZERO); transactionCreateReqVOList.add(transactionCreateReqVO); + if(businesstypeDO.getInTransactionType() != null && !businesstypeDO.getInTransactionType().isEmpty()) { + TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO(); + BeanUtils.copyProperties(recordDetailDO, transactionCreateReqVOIn); + //增加业务入类型 + transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode()); + TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); + transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction()); + transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode()); + transactionCreateReqVOIn.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); + transactionCreateReqVOIn.setBatch(recordDetailDO.getToBatch()); + transactionCreateReqVOIn.setPackingNumber(recordDetailDO.getToPackingNumber()); + transactionCreateReqVOIn.setInventoryStatus(recordDetailDO.getInventoryStatus()); + transactionCreateReqVOIn.setLocationCode(recordDetailDO.getToLocationCode()); + transactionCreateReqVOIn.setSinglePrice(balanceDO.getSinglePrice()); + transactionCreateReqVOIn.setAmount(balanceDO.getAmount()); + transactionCreateReqVOIn.setArriveDate(balanceDO.getArriveDate()); + transactionCreateReqVOIn.setProduceDate(balanceDO.getProduceDate()); + transactionCreateReqVOIn.setExpireDate(balanceDO.getExpireDate()); + transactionCreateReqVOIn.setWarehouseCode(transferissueRecordMainDO.getFromWarehouseCode()); + transactionCreateReqVOIn.setRecordNumber(number); + transactionCreateReqVOIn.setId(null); + //待确定库存事务信息 + transactionCreateReqVOList.add(transactionCreateReqVOIn); + } } //增加库存事务 transactionService.createTransaction(transactionCreateReqVOList); trendsApi.createTrends(transferissueRecordMainDO.getId(), "TransferDeliverRecord", "增加了调拨出库申请记录", TrendsTypeEnum.CREATE); - return transferissueRecordMainDO.getId(); + return number; } @Override diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRequest/TransferissueRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRequest/TransferissueRequestMainServiceImpl.java index 3a33cf1c..5d099718 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRequest/TransferissueRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRequest/TransferissueRequestMainServiceImpl.java @@ -33,9 +33,11 @@ import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobDetailDO; import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobMainDO; +import com.win.module.wms.dal.dataobject.transferissueRecord.TransferissueRecordDetailDO; import com.win.module.wms.dal.dataobject.transferissueRecord.TransferissueRecordMainDO; import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestDetailDO; import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestMainDO; +import com.win.module.wms.dal.mysql.balance.BalanceMapper; import com.win.module.wms.dal.mysql.transferissueJob.TransferissueJobDetailMapper; import com.win.module.wms.dal.mysql.transferissueJob.TransferissueJobMainMapper; import com.win.module.wms.dal.mysql.transferissueRecord.TransferissueRecordDetailMapper; @@ -117,6 +119,8 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest private TransferreceiptRequestMainService transferreceiptRequestMainService; @Resource private TransactionService transactionService; + @Resource + private BalanceMapper balanceMapper; @Transactional @Override @@ -620,26 +624,58 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest transferissueRecordDetailCreateReqVO.setInventoryStatus(transferissueRequestDetailDO.getInventoryStatus()); transferissueRecordDetailCreateReqVO.setFromLocationGroupCode(transferissueRequestDetailDO.getFromLocationCode()); transferissueRecordDetailCreateReqVO.setFromAreaCode(transferissueRequestDetailDO.getFromLocationCode()); - transferissueRecordDetailMapper.insert(TransferissueRecordDetailConvert.INSTANCE.convert(transferissueRecordDetailCreateReqVO)); + TransferissueRecordDetailDO transferissueRecordDetailDO = TransferissueRecordDetailConvert.INSTANCE.convert(transferissueRecordDetailCreateReqVO); + transferissueRecordDetailMapper.insert(transferissueRecordDetailDO); + + //查询库存余额 + BalanceDO balanceDO = balanceMapper.getBalanceQty(transferissueRecordDetailDO.getFromPackingNumber(), transferissueRecordDetailDO.getItemCode(), transferissueRecordDetailDO.getFromBatch(), transferissueRecordDetailDO.getInventoryStatus(), transferissueRecordDetailDO.getFromLocationCode()); //添加库存事务list TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); - BeanUtils.copyProperties(transferissueRecordDetailCreateReqVO, transactionCreateReqVO); + BeanUtils.copyProperties(transferissueRecordDetailDO, transactionCreateReqVO); //增加业务类型 transactionCreateReqVO.setBusinessType(businesstypeDO.getCode()); - TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); + TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType()); transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction()); transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode()); transactionCreateReqVO.setBusinessType(transferissueRecordMainDO.getBusinessType()); - transactionCreateReqVO.setLocationCode(transferissueRecordDetailCreateReqVO.getToLocationCode()); - transactionCreateReqVO.setOwnerCode(transferissueRecordDetailCreateReqVO.getFromOwnerCode()); - transactionCreateReqVO.setPackingNumber(transferissueRequestDetailDO.getPackingNumber()); + transactionCreateReqVO.setLocationCode(transferissueRecordDetailDO.getToLocationCode()); + transactionCreateReqVO.setOwnerCode(transferissueRecordDetailDO.getFromOwnerCode()); + transactionCreateReqVO.setPackingNumber(transferissueRecordDetailDO.getFromPackingNumber()); transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); - transactionCreateReqVO.setBatch(transferissueRequestDetailDO.getBatch()); - transactionCreateReqVO.setWarehouseCode(transferissueRecordMainDO.getToWarehouseCode()); + transactionCreateReqVO.setBatch(transferissueRecordDetailDO.getFromBatch()); + transactionCreateReqVO.setWarehouseCode(transferissueRecordMainDO.getFromWarehouseCode()); transactionCreateReqVO.setRecordNumber(number); + transactionCreateReqVO.setAmount(balanceDO.getAmount()); + transactionCreateReqVO.setArriveDate(balanceDO.getArriveDate()); + transactionCreateReqVO.setProduceDate(balanceDO.getProduceDate()); + transactionCreateReqVO.setExpireDate(balanceDO.getExpireDate()); transactionCreateReqVO.setId(null); transactionCreateReqVOList.add(transactionCreateReqVO); + if(businesstypeDO.getInTransactionType() != null && !businesstypeDO.getInTransactionType().isEmpty()) { + TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO(); + BeanUtils.copyProperties(transferissueRecordDetailDO, transactionCreateReqVOIn); + //增加业务入类型 + transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode()); + TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); + transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction()); + transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode()); + transactionCreateReqVOIn.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); + transactionCreateReqVOIn.setBatch(transferissueRecordDetailDO.getToBatch()); + transactionCreateReqVOIn.setPackingNumber(transferissueRecordDetailDO.getToPackingNumber()); + transactionCreateReqVOIn.setInventoryStatus(transferissueRecordDetailDO.getInventoryStatus()); + transactionCreateReqVOIn.setLocationCode(transferissueRecordDetailDO.getToLocationCode()); + transactionCreateReqVOIn.setSinglePrice(balanceDO.getSinglePrice()); + transactionCreateReqVOIn.setAmount(balanceDO.getAmount()); + transactionCreateReqVOIn.setArriveDate(balanceDO.getArriveDate()); + transactionCreateReqVOIn.setProduceDate(balanceDO.getProduceDate()); + transactionCreateReqVOIn.setExpireDate(balanceDO.getExpireDate()); + transactionCreateReqVOIn.setWarehouseCode(transferissueRecordMainDO.getFromWarehouseCode()); + transactionCreateReqVOIn.setRecordNumber(number); + transactionCreateReqVOIn.setId(null); + //待确定库存事务信息 + transactionCreateReqVOList.add(transactionCreateReqVOIn); + } // 调拨入库数据拼装 TransferreceiptRequestDetailCreateReqVO transferreceiptRequestDetailCreateReqVO = new TransferreceiptRequestDetailCreateReqVO(); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptJob/TransferreceiptJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptJob/TransferreceiptJobMainServiceImpl.java index e0121a69..bf85e39c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptJob/TransferreceiptJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptJob/TransferreceiptJobMainServiceImpl.java @@ -13,6 +13,7 @@ import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; import com.win.module.wms.controller.transferreceiptJob.vo.*; import com.win.module.wms.convert.transferreceiptJob.TransferreceiptJobMainConvert; +import com.win.module.wms.dal.dataobject.balance.BalanceDO; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; import com.win.module.wms.dal.dataobject.location.LocationDO; import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; @@ -20,6 +21,7 @@ import com.win.module.wms.dal.dataobject.transferreceiptJob.TransferreceiptJobDe import com.win.module.wms.dal.dataobject.transferreceiptJob.TransferreceiptJobMainDO; import com.win.module.wms.dal.dataobject.transferreceiptRecord.TransferreceiptRecordDetailDO; import com.win.module.wms.dal.dataobject.transferreceiptRecord.TransferreceiptRecordMainDO; +import com.win.module.wms.dal.mysql.balance.BalanceMapper; import com.win.module.wms.dal.mysql.transferreceiptJob.TransferreceiptJobMainMapper; import com.win.module.wms.dal.mysql.transferreceiptRecord.TransferreceiptRecordDetailMapper; import com.win.module.wms.dal.mysql.transferreceiptRecord.TransferreceiptRecordMainMapper; @@ -77,6 +79,9 @@ public class TransferreceiptJobMainServiceImpl implements TransferreceiptJobMain private TransactionService transactionService; @Resource private ExpectinService expectinService; + @Resource + private BalanceMapper balanceMapper; + @Override public Long createTransferreceiptJobMain(TransferreceiptJobMainCreateReqVO createReqVO) { @@ -286,24 +291,54 @@ public class TransferreceiptJobMainServiceImpl implements TransferreceiptJobMain transferreceiptRecordDetailDO.setInventoryStatus(transferreceiptJobDetailUpdateReqVO.getToInventoryStatus());//toInventoryStatus transferreceiptRecordDetailDO.setQty(new BigDecimal(transferreceiptJobDetailUpdateReqVO.getToQty() == null?"0":transferreceiptJobDetailUpdateReqVO.getToQty()));//toQty transferreceiptRecordDetailDOList.add(transferreceiptRecordDetailDO); + //添加库存事务list + BalanceDO balanceDO = balanceMapper.getBalanceQty(transferreceiptRecordDetailDO.getFromPackingNumber(), transferreceiptRecordDetailDO.getItemCode(), transferreceiptRecordDetailDO.getFromBatch(), transferreceiptRecordDetailDO.getInventoryStatus(), transferreceiptRecordDetailDO.getFromLocationCode()); TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); - BeanUtils.copyProperties(transferreceiptJobDetailDO, transactionCreateReqVO); + BeanUtils.copyProperties(transferreceiptRecordDetailDO, transactionCreateReqVO); //增加业务类型 transactionCreateReqVO.setBusinessType(businesstypeDO.getCode()); - TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); + TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType()); transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction()); transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode()); transactionCreateReqVO.setBusinessType(transferreceiptRecordMainDO.getBusinessType()); - transactionCreateReqVO.setLocationCode(transferreceiptJobDetailDO.getToLocationCode()); - transactionCreateReqVO.setOwnerCode(transferreceiptJobDetailDO.getFromOwnerCode()); - transactionCreateReqVO.setPackingNumber(transferreceiptJobDetailDO.getPackingNumber()); + transactionCreateReqVO.setLocationCode(transferreceiptRecordDetailDO.getFromLocationCode()); + transactionCreateReqVO.setOwnerCode(transferreceiptRecordDetailDO.getFromOwnerCode()); + transactionCreateReqVO.setPackingNumber(transferreceiptRecordDetailDO.getFromPackingNumber()); transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); - transactionCreateReqVO.setBatch(transferreceiptJobDetailDO.getBatch()); + transactionCreateReqVO.setBatch(transferreceiptRecordDetailDO.getFromBatch()); transactionCreateReqVO.setWarehouseCode(transferreceiptRecordMainDO.getToWarehouseCode()); transactionCreateReqVO.setRecordNumber(number); + transactionCreateReqVO.setAmount(balanceDO.getAmount()); + transactionCreateReqVO.setArriveDate(balanceDO.getArriveDate()); + transactionCreateReqVO.setProduceDate(balanceDO.getProduceDate()); + transactionCreateReqVO.setExpireDate(balanceDO.getExpireDate()); transactionCreateReqVO.setId(null); transactionCreateReqVOList.add(transactionCreateReqVO); + if(businesstypeDO.getInTransactionType() != null && !businesstypeDO.getInTransactionType().isEmpty()) { + TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO(); + BeanUtils.copyProperties(transferreceiptRecordDetailDO, transactionCreateReqVOIn); + //增加业务入类型 + transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode()); + TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); + transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction()); + transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode()); + transactionCreateReqVOIn.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); + transactionCreateReqVOIn.setBatch(transferreceiptRecordDetailDO.getToBatch()); + transactionCreateReqVOIn.setPackingNumber(transferreceiptRecordDetailDO.getToPackingNumber()); + transactionCreateReqVOIn.setInventoryStatus(transferreceiptRecordDetailDO.getInventoryStatus()); + transactionCreateReqVOIn.setLocationCode(transferreceiptRecordDetailDO.getToLocationCode()); + transactionCreateReqVOIn.setSinglePrice(balanceDO.getSinglePrice()); + transactionCreateReqVOIn.setAmount(balanceDO.getAmount()); + transactionCreateReqVOIn.setArriveDate(balanceDO.getArriveDate()); + transactionCreateReqVOIn.setProduceDate(balanceDO.getProduceDate()); + transactionCreateReqVOIn.setExpireDate(balanceDO.getExpireDate()); + transactionCreateReqVOIn.setWarehouseCode(transferreceiptRecordMainDO.getFromWarehouseCode()); + transactionCreateReqVOIn.setRecordNumber(number); + transactionCreateReqVOIn.setId(null); + //待确定库存事务信息 + transactionCreateReqVOList.add(transactionCreateReqVOIn); + } } } if(!transferreceiptRecordDetailDOList.isEmpty()) { diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptRecord/TransferreceiptRecordMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptRecord/TransferreceiptRecordMainService.java index 09f51bde..a442c68c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptRecord/TransferreceiptRecordMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptRecord/TransferreceiptRecordMainService.java @@ -22,7 +22,7 @@ public interface TransferreceiptRecordMainService { * @param createReqVO 创建信息 * @return 编号 */ - Long createTransferreceiptRecordMain(@Valid TransferreceiptRecordMainCreateReqVO createReqVO); + String createTransferreceiptRecordMain(@Valid TransferreceiptRecordMainCreateReqVO createReqVO); /** * 获得用高级搜索调拨入库记录主分页列表 * diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptRecord/TransferreceiptRecordMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptRecord/TransferreceiptRecordMainServiceImpl.java index d9cee79f..689bb8b0 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptRecord/TransferreceiptRecordMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptRecord/TransferreceiptRecordMainServiceImpl.java @@ -11,10 +11,12 @@ import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; import com.win.module.wms.controller.transferreceiptRecord.vo.*; import com.win.module.wms.convert.transferreceiptRecord.TransferreceiptRecordDetailConvert; import com.win.module.wms.convert.transferreceiptRecord.TransferreceiptRecordMainConvert; +import com.win.module.wms.dal.dataobject.balance.BalanceDO; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; import com.win.module.wms.dal.dataobject.transferreceiptRecord.TransferreceiptRecordDetailDO; import com.win.module.wms.dal.dataobject.transferreceiptRecord.TransferreceiptRecordMainDO; +import com.win.module.wms.dal.mysql.balance.BalanceMapper; import com.win.module.wms.dal.mysql.transferreceiptRecord.TransferreceiptRecordDetailMapper; import com.win.module.wms.dal.mysql.transferreceiptRecord.TransferreceiptRecordMainMapper; import com.win.module.wms.service.recordsetting.RecordsettingService; @@ -60,11 +62,13 @@ public class TransferreceiptRecordMainServiceImpl implements TransferreceiptReco private TransactionService transactionService; @Resource private TrendsApi trendsApi; + @Resource + private BalanceMapper balanceMapper; @Transactional @Override - public Long createTransferreceiptRecordMain(TransferreceiptRecordMainCreateReqVO createReqVO) { + public String createTransferreceiptRecordMain(TransferreceiptRecordMainCreateReqVO createReqVO) { TransferreceiptRecordMainDO transferreceiptRecordMainDO = TransferreceiptRecordMainConvert.INSTANCE.convert(createReqVO); String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_RECEIPT_RECORD.getCode()); transferreceiptRecordMainDO.setNumber(number); @@ -82,6 +86,7 @@ public class TransferreceiptRecordMainServiceImpl implements TransferreceiptReco transferreceiptRecordMainDO.setId(null); transferreceiptRecordMainDO.setCreator(null); transferreceiptRecordMainDO.setCreateTime(LocalDateTime.now()); + transferreceiptRecordMainDO.setDepartmentCode(userApi.getUser(getLoginUserId()).getDeptId().toString()); transferreceiptRecordMainMapper.insert(transferreceiptRecordMainDO); //库存事务 List transactionCreateReqVOList = new ArrayList<>(); @@ -93,29 +98,60 @@ public class TransferreceiptRecordMainServiceImpl implements TransferreceiptReco recordDetailDO.setId(null); transferreceiptRecordDetailMapper.insert(recordDetailDO); + //查询库存余额 + BalanceDO balanceDO = balanceMapper.getBalanceQty(recordDetailDO.getFromPackingNumber(), recordDetailDO.getItemCode(), recordDetailDO.getFromBatch(), recordDetailDO.getInventoryStatus(), recordDetailDO.getFromLocationCode()); + //添加库存事务list TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); BeanUtils.copyProperties(recordDetailDO, transactionCreateReqVO); //增加业务类型 transactionCreateReqVO.setBusinessType(businesstypeDO.getCode()); - TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); + TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType()); transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction()); transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode()); transactionCreateReqVO.setBusinessType(transferreceiptRecordMainDO.getBusinessType()); - transactionCreateReqVO.setLocationCode(recordDetailDO.getToLocationCode()); + transactionCreateReqVO.setLocationCode(recordDetailDO.getFromLocationCode()); transactionCreateReqVO.setOwnerCode(recordDetailDO.getFromOwnerCode()); transactionCreateReqVO.setPackingNumber(recordDetailDO.getFromPackingNumber()); transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); transactionCreateReqVO.setBatch(recordDetailDO.getFromBatch()); transactionCreateReqVO.setWarehouseCode(transferreceiptRecordMainDO.getToWarehouseCode()); transactionCreateReqVO.setRecordNumber(number); + transactionCreateReqVO.setAmount(balanceDO.getAmount()); + transactionCreateReqVO.setArriveDate(balanceDO.getArriveDate()); + transactionCreateReqVO.setProduceDate(balanceDO.getProduceDate()); + transactionCreateReqVO.setExpireDate(balanceDO.getExpireDate()); transactionCreateReqVO.setId(null); transactionCreateReqVOList.add(transactionCreateReqVO); + if(businesstypeDO.getInTransactionType() != null && !businesstypeDO.getInTransactionType().isEmpty()) { + TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO(); + BeanUtils.copyProperties(recordDetailDO, transactionCreateReqVOIn); + //增加业务入类型 + transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode()); + TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); + transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction()); + transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode()); + transactionCreateReqVOIn.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); + transactionCreateReqVOIn.setBatch(recordDetailDO.getToBatch()); + transactionCreateReqVOIn.setPackingNumber(recordDetailDO.getToPackingNumber()); + transactionCreateReqVOIn.setInventoryStatus(recordDetailDO.getInventoryStatus()); + transactionCreateReqVOIn.setLocationCode(recordDetailDO.getToLocationCode()); + transactionCreateReqVOIn.setSinglePrice(balanceDO.getSinglePrice()); + transactionCreateReqVOIn.setAmount(balanceDO.getAmount()); + transactionCreateReqVOIn.setArriveDate(balanceDO.getArriveDate()); + transactionCreateReqVOIn.setProduceDate(balanceDO.getProduceDate()); + transactionCreateReqVOIn.setExpireDate(balanceDO.getExpireDate()); + transactionCreateReqVOIn.setWarehouseCode(transferreceiptRecordMainDO.getFromWarehouseCode()); + transactionCreateReqVOIn.setRecordNumber(number); + transactionCreateReqVOIn.setId(null); + //待确定库存事务信息 + transactionCreateReqVOList.add(transactionCreateReqVOIn); + } } //增加库存事务 transactionService.createTransaction(transactionCreateReqVOList); trendsApi.createTrends(transferreceiptRecordMainDO.getId(), "TransferReceiptRecord", "增加了调拨入库申请记录", TrendsTypeEnum.CREATE); - return transferreceiptRecordMainDO.getId(); + return number; } @Override diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptRequest/TransferreceiptRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptRequest/TransferreceiptRequestMainServiceImpl.java index f1db6b74..463c9097 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptRequest/TransferreceiptRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptRequest/TransferreceiptRequestMainServiceImpl.java @@ -10,6 +10,7 @@ import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.wms.controller.expectin.vo.ExpectinCreateReqVO; +import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; import com.win.module.wms.controller.transferreceiptRecord.vo.TransferreceiptRecordDetailCreateReqVO; import com.win.module.wms.controller.transferreceiptRecord.vo.TransferreceiptRecordMainCreateReqVO; import com.win.module.wms.controller.transferreceiptRequest.vo.*; @@ -25,12 +26,14 @@ import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.jobsetting.JobsettingDO; import com.win.module.wms.dal.dataobject.location.LocationDO; import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; +import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; import com.win.module.wms.dal.dataobject.transferreceiptJob.TransferreceiptJobDetailDO; import com.win.module.wms.dal.dataobject.transferreceiptJob.TransferreceiptJobMainDO; import com.win.module.wms.dal.dataobject.transferreceiptRecord.TransferreceiptRecordDetailDO; import com.win.module.wms.dal.dataobject.transferreceiptRecord.TransferreceiptRecordMainDO; import com.win.module.wms.dal.dataobject.transferreceiptRequest.TransferreceiptRequestDetailDO; import com.win.module.wms.dal.dataobject.transferreceiptRequest.TransferreceiptRequestMainDO; +import com.win.module.wms.dal.mysql.balance.BalanceMapper; import com.win.module.wms.dal.mysql.transferreceiptJob.TransferreceiptJobDetailMapper; import com.win.module.wms.dal.mysql.transferreceiptJob.TransferreceiptJobMainMapper; import com.win.module.wms.dal.mysql.transferreceiptRecord.TransferreceiptRecordDetailMapper; @@ -46,6 +49,7 @@ import com.win.module.wms.service.jobsetting.JobsettingService; import com.win.module.wms.service.location.LocationService; import com.win.module.wms.service.recordsetting.RecordsettingService; import com.win.module.wms.service.requestsetting.RequestsettingService; +import com.win.module.wms.service.transaction.TransactionService; import com.win.module.wms.util.JobUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -101,6 +105,12 @@ public class TransferreceiptRequestMainServiceImpl implements TransferreceiptReq private ExpectinService expectinService; @Resource private TransferreceiptRequestDetailService transferreceiptRequestDetailService; + @Resource + private TransactionService transactionService; + @Resource + private BalanceMapper balanceMapper; + + @Transactional @Override @@ -141,6 +151,8 @@ public class TransferreceiptRequestMainServiceImpl implements TransferreceiptReq transferreceiptRecordMainCreateReqVO.setCreateTime(null); TransferreceiptRecordMainDO transferreceiptRecordMainDO = TransferreceiptRecordMainConvert.INSTANCE.convert(transferreceiptRecordMainCreateReqVO); transferreceiptRecordMainMapper.insert(transferreceiptRecordMainDO); + //库存事务 + List transactionCreateReqVOList = new ArrayList<>(); for(TransferreceiptRequestDetailDO transferreceiptRequestDetailDO : detailDOList) { TransferreceiptRecordDetailCreateReqVO transferreceiptRecordDetailCreateReqVO = new TransferreceiptRecordDetailCreateReqVO(); BeanUtils.copyProperties(transferreceiptRequestDetailDO, transferreceiptRecordDetailCreateReqVO); @@ -157,7 +169,57 @@ public class TransferreceiptRequestMainServiceImpl implements TransferreceiptReq transferreceiptRecordDetailCreateReqVO.setFromAreaCode(transferreceiptRequestDetailDO.getFromLocationCode()); TransferreceiptRecordDetailDO transferreceiptRecordDetailDO = TransferreceiptRecordDetailConvert.INSTANCE.convert(transferreceiptRecordDetailCreateReqVO); transferreceiptRecordDetailMapper.insert(transferreceiptRecordDetailDO); + + //添加库存事务list + BalanceDO balanceDO = balanceMapper.getBalanceQty(transferreceiptRequestDetailDO.getPackingNumber(), transferreceiptRequestDetailDO.getItemCode(), transferreceiptRequestDetailDO.getBatch(), transferreceiptRequestDetailDO.getInventoryStatus(), transferreceiptRequestDetailDO.getFromLocationCode()); + TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); + BeanUtils.copyProperties(transferreceiptRequestDetailDO, transactionCreateReqVO); + //增加业务类型 + transactionCreateReqVO.setBusinessType(businesstypeDO.getCode()); + TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType()); + transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction()); + transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode()); + transactionCreateReqVO.setBusinessType(transferreceiptRecordMainDO.getBusinessType()); + transactionCreateReqVO.setLocationCode(transferreceiptRequestDetailDO.getToLocationCode()); + transactionCreateReqVO.setOwnerCode(transferreceiptRequestDetailDO.getFromOwnerCode()); + transactionCreateReqVO.setPackingNumber(transferreceiptRequestDetailDO.getPackingNumber()); + transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); + transactionCreateReqVO.setBatch(transferreceiptRequestDetailDO.getBatch()); + transactionCreateReqVO.setWarehouseCode(transferreceiptRecordMainDO.getToWarehouseCode()); + transactionCreateReqVO.setRecordNumber(number); + transactionCreateReqVO.setAmount(balanceDO.getAmount()); + transactionCreateReqVO.setArriveDate(balanceDO.getArriveDate()); + transactionCreateReqVO.setProduceDate(balanceDO.getProduceDate()); + transactionCreateReqVO.setExpireDate(balanceDO.getExpireDate()); + transactionCreateReqVO.setId(null); + transactionCreateReqVOList.add(transactionCreateReqVO); + if(businesstypeDO.getInTransactionType() != null && !businesstypeDO.getInTransactionType().isEmpty()) { + TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO(); + BeanUtils.copyProperties(transferreceiptRequestDetailDO, transactionCreateReqVOIn); + //增加业务入类型 + transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode()); + TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); + transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction()); + transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode()); + transactionCreateReqVOIn.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); + transactionCreateReqVOIn.setBatch(transferreceiptRequestDetailDO.getBatch()); + transactionCreateReqVOIn.setPackingNumber(transferreceiptRequestDetailDO.getPackingNumber()); + transactionCreateReqVOIn.setInventoryStatus(transferreceiptRequestDetailDO.getInventoryStatus()); + transactionCreateReqVOIn.setLocationCode(transferreceiptRequestDetailDO.getToLocationCode()); + transactionCreateReqVOIn.setSinglePrice(balanceDO.getSinglePrice()); + transactionCreateReqVOIn.setAmount(balanceDO.getAmount()); + transactionCreateReqVOIn.setArriveDate(balanceDO.getArriveDate()); + transactionCreateReqVOIn.setProduceDate(balanceDO.getProduceDate()); + transactionCreateReqVOIn.setExpireDate(balanceDO.getExpireDate()); + transactionCreateReqVOIn.setWarehouseCode(transferreceiptRecordMainDO.getFromWarehouseCode()); + transactionCreateReqVOIn.setRecordNumber(number); + transactionCreateReqVOIn.setId(null); + //待确定库存事务信息 + transactionCreateReqVOList.add(transactionCreateReqVOIn); + } } + //增加库存事务 + transactionService.createTransaction(transactionCreateReqVOList); return; } // 任务 主表数据创建