package com.engine.salary.service;
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
import com.engine.salary.entity.hrm.DeptInfo;
import com.engine.salary.entity.hrm.PositionInfo;
import com.engine.salary.entity.hrm.SubCompanyInfo;
import com.engine.salary.entity.hrm.dto.EmployeeInfoExpandDTO;
import com.engine.salary.entity.salarysob.param.SalarySobRangeEmpQueryParam;
import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum;
import java.util.List;
import java.util.Map;
/**
* 人员信息
*
Copyright: Copyright (c) 2022
* Company: 泛微软件
*
* @author qiantao
* @version 1.0
**/
public interface SalaryEmployeeService {
/**
* 获取租户下的所有人员
*
* @return
*/
List listAll(UseEmployeeTypeEnum empType);
/**
* 获取报表人员字段
*
* @return
*/
List listAllForReport();
/**
* 根据薪资账套id查询人员
*
* @param salarySobId 薪资账套id
* @return
*/
List listBySalarySobId(Long salarySobId);
/**
* 获取人员信息
*
* @param ids
* @return 全量
*/
List getEmployeeByIdsAll(List ids);
List listByIds(List ids);
/**
* 获取人员信息
*
* @param employeeId
* @return 全量
*/
DataCollectionEmployee getEmployeeById(Long employeeId);
/**
* 获取人员信息
*
* @param simpleEmployeeIds
* @return 简单
*/
List getEmployeeByIds(List simpleEmployeeIds);
/**
* 获取当前登录人的信息
* @param employeeId
* @return
*/
// DataCollectionEmployee getLoginEmployeeById(Long employeeId);
/**
* 筛选导入人员信息可以在人力资源池中匹配到的人员信息
*
* @param confValue 校验方式
* @param employeeList 人力资源池
* @param userName 姓名
* @param deparmentName 部门
* @param mobile 手机号
* @param workcode 工号
* @param uid 人员id
*/
List matchImportEmployee(String confValue, List employeeList, String userName, String deparmentName, String mobile, String workcode, Long uid);
String empValidType();
List getDeptInfoList(List departmentIds);
List getVirtualDeptInfoList(List virtualDepartmentIds);
List getSubCompanyInfoList(List subDepartmentIds);
List getVirtualSubCompanyInfoList(List virtualSubDepartmentIds);
List listPositionInfo(List positionIds);
List listEmployee();
List listByParams(List includeQueryParams);
/**
* 根据离职日期获取离职信息
*
* @param formatDate
*/
Map getResignationMapByDate(String formatDate);
/**
* 扩展人员信息
*
* @param ids
* @param param
* @return
*/
List expandEmployeeInfo(List ids, EmployeeInfoExpandDTO param);
Map> expandEmployeeMap(List ids, EmployeeInfoExpandDTO param);
/**
* 保存扩展信息
*
* @param param
*/
void saveEmployeeExpandFieldSettings(EmployeeInfoExpandDTO param);
/**
* 获取扩展信息
*
* @param module
* @return
*/
EmployeeInfoExpandDTO getExpandFieldSettings(String module);
/**
* 根据虚拟部门获取人员信息
* @param virtualDepartmentIds
*/
List getVirtualEmpByVirtualDepIds(List virtualDepartmentIds);
/**
* 根据虚拟分部获取人员信息
* @param virtualSubCompanyIds
*/
List getVirtualEmpByVirtualSubCompanyIds(List virtualSubCompanyIds);
}