Files
jinko.yikatong/Src/Dlhis.Basic/WorkGrids/Services/IWorkGridScheduleService.cs

71 lines
2.6 KiB
C#

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;
/// <summary>
/// 网格排班
/// </summary>
public interface IWorkGridScheduleService : IScopeDependency
{
/// <summary>
/// 保存网格排班信息
/// </summary>
/// <param name="request">排班保存请求参数</param>
Task SaveAsync(WorkGridScheduleSaveRequest request);
/// <summary>
/// 移除网格排班信息
/// </summary>
/// <param name="request">排班移除请求参数</param>
Task RemoveAsync(WorkGridScheduleSaveRequest request);
/// <summary>
/// 获取指定网格、日期和时段的排班列表
/// </summary>
/// <param name="workGridCode">网格编码</param>
/// <param name="date">日期</param>
/// <param name="periodType">时段类型</param>
/// <returns>排班列表</returns>
Task<List<WorkGridScheduleResponse>> GetListAsync(Guid workGridCode, DateOnly date, WorkGridTimePeriodEnumType? periodType);
/// <summary>
/// 获取指定网格和日期范围的排班汇总列表
/// </summary>
/// <param name="workGridCode">网格编码</param>
/// <param name="dateTimePeriod"></param>
/// <returns>排班汇总列表</returns>
Task<List<WorkGridScheduleSummaryResponse>> GetListSummaryAsync(Guid workGridCode, DateTimePeriod dateTimePeriod);
/// <summary>
/// 获取排班考勤分页数据
/// </summary>
/// <param name="request">考勤分页请求参数</param>
/// <returns>排班考勤分页数据</returns>
Task<Pagination<WorkGridScheduleAttendancePageResponse>> GetAttendancePageAsync(WorkGridScheduleAttendancePageRequest request);
/// <summary>
/// 获取所有排班考勤分页数据
/// </summary>
/// <param name="request">考勤分页请求参数</param>
/// <returns>排班考勤分页数据</returns>
Task<Pagination<WorkGridScheduleAttendancePageResponse>> GetAllAttendancePageAsync(WorkGridScheduleAttendancePageRequest request);
/// <summary>
/// 手动上传考勤日志
/// </summary>
/// <param name="logIds">考勤日志ID列表</param>
Task ManuallyUploadAsync(List<long> logIds);
/// <summary>
/// 手动取消排班
/// </summary>
/// <remarks>只能操作历史数据</remarks>
/// <param name="id"></param>
/// <param name="reason"></param>
/// <returns></returns>
Task ManuallyCancelAsync(long id, string reason);
}