using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using NPP.SmartSchedue.Api.Contracts.Core.Enums; namespace NPP.SmartSchedue.Api.Contracts.Services.Work.Input; /// /// 添加工作任务 /// public class WorkOrderAddInput { #region 基础信息 /// /// 项目号 /// [Required(ErrorMessage = "项目号不能为空")] [MaxLength(50, ErrorMessage = "项目号长度不能超过50个字符")] public string ProjectNumber { get; set; } /// /// 项目类别 /// [Required(ErrorMessage = "项目类别不能为空")] [MaxLength(50, ErrorMessage = "项目类别长度不能超过50个字符")] public string ProjectCategory { get; set; } /// /// 班次ID /// [Required(ErrorMessage = "班次不能为空")] public long ShiftId { get; set; } /// /// 班次代码 /// [MaxLength(20, ErrorMessage = "班次代码长度不能超过20个字符")] public string ShiftCode { get; set; } /// /// 班次名称 /// [MaxLength(100, ErrorMessage = "班次名称长度不能超过100个字符")] public string ShiftName { get; set; } /// /// 工序ID /// [Required(ErrorMessage = "工序不能为空")] public long ProcessId { get; set; } /// /// 工序代码 /// [MaxLength(20, ErrorMessage = "工序代码长度不能超过20个字符")] public string ProcessCode { get; set; } /// /// 工序名称 /// [MaxLength(100, ErrorMessage = "工序名称长度不能超过100个字符")] public string ProcessName { get; set; } #endregion #region 任务信息 /// /// 批号 /// [MaxLength(50, ErrorMessage = "批号长度不能超过50个字符")] public string BatchNumber { get; set; } /// /// 任务日期 /// [Required(ErrorMessage = "任务日期不能为空")] public DateTime WorkOrderDate { get; set; } /// /// 任务状态 /// public WorkOrderStatusEnum Status { get; set; } = WorkOrderStatusEnum.PendingSubmit; /// /// 优先级(1-10,数字越大优先级越高) /// [Range(1, 10, ErrorMessage = "优先级必须在1-10之间")] public int Priority { get; set; } = 5; /// /// 预计工时(小时) /// [Range(0.1, 24, ErrorMessage = "预计工时必须在0.1-24小时之间")] public decimal? EstimatedHours { get; set; } = 8; /// /// 紧急程度(1-10,数字越大越紧急) /// [Range(1, 10, ErrorMessage = "紧急程度必须在1-10之间")] public int Urgency { get; set; } = 5; /// /// 任务复杂度(别名,使用Priority表示) /// [Range(1, 10, ErrorMessage = "复杂度必须在1-10之间")] public int Complexity { get => Priority; set => Priority = value; } #endregion #region 人员和设备 /// /// FL人员信息列表 /// public List FLPersonnels { get; set; } = new List(); /// /// 任务实施人员ID /// public long? AssignedPersonnelId { get; set; } /// /// 任务实施人员 /// public string? AssignedPersonnelName { get; set; } /// /// 任务设备ID /// public long? AssignedEquipmentId { get; set; } /// /// 任务设备 /// public string? AssignedEquipmentName { get; set; } #endregion #region 时间信息 /// /// 任务实际开始时间 /// public DateTime? ActualStartTime { get; set; } /// /// 任务实际结束时间 /// public DateTime? ActualEndTime { get; set; } /// /// 实际完成工时(小时) /// [Range(0, double.MaxValue, ErrorMessage = "实际完成工时必须大于等于0")] public decimal? ActualWorkHours { get; set; } #endregion #region 任务人员数量 /// /// 工作所需人员 /// public int RequiredPersonnel { get; set; } = 1; #endregion } /// /// FL人员信息 /// public class FLPersonnelInfo { /// /// FL人员ID /// public long FLPersonnelId { get; set; } /// /// FL人员姓名 /// public string FLPersonnelName { get; set; } }