ソースを参照

feature: 省工单撤单时工单已办完

xf 9 ヶ月 前
コミット
d6e5c6bb8e
1 ファイル変更8 行追加2 行削除
  1. 8 2
      src/Hotline.Application/FlowEngine/WorkflowApplication.cs

+ 8 - 2
src/Hotline.Application/FlowEngine/WorkflowApplication.cs

@@ -418,8 +418,14 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
         await _workflowStepRepository.UpdateRangeAsync(unhandleSteps, cancellationToken);
         await _workflowTraceRepository.UpdateRangeAsync(unhandleTraces, cancellationToken);
 
-        await _workflowDomainService.EndAsync(workflow, dto,
-            endStepDefine, unhandleSteps.First(), current, expiredTime, cancellationToken);
+        if (workflow.Steps.All(d => d.StepType != EStepType.End))
+        {
+            var currentStep = unhandleSteps.FirstOrDefault() 
+                              ?? workflow.Steps.OrderBy(d => d.CreationTime).Last();
+
+            await _workflowDomainService.EndAsync(workflow, dto,
+                endStepDefine, currentStep, current, expiredTime, cancellationToken);
+        }
     }
 
     /// <summary>