IWorkflowDomainService.cs 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. using Hotline.FlowEngine.Definitions;
  2. using Hotline.Share.Dtos.FlowEngine;
  3. namespace Hotline.FlowEngine.Workflows
  4. {
  5. public interface IWorkflowDomainService
  6. {
  7. Task<Workflow> CreateWorkflowAsync(Definition definition, string title, CancellationToken cancellationToken);
  8. /// <summary>
  9. /// 进行流程的开始节点
  10. /// </summary>
  11. Task StartAsync(Workflow workflow, BasicWorkflowDto dto, CancellationToken cancellationToken);
  12. /// <summary>
  13. /// 查询工作流
  14. /// </summary>
  15. Task<Workflow> GetWorkflowAsync(string workflowId, bool withDefine = false, bool withSteps = false, bool withTraces = false, bool withSupplements = false, CancellationToken cancellationToken = default);
  16. /// <summary>
  17. /// 受理,接办
  18. /// </summary>
  19. Task AcceptAsync(Workflow workflow, CancellationToken cancellationToken);
  20. /// <summary>
  21. /// 办理(流转至下一节点)
  22. /// </summary>
  23. Task NextAsync(Workflow workflow, BasicWorkflowDto dto, StepDefine nextStepBoxDefine, bool isOutOfCallCenter, bool isStartCountersign, CancellationToken cancellationToken);
  24. /// <summary>
  25. /// 退回(返回前一节点)
  26. /// </summary>
  27. /// <returns></returns>
  28. Task PreviousAsync(Workflow workflow, PreviousWorkflowDto dto, CancellationToken cancellationToken);
  29. /// <summary>
  30. /// 撤回(返回到之前任意节点)
  31. /// </summary>
  32. Task RecallAsync(Workflow workflow, RecallDto dto, CancellationToken cancellationToken);
  33. /// <summary>
  34. /// 跳转(直接将流程跳转至任意节点)
  35. /// </summary>
  36. Task JumpAsync(Workflow workflow, RecallDto dto, CancellationToken cancellationToken);
  37. /// <summary>
  38. /// 补充
  39. /// </summary>
  40. /// <returns></returns>
  41. Task SupplementAsync(Workflow workflow, EndWorkflowDto dto, CancellationToken cancellationToken);
  42. /// <summary>
  43. /// 终止流程
  44. /// </summary>
  45. Task TerminateAsync(string id, CancellationToken cancellationToken);
  46. StepDefine GetStepBoxDefine(Definition definition, string stepCode);
  47. /// <summary>
  48. /// 查询当前待办节点的下一级节点配置(办理参数)
  49. /// </summary>
  50. IReadOnlyList<StepDefine> GetNextStepOptions(Workflow workflow, CancellationToken cancellationToken);
  51. }
  52. }