using System.ComponentModel;
using Hotline.FlowEngine.Workflows;
using Hotline.Share.Dtos.File;
using Hotline.Share.Enums.Order;
using Hotline.Share.Enums.Settings;
using Hotline.Users;
using SqlSugar;
using XF.Domain.Repository;
namespace Hotline.Orders
{
///
/// 工单延期
///
[Description("工单延期")]
[SugarIndex("index_delay_orderId", nameof(OrderDelay.OrderId), OrderByType.Asc)]
public class OrderDelay : WorkflowEntity
{
///
/// 工单编号(冗余)
///
public string No { get; set; }
///
/// 工单ID
///
public string OrderId { get; set; }
///
///
///
[Navigate(NavigateType.OneToOne, nameof(OrderId))]
public Order? Order { get; set; }
///
/// 延期申请时间
///
public DateTime ApplyDelayTime { get; set; }
///
/// 申请部门Code
///
public string ApplyOrgCode { get; set; }
///
/// 申请部门名称
///
public string ApplyOrgName { get; set; }
///
/// 申请人
///
public string EmployeeId { get; set; }
///
/// 申请人名称
///
public string? EmployeeName { get; set; }
///
///
///
[Navigate(NavigateType.OneToOne, nameof(EmployeeId))]
public User? Employee { get; set; }
///
/// 延期申请时限
///
public int DelayNum { get; set; }
///
/// 延期申请单位
///
public ETimeType DelayUnit { get; set; }
///
/// 延期申请理由
///
[SugarColumn(ColumnDescription = "延期申请理由", ColumnDataType = "text")]
public string DelayReason { get; set; }
///
/// 申请前期满时间
///
public DateTime? BeforeDelay { get; set; }
///
/// 申请后期满时间
///
public DateTime? AfterDelay { get; set; }
///
/// 审批状态
///
public EDelayState DelayState { get; set; }
#region 用于省平台查询
///
/// 审核人
///
public string? AuditName { get; set; }
///
/// 审核部门
///
public string? AuditOrgName { get; set; }
///
/// 审核时间
///
public DateTime? AuditTime { get; set; }
///
/// 审核意见
///
[SugarColumn(ColumnDescription = "审核意见", ColumnDataType = "text")]
public string? AuditOpinion { get; set; }
#endregion
///
/// 审批类型
///
public EDelayApplyType? DelayApplyType { get; set; }
///
/// 附件
///
[SugarColumn(ColumnDataType = "json", IsJson = true, IsNullable = true)]
public List FileJson { get; set; }
///
/// 是否省延期
///
[SugarColumn(DefaultValue = "f")]
public bool IsProDelay { get; set; }
///
/// 流程ID
///
public string? WorkflowId { get; set; }
[Navigate(NavigateType.OneToOne, nameof(WorkflowId))]
public Workflow? Workflow { get; set; }
///
/// 自动延期次数
///
[SugarColumn(DefaultValue = "0")]
public int? AutomaticDelayNum { get; set; }
}
}