Newer
Older
casic-metering / casic-metering-common / src / main / java / com / casic / missiles / utils / SysDeptAndUserUtil.java
package com.casic.missiles.utils;

import com.baomidou.mybatisplus.extension.toolkit.SqlRunner;
import org.springframework.util.CollectionUtils;

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 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");
        if(CollectionUtils.isEmpty(list)){
            return "";
        }
        Map<String, Object> idMap = list.get(0);
        return String.valueOf(idMap.get("id"));
    }

    /**
     * 根据用户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;
    }



}