using System; using System.Collections.Generic; using NPP.SmartSchedue.Api.Contracts.Services.Time.Output; using NPP.SmartSchedue.Api.Contracts.Services.Work.Output; namespace NPP.SmartSchedue.Api.Contracts.Services.Integration.Output; /// /// 发布整合记录结果 /// 包含发布操作的详细结果和状态信息 /// public class PublishIntegrationRecordResult { /// /// 发布是否成功 /// public bool IsSuccess { get; set; } /// /// 发布成功消息 /// public string SuccessMessage { get; set; } = string.Empty; /// /// 发布失败消息 /// public string ErrorMessage { get; set; } = string.Empty; /// /// 整合记录ID /// public long IntegrationRecordId { get; set; } /// /// 发布时间 /// public DateTime PublishedTime { get; set; } /// /// 发布的批次编码 /// public string IntegrationBatchCode { get; set; } = string.Empty; /// /// 成功发布的任务详情 /// public List PublishedTasks { get; set; } = new(); /// /// 发布失败的任务详情 /// public List FailedPublishTasks { get; set; } = new(); /// /// 任务状态更新结果 /// 记录任务状态同步的详细情况 /// public TaskStatusSyncResult TaskStatusSyncResult { get; set; } = new(); /// /// 发布前验证结果 /// 包含所有预发布检查的结果 /// public PublishValidationResult ValidationResult { get; set; } = new(); /// /// 通知发送结果 /// 记录发布后通知的发送情况 /// public List NotificationResults { get; set; } = new(); /// /// 发布统计信息 /// public PublishStatistics Statistics { get; set; } = new(); /// /// 警告信息列表 /// 发布成功但存在需要注意的问题 /// public List WarningMessages { get; set; } = new(); } /// /// 已发布任务详情 /// public class PublishedTaskDetail { /// /// 任务ID /// public long TaskId { get; set; } /// /// 任务代码 /// public string TaskCode { 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 string PreviousStatus { get; set; } = string.Empty; /// /// 发布后状态 /// public string CurrentStatus { get; set; } = string.Empty; /// /// 任务发布时间 /// public DateTime PublishTime { get; set; } } /// /// 发布失败任务详情 /// public class FailedPublishTaskDetail { /// /// 任务ID /// public long TaskId { get; set; } /// /// 任务代码 /// public string TaskCode { get; set; } = string.Empty; /// /// 失败原因 /// public string FailureReason { get; set; } = string.Empty; /// /// 详细错误信息 /// public List DetailedErrors { get; set; } = new(); /// /// 解决建议 /// public List Suggestions { get; set; } = new(); } /// /// 任务状态同步结果 /// public class TaskStatusSyncResult { /// /// 同步是否完全成功 /// public bool IsFullySuccessful { get; set; } /// /// 成功同步的任务数量 /// public int SuccessfulSyncCount { get; set; } /// /// 同步失败的任务数量 /// public int FailedSyncCount { get; set; } /// /// 同步详细结果 /// public List SyncDetails { get; set; } = new(); /// /// 同步耗时(毫秒) /// public long SyncElapsedMilliseconds { get; set; } } /// /// 任务同步详情 /// public class TaskSyncDetail { /// /// 任务ID /// public long TaskId { get; set; } /// /// 任务代码 /// public string TaskCode { get; set; } = string.Empty; /// /// 同步是否成功 /// public bool IsSyncSuccessful { get; set; } /// /// 原始状态 /// public string OriginalStatus { get; set; } = string.Empty; /// /// 目标状态 /// public string TargetStatus { get; set; } = string.Empty; /// /// 实际状态 /// public string ActualStatus { get; set; } = string.Empty; /// /// 同步错误信息 /// public string SyncError { get; set; } = string.Empty; /// /// 同步时间 /// public DateTime SyncTime { get; set; } } /// /// 发布验证结果 /// public class PublishValidationResult { /// /// 验证是否通过 /// public bool IsValid { get; set; } /// /// 验证执行时间 /// public DateTime ValidationTime { get; set; } /// /// 阻塞性错误(会阻止发布) /// public List BlockingErrors { get; set; } = new(); /// /// 警告性问题(不阻止发布但需要注意) /// public List Warnings { get; set; } = new(); /// /// 验证详情 /// public string ValidationDetails { get; set; } = string.Empty; } /// /// 整合通知发送结果 /// public class IntegrationNotificationResult { /// /// 通知类型 /// public string NotificationType { get; set; } = string.Empty; /// /// 接收人员ID /// public long RecipientId { get; set; } /// /// 接收人员姓名 /// public string RecipientName { get; set; } = string.Empty; /// /// 发送是否成功 /// public bool IsSent { get; set; } /// /// 发送时间 /// public DateTime SentTime { get; set; } /// /// 发送失败原因 /// public string FailureReason { get; set; } = string.Empty; } /// /// 发布统计信息 /// public class PublishStatistics { /// /// 总任务数 /// public int TotalTaskCount { get; set; } /// /// 成功发布任务数 /// public int SuccessfulPublishCount { get; set; } /// /// 发布失败任务数 /// public int FailedPublishCount { get; set; } /// /// 涉及人员数量 /// public int InvolvedPersonnelCount { get; set; } /// /// 涉及设备数量 /// public int InvolvedEquipmentCount { get; set; } /// /// 发布成功率 /// public decimal PublishSuccessRate { get; set; } /// /// 发布总耗时(毫秒) /// public long TotalElapsedMilliseconds { get; set; } }