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;
}
}