From 70f12ed983d62920e353768004e542a3be33dad9 Mon Sep 17 00:00:00 2001 From: liuchen864 <23082234@qq.com> Date: Wed, 6 Dec 2023 17:43:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A3=80=E9=AA=8C=E7=94=9F=E6=88=90=E4=B8=8A?= =?UTF-8?q?=E6=9E=B6=E7=94=B3=E8=AF=B7=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/wms/enums/ErrorCodeConstants.java | 6 + .../vo/PutawayRequestMainBaseVO.java | 1 - .../CountadjustRequestMainService.java | 38 ++++++ .../CountadjustRequestMainServiceImpl.java | 123 ++++++++++++++++++ .../inspectJob/InspectJobMainServiceImpl.java | 47 +++++++ .../PutawayRequestMainServiceImpl.java | 2 + 6 files changed, 216 insertions(+), 1 deletion(-) diff --git a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java index c9fcaae9..32053b9e 100644 --- a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java +++ b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java @@ -941,6 +941,12 @@ public interface ErrorCodeConstants { //盘点调整申请ErrorCode ErrorCode COUNTADJUST_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_156_000, "盘点调整申请主不存在"); ErrorCode COUNTADJUST_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_156_001, "盘点调整申请子不存在"); + ErrorCode COUNTADJUST_REQUEST_JOB_EXISTS = new ErrorCode(1_000_078_003, "盘点调整申请存在采购收货任务单"); + ErrorCode COUNTADJUST_REQUEST_CANNOT_CLOSE = new ErrorCode(1_000_078_004, "盘点调整申请状态不支持关闭"); + ErrorCode COUNTADJUST_REQUEST_CANNOT_SUBMIT = new ErrorCode(1_000_078_005, "盘点调整申请状态不支持提交"); + ErrorCode COUNTADJUST_REQUEST_CANNOT_AGREE = new ErrorCode(1_000_078_006, "盘点调整申请状态不支持审批同意"); + ErrorCode COUNTADJUST_REQUEST_CANNOT_HANDLE = new ErrorCode(1_000_078_007, "盘点调整申请状态不支持处理"); + ErrorCode COUNTADJUST_REQUEST_CANNOT_ABORT = new ErrorCode(1_000_078_008, "盘点调整申请状态不支持审批拒绝"); //盘点调整记录ErrorCode ErrorCode COUNTADJUST_RECORD_MAIN_NOT_EXISTS = new ErrorCode(1_000_157_000, "盘点调整记录主不存在"); ErrorCode COUNTADJUST_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_157_001, "盘点调整记录子不存在"); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestMainBaseVO.java index afa985d7..3909069b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestMainBaseVO.java @@ -77,7 +77,6 @@ public class PutawayRequestMainBaseVO { private String toWarehouseCode; @Schema(description = "到库位类型范围", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "到库位类型范围不能为空") private String toLocationTypes; @Schema(description = "到库区代码范围") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countadjustRequest/CountadjustRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countadjustRequest/CountadjustRequestMainService.java index 8bc3c5eb..15504699 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countadjustRequest/CountadjustRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countadjustRequest/CountadjustRequestMainService.java @@ -46,4 +46,42 @@ public interface CountadjustRequestMainService { */ List getCountadjustRequestMainList(CustomConditions conditions); + /** + * 关闭盘点调整申请主 + * + * @param id 盘点调整申请主ID + * @return 更新数量 + */ + Integer closeCountadjustRequestMain(Long id); + + /** + * 提交盘点调整申请主 + * + * @param id 盘点调整申请主ID + * @return 更新数量 + */ + Integer submitCountadjustRequestMain(Long id); + + /** + * 审批通过盘点调整申请主 + * + * @param id 盘点调整申请主ID + * @return 更新数量 + */ + Integer agreeCountadjustRequestMain(Long id); + + /** + * 处理盘点调整申请主 + * @param id + * @return + */ + Integer handleCountadjustRequestMain(Long id); + /** + * 审批拒绝盘点调整申请主 + * + * @param id 盘点调整申请主ID + * @return 更新数量 + */ + Integer abortCountadjustRequestMain(Long id); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countadjustRequest/CountadjustRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countadjustRequest/CountadjustRequestMainServiceImpl.java index 3673d08e..d15c59b1 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countadjustRequest/CountadjustRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countadjustRequest/CountadjustRequestMainServiceImpl.java @@ -1,17 +1,29 @@ package com.win.module.wms.service.countadjustRequest; +import com.win.framework.common.exception.ServiceException; 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.wms.controller.countadjustRequest.vo.CountadjustRequestMainExportReqVO; import com.win.module.wms.controller.countadjustRequest.vo.CountadjustRequestMainPageReqVO; +import com.win.module.wms.dal.dataobject.countadjustRequest.CountadjustRequestDetailDO; import com.win.module.wms.dal.dataobject.countadjustRequest.CountadjustRequestMainDO; +import com.win.module.wms.dal.mysql.countadjustRecord.CountadjustRecordMainMapper; +import com.win.module.wms.dal.mysql.countadjustRequest.CountadjustRequestDetailMapper; import com.win.module.wms.dal.mysql.countadjustRequest.CountadjustRequestMainMapper; +import com.win.module.wms.enums.request.RequestStatusEnum; +import com.win.module.wms.enums.request.RequestStatusState; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import java.util.List; +import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.win.module.wms.enums.ErrorCodeConstants.*; + /** * 盘点调整申请主 Service 实现类 * @@ -23,6 +35,12 @@ public class CountadjustRequestMainServiceImpl implements CountadjustRequestMain @Resource private CountadjustRequestMainMapper countadjustRequestMainMapper; + @Resource + private CountadjustRequestDetailMapper countadjustRequestDetailMapper; + @Resource + private CountadjustRecordMainMapper countadjustRecordMainMapper; + @Resource + private TrendsApi trendsApi; @Override public PageResult getCountadjustRequestMainSenior(CustomConditions conditions) { @@ -44,4 +62,109 @@ public class CountadjustRequestMainServiceImpl implements CountadjustRequestMain return countadjustRequestMainMapper.selectSeniorList(conditions); } + @Override + @Transactional + public Integer closeCountadjustRequestMain(Long id) { + // 校验存在存在下级单据 + CountadjustRequestMainDO mainDO = validateCountadjustRequestMainExists(id); +// Long count = countadjustRecordMainMapper.selectByRequestNumber(mainDO.getNumber()); +// if(count > 0) { +// throw new ServiceException(COUNTADJUST_REQUEST_JOB_EXISTS); +// } + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.close(); + if(!flag) { + throw new ServiceException(COUNTADJUST_REQUEST_CANNOT_CLOSE); + } + mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录 + trendsApi.createTrends(id, "countadjustRequest", "关闭了到货校验申请", TrendsTypeEnum.UPDATE); + return countadjustRequestMainMapper.updateById(mainDO); + } + + @Override + @Transactional + public Integer submitCountadjustRequestMain(Long id) { + CountadjustRequestMainDO mainDO = validateCountadjustRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute()); + if(!flag) { + throw new ServiceException(COUNTADJUST_REQUEST_CANNOT_SUBMIT); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { + this.generateJob(mainDO, countadjustRequestDetailMapper.selectList(mainDO.getId())); + } + trendsApi.createTrends(id, "countadjustRequest", "提交了到货校验申请", TrendsTypeEnum.UPDATE); + return countadjustRequestMainMapper.updateById(mainDO); + } + + @Override + @Transactional + public Integer agreeCountadjustRequestMain(Long id) { + // 校验存在 + CountadjustRequestMainDO mainDO = validateCountadjustRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.agree(mainDO.getAutoAgree()); + if(!flag) { + throw new ServiceException(COUNTADJUST_REQUEST_CANNOT_AGREE); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { + this.generateJob(mainDO, countadjustRequestDetailMapper.selectList(mainDO.getId())); + } + trendsApi.createTrends(id, "countadjustRequest", "审批同意了到货校验申请", TrendsTypeEnum.UPDATE); + return countadjustRequestMainMapper.updateById(mainDO); + } + + @Override + @Transactional + public Integer handleCountadjustRequestMain(Long id) { + // 校验存在 + CountadjustRequestMainDO mainDO = validateCountadjustRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.handle(); + if(!flag) { + throw new ServiceException(COUNTADJUST_REQUEST_CANNOT_HANDLE); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + //调用执行方法 + this.generateJob(mainDO, countadjustRequestDetailMapper.selectList(mainDO.getId())); + trendsApi.createTrends(id, "countadjustRequest", "执行了到货校验申请", TrendsTypeEnum.UPDATE); + return countadjustRequestMainMapper.updateById(mainDO); + } + + @Override + @Transactional + public Integer abortCountadjustRequestMain(Long id) { + // 校验存在 + CountadjustRequestMainDO mainDO = validateCountadjustRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.refused(); + if(!flag) { + throw new ServiceException(COUNTADJUST_REQUEST_CANNOT_ABORT); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + trendsApi.createTrends(id, "countadjustRequest", "审批拒绝了到货校验申请", TrendsTypeEnum.UPDATE); + return countadjustRequestMainMapper.updateById(mainDO); + } + + /** + * 生成收货检验任务,不要改动事务传播方式,否则会有事务问题 + * @param mainDO 收货检验主 + * @param detailDOList 收货检验子 + */ + private void generateJob(CountadjustRequestMainDO mainDO, List detailDOList) { + + } + + private CountadjustRequestMainDO validateCountadjustRequestMainExists(Long id) { + CountadjustRequestMainDO mainDO = countadjustRequestMainMapper.selectById(id); + if (mainDO == null) { + throw exception(COUNTADJUST_REQUEST_MAIN_NOT_EXISTS); + } + return mainDO; + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectJob/InspectJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectJob/InspectJobMainServiceImpl.java index 37c4f33b..aa15557e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectJob/InspectJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectJob/InspectJobMainServiceImpl.java @@ -11,9 +11,12 @@ 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.inspectJob.vo.*; +import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestDetailCreateReqVO; +import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainCreateReqVO; import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; 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.documentSwitch.SwitchDO; import com.win.module.wms.dal.dataobject.inspectJob.InspectJobMainDO; import com.win.module.wms.dal.dataobject.inspectRecord.InspectRecordDetailDO; import com.win.module.wms.dal.dataobject.inspectRecord.InspectRecordMainDO; @@ -30,7 +33,9 @@ import com.win.module.wms.dal.mysql.inspectRequest.InspectRequestMainMapper; import com.win.module.wms.enums.job.JobStatusEnum; import com.win.module.wms.enums.job.JobStatusState; import com.win.module.wms.enums.request.RequestStatusEnum; +import com.win.module.wms.service.documentSwitch.SwitchService; import com.win.module.wms.service.expectin.ExpectinService; +import com.win.module.wms.service.putawayRequest.PutawayRequestMainService; import com.win.module.wms.service.transaction.TransactionService; import com.win.module.wms.util.JobUtils; import org.springframework.beans.BeanUtils; @@ -85,6 +90,10 @@ public class InspectJobMainServiceImpl implements InspectJobMainService { private BalanceMapper balanceMapper; @Resource private InspectRequestDetailMapper inspectRequestDetailMapper; + @Resource + private SwitchService switchService; + @Resource + private PutawayRequestMainService putawayRequestMainService; @Override public InspectJobMainDO getInspectJobMain(Long id) { @@ -197,6 +206,7 @@ public class InspectJobMainServiceImpl implements InspectJobMainService { String number = serialNumberApi.generateCode(RuleCodeEnum.INSPECT_RECORD.getCode()); inspectRecordMainDO.setNumber(number); inspectRecordMainDO.setJobNumber(inspectJobMainDO.getNumber()); + inspectRecordMainDO.setFromWarehouseCode(inspectJobMainDO.getWarehouseCode()); inspectRecordMainDO.setId(null); inspectRecordMainDO.setCreator(null); inspectRecordMainDO.setCreateTime(null); @@ -349,6 +359,43 @@ public class InspectJobMainServiceImpl implements InspectJobMainService { } //移除预计入 expectinService.deleteExpectinByJobNumber(inspectJobMainDO.getNumber()); + //上架申请子 + SwitchDO switchDO = switchService.selectSwitchExist("CreatePutawayRequestAfterInspectRecordCreated"); + //检验合格生成上架申请 + if(switchDO.getEffectiveSetValue().equals("TRUE")) { + PutawayRequestMainCreateReqVO putawayRequestMainCreateReqVO = new PutawayRequestMainCreateReqVO(); + BeanUtils.copyProperties(inspectRecordMainDO, putawayRequestMainCreateReqVO); + List putawayRequestDetailCreateReqVOList = new ArrayList<>(); + for(InspectJobDetailUpdateReqVO inspectJobDetailUpdateReqVO : inspectJobDetailUpdateReqVOList) { + if(!inspectJobDetailUpdateReqVO.getToInventoryStatus().equals("OK")) { + continue; + } + PutawayRequestDetailCreateReqVO putawayRequestDetailCreateReqVO = new PutawayRequestDetailCreateReqVO(); + BeanUtils.copyProperties(inspectJobDetailUpdateReqVO, putawayRequestDetailCreateReqVO); + putawayRequestDetailCreateReqVO.setBatch(inspectRecordMainDO.getBatch()); + putawayRequestDetailCreateReqVO.setPoNumber(inspectRecordMainDO.getPoNumber()); + putawayRequestDetailCreateReqVO.setPoLine(inspectRecordMainDO.getPoLine()); + putawayRequestDetailCreateReqVO.setItemCode(inspectRecordMainDO.getItemCode()); + putawayRequestDetailCreateReqVO.setItemName(inspectRecordMainDO.getItemCode()); + putawayRequestDetailCreateReqVO.setInventoryStatus("OK"); + putawayRequestDetailCreateReqVO.setId(null); + putawayRequestDetailCreateReqVO.setCreateTime(null); + putawayRequestDetailCreateReqVO.setCreator(null); + putawayRequestDetailCreateReqVO.setUpdateTime(null); + putawayRequestDetailCreateReqVO.setUpdater(null); + putawayRequestDetailCreateReqVOList.add(putawayRequestDetailCreateReqVO); + } + putawayRequestMainCreateReqVO.setToWarehouseCode(inspectRecordMainDO.getFromWarehouseCode()); + putawayRequestMainCreateReqVO.setId(null); + putawayRequestMainCreateReqVO.setCreateTime(null); + putawayRequestMainCreateReqVO.setCreator(null); + putawayRequestMainCreateReqVO.setUpdateTime(null); + putawayRequestMainCreateReqVO.setUpdater(null); + putawayRequestMainCreateReqVO.setSubList(putawayRequestDetailCreateReqVOList); + if(!putawayRequestDetailCreateReqVOList.isEmpty()) { + putawayRequestMainService.createPutawayRequestMain(putawayRequestMainCreateReqVO); + } + } //变更记录 trendsApi.createTrends(inspectJobMainDO.getId(), "inspectJob", "执行了到货检验任务", TrendsTypeEnum.UPDATE); return number; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayRequest/PutawayRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayRequest/PutawayRequestMainServiceImpl.java index b6492242..98966bcb 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayRequest/PutawayRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayRequest/PutawayRequestMainServiceImpl.java @@ -408,8 +408,10 @@ public class PutawayRequestMainServiceImpl implements PutawayRequestMainService //校验主表公共方法(适用于新增/修改) private PutawayRequestMainDO validatorMainMethod(PutawayRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) { PutawayRequestMainDO mainDo = PutawayRequestMainConvert.INSTANCE.convert(baseVO); + mainDo.setRequestTime(LocalDateTime.now()); mainDo.setBusinessType(businesstypeDO.getCode()); mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + mainDo.setToLocationTypes(businesstypeDO.getInLocationTypes()); mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); mainDo.setAutoCommit(requestsettingDO.getAutoCommit());