|
@@ -1537,7 +1537,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
throw new UserFriendlyException("未指定节点处理者");
|
|
|
if (stepDefine.HandlerType == EHandlerType.Role && !dto.NextHandlers.Any())
|
|
|
{
|
|
|
- handlers = flowAssignInfo.HandlerObjects.Select(d => new Kv(d.Key, d.Value)).ToList();
|
|
|
+ handlers = flowAssignInfo.GetHandlers();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -1699,20 +1699,29 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
if (updateTraces.Any())
|
|
|
await _workflowTraceRepository.UpdateRangeAsync(updateTraces, cancellationToken);
|
|
|
|
|
|
+ await _workflowCountersignRepository.UpdateRangeAsync(updateCountersigns, cancellationToken);
|
|
|
+
|
|
|
+ //cp会签发起节点变为待办节点
|
|
|
+ //1. create terminal trace 2. 撤回至startStep
|
|
|
+ var newStep = await DuplicateStepWithTraceAsync(workflow, startCountersignStep, EWorkflowTraceStatus.Normal, cancellationToken);
|
|
|
+
|
|
|
if (workflow.CheckIfCountersignOver())
|
|
|
workflow.EndCountersign();
|
|
|
|
|
|
+ var removeHandlers = updateSteps.SelectMany(d => d.Handlers).Select(d => d.Key).ToList();
|
|
|
+
|
|
|
+ var handlerObjs = newStep.Handlers.Select(d => new HandlerGroupItem
|
|
|
+ {
|
|
|
+ GroupId = Guid.NewGuid().ToString(),
|
|
|
+ Key = d.Key,
|
|
|
+ Value = d.Value
|
|
|
+ }).ToList();
|
|
|
+ workflow.UpdateHandlers(removeHandlers, newStep.FlowAssignType.Value, handlerObjs);
|
|
|
|
|
|
await _workflowRepository.UpdateAsync(workflow, cancellationToken);
|
|
|
|
|
|
- await _workflowCountersignRepository.UpdateRangeAsync(updateCountersigns, cancellationToken);
|
|
|
}
|
|
|
|
|
|
- //cp会签发起节点变为待办节点
|
|
|
- //1. create terminal trace 2. 撤回至startStep
|
|
|
- await DuplicateStepWithTraceAsync(workflow, startCountersignStep, EWorkflowTraceStatus.Normal, cancellationToken);
|
|
|
-
|
|
|
-
|
|
|
return workflow;
|
|
|
}
|
|
|
|