From 78b4b9ac386e3c6517aaff2ddb1712c3c44e706b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Fri, 28 Jun 2024 11:20:43 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E6=9B=BF=E6=8D=A2=E8=8D=89=E7=A8=BF?= =?UTF-8?q?=E6=80=81=E7=9A=84=E8=99=9A=E6=8B=9F=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/BomNewEbomParentService.java | 7 ++ .../BomNewEbomUpgradeChangeService.java | 78 ++++++++----------- .../domain/EBom/ChangeImpactUpgrade.java | 2 +- .../service/domain/EBom/EBomToPbomBase.java | 15 +++- 4 files changed, 56 insertions(+), 46 deletions(-) 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 1bd19be1..6f252740 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 @@ -949,6 +949,13 @@ public class BomNewEbomParentService extends ServiceImpl!u.getHasChangeState().equals(1) && !EBomStatusEnum.PUBLISHED.equalsValue(u.getStatus()) && u.getBomRowId() > 0).collect(Collectors.toList()) ); } + //替换需覆盖的受影响的虚拟包 + if(CollUtil.isNotEmpty(eBomToPBom.getUpgradeChangeResultForCover())){ + for (BomNewEbomUpgradeChangeEntity upgradeChangeResultForCoverEnt : eBomToPBom.getUpgradeChangeResultForCover()) { + upgradeChangeService.updateChangeImpactDo(upgradeChangeResultForCoverEnt); + } + } + //子级记录-bom版本 List bomChildren = new ArrayList<>(); bomTree.forEach(k -> { 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 e7145bc4..24685fb6 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 @@ -48,9 +48,6 @@ import java.util.stream.Collectors; public class BomNewEbomUpgradeChangeService extends ServiceImpl { - - - @Resource BomNewPbomParentService pbomParentService; @@ -61,12 +58,10 @@ public class BomNewEbomUpgradeChangeService extends ServiceImpl rowIds){ + public void delChangeImpact(List rowIds) { this.getBaseMapper().deleteBatchIds(rowIds); } @@ -77,51 +72,46 @@ public class BomNewEbomUpgradeChangeService extends ServiceImpl rowIds) throws ExecutionException, InterruptedException { List upList = this.getBaseMapper().selectBatchIds(rowIds); // - for ( BomNewEbomUpgradeChangeEntity ent:upList) { + for (BomNewEbomUpgradeChangeEntity ent : upList) { - BomNewEbomParentEntity ebom = ebomParentService.lambdaQuery().eq(BomNewEbomParentEntity::getMaterialNo, ent.getVirtualMaterialParentMaterialNo()) - .eq(BomNewEbomParentEntity::getStatus, EBomStatusEnum.PUBLISHED.getValue()).last(" order by current_version desc limit 1").one(); - if(Objects.nonNull(ebom)){ + updateChangeImpactDo(ent); + ent.setStatus(1); + ent.setUpdatedTime(LocalDateTime.now()); + this.updateById(ent); - List bomTree =ebomParentService.getFormalBomTree(ebom.getRowId()); - BomNewEbomParentVO parentBom = Convert.convert(BomNewEbomParentVO.class, ebom); - parentBom.setBomRowId(ebom.getRowId()); - parentBom.setChildBomRowId(ebom.getRowId()); - parentBom.setParentRowId(0L); - bomTree.add(parentBom); - ChangeImpactUpgrade updateImpact=new ChangeImpactUpgrade(parentBom, bomTree, ImmutableList.of(ent.getFacCode()),ent.getMaterialNo()); - updateImpact.convert(); + } - if(CollUtil.isNotEmpty(updateImpact.getPBomParentResult())){ - pbomParentService.saveOrUpdateBatch(updateImpact.getPBomParentResult()); - } - if(CollUtil.isNotEmpty(updateImpact.getPBomChildResult())){ - pbomChildService.saveOrUpdateBatch(updateImpact.getPBomChildResult()); - } - //旧版PBOM移动到历史表中 - if(CollUtil.isNotEmpty(updateImpact.getOldPBomList())){ - List oldPBomRowIds = updateImpact.getOldPBomList().stream().map(u -> u.getRowId()).collect(Collectors.toList()); - pbomParentService.getBaseMapper().insertPBomParentToFormal(oldPBomRowIds); - pbomParentService.getBaseMapper().insertPBomChildToFormal(oldPBomRowIds); - pbomParentService.getBaseMapper().delPBom(oldPBomRowIds); - } - ent.setStatus(1); - ent.setUpdatedTime(LocalDateTime.now()); - this.updateById(ent); - - } - }; } + public void updateChangeImpactDo(BomNewEbomUpgradeChangeEntity ent) throws ExecutionException, InterruptedException { + BomNewEbomParentEntity ebom = ebomParentService.lambdaQuery().eq(BomNewEbomParentEntity::getMaterialNo, ent.getVirtualMaterialParentMaterialNo()) + .eq(BomNewEbomParentEntity::getStatus, EBomStatusEnum.PUBLISHED.getValue()).last(" order by current_version desc limit 1").one(); + if (Objects.nonNull(ebom)) { + List bomTree = ebomParentService.getFormalBomTree(ebom.getRowId()); + BomNewEbomParentVO parentBom = Convert.convert(BomNewEbomParentVO.class, ebom); + parentBom.setBomRowId(ebom.getRowId()); + parentBom.setChildBomRowId(ebom.getRowId()); + parentBom.setParentRowId(0L); + bomTree.add(parentBom); + ChangeImpactUpgrade updateImpact = new ChangeImpactUpgrade(parentBom, bomTree, ImmutableList.of(ent.getFacCode()), ent.getMaterialNo()); + updateImpact.convert(); - - - - - - - + if (CollUtil.isNotEmpty(updateImpact.getPBomParentResult())) { + pbomParentService.saveOrUpdateBatch(updateImpact.getPBomParentResult()); + } + if (CollUtil.isNotEmpty(updateImpact.getPBomChildResult())) { + pbomChildService.saveOrUpdateBatch(updateImpact.getPBomChildResult()); + } + //旧版PBOM移动到历史表中 + if (CollUtil.isNotEmpty(updateImpact.getOldPBomList())) { + List oldPBomRowIds = updateImpact.getOldPBomList().stream().map(u -> u.getRowId()).collect(Collectors.toList()); + pbomParentService.getBaseMapper().insertPBomParentToFormal(oldPBomRowIds); + pbomParentService.getBaseMapper().insertPBomChildToFormal(oldPBomRowIds); + pbomParentService.getBaseMapper().delPBom(oldPBomRowIds); + } + } + } } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/ChangeImpactUpgrade.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/ChangeImpactUpgrade.java index 41e04fb6..fd2f8286 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/ChangeImpactUpgrade.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/ChangeImpactUpgrade.java @@ -127,7 +127,7 @@ public class ChangeImpactUpgrade extends EBomToPbomBase { //pbom 处于工作表 else if (Objects.nonNull(oldParent) && oldParent.getStatus() < EBomStatusEnum.PUBLISHED.getValue()) { SpringUtil.getBean(BomNewPbomChildService.class).getBaseMapper().deleteByMap(ImmutableMap.of("parent_row_id", oldParent.getRowId())); - oldParent.setCurrentVersion(parentVo.getCurrentVersion()); +// oldParent.setCurrentVersion(parentVo.getCurrentVersion()); oldParent.setSourceRowId(parentVo.getRowId()); oldParent.setCreatedTime(LocalDateTime.now()); this.pBomParentResult.add(oldParent); 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 26b1b074..37f90847 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 @@ -61,6 +61,10 @@ public abstract class EBomToPbomBase { @Getter protected List upgradeChangeResult = new ArrayList<>(); + //需覆盖的虚拟包 + @Getter + protected List upgradeChangeResultForCover=new ArrayList<>(); + @Getter // protected List upgradeChangeDetailResult = new ArrayList<>(); @@ -485,7 +489,16 @@ public abstract class EBomToPbomBase { changeEntity.setUpdatedTime(LocalDateTime.now()); changeEntity.setFacCode(v.getFacCode()); changeEntity.setVirtualMaterialParentMaterialNo(v.getVirtualMaterialParentMaterialNo()); - upgradeChangeResult.add(changeEntity); + //虚拟包最新版PBom + BomNewPbomParentEntity lastVirtrualPbomEnt = SpringUtil.getBean(BomNewPbomParentService.class).lambdaQuery() + .eq(BomNewPbomParentEntity::getMaterialNo, v.getVirtualPackageMaterialNo()) + .eq(BomNewPbomParentEntity::getFacCode,v.getFacCode()) + .last("order by current_version desc limit 1").one(); + if(Objects.nonNull(lastVirtrualPbomEnt) && PBomStatusEnum.PUBLISH.getValue()>lastVirtrualPbomEnt.getStatus()){ + upgradeChangeResultForCover.add(changeEntity); + }else { + upgradeChangeResult.add(changeEntity); + } }