diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/ReverseReportVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/ReverseReportVO.java index 9db39f46..7a4128d7 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/ReverseReportVO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/ReverseReportVO.java @@ -64,7 +64,7 @@ public class ReverseReportVO { private String childDrawingNo; @ApiModelProperty("层级") - private String levelNum; + private Integer levelNum; @ApiModelProperty("物料类别") private String categoryName; @@ -85,5 +85,6 @@ public class ReverseReportVO { return Objects.isNull(expireEndTime)? LocalDateTime.parse("9999-12-31 23:59:59", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")):expireEndTime; } - + @ApiModelProperty("bom颜色区分") + private String bomVersion; } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/ReverseReport/EBomQueryService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/ReverseReport/EBomQueryService.java index dbc8ca36..9f2e0398 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/ReverseReport/EBomQueryService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/ReverseReport/EBomQueryService.java @@ -81,7 +81,7 @@ public class EBomQueryService { if (CollUtil.isNotEmpty(vos)) { List materialVOS = materialMainService.getMaterialBaseInfo(vos.stream().map(ReverseReportVO::getMaterialNo).collect(Collectors.toList())); vos.forEach(it -> { - it.setLevelNum("1"); + it.setLevelNum(1); BaseMaterialVO materialVO = materialVOS.stream() .filter(f -> StrUtil.equals(f.getMaterialNo(), it.getMaterialNo())) .findFirst() @@ -113,7 +113,7 @@ public class EBomQueryService { if (Objects.nonNull(parent)) { List pVOs = getReverseBoms(parent.getRowId()); pVOs.forEach(p -> { - vos.add(createVO(p, 1)); + // vos.add(createVO(p, 1)); bindData(p, 1, vos); }); } else { @@ -132,7 +132,7 @@ public class EBomQueryService { p.setCurrentVersion(OriginalConstant.NO_BOM_VERSION); } } - vos.add(createVO(p, 1)); + // vos.add(createVO(p, 1)); bindData(p, 1, vos); }); } @@ -155,14 +155,18 @@ public class EBomQueryService { return vos; } - private void bindData(BomNewPbomParentVO pVO, Integer level, List vos) { + private void bindData(BomNewPbomParentVO pVO, final Integer level, List vos) { if (Objects.nonNull(pVO.getParentRowId())) { List parents = getReverseBoms(pVO.getParentRowId()); - level++; - Integer finalLevel = level; for (BomNewPbomParentVO it : parents) { - vos.add(createVO(it, finalLevel)); - bindData(it, finalLevel, vos); + if (vos.stream().noneMatch(v -> StrUtil.equals(v.getMaterialNo(), it.getMaterialNo()) + && Objects.equals(v.getLevelNum(), level) + && Objects.equals(v.getNum(), it.getNum()) + && StrUtil.equals(v.getMaterialUnit(), it.getMaterialUnit()) + && StrUtil.equals(v.getCreatedBy(), it.getCreatedBy()))) { + vos.add(createVO(it, level, vos.isEmpty() ? null : vos.get(vos.size() - 1))); + } + bindData(it, level + 1, vos); } } } @@ -171,9 +175,14 @@ public class EBomQueryService { return ebomParentService.getReverseBoms(parentRowId); } - private ReverseReportVO createVO(BomNewPbomParentVO parentVO, Integer level) { + private ReverseReportVO createVO(BomNewPbomParentVO parentVO, Integer level, ReverseReportVO lastVO) { ReverseReportVO vo = Convert.convert(ReverseReportVO.class, parentVO); - vo.setLevelNum(String.valueOf(level)); + vo.setLevelNum(level); + if (Objects.isNull(lastVO)) { + vo.setBomVersion("1"); + } else { + vo.setBomVersion(level >= lastVO.getLevelNum() ? lastVO.getBomVersion() : String.valueOf(Integer.parseInt(lastVO.getBomVersion()) + 1)); + } return vo; } } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/ReverseReport/PBomQueryService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/ReverseReport/PBomQueryService.java index 09e80574..524bc659 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/ReverseReport/PBomQueryService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/ReverseReport/PBomQueryService.java @@ -80,7 +80,7 @@ public class PBomQueryService { if (CollUtil.isNotEmpty(vos)) { List materialVOS = materialMainService.getMaterialBaseInfo(vos.stream().map(ReverseReportVO::getMaterialNo).collect(Collectors.toList())); vos.forEach(it -> { - it.setLevelNum("1"); + it.setLevelNum(1); BaseMaterialVO materialVO = materialVOS.stream() .filter(f -> StrUtil.equals(f.getMaterialNo(), it.getMaterialNo())) .findFirst() @@ -107,7 +107,7 @@ public class PBomQueryService { if (Objects.nonNull(parent)) { List pVOs = getReverseBoms(parent.getRowId()); pVOs.forEach(p -> { - vos.add(createVO(p, 1)); + // vos.add(createVO(p, 1)); bindData(p, 1, vos); }); } else { @@ -126,7 +126,7 @@ public class PBomQueryService { p.setCurrentVersion(OriginalConstant.NO_BOM_VERSION); } } - vos.add(createVO(p, 1)); + // vos.add(createVO(p, 1)); bindData(p, 1, vos); }); } @@ -149,14 +149,18 @@ public class PBomQueryService { return vos; } - private void bindData(BomNewPbomParentVO pVO, Integer level, List vos) { + private void bindData(BomNewPbomParentVO pVO, final Integer level, List vos) { if (Objects.nonNull(pVO.getParentRowId())) { List parents = getReverseBoms(pVO.getParentRowId()); - level++; - Integer finalLevel = level; for (BomNewPbomParentVO it : parents) { - vos.add(createVO(it, finalLevel)); - bindData(it, finalLevel, vos); + if (vos.stream().noneMatch(v -> StrUtil.equals(v.getMaterialNo(), it.getMaterialNo()) + && Objects.equals(v.getLevelNum(), level) + && Objects.equals(v.getNum(), it.getNum()) + && StrUtil.equals(v.getMaterialUnit(), it.getMaterialUnit()) + && StrUtil.equals(v.getCreatedBy(), it.getCreatedBy()))) { + vos.add(createVO(it, level, vos.isEmpty() ? null : vos.get(vos.size() - 1))); + } + bindData(it, level + 1, vos); } } } @@ -165,9 +169,14 @@ public class PBomQueryService { return pbomParentService.getReverseBoms(parentRowId); } - private ReverseReportVO createVO(BomNewPbomParentVO parentVO, Integer level) { + private ReverseReportVO createVO(BomNewPbomParentVO parentVO, Integer level, ReverseReportVO lastVO) { ReverseReportVO vo = Convert.convert(ReverseReportVO.class, parentVO); - vo.setLevelNum(String.valueOf(level)); + vo.setLevelNum(level); + if (Objects.isNull(lastVO)) { + vo.setBomVersion("1"); + } else { + vo.setBomVersion(level >= lastVO.getLevelNum() ? lastVO.getBomVersion() : String.valueOf(Integer.parseInt(lastVO.getBomVersion()) + 1)); + } return vo; } } diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml index 76d47dc8..a6df823c 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml @@ -561,11 +561,12 @@ ; diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentMapper.xml index 6bd0ca80..b1cdd216 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentMapper.xml @@ -296,12 +296,13 @@ WHERE p.created_by = #{userCode}