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