package cn.iocoder.yudao.module.hrm.service.approval;
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.module.hrm.controller.admin.approval.vo.HrmResignationApplicationPageReqVO;
|
import cn.iocoder.yudao.module.hrm.controller.admin.approval.vo.HrmResignationApplicationRespVO;
|
import cn.iocoder.yudao.module.hrm.controller.admin.approval.vo.HrmResignationApplicationSaveReqVO;
|
import cn.iocoder.yudao.module.hrm.controller.admin.approval.vo.HrmResignationHandoverReqVO;
|
import cn.iocoder.yudao.module.hrm.dal.dataobject.approval.HrmResignationApplicationDO;
|
import jakarta.validation.Valid;
|
|
import java.util.Set;
|
|
/**
|
* 离职申请 Service 接口
|
*
|
* @author 超级管理员
|
*/
|
public interface HrmResignationApplicationService {
|
|
/**
|
* 创建离职申请
|
*
|
* @param createReqVO 创建信息
|
* @return 申请ID
|
*/
|
Long createResignationApplication(@Valid HrmResignationApplicationSaveReqVO createReqVO);
|
|
/**
|
* 更新离职申请
|
*
|
* @param updateReqVO 更新信息
|
*/
|
void updateResignationApplication(@Valid HrmResignationApplicationSaveReqVO updateReqVO);
|
|
/**
|
* 删除离职申请
|
*
|
* @param id 申请ID
|
*/
|
void deleteResignationApplication(Long id);
|
|
/**
|
* 获得离职申请
|
*
|
* @param id 申请ID
|
* @return 离职申请
|
*/
|
HrmResignationApplicationDO getResignationApplication(Long id);
|
|
/**
|
* 获得离职申请详情(含关联信息)
|
*
|
* @param id 申请ID
|
* @return 离职申请详情
|
*/
|
HrmResignationApplicationRespVO getResignationApplicationDetail(Long id);
|
|
/**
|
* 获得离职申请分页
|
*
|
* @param pageReqVO 分页查询
|
* @return 离职申请分页
|
*/
|
PageResult<HrmResignationApplicationRespVO> getResignationApplicationPage(HrmResignationApplicationPageReqVO pageReqVO);
|
|
/**
|
* 提交离职申请审批(草稿 / 审核不通过 → 审批中)
|
*
|
* 审批人由「系统管理 - 审批配置」按业务类型统一指定,提交时无需选择。
|
*
|
* @param id 申请ID
|
*/
|
void submitResignationApplication(Long id);
|
|
/**
|
* 获得离职申请的审批人编号集合,供前端判断是否展示审核按钮
|
*
|
* @return 审批人用户编号集合
|
*/
|
Set<Long> getResignationApplicationApproverUserIds();
|
|
/**
|
* 审核离职申请(审批中 → 审核通过 / 审核不通过)
|
*
|
* 审核通过时回写员工主档(状态=离职,离职日期)。
|
*
|
* @param id 申请ID
|
* @param pass 是否通过
|
* @param reviewRemark 审核意见(不通过时必填)
|
*/
|
void auditResignationApplication(Long id, Boolean pass, String reviewRemark);
|
|
/**
|
* 更新离职申请交接状态
|
*
|
* @param reqVO 交接状态更新信息
|
*/
|
void updateHandoverStatus(@Valid HrmResignationHandoverReqVO reqVO);
|
|
}
|