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 41fc72ad..567dde20 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 @@ -193,17 +193,17 @@ public class EbomApi extends BaseApi { return ResultVO.success(true); } - @PostMapping("createBom") - @ApiOperation("创建BOM") - public ResultVO createBom(@RequestBody BomNewEBomCreateDTO createDTO) { - VUtils.isTure(StrUtil.isBlank(createDTO.getMaterialNo())).throwMessage("物料编码不能为空"); - //子级物料编码不能为空 - VUtils.isTure(CollUtil.isEmpty(createDTO.getDatas())).throwMessage("子级不能为空"); - List noMaterialList = createDTO.getDatas().stream().filter(u -> StrUtil.isBlank(u.getMaterialNo())).collect(Collectors.toList()); - VUtils.isTure(CollUtil.isNotEmpty(noMaterialList)).throwMessage("子级存在物料编码为空的数据"); - bomNewEbomParentService.createBom(createDTO); - return ResultVO.success(true); - } +// @PostMapping("createBom") +// @ApiOperation("创建BOM") +// public ResultVO createBom(@RequestBody BomNewEBomCreateDTO createDTO) { +// VUtils.isTure(StrUtil.isBlank(createDTO.getMaterialNo())).throwMessage("物料编码不能为空"); +// //子级物料编码不能为空 +// VUtils.isTure(CollUtil.isEmpty(createDTO.getDatas())).throwMessage("子级不能为空"); +// List noMaterialList = createDTO.getDatas().stream().filter(u -> StrUtil.isBlank(u.getMaterialNo())).collect(Collectors.toList()); +// VUtils.isTure(CollUtil.isNotEmpty(noMaterialList)).throwMessage("子级存在物料编码为空的数据"); +// bomNewEbomParentService.createBom(createDTO); +// return ResultVO.success(true); +// } @PostMapping("revertDesign") diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewOriginalParentMapper.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewOriginalParentMapper.java index 8d0f215b..fbc6476d 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewOriginalParentMapper.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewOriginalParentMapper.java @@ -30,6 +30,11 @@ public interface BomNewOriginalParentMapper extends BaseMapper rowIds); + void updateRevertBom(@Param("status") Integer status ,@Param("editStatus") Integer editStatus ,@Param("rowIds") List rowIds); + + + + /** * 更新是否根节点状态 */ 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 8b1d09db..4c6c0fce 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 @@ -906,24 +906,57 @@ public class BomNewEbomParentService extends ServiceImpl bomTree = getBomTree(bomRowId); List delBom = null; - if (userRoleService.designer()) { + + //设计 工艺,删录入 excel导入 delBom = bomTree.stream().filter(u -> u.getBomRowId() > 0 - && u.getSource().equals(EBomSourceEnum.FROM_MDM.getValue()) - && EBomStatusEnum.PUBLISHED.equalsValue(u.getStatus())) + && (u.getSource().equals(EBomSourceEnum.FROM_MDM.getValue()) + || EBomStatusEnum.PUBLISHED.equalsValue(u.getStatus()))) .collect(Collectors.toList()); + + + + + //借用件不能删除,原始bom转换只能自己 + List obomList=null; + if (userRoleService.designer()) { + obomList=bomTree.stream().filter(u -> u.getBomRowId() > 0 + && (u.getSource().equals(EBomSourceEnum.FROM_BOM.getValue()) + &&u.getCreatedBy().equals(SessionUtil.getUserCode()) + )) + .collect(Collectors.toList()); + + if(CollectionUtil.isNotEmpty(obomList)){ + delBom.addAll(obomList); + } } if (CollUtil.isNotEmpty(delBom)) { @@ -939,6 +972,12 @@ public class BomNewEbomParentService extends ServiceImpl rowIds=obomList.stream().map(BomNewEbomParentVO::getSourceRowId).collect(Collectors.toList()); + SpringUtil.getBean(BomNewOriginalParentService.class).revertBom(rowIds); + } + return true; } @@ -962,13 +1001,10 @@ public class BomNewEbomParentService extends ServiceImpl rowIdList = dto.getDelDatas().stream().filter(u -> u.getRowId().longValue() > 0).map(BomNewEbomParentVO::getRowId).collect(Collectors.toList()); - ebomChildService.removeByIds(rowIdList); - - } + if (dto.getParent() != null) { + deleteBomChild(dto.getDelDatas()); } + } return true; @@ -1017,19 +1053,46 @@ public class BomNewEbomParentService extends ServiceImpl rowIdList = dto.getDelDatas().stream().filter(u -> u.getRowId().longValue() > 0).map(BomNewEbomParentVO::getRowId).collect(Collectors.toList()); - ebomChildService.removeByIds(rowIdList); - - } - } + deleteBomChild(dto.getDelDatas()); } return true; } + + /** + * 1. 编辑页面的删除只是删除BOM的关联关系; + * 2. 删除规则: + * 1. 从原始Bom导入的数据,数据没有异常的情况下,用户不可以删除 + * 2. 用户可以直接删除,用户单击暂存或是提交时才会保存至数据库。 + */ + private void deleteBomChild(List delList){ + + List delTagList=new ArrayList<>(); + //原始bom不正常 + List s1List= delList.stream().filter(u->Objects.equals(EBomSourceEnum.FROM_BOM.getValue(),u.getSource()) + &&!Objects.equals(u.getExceptionStatus(),EBomExceptionStatusEnum.OK.getValue())).collect(Collectors.toList()); + if(CollectionUtil.isNotEmpty(s1List)){ + delTagList.addAll(s1List); + } + + //手动创建 + List s2List= delList.stream().filter(u->Objects.equals(EBomSourceEnum.FROM_EXCE.getValue(),u.getSource() ) + || Objects.equals(EBomSourceEnum.FROM_MDM.getValue(),u.getSource())).collect(Collectors.toList()); + + if(CollectionUtil.isNotEmpty(s2List)){ + delTagList.addAll(s2List); + } + + if(CollectionUtil.isNotEmpty(delTagList)){ + List rowIdList = delTagList.stream().filter(u -> u.getRowId()!=null || u.getRowId().longValue() > 0).map(BomNewEbomParentVO::getRowId).collect(Collectors.toList()); + ebomChildService.removeByIds(rowIdList); + } + + + } + + + } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewOriginalParentService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewOriginalParentService.java index 913746f1..91f8551d 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewOriginalParentService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewOriginalParentService.java @@ -1,6 +1,7 @@ package com.nflg.product.bomnew.service; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; @@ -204,6 +205,23 @@ public class BomNewOriginalParentService extends ServiceImpl sourceIds){ + + if(CollectionUtil.isEmpty(sourceIds)){ + return; + } + + this.getBaseMapper().updateRevertBom(OriginalStatusEnum.UN_CONVERT.getValue(), + OriginalEditStatusEnum.HANDLER_CREATED.getValue(), + sourceIds); + + } + + /** * 获取整颗BOM树 * diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewOriginalParentMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewOriginalParentMapper.xml index 30934a7f..21a7212f 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewOriginalParentMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewOriginalParentMapper.xml @@ -110,6 +110,26 @@ ; + + + update t_bom_new_original_parent set status = #{status},edit_status=#{editStatus} where + row_id in + + #{rowId} + ; + + update t_bom_new_original_child set status = #{status},edit_status=#{editStatus} where + parent_row_id in + + #{rowId} + ; + + + + + + + update t_bom_new_original_parent set status = #{status},convert_to_ebom_time=now() where row_id in