using System; using System.Collections.Generic; using NPP.SmartSchedue.Api.Contracts.Core.Enums; namespace NPP.SmartSchedue.Api.Contracts.Services.Time.Output; /// /// 网格视图数据输出模型 /// 用于前端网格组件的数据展示 /// public class GridDataOutput { /// /// 网格数据:日期 -> (班次ID -> 单元格数据) 的嵌套字典 /// public Dictionary> Grid { get; set; } = new(); /// /// 班次信息列表 /// public List Shifts { get; set; } = new(); /// /// 日期列表(按顺序) /// public List Dates { get; set; } = new(); /// /// 统计信息 /// public GridStatistics Statistics { get; set; } = new(); /// /// 月份信息 /// public string MonthDisplay { get; set; } /// /// 员工信息 /// public PersonnelInfo Personnel { get; set; } } /// /// 网格单元格数据 /// public class CellData { /// /// 是否不可用 /// public bool IsUnavailable { get; set; } /// /// 不可用原因类型(如果不可用) /// public UnavailabilityReasonType? ReasonType { get; set; } /// /// 显示符号 /// public string DisplaySymbol { get; set; } /// /// CSS样式类名 /// public string CssClass { get; set; } /// /// 备注信息 /// public string Remark { get; set; } /// /// 优先级 /// public int Priority { get; set; } /// /// 是否为模板生成 /// public bool IsFromTemplate { get; set; } /// /// 记录ID(用于编辑操作) /// public long? RecordId { get; set; } /// /// 工具提示文本 /// public string TooltipText { get; set; } } /// /// 班次信息 /// public class ShiftInfo { /// /// 班次ID /// public long Id { get; set; } /// /// 班次名称 /// public string Name { get; set; } /// /// 班次编号 /// public int ShiftNumber { get; set; } /// /// 开始时间 /// public TimeSpan StartTime { get; set; } /// /// 结束时间 /// public TimeSpan EndTime { get; set; } /// /// 时间范围显示 /// public string TimeRange { get; set; } /// /// 是否启用 /// public bool IsEnabled { get; set; } } /// /// 网格统计信息 /// public class GridStatistics { /// /// 总不可用次数 /// public int TotalCount { get; set; } /// /// 按班次统计:班次ID -> 不可用次数 /// public Dictionary ShiftCounts { get; set; } = new(); /// /// 按原因类型统计:原因类型 -> 不可用次数 /// public Dictionary ReasonTypeCounts { get; set; } = new(); /// /// 按分组统计:分组 -> 不可用次数 /// public Dictionary CategoryCounts { get; set; } = new(); /// /// 模板生成的记录数 /// public int TemplateGeneratedCount { get; set; } /// /// 手动创建的记录数 /// public int ManualCreatedCount { get; set; } } /// /// 员工信息 /// public class PersonnelInfo { /// /// 员工ID /// public long Id { get; set; } /// /// 员工姓名 /// public string Name { get; set; } /// /// 员工工号 /// public string Code { get; set; } /// /// 部门名称 /// public string DepartmentName { get; set; } /// /// 职位名称 /// public string PositionName { get; set; } }