From 0a8119461bea9b913819d302b8820f1dc2cf420c Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期二, 07 一月 2025 17:07:15 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysDepartmentServiceImpl.java | 31 +++++++++++++++++++++++++++++++ 1 files changed, 31 insertions(+), 0 deletions(-) diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysDepartmentServiceImpl.java b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysDepartmentServiceImpl.java index dbb9d57..5a457eb 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysDepartmentServiceImpl.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysDepartmentServiceImpl.java @@ -92,11 +92,42 @@ childrenMap = getChildrenDepartmentByOrgType(myDepartment, null); } SysDepartmentVO sysDepartmentVO = fillChildrenTreeModel(myDepartment, childrenMap); + switch (type) { + case 2: + case 3: + case 4: + filterEmptyChildren(sysDepartmentVO.getChildren()); + break; + } root.add(sysDepartmentVO); return root; } /** + * 移除子节点为空的区域 + * + * @param departments + */ + private void filterEmptyChildren(List<SysDepartmentVO> departments) { + if (departments == null) { + return; + } + + Iterator<SysDepartmentVO> iterator = departments.iterator(); + while (iterator.hasNext()) { + SysDepartmentVO department = iterator.next(); + + // 递归过滤子节点 + filterEmptyChildren(department.getChildren()); + + // 如果 orgType == 1 且 children 为空,则移除当前节点 + if (department.getOrgType() == 1 && department.getChildren().isEmpty()) { + iterator.remove(); + } + } + } + + /** * @param myDepartment * @param orgTypes 查询区域类型列表 * @return -- Gitblit v1.7.1