paiban/NPP.SmartSchedue.Api.Contracts/Services/Work/Input/WorkOrderAssignmentRecommendationInput.cs
Asoka.Wang 21f044712c 1
2025-08-27 18:39:19 +08:00

86 lines
2.0 KiB
C#

using System;
using System.Collections.Generic;
namespace NPP.SmartSchedue.Api.Contracts.Services.Work.Input;
/// <summary>
/// 任务分配推荐输入
/// </summary>
public class WorkOrderAssignmentRecommendationInput
{
/// <summary>
/// 任务ID列表
/// </summary>
public List<long> WorkOrderIds { get; set; } = new List<long>();
/// <summary>
/// 推荐开始日期
/// </summary>
public DateTime StartDate { get; set; }
/// <summary>
/// 推荐结束日期
/// </summary>
public DateTime EndDate { get; set; }
/// <summary>
/// 推荐策略
/// </summary>
public string RecommendationStrategy { get; set; } = "balanced";
/// <summary>
/// 是否考虑人员资质
/// </summary>
public bool ConsiderQualification { get; set; } = true;
/// <summary>
/// 是否考虑工作负荷
/// </summary>
public bool ConsiderWorkload { get; set; } = true;
/// <summary>
/// 是否考虑设备可用性
/// </summary>
public bool ConsiderEquipmentAvailability { get; set; } = true;
/// <summary>
/// 是否考虑时间冲突
/// </summary>
public bool ConsiderTimeConflict { get; set; } = true;
/// <summary>
/// 优先级权重配置
/// </summary>
public PriorityWeightConfig PriorityWeights { get; set; } = new PriorityWeightConfig();
}
/// <summary>
/// 优先级权重配置
/// </summary>
public class PriorityWeightConfig
{
/// <summary>
/// 资质匹配权重
/// </summary>
public double QualificationWeight { get; set; } = 0.3;
/// <summary>
/// 工作负荷权重
/// </summary>
public double WorkloadWeight { get; set; } = 0.25;
/// <summary>
/// 设备可用性权重
/// </summary>
public double EquipmentWeight { get; set; } = 0.2;
/// <summary>
/// 时间冲突权重
/// </summary>
public double TimeConflictWeight { get; set; } = 0.15;
/// <summary>
/// 历史表现权重
/// </summary>
public double PerformanceWeight { get; set; } = 0.1;
}