From a2cc8ee7ca881e042a71b33ae3dee0ee40b57793 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Thu, 27 Jun 2024 18:11:44 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=8F=98=E6=9B=B4=E5=BD=B1=E5=93=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/BomNewEbomUpgradeChangeEntity.java | 4 ++ ...ewEbomVirtualPackageCompositionEntity.java | 7 +++ .../BomNewEbomUpgradeChangeService.java | 7 ++- .../domain/EBom/ChangeImpactUpgrade.java | 63 +++---------------- .../service/domain/EBom/EBomToPbomBase.java | 37 ++++++----- .../master/BomNewEbomUpgradeChangeMapper.xml | 3 +- ...NewEbomVirtualPackageCompositionMapper.xml | 3 +- 7 files changed, 48 insertions(+), 76 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewEbomUpgradeChangeEntity.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewEbomUpgradeChangeEntity.java index 080b70de..930ca5ed 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewEbomUpgradeChangeEntity.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewEbomUpgradeChangeEntity.java @@ -116,6 +116,10 @@ public class BomNewEbomUpgradeChangeEntity implements Serializable { @ApiModelProperty(value = "虚拟包父级物料编码") private String virtualMaterialParentMaterialNo; + @TableField(value = "virtual_material_parent_material_no") + @ApiModelProperty("工厂编码") + private String facCode; + private static final long serialVersionUID = 862599074345253800L; } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewEbomVirtualPackageCompositionEntity.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewEbomVirtualPackageCompositionEntity.java index f25dadda..c526fc8c 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewEbomVirtualPackageCompositionEntity.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewEbomVirtualPackageCompositionEntity.java @@ -123,6 +123,13 @@ public class BomNewEbomVirtualPackageCompositionEntity implements Serializable { @ApiModelProperty(value = "虚拟包父级物料编码") private String virtualMaterialParentMaterialNo; + /** + * 版本号 + */ + @TableField(value = "fac_code") + @ApiModelProperty(value = "工厂编码--虚拟包工厂编码") + private String facCode; + private static final long serialVersionUID = -50661114691989818L; } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomUpgradeChangeService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomUpgradeChangeService.java index a71975bb..eec5711a 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomUpgradeChangeService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomUpgradeChangeService.java @@ -11,6 +11,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Sets; import com.nflg.product.bomnew.constant.ConvertToPBomModelEnum; +import com.nflg.product.bomnew.constant.EBomStatusEnum; import com.nflg.product.bomnew.constant.PBomStatusEnum; import com.nflg.product.bomnew.mapper.master.BomNewEbomUpdateDetailMapper; import com.nflg.product.bomnew.mapper.master.BomNewEbomUpgradeChangeMapper; @@ -77,7 +78,7 @@ public class BomNewEbomUpgradeChangeService extends ServiceImpl bomTree =ebomParentService.getFormalBomTree(ebom.getRowId()); @@ -86,8 +87,8 @@ public class BomNewEbomUpgradeChangeService extends ServiceImpl facCodes; - - private List allBomDetail; - - - private List result = new ArrayList<>(); - @Getter - private List pBomParentResult = new ArrayList<>(); - - @Getter - private List pBomChildResult = new ArrayList<>(); - +public class ChangeImpactUpgrade extends EBomToPbomBase { //需升级虚拟包编码 private String vMaterialNo; - - - protected Set hasBuildVNo = Sets.newHashSet(); - public ChangeImpactUpgrade(BomNewEbomParentVO inParent, List inAllBomDetail, List inFacCodes, String vMaterialNo) { this.parent = inParent; this.allBomDetail = inAllBomDetail; this.facCodes = inFacCodes; this.vMaterialNo = vMaterialNo; - generateDrawingNo(allBomDetail, 0L, ""); +// generateDrawingNo(allBomDetail, 0L, ""); } @@ -67,13 +45,13 @@ public class ChangeImpactUpgrade { /** * 构建虚拟包新版本-PBOM */ - public void buildVMaterialPBom() { + @Override + public void convert() { liftingLayer(); //找虚拟包-构建PBOM List vMaterial = result.stream().filter(u -> u.getMaterialNo().equals(vMaterialNo)).collect(Collectors.toList()); if (CollUtil.isNotEmpty(vMaterial)) { for (String facCode : facCodes) { - //虚拟包-子级 List child = result.stream().filter(u -> u.getParentRowId().equals(vMaterial.get(0).getBomRowId())).collect(Collectors.toList()); @@ -103,6 +81,8 @@ public class ChangeImpactUpgrade { } + + /** * 合并子级 * @@ -182,6 +162,7 @@ public class ChangeImpactUpgrade { if (Objects.nonNull(oldParent)) { oldParent.setExpireEndTime(LocalDateTime.now()); oldParent.setLastVersionIs(0); + this.pBomParentResult.add(oldParent); } this.pBomParentResult.add(pBomParent); return pBomParent; @@ -194,33 +175,7 @@ public class ChangeImpactUpgrade { * @param * @param */ - protected void liftingLayer() { - for (BomNewEbomParentVO vo : allBomDetail) { - if (StrUtil.isNotBlank(vo.getProjectType()) && vo.getProjectType().equals(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getProductTypeKey())) { - BomNewEbomParentVO lastVirtualPackage = getLastVirtualPackage(vo, VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE); - if (Objects.nonNull(lastVirtualPackage) && lastVirtualPackage.getMaterialNo().equals(vMaterialNo)) { - liftingLayerSummary(lastVirtualPackage, vo); - vo.setSourceRowId(String.valueOf(vo.getParentRowId())); - vo.setSourceParentMaterialNo(getParentMaterialNo(vo.getBomRowId())); - vo.setParentRowId(lastVirtualPackage.getBomRowId()); - result.add(vo); - } - continue; - } - if (StrUtil.isNotBlank(vo.getProjectType()) && vo.getProjectType().equals(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getProductTypeKey())) { - BomNewEbomParentVO lastVirtualPackage = getLastVirtualPackage(vo, VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE); - if (Objects.nonNull(lastVirtualPackage) && lastVirtualPackage.getMaterialNo().equals(vMaterialNo)) { - liftingLayerSummary(lastVirtualPackage, vo); - vo.setSourceRowId(String.valueOf(vo.getParentRowId())); - vo.setSourceParentMaterialNo(getParentMaterialNo(vo.getBomRowId())); - vo.setParentRowId(lastVirtualPackage.getBomRowId()); - result.add(vo); - } - continue; - } - result.add(vo); - } - } + /** * 提层汇总数量 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 3f98d9bd..811f7be7 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 @@ -233,7 +233,8 @@ public abstract class EBomToPbomBase { liftingLayerDo(parent, null, null, ImmutableList.of()); } - private List hasCupmVo=new ArrayList<>(); + private List hasCupmVo = new ArrayList<>(); + /** * @param parentVO 父项 * @param directDeliveryVo 直发包 @@ -243,7 +244,7 @@ public abstract class EBomToPbomBase { List firstLevelBoms = allBomDetail.stream().filter(u -> u.getParentRowId().equals(parentVO.getBomRowId())).collect(Collectors.toList()); for (BomNewEbomParentVO firstLevelBom : firstLevelBoms) { - if(hasCupmVo.contains(firstLevelBom.getRowId())){ + if (hasCupmVo.contains(firstLevelBom.getRowId())) { firstLevelBom.getParentRowIds().clear(); } //直发包 @@ -362,6 +363,7 @@ public abstract class EBomToPbomBase { packageCompositionEntity.setDeviseName(lastVirtualPackage.getDeviseName()); packageCompositionEntity.setDeptName(lastVirtualPackage.getDeptName()); packageCompositionEntity.setFromLiftingLayerState(0); + packageCompositionEntity.setFacCode(lastVirtualPackage.getMaterialName().contains(EBomConstant.XIAN_TAO_FACTORY_Name_1020) ? "1020" : "1010"); if (!lastVirtualPackage.getBomRowId().equals(vo.getParentRowId())) { packageCompositionEntity.setFromLiftingLayerState(1); } @@ -373,28 +375,28 @@ public abstract class EBomToPbomBase { this.virtualPackageCompositionResult.add(packageCompositionEntity); } - /** - * 变更影响 - */ protected void changeImpact() { -// Set 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 firstParent = allBomDetail.stream().filter(u -> u.getParentRowId().equals(parent.getBomRowId())).collect(Collectors.toList()); - for (BomNewEbomParentVO vo : firstParent) { - changeImpactDo(vo); + if(parent.getVirtualPartType()<=0 && compareVirtualPackage(parent)){ + return; } - - + changeImpactDo(parent); } - private void changeImpactDo(BomNewEbomParentVO parentVO) { - List subVos = getAllSubInListIncludeSelf(parentVO, allBomDetail); + // + protected void changeImpactDo(BomNewEbomParentVO parentVO) { - List subVosParent = subVos.stream().filter(u -> u.getBomRowId() > 0).collect(Collectors.toList()); - for (BomNewEbomParentVO vo : subVosParent) { - if (compareVirtualPackage(vo)) { - break; + List firstLevelBoms = allBomDetail.stream().filter(u -> u.getParentRowId().equals(parentVO.getBomRowId())).collect(Collectors.toList()); + for (BomNewEbomParentVO firstLevelBom : firstLevelBoms) { + + if(firstLevelBom.getBomRowId()>0) { + if(firstLevelBom.getVirtualPartType()<=0 && compareVirtualPackage(firstLevelBom)){ + break; + } + changeImpactDo(firstLevelBom); } + } + } private Boolean compareVirtualPackage(BomNewEbomParentVO vo) { @@ -476,6 +478,7 @@ public abstract class EBomToPbomBase { changeEntity.setRelMaterialDesc(vo.getMaterialDesc()); changeEntity.setStatus(0); changeEntity.setUpdatedTime(LocalDateTime.now()); + changeEntity.setFacCode(v.getFacCode()); changeEntity.setVirtualMaterialParentMaterialNo(v.getVirtualMaterialParentMaterialNo()); upgradeChangeResult.add(changeEntity); diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomUpgradeChangeMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomUpgradeChangeMapper.xml index 24137632..697996ce 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomUpgradeChangeMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomUpgradeChangeMapper.xml @@ -17,12 +17,13 @@ + row_id, material_no, version_old, version_new, material_name, drawing_no, devise_name, dept_name, - rel_material_no, rel_material_desc, status, updated_time,virtual_material_parent_material_no + rel_material_no, rel_material_desc, status, updated_time,virtual_material_parent_material_no,fac_code diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomVirtualPackageCompositionMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomVirtualPackageCompositionMapper.xml index d809a62e..a37f2d94 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomVirtualPackageCompositionMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomVirtualPackageCompositionMapper.xml @@ -19,12 +19,13 @@ + row_id, virtual_package_material_no, parent_material_no, child_material_no, parent_full_path_num, - unit_weight, total_weight, num, updated_time,devise_name,dept_name, from_lifting_layer_state, current_version,virtual_material_parent_material_no + unit_weight, total_weight, num, updated_time,devise_name,dept_name, from_lifting_layer_state, current_version,virtual_material_parent_material_no,fac_code