package com.sooka.sponest.data.utils; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.RemoteDeptService; import com.ruoyi.system.api.domain.SysDept; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Component public class DeptLevelUtil { @Autowired private RemoteDeptService remoteDeptService; public R getDeptLevel(List> list) { String deptId = SecurityUtils.getLoginUser().getSysUser().getDeptId().toString(); List sysDeptList = remoteDeptService.selectChildrenCountyOrVillagesDeptListByDeptId(deptId).getData(); if (StringUtils.isEmpty(list)&&list==null){ return R.ok(sysDeptList); } if (!list.get(0).containsKey("ancestors")||!list.get(0).containsKey("deptId")){ return R.fail("入参没有key:'ancestors'或没有key:'deptId'"); } List> mapList = new ArrayList<>(); for (SysDept sysDept : sysDeptList){//部门 Map map = new HashMap<>(); //map中增加key for (String key : list.get(0).keySet()) { if (!key.equals("ancestors")&&!key.equals("deptId")){ map.put(key,0); } } for (Map ancestors : list){//资源数据 if (ancestors.get("ancestors").toString().concat(",").concat(ancestors.get("deptId").toString()).contains(sysDept.getAncestors().concat(",").concat(sysDept.getDeptId().toString()))){ for (String key : ancestors.keySet()) { if (!key.equals("ancestors")&&!key.equals("deptId")){ map.put(key,Long.parseLong(map.get(key).toString())+Long.parseLong(ancestors.get(key).toString())); } } } } map.put("deptId",sysDept.getDeptId()); map.put("deptName",sysDept.getDeptName()); mapList.add(map); } return R.ok(mapList); } }