using System; using System.Collections.Generic; namespace NPP.SmartSchedue.Api.Contracts.Services.Integration.Output { /// /// 全局优化分配结果 /// public class GlobalAllocationResult { /// /// 是否分配成功 /// public bool IsSuccess { get; set; } /// /// 成功分配的任务-人员匹配 /// public List SuccessfulMatches { get; set; } = new(); /// /// 失败的分配项 /// public List FailedAllocations { get; set; } = new(); /// /// 全局优化性能指标 /// public GlobalOptimizationMetrics OptimizationMetrics { get; set; } = new(); /// /// 智能协商执行结果 /// public List NegotiationActions { get; set; } = new(); /// /// 工作负载公平性分析 /// public GlobalWorkloadFairnessAnalysis FairnessAnalysis { get; set; } = new(); /// /// 约束冲突检测结果 /// public List ConflictDetections { get; set; } = new(); /// /// 分配摘要 /// public string AllocationSummary { get; set; } = string.Empty; /// /// 处理详情 /// public string ProcessingDetails { get; set; } = string.Empty; } /// /// 全局任务人员匹配 /// public class GlobalTaskPersonnelMatch { /// /// 任务ID /// public long TaskId { get; set; } /// /// 任务编码 /// public string TaskCode { get; set; } = string.Empty; /// /// 人员ID /// public long PersonnelId { get; set; } /// /// 人员姓名 /// public string PersonnelName { get; set; } = string.Empty; /// /// 匹配评分 /// public int MatchScore { get; set; } /// /// 匹配原因 /// public string MatchReason { get; set; } = string.Empty; /// /// 资质匹配情况 /// public List QualificationMatches { get; set; } = new(); /// /// 预估效率 /// public decimal EstimatedEfficiency { get; set; } } /// /// 全局分配失败项 /// public class GlobalFailedAllocation { /// /// 任务ID /// public long TaskId { get; set; } /// /// 任务编码 /// public string TaskCode { get; set; } = string.Empty; /// /// 失败原因 /// public string FailureReason { get; set; } = string.Empty; /// /// 冲突详情 /// public List ConflictDetails { get; set; } = new(); } /// /// 全局优化性能指标 /// public class GlobalOptimizationMetrics { /// /// 算法执行时间(毫秒) /// public long ExecutionTimeMs { get; set; } /// /// 遗传算法迭代次数 /// public int ActualGenerations { get; set; } /// /// 种群大小 /// public int PopulationSize { get; set; } /// /// 最终收敛度 /// public double ConvergenceLevel { get; set; } /// /// 最佳适应度分数 /// public double BestFitnessScore { get; set; } /// /// 平均适应度分数 /// public double AverageFitnessScore { get; set; } /// /// 约束满足率 /// public double ConstraintSatisfactionRate { get; set; } } /// /// 全局工作负载公平性分析 /// public class GlobalWorkloadFairnessAnalysis { /// /// 基尼系数 /// public double GiniCoefficient { get; set; } /// /// 公平性等级 /// public GlobalFairnessLevel FairnessLevel { get; set; } /// /// 人员工作负载分布 /// public Dictionary PersonnelWorkloads { get; set; } = new(); /// /// 负载标准差 /// public double WorkloadStandardDeviation { get; set; } /// /// 最大工作负载差异 /// public decimal MaxWorkloadDifference { get; set; } } /// /// 全局人员工作负载信息 /// public class GlobalPersonnelWorkloadInfo { /// /// 人员ID /// public long PersonnelId { get; set; } /// /// 人员姓名 /// public string PersonnelName { get; set; } = string.Empty; /// /// 分配的任务数量 /// public int AssignedTaskCount { get; set; } /// /// 预估总工时 /// public decimal EstimatedTotalHours { get; set; } /// /// 工作负载百分比 /// public double WorkloadPercentage { get; set; } /// /// 分配的任务列表 /// public List AssignedTaskIds { get; set; } = new(); } /// /// 全局智能协商操作 /// public class GlobalNegotiationAction { /// /// 操作类型 /// public GlobalNegotiationActionType ActionType { get; set; } /// /// 任务ID /// public long TaskId { get; set; } /// /// 原人员ID /// public long? OriginalPersonnelId { get; set; } /// /// 新人员ID /// public long? NewPersonnelId { get; set; } /// /// 操作原因 /// public string Reason { get; set; } = string.Empty; /// /// 协商成功 /// public bool IsSuccessful { get; set; } } /// /// 全局冲突检测信息 /// public class GlobalConflictDetectionInfo { /// /// 冲突类型 /// public GlobalConflictType ConflictType { get; set; } /// /// 涉及的任务ID /// public long TaskId { get; set; } /// /// 涉及的人员ID /// public long PersonnelId { get; set; } /// /// 冲突严重程度 /// public GlobalConflictSeverity Severity { get; set; } /// /// 冲突描述 /// public string Description { get; set; } = string.Empty; /// /// 是否已解决 /// public bool IsResolved { get; set; } /// /// 解决方案 /// public string Resolution { get; set; } = string.Empty; } /// /// 全局公平性等级枚举 /// public enum GlobalFairnessLevel { /// /// 非常公平(基尼系数 < 0.2) /// VeryFair = 1, /// /// 相对公平(基尼系数 0.2-0.3) /// Fair = 2, /// /// 一般公平(基尼系数 0.3-0.4) /// Moderate = 3, /// /// 不够公平(基尼系数 0.4-0.5) /// Unfair = 4, /// /// 很不公平(基尼系数 > 0.5) /// VeryUnfair = 5 } /// /// 全局协商操作类型枚举 /// public enum GlobalNegotiationActionType { /// /// 人员替换 /// PersonnelReplacement = 1, /// /// 任务重分配 /// TaskReallocation = 2, /// /// 人工介入 /// ManualIntervention = 3 } /// /// 全局冲突类型枚举 /// public enum GlobalConflictType { /// /// 次日休息规则冲突 /// NextDayRestViolation = 1, /// /// 同天班次连续性冲突 /// SameDayShiftContinuity = 2, /// /// 周任务限制冲突 /// WeeklyTaskLimit = 3, /// /// 跨周末连续性冲突 /// CrossWeekendContinuity = 4, /// /// 资质不匹配冲突 /// QualificationMismatch = 5, /// /// 时间不可用冲突 /// TimeUnavailable = 6, /// /// 工作限制超出 /// WorkLimitExceeded = 7, /// /// 负载不均衡 /// LoadImbalance = 8 } /// /// 全局冲突严重程度枚举 /// public enum GlobalConflictSeverity { /// /// 严重 /// Critical = 1, /// /// 高 /// High = 2, /// /// 中等 /// Medium = 3, /// /// 低 /// Low = 4, /// /// 警告 /// Warning = 5 } }