using System;
using System.Collections.Generic;
namespace NPP.SmartSchedue.Api.Contracts.Services.Integration.Models
{
///
/// 人员工作负载分析
/// 用于智能分配算法中的人员工作量评估和负载均衡
///
public class PersonnelWorkloadAnalysis
{
///
/// 人员ID
///
public long PersonnelId { get; set; }
///
/// 人员姓名
///
public string PersonnelName { get; set; } = string.Empty;
///
/// 已分配任务数量
///
public int AssignedTaskCount { get; set; }
///
/// 计划工作小时数
///
public decimal ScheduledWorkHours { get; set; }
///
/// 工作负载百分比 (0-100)
/// 相对于标准工作量的百分比
///
public double WorkloadPercentage { get; set; }
///
/// 负载状态描述
///
public string WorkloadStatus { get; set; } = string.Empty;
///
/// 是否超负荷
///
public bool IsOverloaded => WorkloadPercentage > 100;
///
/// 剩余可分配容量
///
public decimal RemainingCapacity { get; set; }
///
/// 技能匹配度平均分
///
public decimal AverageSkillMatchScore { get; set; }
///
/// 分配的任务列表
///
public List AssignedTasks { get; set; } = new();
///
/// 工作时间段分布
/// Key: 日期, Value: 工作小时数
///
public Dictionary DailyWorkHoursDistribution { get; set; } = new();
///
/// 负载均衡评分 (0-100)
/// 评估当前负载是否合理均衡
///
public int LoadBalanceScore { get; set; }
///
/// 最后更新时间
///
public DateTime LastUpdated { get; set; } = DateTime.Now;
public List WorkDates { get; set; }
///
/// 计算连续工作天数
///
public int ContinuousWorkDays { get; set; }
///
/// 总工时
///
public decimal? TotalEstimatedHours { get; set; }
}
///
/// 已分配任务信息
///
public class AssignedTaskInfo
{
///
/// 任务ID
///
public long TaskId { get; set; }
///
/// 任务编码
///
public string TaskCode { get; set; } = string.Empty;
///
/// 预计工作小时数
///
public decimal EstimatedWorkHours { get; set; }
///
/// 任务优先级
///
public int Priority { get; set; }
///
/// 计划开始时间
///
public DateTime ScheduledStartTime { get; set; }
///
/// 计划结束时间
///
public DateTime ScheduledEndTime { get; set; }
///
/// 技能匹配度
///
public decimal SkillMatchScore { get; set; }
}
}