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 98a70cec..fc9c3156 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 @@ -947,6 +947,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..e324b207 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 @@ -1,38 +1,22 @@ package com.nflg.product.bomnew.service; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; -import cn.hutool.core.lang.Pair; -import com.baomidou.mybatisplus.core.toolkit.IdWorker; -import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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; -import com.nflg.product.bomnew.pojo.entity.*; +import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentEntity; +import com.nflg.product.bomnew.pojo.entity.BomNewEbomUpgradeChangeEntity; import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO; -import com.nflg.product.bomnew.pojo.vo.BomNewPbomParentVO; -import com.nflg.product.bomnew.service.domain.EBom.*; -import com.nflg.product.bomnew.util.EnumUtils; -import com.nflg.product.bomnew.util.ListCommonUtil; -import com.nflg.product.bomnew.util.VUtils; -import com.nflg.product.bomnew.util.VersionUtil; -import nonapi.io.github.classgraph.json.Id; +import com.nflg.product.bomnew.service.domain.EBom.ChangeImpactUpgrade; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.List; -import java.util.Map; import java.util.Objects; -import java.util.Set; import java.util.concurrent.ExecutionException; import java.util.stream.Collectors; @@ -48,9 +32,6 @@ import java.util.stream.Collectors; public class BomNewEbomUpgradeChangeService extends ServiceImpl { - - - @Resource BomNewPbomParentService pbomParentService; @@ -61,12 +42,10 @@ public class BomNewEbomUpgradeChangeService extends ServiceImpl rowIds){ + public void delChangeImpact(List rowIds) { this.getBaseMapper().deleteBatchIds(rowIds); } @@ -77,51 +56,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 06cac4eb..19c2ce8e 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<>(); @@ -488,7 +492,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); + } }