tuqin
23 小时以前 ba100c651a81162a9a9a4533ff4d072f2889171a
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeService.java
@@ -1,6 +1,9 @@
package cn.iocoder.yudao.module.hrm.service.employee;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.hrm.controller.admin.employee.vo.HrmEmployeeImportExcelVO;
import cn.iocoder.yudao.module.hrm.controller.admin.employee.vo.HrmEmployeeImportReqVO;
import cn.iocoder.yudao.module.hrm.controller.admin.employee.vo.HrmEmployeeImportRespVO;
import cn.iocoder.yudao.module.hrm.controller.admin.employee.vo.HrmEmployeePageReqVO;
import cn.iocoder.yudao.module.hrm.controller.admin.employee.vo.HrmEmployeeRespVO;
import cn.iocoder.yudao.module.hrm.controller.admin.employee.vo.HrmEmployeeSaveReqVO;
@@ -81,6 +84,34 @@
    List<HrmEmployeeDO> getEmployeeList(Collection<Long> ids);
    /**
     * 获得指定状态的员工列表(返回 DO)
     *
     * <p>注意:不能把 null 传给 {@link #getEmployeeList(Collection)},
     * MyBatis-Plus 的 selectByIds(null) 会抛 "The expression 'coll' evaluated to a null value"。
     *
     * @param employeeStatus 员工状态,为 null 时查询全部
     * @return 员工列表
     */
    List<HrmEmployeeDO> getEmployeeListByStatus(Integer employeeStatus);
    /**
     * 调岗生效:把员工档案的部门/岗位同步为目标部门/目标岗位
     *
     * @param employeeId    员工编号(hrm_employee.id)
     * @param targetDeptId  目标部门编号,为 null 时不改
     * @param targetPostId  目标岗位编号,为 null 时不改
     */
    void syncEmployeeTransfer(Long employeeId, Long targetDeptId, Long targetPostId);
    /**
     * 离职生效:把员工档案状态置为「离职」
     *
     * @param systemUserId 系统用户编号(hrm_employee.user_id,即 system_users.id)
     * @param leaveDate    离职日期,为 null 时取当天
     */
    void syncEmployeeResignation(Long systemUserId, java.time.LocalDate leaveDate);
    /**
     * 获得指定状态的员工简单列表
     *
     * @param employeeStatus 员工状态,为 null 时查询全部
@@ -96,4 +127,43 @@
     */
    HrmEmployeeDO getEmployeeByUserId(Long userId);
    /** 根据员工姓名获取员工 */
    HrmEmployeeDO getEmployeeByName(String name);
    /**
     * 按姓名模糊查询员工列表(列表页姓名搜索用)
     *
     * @param name 姓名关键字
     * @return 员工列表
     */
    List<HrmEmployeeDO> getEmployeeListByNameLike(String name);
    /** 根据员工姓名获取所有同名员工 */
    List<HrmEmployeeDO> getEmployeeListByName(String name);
    /**
     * 导入员工列表
     *
     * @param importEmployees 员工导入列表
     * @param importReqVO 导入请求
     * @return 导入结果
     */
    HrmEmployeeImportRespVO importEmployeeList(List<HrmEmployeeImportExcelVO> importEmployees,
                                               HrmEmployeeImportReqVO importReqVO);
    /**
     * 员工转正:仅「劳动合同」可转正(劳务合同不可),状态 试用 -> 在职,记录转正日期
     *
     * @param id 员工ID
     */
    void regularizeEmployee(Long id);
    /**
     * 获得待转正提醒列表:试用中、且当前为劳动合同、试用期在 days 天内到期的员工
     *
     * @param days 提前天数
     * @return 员工列表
     */
    List<HrmEmployeeDO> getRegularizeReminderList(Integer days);
}