Selaa lähdekoodia

1.控制台树形查询冲突

wuhp 1 vuosi sitten
vanhempi
commit
82effd91a9

+ 39 - 34
src/main/java/com/ydtech/modules/admin/service/impl/SysDeptServiceImpl.java

@@ -864,45 +864,50 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
             List<SysUserDeptRelationship> relationships = sysUserDeptRelationshipMapper.selectList(new QueryWrapper<SysUserDeptRelationship>().eq("user_id", id));
             deptIds.addAll(relationships.stream().map(SysUserDeptRelationship::getDeptId).collect(Collectors.toList()));
         }
-        sysDeptVo.setDeptIds(deptIds);
-        List<SysDept> sysDeptList = baseMapper.getFiveLevelDept(sysDeptVo);
-        if("admin".equals(byUserId.getId())){
-            sysDept.setComlevel("1");
-            sysDeptList.add(sysDept);
-            List<SysDeptTreeVo> sysDeptTreeVos = BeanUtil.copyToList(sysDeptList, SysDeptTreeVo.class);
-            Map<String, List<SysDeptTreeVo>> map = sysDeptTreeVos.stream().sorted(Comparator.comparing(SysDeptTreeVo::getId))
-                    .collect(Collectors.groupingBy(SysDeptTreeVo::getParentId));
-            sysDeptTreeVos.forEach(i -> {
-                if(Integer.parseInt(i.getComlevel())<=5){
-                    i.setChildren(map.getOrDefault(i.getId(), new ArrayList<>()));
-                    i.setDeptCount(i.getChildren().size());
+        if(!deptIds.isEmpty()){
+            sysDeptVo.setDeptIds(deptIds);
+            List<SysDept> sysDeptList = baseMapper.getFiveLevelDept(sysDeptVo);
+            if("admin".equals(byUserId.getId())){
+                sysDept.setComlevel("1");
+                sysDeptList.add(sysDept);
+                List<SysDeptTreeVo> sysDeptTreeVos = BeanUtil.copyToList(sysDeptList, SysDeptTreeVo.class);
+                Map<String, List<SysDeptTreeVo>> map = sysDeptTreeVos.stream().sorted(Comparator.comparing(SysDeptTreeVo::getId))
+                        .collect(Collectors.groupingBy(SysDeptTreeVo::getParentId));
+                sysDeptTreeVos.forEach(i -> {
+                    if(Integer.parseInt(i.getComlevel())<=5){
+                        i.setChildren(map.getOrDefault(i.getId(), new ArrayList<>()));
+                        i.setDeptCount(i.getChildren().size());
+                    }
+                });
+                return map.get(sysDept.getParentId());
+            } else  {
+                List<SysDept> result = new ArrayList<>();
+                List<SysDept> deptList = sysDeptMapper.getListByIds(deptIds);
+                List<SysDept> filteredDeptList = deptList.stream()
+                        .filter(dept -> dept.getComlevel() != null) // 过滤条件:Comlevel 不为 null
+                        .collect(Collectors.toList());
+
+                // 使用一个Map来快速查找部门节点
+                Map<String, SysDept> deptMap = new HashMap<>();
+                for (SysDept dept : filteredDeptList) {
+                    deptMap.put(dept.getId(), dept);
                 }
-            });
-            return map.get(sysDept.getParentId());
-        } else  {
-            List<SysDept> result = new ArrayList<>();
-            List<SysDept> deptList = sysDeptMapper.getListByIds(deptIds);
-            List<SysDept> filteredDeptList = deptList.stream()
-                    .filter(dept -> dept.getComlevel() != null) // 过滤条件:Comlevel 不为 null
-                    .collect(Collectors.toList());
-
-            // 使用一个Map来快速查找部门节点
-            Map<String, SysDept> deptMap = new HashMap<>();
-            for (SysDept dept : filteredDeptList) {
-                deptMap.put(dept.getId(), dept);
-            }
-            // 找出顶级部门(即没有父部门的部门)
-            for (SysDept dept : filteredDeptList) {
-                if (dept.getParentId() == null || deptMap.get(dept.getParentId()) == null) {
-                    // 添加到结果列表并构建其子树
-                    buildDeptTreeKzt(dept, deptMap);
-                    result.add(dept);
+                // 找出顶级部门(即没有父部门的部门)
+                for (SysDept dept : filteredDeptList) {
+                    if (dept.getParentId() == null || deptMap.get(dept.getParentId()) == null) {
+                        // 添加到结果列表并构建其子树
+                        buildDeptTreeKzt(dept, deptMap);
+                        result.add(dept);
+                    }
                 }
+                List<SysDeptTreeVo> sysDeptTreeVos = BeanUtil.copyToList(result, SysDeptTreeVo.class);
+                return sysDeptTreeVos;
             }
-            List<SysDeptTreeVo> sysDeptTreeVos = BeanUtil.copyToList(result, SysDeptTreeVo.class);
-            return sysDeptTreeVos;
+        }else {
+            return  new ArrayList<SysDeptTreeVo>();
         }
 
+
     }
 
     private void buildDeptTreeKzt(SysDept dept, Map<String, SysDept> deptMap) {

+ 2 - 2
src/main/java/com/ydtech/modules/admin/service/impl/TaskStatisticsServiceImpl.java

@@ -374,7 +374,7 @@ public class TaskStatisticsServiceImpl  implements TaskStatisticsService {
                 }else {
                     taskStatisticsVo.setUserId(taskStatisticsVo.getTreeUserId());
                 }
-            }else if ("1".equals(taskStatisticsVo.getTreeType())){
+            }else if (StringUtils.isNotEmpty(taskStatisticsVo.getTreeUserId()) && "1".equals(taskStatisticsVo.getTreeType())){
                 taskStatisticsVo.setDeptId(taskStatisticsVo.getTreeUserId());
                 taskStatisticsVo.setTreeUserId(null);
                 taskStatisticsVo.setUserIds(new ArrayList<>());
@@ -543,7 +543,7 @@ public class TaskStatisticsServiceImpl  implements TaskStatisticsService {
                 }else {
                     taskStatisticsVo.setUserId(taskStatisticsVo.getTreeUserId());
                 }
-            }else if ("1".equals(taskStatisticsVo.getTreeType())){
+            }else if (StringUtils.isNotEmpty(taskStatisticsVo.getTreeUserId()) &&"1".equals(taskStatisticsVo.getTreeType())){
                 taskStatisticsVo.setDeptId(taskStatisticsVo.getTreeUserId());
                 taskStatisticsVo.setTreeUserId(null);
                 taskStatisticsVo.setUserIds(new ArrayList<>());