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