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();
}
}