package com.ningdatech.pmapi.organization.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ningdatech.pmapi.organization.model.entity.DingEmployeeInfo;
import com.ningdatech.pmapi.organization.model.entity.DingOrganization;

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

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author Lierbao
 * @since 2023-02-09
 */
public interface IDingOrganizationService extends IService<DingOrganization> {

    /**
     * 根据组织code查询组织信息
     *
     * @param orgCode
     * @return
     */
    DingOrganization getByOrgCode(String orgCode);

    /**
     * 根据组织code查询父组织信息
     *
     * @param orgCode
     * @return
     */
    DingOrganization getParentOrganization(String orgCode);

    /**
     * 批量查询单位信息
     *
     * @param codes 单位编码
     * @return 单位信息
     * @author WendyYang
     **/
    List<DingOrganization> listByCodes(Collection<String> codes);

    /**
     * 批量查询单位名称
     *
     * @param codes 单位编码
     * @return 单位信息
     * @author WendyYang
     **/
    List<String> listNameByCodes(Collection<String> codes);


    /**
     * 根据orgCodeList 获取 code 和 名称 Map
     *
     * @param orgCodeList
     * @return
     */
    Map<String, String> getOrgCodeAndNameMap(List<String> orgCodeList);

    Map<String, DingOrganization> getOrgMap(List<String> orgCodeList);

    /**
     * 获取  key：专家code value：组织信息 (所属单位组织信息)
     * @param employeeInfoList
     * @return
     */
    Map<String, DingOrganization> getEmpCodeOrgMap(List<DingEmployeeInfo> employeeInfoList);
}
