From e54e9e87c9d9d44923b56311e1dc518789ab934d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Thu, 25 Jan 2024 12:20:08 +0800 Subject: [PATCH] =?UTF-8?q?BUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nflg/product/bomnew/api/user/PBomApi.java | 5 +++ .../bomnew/pojo/vo/BomNewPbomParentVO.java | 2 +- .../service/BomNewEbomParentService.java | 18 +++++++++++ .../service/BomNewOriginalParentService.java | 3 -- .../service/BomNewPbomParentService.java | 5 ++- .../bomnew/service/MaterialMainService.java | 31 +++++++++++++++++++ .../bomnew/service/SapOpUtilService.java | 2 +- .../service/domain/EBom/EBomToPBom.java | 9 ++++-- .../OriginalBom/OriginalBomToEBomConvert.java | 7 +++++ .../service/domain/PBom/ConvertToMBom.java | 25 ++++++++++----- 10 files changed, 91 insertions(+), 16 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java index 4dadd0bc..b3666354 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java @@ -58,6 +58,9 @@ public class PBomApi extends BaseApi { @Resource private UserRoleService userRoleService; + @Resource + private MaterialMainService materialMainService; + @PostMapping("workDetailsListByPage") @ApiOperation("PBom工作列表") @@ -101,6 +104,8 @@ public class PBomApi extends BaseApi { @PostMapping("editSubmit") @ApiOperation("编辑-提交") public ResultVO editSubmit(@Valid @RequestBody EditPBomParamDTO param){ + //检查物料是否被冻结 + materialMainService.checkMaterialFreeze(param.getChildList()); bomNewPbomParentService.editSave(param, PBomEditStatusEnum.HANDLER_FINISHED); return ResultVO.success(true); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewPbomParentVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewPbomParentVO.java index ee388330..ced4d2d4 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewPbomParentVO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewPbomParentVO.java @@ -112,7 +112,7 @@ public class BomNewPbomParentVO extends BaseMaterialVO implements Serializable { * 是否有BOM: 0-否 1-是 */ @ApiModelProperty(value = "是否有BOM: 0-否 1-是") - private Integer bomExist; + private Integer bomExist=0; /** * 是否最新版:0-否 1-是 diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java index e29442dd..ce8e8dd2 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java @@ -866,6 +866,24 @@ public class BomNewEbomParentService extends ServiceImpl bomAllChildList = this.getBomTree(parent.getRowId()); - //检查-有子级的物料,编码不能为空 - List noMaterialDrawing = bomAllChildList.stream().filter(u -> u.getBomRowId() > 0 && StrUtil.isBlank(u.getMaterialNo())).map(u -> u.getDrawingNo()).collect(Collectors.toList()); - VUtils.isTure(CollUtil.isNotEmpty(noMaterialDrawing)).throwMessage(StrUtil.join(",", noMaterialDrawing)+" 请维护物料编码"); BomOriginalListVO parentVO = Convert.convert(BomOriginalListVO.class, parent); parentVO.setEBomRowId(eBomRowId); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java index 68b42b8d..0cf8b18d 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java @@ -264,7 +264,6 @@ public class BomNewPbomParentService extends ServiceImpl void checkMaterialFreeze(List data){ + intiMaterialState(data); + List freeZeMaterialNos = data.stream().filter(u -> MateiralStateEnum.FREEZE.equalsValue(u.getMaterialState())).map(u -> u.getMaterialNo()).collect(Collectors.toList()); + VUtils.isTure(CollUtil.isNotEmpty(freeZeMaterialNos)).throwMessage("以下物料被冻结:"+StrUtil.join(",", freeZeMaterialNos)); + } + + /** + * 初化化物料状态 + * @param data + * @param + */ + public void intiMaterialState(List data ) { + List materialNos = data.stream().filter(u -> StrUtil.isNotBlank(u.getMaterialNo())).map(u -> u.getMaterialNo()).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(materialNos)) { + List materialBaseInfos = SpringUtil.getBean(MaterialMainService.class).getMaterialBaseInfo(materialNos); + Map materialMp = ListCommonUtil.listToMap(materialBaseInfos, BaseMaterialVO::getMaterialNo); + for (T t : data) { + + if (StrUtil.isNotBlank(t.getMaterialNo()) && materialMp.containsKey(t.getMaterialNo())) { + t.setMaterialState(materialMp.get(t.getMaterialNo()).getMaterialState()); + } + } + } + } /** diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/SapOpUtilService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/SapOpUtilService.java index daaf3184..c59ffa74 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/SapOpUtilService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/SapOpUtilService.java @@ -88,7 +88,7 @@ public class SapOpUtilService { */ public ResultVO importToSap(ImportSapParamDTO impartSapParamDTO) { if (CollUtil.isEmpty(impartSapParamDTO.getT1())) { - return null; + return ResultVO.error("同步SAP 参数错误"); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPBom.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPBom.java index 74802a0c..8f9043a6 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPBom.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPBom.java @@ -150,7 +150,7 @@ public class EBomToPBom { private BomNewPbomParentEntity buildPBomParent(BomNewEbomParentVO parentVo, String facCode) { BomNewPbomParentEntity oldParent = SpringUtil.getBean(BomNewPbomParentService.class).lambdaQuery() .eq(BomNewPbomParentEntity::getMaterialNo, parentVo.getMaterialNo()) - .eq(BomNewPbomParentEntity::getFacCode, facCode).one(); + .eq(BomNewPbomParentEntity::getFacCode, facCode).eq(BomNewPbomParentEntity::getLastVersionIs,1).one(); // this.hasConvertEBomRowIds.add(parentVo.getRowId()); if (Objects.nonNull(oldParent) && !EBomStatusEnum.PUBLISHED.equalsValue(oldParent.getStatus())) { @@ -166,7 +166,12 @@ public class EBomToPBom { pBomParent.setFacCode(facCode); pBomParent.setTechnologyUserCode(SessionUtil.getUserCode()); pBomParent.setTechnologyUserName(SessionUtil.getRealName()); - + pBomParent.setCurrentVersion(VersionUtil.getNextVersion("")); + if(Objects.nonNull(oldParent)){ + parentVo.setCurrentVersion(VersionUtil.getNextVersion(oldParent.getCurrentVersion())); + oldParent.setExpireEndTime(LocalDateTime.now()); + oldParent.setLastVersionIs(0); + } this.pBomParentResult.add(pBomParent); return pBomParent; } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomToEBomConvert.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomToEBomConvert.java index 9a83d5bb..877335c3 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomToEBomConvert.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomToEBomConvert.java @@ -83,6 +83,12 @@ public class OriginalBomToEBomConvert extends BaseConvert { SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(bomDetail, "material", "materialTexture","materialName"); SpringUtil.getBean(MaterialMainService.class).initShouldBomExist(bomDetail, BomOriginalListVO::getMaterialCategoryCode, BomOriginalListVO::setShouldBomExist, BomOriginalListVO::getMaterialGetType); + + + //检查-有子级的物料,编码不能为空 + List noMaterialDrawing = bomDetail.stream().filter(u -> u.getBomRowId() > 0 && StrUtil.isBlank(u.getMaterialNo())).map(u -> u.getDrawingNo()).collect(Collectors.toList()); + VUtils.isTure(CollUtil.isNotEmpty(noMaterialDrawing)).throwMessage(StrUtil.join(",", noMaterialDrawing)+" 请维护物料编码"); + //处理父级 hanlerDo(parent); @@ -332,6 +338,7 @@ public class OriginalBomToEBomConvert extends BaseConvert { eBomParent.setCreatedJob(SpringUtil.getBean(UserRoleService.class).technician() ? UserJobEnum.ENGINEER.getValue() : UserJobEnum.DESIGNER.getValue()); if (Objects.nonNull(ebom)) { ebom.setLastVersionIs(0); + ebom.setExpireEndTime(LocalDateTime.now()); this.eBomParentResult.add(ebom); } this.eBomParentResult.add(eBomParent); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/ConvertToMBom.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/ConvertToMBom.java index 1dfb0efb..ed5dc0e0 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/ConvertToMBom.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/ConvertToMBom.java @@ -116,6 +116,14 @@ public class ConvertToMBom { mBomParent.setSourceRowId(parent.getRowId()); mBomParent.setLastVersionIs(1); mBomParent.setStatus(MBomConstantEnum.MBomStatusEnum.UNPUB_SAP.getValue()); + //当10120 bom 内容为空时,不创建31 的Mbom + if(EBomConstant.XIAN_TAO_FACTORY_CODE_1020.equals(facCode) ){ + List bomContent1020 = allChildTreeList_1020.stream().filter(u -> u.getDelIs().equals(0) && u.getVirtualPartType().equals(0)).collect(Collectors.toList()); + if(CollUtil.isEmpty(bomContent1020)){ + return; + } + } + this.mBomParentResult.add(mBomParent); @@ -124,7 +132,7 @@ public class ConvertToMBom { allChild_1010.forEach(u->{ u.setRelParentRowId(u.getParentRowId()); }); - buildChild(EBomConstant.MAIN_FACTORY_CODE_1010.equals(facCode) ? allChild_1010 : allChildTreeList_1020, mBomParent.getRowId()); + buildChild(facCode, EBomConstant.MAIN_FACTORY_CODE_1010.equals(facCode) ? allChild_1010 : allChildTreeList_1020, mBomParent.getRowId()); } @@ -135,24 +143,24 @@ public class ConvertToMBom { * * @param allChild */ - private void buildChild(List allChild, Long bomRowId) { + private void buildChild(String facCode, List allChild, Long bomRowId) { List childBomTree = ConvertToMbomUtil.toTree(parent.getRowId(), allChild, ConvertToMBomDTO::getRelParentRowId, ConvertToMBomDTO::getBomRowId); ; for (ConvertToMBomDTO item : childBomTree) { //构建子级 if (item.getDelIs().equals(0)) { - buildMBomChildDo(item, 0L,bomRowId); + buildMBomChildDo(facCode, item, 0L,bomRowId); } } } - private void buildMBomChildDo(ConvertToMBomDTO item , Long parentRowId ,Long bomRowId){ + private void buildMBomChildDo(String facCode , ConvertToMBomDTO item , Long parentRowId ,Long bomRowId){ if (item.getDelIs().equals(0)) { - parentRowId = buildChildDo(item, bomRowId, parentRowId); + parentRowId = buildChildDo(facCode,item, bomRowId, parentRowId); } for (ConvertToMBomDTO itemChild : item.getChildNodes()) { - buildMBomChildDo(itemChild, parentRowId,bomRowId); + buildMBomChildDo(facCode, itemChild, parentRowId,bomRowId); } } @@ -178,12 +186,13 @@ public class ConvertToMBom { } } - private Long buildChildDo(ConvertToMBomDTO dto, Long bomRowId, Long parentRowId) { + private Long buildChildDo(String facCode, ConvertToMBomDTO dto, Long bomRowId, Long parentRowId) { BomNewMbomDetailEntity child = new BomNewMbomDetailEntity(); BeanUtil.copyProperties(dto, child); child.setRowId(IdWorker.getId()); child.setBomRowId(bomRowId); - child.setFacCode(dto.getProductionFactoryCode()); +// child.setFacCode(dto.getProductionFactoryCode()); + child.setFacCode(facCode); child.setParentRowId(parentRowId); child.setCreatedBy(SessionUtil.getUserCode()); child.setCreatedTime(LocalDateTime.now());