using Dlhis.Basic.WorkGrids.Request;
using Dlhis.Basic.WorkGrids.Response;
using Dlhis.Entity.Basic.Enums;
using Kurisu.AspNetCore.CustomClass;
using Kurisu.AspNetCore.DataAccess.Dto;
namespace Dlhis.Basic.WorkGrids.Services;
///
/// 网格排班
///
public interface IWorkGridScheduleService : IScopeDependency
{
///
/// 保存网格排班信息
///
/// 排班保存请求参数
Task SaveAsync(WorkGridScheduleSaveRequest request);
///
/// 移除网格排班信息
///
/// 排班移除请求参数
Task RemoveAsync(WorkGridScheduleSaveRequest request);
///
/// 获取指定网格、日期和时段的排班列表
///
/// 网格编码
/// 日期
/// 时段类型
/// 排班列表
Task> GetListAsync(Guid workGridCode, DateOnly date, WorkGridTimePeriodEnumType? periodType);
///
/// 获取指定网格和日期范围的排班汇总列表
///
/// 网格编码
///
/// 排班汇总列表
Task> GetListSummaryAsync(Guid workGridCode, DateTimePeriod dateTimePeriod);
///
/// 获取排班考勤分页数据
///
/// 考勤分页请求参数
/// 排班考勤分页数据
Task> GetAttendancePageAsync(WorkGridScheduleAttendancePageRequest request);
///
/// 获取所有排班考勤分页数据
///
/// 考勤分页请求参数
/// 排班考勤分页数据
Task> GetAllAttendancePageAsync(WorkGridScheduleAttendancePageRequest request);
///
/// 手动上传考勤日志
///
/// 考勤日志ID列表
Task ManuallyUploadAsync(List logIds);
///
/// 手动取消排班
///
/// 只能操作历史数据
///
///
///
Task ManuallyCancelAsync(long id, string reason);
}