From 3e9a6da99aae968123ee7bca352fc08becd7f1f2 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期四, 29 八月 2024 17:29:21 +0800
Subject: [PATCH] 工单过程图接口更换

---
 ycl-server/src/main/java/com/ycl/system/service/impl/SysDeptServiceImpl.java |   82 +++++++++++++++++++++++++++++++----------
 1 files changed, 62 insertions(+), 20 deletions(-)

diff --git a/ycl-server/src/main/java/com/ycl/system/service/impl/SysDeptServiceImpl.java b/ycl-server/src/main/java/com/ycl/system/service/impl/SysDeptServiceImpl.java
index e513424..cb0621d 100644
--- a/ycl-server/src/main/java/com/ycl/system/service/impl/SysDeptServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/system/service/impl/SysDeptServiceImpl.java
@@ -3,6 +3,8 @@
 import annotation.DataScope;
 import com.ycl.exception.ServiceException;
 import com.ycl.platform.base.BaseSelect;
+import com.ycl.platform.base.Cascader;
+import com.ycl.platform.domain.vo.screen.DeptAreaVO;
 import com.ycl.system.Result;
 import com.ycl.system.domain.TreeSelect;
 import com.ycl.system.entity.SysDept;
@@ -19,14 +21,12 @@
 import org.springframework.stereotype.Service;
 import utils.text.Convert;
 
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
  * 閮ㄩ棬绠$悊 鏈嶅姟瀹炵幇
- * 
+ *
  * @author ruoyi
  */
 @Service
@@ -40,7 +40,7 @@
 
     /**
      * 鏌ヨ閮ㄩ棬绠$悊鏁版嵁
-     * 
+     *
      * @param dept 閮ㄩ棬淇℃伅
      * @return 閮ㄩ棬淇℃伅闆嗗悎
      */
@@ -53,7 +53,7 @@
 
     /**
      * 鏌ヨ閮ㄩ棬鏍戠粨鏋勪俊鎭�
-     * 
+     *
      * @param dept 閮ㄩ棬淇℃伅
      * @return 閮ㄩ棬鏍戜俊鎭泦鍚�
      */
@@ -66,7 +66,7 @@
 
     /**
      * 鏋勫缓鍓嶇鎵�闇�瑕佹爲缁撴瀯
-     * 
+     *
      * @param depts 閮ㄩ棬鍒楄〃
      * @return 鏍戠粨鏋勫垪琛�
      */
@@ -93,7 +93,7 @@
 
     /**
      * 鏋勫缓鍓嶇鎵�闇�瑕佷笅鎷夋爲缁撴瀯
-     * 
+     *
      * @param depts 閮ㄩ棬鍒楄〃
      * @return 涓嬫媺鏍戠粨鏋勫垪琛�
      */
@@ -106,7 +106,7 @@
 
     /**
      * 鏍规嵁瑙掕壊ID鏌ヨ閮ㄩ棬鏍戜俊鎭�
-     * 
+     *
      * @param roleId 瑙掕壊ID
      * @return 閫変腑閮ㄩ棬鍒楄〃
      */
@@ -119,7 +119,7 @@
 
     /**
      * 鏍规嵁閮ㄩ棬ID鏌ヨ淇℃伅
-     * 
+     *
      * @param deptId 閮ㄩ棬ID
      * @return 閮ㄩ棬淇℃伅
      */
@@ -131,7 +131,7 @@
 
     /**
      * 鏍规嵁ID鏌ヨ鎵�鏈夊瓙閮ㄩ棬锛堟甯哥姸鎬侊級
-     * 
+     *
      * @param deptId 閮ㄩ棬ID
      * @return 瀛愰儴闂ㄦ暟
      */
@@ -143,7 +143,7 @@
 
     /**
      * 鏄惁瀛樺湪瀛愯妭鐐�
-     * 
+     *
      * @param deptId 閮ㄩ棬ID
      * @return 缁撴灉
      */
@@ -156,7 +156,7 @@
 
     /**
      * 鏌ヨ閮ㄩ棬鏄惁瀛樺湪鐢ㄦ埛
-     * 
+     *
      * @param deptId 閮ㄩ棬ID
      * @return 缁撴灉 true 瀛樺湪 false 涓嶅瓨鍦�
      */
