From 2cc14e5f5623dbd672100512f07097491bcf731d Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: 星期三, 18 三月 2020 09:43:17 +0800
Subject: [PATCH] 若依 2.2

---
 ruoyi/src/main/java/com/ruoyi/project/system/service/impl/SysDeptServiceImpl.java |   17 +++++++++++------
 1 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/ruoyi/src/main/java/com/ruoyi/project/system/service/impl/SysDeptServiceImpl.java b/ruoyi/src/main/java/com/ruoyi/project/system/service/impl/SysDeptServiceImpl.java
index f4e4dec..338e2a6 100644
--- a/ruoyi/src/main/java/com/ruoyi/project/system/service/impl/SysDeptServiceImpl.java
+++ b/ruoyi/src/main/java/com/ruoyi/project/system/service/impl/SysDeptServiceImpl.java
@@ -49,14 +49,19 @@
     public List<SysDept> buildDeptTree(List<SysDept> depts)
     {
         List<SysDept> returnList = new ArrayList<SysDept>();
+        List<Long> tempList = new ArrayList<Long>();
+        for (SysDept dept : depts)
+        {
+            tempList.add(dept.getDeptId());
+        }
         for (Iterator<SysDept> iterator = depts.iterator(); iterator.hasNext();)
         {
-            SysDept t = (SysDept) iterator.next();
-            // 根据传入的某个父节点ID,遍历该父节点的所有子节点
-            if (t.getParentId() == 0)
+            SysDept dept = (SysDept) iterator.next();
+            // 如果是顶级节点, 遍历该父节点的所有子节点
+            if (!tempList.contains(dept.getParentId()))
             {
-                recursionFn(depts, t);
-                returnList.add(t);
+                recursionFn(depts, dept);
+                returnList.add(dept);
             }
         }
         if (returnList.isEmpty())
@@ -271,7 +276,7 @@
         while (it.hasNext())
         {
             SysDept n = (SysDept) it.next();
-            if (n.getParentId().longValue() == t.getDeptId().longValue())
+            if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().longValue() == t.getDeptId().longValue())
             {
                 tlist.add(n);
             }

--
Gitblit v1.9.2