diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestMainConvert.java index 12b9181d..1a92e15b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestMainConvert.java @@ -26,6 +26,7 @@ public interface IssueRequestMainConvert { IssueRequestMainConvert INSTANCE = Mappers.getMapper(IssueRequestMainConvert.class); IssueRequestMainDO convert(IssueRequestMainCreateReqVO bean); + IssueRequestMainDO convert(IssueRequestMainBaseVO bean); IssueRequestMainDO convert(IssueRequestMainUpdateReqVO bean); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainServiceImpl.java index b6e75314..731f83f4 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainServiceImpl.java @@ -2,12 +2,13 @@ package com.win.module.wms.service.issueRequest; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.exceptions.UtilException; -import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.win.framework.common.pojo.CustomConditions; 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.serialnumber.SerialNumberApi; import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.wms.controller.issueRequest.vo.*; @@ -21,6 +22,7 @@ import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; import com.win.module.wms.dal.dataobject.workstation.WorkstationDO; import com.win.module.wms.dal.mysql.issueRequest.IssueRequestDetailMapper; import com.win.module.wms.enums.DictTypeConstants; +import com.win.module.wms.enums.request.RequestStatusEnum; import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.productionline.ProductionlineService; import com.win.module.wms.service.productionlineitem.ProductionlineitemService; @@ -82,23 +84,31 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService { private RuleService ruleService; @Resource private RequestsettingService requestsettingService; + @Resource + private TrendsApi trendsApi; @Override public Long createIssueRequestMain(IssueRequestMainCreateReqVO createReqVO) { - // 插入 - IssueRequestMainDO issueRequestMain = IssueRequestMainConvert.INSTANCE.convert(createReqVO); - issueRequestMainMapper.insert(issueRequestMain); - // 返回 - return issueRequestMain.getId(); + RequestsettingDO requestsettingDO = new RequestsettingDO(); + IssueRequestMainDO issueRequestMainDO = validatorToCreate(createReqVO,requestsettingDO); + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(issueRequestMainDO.getStatus())) { + + } + trendsApi.createTrends(requestsettingDO.getId(), "IssueRequest", "增加了发料申请", TrendsTypeEnum.CREATE); + return issueRequestMainDO.getId(); } @Override public void updateIssueRequestMain(IssueRequestMainUpdateReqVO updateReqVO) { + RequestsettingDO requestsettingDO = new RequestsettingDO(); // 校验存在 validateIssueRequestMainExists(updateReqVO.getId()); - // 更新 - IssueRequestMainDO updateObj = IssueRequestMainConvert.INSTANCE.convert(updateReqVO); - issueRequestMainMapper.updateById(updateObj); + IssueRequestMainDO issueRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO); + if(RequestStatusEnum.HANDLING.getCode().equals(issueRequestMainDO.getStatus())) { + + } + trendsApi.createTrends(requestsettingDO.getId(), "IssueRequest", "增加了发料申请", TrendsTypeEnum.CREATE); } @Override @@ -233,101 +243,78 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService { } //新增校验 - private void validatorToCreate(IssueRequestMainCreateReqVO createReqVO) { - IssueRequestMainDO issueRequestMainDO = IssueRequestMainConvert.INSTANCE.convert(createReqVO); - //主表校验 - this.validatorWorkshop(issueRequestMainDO.getWorkshopCode()); - issueRequestMainDO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); - issueRequestMainDO.setRequestTime(LocalDateTime.now()); - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("IssueRequest"); - issueRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree()); - issueRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit()); - issueRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute()); - issueRequestMainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("IssueRequest"); - issueRequestMainDO.setBusinessType(businesstypeDO.getCode()); - issueRequestMainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); - issueRequestMainDO.setToLocationTypes(businesstypeDO.getInLocationTypes()); - issueRequestMainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); - issueRequestMainDO.setToAreaCodes(businesstypeDO.getInAreaCodes()); - String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode()); - issueRequestMainDO.setNumber(number); - issueRequestMainMapper.insert(issueRequestMainDO); + private IssueRequestMainDO validatorToCreate(IssueRequestMainCreateReqVO createReqVO,RequestsettingDO requestsettingDO) { + BusinesstypeDO businesstypeDO = new BusinesstypeDO(); + IssueRequestMainDO issueRequestMainDO = validateMainMethod(createReqVO,businesstypeDO,requestsettingDO); //子表校验 List subList = createReqVO.getSubList(); List subDOList = IssueRequestDetailConvert.INSTANCE.convertList03(subList); for (IssueRequestDetailDO issueRequestDetailDO : subDOList) { - ItembasicDO itembasicDO = validatorItembasic(issueRequestDetailDO.getItemCode()); - this.validatorIfInType(itembasicDO.getType(), businesstypeDO); - this.ifUomSuccess(itembasicDO.getUom(), issueRequestDetailDO.getUom()); - ProductionlineDO productionlineDO = validatorProductionLineCode(issueRequestDetailDO.getProductionLineCode()); - issueRequestDetailDO.setToLocationCode(productionlineDO.getRawLocationCode()); - WorkstationDO workstationDO = validatorWorkstation(issueRequestDetailDO.getWorkStationCode(), issueRequestMainDO.getWorkshopCode(), issueRequestDetailDO.getProductionLineCode()); - issueRequestDetailDO.setToLocationCode(workstationDO.getRawLocationCode()); - this.validatorProductionLineCodeAndpItemCodeExist(issueRequestDetailDO.getProductionLineCode(), issueRequestDetailDO.getItemCode()); - RuleRespVO grounding = ruleService.grounding(null, null, null, null, null, null, issueRequestDetailDO.getItemCode(), null, null, null, null, null, null); - if (grounding == null) { - throw exception(555, "未查找到该条上架策略"); - } else { - JSONObject json = JSONUtil.parseObj(grounding); - String locationCode = json.get("LocationCode").toString(); - this.ifLocationCodeInRule(issueRequestDetailDO.getItemCode(), issueRequestDetailDO.getToLocationCode(), locationCode); - } - issueRequestDetailDO.setMasterId(issueRequestMainDO.getId()); - issueRequestDetailDO.setNumber(number); - issueRequestDetailMapper.insertBatch(subDOList); + validateDetailMethod(issueRequestDetailDO,businesstypeDO,issueRequestMainDO); } + String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode()); + issueRequestMainDO.setNumber(number); + issueRequestMainMapper.insert(issueRequestMainDO); + issueRequestDetailMapper.insertBatch(subDOList); + return issueRequestMainDO; } //修改校验 - private void validatorToUpdate(IssueRequestMainUpdateReqVO updateReqVO) { - IssueRequestMainDO issueRequestMainDO = IssueRequestMainConvert.INSTANCE.convert(updateReqVO); - //主表校验 - validateIssueRequestMainExists(updateReqVO.getId()); + private IssueRequestMainDO validatorToUpdate(IssueRequestMainUpdateReqVO updateReqVO,RequestsettingDO requestsettingDO) { + BusinesstypeDO businesstypeDO = new BusinesstypeDO(); + IssueRequestMainDO issueRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO); + //子表校验 + List subList = updateReqVO.getSubList(); + List subDOList = IssueRequestDetailConvert.INSTANCE.convertList03(subList); + for (IssueRequestDetailDO issueRequestDetailDO : subDOList) { + validateDetailMethod(issueRequestDetailDO,businesstypeDO,issueRequestMainDO); + } + issueRequestMainMapper.updateById(issueRequestMainDO); + issueRequestDetailMapper.updateBatch(subDOList); + return issueRequestMainDO; + } + //校验主表公共方法(适用于新增/修改) + private IssueRequestMainDO validateMainMethod(IssueRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO){ + IssueRequestMainDO issueRequestMainDO = IssueRequestMainConvert.INSTANCE.convert(baseVO); + validateIssueRequestMainExists(baseVO.getId()); this.validatorWorkshop(issueRequestMainDO.getWorkshopCode()); issueRequestMainDO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); issueRequestMainDO.setRequestTime(LocalDateTime.now()); - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("IssueRequest"); + requestsettingDO = requestsettingService.selectRequestsettingExist("IssueRequest"); issueRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree()); issueRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit()); issueRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute()); issueRequestMainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("IssueRequest"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("IssueRequest"); issueRequestMainDO.setBusinessType(businesstypeDO.getCode()); issueRequestMainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); issueRequestMainDO.setToLocationTypes(businesstypeDO.getInLocationTypes()); issueRequestMainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); issueRequestMainDO.setToAreaCodes(businesstypeDO.getInAreaCodes()); - String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode()); - issueRequestMainDO.setNumber(number); - issueRequestMainMapper.insert(issueRequestMainDO); - //子表校验 - List subList = updateReqVO.getSubList(); - List subDOList = IssueRequestDetailConvert.INSTANCE.convertList03(subList); - for (IssueRequestDetailDO issueRequestDetailDO : subDOList) { - validateIssueRequestDetailExists(issueRequestDetailDO.getId()); - ItembasicDO itembasicDO = validatorItembasic(issueRequestDetailDO.getItemCode()); - this.validatorIfInType(itembasicDO.getType(), businesstypeDO); - this.ifUomSuccess(itembasicDO.getUom(), issueRequestDetailDO.getUom()); - ProductionlineDO productionlineDO = validatorProductionLineCode(issueRequestDetailDO.getProductionLineCode()); - issueRequestDetailDO.setToLocationCode(productionlineDO.getRawLocationCode()); - WorkstationDO workstationDO = validatorWorkstation(issueRequestDetailDO.getWorkStationCode(), issueRequestMainDO.getWorkshopCode(), issueRequestDetailDO.getProductionLineCode()); - issueRequestDetailDO.setToLocationCode(workstationDO.getRawLocationCode()); - this.validatorProductionLineCodeAndpItemCodeExist(issueRequestDetailDO.getProductionLineCode(), issueRequestDetailDO.getItemCode()); - RuleRespVO grounding = ruleService.grounding(null, null, null, null, null, null, issueRequestDetailDO.getItemCode(), null, null, null, null, null, null); - if (grounding == null) { - throw exception(555, "未查找到该条上架策略"); - } else { - JSONObject json = JSONUtil.parseObj(grounding); - String locationCode = json.get("LocationCode").toString(); - this.ifLocationCodeInRule(issueRequestDetailDO.getItemCode(), issueRequestDetailDO.getToLocationCode(), locationCode); - } - issueRequestDetailDO.setMasterId(issueRequestMainDO.getId()); - issueRequestDetailDO.setNumber(number); - issueRequestDetailMapper.insertBatch(subDOList); + return issueRequestMainDO; + } + //校验子表公共方法(适用于新增/修改) + private void validateDetailMethod(IssueRequestDetailDO issueRequestDetailDO,BusinesstypeDO businesstypeDO,IssueRequestMainDO issueRequestMainDO) { + validateIssueRequestDetailExists(issueRequestDetailDO.getId()); + ItembasicDO itembasicDO = validatorItembasic(issueRequestDetailDO.getItemCode()); + this.validatorIfInType(itembasicDO.getType(), businesstypeDO); + this.ifUomSuccess(itembasicDO.getUom(), issueRequestDetailDO.getUom()); + ProductionlineDO productionlineDO = validatorProductionLineCode(issueRequestDetailDO.getProductionLineCode()); + issueRequestDetailDO.setToLocationCode(productionlineDO.getRawLocationCode()); + WorkstationDO workstationDO = validatorWorkstation(issueRequestDetailDO.getWorkStationCode(), issueRequestMainDO.getWorkshopCode(), issueRequestDetailDO.getProductionLineCode()); + issueRequestDetailDO.setToLocationCode(workstationDO.getRawLocationCode()); + this.validatorProductionLineCodeAndpItemCodeExist(issueRequestDetailDO.getProductionLineCode(), issueRequestDetailDO.getItemCode()); + RuleRespVO grounding = ruleService.grounding(null, null, null, null, null, null, issueRequestDetailDO.getItemCode(), null, null, null, null, null, null); + if (grounding == null) { + throw exception(555, "未查找到该条上架策略"); + } else { + JSONObject json = JSONUtil.parseObj(grounding); + String locationCode = json.get("LocationCode").toString(); + this.ifLocationCodeInRule(issueRequestDetailDO.getItemCode(), issueRequestDetailDO.getToLocationCode(), locationCode); } + issueRequestDetailDO.setMasterId(issueRequestMainDO.getId()); + issueRequestDetailDO.setNumber(issueRequestMainDO.getNumber()); } - /** * 校验导入,并赋值一些参数 * @@ -394,13 +381,13 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService { message.append(ex.getMessage()).append(","); } try { - ProductionlineDO productionlineDO = validatorProductionLineCode(detailDo.getProductionLineCode()); + ProductionlineDO productionlineDO = this.validatorProductionLineCode(detailDo.getProductionLineCode()); detailDo.setToLocationCode(productionlineDO.getRawLocationCode()); } catch (Exception ex) { message.append(ex.getMessage()).append(","); } try { - WorkstationDO workstationDO = validatorWorkstation(detailDo.getWorkStationCode(), mainDo.getWorkshopCode(), detailDo.getProductionLineCode()); + WorkstationDO workstationDO = this.validatorWorkstation(detailDo.getWorkStationCode(), mainDo.getWorkshopCode(), detailDo.getProductionLineCode()); detailDo.setToLocationCode(workstationDO.getRawLocationCode()); } catch (Exception ex) { message.append(ex.getMessage()).append(",");