From 9e11e94f8a92a62695657bb2b3b59a1cf47058a5 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期五, 17 十月 2025 13:38:11 +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