From d6528845e45cff12b73a16b86477de3f147ef2df Mon Sep 17 00:00:00 2001 From: lcj <2331845269@qq.com> Date: Sat, 30 Aug 2025 00:33:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=A1=B9=E7=9B=AE=E7=BB=93?= =?UTF-8?q?=E6=9E=84=EF=BC=8C=E6=96=BD=E5=B7=A5=E4=BA=A7=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../out/domain/bo/OutConstructionValueBo.java | 1 - .../service/impl/BusProjectServiceImpl.java | 48 +++++++++++++++++-- 2 files changed, 45 insertions(+), 4 deletions(-) diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/bo/OutConstructionValueBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/bo/OutConstructionValueBo.java index 8482e2a5..345e7f92 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/bo/OutConstructionValueBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/bo/OutConstructionValueBo.java @@ -38,7 +38,6 @@ public class OutConstructionValueBo extends BaseEntity { /** * 方阵id */ - @NotNull(message = "方阵id不能为空", groups = { AddGroup.class, EditGroup.class }) private Long matrixId; /** diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectServiceImpl.java index 253fb38d..3c6c6f51 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectServiceImpl.java @@ -944,15 +944,57 @@ public class BusProjectServiceImpl extends ServiceImpl subCategory = subProgressCategoryList.stream() + List sub1Category = subProgressCategoryList.stream() .filter(c -> Objects.equals(c.getProjectId(), subProject.getId())) + .filter(c -> c.getAncestors().split(",").length == 1) .toList(); - List structureVoList = subCategory.stream() + List sub2Category = subProgressCategoryList.stream() + .filter(c -> Objects.equals(c.getProjectId(), subProject.getId())) + .filter(c -> c.getAncestors().split(",").length == 2) + .toList(); + + List sub3Category = subProgressCategoryList.stream() + .filter(c -> Objects.equals(c.getProjectId(), subProject.getId())) + .filter(c -> c.getAncestors().split(",").length == 3) + .toList(); + Map> sub2CategoryMap = new HashMap<>(); + if (CollUtil.isNotEmpty(sub2Category)) { + sub2CategoryMap = sub2Category.stream() + .collect(Collectors.groupingBy(PgsProgressCategory::getParentId)); + } + Map> finalSub2CategoryMap = sub2CategoryMap; + Map> sub3CategoryMap = new HashMap<>(); + if (CollUtil.isNotEmpty(sub3Category)) { + sub3CategoryMap = sub3Category.stream() + .collect(Collectors.groupingBy(PgsProgressCategory::getParentId)); + } + Map> finalSub3CategoryMap = sub3CategoryMap; + List structureVoList = sub1Category.stream() .map(category -> { FacMatrixStructureVo matrixVo = new FacMatrixStructureVo(); - matrixVo.setId(category.getId()); + Long id = category.getId(); + matrixVo.setId(id); matrixVo.setName(category.getName()); + if (CollUtil.isNotEmpty(finalSub2CategoryMap) && finalSub2CategoryMap.containsKey(id)) { + matrixVo.setChildren(finalSub2CategoryMap.get(id).stream() + .map(c -> { + PgsProgressCategoryStructureVo subSubCategoryVo = new PgsProgressCategoryStructureVo(); + subSubCategoryVo.setId(c.getId()); + subSubCategoryVo.setName(c.getName()); + if (CollUtil.isNotEmpty(finalSub3CategoryMap) && finalSub3CategoryMap.containsKey(c.getId())) { + subSubCategoryVo.setChildren(finalSub3CategoryMap.get(c.getId()).stream() + .map(c3 -> { + PgsProgressCategoryStructureVo sub3CategoryVo = new PgsProgressCategoryStructureVo(); + sub3CategoryVo.setId(c3.getId()); + sub3CategoryVo.setName(c3.getName()); + return sub3CategoryVo; + }).toList() + ); + } + return subSubCategoryVo; + }).toList()); + } return matrixVo; }).toList();