|
@@ -526,7 +526,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
throw new UserFriendlyException($"流程流转数据异常,未结束流程出现endStep, flowId: {workflow.Id}", "流程流转数据异常");
|
|
|
|
|
|
var targetSteps = await CreateConfigStepsAsync(workflow, targetStepDefine, lastStep, dto,
|
|
|
- flowAssignInfo, cancellationToken);
|
|
|
+ flowAssignInfo, EWorkflowTraceStatus.Jump, cancellationToken);
|
|
|
targetStep = targetSteps.First();
|
|
|
|
|
|
workflow.EndCountersign();
|
|
@@ -789,7 +789,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
startStep.Status = EWorkflowStepStatus.WaitForHandle;
|
|
|
startStep.PrevChosenStepCode = null;
|
|
|
startStep.StepExpiredTime = workflow.ExpiredTime;
|
|
|
-
|
|
|
+
|
|
|
startStep.InitId();
|
|
|
return startStep;
|
|
|
}
|
|
@@ -797,10 +797,11 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
#region private method
|
|
|
|
|
|
public async Task<WorkflowStep> CreateStartStepAsync(Workflow workflow, StepDefine startStepDefine, BasicWorkflowDto dto,
|
|
|
- List<Kv> handles, CancellationToken cancellationToken)
|
|
|
+ List<Kv> handles, EWorkflowTraceStatus traceStatus, CancellationToken cancellationToken)
|
|
|
{
|
|
|
var startStep = CreateStartStep(workflow, startStepDefine, dto, handles);
|
|
|
await _workflowStepRepository.AddAsync(startStep, cancellationToken);
|
|
|
+ await CreateTraceAsync(workflow, startStep, traceStatus, cancellationToken);
|
|
|
return startStep;
|
|
|
}
|
|
|
|
|
@@ -844,7 +845,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
{
|
|
|
//todo 创建普通节点(根据配置)
|
|
|
nextSteps = await CreateConfigStepsAsync(workflow, nextStepDefine, currentStep, dto,
|
|
|
- flowAssignInfo, cancellationToken);
|
|
|
+ flowAssignInfo, EWorkflowTraceStatus.Normal, cancellationToken);
|
|
|
}
|
|
|
}
|
|
|
else
|
|
@@ -886,13 +887,13 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
//todo 创建动态下一级节点
|
|
|
nextSteps = await CreateStepsAsync(workflow, nextStepDefine, currentStep, dto,
|
|
|
flowAssignInfo.FlowAssignType, dto.NextHandlers, null, EWorkflowStepStatus.WaitForAccept,
|
|
|
- ECountersignPosition.None, false, cancellationToken);
|
|
|
+ ECountersignPosition.None, false, EWorkflowTraceStatus.Normal, cancellationToken);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//todo 创建普通节点(根据配置)
|
|
|
nextSteps = await CreateConfigStepsAsync(workflow, nextStepDefine, currentStep, dto, flowAssignInfo,
|
|
|
- cancellationToken);
|
|
|
+ EWorkflowTraceStatus.Normal, cancellationToken);
|
|
|
}
|
|
|
|
|
|
return nextSteps;
|
|
@@ -912,7 +913,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
|
|
|
return CreateStepsAsync(workflow, stepDefine, prevStep, dto, flowAssignType, dto.NextHandlers, countersignId,
|
|
|
EWorkflowStepStatus.WaitForAccept, prevStep.GetNextStepCountersignPosition(),
|
|
|
- false, cancellationToken);
|
|
|
+ false, EWorkflowTraceStatus.Normal, cancellationToken);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -1319,10 +1320,10 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
workflow.SetStatusRunnable();
|
|
|
|
|
|
var targetStepNew = targetIsStartStep
|
|
|
- ? await CreateStartStepAsync(workflow, targetStepDefine, dto,
|
|
|
- new List<Kv> { new(_sessionContext.RequiredUserId, _sessionContext.UserName) }, cancellationToken)
|
|
|
- : (await CreateConfigStepsAsync(workflow, targetStepDefine, targetPrevStep, dto, flowAssignInfo,
|
|
|
- cancellationToken)).First();
|
|
|
+ ? await CreateStartStepAsync(workflow, targetStepDefine, dto, dto.NextHandlers, traceStatus, cancellationToken)
|
|
|
+ : (await CreateStepsAsync(workflow, targetStepDefine, targetPrevStep, dto, flowAssignInfo.FlowAssignType, dto.NextHandlers,
|
|
|
+ null, EWorkflowStepStatus.WaitForAccept, ECountersignPosition.None, true, traceStatus, cancellationToken)).First();
|
|
|
+
|
|
|
|
|
|
//更新当前办理节点信息
|
|
|
workflow.UpdateWorkflowCurrentStepInfo(dto.IsStartCountersign,
|
|
@@ -1401,6 +1402,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
BasicWorkflowDto dto,
|
|
|
FlowAssignInfo flowAssignInfo,
|
|
|
//DateTime expiredTime,
|
|
|
+ EWorkflowTraceStatus traceStatus,
|
|
|
CancellationToken cancellationToken)
|
|
|
{
|
|
|
List<Kv> handlers;
|
|
@@ -1416,7 +1418,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
}
|
|
|
|
|
|
return await CreateStepsAsync(workflow, stepDefine, prevStep, dto, flowAssignInfo.FlowAssignType, handlers,
|
|
|
- null, EWorkflowStepStatus.WaitForAccept, ECountersignPosition.None, true, cancellationToken);
|
|
|
+ null, EWorkflowStepStatus.WaitForAccept, ECountersignPosition.None, true, traceStatus, cancellationToken);
|
|
|
}
|
|
|
|
|
|
private async Task<List<WorkflowStep>> CreateStepsAsync(
|
|
@@ -1431,6 +1433,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
ECountersignPosition csPosition,
|
|
|
//DateTime expiredTime,
|
|
|
bool isOrigin,
|
|
|
+ EWorkflowTraceStatus traceStatus,
|
|
|
CancellationToken cancellationToken
|
|
|
)
|
|
|
{
|
|
@@ -1464,7 +1467,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
//create traces todo add range traces
|
|
|
foreach (var step in steps)
|
|
|
{
|
|
|
- await CreateTraceAsync(workflow, step, EWorkflowTraceStatus.Normal, cancellationToken);
|
|
|
+ await CreateTraceAsync(workflow, step, traceStatus, cancellationToken);
|
|
|
}
|
|
|
|
|
|
return steps;
|