using Hotline.FlowEngine.Definitions; using Hotline.Share.Dtos.FlowEngine; namespace Hotline.FlowEngine.Workflows { public interface IWorkflowDomainService { Task CreateWorkflowAsync(Definition definition, string title, CancellationToken cancellationToken); /// /// 进行流程的开始节点 /// Task StartAsync(Workflow workflow, BasicWorkflowDto dto, CancellationToken cancellationToken); /// /// 查询工作流 /// Task GetWorkflowAsync(string workflowId, bool withDefine = false, bool withSteps = false, bool withTraces = false, bool withSupplements = false, CancellationToken cancellationToken = default); /// /// 受理,接办 /// Task AcceptAsync(Workflow workflow, CancellationToken cancellationToken); /// /// 办理(流转至下一节点) /// Task NextAsync(Workflow workflow, BasicWorkflowDto dto, StepDefine nextStepBoxDefine, bool isOutOfCallCenter, bool isStartCountersign, CancellationToken cancellationToken); /// /// 退回(返回前一节点) /// /// Task PreviousAsync(Workflow workflow, PreviousWorkflowDto dto, CancellationToken cancellationToken); /// /// 撤回(返回到之前任意节点) /// Task RecallAsync(Workflow workflow, RecallDto dto, CancellationToken cancellationToken); /// /// 跳转(直接将流程跳转至任意节点) /// Task JumpAsync(Workflow workflow, RecallDto dto, CancellationToken cancellationToken); /// /// 补充 /// /// Task SupplementAsync(Workflow workflow, EndWorkflowDto dto, CancellationToken cancellationToken); /// /// 终止流程 /// Task TerminateAsync(string id, CancellationToken cancellationToken); StepDefine GetStepBoxDefine(Definition definition, string stepCode); /// /// 查询当前待办节点的下一级节点配置(办理参数) /// IReadOnlyList GetNextStepOptions(Workflow workflow, CancellationToken cancellationToken); } }