@@ -169,7 +169,7 @@
 
     /**
      * 鏍¢獙閮ㄩ棬鍚嶇О鏄惁鍞竴
-     * 
+     *
      * @param dept 閮ㄩ棬淇℃伅
      * @return 缁撴灉
      */
@@ -187,7 +187,7 @@
 
     /**
      * 鏍¢獙閮ㄩ棬鏄惁鏈夋暟鎹潈闄�
-     * 
+     *
      * @param deptId 閮ㄩ棬id
      */
     @Override
@@ -207,7 +207,7 @@
 
     /**
      * 鏂板淇濆瓨閮ㄩ棬淇℃伅
-     * 
+     *
      * @param dept 閮ㄩ棬淇℃伅
      * @return 缁撴灉
      */
@@ -226,7 +226,7 @@
 
     /**
      * 淇敼淇濆瓨閮ㄩ棬淇℃伅
-     * 
+     *
      * @param dept 閮ㄩ棬淇℃伅
      * @return 缁撴灉
      */
@@ -254,7 +254,7 @@
 
     /**
      * 淇敼璇ラ儴闂ㄧ殑鐖剁骇閮ㄩ棬鐘舵��
-     * 
+     *
      * @param dept 褰撳墠閮ㄩ棬
      */
     private void updateParentDeptStatusNormal(SysDept dept)
@@ -266,7 +266,7 @@
 
     /**
      * 淇敼瀛愬厓绱犲叧绯�
-     * 
+     *
      * @param deptId 琚慨鏀圭殑閮ㄩ棬ID
      * @param newAncestors 鏂扮殑鐖禝D闆嗗悎
      * @param oldAncestors 鏃х殑鐖禝D闆嗗悎
@@ -286,7 +286,7 @@
 
     /**
      * 鍒犻櫎閮ㄩ棬绠$悊淇℃伅
-     * 
+     *
      * @param deptId 閮ㄩ棬ID
      * @return 缁撴灉
      */
@@ -325,6 +325,43 @@
                 }
         ).collect(Collectors.toList());
         return Result.ok().data(vos);
+    }
+
+    @Override
+    public Result cascader() {
+        List<Cascader> data = deptMapper.cascader();
+        return Result.ok().data(this.buildTree(data));
+    }
+
+    public List<Cascader> buildTree(List<Cascader> cascaders) {
+        // 鍒涘缓涓�涓槧灏勶紝浠arentId涓洪敭锛屽搴旂殑瀛愯妭鐐瑰垪琛ㄤ负鍊�
+        Map<Long, List<Cascader>> map = new HashMap<>();
+        for (Cascader cascader : cascaders) {
+            Long parentId = cascader.getParentId();
+            map.computeIfAbsent(parentId, k -> new ArrayList<>()).add(cascader);
+        }
+
+        // 閫掑綊鍑芥暟锛岀敤浜庢瀯寤烘爲
+        List<Cascader> tree = new ArrayList<>();
+        for (Cascader cascader : cascaders) {
+            if (cascader.getParentId().equals(0L)) { // 鏍硅妭鐐�
+                tree.add(setChildren(cascader, map));
+            }
+        }
+
+        // 鏇存柊鍘熷鍒楄〃涓烘爲褰㈢粨鏋�
+        cascaders.clear();
+        cascaders.addAll(tree);
+        return cascaders;
+    }
+
+    private Cascader setChildren(Cascader cascader, Map<Long, List<Cascader>> map) {
+        List<Cascader> children = map.getOrDefault(cascader.getValue(), new ArrayList<>());
+        for (Cascader child : children) {
+            setChildren(child, map); // 閫掑綊璁剧疆瀛愯妭鐐圭殑瀛愯妭鐐�
+        }
+        cascader.setChildren(children);
+        return cascader;
     }
 
     /**
@@ -369,4 +406,9 @@
     {
         return getChildList(list, t).size() > 0;
     }
+
+    @Override
+    public List<DeptAreaVO> dashboard() {
+        return deptMapper.dashboard();
+    }
 }

--
Gitblit v1.8.0