package cn.iocoder.yudao.module.hrm.service.attendance;
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceHolidayGroupRespVO;
|
import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceHolidayPageReqVO;
|
import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceHolidayRangeCreateReqVO;
|
import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceHolidayRangeUpdateReqVO;
|
import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceHolidaySaveReqVO;
|
import cn.iocoder.yudao.module.hrm.dal.dataobject.attendance.HrmAttendanceHolidayDO;
|
import jakarta.validation.Valid;
|
|
import java.time.LocalDate;
|
import java.util.List;
|
|
/**
|
* 考勤节假日配置 Service 接口
|
*
|
* @author 超级管理员
|
*/
|
public interface HrmAttendanceHolidayService {
|
|
/**
|
* 新增节假日配置
|
*
|
* @param createReqVO 新增信息
|
* @return 节假日ID
|
*/
|
Long createAttendanceHoliday(@Valid HrmAttendanceHolidaySaveReqVO createReqVO);
|
|
/**
|
* 按日期范围新增节假日配置(含起止日期之间的每一天)
|
*
|
* @param createReqVO 新增信息
|
* @return 新增的节假日数量
|
*/
|
Integer createAttendanceHolidayRange(@Valid HrmAttendanceHolidayRangeCreateReqVO createReqVO);
|
|
/**
|
* 更新节假日配置
|
*
|
* @param updateReqVO 更新信息
|
*/
|
void updateAttendanceHoliday(@Valid HrmAttendanceHolidaySaveReqVO updateReqVO);
|
|
/**
|
* 按日期区间更新节假日配置:删除区间内原记录,再按新起止日期重新写入每一天
|
*
|
* @param updateReqVO 更新信息
|
*/
|
void updateAttendanceHolidayRange(@Valid HrmAttendanceHolidayRangeUpdateReqVO updateReqVO);
|
|
/**
|
* 按日期区间删除节假日配置(删除区间内全部记录)
|
*
|
* @param ids 区间内记录ID列表
|
*/
|
void deleteAttendanceHolidayRange(List<Long> ids);
|
|
/**
|
* 删除节假日配置
|
*
|
* @param id 节假日ID
|
*/
|
void deleteAttendanceHoliday(Long id);
|
|
/**
|
* 获得节假日配置
|
*
|
* @param id 节假日ID
|
* @return 节假日配置
|
*/
|
HrmAttendanceHolidayDO getAttendanceHoliday(Long id);
|
|
/**
|
* 获得节假日配置分页
|
*
|
* @param pageReqVO 分页查询参数
|
* @return 节假日配置分页
|
*/
|
PageResult<HrmAttendanceHolidayDO> getAttendanceHolidayPage(HrmAttendanceHolidayPageReqVO pageReqVO);
|
|
/**
|
* 获得按连续日期区间合并后的节假日分页
|
*
|
* 库里按自然日存储,列表侧按「日期连续 + 名称/类型/是否法定/备注一致」合并成一行展示。
|
*
|
* @param pageReqVO 分页查询参数
|
* @return 合并后的节假日分页
|
*/
|
PageResult<HrmAttendanceHolidayGroupRespVO> getAttendanceHolidayGroupPage(HrmAttendanceHolidayPageReqVO pageReqVO);
|
|
/**
|
* 获得指定日期范围的节假日列表
|
*
|
* @param startDate 开始日期
|
* @param endDate 结束日期
|
* @return 节假日列表
|
*/
|
List<HrmAttendanceHolidayDO> getAttendanceHolidayListByDateRange(LocalDate startDate, LocalDate endDate);
|
|
/**
|
* 判断是否工作日
|
*
|
* @param date 日期
|
* @return true-工作日,false-休息日
|
*/
|
boolean isWorkDay(LocalDate date);
|
|
}
|