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 @@
;