From 64b4adcb9f67a341637ce08f2e76125f3c4e7d37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Tue, 28 May 2024 10:37:39 +0800 Subject: [PATCH] =?UTF-8?q?feat(ebom):=20=E5=88=A0=E9=99=A4bom=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E9=87=8D=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nflg/product/bomnew/api/user/EbomApi.java | 2 +- .../service/BomNewEbomParentService.java | 42 +++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomApi.java index 6a949986..5816507b 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomApi.java @@ -349,7 +349,7 @@ public class EbomApi extends BaseApi { @ApiOperation("删除物料") @LogRecord(success = "Ebom-删除物料,物料编码:{{#bom.materialNo}}-版本:{{#bom.currentVersion}},操作结果:{{#_ret}}", bizNo = "{{#bomRowId}}", type = "Ebom-删除物料") public ResultVO deleteBom(@RequestParam("bomRowId") Long bomRowId) throws ExecutionException, InterruptedException { - return ResultVO.success(bomNewEbomParentService.deleteBom(bomRowId)); + return ResultVO.success(bomNewEbomParentService.deleteBomV2(bomRowId)); } 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 d1a1af4f..7bfefd26 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 @@ -2396,6 +2396,7 @@ public class BomNewEbomParentService extends ServiceImpl StrUtil.equals(f.getMaterialNo(), vo.getMaterialNo()) || StrUtil.equals(f.getDrawingNo(), vo.getDrawingNo())) .findFirst() @@ -2530,4 +2531,45 @@ public class BomNewEbomParentService extends ServiceImpl materialNos = ebomChildService.lambdaQuery() + .select(BomNewEbomChildEntity::getMaterialNo) + .eq(BomNewEbomChildEntity::getParentRowId, bomRowId) + .list() + .stream() + .map(BomNewEbomChildEntity::getMaterialNo) + .collect(Collectors.toSet()); + + List parents = lambdaQuery() + .select(BomNewEbomParentEntity::getRowId, BomNewEbomParentEntity::getCreatedBy + , BomNewEbomParentEntity::getSource, BomNewEbomParentEntity::getVirtualPackageIs) + .lt(BomNewEbomParentEntity::getStatus, EBomStatusEnum.PUBLISHED.getValue()) + .in(BomNewEbomParentEntity::getMaterialNo, materialNos) + .list(); + List deleteParents = parents.stream() + .filter(p -> (StrUtil.equals(p.getCreatedBy(), SessionUtil.getUserCode()) + && (Objects.equals(p.getSource(), EBomSourceEnum.FROM_BOM.getValue()) || Objects.equals(p.getSource(), EBomSourceEnum.FROM_EXCE.getValue()))) + || Objects.equals(p.getVirtualPackageIs(), 1)) + .map(BomNewEbomParentEntity::getRowId) + .collect(Collectors.toList()); + + ebomChildService.getBaseMapper().delete(Wrappers.lambdaQuery(BomNewEbomChildEntity.class) + .eq(BomNewEbomChildEntity::getParentRowId, bomRowId)); + this.getBaseMapper().delete(Wrappers.lambdaQuery(BomNewEbomParentEntity.class) + .eq(BomNewEbomParentEntity::getRowId, bomRowId)); + + deleteParents.forEach(this::delete); + } }