diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/framework/datapermission/config/TreeDataPermissionConfiguration.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/framework/datapermission/config/TreeDataPermissionConfiguration.java index 055a73e..eb7dce1 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/framework/datapermission/config/TreeDataPermissionConfiguration.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/framework/datapermission/config/TreeDataPermissionConfiguration.java @@ -21,4 +21,4 @@ public class TreeDataPermissionConfiguration { }; } -} \ No newline at end of file +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/tree/TreeServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/tree/TreeServiceImpl.java index bf4d96c..9cf450a 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/tree/TreeServiceImpl.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/tree/TreeServiceImpl.java @@ -11,6 +11,7 @@ import com.zteits.urbanops.module.garden.dal.mysql.treechangelog.TreeChangeLogMa import com.zteits.urbanops.module.garden.service.road.RoadService; import com.zteits.urbanops.module.system.dal.dataobject.dept.DeptDO; import com.zteits.urbanops.module.system.dal.mysql.dept.DeptMapper; +import com.zteits.urbanops.module.system.service.dept.DeptService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate; @@ -61,7 +62,7 @@ public class TreeServiceImpl implements TreeService { private RedisTemplate redisTemplate; @Resource - private DeptMapper deptMapper; + private DeptService deptService; public static final String CACHE_REPEAT_KEY = "gardenTree:repeat:"; @@ -178,80 +179,28 @@ public class TreeServiceImpl implements TreeService { @Override public List getCompanyDeptRoadTreeData(TreeVO tree) { -// List sysDepts = deptMapper.selectList(); + List companies = deptService.getSubDeptListAll(); + List companyDeptRoadVOS = treeMapper.selectCompanyDeptRoadTreeData(tree); + if (!CollectionUtils.isEmpty(companyDeptRoadVOS) && !CollectionUtils.isEmpty(companies)) { + Map companyNameMap = companies.stream() + .collect(Collectors.toMap(DeptDO::getId, DeptDO::getName, (a, b) -> a)); + companyDeptRoadVOS.stream() + .filter(Objects::nonNull) + .forEach(vo -> { + Long cid = vo.getCompanyId(); + if (cid == null) { + return; + } + String name = companyNameMap.get(cid); + if (StringUtils.hasText(name)) { + vo.setCompanyName(name); + } + }); + } -// // 按公司分组所有部门 -// Map> companyDeptsMap = sysDepts.stream() -// .filter(d -> d.getParentId() != null) -// .collect(Collectors.groupingBy(DeptDO::getParentId)); -// -// // 过滤出叶子部门(没有子部门的部门) -// Map> companyLeafDeptsMap = new HashMap<>(); -// for (Map.Entry> entry : companyDeptsMap.entrySet()) { -// Long companyId = entry.getKey(); -// List depts = entry.getValue(); -// -// // 构建部门ID到部门的映射 -// Map deptMap = depts.stream() -// .collect(Collectors.toMap(DeptDO::getId, d -> d)); -// -// // 找出叶子部门(其parentId不在deptMap中的部门,或者其parentId为0的部门) -// List leafDepts = depts.stream() -// .filter(d -> d.getParentId() == 0 || !deptMap.containsKey(d.getParentId())) -// .collect(Collectors.toList()); -// -// companyLeafDeptsMap.put(companyId, leafDepts); -// } -// -// // 建立现有结果的映射: 公司ID -> CompanyDeptRoadVO -// Map existingCompanyMap = companyDeptRoadVOS.stream() -// .collect(Collectors.toMap( -// CompanyDeptRoadVO::getCompanyId, -// vo -> vo, -// (existing, replacement) -> existing -// )); -// -// // 遍历所有公司,补充缺失的公司和部门 -// for (Map.Entry> entry : companyLeafDeptsMap.entrySet()) { -// Long companyId = entry.getKey(); -// List depts = entry.getValue(); -// -// CompanyDeptRoadVO companyVO; -// if (!existingCompanyMap.containsKey(companyId)) { -// // 如果公司不存在,创建新的公司对象 -// companyVO = new CompanyDeptRoadVO(); -// companyVO.setCompanyId(companyId); -// companyVO.setCompanyName(DictFrameworkUtils.parseDictDataValue("belongCompanyId", companyId + "")); -// companyVO.setDepts(new ArrayList<>()); -// companyDeptRoadVOS.add(companyVO); -// } else { -// companyVO = existingCompanyMap.get(companyId); -// } -// -// // 建立该公司下已存在的部门映射: 部门ID -> DeptVO -// Map existingDeptMap = companyVO.getDepts().stream() -// .collect(Collectors.toMap( -// deptVO -> Long.valueOf(deptVO.getDeptId()), -// deptVO -> deptVO, -// (existing, replacement) -> existing -// )); -// -// // 补充缺失的部门(仅叶子部门) -// for (DeptDO sysDept : depts) { -// Long deptId = sysDept.getId(); -// if (!existingDeptMap.containsKey(deptId)) { -// // 创建缺失的部门对象 -// CompanyDeptRoadVO.DeptVO missingDept = new CompanyDeptRoadVO.DeptVO(); -// missingDept.setDeptId(deptId); -// missingDept.setDeptName(sysDept.getName()); -// missingDept.setRoads(new ArrayList<>()); -// companyVO.getDepts().add(missingDept); -// } -// } -// } return companyDeptRoadVOS; } @@ -269,4 +218,4 @@ public class TreeServiceImpl implements TreeService { return new PageResult<>(roadTreeVOS, treePage.getTotal()); } -} \ No newline at end of file +} diff --git a/urbanops-module-garden/src/main/resources/mapper/tree/TreeMapper.xml b/urbanops-module-garden/src/main/resources/mapper/tree/TreeMapper.xml index f70f9d3..682dc7a 100644 --- a/urbanops-module-garden/src/main/resources/mapper/tree/TreeMapper.xml +++ b/urbanops-module-garden/src/main/resources/mapper/tree/TreeMapper.xml @@ -27,9 +27,7 @@ \ No newline at end of file diff --git a/urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/service/dept/DeptService.java b/urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/service/dept/DeptService.java index 0de4a35..95610df 100644 --- a/urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/service/dept/DeptService.java +++ b/urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/service/dept/DeptService.java @@ -65,6 +65,7 @@ public interface DeptService { * @return 部门信息数组 */ List getSubDeptList(); + List getSubDeptListAll(); /** * 筛选部门列表 diff --git a/urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/service/dept/DeptServiceImpl.java b/urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/service/dept/DeptServiceImpl.java index 0e02add..b457a13 100644 --- a/urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/service/dept/DeptServiceImpl.java +++ b/urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/service/dept/DeptServiceImpl.java @@ -206,6 +206,12 @@ public class DeptServiceImpl implements DeptService { } @Override + @DataPermission(enable = false) + public List getSubDeptListAll() { + return deptMapper.selectList(DeptDO::getParentId, 100); + } + + @Override public List getDeptList(DeptListReqVO reqVO) { List list = deptMapper.selectList(reqVO); list.sort(Comparator.comparing(DeptDO::getSort));