package jnpf.cultivate.service;

import jnpf.model.cultivate.vo.identify.UserOrgInfoAllVo;
import jnpf.permission.model.user.UserInfoVO;

import java.util.List;
import java.util.Map;

/**
 * 实操鉴定Api方法
 *
 * @author shitou
 * @email shitou@niujiekeji.com
 * @date 2023-12-19 11:10:53
 */
public interface CultivateIdentifyApiService {
    /**
     * 查询用户直系领导
     *
     * @param userId 用户ID
     */
    UserInfoVO selectUserDirectLeadership(String userId);

    /**
     * 选择“用户直接领导(新的)
     *
     * @param orgId            组织 ID
     * @param userId           用户 ID
     * @param positionId       职位 ID
     * @param positionGradesId 职位等级 ID
     * @return {@link UserInfoVO}
     */
    UserInfoVO selectUserDirectLeadershipNew(String orgId, String userId, String positionId, String positionGradesId);

    /**
     * 查询用户组织岗位列表
     *
     * @param userIds 用户ID集合
     */
    Map<String, List<UserOrgInfoAllVo>> batchSelectUserOrgInfoByUserIds(List<String> userIds);

    /**
     * 根据职等批量查询组织信息
     *
     * @param officialRankCodes 职等编码集合
     */
    Map<String, List<UserOrgInfoAllVo>> batchSelectOfficialRankInfo(List<String> officialRankCodes);
}

