diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java index 1ba736d3..37094f26 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java @@ -1353,9 +1353,9 @@ public class BomNewPbomParentService extends ServiceImpl { - BomNewPbomParentEntity np = copyParent(p, targetFacCode); + BomNewPbomParentEntity np = copyParent(p, targetFacCode, dtoParent); if (Objects.nonNull(np)) { - dtoParent.addToAdd(np); + // dtoParent.addToAdd(np); List ccs = copyChildren(p.getRowId(), targetFacCode, np.getRowId()); np.setBomExist(CollUtil.isNotEmpty(ccs) ? 1 : 0); if (CollUtil.isNotEmpty(ccs)) { @@ -1367,13 +1367,30 @@ public class BomNewPbomParentService extends ServiceImpl dtoParent) { + BomNewPbomParentEntity p = dtoParent.getDataForAdd() + .stream() + .filter(f -> StrUtil.equals(f.getMaterialNo(), parent.getMaterialNo())) + .findFirst() + .orElse(null); + if (Objects.isNull(p)) { + p = lambdaQuery() + .eq(BomNewPbomParentEntity::getMaterialNo, parent.getMaterialNo()) + .eq(BomNewPbomParentEntity::getFacCode, targetFacCode) + .orderByDesc(BomNewPbomParentEntity::getCurrentVersion) + .last(" limit 1") + .one(); + if (Objects.isNull(p)) { + //不存在则添加 + p = buildPbomParent(parent, targetFacCode, parent.getCurrentVersion(), 0); + dtoParent.addToAdd(p); + return p; + } else if (p.getStatus() >= PBomStatusEnum.PUBLISH.getValue()) { + //如果是已发布状态,则创建一个升级大版本的 + p = buildPbomParent(parent, targetFacCode, VersionUtil.getNextVersion(p.getCurrentVersion()), 0); + dtoParent.addToAdd(p); + return p; + } } return null; }