diff --git a/nflg_project_dev/material/src/main/java/com/nflg/product/material/api/user/material/MaterialMainExcelApi.java b/nflg_project_dev/material/src/main/java/com/nflg/product/material/api/user/material/MaterialMainExcelApi.java index 7382d4f8..cda8cc98 100644 --- a/nflg_project_dev/material/src/main/java/com/nflg/product/material/api/user/material/MaterialMainExcelApi.java +++ b/nflg_project_dev/material/src/main/java/com/nflg/product/material/api/user/material/MaterialMainExcelApi.java @@ -59,6 +59,8 @@ public class MaterialMainExcelApi extends BaseApi { EecExcelUtil.setResponseExcelHeader(response, categoryCode); if (categoryCode.startsWith("30")) { throw new NflgBusinessException(STATE.ParamErr, "整机物料不可批量导入"); + } else if (categoryCode.startsWith("60")) { + throw new NflgBusinessException(STATE.ParamErr, "服务物料不可批量导入"); } if (categoryCode.startsWith("20") || categoryCode.startsWith("22")) { new Workbook("物料导入", "").addSheet(new ListSheet<>(categoryCode, ImmutableList.of(new MaterialSelfExcelDTO()))).writeTo(response.getOutputStream()); diff --git a/nflg_project_dev/material/src/main/java/com/nflg/product/material/service/MaterialUpdateBillService.java b/nflg_project_dev/material/src/main/java/com/nflg/product/material/service/MaterialUpdateBillService.java index f5790539..26565695 100644 --- a/nflg_project_dev/material/src/main/java/com/nflg/product/material/service/MaterialUpdateBillService.java +++ b/nflg_project_dev/material/src/main/java/com/nflg/product/material/service/MaterialUpdateBillService.java @@ -474,6 +474,7 @@ public class MaterialUpdateBillService extends ServiceImpl updateList, String applyDeptCode) { + if (CollectionUtil.isEmpty(updateList)) { + return; + } + if (!applyDeptCode.contains("营销中心")) { + return; + } + List filterList = updateList.stream().filter(update -> (update.getOldCategoryCode().startsWith("10") || update.getOldCategoryCode().startsWith("20")) + && update.getOldMaterialState().equals(MaterialStateEnum.FROZEN.getValue()) + && (ObjectUtil.isNotEmpty(update.getNewMaterialState()) && update.getNewMaterialState().equals(MaterialStateEnum.ACTIVATE.getValue()))).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(filterList)) { + List materialNos = filterList.stream().map(MaterialUpdateBillEntity::getMaterialNo).collect(Collectors.toList()); + throw new NflgBusinessException(STATE.ParamErr, StrUtil.join(",", materialNos).concat("物料解冻时,禁止改成激活")); + } + } + /** * 获取物料分类tree * 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 ada98668..d9497e22 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 @@ -300,6 +300,10 @@ public class BomNewPbomParentVO extends BaseMaterialVO implements Serializable { @ApiModelProperty(value = "来源状态:1-EBOM导入、2-PBOM创建、3-E->P修改") private String sourceStatusName; + //PBOM发起变更时,漏掉该值 by luohj 240828 + @ApiModelProperty("来源行-父项物料编码") + private String sourceParentMaterialNo; + @ApiModelProperty("原始物料编码") private String originalMaterialNo; 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 ccaf4ef8..57cafc16 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 @@ -383,7 +383,7 @@ public class BomNewEbomParentService extends ServiceImpl list = this.lambdaQuery().in(BomNewEbomParentEntity::getMaterialNo, materialNos) // .eq(!EBomStatusEnum.PUBLISHED.equalsValue(parent.getStatus()), BomNewEbomParentEntity::getLastVersionIs, 1) - .eq(EBomStatusEnum.PUBLISHED.equalsValue(parent.getStatus()), BomNewEbomParentEntity::getStatus, EBomStatusEnum.PUBLISHED.getValue()).list(); + .eq(type.equals(1), BomNewEbomParentEntity::getStatus, EBomStatusEnum.PUBLISHED.getValue()).list(); // if (EBomStatusEnum.CHECKED.equalsValue(parent.getStatus())) { // list = list.stream().filter(u -> EBomStatusEnum.CHECKED.equalsValue(u.getStatus())).collect(Collectors.toList()); // } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomExportToSAPImpl.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomExportToSAPImpl.java index 820a70eb..60d36ece 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomExportToSAPImpl.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomExportToSAPImpl.java @@ -340,7 +340,8 @@ public class BomNewPbomExportToSAPImpl implements IBomNewPbomExportToSAP { , BomNewPbomChildEntity::getMaterialUnit, BomNewPbomChildEntity::getMaterialDesc , BomNewPbomChildEntity::getVirtualPartType, BomNewPbomChildEntity::getProjectType , BomNewPbomChildEntity::getFacCode, BomNewPbomChildEntity::getMaterialCategoryCode - , BomNewPbomChildEntity::getRowId) + , BomNewPbomChildEntity::getRowId + ,BomNewPbomChildEntity::getSourceParentMaterialNo) .eq(BomNewPbomChildEntity::getParentRowId, parent.getRowId()) .orderByAsc(BomNewPbomChildEntity::getOrderNumber) .list(); 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 49809aab..ae9bab04 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 @@ -326,11 +326,8 @@ public class BomNewPbomParentService extends ServiceImpl materialNos = parentChild.stream().map(BaseMaterialVO::getMaterialNo).collect(Collectors.toList()); if (CollUtil.isNotEmpty(materialNos)) { List list = this.lambdaQuery().in(BomNewPbomParentEntity::getMaterialNo, materialNos) - // .eq(PBomStatusEnum.PUBLISH.equalsValue(parent.getStatus()), BomNewPbomParentEntity::getLastVersionIs, 1) - // .lt(!PBomStatusEnum.PUBLISH.equalsValue(parent.getStatus()),BomNewPbomParentEntity::getStatus,PBomStatusEnum.PUBLISH.getValue()) - // .eq(PBomStatusEnum.PUBLISH.equalsValue(parent.getStatus()),BomNewPbomParentEntity::getStatus, PBomStatusEnum.PUBLISH.getValue()) - .eq(PBomStatusEnum.PUBLISH.getValue() > parent.getStatus(), BomNewPbomParentEntity::getLastVersionIs, 1) - .ge(PBomStatusEnum.PUBLISH.getValue() <= parent.getStatus(), BomNewPbomParentEntity::getStatus, PBomStatusEnum.PUBLISH.getValue()) + .eq(type.equals(0), BomNewPbomParentEntity::getLastVersionIs, 1) + .ge(type.equals(1), BomNewPbomParentEntity::getStatus, PBomStatusEnum.PUBLISH.getValue()) .eq(BomNewPbomParentEntity::getFacCode,parent.getFacCode()) .list(); @@ -1138,7 +1135,7 @@ public class BomNewPbomParentService extends ServiceImpl bomRowIds = allBom.stream().filter(u -> PBomStatusEnum.WAIT_PUBLISH.equalsValue(u.getStatus()) && u.getBomRowId() > 0).map(u -> u.getBomRowId()).collect(Collectors.toList()); List parentMaterialNos = allBom.stream().filter(u -> PBomStatusEnum.WAIT_PUBLISH.equalsValue(u.getStatus()) && u.getBomRowId() > 0).map(u->u.getMaterialNo()).collect(Collectors.toList()); - parentMaterialNos.add(parent.getMaterialNo()); + //Integer state = (parent.getMaterialNo().startsWith("31") && parent.getFacCode().equals(EBomConstant.MAIN_FACTORY_CODE_1010)) ? PBomStatusEnum.WAIT_FACTORY.getValue() : PBomStatusEnum.PUBLISH.getValue(); Integer state = parent.getMaterialNo().startsWith("31") ? PBomStatusEnum.FACTORY_CONFIRM.getValue() : PBomStatusEnum.PUBLISH.getValue(); @@ -1153,25 +1150,25 @@ public class BomNewPbomParentService extends ServiceImpl pBomChildren = new ArrayList<>(); - allBom.forEach(k -> { - BomNewPbomChildEntity entChild = new BomNewPbomChildEntity(); - entChild.setRowId(k.getRowId()); - entChild.setBomVersionRowId(k.getBomRowId()); - pBomChildren.add(entChild); - }); - if (CollUtil.isNotEmpty(pBomChildren)) { - pbomChildService.updateBatchById(pBomChildren); - } + if(CollUtil.isNotEmpty(bomRowIds)) { + this.getBaseMapper().bomRelease(state, SessionUtil.getUserName(), bomRowIds); + //记录-BOM版本RowId + List pBomChildren = new ArrayList<>(); + allBom.forEach(k -> { + BomNewPbomChildEntity entChild = new BomNewPbomChildEntity(); + entChild.setRowId(k.getRowId()); + entChild.setBomVersionRowId(k.getBomRowId()); + pBomChildren.add(entChild); + }); + if (CollUtil.isNotEmpty(pBomChildren)) { + pbomChildService.updateBatchById(pBomChildren); + } - //历史版本转移到formal正式工作表 - pBomToFormal(bomRowIds, parentMaterialNos,parent.getFacCode()); + //历史版本转移到formal正式工作表 + pBomToFormal(bomRowIds, parentMaterialNos, parent.getFacCode()); + } // SpringUtil.getBean(BomNewPbomParentFormalService.class).copyPbomFormal(bomRowId); } catch (Exception ex) { @@ -1363,6 +1360,10 @@ public class BomNewPbomParentService extends ServiceImpl child = result.stream().filter(u -> u.getParentRowId().equals(vo.getBomRowId()) && !childDelMaterialNos.contains(u.getMaterialNo())).distinct().collect(Collectors.toList()); List mergeChild = mergeChild(child); //判断pbom 是否一致 - if( compareContentIsSame(vo, mergeChild, facCode)){ - continue; - } +// if( compareContentIsSame(vo, mergeChild, facCode) && !vo.getMaterialNo().equals(parent.getMaterialNo())){ +// continue; +// } BomNewPbomParentEntity parentEnt = buildPBomParent(vo, facCode,parentList); if(Objects.isNull(parentEnt)){ continue; @@ -96,6 +96,8 @@ public class EBomToPBom extends EBomToPbomBase { childEnt.setSourceRowId(eb.getRowId()); childEnt.setIdentityNo(StrUtil.join("-", parentEnt.getMaterialNo(), eb.getMaterialNo())); childEnt.setOriginalMaterialNo(eb.getMaterialNo()); + //原ebom父级编码 by luohj 240828 + childEnt.setSourceParentMaterialNo(eb.getSourceParentMaterialNo()); childEnt.setOriginalProjectType(eb.getProjectType()); childEnt.setOriginalNum(eb.getNum()); childEnt.setCreatedTime(LocalDateTime.now()); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPBomFor31.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPBomFor31.java index 1b328273..0b43040d 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPBomFor31.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPBomFor31.java @@ -65,8 +65,9 @@ public class EBomToPBomFor31 extends EBomToPbomBase { for (BomNewEbomParentVO data : deliveryPackage1010) { List subVos = new ArrayList<>(); if (data.getMaterialName().contains("仙桃") ) { //只获取下降虚拟包(排除仙桃油漆包) - if(!data.getMaterialName().contains(VirtualPackageTypeEnum.PAINT_PACKAGE.getDescription())) { + subVos.add(data); + if(!VirtualPackageTypeEnum.PAINT_PACKAGE.getValue().equals(data.getVirtualPartType())) { subVos.addAll(result.stream().filter(u -> u.getParentRowId().equals(data.getBomRowId())).collect(Collectors.toList())); } } else { @@ -102,7 +103,7 @@ public class EBomToPBomFor31 extends EBomToPbomBase { .collect(Collectors.toList()), BomNewEbomParentVO::getBomRowId); for (BomNewEbomParentVO vo : parentList) { String hasConvertKey = StrUtil.join("-", facCode, vo.getBomRowId()); - if (hasConvert.contains(hasConvertKey) || (PBomStatusEnum.PUBLISH.equalsValue(vo.getStatus()) && !VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.equalsValue(vo.getVirtualPartType()) && !VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.equalsValue(vo.getVirtualPartType()) )) { + if (hasConvert.contains(hasConvertKey) ) { continue; } hasConvert.add(hasConvertKey); @@ -117,9 +118,9 @@ public class EBomToPBomFor31 extends EBomToPbomBase { //子级 List child = facBomDataMp.get(facCode).stream().filter(u -> u.getParentRowId().equals(vo.getBomRowId()) && !childDelMaterialNos.contains(u.getMaterialNo())).distinct().collect(Collectors.toList()); List mergeChild = mergeChild(child); - if(compareContentIsSame(vo, mergeChild, facCode)){ - continue; - } +// if(compareContentIsSame(vo, mergeChild, facCode) && !vo.getMaterialNo().equals(parent.getMaterialNo())){ +// continue; +// } BomNewPbomParentEntity parentEnt = buildPBomParent(vo, facCode, parentList); if (Objects.isNull(parentEnt)) { continue; @@ -136,6 +137,8 @@ public class EBomToPBomFor31 extends EBomToPbomBase { childEnt.setIdentityNo(StrUtil.join("-", parentEnt.getMaterialNo(), eb.getMaterialNo())); childEnt.setSource(PbomSourceEnum.FROM_EBOM.getValue()); childEnt.setSourceStatus(PbomSourceStatusEnum.EBOM.getValue()); + //原ebom父级编码 by luohj 240828 + childEnt.setSourceParentMaterialNo(eb.getSourceParentMaterialNo()); childEnt.setOriginalMaterialNo(eb.getMaterialNo()); childEnt.setOriginalNum(eb.getNum()); childEnt.setOriginalProjectType(eb.getProjectType()); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPBomForFormal.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPBomForFormal.java index b02885fa..59856c51 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPBomForFormal.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPBomForFormal.java @@ -106,6 +106,8 @@ public class EBomToPBomForFormal extends EBomToPbomBase { childEnt.setFacCode(facCode); childEnt.setSourceRowId(eb.getRowId()); childEnt.setIdentityNo(StrUtil.join("-", parentEnt.getMaterialNo(), eb.getMaterialNo())); + //原ebom父级编码 by luohj 240828 + childEnt.setSourceParentMaterialNo(eb.getSourceParentMaterialNo()); childEnt.setOriginalMaterialNo(eb.getMaterialNo()); childEnt.setOriginalNum(eb.getNum()); childEnt.setOriginalProjectType(eb.getProjectType()); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPBomForFormal31.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPBomForFormal31.java index 199623c6..1c88390f 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPBomForFormal31.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPBomForFormal31.java @@ -151,6 +151,8 @@ public class EBomToPBomForFormal31 extends EBomToPbomBase { childEnt.setParentRowId(parentEnt.getRowId()); childEnt.setFacCode(facCode); childEnt.setIdentityNo(StrUtil.join("-", parentEnt.getMaterialNo(), eb.getMaterialNo())); + //原ebom父级编码 by luohj 240828 + childEnt.setSourceParentMaterialNo(eb.getSourceParentMaterialNo()); childEnt.setOriginalMaterialNo(eb.getMaterialNo()); childEnt.setOriginalNum(eb.getNum()); childEnt.setOriginalProjectType(eb.getProjectType()); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPbomBase.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPbomBase.java index a92c4c1a..7f3d48f9 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPbomBase.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPbomBase.java @@ -121,6 +121,8 @@ public abstract class EBomToPbomBase { childEnt.setParentRowId(oldParent.getRowId()); childEnt.setFacCode(facCode); childEnt.setIdentityNo(StrUtil.join("-", oldParent.getMaterialNo(), netT.getMaterialNo())); + //原ebom父级编码 by luohj 240828 + childEnt.setSourceParentMaterialNo(netT.getSourceParentMaterialNo()); childEnt.setOriginalMaterialNo(netT.getMaterialNo()); childEnt.setOriginalNum(netT.getNum()); childEnt.setOriginalProjectType(netT.getProjectType()); @@ -203,12 +205,9 @@ public abstract class EBomToPbomBase { } else { //pbom-处于正式表 //Ebom为已发布时则直接跳过 (直发包,发货前装配包是则需对比Bom明细,一致则跳过,否则升级) - if (!EBomStatusEnum.PUBLISHED.equalsValue(parentVo.getStatus()) || (VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.equalsValue(parentVo.getVirtualPartType()) || VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.equalsValue(parentVo.getVirtualPartType()))) { - String version = StrUtil.isBlank(parentVo.getCurrentVersion()) ? VersionUtil.getNextVersion("") : parentVo.getCurrentVersion(); - String bomVersion = VersionUtil.compare(version, oldParent.getCurrentVersion()) > 0 ? version : VersionUtil.getNextVersion(oldParent.getCurrentVersion()); - return buildParentEntity(parentVo, facCode, oldParent, bomVersion); - } - return null; + + return buildParentEntity(parentVo, facCode, oldParent, VersionUtil.getNextVersionForSmallVersion(oldParent.getCurrentVersion())); + } @@ -751,7 +750,7 @@ public abstract class EBomToPbomBase { //一样则无需转换 if (isSameEBomV2(oldParentChild, newParentChild)) { - parentBom.setNoConvertToPBomIs(1); + // parentBom.setNoConvertToPBomIs(1); parentBom.setHasChangeState(1); //只变化项目类别-则使用小版本 } else if (isSameEBomV2FormMaterialNoAndNum(oldParentChild, newParentChild)) { diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/topbomnew/EBomToPBomForFormal31New.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/topbomnew/EBomToPBomForFormal31New.java index 3b0e72db..a3eb9778 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/topbomnew/EBomToPBomForFormal31New.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/topbomnew/EBomToPBomForFormal31New.java @@ -3,12 +3,14 @@ package com.nflg.product.bomnew.service.domain.EBom.topbomnew; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.extra.spring.SpringUtil; import com.alibaba.excel.enums.BooleanEnum; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.nflg.product.base.core.conmon.util.SessionUtil; import com.nflg.product.bomnew.constant.ConvertToPBomModelEnum; import com.nflg.product.bomnew.constant.EBomConstant; import com.nflg.product.bomnew.constant.VirtualPackageTypeEnum; +import com.nflg.product.bomnew.mapper.master.BomNewPbomParentMapper; import com.nflg.product.bomnew.pojo.entity.BomNewPbomChildEntity; import com.nflg.product.bomnew.pojo.entity.BomNewPbomParentEntity; import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO; @@ -66,9 +68,10 @@ public class EBomToPBomForFormal31New extends FormalEBomToPbomBase { for (BomNewEbomParentVO data: deliveryPackage1010){ List subVos = new ArrayList<>();// result.stream().filter(u -> u.getLevelNumber().compareTo(data.getLevelNumber()) >= 0 && u.getLevelNumber().compareTo(NumberUtil.add(data.getLevelNumber(), BigDecimal.valueOf(0.01))) < 0).collect(Collectors.toList()); if(data.getMaterialName().contains("仙桃")){ - if(!data.getMaterialName().contains(VirtualPackageTypeEnum.PAINT_PACKAGE.getDescription())) { + // subVos = result.stream().filter(u -> u.getMaterialName().contains("仙桃") && u.getLevelNumber().compareTo(data.getLevelNumber()) >= 0 && u.getLevelNumber().compareTo(NumberUtil.add(data.getLevelNumber(), BigDecimal.valueOf(0.01))) < 0).collect(Collectors.toList()); subVos.add(data); + if(!VirtualPackageTypeEnum.PAINT_PACKAGE.getValue().equals(data.getVirtualPartType())) { subVos.addAll(result.stream().filter(u -> u.getParentRowId().equals(data.getBomRowId())).collect(Collectors.toList())); } } @@ -113,18 +116,25 @@ public class EBomToPBomForFormal31New extends FormalEBomToPbomBase { List child = facBomDataMp.get(facCode).stream().filter(u -> u.getParentRowId().equals(vo.getBomRowId()) && !childDelMaterialNos.contains(u.getMaterialNo())).distinct().collect(Collectors.toList()); List mergeChild = mergeChild(child); //对比PBOM 版本是否一致(跟节点除外) - if(!parent.getMaterialNo().equals(vo.getMaterialNo()) && !VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.equalsValue(vo.getVirtualPartType()) && !VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.equalsValue(vo.getVirtualPartType())){ - continue; - } - if(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.equalsValue(vo.getVirtualPartType()) || VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.equalsValue(vo.getVirtualPartType())){ - if(compareContentIsSame(vo,mergeChild,facCode)){ - continue; - } - } +// if(!parent.getMaterialNo().equals(vo.getMaterialNo()) && !VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.equalsValue(vo.getVirtualPartType()) && !VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.equalsValue(vo.getVirtualPartType())){ +// continue; +// } +// if(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.equalsValue(vo.getVirtualPartType()) || VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.equalsValue(vo.getVirtualPartType())){ +// if(compareContentIsSame(vo,mergeChild,facCode)){ +// continue; +// } +// } BomNewPbomParentEntity parentEnt = buildPBomParent(vo, facCode,parentList); if(Objects.isNull(parentEnt)){ continue; } + //检查是否用户跟用户节点() + if(parentEnt.getMaterialNo().equals(parent.getMaterialNo())) { + List childMaterialNos = SpringUtil.getBean(BomNewPbomParentMapper.class).getPBomExistMaterialInChildForWorkList(parent.getMaterialNo()); + if (CollUtil.isEmpty(childMaterialNos)) { + parentEnt.setUserRootIs(1); + } + } //子级 if (CollUtil.isNotEmpty(child)) { diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/topbomnew/EBomToPBomForFormalNew.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/topbomnew/EBomToPBomForFormalNew.java index 159f78f7..860fcd6b 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/topbomnew/EBomToPBomForFormalNew.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/topbomnew/EBomToPBomForFormalNew.java @@ -74,14 +74,14 @@ public class EBomToPBomForFormalNew extends FormalEBomToPbomBase { List mergeChild = mergeChild(child); //对比PBOM 版本是否一致(跟节点除外) - if(!parent.getMaterialNo().equals(vo.getMaterialNo()) && !VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.equalsValue(vo.getVirtualPartType()) && !VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.equalsValue(vo.getVirtualPartType())){ - continue; - } - if(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.equalsValue(vo.getVirtualPartType()) || VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.equalsValue(vo.getVirtualPartType())){ - if(compareContentIsSame(vo,mergeChild,facCode)){ - continue; - } - } +// if(!parent.getMaterialNo().equals(vo.getMaterialNo()) && !VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.equalsValue(vo.getVirtualPartType()) && !VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.equalsValue(vo.getVirtualPartType())){ +// continue; +// } +// if(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.equalsValue(vo.getVirtualPartType()) || VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.equalsValue(vo.getVirtualPartType())){ +// if(compareContentIsSame(vo,mergeChild,facCode)){ +// continue; +// } +// } BomNewPbomParentEntity parentEnt = buildPBomParent(vo, facCode,parentList); @@ -89,10 +89,13 @@ public class EBomToPBomForFormalNew extends FormalEBomToPbomBase { continue; } //检查是否用户跟用户节点() - List childMaterialNos = SpringUtil.getBean(BomNewPbomParentMapper.class).getPBomExistMaterialInChildForWorkList(parentEnt.getMaterialNo()); - if(CollUtil.isEmpty(childMaterialNos)){ - parentEnt.setUserRootIs(1); + if(parentEnt.getMaterialNo().equals(parent.getMaterialNo())) { + List childMaterialNos = SpringUtil.getBean(BomNewPbomParentMapper.class).getPBomExistMaterialInChildForWorkList(parent.getMaterialNo()); + if (CollUtil.isEmpty(childMaterialNos)) { + parentEnt.setUserRootIs(1); + } } + //子级 if (CollUtil.isNotEmpty(child)) { //合并子级