You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

136 lines
3.7 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using System.ComponentModel;
using DS.Module.Core;
using DS.Module.Core.Data;
using DS.WMS.Core.Op.Entity;
using SqlSugar;
namespace DS.WMS.Core.Flow.Entity;
/// <summary>
/// 工作流实例
/// </summary>
[SugarTable("sys_flow_instance")]
public class FlowInstance : BaseTenantModel<long>
{
/// <summary>
/// 业务Id
/// </summary>
[Description("业务Id")]
public long BusinessId { get; set; }
/// <summary>
/// 业务类型
/// </summary>
[Description("业务类型")]
public BusinessType? BusinessType { get; set; }
/// <summary>
/// 模板Id
/// </summary>
[Description("模板Id")]
public long TemplateId { get; set; }
/// <summary>
/// 引用模板
/// </summary>
[Navigate(NavigateType.OneToOne, nameof(TemplateId))]
public FlowTemplateTenant? Template { get; set; }
/// <summary>
/// 客户自定义名称
/// </summary>
[Description("客户自定义名称")]
public string CustomName { get; set; }
/// <summary>
/// 模块Id
/// </summary>
[Description("模块Id")]
public long PermissionId { get; set; }
/// <summary>
/// 当前节点ID
/// </summary>
[Description("当前节点ID")]
public string ActivityId { get; set; } = "";
/// <summary>
/// 当前节点类型0会签节点
/// </summary>
[Description("当前节点类型0会签节点")]
public int? ActivityType { get; set; }
/// <summary>
/// 当前节点名称
/// </summary>
[Description("当前节点名称")]
public string ActivityName { get; set; }
/// <summary>
/// 前一个ID
/// </summary>
[Description("前一个ID")]
public string PreviousId { get; set; }
/// <summary>
/// 执行人
/// </summary>
[SugarColumn(ColumnDescription = "执行人", ColumnDataType = "longtext", IsNullable = true)]
public string MakerList { get; set; }
/// <summary>
/// 工作流状态
/// </summary>
[Description("工作流状态")]
public FlowStatusEnum FlowStatus { get; set; } = FlowStatusEnum.Ready;
/// <summary>
/// 中文视图名;设计方案时,提供中文字段的视图来源
/// </summary>
[Description("中文视图名;设计方案时,提供中文字段的视图来源")]
public string? ColumnView { get; set; }
/// <summary>
/// 流程内容
/// </summary>
[SugarColumn(ColumnDescription = "流程内容", IsNullable = true, ColumnDataType = StaticConfig.CodeFirst_BigString)]
public string Content { get; set; }
/// <summary>
/// 工作流类型
/// </summary>
[SugarColumn(ColumnDescription = "工作流类型", IsNullable = true)]
public TaskBaseTypeEnum? AuditType { get; set; }
/// <summary>
/// 是否已执行回调
/// </summary>
[SugarColumn(ColumnDescription = "是否已执行回调")]
public bool IsCallbackExecuted { get; set; }
/// <summary>
/// 执行人变更回调地址
/// </summary>
[SugarColumn(IsIgnore = true)]
public string? MarkerNotifyURL { get; set; }
/// <summary>
/// 审批完成回调地址
/// </summary>
[SugarColumn(IsIgnore = true)]
public string? CallbackURL { get; set; }
/// <summary>
/// 工作流是否已完成
/// </summary>
[SugarColumn(IsIgnore = true)]
public bool IsCompleted => string.IsNullOrEmpty(MakerList) || MakerList == "-1" || MakerList == "1";
/// <summary>
/// 获取当前实例的所有审批人
/// </summary>
/// <returns></returns>
public string[] GetMarkerList()
{
if (IsCompleted)
return [];
return MakerList.Split(',', StringSplitOptions.RemoveEmptyEntries);
}
}