using System; using SqlSugar; using System.Linq; using System.ComponentModel; using System.Collections.Generic; using Tiger.Model.Extensions; namespace Tiger.Model { /// /// 实体:作业列表 /// [Description("Primary:ID")] [Serializable] [SugarTable("TSK_JOB")] public class TSK_JOB : DbEntityWithAuth { #region 构造函数 /// /// 实体:作业列表 /// public TSK_JOB() { } #endregion 构造函数 #region 公共属性 /// /// 作业名称 /// public string JobName { get; set; } /// /// 作业组名称 /// public string GroupName { get; set; } /// /// 作业处理程序类型,存储的是类型的 FuLIName /// public string JobType { get; set; } /// /// 作业处理程序类型所在程序集,存储的是程序集 Name /// public string AssemblyName { get; set; } /// /// 描述信息 /// public string Description { get; set; } /// /// 作业执行方式,如果设置为 false,那么使用串行执行,否则并行执行 /// public bool Concurrent { get; set; } = true; /// /// 是否扫描 IJob 实现类 [Trigger] 特性触发器 /// public bool IncludeAnnotations { get; set; } = false; /// /// 作业信息额外数据,由 Dictionary 序列化成字符串存储 /// public string Properties { get; set; } = "{}"; /// /// 作业更新时间 /// public DateTime UpdatedTime { get; set; } = DateTime.MinValue; /// /// 备注 /// public string Remark { get; set; } /// /// 是否执行 /// public int? ISRUNNING { get; set; } /// /// 最后执行时间 /// public DateTime? LASTRUNTIME { get; set; } #endregion 公共属性 #region 虚拟属性 //例子 [SugarColumn(IsIgnore = true)] public string Status => Triggers?.FirstOrDefault()?.StatusStr + "," + Triggers?.FirstOrDefault()?.StatusStr.GetEnum().GetDesc() ?? TSK_TRIG.Statuss.Ready.GetName() + "," + TSK_TRIG.Statuss.Ready.GetDesc(); [SugarColumn(IsIgnore = true)] public int Period => Convert.ToInt32(Triggers?.FirstOrDefault()?.Args ?? $"2"); [SugarColumn(IsIgnore = true)] public int uPeriod { get; set; } #endregion 虚拟属性 #region 外键属性 /*例子 //一对一外键导航 [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是TSK_JOB类里面的外键ID字段 public ClassA ClassA { get; set; } //不能赋值只能是null //一对多外键导航 [Navigate(NavigateType.OneToMany, nameof(ClassA.TSK_JOBId))]//ClassA表中的TSK_JOBId public List ClassAList { get; set; }//注意禁止给books手动赋值 //多对多外键导航 [Navigate(typeof(MappingClass), nameof(MappingClass.TSK_JOBId), nameof(MappingClass.ClassAId))]//注意顺序 public List ClassAList { get; set; } //只能是null不能赋默认值 */ [Navigate(NavigateType.OneToMany, nameof(TSK_TRIG.JobId))]//ClassA表中的TSK_JOBId public List TriggersWithGhost { get; set; }//注意禁止手动赋值,只能是null [SugarColumn(IsIgnore = true)] public List Triggers => TriggersWithGhost?.Where(q => !q.GHOST_ROW).ToList(); #endregion 外键属性 #region 枚举变量 /*例子 public enum FieldNames { [Description("枚举描述0")] Enum0, [Description("枚举描述1")] Enum1, } */ #endregion 枚举变量 }//endClass public class TskJobParam { /// /// 作业名称 /// public string JobName { get; set; } /// /// 周期 /// public int Period { get; set; } /// /// 备注 /// public string Remark { get; set; } } public class FluentJobParam: TskJobParam { /// /// 参数 /// public TrigArgs Args { get; set; } } }