86 lines
2.0 KiB
C#
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;
|
|
} |