From 00dea5a0f62f24c7d9cb2b2758281b4ab87d52da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Sun, 6 Oct 2024 22:51:08 +0800 Subject: [PATCH] =?UTF-8?q?feat(pbom):=20=E4=BF=AE=E5=A4=8D=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E8=8A=82=E7=82=B9=E5=BC=82=E5=B8=B8=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReverseReport/EBomQueryService.java | 25 ++++++++++++++----- .../ReverseReport/PBomQueryService.java | 25 ++++++++++++++----- .../mapper/master/BomNewEbomParentMapper.xml | 6 ++++- .../mapper/master/BomNewPbomParentMapper.xml | 6 ++++- 4 files changed, 48 insertions(+), 14 deletions(-) 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 5f7d2007..d385a037 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 @@ -164,7 +164,17 @@ public class EBomQueryService { && 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), pVO)); + ReverseReportVO levelVO = null; + if (level > 1) { + for (int i = vos.size() - 1; i >= 0; i--) { + ReverseReportVO vo = vos.get(i); + if (Objects.equals(level - 1, vo.getLevelNum())) { + levelVO = vo; + break; + } + } + } + vos.add(createVO(it, level, vos.isEmpty() ? null : vos.get(vos.size() - 1), pVO, levelVO)); } bindData(it, level + 1, vos); } @@ -175,17 +185,20 @@ public class EBomQueryService { return ebomParentService.getReverseBoms(parentRowId); } - private ReverseReportVO createVO(BomNewPbomParentVO parentVO, Integer level, ReverseReportVO lastVO, BomNewPbomParentVO pVO) { + private ReverseReportVO createVO(BomNewPbomParentVO parentVO, Integer level, ReverseReportVO lastVO, BomNewPbomParentVO pVO, ReverseReportVO levelVO) { ReverseReportVO vo = Convert.convert(ReverseReportVO.class, parentVO); vo.setLevelNum(level); if (Objects.isNull(lastVO)) { vo.setBomVersion("1"); - vo.setChildNum(pVO.getNum()); - vo.setChildMaterialUnit(pVO.getMaterialUnit()); } else { vo.setBomVersion(level >= lastVO.getLevelNum() ? lastVO.getBomVersion() : String.valueOf(Integer.parseInt(lastVO.getBomVersion()) + 1)); - vo.setChildNum(lastVO.getNum()); - vo.setChildMaterialUnit(lastVO.getMaterialUnit()); + } + if (Objects.nonNull(levelVO)) { + vo.setChildNum(levelVO.getNum()); + vo.setChildMaterialUnit(levelVO.getMaterialUnit()); + } else { + vo.setChildNum(pVO.getNum()); + vo.setChildMaterialUnit(pVO.getMaterialUnit()); } 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 d9f35a97..4f911cb6 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 @@ -158,7 +158,17 @@ public class PBomQueryService { && 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), pVO)); + ReverseReportVO levelVO = null; + if (level > 1) { + for (int i = vos.size() - 1; i >= 0; i--) { + ReverseReportVO vo = vos.get(i); + if (Objects.equals(level - 1, vo.getLevelNum())) { + levelVO = vo; + break; + } + } + } + vos.add(createVO(it, level, vos.isEmpty() ? null : vos.get(vos.size() - 1), pVO, levelVO)); } bindData(it, level + 1, vos); } @@ -169,17 +179,20 @@ public class PBomQueryService { return pbomParentService.getReverseBoms(parentRowId); } - private ReverseReportVO createVO(BomNewPbomParentVO parentVO, Integer level, ReverseReportVO lastVO, BomNewPbomParentVO pVO) { + private ReverseReportVO createVO(BomNewPbomParentVO parentVO, Integer level, ReverseReportVO lastVO, BomNewPbomParentVO pVO, ReverseReportVO levelVO) { ReverseReportVO vo = Convert.convert(ReverseReportVO.class, parentVO); vo.setLevelNum(level); if (Objects.isNull(lastVO)) { vo.setBomVersion("1"); - vo.setChildNum(pVO.getNum()); - vo.setChildMaterialUnit(pVO.getMaterialUnit()); } else { vo.setBomVersion(level >= lastVO.getLevelNum() ? lastVO.getBomVersion() : String.valueOf(Integer.parseInt(lastVO.getBomVersion()) + 1)); - vo.setChildNum(lastVO.getNum()); - vo.setChildMaterialUnit(lastVO.getMaterialUnit()); + } + if (Objects.nonNull(levelVO)) { + vo.setChildNum(levelVO.getNum()); + vo.setChildMaterialUnit(levelVO.getMaterialUnit()); + } else { + vo.setChildNum(pVO.getNum()); + vo.setChildMaterialUnit(pVO.getMaterialUnit()); } 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 7ac2ead5..10ea7915 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 @@ -622,7 +622,11 @@ ;