using System;
using System.Collections.Generic;
namespace NPP.SmartSchedue.Api.Contracts.Services.Integration.Output
{
///
/// 任务变更分析结果
/// 包含变更检测、影响评估和处理建议
///
public class TaskChangeAnalysisResult
{
///
/// 分析ID
///
public string AnalysisId { get; set; } = Guid.NewGuid().ToString();
///
/// 任务ID
///
public long TaskId { get; set; }
///
/// 变更类型
///
public TaskChangeTypeEnum ChangeType { get; set; }
///
/// 变更影响级别
///
public TaskChangeImpactLevel ImpactLevel { get; set; }
///
/// 变更详情描述
///
public string ChangeDescription { get; set; }
///
/// 影响评估
///
public ChangeImpactAssessment ImpactAssessment { get; set; } = new();
///
/// 当前任务状态分析
///
public CurrentTaskStateAnalysis CurrentStateAnalysis { get; set; } = new();
///
/// 建议的处理方案
///
public List RecommendedActions { get; set; } = new();
///
/// 分析时间
///
public DateTime AnalysisTime { get; set; } = DateTime.Now;
///
/// 分析深度
///
public TaskChangeAnalysisDepth AnalysisDepth { get; set; }
///
/// 是否需要人工干预
///
public bool RequiresManualIntervention { get; set; }
///
/// 预计处理时长(分钟)
///
public int EstimatedProcessingTimeMinutes { get; set; }
///
/// 检测到的详细变更列表
///
public List DetectedChanges { get; set; } = new();
}
///
/// 任务变更分析深度枚举
///
public enum TaskChangeAnalysisDepth
{
///
/// 基础分析 - 只检查直接影响
///
Basic = 1,
///
/// 标准分析 - 包含关联任务检查
///
Standard = 2,
///
/// 详细分析 - 包含详细的变更信息
///
Detailed = 3,
///
/// 深度分析 - 包含全面的影响评估
///
Deep = 4,
///
/// 全量分析 - 最全面的分析,包含性能优化建议
///
Comprehensive = 5
}
///
/// 任务变更影响级别枚举
///
public enum TaskChangeImpactLevel
{
///
/// 无影响
///
None = 0,
///
/// 低影响 - 轻微影响,对现有安排影响很小
///
Low = 1,
///
/// 轻微影响 - 对现有安排影响很小
///
Minor = 1,
///
/// 中等影响 - 需要局部调整
///
Medium = 2,
///
/// 中等影响 - 需要局部调整
///
Moderate = 2,
///
/// 高影响 - 需要大范围调整
///
High = 3,
///
/// 重大影响 - 需要大范围调整
///
Major = 3,
///
/// 严重影响 - 需要重新规划
///
Critical = 4
}
///
/// 变更影响评估
///
public class ChangeImpactAssessment
{
///
/// 受影响的任务数量
///
public int AffectedTaskCount { get; set; }
///
/// 受影响的人员数量
///
public int AffectedPersonnelCount { get; set; }
///
/// 受影响的设备数量
///
public int AffectedEquipmentCount { get; set; }
///
/// 时间窗口冲突数量
///
public int TimeConflictCount { get; set; }
///
/// 资源冲突数量
///
public int ResourceConflictCount { get; set; }
///
/// 预计影响时长(小时)
///
public decimal EstimatedImpactHours { get; set; }
///
/// 详细影响说明
///
public List DetailedImpactDescriptions { get; set; } = new();
}
///
/// 当前任务状态分析
///
public class CurrentTaskStateAnalysis
{
///
/// 任务当前状态
///
public string CurrentStatus { get; set; }
///
/// 完成百分比
///
public decimal CompletionPercentage { get; set; }
///
/// 剩余工作量(小时)
///
public decimal RemainingWorkHours { get; set; }
///
/// 当前分配的人员
///
public List AssignedPersonnel { get; set; } = new();
///
/// 当前使用的设备
///
public List AssignedEquipment { get; set; } = new();
///
/// 是否处于关键路径
///
public bool IsOnCriticalPath { get; set; }
///
/// 状态分析备注
///
public string AnalysisNotes { get; set; }
///
/// 是否可重新分配
///
public bool CanReallocate { get; set; } = true;
///
/// 阻塞原因
///
public string BlockingReason { get; set; } = string.Empty;
///
/// 阻塞任务ID列表
///
public List BlockingTaskIds { get; set; } = new();
///
/// 已分析的任务列表
///
public List AnalyzedTasks { get; set; } = new();
}
}