package com.casic.missiles.utils; import com.baomidou.mybatisplus.extension.toolkit.SqlRunner; import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * @Description: * @Author: wangpeng * @Date: 2023/8/12 11:24 */ public class SysDeptAndUserUtil { /** * 根据部门获取部门负责人id列表 * @param deptId * @return */ public static List<String> getDeptDirectorIdByDeptId(Long deptId){ List<Map<String, Object>> list = SqlRunner.db().selectList("select su.ID as id from sys_role sr " + "JOIN sys_ru_relation srr ON sr.ID = srr.ROLEID " + "JOIN sys_user su ON (srr.USERID = su.ID AND su.STATUS = 1) " + // "WHERE sr.DEPT_ID = {0}" + "WHERE "+ "sr.TIPS = {1}" + "AND su.DEPT_ID = {0}", String.valueOf(deptId), "director"); List<String> userIdList = new ArrayList<>(); if(!CollectionUtils.isEmpty(list)){ list.forEach(idMap -> { userIdList.add(String.valueOf(idMap.get("id"))); }); } return userIdList; } /** * 根据用户id获取该用户为主管时的部门信息 * @param userId * @return */ public static Map<String, Object> getDirectDeptByUserId(Long userId) { Map<String, Object> resultMap = SqlRunner.db().selectOne( "SELECT su.DEPT_ID as deptId, sd.SIMPLE_NAME AS deptName FROM sys_role sr " + "JOIN sys_ru_relation srr ON sr.ID = srr.ROLEID " + "JOIN sys_user su ON (srr.USERID = su.ID AND su.STATUS = 1) " + "JOIN sys_dept sd ON su.DEPT_ID = sd.ID " + "WHERE su.ID = {0}" + "AND sr.TIPS = {1}", String.valueOf(userId), "director"); return resultMap; } public static List<Map<String, Object>> getUserIdsByDeptIdAndDeptIds(List<String> deptIds, Long deptId){ List<Map<String, Object>> list = SqlRunner.db().selectList("select su.ID as id from sys_role sr " + "JOIN sys_ru_relation srr ON sr.ID = srr.ROLEID " + "JOIN sys_user su ON (srr.USERID = su.ID AND su.STATUS = 1) " + // "WHERE (sr.DEPT_ID = {2} or sr.DEPT_ID in {0})" +//角色所在的组织机构及该结构的子结构 "WHERE "+ "sr.TIPS = {1}" + "AND su.DEPT_ID = {2}", deptIds, "director", String.valueOf(deptId)); return list; } }