diff --git a/pom.xml b/pom.xml
index ddc287527..723aed730 100644
--- a/pom.xml
+++ b/pom.xml
@@ -33,6 +33,7 @@
         4.1.2
         2.3
         0.9.1
+        5.7.13
     
 	
     
@@ -199,6 +200,12 @@
                 ${ruoyi.version}
             
 
+            
+                cn.hutool
+                hutool-core
+                ${hutool.version}
+            
+
         
     
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java
index 6ec2f3ef0..d2c98807c 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java
@@ -2,6 +2,8 @@ package com.ruoyi.web.controller.system;
 
 import java.util.Iterator;
 import java.util.List;
+
+import com.ruoyi.common.core.domain.TreeSelect;
 import org.apache.commons.lang3.ArrayUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -82,10 +84,10 @@ public class SysDeptController extends BaseController
      * 获取部门下拉树列表
      */
     @GetMapping("/treeselect")
-    public AjaxResult treeselect(SysDept dept)
-    {
+    public AjaxResult treeselect(SysDept dept){
         List depts = deptService.selectDeptList(dept);
-        return AjaxResult.success(deptService.buildDeptTreeSelect(depts));
+        List treeSelects = deptService.buildDeptTreeSelect(depts);
+        return AjaxResult.success(treeSelects);
     }
 
     /**
diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml
index e18104ca1..a45a74bef 100644
--- a/ruoyi-common/pom.xml
+++ b/ruoyi-common/pom.xml
@@ -125,6 +125,11 @@
             javax.servlet-api
         
 
+        
+            cn.hutool
+            hutool-core
+        
+
     
 
 
\ No newline at end of file
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelect.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelect.java
index 4a59e402a..f4d665016 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelect.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelect.java
@@ -3,6 +3,8 @@ package com.ruoyi.common.core.domain;
 import java.io.Serializable;
 import java.util.List;
 import java.util.stream.Collectors;
+
+import cn.hutool.core.lang.tree.Tree;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.ruoyi.common.core.domain.entity.SysDept;
 import com.ruoyi.common.core.domain.entity.SysMenu;
@@ -44,6 +46,16 @@ public class TreeSelect implements Serializable
         this.label = menu.getMenuName();
         this.children = menu.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList());
     }
+    public TreeSelect(Tree dept) {
+        this.id = dept.getId();
+        this.label = dept.getName().toString();
+        List> children = dept.getChildren();
+        if (children != null && !children.isEmpty()) {
+            this.children = children.stream().map(TreeSelect::new).collect(Collectors.toList());
+        }
+
+    }
+
 
     public Long getId()
     {
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java
index 1ac8ccb27..5383750b6 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java
@@ -1,6 +1,8 @@
 package com.ruoyi.system.service;
 
 import java.util.List;
+
+import cn.hutool.core.lang.tree.Tree;
 import com.ruoyi.common.core.domain.TreeSelect;
 import com.ruoyi.common.core.domain.entity.SysDept;
 
@@ -25,7 +27,7 @@ public interface ISysDeptService
      * @param depts 部门列表
      * @return 树结构列表
      */
-    public List buildDeptTree(List depts);
+    public List> buildDeptTree(List depts, Long parentId);
 
     /**
      * 构建前端所需要下拉树结构
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
index 32ec0077f..157ab9f07 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
@@ -4,6 +4,10 @@ import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 import java.util.stream.Collectors;
+
+import cn.hutool.core.lang.tree.Tree;
+import cn.hutool.core.lang.tree.TreeNodeConfig;
+import cn.hutool.core.lang.tree.TreeUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ruoyi.common.annotation.DataScope;
@@ -55,28 +59,20 @@ public class SysDeptServiceImpl implements ISysDeptService
      * @return 树结构列表
      */
     @Override
-    public List buildDeptTree(List depts)
+    public List> buildDeptTree(List depts,Long parentId)
     {
-        List returnList = new ArrayList();
-        List tempList = new ArrayList();
-        for (SysDept dept : depts)
-        {
-            tempList.add(dept.getDeptId());
-        }
-        for (SysDept dept : depts)
-        {
-            // 如果是顶级节点, 遍历该父节点的所有子节点
-            if (!tempList.contains(dept.getParentId()))
-            {
-                recursionFn(depts, dept);
-                returnList.add(dept);
-            }
-        }
-        if (returnList.isEmpty())
-        {
-            returnList = depts;
-        }
-        return returnList;
+        //配置
+        TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
+        treeNodeConfig.setNameKey("label");
+        // 自定义属性名 都要默认值的
+        List> treeList = TreeUtil.build(depts, parentId, treeNodeConfig,
+                (treeNode, tree) -> {
+                    tree.setId(treeNode.getDeptId());
+                    tree.setParentId(treeNode.getParentId());
+                    tree.setName(treeNode.getDeptName());
+                    tree.putExtra("value", treeNode.getDeptId());
+                });
+        return treeList;
     }
 
     /**
@@ -88,7 +84,7 @@ public class SysDeptServiceImpl implements ISysDeptService
     @Override
     public List buildDeptTreeSelect(List depts)
     {
-        List deptTrees = buildDeptTree(depts);
+        List> deptTrees = buildDeptTree(depts, 0L);
         return deptTrees.stream().map(TreeSelect::new).collect(Collectors.toList());
     }