From 16c877882c753134dd2f0ce20f4e1161092e8bce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Sat, 3 Aug 2024 10:58:41 +0800 Subject: [PATCH] =?UTF-8?q?optimize:=20=E5=8F=8D=E6=9F=A5=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E5=8F=82=E6=95=B0=E6=B7=BB=E5=8A=A0bomVersion?= =?UTF-8?q?=EF=BC=8C=E7=94=A8=E4=BA=8E=E5=8C=BA=E5=88=86=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E4=B8=BA=E4=B8=80=E4=B8=AAbom?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bomnew/pojo/vo/ReverseReportVO.java | 5 ++-- .../ReverseReport/EBomQueryService.java | 29 ++++++++++++------- .../ReverseReport/PBomQueryService.java | 29 ++++++++++++------- .../mapper/master/BomNewEbomParentMapper.xml | 3 +- .../mapper/master/BomNewPbomParentMapper.xml | 3 +- 5 files changed, 45 insertions(+), 24 deletions(-) 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}