From 6b6383c11d76c5106f56b7c3eafd5134e549a077 Mon Sep 17 00:00:00 2001 From: liuchen864 <23082234@qq.com> Date: Thu, 16 Nov 2023 15:13:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=B8=8A=E6=9E=B6=E7=94=B3?= =?UTF-8?q?=E8=AF=B7=E6=8E=A5=E5=8F=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/wms/enums/ErrorCodeConstants.java | 6 + .../PutawayRequestMainController.java | 46 +++++ .../putawayJob/PutawayJobDetailConvert.java | 10 +- .../putawayJob/PutawayJobMainConvert.java | 9 +- .../putawayJob/PutawayJobMainMapper.java | 33 +++- .../PutawayRequestMainService.java | 47 ++++- .../PutawayRequestMainServiceImpl.java | 175 +++++++++++++++++- 7 files changed, 310 insertions(+), 16 deletions(-) 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 c644ecbb..17da0f2d 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 @@ -474,6 +474,12 @@ public interface ErrorCodeConstants { //上架申请子ErrorCode ErrorCode PUTAWAY_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_081_001, "上架申请子不存在"); ErrorCode PUTAWAY_REQUEST_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_081_002, "上架申请导入数据不能为空"); + ErrorCode PUTAWAY_REQUEST_JOB_EXISTS = new ErrorCode(1_000_081_003, "到货检验申请存在采购收货任务单"); + ErrorCode PUTAWAY_REQUEST_CANNOT_CLOSE = new ErrorCode(1_000_081_004, "到货检验申请状态不支持关闭"); + ErrorCode PUTAWAY_REQUEST_CANNOT_SUBMIT = new ErrorCode(1_000_081_005, "到货检验申请状态不支持提交"); + ErrorCode PUTAWAY_REQUEST_CANNOT_AGREE = new ErrorCode(1_000_081_006, "到货检验申请状态不支持审批同意"); + ErrorCode PUTAWAY_REQUEST_CANNOT_HANDLE = new ErrorCode(1_000_081_007, "到货检验申请状态不支持处理"); + ErrorCode PUTAWAY_REQUEST_CANNOT_ABORT = new ErrorCode(1_000_081_008, "到货检验申请状态不支持审批拒绝"); //上架任务主ErrorCode ErrorCode PUTAWAY_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_082_000, "上架任务主不存在"); //上架任务子ErrorCode diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/PutawayRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/PutawayRequestMainController.java index 4214ef78..622b7012 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/PutawayRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/PutawayRequestMainController.java @@ -217,4 +217,50 @@ public class PutawayRequestMainController { } return success(returnMap); } + + @PutMapping("/close") + @Operation(summary = "关闭上架申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:putaway-request-main:close')") + public CommonResult closePutawayRequestMain(@RequestParam("id") Long id) { + Integer count = putawayRequestMainService.closePutawayRequestMain(id); + return success(count > 0); + } + + @PutMapping("/submit") + @Operation(summary = "提交上架申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:putaway-request-main:submit')") + public CommonResult submitPutawayRequestMain(@RequestParam("id") Long id) { + Integer count = putawayRequestMainService.submitPutawayRequestMain(id); + return success(count > 0); + } + + @PutMapping("/agree") + @Operation(summary = "审批通过上架申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:putaway-request-main:agree')") + public CommonResult agreePutawayRequestMain(@RequestParam("id") Long id) { + Integer count = putawayRequestMainService.agreePutawayRequestMain(id); + return success(count > 0); + } + + @PutMapping("/handle") + @Operation(summary = "执行上架申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:putaway-request-main:handle')") + public CommonResult handlePutawayRequestMain(@RequestParam("id") Long id) { + Integer count = putawayRequestMainService.handlePutawayRequestMain(id); + return success(count > 0); + } + + @PutMapping("/abort") + @Operation(summary = "审批拒绝上架申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:putaway-request-main:abort')") + public CommonResult abortPutawayRequestMain(@RequestParam("id") Long id) { + Integer count = putawayRequestMainService.abortPutawayRequestMain(id); + return success(count > 0); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/putawayJob/PutawayJobDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/putawayJob/PutawayJobDetailConvert.java index 1e73b246..52b7c19d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/putawayJob/PutawayJobDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/putawayJob/PutawayJobDetailConvert.java @@ -1,16 +1,16 @@ package com.win.module.wms.convert.putawayJob; -import java.util.*; - import com.win.framework.common.pojo.PageResult; - import com.win.module.wms.controller.putawayJob.vo.PutawayJobDetailCreateReqVO; import com.win.module.wms.controller.putawayJob.vo.PutawayJobDetailExcelVO; import com.win.module.wms.controller.putawayJob.vo.PutawayJobDetailRespVO; import com.win.module.wms.controller.putawayJob.vo.PutawayJobDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.putawayJob.PutawayJobDetailDO; +import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestDetailDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; -import com.win.module.wms.dal.dataobject.putawayJob.PutawayJobDetailDO; + +import java.util.List; /** * 上架任务子 Convert @@ -34,4 +34,6 @@ public interface PutawayJobDetailConvert { List convertList02(List list); + PutawayJobDetailDO convert(PutawayRequestDetailDO bean); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/putawayJob/PutawayJobMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/putawayJob/PutawayJobMainConvert.java index fe62054b..1d99cc76 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/putawayJob/PutawayJobMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/putawayJob/PutawayJobMainConvert.java @@ -1,16 +1,16 @@ package com.win.module.wms.convert.putawayJob; -import java.util.*; - import com.win.framework.common.pojo.PageResult; - import com.win.module.wms.controller.putawayJob.vo.PutawayJobMainCreateReqVO; import com.win.module.wms.controller.putawayJob.vo.PutawayJobMainExcelVO; import com.win.module.wms.controller.putawayJob.vo.PutawayJobMainRespVO; import com.win.module.wms.controller.putawayJob.vo.PutawayJobMainUpdateReqVO; +import com.win.module.wms.dal.dataobject.putawayJob.PutawayJobMainDO; +import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestMainDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; -import com.win.module.wms.dal.dataobject.putawayJob.PutawayJobMainDO; + +import java.util.List; /** * 上架任务主 Convert @@ -34,4 +34,5 @@ public interface PutawayJobMainConvert { List convertList02(List list); + PutawayJobMainDO convert(PutawayRequestMainDO mainDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/putawayJob/PutawayJobMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/putawayJob/PutawayJobMainMapper.java index 798547a8..b364a343 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/putawayJob/PutawayJobMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/putawayJob/PutawayJobMainMapper.java @@ -1,18 +1,19 @@ package com.win.module.wms.dal.mysql.putawayJob; -import java.util.*; - import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; -import com.win.framework.mybatis.core.query.LambdaQueryWrapperX; import com.win.framework.mybatis.core.mapper.BaseMapperX; +import com.win.framework.mybatis.core.query.LambdaQueryWrapperX; import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.putawayJob.vo.PutawayJobMainExportReqVO; import com.win.module.wms.controller.putawayJob.vo.PutawayJobMainPageReqVO; -import com.win.module.wms.dal.dataobject.purchasereturnJob.PurchasereturnJobMainDO; import com.win.module.wms.dal.dataobject.putawayJob.PutawayJobMainDO; +import com.win.module.wms.enums.order.OrderStatusEnum; import org.apache.ibatis.annotations.Mapper; +import java.util.Collection; +import java.util.List; + /** * 上架任务主 Mapper * @@ -64,9 +65,17 @@ public interface PutawayJobMainMapper extends BaseMapperX { .eqIfPresent(PutawayJobMainDO::getAllowModifyPackingNumber, reqVO.getAllowModifyPackingNumber()) .orderByDesc(PutawayJobMainDO::getId)); } + default PageResult selectSenior(CustomConditions conditions) { return selectPage(conditions, QueryWrapperUtils.structure(conditions)); } + + default Long selectByRequestNumber(String requestNumber) { + return selectCount(new LambdaQueryWrapperX() + .eq(PutawayJobMainDO::getRequestNumber, requestNumber) + .ne(PutawayJobMainDO::getStatus, OrderStatusEnum.CLOSED.getCode())); + } + default List selectList(PutawayJobMainExportReqVO reqVO) { return selectList(new LambdaQueryWrapperX() .eqIfPresent(PutawayJobMainDO::getRequestNumber, reqVO.getRequestNumber()) @@ -121,4 +130,20 @@ public interface PutawayJobMainMapper extends BaseMapperX { } + default List selectList(CustomConditions conditions) { + return selectList(QueryWrapperUtils.structure(conditions)); + } + + /** + * 根据类型数和申请单号组查询任务数量 + * @param types + * @param requestNumber + * @return + */ + default Long selectListCount(Collection types, String requestNumber) { + return selectCount(new LambdaQueryWrapperX() + .in(PutawayJobMainDO::getStatus, types) + .eq(PutawayJobMainDO::getRequestNumber, requestNumber)); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayRequest/PutawayRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayRequest/PutawayRequestMainService.java index 054b7821..bf8eab6e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayRequest/PutawayRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayRequest/PutawayRequestMainService.java @@ -69,14 +69,59 @@ public interface PutawayRequestMainService { */ List getPutawayRequestMainList(PutawayRequestMainExportReqVO exportReqVO); + /** + * 导入上架申请数据 + * @param datas + * @param mode + * @param updatePart + * @return + */ List importPutawayRequestList(List datas, Integer mode, boolean updatePart); /** * 获得采购收货申请主列表, 用于 Excel 导出 * * @param conditions 查询条件 - * @return 采购收货申请主列表 + * @return 上架申请主列表 */ List getPutawayRequestMainList(CustomConditions conditions); + /** + * 关闭上架申请主 + * + * @param id 上架申请主ID + * @return 更新数量 + */ + Integer closePutawayRequestMain(Long id); + + /** + * 提交上架申请主 + * + * @param id 上架申请主ID + * @return 更新数量 + */ + Integer submitPutawayRequestMain(Long id); + + /** + * 审批通过上架申请主 + * + * @param id 上架申请主ID + * @return 更新数量 + */ + Integer agreePutawayRequestMain(Long id); + + /** + * 处理上架申请主 + * @param id + * @return + */ + Integer handlePutawayRequestMain(Long id); + /** + * 审批拒绝上架申请主 + * + * @param id 上架申请主ID + * @return 更新数量 + */ + Integer abortPutawayRequestMain(Long id); + } 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 0e599219..230107a8 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 @@ -1,6 +1,7 @@ package com.win.module.wms.service.putawayRequest; import cn.hutool.core.collection.CollUtil; +import com.win.framework.common.exception.ServiceException; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; import com.win.framework.common.util.validation.ValidationUtils; @@ -9,26 +10,43 @@ 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.expectout.vo.ExpectoutCreateReqVO; +import com.win.module.wms.controller.putawayRecord.vo.PutawayRecordDetailCreateReqVO; +import com.win.module.wms.controller.putawayRecord.vo.PutawayRecordMainCreateReqVO; import com.win.module.wms.controller.putawayRequest.vo.*; +import com.win.module.wms.convert.putawayJob.PutawayJobDetailConvert; +import com.win.module.wms.convert.putawayJob.PutawayJobMainConvert; +import com.win.module.wms.convert.putawayRecord.PutawayRecordDetailConvert; +import com.win.module.wms.convert.putawayRecord.PutawayRecordMainConvert; import com.win.module.wms.convert.putawayRequest.PutawayRequestDetailConvert; import com.win.module.wms.convert.putawayRequest.PutawayRequestMainConvert; 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.purchase.PurchaseDetailDO; +import com.win.module.wms.dal.dataobject.putawayJob.PutawayJobDetailDO; +import com.win.module.wms.dal.dataobject.putawayJob.PutawayJobMainDO; import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestDetailDO; import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestMainDO; import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; +import com.win.module.wms.dal.mysql.putawayJob.PutawayJobDetailMapper; +import com.win.module.wms.dal.mysql.putawayJob.PutawayJobMainMapper; +import com.win.module.wms.dal.mysql.putawayRecord.PutawayRecordDetailMapper; +import com.win.module.wms.dal.mysql.putawayRecord.PutawayRecordMainMapper; import com.win.module.wms.dal.mysql.putawayRequest.PutawayRequestDetailMapper; import com.win.module.wms.dal.mysql.putawayRequest.PutawayRequestMainMapper; import com.win.module.wms.enums.DictTypeConstants; +import com.win.module.wms.enums.job.JobStatusEnum; import com.win.module.wms.enums.request.RequestStatusEnum; +import com.win.module.wms.enums.request.RequestStatusState; import com.win.module.wms.service.customer.CustomerService; +import com.win.module.wms.service.expectout.ExpectoutService; import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.location.LocationService; import com.win.module.wms.service.purchase.PurchaseMainService; import com.win.module.wms.service.requestsetting.RequestsettingService; 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; @@ -73,8 +91,17 @@ public class PutawayRequestMainServiceImpl implements PutawayRequestMainService private CustomerService customerService; @Resource private TrendsApi trendsApi; + @Resource + private PutawayJobMainMapper putawayJobMainMapper; + @Resource + private PutawayJobDetailMapper putawayJobDetailMapper; + @Resource + private PutawayRecordMainMapper putawayRecordMainMapper; + @Resource + private PutawayRecordDetailMapper putawayRecordDetailMapper; + @Resource + private ExpectoutService expectoutService; - //TODO 主表从仓库代码,到仓库代码暂未赋值 @Override @Transactional public Long createPutawayRequestMain(PutawayRequestMainCreateReqVO createReqVO) { @@ -114,10 +141,12 @@ public class PutawayRequestMainServiceImpl implements PutawayRequestMainService putawayRequestMainMapper.deleteById(id); } - private void validatePutawayRequestMainExists(Long id) { - if (putawayRequestMainMapper.selectById(id) == null) { + private PutawayRequestMainDO validatePutawayRequestMainExists(Long id) { + PutawayRequestMainDO putawayRequestMainDO = putawayRequestMainMapper.selectById(id); + if (putawayRequestMainDO == null) { throw exception(PUTAWAY_REQUEST_MAIN_NOT_EXISTS); } + return putawayRequestMainDO; } @Override @@ -188,6 +217,146 @@ public class PutawayRequestMainServiceImpl implements PutawayRequestMainService return errorList; } + @Override + @Transactional + public Integer closePutawayRequestMain(Long id) { + // 校验存在存在下级单据 + PutawayRequestMainDO mainDO = validatePutawayRequestMainExists(id); + Long count = putawayJobMainMapper.selectByRequestNumber(mainDO.getNumber()); + if(count > 0) { + throw new ServiceException(PUTAWAY_REQUEST_JOB_EXISTS); + } + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.close(); + if(!flag) { + throw new ServiceException(PUTAWAY_REQUEST_CANNOT_CLOSE); + } + mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录 + trendsApi.createTrends(id, "putawayRequest", "关闭了上架申请", TrendsTypeEnum.UPDATE); + return putawayRequestMainMapper.updateById(mainDO); + } + + @Override + @Transactional + public Integer submitPutawayRequestMain(Long id) { + PutawayRequestMainDO mainDO = validatePutawayRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute()); + if(!flag) { + throw new ServiceException(PUTAWAY_REQUEST_CANNOT_SUBMIT); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { + this.generateJob(mainDO, putawayRequestDetailMapper.selectList(mainDO.getId())); + } + trendsApi.createTrends(id, "putawayRequest", "提交了上架申请", TrendsTypeEnum.UPDATE); + return putawayRequestMainMapper.updateById(mainDO); + } + + @Override + @Transactional + public Integer agreePutawayRequestMain(Long id) { + // 校验存在 + PutawayRequestMainDO mainDO = validatePutawayRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.agree(mainDO.getAutoExecute()); + if(!flag) { + throw new ServiceException(PUTAWAY_REQUEST_CANNOT_AGREE); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { + this.generateJob(mainDO, putawayRequestDetailMapper.selectList(mainDO.getId())); + } + trendsApi.createTrends(id, "putawayRequest", "审批同意了上架申请", TrendsTypeEnum.UPDATE); + return putawayRequestMainMapper.updateById(mainDO); + } + + @Override + @Transactional + public Integer handlePutawayRequestMain(Long id) { + // 校验存在 + PutawayRequestMainDO mainDO = validatePutawayRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.handle(); + if(!flag) { + throw new ServiceException(PUTAWAY_REQUEST_CANNOT_HANDLE); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + //调用执行方法 + this.generateJob(mainDO, putawayRequestDetailMapper.selectList(mainDO.getId())); + trendsApi.createTrends(id, "putawayRequest", "执行了上架申请", TrendsTypeEnum.UPDATE); + return putawayRequestMainMapper.updateById(mainDO); + } + + @Override + @Transactional + public Integer abortPutawayRequestMain(Long id) { + // 校验存在 + PutawayRequestMainDO mainDO = validatePutawayRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.reject(); + if(!flag) { + throw new ServiceException(PUTAWAY_REQUEST_CANNOT_ABORT); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + trendsApi.createTrends(id, "inspectRequest", "审批拒绝了到货校验申请", TrendsTypeEnum.UPDATE); + return putawayRequestMainMapper.updateById(mainDO); + } + + /** + * 生成上架任务,不要改动事务传播方式,否则会有事务问题 + * @param mainDO 上架主 + * @param detailDOList 上架子 + */ + private void generateJob(PutawayRequestMainDO mainDO, List detailDOList) { + //跳过任务直接生成记录 + if("TRUE".equals(mainDO.getDirectCreateRecord())) { + PutawayRecordMainCreateReqVO putawayRecordMainCreateReqVO = new PutawayRecordMainCreateReqVO(); + BeanUtils.copyProperties(mainDO, putawayRecordMainCreateReqVO); + putawayRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber()); + String number = serialNumberApi.generateCode(RuleCodeEnum.INSPECT_RECORD.getCode()); + putawayRecordMainCreateReqVO.setNumber(number); + //增加业务类型 + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRecord"); + putawayRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode()); + putawayRecordMainMapper.insert(PutawayRecordMainConvert.INSTANCE.convert(putawayRecordMainCreateReqVO)); + for(PutawayRequestDetailDO putawayRequestDetailDO : detailDOList) { + PutawayRecordDetailCreateReqVO putawayRecordDetailCreateReqVO = new PutawayRecordDetailCreateReqVO(); + BeanUtils.copyProperties(putawayRequestDetailDO, putawayRecordDetailCreateReqVO); + putawayRecordDetailCreateReqVO.setNumber(number); + putawayRecordDetailMapper.insert(PutawayRecordDetailConvert.INSTANCE.convert(putawayRecordDetailCreateReqVO)); + } + return; + } + List expectoutCreateReqVOList = new ArrayList<>(); + PutawayJobMainDO putawayJobMainDO = PutawayJobMainConvert.INSTANCE.convert(mainDO); + putawayJobMainDO.setStatus(JobStatusEnum.PENDING.getCode()); + String number = serialNumberApi.generateCode(RuleCodeEnum.INSPECT_JOB.getCode()); + putawayJobMainDO.setNumber(number); + //增加业务类型 + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectJob"); + putawayJobMainDO.setBusinessType(businesstypeDO.getCode()); + putawayJobMainMapper.insert(putawayJobMainDO); + List putawayJobDetailDOList = new ArrayList<>(); + for(PutawayRequestDetailDO putawayRequestDetailDO : detailDOList) { + PutawayJobDetailDO putawayJobDetailDO = PutawayJobDetailConvert.INSTANCE.convert(putawayRequestDetailDO); + putawayJobDetailDO.setNumber(number); + putawayJobDetailDO.setMasterId(putawayJobDetailDO.getId()); + putawayJobDetailDOList.add(putawayJobDetailDO); + //预计出 + ExpectoutCreateReqVO expectoutCreateReqVO = new ExpectoutCreateReqVO(); + BeanUtils.copyProperties(putawayJobDetailDO, expectoutCreateReqVO); + expectoutCreateReqVO.setJobNumber(number); + expectoutCreateReqVOList.add(expectoutCreateReqVO); + } + putawayJobDetailMapper.insertBatch(putawayJobDetailDOList); + //增加预计出 + expectoutService.createExpectout(expectoutCreateReqVOList); + trendsApi.createTrends(putawayJobMainDO.getId(), "putawayJob", "上架申请生成上架任务", TrendsTypeEnum.CREATE); + } + // 新增校验 private PutawayRequestMainDO validatorToCreate(PutawayRequestMainCreateReqVO createReqVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) { PutawayRequestMainDO mainDo = validatorMainMethod(createReqVO, businesstypeDO, requestsettingDO);