using Hotline.Share.Dtos.File;
using Hotline.Share.Dtos.FlowEngine;
using Hotline.Share.Enums.Order;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using XF.Domain.Repository;
namespace Hotline.Orders
{
[Description("退回审批")]
public class OrderSendBackAudit: FullStateEntity
{
///
/// 工单ID
///
[SugarColumn(ColumnDescription = "工单ID")]
public string OrderId { get; set; }
///
/// 根据办理者类型不同,此字段为不同内容
///
/// 部门等级/分类为:depCodes, 角色为:userIds
///
///
[SugarColumn(ColumnDataType = "json", IsJson = true)]
public List? NextHandlers { get; set; } = new();
///
/// 流程快照ID
///
[SugarColumn(ColumnDescription = "流程快照ID")]
public string? TraceId { get; set; }
///
/// 状态
///
[SugarColumn(ColumnDescription = "状态")]
public ESendBackAuditState? State { get; set; }
///
/// 工单状态
///
public EOrderStatus? Status { get; set; }
///
/// 退回原因
///
[SugarColumn(ColumnDescription = "退回原因", ColumnDataType = "text")]
public string? Content { get; set; }
///
/// 审批意见
///
[SugarColumn(ColumnDescription = "审批意见", ColumnDataType = "text")]
public string? AuditContent { get; set; }
///
/// 工单
///
[Navigate(NavigateType.OneToOne, nameof(OrderId))]
public Order Order { get; set; }
///
/// 退回数据
///
[SugarColumn(ColumnDataType = "json", IsJson = true, IsNullable = true)]
public PreviousWorkflowDto SendBackData { get; set; }
///
/// 审批人ID
///
[SugarColumn(ColumnDescription = "审批人ID")]
public string? AuditId { get; set; }
[SugarColumn(ColumnDescription = "审批人")]
public string? AuditUser { get; set; }
///
/// 审批时间
///
public DateTime? AuditTime { get; set; }
///
/// 申请部门ID
///
[SugarColumn(ColumnDescription = "申请部门ID")]
public string? ApplyOrgId { get; set; }
///
/// 申请部门名称
///
[SugarColumn(ColumnDescription = "申请部门名称")]
public string? ApplyOrgName { get; set; }
///
/// 退回部门ID
///
[SugarColumn(ColumnDescription = "退回部门ID")]
public string SendBackOrgId { get; set; }
///
/// 退回部门名称
///
[SugarColumn(ColumnDescription = "退回部门名称")]
public string SendBackOrgName { get; set; }
///
/// 退回节点名称
///
[SugarColumn(ColumnDescription = "退回节点名称")]
public string? SendBackStepName { get; set; }
///
/// 退回节点创建时间
///
[SugarColumn(ColumnDescription = "退回节点创建时间")]
public DateTime? WorkflowStepSendBackCrTime { get; set; }
///
/// 流程退回发起部门ID
///
[SugarColumn(ColumnDescription = "流程退回发起部门ID")]
public string WorkflowOrgId { get; set; }
///
/// 流程退回发起用户ID
///
[SugarColumn(ColumnDescription = "流程退回发起用户ID")]
public string WorkflowUserId { get; set; }
///
/// 是否允许再次退回
///
[SugarColumn(ColumnDescription = "是否允许再次退回",DefaultValue = "f")]
public bool? IsReturnAgain { get; set; }
///
/// 流程退回发起用户角色ID
///
[SugarColumn(ColumnDataType = "json", IsJson = true, IsNullable = true, ColumnDescription = "流程退回发起用户角色ID")]
public List WorkflowRoleIds { get; set; }
[SugarColumn(ColumnDataType = "json", IsJson = true, IsNullable = true)]
public List? FileJson { get; set; }
}
}