|
@@ -717,7 +717,8 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
/// 撤回(返回到之前任意节点)
|
|
|
/// </summary>
|
|
|
public async Task RecallAsync(Workflow workflow, RecallDto dto, StepDefine targetStepDefine,
|
|
|
- FlowAssignInfo flowAssignInfo, DateTime? expiredTime, CancellationToken cancellationToken)
|
|
|
+ FlowAssignInfo flowAssignInfo, List<WorkflowStepHandler> stepHandlers, DateTime? expiredTime,
|
|
|
+ CancellationToken cancellationToken)
|
|
|
{
|
|
|
var targetStep = workflow.Steps.FirstOrDefault(d => d.Code == dto.NextStepCode && d.IsOrigin);
|
|
|
if (targetStep is null)
|
|
@@ -727,7 +728,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
await RecallTraceAsync(workflow.Id, dto.Opinion, cancellationToken);
|
|
|
|
|
|
var isOrgToCenter = await RecallAsync(workflow, dto, flowAssignInfo, targetStepDefine, targetStep,
|
|
|
- EWorkflowTraceStatus.Recall, expiredTime, cancellationToken);
|
|
|
+ EWorkflowTraceStatus.Recall, stepHandlers, expiredTime, cancellationToken);
|
|
|
|
|
|
workflow.ResetHandlers(flowAssignInfo.FlowAssignType, flowAssignInfo.HandlerObjects);
|
|
|
|
|
@@ -1075,7 +1076,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
/// 创建开始节点
|
|
|
/// </summary>
|
|
|
public WorkflowStep CreateStartStep(Workflow workflow, StepDefine startStepDefine,
|
|
|
- BasicWorkflowDto dto, List<Kv> handles, DateTime? expiredTime)
|
|
|
+ BasicWorkflowDto dto, List<Kv> handles, List<WorkflowStepHandler> stepHandlers, DateTime? expiredTime)
|
|
|
{
|
|
|
//startstep
|
|
|
var nextSteps = _mapper.Map<List<StepSimple>>(startStepDefine.NextSteps);
|
|
@@ -1090,6 +1091,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
_mapper.Map(dto, startStep);
|
|
|
_mapper.Map(workflow, startStep);
|
|
|
startStep.Handlers = handles;
|
|
|
+ startStep.StepHandlers = stepHandlers;
|
|
|
startStep.NextSteps = nextSteps;
|
|
|
startStep.IsMain = true;
|
|
|
startStep.IsOrigin = true;
|
|
@@ -1222,10 +1224,10 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
}
|
|
|
|
|
|
private async Task<WorkflowStep> CreateStartStepAsync(Workflow workflow, StepDefine startStepDefine,
|
|
|
- BasicWorkflowDto dto, List<Kv> handles, EWorkflowTraceStatus traceStatus, DateTime? expiredTime,
|
|
|
- CancellationToken cancellationToken)
|
|
|
+ BasicWorkflowDto dto, List<Kv> handles, List<WorkflowStepHandler> stepHandlers, EWorkflowTraceStatus traceStatus,
|
|
|
+ DateTime? expiredTime, CancellationToken cancellationToken)
|
|
|
{
|
|
|
- var startStep = CreateStartStep(workflow, startStepDefine, dto, handles, expiredTime);
|
|
|
+ var startStep = CreateStartStep(workflow, startStepDefine, dto, handles, stepHandlers, expiredTime);
|
|
|
await _workflowStepRepository.AddAsync(startStep, cancellationToken);
|
|
|
await CreateTraceAsync(workflow, startStep, traceStatus, cancellationToken);
|
|
|
return startStep;
|
|
@@ -1723,7 +1725,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
|
|
|
private async Task<bool> RecallAsync(Workflow workflow, BasicWorkflowDto dto, FlowAssignInfo flowAssignInfo,
|
|
|
StepDefine targetStepDefine, WorkflowStep targetStep, EWorkflowTraceStatus traceStatus,
|
|
|
- DateTime? expiredTime, CancellationToken cancellationToken)
|
|
|
+ List<WorkflowStepHandler> stepHandlers, DateTime? expiredTime, CancellationToken cancellationToken)
|
|
|
{
|
|
|
var targetIsStartStep = targetStepDefine.StepType is EStepType.Start;
|
|
|
|
|
@@ -1750,7 +1752,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
workflow.SetStatusRunnable();
|
|
|
|
|
|
var targetStepNew = targetIsStartStep
|
|
|
- ? await CreateStartStepAsync(workflow, targetStepDefine, dto, dto.NextHandlers, traceStatus, expiredTime,
|
|
|
+ ? await CreateStartStepAsync(workflow, targetStepDefine, dto, dto.NextHandlers, stepHandlers, traceStatus, expiredTime,
|
|
|
cancellationToken)
|
|
|
: (await CreateStepsAsync(workflow, targetStepDefine, targetPrevStep, dto,
|
|
|
flowAssignInfo.FlowAssignType, dto.NextHandlers,
|