FlowInstanceDtos.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. namespace Admin.NET.Plugin.ApprovalFlow.Service;
  2. /// <summary>
  3. /// 流程实例详情输出
  4. /// </summary>
  5. public class FlowInstanceDetailOutput
  6. {
  7. public long Id { get; set; }
  8. public long FlowId { get; set; }
  9. public string BizType { get; set; } = "";
  10. public long BizId { get; set; }
  11. public string? BizNo { get; set; }
  12. public string Title { get; set; } = "";
  13. public long InitiatorId { get; set; }
  14. public string? InitiatorName { get; set; }
  15. public FlowInstanceStatusEnum Status { get; set; }
  16. public string? CurrentNodeId { get; set; }
  17. public DateTime StartTime { get; set; }
  18. public DateTime? EndTime { get; set; }
  19. /// <summary>流程 JSON 快照(发起时冻结的版本),前端可用来渲染流程图</summary>
  20. public string? FlowJsonSnapshot { get; set; }
  21. public List<FlowTaskOutput> Tasks { get; set; } = new();
  22. /// <summary>
  23. /// 已完成节点 Id 列表(来自 ApprovalFlowCompletedNode 子表,含 userTask 与网关节点)
  24. /// </summary>
  25. public List<string> CompletedNodeIds { get; set; } = new();
  26. /// <summary>
  27. /// 当前进行中的节点 Id 列表(Pending 任务 NodeId 去重;并行场景下会有多项)
  28. /// </summary>
  29. public List<string> CurrentNodeIds { get; set; } = new();
  30. }
  31. /// <summary>
  32. /// 审批任务输出
  33. /// </summary>
  34. public class FlowTaskOutput
  35. {
  36. public long Id { get; set; }
  37. public string NodeId { get; set; } = "";
  38. public string? NodeName { get; set; }
  39. public long AssigneeId { get; set; }
  40. public string? AssigneeName { get; set; }
  41. public FlowTaskStatusEnum Status { get; set; }
  42. public string? Comment { get; set; }
  43. public DateTime? ActionTime { get; set; }
  44. /// <summary>是否为代理任务</summary>
  45. public bool IsDelegate { get; set; }
  46. /// <summary>被代理人(原审批人)Id</summary>
  47. public long? DelegateForUserId { get; set; }
  48. /// <summary>被代理人(原审批人)姓名</summary>
  49. public string? DelegateForUserName { get; set; }
  50. }
  51. /// <summary>
  52. /// 审批时间线条目
  53. /// </summary>
  54. public class FlowTimelineItem
  55. {
  56. public long Id { get; set; }
  57. public string? NodeId { get; set; }
  58. public string? NodeName { get; set; }
  59. public FlowLogActionEnum Action { get; set; }
  60. public long OperatorId { get; set; }
  61. public string? OperatorName { get; set; }
  62. public string? Comment { get; set; }
  63. public DateTime CreateTime { get; set; }
  64. }
  65. /// <summary>
  66. /// 流程实例分页查询输入
  67. /// </summary>
  68. public class InstancePageInput : BasePageInput
  69. {
  70. public string? BizType { get; set; }
  71. public FlowInstanceStatusEnum? Status { get; set; }
  72. }
  73. /// <summary>
  74. /// 流程实例分页输出
  75. /// </summary>
  76. public class InstancePageOutput
  77. {
  78. public long Id { get; set; }
  79. public string BizType { get; set; } = "";
  80. public long BizId { get; set; }
  81. public string? BizNo { get; set; }
  82. public string Title { get; set; } = "";
  83. public FlowInstanceStatusEnum Status { get; set; }
  84. public string? CurrentNodeId { get; set; }
  85. public DateTime StartTime { get; set; }
  86. public DateTime? EndTime { get; set; }
  87. public string? InitiatorName { get; set; }
  88. /// <summary>
  89. /// 当前待审批人姓名(多人逗号分隔)
  90. /// </summary>
  91. public string? CurrentAssigneeName { get; set; }
  92. }