package com.engine.organization.mapper.hrmresource;


import com.engine.organization.entity.commom.RecordInfo;
import com.engine.organization.entity.jclimport.po.CusFormFieldPO;
import com.engine.organization.entity.jclimport.po.JclSelectItem;
import org.apache.ibatis.annotations.Param;

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

/**
 * @author:dxfeng
 * @createTime: 2022/06/30
 * @version: 1.0
 */
public interface SystemDataMapper {

    String getScCompanyNameById(@Param("companyId") String companyId);

    List<Map<String, Object>> getBrowserDatas(@Param("ids") Collection<Long> ids);

    String getScDepartmentNameById(@Param("departmentId") String departmentId);

    String getScHrmResourceNameById(@Param("managerId") String managerId);

    RecordInfo getHrmObjectByID(@Param("tableName") String tableName, @Param("id") String id);

    RecordInfo getHrmObjectByUUID(@Param("tableName") String tableName, @Param("uuid") String uuid);

    RecordInfo getHrmJobTitleByName(@Param("name") String name);

    List<Long> getHrmResourceIds(@Param("departmentId") Integer departmentId, @Param("jobTitle") String jobTitle);

    List<Long> getHrmResourceIdsByDept(@Param("departmentId") String departmentId);

    /**
     * 更新人员岗位
     *
     * @param jobTitle
     * @param ids
     * @return
     */
    int updateResourceJobTitleByIds(@Param("jobTitle") String jobTitle, @Param("ids") Collection<Long> ids);

    /**
     * 人员，hrmResource表字段
     *
     * @return
     */
    List<CusFormFieldPO> getHrmFieldBeanList();

    List<CusFormFieldPO> getHrmFieldBeanListByFields(@Param("fields") Collection<String> fields);

    List<CusFormFieldPO> getHrmCustomFieldList();

    List<JclSelectItem> getSelectItems(@Param("tableName") String tableName, @Param("fieldId") Long fieldId);

    Long getHrmResourceMaxId();

    List<String> getBatchUuidByIds(@Param("tableName") String tableName, @Param("ecIds") List<String> ecIds);

    List<CusFormFieldPO> getHrmFieldsByScopeId(@Param("scopeId") String scopeId);

    List<Integer> getJobTitleIds(@Param("jobActivityId") String jobActivityId, @Param("jobGroupId") String jobGroupId);
}
