using System; using System.Collections.Generic; using Minio; using NPP.SmartSchedue.Api.Contracts.Core.Enums; using NPP.SmartSchedue.Api.Contracts.Services.Work.Input; namespace NPP.SmartSchedue.Api.Contracts.Services.Integration.Output { /// /// 任务整合列表输出 /// public class TaskIntegrationListOutput { /// /// 按项目号分组的任务列表 /// public List ProjectTaskGroups { get; set; } = new(); /// /// 总任务数量 /// public int TotalTaskCount { get; set; } /// /// 总项目数量 /// public int TotalProjectCount { get; set; } /// /// 总页数 /// public int TotalPages { get; set; } /// /// 当前页码 /// public int CurrentPage { get; set; } } /// /// 项目任务分组 /// public class ProjectTaskGroup { /// /// 项目号 /// public string ProjectNumber { get; set; } /// /// 项目名称 /// public string ProjectName { get; set; } /// /// 项目类别 /// public string ProjectCategory { get; set; } /// /// 该项目下的任务列表 /// public List Tasks { get; set; } = new(); /// /// 项目任务总数 /// public int TaskCount { get; set; } /// /// 项目预计总工时 /// public decimal EstimatedTotalHours { get; set; } /// /// 项目最早开始日期 /// public DateTime EarliestStartDate { get; set; } /// /// 项目最晚结束日期 /// public DateTime LatestEndDate { get; set; } } /// /// 工作任务摘要 /// public class WorkOrderSummary { public long Id { get; set; } public string WorkOrderCode { get; set; } public DateTime WorkOrderDate { get; set; } public long ShiftId { get; set; } public string ShiftName { get; set; } public string ShiftCode { get; set; } public long ProcessId { get; set; } public string ProcessName { get; set; } public string ProcessCode { get; set; } public decimal? EstimatedHours { get; set; } public int Status { get; set; } public int Priority { get; set; } public int UrgencyLevel { get; set; } public int ComplexityLevel { get; set; } /// /// 是否已分配人员 /// public bool HasAssignedPersonnel { get; set; } /// /// 是否已分配设备 /// public bool HasAssignedEquipment { get; set; } /// /// 关联的FL人员信息 /// public List FLPersonnels { get; set; } = new(); } /// /// 任务整合前自检结果 /// public class TaskIntegrationPreCheckResult { /// /// 自检是否通过 /// public bool IsCheckPassed { get; set; } /// /// 检查的项目数量 /// public int CheckedProjectCount { get; set; } /// /// 检查的任务数量 /// public int CheckedTaskCount { get; set; } /// /// 项目资源充足性检查结果 /// public List ProjectResourceResults { get; set; } = new(); /// /// 整体检查摘要 /// public string CheckSummary { get; set; } /// /// 检查时间 /// public DateTime CheckTime { get; set; } = DateTime.Now; /// /// 警告信息 /// public List Warnings { get; set; } = new(); /// /// 错误信息 /// public List Errors { get; set; } = new(); } /// /// 项目资源充足性结果 /// public class ProjectResourceSufficiencyResult { /// /// 项目号 /// public string ProjectNumber { get; set; } /// /// 项目名称 /// public string ProjectName { get; set; } /// /// 人员资源充足性 /// public bool IsPersonnelSufficient { get; set; } /// /// 设备资源充足性 /// public bool IsEquipmentSufficient { get; set; } /// /// 详细的资源分析 /// public ProjectResourceAnalysis ResourceAnalysis { get; set; } } /// /// 项目资源分析 /// public class ProjectResourceAnalysis { /// /// 按日的人员需求分析 /// public List DailyDemands { get; set; } = new(); /// /// 按周的人员需求分析 /// public List WeeklyDemands { get; set; } = new(); } /// /// 日资源需求 /// public class DailyResourceDemand { public DateTime Date { get; set; } public int RequiredPersonnelCount { get; set; } public int AvailablePersonnelCount { get; set; } public int RequiredEquipmentCount { get; set; } public int AvailableEquipmentCount { get; set; } public decimal EstimatedWorkHours { get; set; } public bool IsSufficient => AvailablePersonnelCount >= RequiredPersonnelCount && AvailableEquipmentCount >= RequiredEquipmentCount; } /// /// 周资源需求 /// public class WeeklyResourceDemand { public DateTime WeekStartDate { get; set; } public DateTime WeekEndDate { get; set; } public int RequiredPersonnelCount { get; set; } public int AvailablePersonnelCount { get; set; } public int RequiredEquipmentCount { get; set; } public int AvailableEquipmentCount { get; set; } public decimal EstimatedWorkHours { get; set; } public bool IsSufficient => AvailablePersonnelCount >= RequiredPersonnelCount && AvailableEquipmentCount >= RequiredEquipmentCount; } /// /// 项目资源对比结果 /// public class ProjectResourceComparisonResult { /// /// 对比维度 /// public string ComparisonDimension { get; set; } /// /// 对比时间范围 /// public DateTime StartDate { get; set; } public DateTime EndDate { get; set; } /// /// 项目资源对比详情 /// public List ProjectComparisons { get; set; } = new(); /// /// 总体资源充足性 /// public bool OverallSufficiency { get; set; } /// /// 资源紧张度评分(0-100,100表示资源非常紧张) /// public int ResourceTensionScore { get; set; } } /// /// 项目资源对比 /// public class ProjectResourceComparison { public string ProjectNumber { get; set; } public string ProjectName { get; set; } public int TotalTaskCount { get; set; } public decimal? TotalEstimatedHours { get; set; } public int PeakPersonnelDemand { get; set; } public int AvailablePersonnelCapacity { get; set; } public int PeakEquipmentDemand { get; set; } public int AvailableEquipmentCapacity { get; set; } public string ResourceStatus { get; set; } // "充足"、"紧张"、"不足" public List Recommendations { get; set; } = new(); } }