From aea94aa852584ae9dc20a22a33395eb74d674934 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Thu, 6 Jun 2024 09:46:10 +0800 Subject: [PATCH] =?UTF-8?q?feat(pbom):=20=E9=87=8D=E5=86=99=E5=A4=8D?= =?UTF-8?q?=E5=88=B6=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/BomNewPbomParentService.java | 35 ++++++++++++++----- 1 file changed, 26 insertions(+), 9 deletions(-) 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; }