Browse Source

发货申请 导入/新增/修改 校验模板

master
chenfang 2 years ago
parent
commit
501692c27b
  1. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestMainConvert.java
  2. 155
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainServiceImpl.java

1
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); IssueRequestMainConvert INSTANCE = Mappers.getMapper(IssueRequestMainConvert.class);
IssueRequestMainDO convert(IssueRequestMainCreateReqVO bean); IssueRequestMainDO convert(IssueRequestMainCreateReqVO bean);
IssueRequestMainDO convert(IssueRequestMainBaseVO bean);
IssueRequestMainDO convert(IssueRequestMainUpdateReqVO bean); IssueRequestMainDO convert(IssueRequestMainUpdateReqVO bean);

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

Loading…
Cancel
Save