OldIdBase.cs 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  1. using Abp;
  2. using Abp.Domain.Entities;
  3. using Abp.Domain.Entities.Auditing;
  4. using DataTransmission.Entity;
  5. using SqlSugar;
  6. namespace SnapshotWinFormsApp.Entities.NewHotline
  7. {
  8. public class OldIdEntity : Entity
  9. {
  10. /// <summary>
  11. /// 旧系统的Id
  12. /// </summary>
  13. public virtual string OldId { get; set; }
  14. }
  15. public class Entity
  16. {
  17. //private List<IAppNotification> _domainEvents = new();
  18. public string Id { get; set; }
  19. [SugarColumn(ColumnDescription = "创建人")]
  20. public string? CreatorId { get; set; }
  21. public string? CreatorName { get; set; }
  22. [SugarColumn(ColumnDescription = "组织Id")]
  23. public string? CreatorOrgId { get; set; }
  24. public string? CreatorOrgName { get; set; }
  25. [SugarColumn(DefaultValue = "0")]
  26. public int CreatorOrgLevel { get; set; } = 0;
  27. /// <summary>
  28. /// 一级部门Id
  29. /// </summary>
  30. [SugarColumn(ColumnDescription = "数据权限区域Id")]
  31. public string? AreaId { get; set; }
  32. //public void ClearEvents() => _domainEvents.Clear();
  33. //public ICollection<IAppNotification> QueryAllEvents() => _domainEvents;
  34. public void InitId() => Id = SequentialGuidGenerator.Instance.Create().ToString("D");
  35. }
  36. /// <summary>
  37. /// 实体(带有创建时间)
  38. /// </summary>
  39. public abstract class CreationEntity : OldIdEntity, IHasCreationTime
  40. {
  41. /// <summary>
  42. /// 创建时间
  43. /// </summary>
  44. [SugarColumn(ColumnDescription = "创建时间")]
  45. public DateTime CreationTime { get; set; }
  46. }
  47. /// <summary>
  48. /// 实体(带有软删除)
  49. /// </summary>
  50. public abstract class SoftDeleteEntity : OldIdEntity, IHasDeletionTime, ISoftDelete
  51. {
  52. /// <summary>
  53. /// 删除时间
  54. /// </summary>
  55. [SugarColumn(ColumnDescription = "删除时间")]
  56. public DateTime? DeletionTime { get; set; }
  57. [SugarColumn(ColumnDescription = "是否删除")]
  58. public bool IsDeleted { get; set; }
  59. public void SoftDelete()
  60. {
  61. IsDeleted = true;
  62. DeletionTime = DateTime.Now;
  63. }
  64. }
  65. /// <summary>
  66. /// 实体(带有创建时间和软删除)
  67. /// </summary>
  68. public abstract class CreationSoftDeleteEntity : CreationEntity, IHasDeletionTime, ISoftDelete
  69. {
  70. [SugarColumn(ColumnDescription = "是否删除", DefaultValue = "f")]
  71. public bool IsDeleted { get; set; }
  72. /// <summary>
  73. /// 删除时间
  74. /// </summary>
  75. [SugarColumn(ColumnDescription = "删除时间")]
  76. public DateTime? DeletionTime { get; set; }
  77. public void SoftDelete()
  78. {
  79. IsDeleted = true;
  80. DeletionTime = DateTime.Now;
  81. }
  82. public void Recover() => IsDeleted = false;
  83. }
  84. public abstract class CreationModificationEntity : CreationEntity, IHasModificationTime
  85. {
  86. /// <summary>
  87. /// 最近更新时间
  88. /// </summary>
  89. [SugarColumn(ColumnDescription = "最近更新时间")]
  90. public DateTime? LastModificationTime { get; set; }
  91. public void Modified() => LastModificationTime = DateTime.Now;
  92. }
  93. /// <summary>
  94. /// 全状态实体(创建时间、更新时间、软删除)
  95. /// </summary>
  96. public abstract class FullStateEntity : CreationSoftDeleteEntity, IHasModificationTime
  97. {
  98. /// <summary>
  99. /// 最近更新时间
  100. /// </summary>
  101. [SugarColumn(ColumnDescription = "最近更新时间")]
  102. public DateTime? LastModificationTime { get; set; }
  103. public void Modified() => LastModificationTime = DateTime.Now;
  104. }
  105. public abstract class WorkflowEntity : FullStateEntity, IWorkflow
  106. {
  107. [SugarColumn(IsNullable = true)]
  108. public string? WorkflowId { get; set; }
  109. /// <summary>
  110. /// 过期时间配置id
  111. /// </summary>
  112. [SugarColumn(IsNullable = true)]
  113. public string? ExpiredTimeConfigId { get; set; }
  114. [SugarColumn(ColumnDataType = "json", IsJson = true)]
  115. public List<string>? FlowedOrgIds { get; set; } = new();
  116. [SugarColumn(ColumnDataType = "json", IsJson = true)]
  117. public List<string>? FlowedUserIds { get; set; } = new();
  118. #region 当前办理对象
  119. /// <summary>
  120. /// 办理人id
  121. /// </summary>
  122. [SugarColumn(ColumnDataType = "json", IsJson = true)]
  123. public List<HandlerGroupItem>? HandlerUsers { get; set; } = new();
  124. /// <summary>
  125. /// 办理部门id
  126. /// </summary>
  127. [SugarColumn(ColumnDataType = "json", IsJson = true)]
  128. public List<HandlerGroupItem>? HandlerOrgs { get; set; } = new();
  129. #endregion
  130. }
  131. public abstract class PositionEntity : FullStateEntity
  132. {
  133. /// <summary>
  134. /// 经度
  135. /// </summary>
  136. [SugarColumn(ColumnDescription = "经度")]
  137. public double? Longitude { get; set; }
  138. /// <summary>
  139. /// 维度
  140. /// </summary>
  141. [SugarColumn(ColumnDescription = "纬度")]
  142. public double? Latitude { get; set; }
  143. /// <summary>
  144. /// 行政区划编码
  145. /// </summary>
  146. [SugarColumn(ColumnDescription = "行政区划编码")]
  147. public string? AreaCode { get; set; }
  148. /// <summary>
  149. /// 省
  150. /// </summary>
  151. public string? Province { get; set; }
  152. /// <summary>
  153. /// 市
  154. /// </summary>
  155. public string? City { get; set; }
  156. /// <summary>
  157. /// 区/县
  158. /// </summary>
  159. public string? County { get; set; }
  160. /// <summary>
  161. /// 乡镇(4级行政区划)
  162. /// </summary>
  163. public string? Town { get; set; }
  164. /// <summary>
  165. /// 详细街道
  166. /// </summary>
  167. public string? Street { get; set; }
  168. /// <summary>
  169. /// 行政区划地址
  170. /// </summary>
  171. public string? Address { get; set; }
  172. /// <summary>
  173. /// 完整地址
  174. /// </summary>
  175. public string? FullAddress { get; set; }
  176. }
  177. public abstract class PositionWorkflowEntity : PositionEntity, IWorkflow
  178. {
  179. [SugarColumn(IsNullable = true)]
  180. public string? WorkflowId { get; set; }
  181. /// <summary>
  182. /// 过期时间配置id
  183. /// </summary>
  184. [SugarColumn(IsNullable = true)]
  185. public string? ExpiredTimeConfigId { get; set; }
  186. [SugarColumn(ColumnDataType = "json", IsJson = true)]
  187. public List<string>? FlowedOrgIds { get; set; } = new();
  188. [SugarColumn(ColumnDataType = "json", IsJson = true)]
  189. public List<string>? FlowedUserIds { get; set; } = new();
  190. #region 当前办理对象
  191. /// <summary>
  192. /// 办理人id
  193. /// </summary>
  194. [SugarColumn(ColumnDataType = "json", IsJson = true)]
  195. public List<HandlerGroupItem>? HandlerUsers { get; set; } = new();
  196. /// <summary>
  197. /// 办理部门id
  198. /// </summary>
  199. [SugarColumn(ColumnDataType = "json", IsJson = true)]
  200. public List<HandlerGroupItem>? HandlerOrgs { get; set; } = new();
  201. #endregion
  202. }
  203. }