WorkflowTraceDto.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. using System.ComponentModel;
  2. using Hotline.Share.Dtos.File;
  3. using Hotline.Share.Enums.FlowEngine;
  4. using XF.Utility.EnumExtensions;
  5. namespace Hotline.Share.Dtos.FlowEngine.Workflow;
  6. public class WorkflowTraceDto : StepBasicDto
  7. {
  8. public string Id { get; set; }
  9. /// <summary>
  10. /// 节点Id
  11. /// </summary>
  12. public string StepId { get; set; }
  13. /// <summary>
  14. /// 流转记录状态
  15. /// </summary>
  16. public EWorkflowTraceType Type { get; set; }
  17. public string StatusText => Type.GetDescription();
  18. /// <summary>
  19. /// 过期时间(生成流转记录时取值当前workflow的过期时间)
  20. /// </summary>
  21. public DateTime ExpiredTime { get; set; }
  22. /// <summary>
  23. /// 会签从属关系
  24. /// </summary>
  25. public string? ParentId { get; set; }
  26. /// <summary>
  27. /// 会签流转记录
  28. /// </summary>
  29. public List<WorkflowTraceDto> Traces { get; set; }
  30. public List<FileDto>? Files { get; set; }
  31. public ExpiredStatus ExpiredStatus
  32. {
  33. get
  34. {
  35. if (HandleTime.HasValue)
  36. {
  37. return HandleTime.Value < StepExpiredTime ? ExpiredStatus.Completed : ExpiredStatus.Expired;
  38. }
  39. else
  40. {
  41. return DateTime.Now < StepExpiredTime ? ExpiredStatus.Handling : ExpiredStatus.Expired;
  42. }
  43. }
  44. }
  45. public string ExpiredStatusText => ExpiredStatus.GetDescription();
  46. }
  47. /// <summary>
  48. /// 超期状态
  49. /// </summary>
  50. public enum ExpiredStatus
  51. {
  52. //办理中-未超期、办理完成-未超期、超期
  53. [Description("办理中-未超期")]
  54. Handling = 0,
  55. [Description("办理完成-未超期")]
  56. Completed = 1,
  57. [Description("超期")]
  58. Expired = 2,
  59. }