|
|
@@ -27,6 +27,7 @@ import com.ydtech.modules.admin.service.SysUserTreeShowLevelService;
|
|
|
import com.ydtech.modules.base.controller.BaseController;
|
|
|
import com.ydtech.modules.protocol.utils.AssertionUtils;
|
|
|
import com.ydtech.utils.StringUtils;
|
|
|
+import io.lettuce.core.ScriptOutputType;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
@@ -790,6 +791,7 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
|
|
|
*/
|
|
|
@Override
|
|
|
public KztUserDeptTreeDto getUserDeptTree(SysDeptVo sysDeptVo) {
|
|
|
+ String managementSource = sysDeptVo.getManagementSource();
|
|
|
KztUserDeptTreeDto kztUserDeptTreeDto = new KztUserDeptTreeDto();
|
|
|
String userId = BaseController.getUserId();
|
|
|
QueryWrapper<SysDept> queryWrapper = new QueryWrapper<>();
|
|
|
@@ -801,7 +803,7 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
|
|
|
kztUserDeptTreeDto.setType("2"); //代理
|
|
|
}
|
|
|
SysUser byUserId = sysUserMapper.getByUserId(userId);
|
|
|
- List<SysDeptTreeVo> resultDeptList = this.getFiveLevelDeptKzt(byUserId);
|
|
|
+ List<SysDeptTreeVo> resultDeptList = this.getFiveLevelDeptKzt(byUserId,managementSource);
|
|
|
kztUserDeptTreeDto.setDeptList(resultDeptList);
|
|
|
if (!userId.contains("M")) {
|
|
|
List<SysUser> resultList =this.getUserTreeHx(byUserId);
|
|
|
@@ -873,7 +875,7 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private List<SysDeptTreeVo> getFiveLevelDeptKzt(SysUser byUserId) {
|
|
|
+ private List<SysDeptTreeVo> getFiveLevelDeptKzt(SysUser byUserId,String managementSource) {
|
|
|
SysDept sysDept = getById("9");
|
|
|
SysDeptVo sysDeptVo = new SysDeptVo();
|
|
|
String id = byUserId.getId();
|
|
|
@@ -892,9 +894,14 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
|
|
|
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))
|
|
|
+
|
|
|
+ List<SysDeptTreeVo> filteredSysDeptTreeVos = sysDeptTreeVos.stream()
|
|
|
+ .filter(dept -> !(dept.getComlevel().equals("5") &&
|
|
|
+ !Objects.equals(dept.getManagementSource(), managementSource)))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ Map<String, List<SysDeptTreeVo>> map = filteredSysDeptTreeVos.stream().sorted(Comparator.comparing(SysDeptTreeVo::getId))
|
|
|
.collect(Collectors.groupingBy(SysDeptTreeVo::getParentId));
|
|
|
- sysDeptTreeVos.forEach(i -> {
|
|
|
+ filteredSysDeptTreeVos.forEach(i -> {
|
|
|
if(Integer.parseInt(i.getComlevel())<=5){
|
|
|
i.setChildren(map.getOrDefault(i.getId(), new ArrayList<>()));
|
|
|
i.setDeptCount(i.getChildren().size());
|
|
|
@@ -908,13 +915,19 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
|
|
|
.filter(dept -> dept.getComlevel() != null) // 过滤条件:Comlevel 不为 null
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
+ List<SysDept> filteredSysDeptTreeVos = filteredDeptList.stream()
|
|
|
+ .filter(dept -> !(dept.getComlevel().equals("5") &&
|
|
|
+ !Objects.equals(dept.getManagementSource(), managementSource)))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+
|
|
|
// 使用一个Map来快速查找部门节点
|
|
|
Map<String, SysDept> deptMap = new HashMap<>();
|
|
|
- for (SysDept dept : filteredDeptList) {
|
|
|
+ for (SysDept dept : filteredSysDeptTreeVos) {
|
|
|
deptMap.put(dept.getId(), dept);
|
|
|
}
|
|
|
// 找出顶级部门(即没有父部门的部门)
|
|
|
- for (SysDept dept : filteredDeptList) {
|
|
|
+ for (SysDept dept : filteredSysDeptTreeVos) {
|
|
|
if (dept.getParentId() == null || deptMap.get(dept.getParentId()) == null) {
|
|
|
// 添加到结果列表并构建其子树
|
|
|
buildDeptTreeKzt(dept, deptMap);
|