1、 转PBOM 问题

This commit is contained in:
大米 2024-06-24 08:47:18 +08:00
parent b5dca83082
commit 96adcae0a0
3 changed files with 78 additions and 57 deletions

View File

@ -33,6 +33,7 @@ public class EBomToPBomForFormal extends EBomToPbomBase {
this.facCodes = inFacCodes; this.facCodes = inFacCodes;
this.convertMode=convertModelEnum; this.convertMode=convertModelEnum;
generateDrawingNo(allBomDetail, parentRowId, ""); generateDrawingNo(allBomDetail, parentRowId, "");
initEBomVersionFormal();
} }

View File

@ -35,7 +35,7 @@ public class EBomToPBomForFormal31 extends EBomToPbomBase {
this.facCodes = inFacCodes; this.facCodes = inFacCodes;
this.convertMode=convertModelEnum; this.convertMode=convertModelEnum;
generateDrawingNo(allBomDetail, parentRowId, ""); generateDrawingNo(allBomDetail, parentRowId, "");
initEBomVersionFormal();
} }

View File

@ -47,7 +47,7 @@ public abstract class EBomToPbomBase {
protected List<BomNewEbomParentVO> result = new ArrayList<>(); protected List<BomNewEbomParentVO> result = new ArrayList<>();
protected BomNewEbomVirtualPackageCompositionService virtualPackageCompositionService=SpringUtil.getBean(BomNewEbomVirtualPackageCompositionService.class); protected BomNewEbomVirtualPackageCompositionService virtualPackageCompositionService = SpringUtil.getBean(BomNewEbomVirtualPackageCompositionService.class);
@Getter @Getter
@ -60,7 +60,6 @@ public abstract class EBomToPbomBase {
protected List<BomNewEbomVirtualPackageCompositionEntity> virtualPackageCompositionResult = new ArrayList<>(); protected List<BomNewEbomVirtualPackageCompositionEntity> virtualPackageCompositionResult = new ArrayList<>();
@Getter @Getter
protected List<BomNewEbomUpgradeChangeEntity> upgradeChangeResult = new ArrayList<>(); protected List<BomNewEbomUpgradeChangeEntity> upgradeChangeResult = new ArrayList<>();
@ -161,13 +160,13 @@ public abstract class EBomToPbomBase {
.eq(BomNewPbomParentEntity::getFacCode, facCode).last(" order by current_version desc limit 1").one(); .eq(BomNewPbomParentEntity::getFacCode, facCode).last(" order by current_version desc limit 1").one();
if(Objects.isNull(oldParent)){ if (Objects.isNull(oldParent)) {
return buildParentEntity(parentVo,facCode,oldParent,parentVo.getCurrentVersion()); return buildParentEntity(parentVo, facCode, oldParent, parentVo.getCurrentVersion());
} }
//pbom 处于工作表 //pbom 处于工作表
else if (Objects.nonNull(oldParent) && oldParent.getStatus() < EBomStatusEnum.PUBLISHED.getValue()) { else if (Objects.nonNull(oldParent) && oldParent.getStatus() < EBomStatusEnum.PUBLISHED.getValue()) {
if (oldParent.getCreatedBy().equals( parentVo.getCreatedBy())) { if (oldParent.getCreatedBy().equals(parentVo.getCreatedBy())) {
if (ConvertToPBomModelEnum.OVERRIDE.equalsValue(convertMode.getValue())) { if (ConvertToPBomModelEnum.OVERRIDE.equalsValue(convertMode.getValue())) {
SpringUtil.getBean(BomNewPbomChildService.class).getBaseMapper().deleteByMap(ImmutableMap.of("parent_row_id", oldParent.getRowId())); SpringUtil.getBean(BomNewPbomChildService.class).getBaseMapper().deleteByMap(ImmutableMap.of("parent_row_id", oldParent.getRowId()));
oldParent.setSourceRowId(parentVo.getRowId()); oldParent.setSourceRowId(parentVo.getRowId());
@ -183,14 +182,14 @@ public abstract class EBomToPbomBase {
return null; return null;
} else { //pbom-处于正式表 } else { //pbom-处于正式表
String bomVersion= VersionUtil.compare(parentVo.getCurrentVersion(),oldParent.getCurrentVersion())>0?parentVo.getCurrentVersion():VersionUtil.getNextVersion(oldParent.getCurrentVersion()); String bomVersion = VersionUtil.compare(parentVo.getCurrentVersion(), oldParent.getCurrentVersion()) > 0 ? parentVo.getCurrentVersion() : VersionUtil.getNextVersion(oldParent.getCurrentVersion());
return buildParentEntity(parentVo, facCode, oldParent,bomVersion); return buildParentEntity(parentVo, facCode, oldParent, bomVersion);
} }
} }
private BomNewPbomParentEntity buildParentEntity(BomNewEbomParentVO parentVo, String facCode,BomNewPbomParentEntity oldParent,String bomVersion){ private BomNewPbomParentEntity buildParentEntity(BomNewEbomParentVO parentVo, String facCode, BomNewPbomParentEntity oldParent, String bomVersion) {
BomNewPbomParentEntity pBomParent = new BomNewPbomParentEntity(); BomNewPbomParentEntity pBomParent = new BomNewPbomParentEntity();
BeanUtil.copyProperties(parentVo, pBomParent, "sourceRowId"); BeanUtil.copyProperties(parentVo, pBomParent, "sourceRowId");
pBomParent.setSourceRowId(parentVo.getBomRowId()); pBomParent.setSourceRowId(parentVo.getBomRowId());
@ -283,7 +282,8 @@ public abstract class EBomToPbomBase {
} }
/** /**
* 构建虚拟包组成 * 构建虚拟包组成
*
* @param lastVirtualPackage * @param lastVirtualPackage
* @param vo * @param vo
*/ */
@ -303,12 +303,12 @@ public abstract class EBomToPbomBase {
packageCompositionEntity.setDeviseName(lastVirtualPackage.getDeviseName()); packageCompositionEntity.setDeviseName(lastVirtualPackage.getDeviseName());
packageCompositionEntity.setDeptName(lastVirtualPackage.getDeptName()); packageCompositionEntity.setDeptName(lastVirtualPackage.getDeptName());
packageCompositionEntity.setFromLiftingLayerState(0); packageCompositionEntity.setFromLiftingLayerState(0);
if(!lastVirtualPackage.getBomRowId().equals(vo.getParentRowId())) { if (!lastVirtualPackage.getBomRowId().equals(vo.getParentRowId())) {
packageCompositionEntity.setFromLiftingLayerState(1); packageCompositionEntity.setFromLiftingLayerState(1);
} }
packageCompositionEntity.setCurrentVersion(lastVirtualPackage.getCurrentVersion()); packageCompositionEntity.setCurrentVersion(lastVirtualPackage.getCurrentVersion());
List<BomNewEbomParentVO> vParentM = allBomDetail.stream().filter(u -> lastVirtualPackage.getBomRowId().equals(u.getParentRowId())).collect(Collectors.toList()); List<BomNewEbomParentVO> vParentM = allBomDetail.stream().filter(u -> lastVirtualPackage.getBomRowId().equals(u.getParentRowId())).collect(Collectors.toList());
if(CollUtil.isNotEmpty(vParentM)) { if (CollUtil.isNotEmpty(vParentM)) {
packageCompositionEntity.setVirtualMaterialParentMaterialNo(vParentM.get(0).getMaterialNo()); packageCompositionEntity.setVirtualMaterialParentMaterialNo(vParentM.get(0).getMaterialNo());
} }
this.virtualPackageCompositionResult.add(packageCompositionEntity); this.virtualPackageCompositionResult.add(packageCompositionEntity);
@ -317,7 +317,7 @@ public abstract class EBomToPbomBase {
/** /**
* 变更影响 * 变更影响
*/ */
protected void changeImpact(){ protected void changeImpact() {
// Set<String> vmaterialNo = allBomDetail.stream().filter(u -> VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.equalsValue(u.getVirtualPartType()) || VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.equalsValue(u.getVirtualPartType())).map(u -> u.getMaterialNo()).collect(Collectors.toSet()); // Set<String> vmaterialNo = allBomDetail.stream().filter(u -> VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.equalsValue(u.getVirtualPartType()) || VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.equalsValue(u.getVirtualPartType())).map(u -> u.getMaterialNo()).collect(Collectors.toSet());
List<BomNewEbomParentVO> firstParent = allBomDetail.stream().filter(u -> u.getParentRowId().equals(parent.getRowId())).collect(Collectors.toList()); List<BomNewEbomParentVO> firstParent = allBomDetail.stream().filter(u -> u.getParentRowId().equals(parent.getRowId())).collect(Collectors.toList());
for (BomNewEbomParentVO vo : firstParent) { for (BomNewEbomParentVO vo : firstParent) {
@ -327,81 +327,79 @@ public abstract class EBomToPbomBase {
} }
private void changeImpactDo(BomNewEbomParentVO parentVO){ private void changeImpactDo(BomNewEbomParentVO parentVO) {
List<BomNewEbomParentVO> subVos = allBomDetail.stream().filter(u -> u.getLevelNumber().compareTo(parentVO.getLevelNumber()) >= 0 && u.getLevelNumber().compareTo(NumberUtil.add(parentVO.getLevelNumber(), BigDecimal.valueOf(0.01))) < 0) List<BomNewEbomParentVO> subVos = allBomDetail.stream().filter(u -> u.getLevelNumber().compareTo(parentVO.getLevelNumber()) >= 0 && u.getLevelNumber().compareTo(NumberUtil.add(parentVO.getLevelNumber(), BigDecimal.valueOf(0.01))) < 0)
.sorted(Comparator.comparing(BomNewEbomParentVO::getLevelNumber)).collect(Collectors.toList()); .sorted(Comparator.comparing(BomNewEbomParentVO::getLevelNumber)).collect(Collectors.toList());
List<BomNewEbomParentVO> subVosParent = subVos.stream().filter(u -> u.getBomRowId() > 0).collect(Collectors.toList()); List<BomNewEbomParentVO> subVosParent = subVos.stream().filter(u -> u.getBomRowId() > 0).collect(Collectors.toList());
for (BomNewEbomParentVO vo : subVosParent) { for (BomNewEbomParentVO vo : subVosParent) {
if( compareVirtualPackage(vo)) { if (compareVirtualPackage(vo)) {
break; break;
} }
} }
} }
private Boolean compareVirtualPackage(BomNewEbomParentVO vo) { private Boolean compareVirtualPackage(BomNewEbomParentVO vo) {
Boolean result=false; Boolean result = false;
if(EBomStatusEnum.PUBLISHED.equalsValue(vo.getStatus())){ if (EBomStatusEnum.PUBLISHED.equalsValue(vo.getStatus())) {
return result; return result;
} }
List<BomNewEbomVirtualPackageCompositionEntity> impactVm = virtualPackageCompositionService.lambdaQuery() List<BomNewEbomVirtualPackageCompositionEntity> impactVm = virtualPackageCompositionService.lambdaQuery()
.eq(BomNewEbomVirtualPackageCompositionEntity::getParentMaterialNo, vo.getMaterialNo()) .eq(BomNewEbomVirtualPackageCompositionEntity::getParentMaterialNo, vo.getMaterialNo())
.eq(BomNewEbomVirtualPackageCompositionEntity::getFromLiftingLayerState,1).list(); .eq(BomNewEbomVirtualPackageCompositionEntity::getFromLiftingLayerState, 1).list();
if(CollUtil.isNotEmpty(impactVm)){ if (CollUtil.isNotEmpty(impactVm)) {
List<BomNewEbomParentVO> childList = allBomDetail.stream().filter(u -> u.getParentRowId().equals(vo.getBomRowId())).collect(Collectors.toList()); List<BomNewEbomParentVO> childList = allBomDetail.stream().filter(u -> u.getParentRowId().equals(vo.getBomRowId())).collect(Collectors.toList());
Map<String, List<BomNewEbomVirtualPackageCompositionEntity> > impactVmMp=impactVm.stream().collect(Collectors.groupingBy(BomNewEbomVirtualPackageCompositionEntity::getVirtualPackageMaterialNo)); Map<String, List<BomNewEbomVirtualPackageCompositionEntity>> impactVmMp = impactVm.stream().collect(Collectors.groupingBy(BomNewEbomVirtualPackageCompositionEntity::getVirtualPackageMaterialNo));
//对比F项 //对比F项
for (String vMaterialNo: impactVmMp.keySet()){ for (String vMaterialNo : impactVmMp.keySet()) {
List<BomNewEbomVirtualPackageCompositionEntity> vMaterialList = impactVmMp.get(vMaterialNo); List<BomNewEbomVirtualPackageCompositionEntity> vMaterialList = impactVmMp.get(vMaterialNo);
//当改BOM 存在该虚拟包则直接跳过 //当改BOM 存在该虚拟包则直接跳过
List<BomNewEbomParentVO> existsV = allBomDetail.stream().filter(u -> u.getMaterialNo().equals(vMaterialNo)).collect(Collectors.toList()); List<BomNewEbomParentVO> existsV = allBomDetail.stream().filter(u -> u.getMaterialNo().equals(vMaterialNo)).collect(Collectors.toList());
if(CollUtil.isNotEmpty(existsV)){ if (CollUtil.isNotEmpty(existsV)) {
continue; continue;
} }
//虚拟包原F项 //虚拟包原F项
Set<String> fSet = vMaterialList.stream().filter(u -> VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getProductTypeKey().equals(u.getProjectType())).map(u -> StrUtil.join("", u.getChildMaterialNo(), u.getNum())).collect(Collectors.toSet()); Set<String> fSet = vMaterialList.stream().filter(u -> VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getProductTypeKey().equals(u.getProjectType())).map(u -> StrUtil.join("", u.getChildMaterialNo(), u.getNum())).collect(Collectors.toSet());
Set<String> newFSet = childList.stream().filter(u -> VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getProductTypeKey().equals(u.getProjectType())).map(u -> StrUtil.join("", u.getMaterialNo(), u.getNum())).collect(Collectors.toSet()); Set<String> newFSet = childList.stream().filter(u -> VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getProductTypeKey().equals(u.getProjectType())).map(u -> StrUtil.join("", u.getMaterialNo(), u.getNum())).collect(Collectors.toSet());
if(!fSet.equals(newFSet)) if (!fSet.equals(newFSet)) {
{ buildChangeImpactEntity(vMaterialList.get(0), vo);
buildChangeImpactEntity(vMaterialList.get(0),vo); result = true;
result=true;
continue; continue;
} }
// 虚拟包Z项 // 虚拟包Z项
//虚拟包原F项 //虚拟包原F项
Set<String> zSet = vMaterialList.stream().filter(u -> VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getProductTypeKey().equals(u.getProjectType())).map(u -> StrUtil.join("", u.getChildMaterialNo(), u.getNum())).collect(Collectors.toSet()); Set<String> zSet = vMaterialList.stream().filter(u -> VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getProductTypeKey().equals(u.getProjectType())).map(u -> StrUtil.join("", u.getChildMaterialNo(), u.getNum())).collect(Collectors.toSet());
Set<String> newZSet = childList.stream().filter(u -> VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getProductTypeKey().equals(u.getProjectType())).map(u -> StrUtil.join("", u.getMaterialNo(), u.getNum())).collect(Collectors.toSet()); Set<String> newZSet = childList.stream().filter(u -> VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getProductTypeKey().equals(u.getProjectType())).map(u -> StrUtil.join("", u.getMaterialNo(), u.getNum())).collect(Collectors.toSet());
if(!zSet.equals(newZSet)) if (!zSet.equals(newZSet)) {
{ buildChangeImpactEntity(vMaterialList.get(0), vo);
buildChangeImpactEntity(vMaterialList.get(0),vo); result = true;
result=true;
continue; continue;
} }
//数量发生变化非FZ项 数量发生变化 //数量发生变化非FZ项 数量发生变化
List<BomNewEbomVirtualPackageCompositionEntity> noZOrFList = vMaterialList.stream().filter(u -> VirtualPackageTypeEnum.UN_VIRTUAL_PACKAGE.getProductTypeKey().equals(u.getProjectType())).collect(Collectors.toList()); List<BomNewEbomVirtualPackageCompositionEntity> noZOrFList = vMaterialList.stream().filter(u -> VirtualPackageTypeEnum.UN_VIRTUAL_PACKAGE.getProductTypeKey().equals(u.getProjectType())).collect(Collectors.toList());
for (BomNewEbomVirtualPackageCompositionEntity vZOrF: noZOrFList){ for (BomNewEbomVirtualPackageCompositionEntity vZOrF : noZOrFList) {
List<BomNewEbomParentVO> collect = childList.stream().filter(u -> u.getMaterialNo().equals(vZOrF.getChildMaterialNo())).collect(Collectors.toList()); List<BomNewEbomParentVO> collect = childList.stream().filter(u -> u.getMaterialNo().equals(vZOrF.getChildMaterialNo())).collect(Collectors.toList());
if(CollUtil.isEmpty(collect)){ if (CollUtil.isEmpty(collect)) {
buildChangeImpactEntity(vMaterialList.get(0),vo); buildChangeImpactEntity(vMaterialList.get(0), vo);
result=true; result = true;
break; break;
} }
//数量发生了变化 //数量发生了变化
else if(CollUtil.isNotEmpty(collect) && collect.get(0).getNum().equals(vZOrF.getNum())){ else if (CollUtil.isNotEmpty(collect) && collect.get(0).getNum().equals(vZOrF.getNum())) {
buildChangeImpactEntity(vMaterialList.get(0),vo); buildChangeImpactEntity(vMaterialList.get(0), vo);
result=true; result = true;
break; break;
} }
} }
} }
} }
return result; return result;
} }
private void buildChangeImpactEntity(BomNewEbomVirtualPackageCompositionEntity v , BomNewEbomParentVO vo){ private void buildChangeImpactEntity(BomNewEbomVirtualPackageCompositionEntity v, BomNewEbomParentVO vo) {
BomNewEbomUpgradeChangeEntity changeEntity =new BomNewEbomUpgradeChangeEntity(); BomNewEbomUpgradeChangeEntity changeEntity = new BomNewEbomUpgradeChangeEntity();
changeEntity.setRowId(IdWorker.getId()); changeEntity.setRowId(IdWorker.getId());
changeEntity.setMaterialNo(v.getVirtualPackageMaterialNo()); changeEntity.setMaterialNo(v.getVirtualPackageMaterialNo());
changeEntity.setVersionOld(vo.getCurrentVersion()); changeEntity.setVersionOld(vo.getCurrentVersion());
@ -470,7 +468,7 @@ public abstract class EBomToPbomBase {
firstLevelBom.setLevelNumber(levelToNum(preAssemblyPackageLevelNo)); firstLevelBom.setLevelNumber(levelToNum(preAssemblyPackageLevelNo));
firstLevelBom.setLevelNo(preAssemblyPackageLevelNo); firstLevelBom.setLevelNo(preAssemblyPackageLevelNo);
}else { } else {
String levelKey = StrUtil.isNotBlank(parentDrawingNoRe) ? StrUtil.join("-", parentDrawingNoRe, gNo.toString()) : gNo.toString(); String levelKey = StrUtil.isNotBlank(parentDrawingNoRe) ? StrUtil.join("-", parentDrawingNoRe, gNo.toString()) : gNo.toString();
firstLevelBom.setLevelNumber(levelToNum(levelKey)); firstLevelBom.setLevelNumber(levelToNum(levelKey));
@ -558,6 +556,7 @@ public abstract class EBomToPbomBase {
public void initEBomVersion() { public void initEBomVersion() {
List<BomNewEbomParentVO> parentBoms = allBomDetail.stream().filter(u -> u.getBomRowId() > 0).collect(Collectors.toList()); List<BomNewEbomParentVO> parentBoms = allBomDetail.stream().filter(u -> u.getBomRowId() > 0).collect(Collectors.toList());
for (BomNewEbomParentVO parentBom : parentBoms) { for (BomNewEbomParentVO parentBom : parentBoms) {
List<BomNewEbomParentVO> newParentChild = allBomDetail.stream().filter(u -> u.getParentRowId().equals(parentBom.getBomRowId())).collect(Collectors.toList());
if (!EBomStatusEnum.PUBLISHED.equalsValue(parentBom.getStatus())) { if (!EBomStatusEnum.PUBLISHED.equalsValue(parentBom.getStatus())) {
//获取正式版 //获取正式版
BomNewEbomParentEntity oldEBom = SpringUtil.getBean(BomNewEbomParentService.class).lambdaQuery().eq(BomNewEbomParentEntity::getMaterialNo, parentBom.getMaterialNo()) BomNewEbomParentEntity oldEBom = SpringUtil.getBean(BomNewEbomParentService.class).lambdaQuery().eq(BomNewEbomParentEntity::getMaterialNo, parentBom.getMaterialNo())
@ -566,7 +565,7 @@ public abstract class EBomToPbomBase {
if (Objects.nonNull(oldEBom)) { if (Objects.nonNull(oldEBom)) {
List<BomNewEbomChildEntity> oldParentChild = SpringUtil.getBean(BomNewEbomChildService.class).lambdaQuery().eq(BomNewEbomChildEntity::getParentRowId, oldEBom.getRowId()).list(); List<BomNewEbomChildEntity> oldParentChild = SpringUtil.getBean(BomNewEbomChildService.class).lambdaQuery().eq(BomNewEbomChildEntity::getParentRowId, oldEBom.getRowId()).list();
List<BomNewEbomParentVO> newParentChild = allBomDetail.stream().filter(u -> u.getParentRowId().equals(parentBom.getBomRowId())).collect(Collectors.toList());
//一样则无需转换 //一样则无需转换
if (isSameEBomV2(oldParentChild, newParentChild)) { if (isSameEBomV2(oldParentChild, newParentChild)) {
parentBom.setNoConvertToPBomIs(1); parentBom.setNoConvertToPBomIs(1);
@ -579,20 +578,41 @@ public abstract class EBomToPbomBase {
parentBom.setCurrentVersion(VersionUtil.getNextVersion(oldEBom.getCurrentVersion())); parentBom.setCurrentVersion(VersionUtil.getNextVersion(oldEBom.getCurrentVersion()));
parentBom.setHasChangeState(2); parentBom.setHasChangeState(2);
} }
//如子级都为F 项父级也不转
Set<String> projectSet = newParentChild.stream().map(u -> u.getProjectType().toUpperCase()).collect(Collectors.toSet());
if(CollUtil.isNotEmpty(projectSet)){
if(!VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getProductTypeKey().equals(parentBom.getVirtualPartType()) && !VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getProductTypeKey().equals(parentBom.getVirtualPartType()) &&
(ImmutableSet.of("F").equals(projectSet) || ImmutableSet.of("F","Z").equals(projectSet)|| ImmutableSet.of("Z").equals(projectSet))){
parentBom.setNoConvertToPBomIs(1);
}
}
} }
}
//如子级都为F 项父级也不转
Set<String> projectSet = newParentChild.stream().map(u -> u.getProjectType().toUpperCase()).collect(Collectors.toSet());
if (CollUtil.isNotEmpty(projectSet)) {
if (!VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getProductTypeKey().equals(parentBom.getVirtualPartType()) && !VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getProductTypeKey().equals(parentBom.getVirtualPartType()) &&
(ImmutableSet.of("F").equals(projectSet) || ImmutableSet.of("F", "Z").equals(projectSet) || ImmutableSet.of("Z").equals(projectSet))) {
parentBom.setNoConvertToPBomIs(1);
}
} }
} }
} }
/**
* 正式eBOM转换前生产 pBOM
* 子项都为F 项则父项不转
*/
public void initEBomVersionFormal() {
List<BomNewEbomParentVO> parentBoms = allBomDetail.stream().filter(u -> u.getBomRowId() > 0).collect(Collectors.toList());
for (BomNewEbomParentVO parentBom : parentBoms) {
List<BomNewEbomParentVO> newParentChild = allBomDetail.stream().filter(u -> u.getParentRowId().equals(parentBom.getBomRowId())).collect(Collectors.toList());
//如子级都为F 项父级也不转
Set<String> projectSet = newParentChild.stream().map(u -> u.getProjectType().toUpperCase()).collect(Collectors.toSet());
if (CollUtil.isNotEmpty(projectSet)) {
if (!VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getProductTypeKey().equals(parentBom.getVirtualPartType()) && !VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getProductTypeKey().equals(parentBom.getVirtualPartType()) &&
(ImmutableSet.of("F").equals(projectSet) || ImmutableSet.of("F", "Z").equals(projectSet) || ImmutableSet.of("Z").equals(projectSet))) {
parentBom.setNoConvertToPBomIs(1);
}
}
}
}
} }