package jnpf.attendance.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
import jnpf.entity.AttendanceGroup;
import jnpf.entity.attendance.AttendanceFestivalSettingEntity;
import jnpf.base.service.SuperService;
import jnpf.exception.HandleException;
import jnpf.model.attendance.dto.AttendanceFestivalSettingDto;
import jnpf.model.attendance.vo.AttendanceFestivalSettingVo;
import jnpf.model.attendance.vo.HolidayOptionVo;
import java.util.List;
import java.util.Map;
/**
*
* 考勤配置-节日配置 服务类
*
*
* @author ahua
* @since 2023-11-29
*/
public interface AttendanceFestivalSettingService extends SuperService {
/**
* 保存节日设置信息。
*
* @param attendanceFestivalSettingDto 节日设置数据传输对象
* @throws HandleException 处理异常
*/
void save(AttendanceFestivalSettingDto attendanceFestivalSettingDto) throws HandleException;
/**
* 分页查询节日设置信息。
*
* @param groupId 考勤组ID
* @param year 年份
* @param page 页码
* @param size 每页大小
* @return 分页的节日设置视图对象
* @throws HandleException 处理异常
*/
PageDTO page(String groupId, String year, Integer page, Integer size) throws HandleException;
/**
* 根据ID获取单个节日设置信息。
*
* @param id 节日设置ID
* @return 节日设置视图对象
*/
AttendanceFestivalSettingVo getOne(String id);
/**
* 删除指定的节日设置信息。
*
* @param id 节日设置ID
*/
void del(String id);
/**
* 获取启用状态的节日设置信息。
*
* @param groupIds 考勤组ID列表
* @param attendanceGroupVos 考勤组视图对象列表
* @return 启用的节日设置信息映射
*/
Map> getEnableFestivalSetting(List groupIds, List attendanceGroupVos);
/**
* 自动授予假期余额。
*/
// void autoGrantBalance();
/**
* 更新法定节日信息。
*
* @param groupId 考勤组ID
* @param year 年份
*/
void statutoryUpdate(String groupId, String year);
/**
* 更新节日设置信息的启用状态。
*
* @param id 节日设置ID
* @param enable 启用状态(0禁用,1启用)
* @throws HandleException 处理异常
*/
void updateStatus(String id, Integer enable) throws HandleException;
/**
* 初始化节日设置。
*
* @param groupId 考勤组ID
*/
void initFestivalSetting(String groupId);
/**
* 获取节日选项列表。
*
* @param groupId 考勤组ID
* @return 节日选项视图对象列表
*/
List getHolidayOptions(String groupId);
}