using Hotline.FlowEngine.Definitions; using Hotline.Share.Dtos.FlowEngine; using Hotline.Share.Enums.FlowEngine; using SqlSugar; using XF.Domain.Repository; namespace Hotline.FlowEngine.Workflows; public class StepBasicEntity : CreationEntity { public string WorkflowId { get; set; } public string Name { get; set; } /// /// 模板内唯一 /// public string Code { get; set; } public EStepType StepType { get; init; } /// /// 办理人类型 /// public EHandlerType HandlerType { get; set; } /// /// 审批者分类(或是直接保存处理者) /// /// 根据类型可能为:roles, depLevels, depTypes, depCodes, userIds /// /// [SugarColumn(ColumnDataType = "varchar(1000)", IsJson = true)] public List HandlerClassifies { get; set; } = new(); /// /// 当前环节会签模式 /// public ECountersignMode CountersignMode { get; set; } #region 办理参数 /// /// (下一节点办理人)根据审批者类型不同,此字段为不同内容 /// /// 部门等级/分类为:orgCodes, 角色为:userIds /// /// [SugarColumn(ColumnDataType = "varchar(2000)", IsJson = true)] public List NextHandlers { get; set; } = new(); /// /// 下一节点主办,(NextHandlers其中一个, 如果不是会签则只有一个) /// [SugarColumn(IsNullable = true)] public string? NextMainHandler { get; set; } /// /// 下一节点code /// public string NextStepCode { get; set; } /// /// 是否短信通知 /// public bool AcceptSms { get; set; } /// /// 办理意见 /// [SugarColumn(Length = 2000)] public string Opinion { get; set; } /// /// 附件 /// [SugarColumn(ColumnDataType = "varchar(1000)", IsJson = true)] public List Additions { get; set; } = new(); #endregion #region 办理 /// /// 办理人 /// [SugarColumn(IsNullable = true)] public string? UserId { get; set; } [SugarColumn(IsNullable = true)] public string? UserName { get; set; } /// /// 办理人部门code /// [SugarColumn(IsNullable = true)] public string? OrgCode { get; set; } [SugarColumn(IsNullable = true)] public string? OrgName { get; set; } /// /// 办理完成时间 /// public DateTime? CompleteTime { get; set; } #endregion #region 接办 /// /// 接办人 /// [SugarColumn(IsNullable = true)] public string? AcceptUserId { get; set; } [SugarColumn(IsNullable = true)] public string? AcceptUserName { get; set; } /// /// 接办时间 /// public DateTime? AcceptTime { get; set; } #endregion }