Jelajahi Sumber

fixed: 撤回不可选择当前实际办理节点

xf 1 tahun lalu
induk
melakukan
136ddae967

+ 6 - 3
src/Hotline.Application/FlowEngine/WorkflowApplication.cs

@@ -604,12 +604,15 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
     {
         var workflow = await _workflowDomainService.GetWorkflowAsync(workflowId, withDefine: true, withSteps: true,
             cancellationToken: cancellationToken);
-        var originSteps = workflow.Steps.Where(d => d.StepType != EStepType.End && d.IsOrigin).ToList(); //todo 恢复到可撤回至发起人节点
-        var stepCodes = originSteps.Select(d => d.Code).ToList();
-        var stepDefines = workflow.WorkflowDefinition.FindStepDefines(stepCodes);
         var currentStep = workflow.Steps.FirstOrDefault(d => d.Id == workflow.ActualHandleStepId);
         if (currentStep is null)
             throw new UserFriendlyException("无效当前节点编号");
+        var originSteps = workflow.Steps.Where(d =>
+            d.StepType != EStepType.End &&
+            d.IsOrigin &&
+            d.Id != currentStep.Id).ToList();
+        var stepCodes = originSteps.Select(d => d.Code).ToList();
+        var stepDefines = workflow.WorkflowDefinition.FindStepDefines(stepCodes);
 
         var dto = new NextStepsDto<RecallStepOption>
         {