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 4dc35dea..47b71bdf 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 @@ -615,8 +615,9 @@ public class EbomApi extends BaseApi { @GetMapping("bomDelete") @ApiOperation("BOM删除") @LogRecord(success = "Ebom-BOM删除,操作结果:{{#_ret}}", bizNo = "{{#bomRowId}}", type = "Ebom-BOM删除") - public ResultVO bomDelete(@RequestParam("bomRowId") Long bomRowId) { - return ResultVO.success(bomNewEbomParentService.bomDelete(bomRowId)); + public ResultVO bomDelete(@RequestParam("bomRowId") Long bomRowId, + @RequestParam("childBomRowId") Long childBomRowId) { + return ResultVO.success(bomNewEbomParentService.bomDelete(bomRowId,childBomRowId)); } @GetMapping("changeBomDelete") diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java index 52e2f7c3..3f428c88 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java @@ -365,8 +365,9 @@ public class PBomApi extends BaseApi { @GetMapping("bomDelete") @ApiOperation("BOM删除") @LogRecord(success = "PBom删除,操作结果:{{#_ret}}", bizNo = "{{#bomRowId}}",type = "BOM删除") - public ResultVO bomDelete(@RequestParam("bomRowId") Long bomRowId) { - bomNewPbomParentService.bomDelete(bomRowId); + public ResultVO bomDelete(@RequestParam("bomRowId") Long bomRowId, + @RequestParam("childBomRowId") Long childBomRowId) { + bomNewPbomParentService.bomDelete(bomRowId,childBomRowId); return ResultVO.success(true); } 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 bc29abe1..fd6e6127 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 @@ -1488,10 +1488,11 @@ public class BomNewEbomParentService extends ServiceImpl existMaterialNos = existEnt.stream().map(u -> u.getMaterialNo()).collect(Collectors.toSet()); VUtils.isTure(CollUtil.isNotEmpty(existMaterialNos)).throwMessage(StrUtil.join(",", existMaterialNos, "存在发布前版本。")); + //如果bom 有且只有一条 [BOM已删除] 标记行时,提示已删除,无须重复删除 + List ebomChildEntityList = ebomChildService.list(Wrappers.lambdaQuery().eq(BomNewEbomChildEntity::getParentRowId,bomRowId)); + List kChildEntityList = ebomChildEntityList.stream().filter(c -> Objects.equals("K",c.getProjectType())).collect(Collectors.toList()); + VUtils.isTure(ebomChildEntityList.size() == 1 && kChildEntityList.size() == 1).throwMessage(StrUtil.join(",", bomRowId, "BOM已删除,无须重复删除~")); + List parentResult = new ArrayList<>(); - //1、生成一个新版本号的空BOM + //1、生成一个新版本号的空BOM,直接变更为正式版 LogRecordContext.putVariable("bom", parent); BomNewEbomParentEntity newParent = new BomNewEbomParentEntity(); BeanUtil.copyProperties(parent, newParent); @@ -1508,8 +1514,8 @@ public class BomNewEbomParentService extends ServiceImpl childEntityList = Lists.newArrayList(); + BomNewEbomChildEntity oldBomChild = ebomChildService.getById(childBomRowId); + BomNewEbomChildEntity newBomChild = new BomNewEbomChildEntity(); + BeanUtil.copyProperties(oldBomChild, newBomChild); + newBomChild.setRowId(IdWorker.getId()); + newBomChild.setIdentityNo(newBomChild.getParentRowId() + "_" + newBomChild.getRowId()); + newBomChild.setBomVersionRowId(newParent.getRowId()); + newBomChild.setSource(EBomSourceEnum.FROM_DELETE.getValue()); + childEntityList.add(newBomChild); + //2、子表增加一行项目类别为K,标识删除 BomNewEbomChildEntity newChild = new BomNewEbomChildEntity(); newChild.setRowId(IdWorker.getId()); newChild.setParentRowId(newParent.getRowId()); newChild.setIdentityNo(newParent.getRowId() + "_" + newChild.getRowId()); newChild.setOrderNumber("001"); + newChild.setMaterialDesc("[BOM已删除]"); newChild.setProjectType(ProjectTypeInputTypeEnum.ProjectTypeEnum.TYPE_K.getValue()); newChild.setProjectTypeInputType(0); newChild.setCreatedBy(SessionUtil.getUserCode()); @@ -1551,6 +1569,7 @@ public class BomNewEbomParentService extends ServiceImpl addRowIds = com.google.common.collect.Lists.newArrayList(newParent.getRowId()); + List delRowIds = com.google.common.collect.Lists.newArrayList(bomRowId); + eBomToFormal(addRowIds, delRowIds); return true; } 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 b4ec5c1b..88d380ef 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 @@ -1444,7 +1444,7 @@ public class BomNewPbomParentService extends ServiceImpl childEntityList = pbomChildService.list(Wrappers.lambdaQuery().eq(BomNewPbomChildEntity::getParentRowId,bomRowId)); + List kEntityList = childEntityList.stream().filter(c -> Objects.equals("K",c.getProjectType())).collect(Collectors.toList()); + VUtils.isTure(childEntityList.size() == 1 && kEntityList.size() == 1).throwMessage("BOM已删除,无须重复删除~"); + BomNewPbomParentVO rootVo = Convert.convert(BomNewPbomParentVO.class, parent); rootVo.setBomRowId(rootVo.getRowId()); - //1、parent增加一行大版本号记录 + //1、parent增加一行大版本号记录 直接变更为正式版 BomNewPbomParentEntity pbomParent = new BomNewPbomParentEntity(); List parentList = Lists.newArrayList(); BeanUtil.copyProperties(rootVo, pbomParent); pbomParent.setRowId(IdWorker.getId()); pbomParent.setCreatedTime(LocalDateTime.now()); pbomParent.setCreatedBy(SessionUtil.getUserCode()); - pbomParent.setStatus(PBomStatusEnum.WAIT_PUBLISH.getValue()); - pbomParent.setEditStatus(PBomEditStatusEnum.HANDLER_CREATED.getValue()); + pbomParent.setStatus(PBomStatusEnum.FACTORY_CONFIRM.getValue()); + pbomParent.setEditStatus(PBomEditStatusEnum.HANDLER_FINISHED.getValue()); //获取大版本号 pbomParent.setCurrentVersion(VersionUtil.getNextVersion(rootVo.getCurrentVersion())); pbomParent.setDeptRowId(SessionUtil.getDepartRowId()); @@ -1495,6 +1500,17 @@ public class BomNewPbomParentService extends ServiceImpl newChildEntityList = Lists.newArrayList(); + BomNewPbomChildEntity oldBomChild = pbomChildService.getById(childBomRowId); + BomNewPbomChildEntity newBomChild = new BomNewPbomChildEntity(); + BeanUtil.copyProperties(oldBomChild, newBomChild); + newBomChild.setRowId(IdWorker.getId()); + newBomChild.setBomVersionRowId(pbomParent.getRowId()); + newBomChild.setSource(PbomSourceEnum.FROM_DELETE.getValue()); + newChildEntityList.add(newBomChild); + + //2、子表新增一行项目类别为K的标识行 BomNewPbomChildEntity child = new BomNewPbomChildEntity(); child.setRowId(IdWorker.getId()); @@ -1502,6 +1518,7 @@ public class BomNewPbomParentService extends ServiceImpl exceptRowIds = Lists.newArrayList(pbomParent.getRowId()); + List parentMaterialNos =Lists.newArrayList(pbomParent.getMaterialNo()); + //历史版本转移到formal正式工作表 + pBomToFormal(exceptRowIds, parentMaterialNos, parent.getFacCode()); } private void resetBomExist(Long rowId) {