EnforcementOrderListDto.cs 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. using Hotline.Share.Enums.Order;
  2. using XF.Utility.EnumExtensions;
  3. namespace Hotline.Share.Dtos.JudicialManagement
  4. {
  5. public class EnforcementOrderListDto
  6. {
  7. public string Id { get; set; }
  8. public string WorkflowId { get; set; }
  9. /// <summary>
  10. /// 工单状态
  11. /// </summary>
  12. public EOrderStatus Status { get; set; }
  13. public string StatusText => Status.GetDescription();
  14. /// <summary>
  15. /// 过期状态
  16. /// </summary>
  17. public EExpiredStatus? ExpiredStatus => CalculateExpiredState();
  18. /// <summary>
  19. /// 过期状态
  20. /// </summary>
  21. public string ExpiredStatusText => ExpiredStatus?.GetDescription() ?? string.Empty;
  22. /// <summary>
  23. /// 工单编码(20220101000001)
  24. /// </summary>
  25. public string No { get; set; }
  26. /// <summary>
  27. /// 来源渠道
  28. /// </summary>
  29. public string? SourceChannel { get; set; }
  30. public string? SourceChannelCode { get; set; }
  31. /// <summary>
  32. /// 来电号码
  33. /// </summary>
  34. public string? FromPhone { get; set; }
  35. /// <summary>
  36. /// 转接号码(转接来源)
  37. /// </summary>
  38. public string? TransferPhone { get; set; }
  39. /// <summary>
  40. /// 来电/信人姓名
  41. /// </summary>
  42. public string? FromName { get; set; }
  43. /// <summary>
  44. /// 联系电话
  45. /// </summary>
  46. public string? Contact { get; set; }
  47. /// <summary>
  48. /// 受理类型
  49. /// </summary>
  50. public string? AcceptType { get; set; }
  51. public string? AcceptTypeCode { get; set; }
  52. /// <summary>
  53. /// 紧急程度
  54. /// </summary>
  55. public EEmergencyLevel EmergencyLevel { get; set; }
  56. public string Title { get; set; }
  57. /// <summary>
  58. /// 热点
  59. /// </summary>
  60. public string? HotspotId { get; set; }
  61. public string? HotspotName { get; set; }
  62. public string? HotspotSpliceName { get; set; }
  63. public DateTime CreationTime { get; set; }
  64. /// <summary>
  65. /// 是否为省工单
  66. /// </summary>
  67. public bool IsProvince { get; set; }
  68. /// <summary>
  69. /// 同步省工单编号和省上传下来的工单都用这个字段
  70. /// </summary>
  71. public string? ProvinceNo { get; set; }
  72. /// <summary>
  73. /// 实际办理节点名称(会签状态此字段保存最外层会签发起节点名称)
  74. /// </summary>
  75. public string? ActualHandleStepName { get; set; }
  76. /// <summary>
  77. /// 实际办理时间
  78. /// </summary>
  79. public DateTime? ActualHandleTime { get; set; }
  80. /// <summary>
  81. /// 超期时间(期满时间)
  82. /// </summary>
  83. public DateTime? ExpiredTime { get; set; }
  84. /// <summary>
  85. /// 即将超期时间
  86. /// </summary>
  87. public DateTime? NearlyExpiredTime { get; set; }
  88. /// <summary>
  89. /// 归档时间(暂为流程结束时间,因流程结束自动归档)
  90. /// </summary>
  91. public DateTime? FiledTime { get; set; }
  92. /// <summary>
  93. /// 工单开始时间(受理/接办时间=流程开启时间)
  94. /// </summary>
  95. public DateTime? StartTime { get; set; }
  96. /// <summary>
  97. /// 实际办理部门名称
  98. /// </summary>
  99. public string? ActualHandleOrgName { get; set; }
  100. /// <summary>
  101. /// 实际办理部门编码
  102. /// </summary>
  103. public string? ActualHandleOrgCode { get; set; }
  104. /// <summary>
  105. /// 一级部门code
  106. /// </summary>
  107. public string? OrgLevelOneCode { get; set; }
  108. /// <summary>
  109. /// 一级部门名称
  110. /// </summary>
  111. public string? OrgLevelOneName { get; set; }
  112. /// <summary>
  113. /// 实际办理人名称
  114. /// </summary>
  115. public string? ActualHandlerName { get; set; }
  116. /// <summary>
  117. /// 是否行政执法类
  118. /// </summary>
  119. public bool? IsEnforcementOrder { get; set; }
  120. /// <summary>
  121. /// 是否推诿
  122. /// </summary>
  123. public bool? IsPassTheBuckOrder { get; set; }
  124. /// <summary>
  125. /// 线索是否属实
  126. /// </summary>
  127. public bool? IsTheClueTrue { get; set; }
  128. /// <summary>
  129. /// 诉事项类型Id
  130. /// </summary>
  131. public string? EventTypeId { get; set; }
  132. /// <summary>
  133. /// 诉事项类型名称
  134. /// </summary>
  135. public string? EventTypeName { get; set; }
  136. /// <summary>
  137. /// 诉事项类型名称
  138. /// </summary>
  139. public string? EventTypeSpliceName { get; set; }
  140. /// <summary>
  141. /// 是否显示修改按钮
  142. /// </summary>
  143. public bool IsShowUpdateButton { get; set; }
  144. /// <summary>
  145. /// 区域名称
  146. /// </summary>
  147. public string AreaName { get; set; }
  148. public EExpiredStatus? CalculateExpiredState()
  149. {
  150. DateTime? dateTime = DateTime.Now;
  151. if (Status >= EOrderStatus.Filed)
  152. {
  153. dateTime = ActualHandleTime;
  154. }
  155. //ExpiredStatus
  156. if (ExpiredTime.HasValue)
  157. {
  158. if (dateTime < NearlyExpiredTime)
  159. {
  160. return EExpiredStatus.Normal;
  161. }
  162. else if (dateTime > NearlyExpiredTime && dateTime < ExpiredTime)
  163. {
  164. return EExpiredStatus.GoingToExpired;
  165. }
  166. else
  167. {
  168. return EExpiredStatus.Expired;
  169. }
  170. }
  171. return null;
  172. }
  173. }
  174. public class EnforcementOrgSatisfactionOrderListDto: EnforcementOrderListDto
  175. {
  176. /// <summary>
  177. /// 回访主表ID
  178. /// </summary>
  179. public string VisitId { get; set; }
  180. }
  181. }