From aba0507bf9a34e29be4c02b3a70b9c493c5f26a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Wed, 26 Jun 2024 23:18:14 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E8=A7=A3=E5=86=B3=E5=8F=98=E6=9B=B4?= =?UTF-8?q?=E5=BD=B1=E5=93=8D=E9=87=8D=E5=A4=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bomnew/pojo/vo/BomNewEbomParentVO.java | 3 + .../service/domain/EBom/EBomToPbomBase.java | 71 +++++++++++++++++-- 2 files changed, 67 insertions(+), 7 deletions(-) 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)) {