using System; using System.Collections.Generic; namespace NPP.SmartSchedue.Api.Contracts.Domain.Integration; /// /// 整合记录快照数据 /// 用于记录整合记录在特定时刻的完整状态 /// /// 业务价值: /// 1. 状态追踪:记录整合记录在关键时刻的完整状态 /// 2. 变更对比:支持前后状态的对比分析 /// 3. 回滚支持:为状态回滚提供数据基础 /// 4. 审计完整:提供完整的状态变更审计信息 /// public class IntegrationSnapshot { /// /// 快照时间 /// public DateTime SnapshotTime { get; set; } = DateTime.Now; /// /// 快照类型 /// public string SnapshotType { get; set; } = string.Empty; /// /// 整合记录状态 /// public string RecordStatus { get; set; } = string.Empty; /// /// 任务状态快照 /// 记录所有相关任务在快照时刻的状态 /// public List TaskStatusSnapshots { get; set; } = new(); /// /// 人员分配快照 /// 记录人员分配在快照时刻的状态 /// public List PersonnelAssignmentSnapshots { get; set; } = new(); /// /// 设备分配快照 /// 记录设备分配在快照时刻的状态 /// public List EquipmentAssignmentSnapshots { get; set; } = new(); /// /// 统计信息快照 /// public StatisticsSnapshot StatisticsSnapshot { get; set; } = new(); /// /// 备注信息 /// public string Remarks { get; set; } = string.Empty; } /// /// 任务状态快照 /// public class TaskStatusSnapshot { /// /// 任务ID /// public long TaskId { get; set; } /// /// 任务代码 /// public string TaskCode { get; set; } = string.Empty; /// /// 任务状态 /// public string Status { get; set; } = string.Empty; /// /// 分配的人员ID /// public long? AssignedPersonnelId { get; set; } /// /// 分配的人员姓名 /// public string AssignedPersonnelName { get; set; } = string.Empty; /// /// 分配的设备ID /// public long? AssignedEquipmentId { get; set; } /// /// 分配的设备名称 /// public string AssignedEquipmentName { get; set; } = string.Empty; /// /// 快照时间 /// public DateTime SnapshotTime { get; set; } } /// /// 人员分配快照 /// public class PersonnelAssignmentSnapshot { /// /// 人员ID /// public long PersonnelId { get; set; } /// /// 人员姓名 /// public string PersonnelName { get; set; } = string.Empty; /// /// 分配的任务ID列表 /// public List AssignedTaskIds { get; set; } = new(); /// /// 工作负载百分比 /// public decimal WorkloadPercentage { get; set; } /// /// 快照时间 /// public DateTime SnapshotTime { get; set; } } /// /// 设备分配快照 /// public class EquipmentAssignmentSnapshot { /// /// 设备ID /// public long EquipmentId { get; set; } /// /// 设备名称 /// public string EquipmentName { get; set; } = string.Empty; /// /// 分配的任务ID列表 /// public List AssignedTaskIds { get; set; } = new(); /// /// 利用率百分比 /// public decimal UtilizationRate { get; set; } /// /// 快照时间 /// public DateTime SnapshotTime { get; set; } } /// /// 统计信息快照 /// public class StatisticsSnapshot { /// /// 总任务数 /// public int TotalTaskCount { get; set; } /// /// 成功任务数 /// public int SuccessTaskCount { get; set; } /// /// 失败任务数 /// public int FailedTaskCount { get; set; } /// /// 成功率 /// public decimal SuccessRate { get; set; } /// /// 人员公平性评分 /// public int PersonnelFairnessScore { get; set; } /// /// 设备利用率 /// public decimal EquipmentUtilizationRate { get; set; } /// /// 快照时间 /// public DateTime SnapshotTime { get; set; } }