diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/InspectRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/InspectRequestMainController.java index 1341e082..5c80e5ce 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/InspectRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/InspectRequestMainController.java @@ -1,41 +1,38 @@ package com.win.module.wms.controller.inspectRequest; +import com.win.framework.common.pojo.CommonResult; import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.common.pojo.PageResult; import com.win.framework.dict.core.util.DictFrameworkUtils; import com.win.framework.excel.core.util.ConvertUtil; +import com.win.framework.excel.core.util.ExcelUtils; +import com.win.framework.operatelog.core.annotations.OperateLog; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.wms.controller.inspectRequest.vo.*; +import com.win.module.wms.convert.inspectRequest.InspectRequestMainConvert; +import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestMainDO; import com.win.module.wms.enums.DictTypeConstants; +import com.win.module.wms.service.inspectRequest.InspectRequestMainService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameters; -import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Operation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; -import javax.validation.*; -import javax.servlet.http.*; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; import java.time.LocalDateTime; import java.time.ZoneOffset; import java.util.*; -import java.io.IOException; -import com.win.framework.common.pojo.PageResult; -import com.win.framework.common.pojo.CommonResult; import static com.win.framework.common.pojo.CommonResult.success; - -import com.win.framework.excel.core.util.ExcelUtils; - -import com.win.framework.operatelog.core.annotations.OperateLog; -import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*; - -import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestMainDO; -import com.win.module.wms.convert.inspectRequest.InspectRequestMainConvert; -import com.win.module.wms.service.inspectRequest.InspectRequestMainService; -import org.springframework.web.multipart.MultipartFile; +import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 检验申请主") @RestController @@ -59,8 +56,8 @@ public class InspectRequestMainController { @Operation(summary = "更新检验申请主") @PreAuthorize("@ss.hasPermission('wms:inspect-request-main:update')") public CommonResult updateInspectRequestMain(@Valid @RequestBody InspectRequestMainUpdateReqVO updateReqVO) { - inspectRequestMainService.updateInspectRequestMain(updateReqVO); - return success(true); + int result = inspectRequestMainService.updateInspectRequestMain(updateReqVO); + return success(result > 0); } @DeleteMapping("/delete") @@ -68,8 +65,8 @@ public class InspectRequestMainController { @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('wms:inspect-request-main:delete')") public CommonResult deleteInspectRequestMain(@RequestParam("id") Long id) { - inspectRequestMainService.deleteInspectRequestMain(id); - return success(true); + int result = inspectRequestMainService.deleteInspectRequestMain(id); + return success(result > 0); } @GetMapping("/get") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainService.java index 58f322dc..914724c5 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainService.java @@ -31,14 +31,14 @@ public interface InspectRequestMainService { * * @param updateReqVO 更新信息 */ - void updateInspectRequestMain(@Valid InspectRequestMainUpdateReqVO updateReqVO); + Integer updateInspectRequestMain(@Valid InspectRequestMainUpdateReqVO updateReqVO); /** * 删除检验申请主 * * @param id 编号 */ - void deleteInspectRequestMain(Long id); + Integer deleteInspectRequestMain(Long id); /** * 获得检验申请主 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainServiceImpl.java index 877acfd7..b7a3b091 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainServiceImpl.java @@ -9,7 +9,6 @@ import cn.hutool.json.JSONUtil; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; import com.win.framework.common.util.validation.ValidationUtils; -import com.win.framework.dict.core.util.DictFrameworkUtils; import com.win.module.infra.api.trends.TrendsApi; import com.win.module.infra.enums.TrendsTypeEnum; import com.win.module.system.api.dict.DictDataApi; @@ -28,8 +27,8 @@ import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchasereceiptRe import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; import com.win.module.wms.dal.mysql.inspectRequest.InspectRequestDetailMapper; import com.win.module.wms.dal.mysql.inspectRequest.InspectRequestMainMapper; -import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.enums.request.RequestStatusEnum; +import com.win.module.wms.enums.request.RequestStatusState; import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.location.LocationService; import com.win.module.wms.service.purchasereceiptRecord.PurchasereceiptRecordMainService; @@ -92,47 +91,47 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService public Long createInspectRequestMain(InspectRequestMainCreateReqVO createReqVO) { RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InspectRequest"); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRequest"); - InspectRequestMainDO inspectRequestMainDO = this.validatorCreate(createReqVO, businesstypeDO, requestsettingDO); + InspectRequestMainDO mainDO = this.validatorMain(createReqVO, businesstypeDO, requestsettingDO); + //子表校验 + List subList = createReqVO.getSubList(); + List subDOList = InspectRequestDetailConvert.INSTANCE.convertList03(subList); + for (InspectRequestDetailDO detailDO : subDOList) { + this.validatorDetail(detailDO, mainDO, businesstypeDO); + } String number = serialNumberApi.generateCode(RuleCodeEnum.INSPECT_REQUEST.getCode()); - inspectRequestMainDO.setNumber(number); + mainDO.setNumber(number); + RequestStatusState requestStatusState = new RequestStatusState(); + requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute()); + mainDO.setStatus(requestStatusState.getState().getCode()); + inspectRequestMainMapper.insert(mainDO); + inspectRequestDetailMapper.insertBatch(subDOList); //调用自动执行方法 - if (RequestStatusEnum.HANDLING.getCode().equals(inspectRequestMainDO.getStatus())) { - + if (RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { + this.generateJob(mainDO, subDOList); } trendsApi.createTrends(requestsettingDO.getId(), "InspectRequest", "增加了到货校验申请", TrendsTypeEnum.CREATE); - return inspectRequestMainDO.getId(); + return mainDO.getId(); } @Override @Transactional - public void updateInspectRequestMain(InspectRequestMainUpdateReqVO updateReqVO) { + public Integer updateInspectRequestMain(InspectRequestMainUpdateReqVO updateReqVO) { RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InspectRequest"); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRequest"); - // 校验存在 validateInspectRequestMainExists(updateReqVO.getId()); - // 更新主表 - InspectRequestMainDO inspectRequestMainDO = validatorUpdate(updateReqVO, businesstypeDO, requestsettingDO); - if (RequestStatusEnum.HANDLING.getCode().equals(inspectRequestMainDO.getStatus())) { - - } + InspectRequestMainDO mainDO = this.validatorMain(updateReqVO, businesstypeDO, requestsettingDO); trendsApi.createTrends(requestsettingDO.getId(), "InspectRequest", "增加了到货校验申请", TrendsTypeEnum.CREATE); + // 更新主表 + return inspectRequestMainMapper.updateById(mainDO); } @Override @Transactional - public void deleteInspectRequestMain(Long id) { + public Integer deleteInspectRequestMain(Long id) { // 校验存在 validateInspectRequestMainExists(id); // 删除 - inspectRequestMainMapper.deleteById(id); - } - - private InspectRequestMainDO validateInspectRequestMainExists(Long id) { - InspectRequestMainDO inspectRequestMainDO = inspectRequestMainMapper.selectById(id); - if (inspectRequestMainDO == null) { - throw exception(INSPECT_REQUEST_MAIN_NOT_EXISTS); - } - return inspectRequestMainDO; + return inspectRequestMainMapper.deleteById(id); } @Override @@ -170,10 +169,10 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService datas.forEach(createReqVO -> { //主表校验方法 InspectRequestMainDO mainDO = InspectRequestMainConvert.INSTANCE.convert(createReqVO); - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRequest"); - String messageMain = this.validatorInspectRequestMainImport(mainDO, businesstypeDO); + String messageMain = this.validatorInspectRequestMainImport(mainDO); List subList = createReqVO.getSubList(); List subDOList = InspectRequestDetailConvert.INSTANCE.convertList03(subList); + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRequest"); for (InspectRequestDetailDO detailDO : subDOList) { String messageDetail = this.validatorInspectRequestDetailImport(detailDO, mainDO, businesstypeDO); InspectRequestDetailCreateReqVO inspectRequestDetailCreateReqVO = InspectRequestDetailConvert.INSTANCE.convert1(detailDO); @@ -185,12 +184,26 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService errorList.add(importVO); } } - mainDO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + mainDO.setBusinessType(businesstypeDO.getCode()); + mainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + mainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InspectRequest"); + mainDO.setAutoAgree(requestsettingDO.getAutoAgree()); + mainDO.setAutoCommit(requestsettingDO.getAutoCommit()); + mainDO.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + RequestStatusState requestStatusState = new RequestStatusState(); + requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute()); + mainDO.setStatus(requestStatusState.getState().getCode()); if (errorList.isEmpty()) { InspectRequestMainDO existInspectRequestMainDO = inspectRequestMainMapper.selectPurchaseReceiptNumber(createReqVO.getPurchaseReceiptRecordNumber()); if (existInspectRequestMainDO == null && mode != 3) { String number = serialNumberApi.generateCode(RuleCodeEnum.INSPECT_REQUEST.getCode()); mainDO.setNumber(number); + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { + this.generateJob(mainDO, subDOList); + } inspectRequestMainMapper.insert(mainDO); for(InspectRequestDetailDO inspectRequestDetailDO : subDOList) { inspectRequestDetailDO.setMasterId(mainDO.getId()); @@ -209,6 +222,15 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService return errorList; } + /** + * 生成收货检验任务,不要改动事务传播方式,否则会有事务问题 + * @param mainDO 收货检验主 + * @param detailDOList 收货检验子 + */ + private void generateJob(InspectRequestMainDO mainDO, List detailDOList) { + + } + //判断导入单位是否正确 private void ifUomSuccess(String itemUom, String uom) { DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictLabel(uom); @@ -309,69 +331,18 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService mainDO.setSampleQty(selectInspectType(mainDO.getReceiveQty(), rule)); } - private ItembasicDO validatorItembasic(String itemCode) { - return itembasicService.selectItembasic(itemCode); - } - - private void validatorLocation(String fromLocationCode) { - locationService.selectLocation(fromLocationCode); - } - - private void validatorIfInType(String itemType, BusinesstypeDO businesstypeDO) { - jobUtils.ifInType(itemType, businesstypeDO); - } - - private void validatorIfOutInventoryStatuses(String inventoryStatus, BusinesstypeDO businesstypeDO) { - jobUtils.ifOutInventoryStatuses(inventoryStatus, businesstypeDO); - } - - private void validatorIfInFromLocationType(String fromLocationCode, BusinesstypeDO businesstypeDO) { - jobUtils.ifInFromLocationType(fromLocationCode, businesstypeDO); - } - - private void validatorLocationReturnManagementAccuracy(String itemCode, String packingNumber, String batch, String fromLocationCode, String inventoryStatu) { - ArrayList inventoryStatus = new ArrayList<>(); - inventoryStatus.add(inventoryStatu); - jobUtils.selectlocationReturnManagementAccuracy(itemCode, packingNumber, batch, fromLocationCode, inventoryStatus); - } - - // 新增校验 - private InspectRequestMainDO validatorCreate(InspectRequestMainCreateReqVO createReqVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) { - InspectRequestMainDO mainDo = validatorMainMethod(createReqVO, businesstypeDO, requestsettingDO); - //子表校验 - List subList = createReqVO.getSubList(); - List subDOList = InspectRequestDetailConvert.INSTANCE.convertList03(subList); - for (InspectRequestDetailDO detailDO : subDOList) { - validatorDetailMethod(detailDO, mainDo, businesstypeDO); - } - String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode()); - mainDo.setNumber(number); - mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); - inspectRequestMainMapper.insert(mainDo); - inspectRequestDetailMapper.insertBatch(subDOList); - return mainDo; - } - - //修改校验 - private InspectRequestMainDO validatorUpdate(InspectRequestMainUpdateReqVO updateReqVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) { - InspectRequestMainDO mainDo = validatorMainMethod(updateReqVO, businesstypeDO, requestsettingDO); - //子表校验 - List subList = updateReqVO.getSubList(); - List subDOList = InspectRequestDetailConvert.INSTANCE.convertList05(subList); - for (InspectRequestDetailDO detailDO : subDOList) { - validatorDetailMethod(detailDO, mainDo, businesstypeDO); + private void validateInspectRequestMainExists(Long id) { + if (inspectRequestMainMapper.selectById(id) == null) { + throw exception(INSPECT_REQUEST_MAIN_NOT_EXISTS); } - inspectRequestMainMapper.updateById(mainDo); - inspectRequestDetailMapper.updateBatch(subDOList); - return mainDo; } //校验主表公共方法(适用于新增/修改) - private InspectRequestMainDO validatorMainMethod(InspectRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) { + private InspectRequestMainDO validatorMain(InspectRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) { InspectRequestMainDO mainDo = InspectRequestMainConvert.INSTANCE.convert(baseVO); - PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = validatorPurchasereceiptExist(mainDo.getPurchaseReceiptRecordNumber(), mainDo.getPoNumber(), mainDo.getPoLine(), mainDo.getItemCode()); + PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = this.validatorPurchasereceiptExist(mainDo.getPurchaseReceiptRecordNumber(), mainDo.getPoNumber(), mainDo.getPoLine(), mainDo.getItemCode()); mainDo.setReceiveQty(purchasereceiptRecordDetailDO.getQty()); - validatorRule(mainDo); + this.validatorRule(mainDo); mainDo.setBusinessType(businesstypeDO.getCode()); mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); @@ -383,7 +354,7 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService } //校验子表公共方法(适用于新增/修改) - private void validatorDetailMethod(InspectRequestDetailDO detailDo, InspectRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { + private void validatorDetail(InspectRequestDetailDO detailDo, InspectRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode()); detailDo.setItemDesc1(itembasicDO.getDesc1()); detailDo.setItemDesc2(itembasicDO.getDesc2()); @@ -403,7 +374,7 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService * @param mainDo * @return */ - private String validatorInspectRequestMainImport(InspectRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { + private String validatorInspectRequestMainImport(InspectRequestMainDO mainDo) { StringBuilder message = new StringBuilder(); try { PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = validatorPurchasereceiptExist(mainDo.getPurchaseReceiptRecordNumber(), mainDo.getPoNumber(), mainDo.getPoLine(), mainDo.getItemCode()); @@ -416,22 +387,6 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService } catch (Exception ex) { message.append(ex.getMessage()).append(","); } - if (businesstypeDO == null) { - message.append("根据业务类型设置未查找到采购退货申请的相关业务类型"); - } else { - mainDo.setBusinessType(businesstypeDO.getCode()); - mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); - mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); - } - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InspectRequest"); - if (requestsettingDO == null) { - message.append("根据申请单设置未查找到采购退货申请的相关业务类型"); - } else { - mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); - mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); - mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); - mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); - } try { ValidationUtils.validate(validator, mainDo); } catch (Exception ex) { @@ -495,4 +450,31 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService } return message.toString(); } + + private ItembasicDO validatorItembasic(String itemCode) { + return itembasicService.selectItembasic(itemCode); + } + + private void validatorLocation(String fromLocationCode) { + locationService.selectLocation(fromLocationCode); + } + + private void validatorIfInType(String itemType, BusinesstypeDO businesstypeDO) { + jobUtils.ifInType(itemType, businesstypeDO); + } + + private void validatorIfOutInventoryStatuses(String inventoryStatus, BusinesstypeDO businesstypeDO) { + jobUtils.ifOutInventoryStatuses(inventoryStatus, businesstypeDO); + } + + private void validatorIfInFromLocationType(String fromLocationCode, BusinesstypeDO businesstypeDO) { + jobUtils.ifInFromLocationType(fromLocationCode, businesstypeDO); + } + + private void validatorLocationReturnManagementAccuracy(String itemCode, String packingNumber, String batch, String fromLocationCode, String inventoryStatu) { + ArrayList inventoryStatus = new ArrayList<>(); + inventoryStatus.add(inventoryStatu); + jobUtils.selectlocationReturnManagementAccuracy(itemCode, packingNumber, batch, fromLocationCode, inventoryStatus); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java index c6aa20fa..465d1550 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java @@ -39,6 +39,7 @@ 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.inspectRequest.InspectRequestMainService; import com.win.module.wms.service.rule.RuleService; import com.win.module.wms.service.supplierdeliverRecord.SupplierdeliverRecordMainService; @@ -96,6 +97,8 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain private InspectRequestMainService inspectRequestMainService; @Resource private RuleService ruleService; + @Resource + private ExpectinService expectinService; @Override public PageResult getPurchasereceiptJobMainSenior(CustomConditions conditions) { @@ -306,7 +309,6 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain purchasereceiptRequestMainDO.setStatus(RequestStatusEnum.PARTIAL.getCode()); purchasereceiptRequestMainMapper.updateById(purchasereceiptRequestMainDO); } - //创建拣货申请 SwitchDO switchDO = switchService.selectSwitchExist("CreateInspectRequestAfterPurchaseReceiptRecordCreated"); //需要增加到货检验申请 if(switchDO.getEffectiveSetValue().equals("TRUE")) { @@ -369,6 +371,8 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain } //增加库存事务 transactionService.createTransaction(transactionCreateReqVOList); + //移除预计入 + expectinService.deleteExpectinByJobNumber(purchasereceiptJobMainDO.getNumber()); //变更记录 trendsApi.createTrends(purchasereceiptJobMainDO.getId(), "purchasereceiptJob", "执行了采购收货任务", TrendsTypeEnum.UPDATE); return null; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java index a64be2c3..ac394219 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java @@ -12,6 +12,7 @@ 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.expectin.vo.ExpectinCreateReqVO; import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobDetailCreateReqVO; import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainCreateReqVO; import com.win.module.wms.controller.purchasereceiptRecord.vo.PurchasereceiptRecordDetailCreateReqVO; @@ -37,6 +38,7 @@ import com.win.module.wms.dal.mysql.purchasereceiptRequest.PurchasereceiptReques 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.expectin.ExpectinService; import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.itempackaging.ItempackagingService; import com.win.module.wms.service.purchase.PurchaseMainService; @@ -106,6 +108,8 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq private PurchasereceiptRecordMainService purchasereceiptRecordMainService; @Resource private PurchasereceiptRecordDetailService purchasereceiptRecordDetailService; + @Resource + private ExpectinService expectinService; @Override @Transactional @@ -126,6 +130,7 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq mainDO.setAutoCommit(requestsettingDO.getAutoCommit()); mainDO.setAutoAgree(requestsettingDO.getAutoAgree()); mainDO.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); //调用自动执行方法 if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { this.generateJob(mainDO, subDOList); @@ -257,6 +262,7 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq mainDO.setAutoCommit(requestsettingDO.getAutoCommit()); mainDO.setAutoAgree(requestsettingDO.getAutoAgree()); mainDO.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); for (PurchasereceiptRequestDetailDO detailDO : subDOList) { detailDO.setMasterId(mainDO.getId()); detailDO.setNumber(number); @@ -412,9 +418,8 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq * @param detailDOList 采购收货子 */ private void generateJob(PurchasereceiptRequestMainDO mainDO, List detailDOList) { - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseReceiptRequest"); //跳过任务直接生成记录 - if("TRUE".equals(requestsettingDO.getDirectCreateRecord())) { + if("TRUE".equals(mainDO.getDirectCreateRecord())) { PurchasereceiptRecordMainCreateReqVO purchasereceiptRecordMainCreateReqVO = new PurchasereceiptRecordMainCreateReqVO(); BeanUtils.copyProperties(mainDO, purchasereceiptRecordMainCreateReqVO); purchasereceiptRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber()); @@ -501,6 +506,7 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq subList.add(purchasereceiptJobDetailCreateReqVO); } } + List createReqVOList = new ArrayList<>(); //把任务插入数据库 for(PurchasereceiptJobMainCreateReqVO purchasereceiptJobMainCreateReqVO : purchasereceiptJobMainCreateReqVOList) { PurchasereceiptJobMainDO purchasereceiptJobMainDO = PurchasereceiptJobMainConvert.INSTANCE.convert(purchasereceiptJobMainCreateReqVO); @@ -517,8 +523,15 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq purchasereceiptJobDetailDO.setNumber(number); purchasereceiptJobDetailDO.setMasterId(purchasereceiptJobMainDO.getId()); purchasereceiptJobDetailDOList.add(purchasereceiptJobDetailDO); + //预计入 + ExpectinCreateReqVO expectinCreateReqVO = new ExpectinCreateReqVO(); + BeanUtils.copyProperties(purchasereceiptJobDetailDO, expectinCreateReqVO); + expectinCreateReqVO.setJobNumber(number); + createReqVOList.add(expectinCreateReqVO); } purchasereceiptJobDetailMapper.insertBatch(purchasereceiptJobDetailDOList); + //增加预计入 + expectinService.createExpectin(createReqVOList); trendsApi.createTrends(purchasereceiptJobMainDO.getId(), "purchasereceiptJob", "采购收货申请生成采购收货任务", TrendsTypeEnum.CREATE); } } @@ -534,7 +547,8 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq ValidationUtils.validate(validator, mainDo); } catch (Exception ex) { message.append(ex.getMessage()).append(","); - }try { + } + try { this.validateSupplier(mainDo); } catch (Exception ex) { message.append(ex.getMessage()).append(",");