Asoka.Wang 0a2e2d9b18 123
2025-09-02 18:52:35 +08:00

189 lines
4.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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