| | |
| | | import com.ruoyi.common.utils.DtoConversionUtils; |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.common.utils.TreeUtils; |
| | | import com.ruoyi.common.utils.bean.BeanValidators; |
| | | import com.ruoyi.common.utils.spring.SpringUtils; |
| | | import com.ruoyi.system.domain.SysPost; |
| | | import com.ruoyi.system.domain.SysUserPost; |
| | | import com.ruoyi.system.mapper.*; |
| | | import com.ruoyi.system.service.ISysConfigService; |
| | | import com.ruoyi.system.service.ISysDeptService; |
| | | import com.ruoyi.system.service.ISysUserService; |
| | | import com.ruoyi.common.core.service.IUserExtInfoService; |
| | | import com.ruoyi.system.mapper.SysUserDeptMapper; |
| | |
| | | |
| | | @Autowired |
| | | private SysUserMapper userMapper; |
| | | |
| | | @Autowired |
| | | private ISysDeptService sysDeptService; |
| | | |
| | | @Autowired |
| | | private SysDeptMapper sysDeptMapper; |
| | |
| | | List<SysUserDept> sysUserDeptBQs = null; |
| | | if (StringUtils.isNotEmpty(sysUser.getSearchscope()) && sysUser.getSearchscope().equals("0")) { |
| | | sysUserDept.setDeptType("1"); |
| | | sysUserDeptKSs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept); |
| | | sysUserDeptKSs = selectLeafSysDeptList(sysUserDept); |
| | | sysUserDept.setDeptType("2"); |
| | | sysUserDeptBQs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept); |
| | | sysUserDeptBQs = selectLeafSysDeptList(sysUserDept); |
| | | } else if (StringUtils.isNotEmpty(sysUser.getSearchscope()) && sysUser.getSearchscope().equals("1")) { |
| | | sysUserDept.setDeptType("1"); |
| | | sysUserDeptKSs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept); |
| | | sysUserDeptKSs = selectLeafSysDeptList(sysUserDept); |
| | | } else if (StringUtils.isNotEmpty(sysUser.getSearchscope()) && sysUser.getSearchscope().equals("2")) { |
| | | sysUserDept.setDeptType("2"); |
| | | sysUserDeptBQs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept); |
| | | sysUserDeptBQs = selectLeafSysDeptList(sysUserDept); |
| | | } |
| | | |
| | | sysUser.setDepts(deptIds); |
| | |
| | | SysDept deptBQ = new SysDept(); |
| | | deptBQ.setOrgid(split[1]); |
| | | deptBQ.setDeptType("2"); |
| | | CompletableFuture<List<SysDept>> ksFuture = CompletableFuture.supplyAsync(() -> sysDeptMapper.selectDeptList(deptKS), executor); |
| | | CompletableFuture<List<SysDept>> bqFuture = CompletableFuture.supplyAsync(() -> sysDeptMapper.selectDeptList(deptBQ), executor); |
| | | CompletableFuture<List<SysDept>> ksFuture = CompletableFuture.supplyAsync(() -> selectLeafSysDeptForAdmin(deptKS), executor); |
| | | CompletableFuture<List<SysDept>> bqFuture = CompletableFuture.supplyAsync(() -> selectLeafSysDeptForAdmin(deptBQ), executor); |
| | | try { |
| | | sysUserDeptKSs = distinctByDeptCode(DtoConversionUtils.sourceToTarget(ksFuture.get(5, TimeUnit.SECONDS), SysUserDept.class)); |
| | | sysUserDeptBQs = distinctByDeptCode(DtoConversionUtils.sourceToTarget(bqFuture.get(5, TimeUnit.SECONDS), SysUserDept.class)); |
| | |
| | | queryBQ.setUserId(sysUser.getUserId()); |
| | | queryBQ.setDeptType("2"); |
| | | queryBQ.setOrgid(split[1]); |
| | | CompletableFuture<List<SysUserDept>> ksFuture = CompletableFuture.supplyAsync(() -> sysUserDeptMapper.selectSysUserDeptList(queryKS), executor); |
| | | CompletableFuture<List<SysUserDept>> bqFuture = CompletableFuture.supplyAsync(() -> sysUserDeptMapper.selectSysUserDeptList(queryBQ), executor); |
| | | CompletableFuture<List<SysUserDept>> ksFuture = CompletableFuture.supplyAsync(() -> selectLeafSysDeptList(queryKS), executor); |
| | | CompletableFuture<List<SysUserDept>> bqFuture = CompletableFuture.supplyAsync(() -> selectLeafSysDeptList(queryBQ), executor); |
| | | try { |
| | | sysUserDeptKSs = ksFuture.get(5, TimeUnit.SECONDS); |
| | | sysUserDeptBQs = bqFuture.get(5, TimeUnit.SECONDS); |
| | |
| | | queryKS.setUserId(sysUser.getUserId()); |
| | | queryKS.setDeptType("1"); |
| | | queryKS.setOrgid(split[1]); |
| | | sysUserDeptKSs = sysUserDeptMapper.selectSysUserDeptList(queryKS); |
| | | sysUserDeptKSs = selectLeafSysDeptList(queryKS); |
| | | } else if ("2".equals(sysUser.getSearchscope())) { |
| | | SysUserDept queryBQ = new SysUserDept(); |
| | | queryBQ.setUserId(sysUser.getUserId()); |
| | | queryBQ.setDeptType("2"); |
| | | queryBQ.setOrgid(split[1]); |
| | | sysUserDeptBQs = sysUserDeptMapper.selectSysUserDeptList(queryBQ); |
| | | sysUserDeptBQs = selectLeafSysDeptList(queryBQ); |
| | | } |
| | | } |
| | | |
| | |
| | | sysUserDept.setUserId(null); |
| | | } |
| | | sysUserDept.setDeptType("1"); |
| | | sysUserDeptKSs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept); |
| | | sysUserDeptKSs = selectLeafSysDeptList(sysUserDept); |
| | | sysUserDept.setDeptType("2"); |
| | | sysUserDeptBQs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept); |
| | | sysUserDeptBQs = selectLeafSysDeptList(sysUserDept); |
| | | //如果是admin,需要对sysUserDeptBQs,sysUserDeptBQs去重 |
| | | if (StringUtils.isNotEmpty(split[0]) && split[0].equals("admin")) { |
| | | //如果是admin,只能去sys_dept去取数据 |
| | | SysDept dept = new SysDept(); |
| | | dept.setOrgid(split[1]); |
| | | dept.setDeptType("1"); |
| | | sysDepts = sysDeptMapper.selectDeptList(dept); |
| | | sysDepts = selectLeafSysDeptForAdmin(dept); |
| | | sysUserDeptKSs = DtoConversionUtils.sourceToTarget(sysDepts, SysUserDept.class); |
| | | |
| | | dept.setDeptType("2"); |
| | | sysDepts = sysDeptMapper.selectDeptList(dept); |
| | | sysDepts = selectLeafSysDeptForAdmin(dept); |
| | | sysUserDeptBQs = DtoConversionUtils.sourceToTarget(sysDepts, SysUserDept.class); |
| | | |
| | | List<SysUserDept> distinctUserDepts = new ArrayList<>(); |
| | |
| | | } |
| | | return successMsg.toString(); |
| | | } |
| | | |
| | | public List<SysUserDept> selectLeafSysDeptList(SysUserDept sysUserDept){ |
| | | List<SysDept> list = sysDeptMapper.selectSysDeptListBySysUserDept(sysUserDept); |
| | | if(org.apache.commons.collections4.CollectionUtils.isNotEmpty(list)){ |
| | | list = TreeUtils.getLeafDepts(list); |
| | | } |
| | | List<SysUserDept> list1 = DtoConversionUtils.sourceToTarget(list, SysUserDept.class); |
| | | return list1; |
| | | } |
| | | |
| | | public List<SysDept> selectLeafSysDeptForAdmin(SysDept sysDept){ |
| | | SysUserDept sysUserDept = DtoConversionUtils.sourceToTarget(sysDept, SysUserDept.class); |
| | | List<SysDept> list = sysDeptMapper.selectSysDeptListBySysUserDept(sysUserDept); |
| | | if(org.apache.commons.collections4.CollectionUtils.isNotEmpty(list)){ |
| | | list = TreeUtils.getLeafDepts(list); |
| | | } |
| | | return list; |
| | | } |
| | | } |