package com.engine.organization.mapper.hrmresource;


import com.engine.organization.entity.commom.RecordInfo;
import com.engine.organization.entity.cusfielddata.po.CusFieldData;
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;

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

    //JSONObject getSysLanguageByLicense();

    //List<JSONObject> getSysLanguageByActivable();

    //List<JSONObject> getHrmEducationLevelData();

    //List<JSONObject> getHrmJobCallData();

    //List<JSONObject> getHrmLocationsByCountryId();

    //List<JSONObject> getHrmUseKindData();

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

    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") Long 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);


    CusFieldData getHrmCusFieldDataByIdAndScopeId(@Param("id") Long id, @Param("scopeId") Long scopeId);

    int insertCusFieldData(CusFieldData cusFieldData);

    int updateCusFieldData(CusFieldData cusFieldData);

    Long getHrmResourceMaxId();

}
