|
@@ -473,7 +473,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
/// <summary>
|
|
|
/// 撤回(返回到之前任意节点)
|
|
|
/// </summary>
|
|
|
- public async Task RecallAsync(Workflow workflow, NextWorkflowDto dto, StepDefine targetStepDefine, FlowAssignInfo flowAssignInfo, CancellationToken cancellationToken)
|
|
|
+ public async Task RecallAsync(Workflow workflow, RecallDto dto, StepDefine targetStepDefine, FlowAssignInfo flowAssignInfo, CancellationToken cancellationToken)
|
|
|
{
|
|
|
if (targetStepDefine.StepType is EStepType.Start or EStepType.End)
|
|
|
throw UserFriendlyException.SameMessage("开始/结束节点不支持撤回");
|
|
@@ -483,7 +483,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
throw UserFriendlyException.SameMessage("该流程尚未流转至该节点");
|
|
|
|
|
|
//update uncompleted traces
|
|
|
- await RecallTraceAsync(workflow.Id, dto, cancellationToken);
|
|
|
+ await RecallTraceAsync(workflow.Id, cancellationToken);
|
|
|
|
|
|
var isOrgToCenter = await RecallAsync(workflow, dto, targetStepDefine, targetStepBox, EWorkflowTraceStatus.Recall, cancellationToken);
|
|
|
|
|
@@ -497,7 +497,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
/// <summary>
|
|
|
/// 跳转(直接将流程跳转至任意节点)
|
|
|
/// </summary>
|
|
|
- public async Task JumpAsync(Workflow workflow, NextWorkflowDto dto, StepDefine targetStepDefine,
|
|
|
+ public async Task JumpAsync(Workflow workflow, RecallDto dto, StepDefine targetStepDefine,
|
|
|
bool isStartCountersign, FlowAssignInfo flowAssignInfo, CancellationToken cancellationToken)
|
|
|
{
|
|
|
if (targetStepDefine.StepType is EStepType.Start or EStepType.End)
|
|
@@ -942,7 +942,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
await _workflowStepRepository.UpdateRangeAsync(nextSteps, cancellationToken);
|
|
|
}
|
|
|
|
|
|
- private async Task JumpTraceAsync(string workflowId, NextWorkflowDto dto, CancellationToken cancellationToken)
|
|
|
+ private async Task JumpTraceAsync(string workflowId, RecallDto dto, CancellationToken cancellationToken)
|
|
|
{
|
|
|
//未办理的traces
|
|
|
var uncompleteTraces =
|
|
@@ -961,7 +961,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
await _workflowTraceRepository.UpdateRangeAsync(uncompleteTraces, cancellationToken);
|
|
|
}
|
|
|
|
|
|
- private async Task RecallTraceAsync(string workflowId, NextWorkflowDto dto, CancellationToken cancellationToken)
|
|
|
+ private async Task RecallTraceAsync(string workflowId, CancellationToken cancellationToken)
|
|
|
{
|
|
|
//未办理的traces
|
|
|
var uncompleteTraces =
|
|
@@ -1075,7 +1075,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
return parentTrace;
|
|
|
}
|
|
|
|
|
|
- private async Task<bool> RecallAsync(Workflow workflow, NextWorkflowDto dto, StepDefine targetStepDefine, WorkflowStep targetStepBox, EWorkflowTraceStatus traceStatus, CancellationToken cancellationToken)
|
|
|
+ private async Task<bool> RecallAsync(Workflow workflow, BasicWorkflowDto dto, StepDefine targetStepDefine, WorkflowStep targetStepBox, EWorkflowTraceStatus traceStatus, CancellationToken cancellationToken)
|
|
|
{
|
|
|
//get targetStep's previous
|
|
|
var targetPrevStepBox = workflow.StepBoxes.FirstOrDefault(d => d.Id == targetStepBox.PreviousId);
|
|
@@ -1094,12 +1094,12 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
workflow.StepBoxes.RemoveAll(d => removeSteps.Contains(d));
|
|
|
}
|
|
|
|
|
|
+ workflow.EndCountersign();
|
|
|
+
|
|
|
//recreate targetStep
|
|
|
- var targetStepBoxNew = await CreateStepAsync(dto.IsStartCountersign, workflow, targetStepDefine, dto, EWorkflowStepStatus.Assigned,
|
|
|
+ var targetStepBoxNew = await CreateStepAsync(false, workflow, targetStepDefine, dto, EWorkflowStepStatus.Assigned,
|
|
|
targetPrevStepBox, targetPrevStep, traceStatus, workflow.ExpiredTime, cancellationToken);
|
|
|
|
|
|
- workflow.EndCountersign();
|
|
|
-
|
|
|
//更新当前办理节点信息
|
|
|
workflow.UpdateWorkflowCurrentStepInfo(dto.IsStartCountersign, nextStep: targetStepBoxNew.Steps.First());
|
|
|
|