diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewEbomParentVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewEbomParentVO.java index ad1542b0..b83fb125 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewEbomParentVO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewEbomParentVO.java @@ -353,6 +353,9 @@ public class BomNewEbomParentVO extends BaseMaterialVO implements Serializable { private List childNodes = Collections.emptyList(); + @ApiModelProperty("父级物料编码") + private List parentMaterialNos; + private static final long serialVersionUID = 1L; @Override 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 5caca7f9..b4d793bb 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 @@ -19,9 +19,7 @@ import com.nflg.product.bomnew.pojo.vo.BaseMaterialVO; import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO; import com.nflg.product.bomnew.pojo.vo.BomNewPbomParentVO; import com.nflg.product.bomnew.service.*; -import com.nflg.product.bomnew.util.BomLevelUtil; -import com.nflg.product.bomnew.util.VUtils; -import com.nflg.product.bomnew.util.VersionUtil; +import com.nflg.product.bomnew.util.*; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -237,7 +235,7 @@ public abstract class EBomToPbomBase { List parentEntChild = allBomDetail.stream().filter(u -> u.getParentRowId().equals(vo.getBomRowId())).collect(Collectors.toList()); for (BomNewEbomParentVO child : parentEntChild) { if (StrUtil.isNotBlank(child.getProjectType()) && child.getProjectType().equals(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getProductTypeKey())) { - BomNewEbomParentVO lastVirtualPackage = getLastVirtualPackageNew(child, VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE); + BomNewEbomParentVO lastVirtualPackage = getLastVirtualPackageNew(child,vo.getParentRowId(), VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE); if (Objects.nonNull(lastVirtualPackage)) { BomNewEbomParentVO newEnt = liftingLayerSummary(lastVirtualPackage, child); newEnt.setRowId(IdWorker.getId()); @@ -249,7 +247,7 @@ public abstract class EBomToPbomBase { continue; } if (StrUtil.isNotBlank(vo.getProjectType()) && vo.getProjectType().equals(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getProductTypeKey())) { - BomNewEbomParentVO lastVirtualPackage = getLastVirtualPackageNew(vo, VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE); + BomNewEbomParentVO lastVirtualPackage = getLastVirtualPackageNew(vo, vo.getParentRowId(), VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE); if (Objects.nonNull(lastVirtualPackage)) { BomNewEbomParentVO newEnt = liftingLayerSummary(lastVirtualPackage, child); newEnt.setRowId(IdWorker.getId()); @@ -292,6 +290,57 @@ public abstract class EBomToPbomBase { // } } + protected void liftingLayerNew() { + + result.add(parent); + List firstSubList = allBomDetail.stream().filter(u -> u.getParentRowId().equals(parent.getBomRowId())).collect(Collectors.toList()); + BomNewEbomParentVO zfVo=null; + BomNewEbomParentVO fhqVO=null; + + while (CollUtil.isNotEmpty(firstSubList)) { + for (BomNewEbomParentVO vo : firstSubList) { + List zfList = firstSubList.stream().filter(u -> u.getParentRowId().equals(vo.getBomRowId()) && VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.equalsValue(u.getVirtualPartType())).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(zfList)) { + zfVo=zfList.get(0); + } + if(Objects.isNull(zfVo) && VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getProductTypeKey().equals(vo.getVirtualPartType()) ) { + + } + + } + } + for (BomNewEbomParentVO vo : parentsEntList) { + List parentEntChild = allBomDetail.stream().filter(u -> u.getParentRowId().equals(vo.getBomRowId())).collect(Collectors.toList()); + for (BomNewEbomParentVO child : parentEntChild) { + if (StrUtil.isNotBlank(child.getProjectType()) && child.getProjectType().equals(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getProductTypeKey())) { + BomNewEbomParentVO lastVirtualPackage = getLastVirtualPackageNew(child,vo.getParentRowId(), VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE); + if (Objects.nonNull(lastVirtualPackage)) { + BomNewEbomParentVO newEnt = liftingLayerSummary(lastVirtualPackage, child); + newEnt.setRowId(IdWorker.getId()); + newEnt.setSourceRowId(String.valueOf(child.getParentRowId())); + newEnt.setSourceParentMaterialNo(vo.getMaterialNo()); + newEnt.setParentRowId(lastVirtualPackage.getBomRowId()); + result.add(newEnt); + } + continue; + } + if (StrUtil.isNotBlank(vo.getProjectType()) && vo.getProjectType().equals(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getProductTypeKey())) { + BomNewEbomParentVO lastVirtualPackage = getLastVirtualPackageNew(vo, vo.getParentRowId(), VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE); + if (Objects.nonNull(lastVirtualPackage)) { + BomNewEbomParentVO newEnt = liftingLayerSummary(lastVirtualPackage, child); + newEnt.setRowId(IdWorker.getId()); + newEnt.setSourceRowId(String.valueOf(child.getParentRowId())); + newEnt.setSourceParentMaterialNo(vo.getMaterialNo()); + newEnt.setParentRowId(lastVirtualPackage.getBomRowId()); + result.add(newEnt); + } + continue; + } + result.add(child); + } + } + } + /** * 提层汇总数量 * @@ -507,8 +556,8 @@ public abstract class EBomToPbomBase { } - private BomNewEbomParentVO getLastVirtualPackageNew(BomNewEbomParentVO vo, VirtualPackageTypeEnum virtualPackageTypeEnum) { - BomNewEbomParentVO parentEnt = getParent(vo); + private BomNewEbomParentVO getLastVirtualPackageNew(BomNewEbomParentVO vo, Long parentRowId, VirtualPackageTypeEnum virtualPackageTypeEnum) { + BomNewEbomParentVO parentEnt = getParent(vo,parentRowId); Boolean flag = true; while (Objects.nonNull(parentEnt) && parentEnt.getParentRowId() > 0 && flag) { //制作 @@ -523,6 +572,14 @@ public abstract class EBomToPbomBase { return null; } + private BomNewEbomParentVO getParent(BomNewEbomParentVO vo,Long parentRowId) { + List parents = allBomDetail.stream().filter(u -> u.getParentRowId().equals(parentRowId) && u.getBomRowId().equals(vo.getParentRowId())).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(parents)) { + return parents.get(0); + } + return null; + } + private BomNewEbomParentVO getParent(BomNewEbomParentVO vo) { List parents = allBomDetail.stream().filter(u -> u.getBomRowId().equals(vo.getParentRowId())).collect(Collectors.toList()); if (CollUtil.isNotEmpty(parents)) {