From 63486c527b01c459110a88930d9cda1ded633aee Mon Sep 17 00:00:00 2001
From: “djh” <“3298565835@qq.com”>
Date: Tue, 11 Nov 2025 10:32:30 +0800
Subject: [PATCH] 修改新增气象数据统计

---
 src/main/java/com/gkhy/fourierSpecialGasMonitor/domain/sysAdmin/service/impl/MenuDomainServiceImpl.java |   69 ++++++++++++++++++++++++----------
 1 files changed, 48 insertions(+), 21 deletions(-)

diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/domain/sysAdmin/service/impl/MenuDomainServiceImpl.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/domain/sysAdmin/service/impl/MenuDomainServiceImpl.java
index ddbff4f..bb7266c 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/domain/sysAdmin/service/impl/MenuDomainServiceImpl.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/domain/sysAdmin/service/impl/MenuDomainServiceImpl.java
@@ -340,33 +340,60 @@
         return parantList;
     }
 
-    /**
-     * 递归解析菜单数据,获取菜单树状结构
-     * @param parantItem
-     * @param childItemList
-     * @return
-     */
-    private List<MenuItemDomainDTO> praseChildMenuItems(MenuItemDomainDTO parantItem, List<MenuItemDomainDTO> childItemList){
-        if(childItemList == null || childItemList.size() == 0 || parantItem == null)
-            return null;
-        List<MenuItemDomainDTO> resultList = new ArrayList<>();
-//        childItemList.forEach(child -> {
+
+//    private List<MenuItemDomainDTO> praseChildMenuItems(MenuItemDomainDTO parantItem, List<MenuItemDomainDTO> childItemList){
+//        if(childItemList == null || childItemList.size() == 0 || parantItem == null)
+//            return null;
+//        List<MenuItemDomainDTO> resultList = new ArrayList<>();
+////        childItemList.forEach(child -> {
+////            if(parantItem.getId().equals(child.getParentId())){
+////                resultList.add(child);
+////            }
+////        });
+//        for(MenuItemDomainDTO child : childItemList){
 //            if(parantItem.getId().equals(child.getParentId())){
 //                resultList.add(child);
 //            }
-//        });
-        for(MenuItemDomainDTO child : childItemList){
-            if(parantItem.getId().equals(child.getParentId())){
-                resultList.add(child);
+//        }
+//        if(resultList.size() > 0){
+//            for (MenuItemDomainDTO child : childItemList){
+//                List<MenuItemDomainDTO> childList = praseChildMenuItems(child,childItemList);
+//                if(childList != null && childList.size() > 0)
+//                    child.setSubMenuItemList(childList);
+//            }
+//        }
+//        return resultList;
+//    }
+
+    /**
+     * 递归解析菜单数据,获取菜单树状结构
+     * @param parentItem
+     * @param allItems
+     * @return
+     */
+    private List<MenuItemDomainDTO> praseChildMenuItems(MenuItemDomainDTO parentItem, List<MenuItemDomainDTO> allItems) {
+        if (allItems == null || allItems.isEmpty() || parentItem == null) {
+            return null;
+        }
+        List<MenuItemDomainDTO> directChildren = new ArrayList<>();
+        // 1. 先找出当前父菜单的直接子菜单(parentId等于当前父菜单的id)
+        for (MenuItemDomainDTO item : allItems) {
+            if (parentItem.getId().equals(item.getParentId())) {
+                directChildren.add(item);
             }
         }
-        if(resultList.size() > 0){
-            for (MenuItemDomainDTO child : childItemList){
-                List<MenuItemDomainDTO> childList = praseChildMenuItems(child,childItemList);
-                if(childList != null && childList.size() > 0)
-                    child.setSubMenuItemList(childList);
+        // 2. 只对直接子菜单递归,找它们的子菜单(孙菜单)
+        if (!directChildren.isEmpty()) {
+            for (MenuItemDomainDTO child : directChildren) { // 关键:遍历directChildren而非allItems
+                List<MenuItemDomainDTO> grandChildren = praseChildMenuItems(child, allItems);
+                if (grandChildren != null && !grandChildren.isEmpty()) {
+                    child.setSubMenuItemList(grandChildren);
+                }
             }
         }
-        return resultList;
+        return directChildren;
     }
+
+
+
 }

--
Gitblit v1.9.2