Asoka.Wang 21f044712c 1
2025-08-27 18:39:19 +08:00

154 lines
3.3 KiB
C#

using System;
using System.Collections.Generic;
namespace NPP.SmartSchedue.Api.Contracts.Services.Work.Output;
/// <summary>
/// 任务自检结果
/// </summary>
public class WorkOrderValidationOutput
{
/// <summary>
/// 任务ID
/// </summary>
public long WorkOrderId { get; set; }
/// <summary>
/// 任务名称
/// </summary>
public string WorkOrderCode { get; set; }
/// <summary>
/// 总体验证是否通过
/// </summary>
public bool IsValid { get; set; }
/// <summary>
/// 验证错误列表
/// </summary>
public List<WorkOrderValidationError> Errors { get; set; } = new();
/// <summary>
/// 人员空闲状态检查结果
/// </summary>
public List<PersonnelAvailabilityResult> PersonnelResults { get; set; } = new();
}
/// <summary>
/// 多任务自检结果
/// </summary>
public class MultipleWorkOrderValidationOutput
{
/// <summary>
/// 总体验证是否通过
/// </summary>
public bool IsValid { get; set; }
/// <summary>
/// 各任务验证结果
/// </summary>
public List<WorkOrderValidationOutput> WorkOrderResults { get; set; } = new();
/// <summary>
/// 跨任务冲突检查结果
/// </summary>
public List<WorkOrderValidationError> CrossTaskConflicts { get; set; } = new();
}
/// <summary>
/// 工作任务验证错误信息
/// </summary>
public class WorkOrderValidationError
{
/// <summary>
/// 错误类型
/// </summary>
public ValidationErrorType ErrorType { get; set; }
/// <summary>
/// 错误信息
/// </summary>
public string Message { get; set; }
/// <summary>
/// 相关人员ID
/// </summary>
public long? PersonnelId { get; set; }
/// <summary>
/// 相关人员姓名
/// </summary>
public string PersonnelName { get; set; }
}
/// <summary>
/// 人员空闲状态检查结果
/// </summary>
public class PersonnelAvailabilityResult
{
/// <summary>
/// 人员ID
/// </summary>
public long PersonnelId { get; set; }
/// <summary>
/// 人员姓名
/// </summary>
public string PersonnelName { get; set; }
/// <summary>
/// 是否空闲可用
/// </summary>
public bool IsAvailable { get; set; }
/// <summary>
/// 请假冲突
/// </summary>
public bool HasLeaveConflict { get; set; }
/// <summary>
/// 任务时间冲突
/// </summary>
public bool HasTaskTimeConflict { get; set; }
/// <summary>
/// 工作时间限制冲突
/// </summary>
public bool HasWorkLimitConflict { get; set; }
/// <summary>
/// 冲突详情
/// </summary>
public List<string> ConflictDetails { get; set; } = new();
}
/// <summary>
/// 验证错误类型
/// </summary>
public enum ValidationErrorType
{
/// <summary>
/// 人员请假冲突
/// </summary>
PersonnelLeaveConflict = 1,
/// <summary>
/// 任务时间冲突
/// </summary>
TaskTimeConflict = 2,
/// <summary>
/// 工作时间限制冲突
/// </summary>
WorkLimitConflict = 3,
/// <summary>
/// 连续工作时间超限
/// </summary>
ContinuousWorkTimeExceeded = 4,
/// <summary>
/// 班次规则冲突
/// </summary>
ShiftRuleConflict = 5
}