package cn.iocoder.yudao.module.hrm.service.attendance;
|
|
import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmEmployeeScheduleBatchAssignReqVO;
|
import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmEmployeeScheduleBatchAssignRespVO;
|
import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmEmployeeScheduleLeaveRespVO;
|
import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmEmployeeScheduleListReqVO;
|
import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmEmployeeScheduleRespVO;
|
import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmEmployeeScheduleSaveReqVO;
|
|
import java.util.List;
|
|
/**
|
* 员工排班 Service 接口
|
*
|
* @author 超级管理员
|
*/
|
public interface HrmEmployeeScheduleService {
|
|
/**
|
* 查询某月排班列表
|
*/
|
List<HrmEmployeeScheduleRespVO> getScheduleList(HrmEmployeeScheduleListReqVO reqVO);
|
|
/**
|
* 批量保存排班(整月覆盖式:有班次 upsert,无班次删除)
|
*/
|
void saveSchedule(List<HrmEmployeeScheduleSaveReqVO> saveReqVOList);
|
|
/**
|
* 批量排班:按部门(含下级)+ 岗位 + 员工状态筛选员工,按日期区间统一排班。
|
*
|
* 规则:
|
* 1. 节假日配置优先于周六日规则(由 {@code isWorkDay} 决定工作日/休息日);
|
* 2. 工作日写入指定班次,休息日/节假日清空原有班次;
|
* 3. 员工当天存在已审批通过的请假时跳过,不改动该单元格;
|
* 4. 逻辑删除后遗留的唯一键冲突通过“复活旧行”规避。
|
*/
|
HrmEmployeeScheduleBatchAssignRespVO batchAssign(HrmEmployeeScheduleBatchAssignReqVO reqVO);
|
|
/**
|
* 查询排班页需要标记的请假日期(已审批通过,按天展开)
|
*/
|
List<HrmEmployeeScheduleLeaveRespVO> getScheduleLeaveList(HrmEmployeeScheduleListReqVO reqVO);
|
|
}
|