using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Hotline.FlowEngine.Workflows;
using Hotline.Share.Dtos;
using Hotline.Share.Dtos.File;
using Hotline.Share.Dtos.FlowEngine;
using Hotline.Share.Dtos.FlowEngine.Workflow;
using Hotline.Share.Dtos.Order;
using Hotline.Share.Enums.FlowEngine;
using Hotline.Share.Enums.Order;
using Hotline.Share.Enums.Settings;
using SqlSugar;
using XF.Domain.Repository;
namespace Hotline.Orders
{
///
/// 特提
///
[Description("工单特提")]
[SugarIndex("index_special_orderId", nameof(OrderSpecial.OrderId), OrderByType.Asc)]
public class OrderSpecial : FullStateEntity
{
public string OrderId { get; set; }
public string WorkflowId { get; set; }
///
/// 下一节点code(defineStep.code)
///
public string NextStepCode { get; set; } = string.Empty;
public string NextStepName { get; set; } = string.Empty;
public EFlowDirection? FlowDirection { get; set; }
///
/// 办理对象类型
///
public EHandlerType? HandlerType { get; set; }
///
/// 模板配置节点业务类型
///
public EBusinessType? BusinessType { get; set; }
///
/// 节点类型
///
public EStepType? StepType { get; set; }
///
/// 工单状态
///
public EOrderStatus? Status { get; set; }
public string? StepCode { get; set; } = string.Empty;
public string? StepName { get; set; } = string.Empty;
[SugarColumn(ColumnDataType = "json", IsJson = true, IsNullable = true)]
public List NextHandlers { get; set; }
///
/// 特提原因
///
[SugarColumn(ColumnDescription = "特提原因")]
public string? Cause { get; set; }
///
/// 特提理由
///
[SugarColumn(ColumnDescription = "特提理由", ColumnDataType = "text")]
public string? Reason { get; set; }
///
/// 办理时间限制(如:24小时、7个工作日)
///
public int? TimeLimit { get; set; }
public ETimeType? TimeLimitUnit { get; set; } = ETimeType.WorkDay;
///
/// 是否修改期满时间
///
public bool AlterTime { get; set; }
///
/// 特提意见
///
[SugarColumn(ColumnDescription = "特提意见", ColumnDataType = "text")]
public string? Opinion { get; set; }
///
/// 审核结果 0 待审核 1 审核通过 2 审核不通过
///
public int State { get; set; }
[SugarColumn(ColumnDescription = "组织Id")]
public string? OrgId { get; set; }
public string? OrgName { get; set; }
[SugarColumn(ColumnDataType = "json", IsJson = true, IsNullable = true)]
public List? FileJson { get; set; }
[SugarColumn(ColumnDataType = "json", IsJson = true, IsNullable = true)]
public List? ReplyFileJson { get; set; }
///
/// 特提类型
///
public ESpecialType? SpecialType { get; set; }
///
/// 错件类型
///
//[SugarColumn(ColumnDataType = "json", IsJson = true, IsNullable = true)]
[Navigate(NavigateType.OneToMany, nameof(OrderSpecialDetail.SpecialId))]
public List ReTransactError { get; set; }
///
/// 首次归档意见
///
[SugarColumn(ColumnDataType = "varchar(8000)")]
public string? FirstFileOpinion { get; set; }
///
/// 上次归档意见
///
[SugarColumn(ColumnDataType = "varchar(8000)")]
public string? LastFileOpinion { get; set; }
///
///特提后最新节点Id
///
[SugarColumn(ColumnDescription = "特提后最新节点Id")]
public string? NewCurrentStepId { get; set; }
///
/// 工单
///
[Navigate(NavigateType.OneToOne, nameof(OrderId))]
public Order Order { get; set; }
}
//public class ReTransactError {
// public string OrgId { get; set; }
// public string OrgName { get; set; }
// public string ErrorId { get; set; }
// public string ErrorName { get; set; }
//}
}