diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestDetailConvert.java index d28ea52c..586d2d0a 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestDetailConvert.java @@ -4,11 +4,11 @@ import java.util.*; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.issueRequest.vo.IssueRequestDetailCreateReqVO; -import com.win.module.wms.controller.issueRequest.vo.IssueRequestDetailExcelVO; -import com.win.module.wms.controller.issueRequest.vo.IssueRequestDetailRespVO; -import com.win.module.wms.controller.issueRequest.vo.IssueRequestDetailUpdateReqVO; +import com.win.module.wms.controller.issueRequest.vo.*; +import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO; @@ -34,4 +34,24 @@ public interface IssueRequestDetailConvert { List convertList02(List list); + List convertList03(List list); + + List convertList04(List list); + + @Mappings({ + @Mapping(source = "mainDO.number", target = "number"), + @Mapping(source = "mainDO.remark", target = "remark"), + @Mapping(source = "mainDO.createTime", target = "createTime"), + @Mapping(source = "mainDO.creator", target = "creator"), + @Mapping(source = "mainDO.updateTime", target = "updateTime"), + @Mapping(source = "mainDO.updater", target = "updater"), + }) + IssueRequestDetailExcelVO convert(IssueRequestMainDO mainDO, IssueRequestDetailDO detailDO); + + @Mappings({ + @Mapping(source = "mainVo.number", target = "number"), + }) + IssueRequestImportErrorVO convert(IssueRequestMainCreateReqVO mainVo, IssueRequestDetailCreateReqVO detailVo); + + IssueRequestDetailCreateReqVO convert1(IssueRequestDetailDO detailDO); } 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 838bf654..9d30d7f0 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 @@ -29,6 +29,7 @@ import com.win.module.wms.service.workshop.WorkshopService; import com.win.module.wms.service.workstation.WorkstationService; import com.win.module.wms.util.JobUtils; import org.springframework.stereotype.Service; + import javax.annotation.Resource; import javax.validation.Validator; @@ -81,6 +82,7 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService { private RuleService ruleService; @Resource private RequestsettingService requestsettingService; + @Override public Long createIssueRequestMain(IssueRequestMainCreateReqVO createReqVO) { // 插入 @@ -109,8 +111,8 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService { private void validateIssueRequestMainExists(Long id) { if (issueRequestMainMapper.selectById(id) == null) { - return; - }else { + return; + } else { throw exception(ISSUE_REQUEST_MAIN_NOT_EXISTS); } } @@ -129,6 +131,7 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService { public PageResult getIssueRequestMainPage(IssueRequestMainPageReqVO pageReqVO) { return issueRequestMainMapper.selectPage(pageReqVO); } + @Override public PageResult getIssueRequestMainSenior(CustomConditions conditions) { return issueRequestMainMapper.selectSenior(conditions); @@ -139,20 +142,20 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService { return issueRequestMainMapper.selectList(exportReqVO); } - private void ifUomSuccess(String itemUom,String uom) { - if(!itemUom.equals(uom)){ - throw new UtilException("提示单位"+ uom + "错误,应该是" + itemUom); + private void ifUomSuccess(String itemUom, String uom) { + if (!itemUom.equals(uom)) { + throw new UtilException("提示单位" + uom + "错误,应该是" + itemUom); } } - private Boolean ifLocationCodeInRule(String itemCode,String locationCode,String ruleLocationCode) { + private Boolean ifLocationCodeInRule(String itemCode, String locationCode, String ruleLocationCode) { String[] ruleLocationCodes = ruleLocationCode.split(","); Boolean request = false; for (String code : ruleLocationCodes) { - if(code.equals(locationCode)){ + if (code.equals(locationCode)) { request = true; - }else { - throw new UtilException("未查找到零件"+ itemCode + "与库位" + locationCode + "对应的上架策略"); + } else { + throw new UtilException("未查找到零件" + itemCode + "与库位" + locationCode + "对应的上架策略"); } } return request; @@ -167,141 +170,130 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService { List errorList = new ArrayList<>(); datas.forEach(createReqVO -> { String messageMain = ""; - String messageAll = ""; - String itemType = ""; + BusinesstypeDO businesstypeDO = null; //主表校验方法 - if(mode != null){ + try { + validateIssueRequestMainExists(null); + } catch (Exception ex) { + messageMain += ex.getMessage() + ","; + } + try { + workshopService.selectWorkshopExist(createReqVO.getWorkshopCode()); + } catch (Exception ex) { + messageMain += ex.getMessage() + ","; + } + createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + createReqVO.setRequestTime(LocalDateTime.now()); + try { + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("IssueRequest"); + if (requestsettingDO != null) { + createReqVO.setAutoAgree(requestsettingDO.getAutoAgree()); + createReqVO.setAutoCommit(requestsettingDO.getAutoCommit()); + createReqVO.setAutoExecute(requestsettingDO.getAutoExecute()); + createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + } + } catch (Exception ex) { + messageMain += ex.getMessage() + ","; + } + try { + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("IssueRequest"); + createReqVO.setBusinessType(businesstypeDO.getCode()); + createReqVO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + createReqVO.setToLocationTypes(businesstypeDO.getInLocationTypes()); + createReqVO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); + createReqVO.setToAreaCodes(businesstypeDO.getInAreaCodes()); + } catch (Exception ex) { + messageMain += ex.getMessage() + ","; + } + try { + ValidationUtils.validate(validator, createReqVO); + } catch (Exception ex) { + messageMain += ex.getMessage() + ","; + } + String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RETURN_REQUEST.getCode()); + createReqVO.setNumber(number); + List subList = createReqVO.getSubList(); + List subDOList = IssueRequestDetailConvert.INSTANCE.convertList03(subList); + for (IssueRequestDetailDO detailDO : subDOList) { + String messageDetail = ""; + // 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList + //子表校验方法 try { - validateIssueRequestMainExists(null); + ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode()); + detailDO.setItemDesc1(itembasicDO.getDesc1()); + detailDO.setItemDesc2(itembasicDO.getDesc2()); + detailDO.setItemName(itembasicDO.getName()); + detailDO.setProjectCode(itembasicDO.getProject()); + try { + jobUtils.ifInType(itembasicDO.getType(), businesstypeDO); + } catch (Exception ex) { + messageMain += ex.getMessage() + ","; + } + try { + ifUomSuccess(itembasicDO.getUom(), detailDO.getUom()); + } catch (Exception ex) { + messageDetail += ex.getMessage() + ","; + } } catch (Exception ex) { - messageMain += ex.getMessage() + ","; + messageDetail += ex.getMessage() + ","; } try { - workshopService.selectWorkshopExist(createReqVO.getWorkshopCode()); - }catch (Exception ex) { + ProductionlineDO productionlineDO = productionlineService.productionLineCodeExist(detailDO.getProductionLineCode()); + detailDO.setToLocationCode(productionlineDO.getRawLocationCode()); + } catch (Exception ex) { messageMain += ex.getMessage() + ","; } - createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); - createReqVO.setRequestTime(LocalDateTime.now()); try { - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("IssueRequest"); - if(requestsettingDO != null){ - createReqVO.setAutoAgree(requestsettingDO.getAutoAgree()); - createReqVO.setAutoCommit(requestsettingDO.getAutoCommit()); - createReqVO.setAutoExecute(requestsettingDO.getAutoExecute()); - createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + if (detailDO.getWorkStationCode() != "") { + WorkstationDO workstationDO = workstationService.selectWorkstationExist(detailDO.getWorkStationCode(), createReqVO.getWorkshopCode(), detailDO.getProductionLineCode()); + detailDO.setToLocationCode(workstationDO.getRawLocationCode()); } - }catch (Exception ex){ + } catch (Exception ex) { messageMain += ex.getMessage() + ","; } - String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RETURN_REQUEST.getCode()); - createReqVO.setNumber(number); - List subList = createReqVO.getSubList(); - List subDOList = IssueRequestDetailConvert.INSTANCE.convertList03(subList); - if(!"".equals(messageMain)){ - for (IssueRequestDetailDO detailDO : subDOList) { - String messageDetail = ""; - // 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList - //子表校验方法 - try { - ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode()); - detailDO.setItemDesc1(itembasicDO.getDesc1()); - detailDO.setItemDesc2(itembasicDO.getDesc2()); - detailDO.setItemName(itembasicDO.getName()); - detailDO.setProjectCode(itembasicDO.getProject()); - itemType = itembasicDO.getType(); - try { - ifUomSuccess(itembasicDO.getUom(), detailDO.getUom()); - } catch (Exception ex) { - messageDetail += ex.getMessage() + ","; - } - } catch (Exception ex) { - messageDetail += ex.getMessage() + ","; - } - try { - ProductionlineDO productionlineDO = productionlineService.productionLineCodeExist(detailDO.getProductionLineCode()); - detailDO.setToLocationCode(productionlineDO.getRawLocationCode()); - } catch (Exception ex) { - messageMain += ex.getMessage() + ","; - } - try { - if (detailDO.getWorkStationCode() != "") { - WorkstationDO workstationDO = workstationService.selectWorkstationExist(detailDO.getWorkStationCode(), createReqVO.getWorkshopCode(), detailDO.getProductionLineCode()); - detailDO.setToLocationCode(workstationDO.getRawLocationCode()); - } - } catch (Exception ex) { - messageMain += ex.getMessage() + ","; - } - try { - productionlineitemService.productionLineCodeAndpItemCodeExist(detailDO.getProductionLineCode(), detailDO.getItemCode()); - } catch (Exception ex) { - messageMain += ex.getMessage() + ","; - } - try { - RuleRespVO grounding = ruleService.grounding(null, null, null, null, null, null, detailDO.getItemCode(), null, null, null, null, null, null); - JSONObject json = JSONUtil.parseObj(grounding); - String locationCode = json.get("LocationCode").toString(); - try { - ifLocationCodeInRule(detailDO.getItemCode(), detailDO.getToLocationCode(), locationCode); - } catch (Exception ex) { - messageDetail += ex.getMessage() + ","; - } - } catch (Exception ex) { - messageDetail += ex.getMessage() + ","; - } - IssueRequestDetailCreateReqVO purchaseturnRequestDetailCreateReqVO = IssueRequestDetailConvert.INSTANCE.convert1(detailDO); - IssueRequestImportErrorVO importVO = IssueRequestDetailConvert.INSTANCE.convert(createReqVO, purchaseturnRequestDetailCreateReqVO); - if (!messageDetail.equals("")) { - importVO.setImportStatus("失败"); - importVO.setImportRemark(messageDetail.substring(0, messageDetail.length() - 1)); - errorList.add(importVO); - } else { - detailDO.setNumber(createReqVO.getNumber()); - detailDO.setMasterId(createReqVO.getId()); - } - } + try { + productionlineitemService.productionLineCodeAndpItemCodeExist(detailDO.getProductionLineCode(), detailDO.getItemCode()); + } catch (Exception ex) { + messageMain += ex.getMessage() + ","; } try { - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("IssueRequest"); + RuleRespVO grounding = ruleService.grounding(null, null, null, null, null, null, detailDO.getItemCode(), null, null, null, null, null, null); + JSONObject json = JSONUtil.parseObj(grounding); + String locationCode = json.get("LocationCode").toString(); try { - jobUtils.ifInType(itemType, businesstypeDO); + ifLocationCodeInRule(detailDO.getItemCode(), detailDO.getToLocationCode(), locationCode); } catch (Exception ex) { - messageMain += ex.getMessage() + ","; + messageDetail += ex.getMessage() + ","; } - createReqVO.setBusinessType(businesstypeDO.getCode()); - createReqVO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); - createReqVO.setToLocationTypes(businesstypeDO.getInLocationTypes()); - createReqVO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); - createReqVO.setToAreaCodes(businesstypeDO.getInAreaCodes()); } catch (Exception ex) { - messageMain += ex.getMessage() + ","; + messageDetail += ex.getMessage() + ","; } - try{ - ValidationUtils.validate(validator,createReqVO); - }catch (Exception ex) { - messageMain += ex.getMessage() + ","; - } - IssueRequestImportErrorVO importVO = new IssueRequestImportErrorVO(); - if (!messageMain.equals("")) { + IssueRequestDetailCreateReqVO purchaseturnRequestDetailCreateReqVO = IssueRequestDetailConvert.INSTANCE.convert1(detailDO); + IssueRequestImportErrorVO importVO = IssueRequestDetailConvert.INSTANCE.convert(createReqVO, purchaseturnRequestDetailCreateReqVO); + if (!messageMain.equals("") || !messageDetail.equals("")) { importVO.setImportStatus("失败"); + messageMain = messageMain + messageDetail; importVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); errorList.add(importVO); + } else { + detailDO.setNumber(createReqVO.getNumber()); + detailDO.setMasterId(createReqVO.getId()); } - IssueRequestMainDO createobj = IssueRequestMainConvert.INSTANCE.convert(createReqVO); - if(errorList.isEmpty()){ - IssueRequestMainDO existIssueRequestMainDO = issueRequestMainMapper.selectWorkShopCodeAndUseOnTheWayLocation(createReqVO.getWorkshopCode(), createobj.getUseOnTheWayLocation()); - if(existIssueRequestMainDO == null && mode != 3){ - issueRequestMainMapper.insert(createobj); - issueRequestDetailMapper.insertBatch(subDOList); - }else if(existIssueRequestMainDO != null && mode != 2){ - issueRequestMainMapper.updateById(createobj); - issueRequestDetailMapper.updateBatch(subDOList); - } + } + IssueRequestMainDO createobj = IssueRequestMainConvert.INSTANCE.convert(createReqVO); + if (errorList.isEmpty()) { + IssueRequestMainDO existIssueRequestMainDO = issueRequestMainMapper.selectWorkShopCodeAndUseOnTheWayLocation(createReqVO.getWorkshopCode(), createobj.getUseOnTheWayLocation()); + if (existIssueRequestMainDO == null && mode != 3) { + issueRequestMainMapper.insert(createobj); + issueRequestDetailMapper.insertBatch(subDOList); + } else if (existIssueRequestMainDO != null && mode != 2) { + issueRequestMainMapper.updateById(createobj); + issueRequestDetailMapper.updateBatch(subDOList); } } }); //错误不为空并非部分更新,手工回滚 - if(!errorList.isEmpty() && !updatePart) { + if (!errorList.isEmpty() && !updatePart) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); } return errorList; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionline/ProductionlineService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionline/ProductionlineService.java index b57566b6..097b9c2c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionline/ProductionlineService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionline/ProductionlineService.java @@ -97,4 +97,13 @@ public interface ProductionlineService { * @return 分页列表 */ PageResult getProductionlineSenior(CustomConditions conditions); + + /** + * BQ---QPL + * 校验生产线基础信息 + * @author chenfang + * @param pproductionLineCode + * @return + */ + public ProductionlineDO productionLineCodeExist(String pproductionLineCode); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java index eb24da21..c14aa3a5 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java @@ -155,7 +155,7 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest } private void selectUomExist(String itemUom,String uom) { - if(itemUom == uom){ + if(itemUom.equals(uom)){ return; }else { throw new UtilException("提示单位"+ uom + "错误,应该是" + itemUom);