From 2bca72997196a0e3991f4643a6b107fed345c13f Mon Sep 17 00:00:00 2001 From: zhaoxuebing <1291173720@qq.com> Date: Mon, 18 Dec 2023 16:33:03 +0800 Subject: [PATCH] =?UTF-8?q?PDA=E8=B0=83=E6=8B=A8=E5=85=A5=E5=BA=93?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E6=8E=A5=E5=8F=A3=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TransferreceiptRecordMainCreateReqVO.java | 7 ++ .../TransferreceiptRequestDetailBaseVO.java | 3 + .../TransferissueRecordMainConvert.java | 1 + .../TransferreceiptRecordMainServiceImpl.java | 95 +++++++++++++++++-- .../TransferreceiptRequestDetailService.java | 18 +++- ...ansferreceiptRequestDetailServiceImpl.java | 89 +++++++++++++++-- ...TransferreceiptRequestMainServiceImpl.java | 65 +------------ 7 files changed, 198 insertions(+), 80 deletions(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRecord/vo/TransferreceiptRecordMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRecord/vo/TransferreceiptRecordMainCreateReqVO.java index bda078bc..5aa571d8 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRecord/vo/TransferreceiptRecordMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRecord/vo/TransferreceiptRecordMainCreateReqVO.java @@ -1,12 +1,19 @@ package com.win.module.wms.controller.transferreceiptRecord.vo; +import com.win.framework.excel.core.annotations.SubObject; +import com.win.module.wms.controller.transferissueRecord.vo.TransferissueRecordDetailCreateReqVO; import lombok.*; import io.swagger.v3.oas.annotations.media.Schema; +import java.util.List; + @Schema(description = "管理后台 - 调拨入库记录主创建 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class TransferreceiptRecordMainCreateReqVO extends TransferreceiptRecordMainBaseVO { + @SubObject + @Schema(description = "子表数据") + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRequest/vo/TransferreceiptRequestDetailBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRequest/vo/TransferreceiptRequestDetailBaseVO.java index 6b20a0cd..a3e9c3b5 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRequest/vo/TransferreceiptRequestDetailBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRequest/vo/TransferreceiptRequestDetailBaseVO.java @@ -90,4 +90,7 @@ public class TransferreceiptRequestDetailBaseVO { @Schema(description = "到库位代码") private String toLocationCode; + @Schema(description = "主键ID") + private Long masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferissueRecord/TransferissueRecordMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferissueRecord/TransferissueRecordMainConvert.java index fc64cedd..0fb5673f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferissueRecord/TransferissueRecordMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferissueRecord/TransferissueRecordMainConvert.java @@ -8,6 +8,7 @@ import com.win.module.wms.controller.transferissueRecord.vo.TransferissueRecordM import com.win.module.wms.controller.transferissueRecord.vo.TransferissueRecordMainExcelVO; import com.win.module.wms.controller.transferissueRecord.vo.TransferissueRecordMainRespVO; import com.win.module.wms.controller.transferissueRecord.vo.TransferissueRecordMainUpdateReqVO; +import com.win.module.wms.controller.transferreceiptRecord.vo.TransferreceiptRecordMainCreateReqVO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.transferissueRecord.TransferissueRecordMainDO; 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 a956fae7..5af45ec2 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 @@ -2,21 +2,37 @@ package com.win.module.wms.service.transferreceiptRecord; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.transferreceiptRecord.vo.TransferreceiptRecordMainCreateReqVO; -import com.win.module.wms.controller.transferreceiptRecord.vo.TransferreceiptRecordMainExportReqVO; -import com.win.module.wms.controller.transferreceiptRecord.vo.TransferreceiptRecordMainPageReqVO; -import com.win.module.wms.controller.transferreceiptRecord.vo.TransferreceiptRecordMainUpdateReqVO; +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; +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.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.transferreceiptRecord.TransferreceiptRecordDetailMapper; import com.win.module.wms.dal.mysql.transferreceiptRecord.TransferreceiptRecordMainMapper; +import com.win.module.wms.service.recordsetting.RecordsettingService; +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; +import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.Collection; import java.util.List; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; import static com.win.module.wms.enums.ErrorCodeConstants.TRANSFERRECEIPT_RECORD_MAIN_NOT_EXISTS; /** @@ -30,14 +46,75 @@ public class TransferreceiptRecordMainServiceImpl implements TransferreceiptReco @Resource private TransferreceiptRecordMainMapper transferreceiptRecordMainMapper; + @Resource + private SerialNumberApi serialNumberApi; + @Resource + private JobUtils jobUtils; + @Resource + private RecordsettingService recordsettingService; + @Resource + private TransferreceiptRecordDetailMapper transferreceiptRecordDetailMapper; + @Resource + private AdminUserApi userApi; + @Resource + private TransactionService transactionService; + @Resource + private TrendsApi trendsApi; + + @Transactional @Override public Long createTransferreceiptRecordMain(TransferreceiptRecordMainCreateReqVO createReqVO) { - // 插入 - TransferreceiptRecordMainDO transferreceiptRecordMain = TransferreceiptRecordMainConvert.INSTANCE.convert(createReqVO); - transferreceiptRecordMainMapper.insert(transferreceiptRecordMain); - // 返回 - return transferreceiptRecordMain.getId(); + TransferreceiptRecordMainDO transferreceiptRecordMainDO = TransferreceiptRecordMainConvert.INSTANCE.convert(createReqVO); + String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_RECEIPT_RECORD.getCode()); + transferreceiptRecordMainDO.setNumber(number); + //增加业务类型 + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferReceiptRecord"); + transferreceiptRecordMainDO.setBusinessType(businesstypeDO.getCode()); + transferreceiptRecordMainDO.setOutTransactionType(businesstypeDO.getOutTransactionType()); + transferreceiptRecordMainDO.setInTransactionType(businesstypeDO.getInTransactionType()); + String interFaceType = recordsettingService.selectRecordsettingExist("TransferReceiptRecord").getInterfaceType(); + transferreceiptRecordMainDO.setInterfaceType(interFaceType); + transferreceiptRecordMainDO.setExecuteTime(LocalDateTime.now()); + transferreceiptRecordMainDO.setActiveDate(LocalDateTime.now()); + transferreceiptRecordMainDO.setAvailable("TRUE"); + transferreceiptRecordMainDO.setDueTime(null); + transferreceiptRecordMainDO.setId(null); + transferreceiptRecordMainDO.setCreator(null); + transferreceiptRecordMainDO.setCreateTime(LocalDateTime.now()); + transferreceiptRecordMainMapper.insert(transferreceiptRecordMainDO); + //库存事务 + List transactionCreateReqVOList = new ArrayList<>(); + List subList = createReqVO.getSubList(); + for(TransferreceiptRecordDetailCreateReqVO transferreceiptRecordDetailCreateReqVO : subList) { + TransferreceiptRecordDetailDO recordDetailDO = TransferreceiptRecordDetailConvert.INSTANCE.convert(transferreceiptRecordDetailCreateReqVO); + recordDetailDO.setNumber(number); + recordDetailDO.setMasterId(transferreceiptRecordMainDO.getId()); + transferreceiptRecordDetailMapper.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(transferreceiptRecordMainDO.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(transferreceiptRecordMainDO.getToWarehouseCode()); + transactionCreateReqVO.setRecordNumber(number); + transactionCreateReqVO.setId(null); + transactionCreateReqVOList.add(transactionCreateReqVO); + } + //增加库存事务 + transactionService.createTransaction(transactionCreateReqVOList); + trendsApi.createTrends(transferreceiptRecordMainDO.getId(), "TransferReceiptRecord", "增加了调拨入库申请记录", TrendsTypeEnum.CREATE); + return transferreceiptRecordMainDO.getId(); } @Override diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptRequest/TransferreceiptRequestDetailService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptRequest/TransferreceiptRequestDetailService.java index 81a5b544..6b4f7407 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptRequest/TransferreceiptRequestDetailService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptRequest/TransferreceiptRequestDetailService.java @@ -1,15 +1,18 @@ package com.win.module.wms.service.transferreceiptRequest; -import java.util.*; -import javax.validation.*; - import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.common.pojo.PageResult; import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestDetailCreateReqVO; import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestDetailExportReqVO; import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestDetailPageReqVO; import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; import com.win.module.wms.dal.dataobject.transferreceiptRequest.TransferreceiptRequestDetailDO; -import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.dal.dataobject.transferreceiptRequest.TransferreceiptRequestMainDO; + +import javax.validation.Valid; +import java.util.Collection; +import java.util.List; /** * 调拨入库申请子 Service 接口 @@ -79,4 +82,11 @@ public interface TransferreceiptRequestDetailService { */ List getTransferreceiptRequestDetailList(TransferreceiptRequestDetailExportReqVO exportReqVO); + /** + * 校验子表数据 + * @param transferreceiptRequestDetailDO + * @param businesstypeDO + * @param transferreceiptRequestMainDO + */ + void validateDetailMethod(TransferreceiptRequestDetailDO transferreceiptRequestDetailDO, BusinesstypeDO businesstypeDO, TransferreceiptRequestMainDO transferreceiptRequestMainDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptRequest/TransferreceiptRequestDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptRequest/TransferreceiptRequestDetailServiceImpl.java index 18d8586a..c629fb2f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptRequest/TransferreceiptRequestDetailServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptRequest/TransferreceiptRequestDetailServiceImpl.java @@ -7,17 +7,28 @@ import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRe import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestDetailPageReqVO; import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestDetailUpdateReqVO; import com.win.module.wms.convert.transferreceiptRequest.TransferreceiptRequestDetailConvert; +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.itembasic.ItembasicDO; +import com.win.module.wms.dal.dataobject.location.LocationDO; 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.transferreceiptRequest.TransferreceiptRequestDetailMapper; +import com.win.module.wms.dal.mysql.transferreceiptRequest.TransferreceiptRequestMainMapper; +import com.win.module.wms.service.itembasic.ItembasicService; +import com.win.module.wms.service.location.LocationService; +import com.win.module.wms.util.JobUtils; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.ArrayList; 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.TRANSFERRECEIPT_REQUEST_DETAIL_NOT_EXISTS; +import static com.win.module.wms.enums.ErrorCodeConstants.*; /** * 调拨入库申请子 Service 实现类 @@ -30,23 +41,87 @@ public class TransferreceiptRequestDetailServiceImpl implements TransferreceiptR @Resource private TransferreceiptRequestDetailMapper transferreceiptRequestDetailMapper; + @Resource + private LocationService locationService; + @Resource + private ItembasicService itembasicService; + @Resource + private JobUtils jobUtils; + @Resource + private TransferreceiptRequestMainMapper transferreceiptRequestMainMapper; @Override public Long createTransferreceiptRequestDetail(TransferreceiptRequestDetailCreateReqVO createReqVO) { // 插入 - TransferreceiptRequestDetailDO transferreceiptRequestDetail = TransferreceiptRequestDetailConvert.INSTANCE.convert(createReqVO); - transferreceiptRequestDetailMapper.insert(transferreceiptRequestDetail); + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferReceiptRequest"); + TransferreceiptRequestMainDO mainDO = transferreceiptRequestMainMapper.selectById(createReqVO.getMasterId()); + TransferreceiptRequestDetailDO detailDO = TransferreceiptRequestDetailConvert.INSTANCE.convert(createReqVO); + this.validateDetailMethod(detailDO,businesstypeDO,mainDO); + detailDO.setMasterId(mainDO.getId()); + detailDO.setNumber(mainDO.getNumber()); + transferreceiptRequestDetailMapper.insert(detailDO); // 返回 - return transferreceiptRequestDetail.getId(); + return detailDO.getId(); } @Override public void updateTransferreceiptRequestDetail(TransferreceiptRequestDetailUpdateReqVO updateReqVO) { // 校验存在 validateTransferreceiptRequestDetailExists(updateReqVO.getId()); - // 更新 - TransferreceiptRequestDetailDO updateObj = TransferreceiptRequestDetailConvert.INSTANCE.convert(updateReqVO); - transferreceiptRequestDetailMapper.updateById(updateObj); + // 更新校验 + // DBT——>DBT3("TransferReceiptRequest") + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferReceiptRequest"); + TransferreceiptRequestMainDO mainDO = transferreceiptRequestMainMapper.selectById(updateReqVO.getMasterId()); + TransferreceiptRequestDetailDO detailDO = TransferreceiptRequestDetailConvert.INSTANCE.convert(updateReqVO); + this.validateDetailMethod(detailDO,businesstypeDO,mainDO); + transferreceiptRequestDetailMapper.updateById(detailDO); + } + + @Override + public void validateDetailMethod(TransferreceiptRequestDetailDO transferreceiptRequestDetailDO, BusinesstypeDO businesstypeDO, TransferreceiptRequestMainDO transferreceiptRequestMainDO) { + transferreceiptRequestDetailDO.setCreateTime(LocalDateTime.now()); + // BQ——>QL 校验来源/目标库位基础信息 + LocationDO tolocationDO = validatorLocation(transferreceiptRequestDetailDO.getToLocationCode()); + if(tolocationDO == null){ + throw exception(TRANSFERRECEIPT_REQUEST_DETAIL_LOCALTIONCODE_NOT_EXISTS, transferreceiptRequestDetailDO.getToLocationCode()); + } + LocationDO fromlocationDO = validatorLocation(transferreceiptRequestDetailDO.getFromLocationCode()); + if(fromlocationDO == null){ + throw exception(TRANSFERRECEIPT_REQUEST_DETAIL_LOCALTIONCODE_NOT_EXISTS, transferreceiptRequestDetailDO.getFromLocationCode()); + } + // BQ----QI 校验物品基础信息 + ItembasicDO item = validatorItembasic(transferreceiptRequestDetailDO.getItemCode()); + if(item == null){ + throw exception(TRANSFERRECEIPT_REQUEST_DETAIL_ITEM_NOT_EXISTS, transferreceiptRequestDetailDO.getItemCode()); + } + transferreceiptRequestDetailDO.setItemDesc1(item.getDesc1()); + transferreceiptRequestDetailDO.setItemDesc2(item.getDesc2()); + transferreceiptRequestDetailDO.setItemName(item.getName()); + transferreceiptRequestDetailDO.setUom(item.getUom()); + transferreceiptRequestDetailDO.setProjectCode(item.getProject()); + // DBT——>DBT2——>LO 校验来源库位 + jobUtils.ifInToLocationType(transferreceiptRequestDetailDO.getFromLocationCode(), businesstypeDO); + // DBT——>DBT2——>LO 校验目标库位 + jobUtils.ifInToLocationType(transferreceiptRequestDetailDO.getToLocationCode(), businesstypeDO); + // DBT——>DBT2——>SO 校验库存状态 + jobUtils.ifOutInventoryStatuses(transferreceiptRequestDetailDO.getInventoryStatus(), businesstypeDO); + // TB——>TB1 校验库存余额是否存在 + validatebalance(transferreceiptRequestDetailDO); + } + + private List validatebalance(TransferreceiptRequestDetailDO detailDo) { + List inventoryStatus = new ArrayList<>(); + inventoryStatus.add(detailDo.getInventoryStatus()); + List balanceDO = jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch(), detailDo.getFromLocationCode(), inventoryStatus); + return balanceDO; + } + + private LocationDO validatorLocation(String Location){ + return locationService.selectLocation(Location); + } + + private ItembasicDO validatorItembasic(String itemCode) { + return itembasicService.selectItembasic(itemCode); } @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 6ecb3dd1..24bd7ca3 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 @@ -78,10 +78,6 @@ public class TransferreceiptRequestMainServiceImpl implements TransferreceiptReq @Resource private JobUtils jobUtils; @Resource - private LocationService locationService; - @Resource - private ItembasicService itembasicService; - @Resource private SerialNumberApi serialNumberApi; @Resource private AdminUserApi userApi; @@ -103,6 +99,9 @@ public class TransferreceiptRequestMainServiceImpl implements TransferreceiptReq private TransferreceiptJobDetailMapper transferreceiptJobDetailMapper; @Resource private ExpectinService expectinService; + @Resource + private TransferreceiptRequestDetailService transferreceiptRequestDetailService; + @Override public Long createTransferreceiptRequestMain(TransferreceiptRequestMainCreateReqVO createReqVO) { @@ -234,7 +233,7 @@ public class TransferreceiptRequestMainServiceImpl implements TransferreceiptReq List subDOList = TransferreceiptRequestDetailConvert.INSTANCE.convertList03(subList); for(TransferreceiptRequestDetailDO transferreceiptRequestDetailDO: subDOList){ // 校验业务类型 - validateDetailMethod(transferreceiptRequestDetailDO,businesstypeDO,transferreceiptRequestMainDO); + transferreceiptRequestDetailService.validateDetailMethod(transferreceiptRequestDetailDO,businesstypeDO,transferreceiptRequestMainDO); } String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_RECEIPT_REQUEST.getCode()); transferreceiptRequestMainDO.setNumber(number); @@ -259,60 +258,6 @@ public class TransferreceiptRequestMainServiceImpl implements TransferreceiptReq return transferreceiptRequestMainDO; } - private void validateDetailMethod(TransferreceiptRequestDetailDO transferreceiptRequestDetailDO, BusinesstypeDO businesstypeDO, TransferreceiptRequestMainDO transferreceiptRequestMainDO) { - transferreceiptRequestDetailDO.setCreateTime(LocalDateTime.now()); - // BQ——>QL 校验来源/目标库位基础信息 - LocationDO tolocationDO = validatorLocation(transferreceiptRequestDetailDO.getToLocationCode()); - if(tolocationDO == null){ - throw exception(TRANSFERRECEIPT_REQUEST_DETAIL_LOCALTIONCODE_NOT_EXISTS, transferreceiptRequestDetailDO.getToLocationCode()); - } - LocationDO fromlocationDO = validatorLocation(transferreceiptRequestDetailDO.getFromLocationCode()); - if(fromlocationDO == null){ - throw exception(TRANSFERRECEIPT_REQUEST_DETAIL_LOCALTIONCODE_NOT_EXISTS, transferreceiptRequestDetailDO.getFromLocationCode()); - } - // BQ----QI 校验物品基础信息 - ItembasicDO item = validatorItembasic(transferreceiptRequestDetailDO.getItemCode()); - if(item == null){ - throw exception(TRANSFERRECEIPT_REQUEST_DETAIL_ITEM_NOT_EXISTS, transferreceiptRequestDetailDO.getItemCode()); - } - transferreceiptRequestDetailDO.setItemDesc1(item.getDesc1()); - transferreceiptRequestDetailDO.setItemDesc2(item.getDesc2()); - transferreceiptRequestDetailDO.setItemName(item.getName()); - transferreceiptRequestDetailDO.setUom(item.getUom()); - transferreceiptRequestDetailDO.setProjectCode(item.getProject()); - // DBT——>DBT2——>LO 校验来源库位 - jobUtils.ifInToLocationType(transferreceiptRequestDetailDO.getFromLocationCode(), businesstypeDO); - // DBT——>DBT2——>LO 校验目标库位 - jobUtils.ifInToLocationType(transferreceiptRequestDetailDO.getToLocationCode(), businesstypeDO); - // DBT——>DBT2——>SO 校验库存状态 - jobUtils.ifOutInventoryStatuses(transferreceiptRequestDetailDO.getInventoryStatus(), businesstypeDO); - // TB——>TB1 校验库存余额是否存在 - List balance = validatebalance(transferreceiptRequestDetailDO); - for(BalanceDO balancedo: balance ) { - transferreceiptRequestMainDO.setFromWarehouseCode(balancedo.getWarehouseCode()); - } - transferreceiptRequestMainDO.setBusinessType(businesstypeDO.getCode()); - transferreceiptRequestMainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); - transferreceiptRequestMainDO.setToLocationTypes(businesstypeDO.getInLocationTypes()); - transferreceiptRequestMainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); - transferreceiptRequestMainDO.setToAreaCodes(businesstypeDO.getInAreaCodes()); - } - - private List validatebalance(TransferreceiptRequestDetailDO detailDo) { - List inventoryStatus = new ArrayList<>(); - inventoryStatus.add(detailDo.getInventoryStatus()); - List balanceDO = jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch(), detailDo.getFromLocationCode(), inventoryStatus); - return balanceDO; - } - - private LocationDO validatorLocation(String Location){ - return locationService.selectLocation(Location); - } - - private ItembasicDO validatorItembasic(String itemCode) { - return itembasicService.selectItembasic(itemCode); - } - private TransferreceiptRequestMainDO validateMainMethod(TransferreceiptRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) { TransferreceiptRequestMainDO transferreceiptRequestMainDO = TransferreceiptRequestMainConvert.INSTANCE.convert(baseVO); RequestStatusState requestStatusState = new RequestStatusState(); @@ -365,7 +310,7 @@ public class TransferreceiptRequestMainServiceImpl implements TransferreceiptReq if(!subList.isEmpty()) { List subDOList = TransferreceiptRequestDetailConvert.INSTANCE.convertList05(subList); for (TransferreceiptRequestDetailDO transferreceiptRequestDetailDO : subDOList) { - validateDetailMethod(transferreceiptRequestDetailDO, businesstypeDO, transferissueRequestMainDO); + transferreceiptRequestDetailService.validateDetailMethod(transferreceiptRequestDetailDO, businesstypeDO, transferissueRequestMainDO); } transferreceiptRequestDetailMapper.updateBatch(subDOList); }