Procházet zdrojové kódy

恢复和调整工作流结束步骤定义的处理逻辑

重新启用了 `StartToEndAsync` 方法中被注释掉的代码块,恢复了获取工作流模块和定义、检查定义状态、查找结束步骤定义并设置 `dto` 的相关属性的代码。同时,注释掉了 `StartAsync` 方法返回的 `workflow` 对象中查找结束步骤定义的代码。
xf před 2 týdny
rodič
revize
4faeda7290

+ 12 - 12
src/Hotline/FlowEngine/Workflows/WorkflowDomainService.cs

@@ -648,17 +648,17 @@ namespace Hotline.FlowEngine.Workflows
         public async Task StartToEndAsync(StartWorkflowDto dto, string externalId, DateTime? expiredTime = null,
             CancellationToken cancellationToken = default)
         {
-            //var wfModule = await GetWorkflowModuleAsync(dto.DefinitionModuleCode, cancellationToken);
-            //var definition = wfModule.Definition;
-            //if (definition == null)
-            //    throw new UserFriendlyException("无效模板编码");
-            //if (definition.Status is not EDefinitionStatus.Enable)
-            //    throw new UserFriendlyException("该模板不可用");
-
-            //var endStepDefine = definition.FindEndStepDefine();
-            //dto.NextStepCode = endStepDefine.Code;
-            //dto.NextStepName = endStepDefine.Name;
-            //dto.FlowDirection = EFlowDirection.CenterToFile;
+            var wfModule = await GetWorkflowModuleAsync(dto.DefinitionModuleCode, cancellationToken);
+            var definition = wfModule.Definition;
+            if (definition == null)
+                throw new UserFriendlyException("无效模板编码");
+            if (definition.Status is not EDefinitionStatus.Enable)
+                throw new UserFriendlyException("该模板不可用");
+
+            var endStepDefine = definition.FindEndStepDefine();
+            dto.NextStepCode = endStepDefine.Code;
+            dto.NextStepName = endStepDefine.Name;
+            dto.FlowDirection = EFlowDirection.CenterToFile;
 
             //await StartAsync(dto, externalId, expiredTime, cancellationToken: cancellationToken);
 
@@ -667,7 +667,7 @@ namespace Hotline.FlowEngine.Workflows
             nextDto.WorkflowId = workflow.Id;
             nextDto.StepId = startStep.Id;
 
-            var endStepDefine = workflow.WorkflowDefinition.FindEndStepDefine();
+            //var endStepDefine = workflow.WorkflowDefinition.FindEndStepDefine();
             nextDto.NextStepCode = endStepDefine.Code;
             nextDto.NextStepName = endStepDefine.Name;