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; }
}