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 8dad4184..a3f82d54 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 @@ -118,13 +118,6 @@ public class TransferissueRecordMainController { ExcelUtils.write(response, "调拨出库记录主.xls", "数据", TransferissueRecordMainExcelVO.class, datas); } - @PostMapping("/pdaCreate") - @Operation(summary = "PDA创建调拨出库记录") - @PreAuthorize("@ss.hasPermission('wms:transferissue-record-main:create')") - public CommonResult pdaCreateTransferissueRecord(@Valid @RequestBody TransferissueRecordMainCreateReqVO createReqVO) { - Long id = transferissueRecordMainService.pdaCreateTransferissueRecord(createReqVO); - return success(id); - } @GetMapping("/getDetailInfoById") @Operation(summary = "获取记录根据ID") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferissueRequest/TransferissueRequestDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferissueRequest/TransferissueRequestDetailConvert.java index 55f45c13..f5d751e5 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferissueRequest/TransferissueRequestDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferissueRequest/TransferissueRequestDetailConvert.java @@ -50,5 +50,5 @@ public interface TransferissueRequestDetailConvert { TransferissueRequestDetailExcelVO convert(TransferissueRequestMainDO mainDO, TransferissueRequestDetailDO detailDO); - + TransferissueRequestDetailDO convertReq(TransferissueRequestDetailBaseVO createReqVO); } 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 641f15f6..040b3530 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 @@ -77,12 +77,6 @@ public interface TransferissueRecordMainService { */ List getTransferissueRecordMainList(TransferissueRecordMainExportReqVO exportReqVO); - /** - * PDA创建记录 - * @param createReqVO 记录请参数 - * @return 主表ID - */ - Long pdaCreateTransferissueRecord(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 84b8688e..e2b1dc77 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 @@ -2,6 +2,8 @@ package com.win.module.wms.service.transferissueRecord; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; +import com.win.module.infra.api.trends.TrendsApi; +import com.win.module.infra.enums.TrendsTypeEnum; import com.win.module.system.api.serialnumber.SerialNumberApi; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.enums.serialNumber.RuleCodeEnum; @@ -20,7 +22,6 @@ 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; -import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; @@ -56,14 +57,61 @@ public class TransferissueRecordMainServiceImpl implements TransferissueRecordMa private AdminUserApi userApi; @Resource private TransactionService transactionService; + @Resource + private TrendsApi trendsApi; @Override public Long createTransferissueRecordMain(TransferissueRecordMainCreateReqVO createReqVO) { - // 插入 - TransferissueRecordMainDO transferissueRecordMain = TransferissueRecordMainConvert.INSTANCE.convert(createReqVO); - transferissueRecordMainMapper.insert(transferissueRecordMain); - // 返回 - return transferissueRecordMain.getId(); + TransferissueRecordMainDO transferissueRecordMainDO = TransferissueRecordMainConvert.INSTANCE.convert(createReqVO); + String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_DELIVER_RECORD.getCode()); + transferissueRecordMainDO.setNumber(number); + //增加业务类型 + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferDeliverRecord"); + transferissueRecordMainDO.setBusinessType(businesstypeDO.getCode()); + transferissueRecordMainDO.setOutTransactionType(businesstypeDO.getOutTransactionType()); + transferissueRecordMainDO.setInTransactionType(businesstypeDO.getInTransactionType()); + String interFaceType = recordsettingService.selectRecordsettingExist("TransferDeliverRecord").getInterfaceType(); + transferissueRecordMainDO.setInterfaceType(interFaceType); + transferissueRecordMainDO.setExecuteTime(LocalDateTime.now()); + transferissueRecordMainDO.setActiveDate(LocalDateTime.now()); + transferissueRecordMainDO.setAvailable("TRUE"); + transferissueRecordMainDO.setDueTime(null); + transferissueRecordMainDO.setId(null); + transferissueRecordMainDO.setCreator(null); + transferissueRecordMainDO.setCreateTime(LocalDateTime.now()); + transferissueRecordMainMapper.insert(transferissueRecordMainDO); + //库存事务 + List transactionCreateReqVOList = new ArrayList<>(); + List subList = createReqVO.getSubList(); + for(TransferissueRecordDetailCreateReqVO transferissueRecordDetailCreateReqVO : subList) { + TransferissueRecordDetailDO recordDetailDO = TransferissueRecordDetailConvert.INSTANCE.convert(transferissueRecordDetailCreateReqVO); + recordDetailDO.setNumber(number); + recordDetailDO.setMasterId(transferissueRecordMainDO.getId()); + transferissueRecordDetailMapper.insert(recordDetailDO); + + //添加库存事务list + TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); + BeanUtils.copyProperties(recordDetailDO, transactionCreateReqVO); + //增加业务类型 + transactionCreateReqVO.setBusinessType(businesstypeDO.getCode()); + TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); + transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction()); + transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode()); + transactionCreateReqVO.setBusinessType(transferissueRecordMainDO.getBusinessType()); + transactionCreateReqVO.setLocationCode(recordDetailDO.getToLocationCode()); + transactionCreateReqVO.setOwnerCode(recordDetailDO.getFromOwnerCode()); + transactionCreateReqVO.setPackingNumber(recordDetailDO.getFromPackingNumber()); + transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); + transactionCreateReqVO.setBatch(recordDetailDO.getFromBatch()); + transactionCreateReqVO.setWarehouseCode(transferissueRecordMainDO.getToWarehouseCode()); + transactionCreateReqVO.setRecordNumber(number); + transactionCreateReqVO.setId(null); + transactionCreateReqVOList.add(transactionCreateReqVO); + } + //增加库存事务 + transactionService.createTransaction(transactionCreateReqVOList); + trendsApi.createTrends(transferissueRecordMainDO.getId(), "TransferDeliverRecord", "增加了调拨出库申请记录", TrendsTypeEnum.CREATE); + return transferissueRecordMainDO.getId(); } @Override @@ -114,61 +162,6 @@ public class TransferissueRecordMainServiceImpl implements TransferissueRecordMa return transferissueRecordMainMapper.selectList(exportReqVO); } - @Transactional - @Override - public Long pdaCreateTransferissueRecord(TransferissueRecordMainCreateReqVO createReqVO) { - TransferissueRecordMainDO transferissueRecordMainDO = TransferissueRecordMainConvert.INSTANCE.convert(createReqVO); - String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_DELIVER_RECORD.getCode()); - transferissueRecordMainDO.setNumber(number); - //增加业务类型 - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferDeliverRecord"); - transferissueRecordMainDO.setBusinessType(businesstypeDO.getCode()); - transferissueRecordMainDO.setOutTransactionType(businesstypeDO.getOutTransactionType()); - transferissueRecordMainDO.setInTransactionType(businesstypeDO.getInTransactionType()); - String interFaceType = recordsettingService.selectRecordsettingExist("TransferDeliverRecord").getInterfaceType(); - transferissueRecordMainDO.setInterfaceType(interFaceType); - transferissueRecordMainDO.setExecuteTime(LocalDateTime.now()); - transferissueRecordMainDO.setActiveDate(LocalDateTime.now()); - transferissueRecordMainDO.setAvailable("TRUE"); - transferissueRecordMainDO.setDueTime(null); - transferissueRecordMainDO.setId(null); - transferissueRecordMainDO.setCreator(null); - transferissueRecordMainDO.setCreateTime(null); - transferissueRecordMainMapper.insert(transferissueRecordMainDO); - - //库存事务 - List transactionCreateReqVOList = new ArrayList<>(); - - List subList = createReqVO.getSubList(); - for(TransferissueRecordDetailCreateReqVO transferissueRecordDetailCreateReqVO : subList) { - TransferissueRecordDetailDO recordDetailDO = TransferissueRecordDetailConvert.INSTANCE.convert(transferissueRecordDetailCreateReqVO); - recordDetailDO.setNumber(number); - recordDetailDO.setMasterId(transferissueRecordMainDO.getId()); - transferissueRecordDetailMapper.insert(recordDetailDO); - - //添加库存事务list - TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); - BeanUtils.copyProperties(recordDetailDO, transactionCreateReqVO); - //增加业务类型 - transactionCreateReqVO.setBusinessType(businesstypeDO.getCode()); - TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); - transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction()); - transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode()); - transactionCreateReqVO.setBusinessType(transferissueRecordMainDO.getBusinessType()); - transactionCreateReqVO.setLocationCode(recordDetailDO.getToLocationCode()); - transactionCreateReqVO.setOwnerCode(recordDetailDO.getFromOwnerCode()); - transactionCreateReqVO.setPackingNumber(recordDetailDO.getFromPackingNumber()); - transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); - transactionCreateReqVO.setBatch(recordDetailDO.getFromBatch()); - transactionCreateReqVO.setWarehouseCode(transferissueRecordMainDO.getToWarehouseCode()); - transactionCreateReqVO.setRecordNumber(number); - transactionCreateReqVO.setId(null); - transactionCreateReqVOList.add(transactionCreateReqVO); - } - //增加库存事务 - transactionService.createTransaction(transactionCreateReqVOList); - return transferissueRecordMainDO.getId(); - } @Override public TransferissueRecordMainRespVO getDetailInfoById(Long id) { diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRequest/TransferissueRequestDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRequest/TransferissueRequestDetailServiceImpl.java index 6cb5967b..206ddd89 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRequest/TransferissueRequestDetailServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRequest/TransferissueRequestDetailServiceImpl.java @@ -4,8 +4,6 @@ import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; import com.win.module.infra.api.trends.TrendsApi; import com.win.module.infra.enums.TrendsTypeEnum; -import com.win.module.system.api.serialnumber.SerialNumberApi; -import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestDetailCreateReqVO; import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestDetailExportReqVO; import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestDetailPageReqVO; @@ -17,12 +15,15 @@ import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; 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.transferissueRequest.TransferissueRequestDetailDO; +import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestMainDO; import com.win.module.wms.dal.mysql.transferissueRequest.TransferissueRequestDetailMapper; +import com.win.module.wms.dal.mysql.transferissueRequest.TransferissueRequestMainMapper; import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.location.LocationService; import com.win.module.wms.service.requestsetting.RequestsettingService; import com.win.module.wms.util.JobUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; @@ -32,7 +33,7 @@ import java.util.Collection; import java.util.List; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.win.module.wms.enums.ErrorCodeConstants.TRANSFERISSUE_REQUEST_DETAIL_NOT_EXISTS; +import static com.win.module.wms.enums.ErrorCodeConstants.*; /** * 调拨出库申请子 Service 实现类 @@ -46,31 +47,34 @@ public class TransferissueRequestDetailServiceImpl implements TransferissueReque @Resource private TransferissueRequestDetailMapper transferissueRequestDetailMapper; - @Resource private ItembasicService itembasicService; - @Resource private LocationService locationService; - @Resource private JobUtils jobUtils; - @Resource private TrendsApi trendsApi; - - @Resource - private SerialNumberApi serialNumberApi; @Resource private RequestsettingService requestsettingService; + @Resource + private TransferissueRequestMainMapper transferissueRequestMainMapper; + + + @Transactional @Override public Long createTransferissueRequestDetail(TransferissueRequestDetailCreateReqVO createReqVO) { RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("TransferDeliverRequest"); + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferDeliverRequest"); + TransferissueRequestMainDO mainDO = transferissueRequestMainMapper.selectById(createReqVO.getMasterId()); // 插入 - TransferissueRequestDetailDO transferissueRequestDetail = validatorToCreate(createReqVO,requestsettingDO); - + TransferissueRequestDetailDO transferissueRequestDetailDO = TransferissueRequestDetailConvert.INSTANCE.convertReq(createReqVO); + transferissueRequestDetailDO = validateDetailMethod(transferissueRequestDetailDO,businesstypeDO); + transferissueRequestDetailDO.setNumber(mainDO.getNumber()); + transferissueRequestDetailDO.setMasterId(mainDO.getId()); + transferissueRequestDetailMapper.insert(transferissueRequestDetailDO); trendsApi.createTrends(requestsettingDO.getId(), "TransferDeliverRequest", "增加了调拨出库申请", TrendsTypeEnum.CREATE); - return transferissueRequestDetail.getId(); + return transferissueRequestDetailDO.getId(); } private List validatebalance(TransferissueRequestDetailDO detailDo){ @@ -81,57 +85,61 @@ public class TransferissueRequestDetailServiceImpl implements TransferissueReque } private LocationDO validatorLocation(String Location){ - return locationService.selectLocation(Location); } - private TransferissueRequestDetailDO validatorToCreate(TransferissueRequestDetailCreateReqVO createReqVO, RequestsettingDO requestsettingDO) { - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferDeliverRequest"); - TransferissueRequestDetailDO transferissueRequestDetailDO = TransferissueRequestDetailConvert.INSTANCE.convert(createReqVO); - transferissueRequestDetailDO = validateDetailMethod(transferissueRequestDetailDO,businesstypeDO); - String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_REQUEST.getCode()); - transferissueRequestDetailDO.setNumber(number); - transferissueRequestDetailDO.setMasterId(createReqVO.getMasterId()); - transferissueRequestDetailMapper.insert(transferissueRequestDetailDO); - return transferissueRequestDetailDO; - - } - - - private ItembasicDO validatorItembasic(String itemCode) { return itembasicService.selectItembasic(itemCode); } private TransferissueRequestDetailDO validateDetailMethod(TransferissueRequestDetailDO transferissueRequestDetailDO, BusinesstypeDO businesstypeDO) { transferissueRequestDetailDO.setCreateTime(LocalDateTime.now()); + // BQ——>QL 校验来源/目标库位基础信息 + LocationDO tolocationDO = validatorLocation(transferissueRequestDetailDO.getToLocationCode()); + if(tolocationDO == null){ + throw exception(TRANSFERISSUE_REQUEST_DETAIL_LOCALTIONCODE_NOT_EXISTS, transferissueRequestDetailDO.getToLocationCode()); + } + LocationDO fromlocationDO = validatorLocation(transferissueRequestDetailDO.getFromLocationCode()); + if(fromlocationDO == null){ + throw exception(TRANSFERISSUE_REQUEST_DETAIL_LOCALTIONCODE_NOT_EXISTS, transferissueRequestDetailDO.getFromLocationCode()); + } + // BQ----QI 校验物品基础信息 ItembasicDO item = validatorItembasic(transferissueRequestDetailDO.getItemCode()); + if(item == null){ + throw exception(TRANSFERISSUE_REQUEST_DETAIL_ITEM_NOT_EXISTS, transferissueRequestDetailDO.getItemCode()); + } transferissueRequestDetailDO.setItemDesc1(item.getDesc1()); transferissueRequestDetailDO.setItemDesc2(item.getDesc2()); transferissueRequestDetailDO.setItemName(item.getName()); transferissueRequestDetailDO.setUom(item.getUom()); transferissueRequestDetailDO.setProjectCode(item.getProject()); - validatorLocation(transferissueRequestDetailDO.getToLocationCode()); + // DBT——>DBT2——>LO 校验来源库位 + jobUtils.ifInToLocationType(transferissueRequestDetailDO.getFromLocationCode(), businesstypeDO); + // DBT——>DBT2——>LO 校验目标库位 jobUtils.ifInToLocationType(transferissueRequestDetailDO.getToLocationCode(), businesstypeDO); + // DBT——>DBT2——>SO 校验库存状态 jobUtils.ifOutInventoryStatuses(transferissueRequestDetailDO.getInventoryStatus(), businesstypeDO); + // TB——>TB1 校验库存余额是否存在 validatebalance(transferissueRequestDetailDO); return transferissueRequestDetailDO; - } - - - + } @Override public PageResult getTransferissueRequestDetailSenior(CustomConditions conditions) { return transferissueRequestDetailMapper.selectSenior(conditions); } + + @Transactional @Override public void updateTransferissueRequestDetail(TransferissueRequestDetailUpdateReqVO updateReqVO) { // 校验存在 validateTransferissueRequestDetailExists(updateReqVO.getId()); - // 更新 - TransferissueRequestDetailDO updateObj = TransferissueRequestDetailConvert.INSTANCE.convert(updateReqVO); - transferissueRequestDetailMapper.updateById(updateObj); + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferDeliverRequest"); + TransferissueRequestDetailDO transferissueRequestDetailDO = TransferissueRequestDetailConvert.INSTANCE.convert(updateReqVO); + // 校验数据 + validateDetailMethod(transferissueRequestDetailDO,businesstypeDO); + // 更新数据 + transferissueRequestDetailMapper.updateById(transferissueRequestDetailDO); } @Override