Ver Fonte

add stepconfig

xfe há 2 meses atrás
pai
commit
debc7b2a93

+ 7 - 7
src/Hotline.Api/Controllers/OrderController.cs

@@ -4328,7 +4328,7 @@ public class OrderController : BaseController
                     }).Where(o => o.Id == order.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
                 }
 
-                await _workflowDomainService.NextAsync(_sessionContext, nextDto, order.ExpiredTime, isAutoFillSummaryOpinion, cancellationToken);
+                await _workflowDomainService.NextAsync(_sessionContext, nextDto, order.ExpiredTime, isAutoFillSummaryOpinion, cancellationToken: cancellationToken);
                 break;
             case EOrderAssignMode.CrossLevel:
                 if (!orderHandleFlowDto.CrossSteps.Any())
@@ -4359,7 +4359,7 @@ public class OrderController : BaseController
                             OrgName = unhandleStep.HandlerOrgName,
                         };
                         var nextSteps = await _workflowDomainService.NextAsync(operater, nextflowDto, order.ExpiredTime,
-                            isAutoFillSummaryOpinion, cancellationToken);
+                            isAutoFillSummaryOpinion, cancellationToken: cancellationToken);
                         tempSteps.AddRange(nextSteps);
                     }
 
@@ -4414,7 +4414,7 @@ public class OrderController : BaseController
     {
         if (flowDto is null || !flowDto.NextHandlers.Any()) return;
         var currentSteps = await _workflowDomainService.NextAsync(current, flowDto, expiredTime,
-            isAutoFillSummaryOpinion, cancellation);
+            isAutoFillSummaryOpinion, cancellationToken: cancellation);
 
         foreach (var currentStep in currentSteps)
         {
@@ -5851,7 +5851,7 @@ public class OrderController : BaseController
             var reverseFlowStepAssignInfo = _orderDomainService.GetOrderRecallAssignInfo(dto.BusinessType, stepAssignInfo);
             await _workflowDomainService.RecallAsync(recall, reverseFlowStepAssignInfo, EWorkflowTraceType.Recall,
                 expiredTime.ExpiredTime, order.Status >= EOrderStatus.Filed, EHandleMode.Recall,
-                HttpContext.RequestAborted);
+                cancellationToken: HttpContext.RequestAborted);
 
             if (order.Status >= EOrderStatus.Filed)
             {
@@ -6062,7 +6062,7 @@ public class OrderController : BaseController
             var reverseFlowStepAssignInfo = _orderDomainService.GetOrderRecallAssignInfo(dto.BusinessType, stepAssignInfo);
             await _workflowDomainService.RecallAsync(recall, reverseFlowStepAssignInfo, EWorkflowTraceType.Redo,
                 endTime, order.Status >= EOrderStatus.Filed, EHandleMode.Redo,
-                HttpContext.RequestAborted);
+                cancellationToken: HttpContext.RequestAborted);
 
             //await _workflowApplication.RecallAsync(recall, endTime, order.Status >= EOrderStatus.Filed, EWorkflowTraceType.Redo,
             //    HttpContext.RequestAborted);
@@ -6226,7 +6226,7 @@ public class OrderController : BaseController
             var reverseFlowStepAssignInfo = _orderDomainService.GetOrderRecallAssignInfo(dto.BusinessType, stepAssignInfo);
             await _workflowDomainService.RecallAsync(recall, reverseFlowStepAssignInfo, EWorkflowTraceType.Recall,
                 expiredTime.ExpiredTime, order.Status >= EOrderStatus.Filed, EHandleMode.Recall,
-                HttpContext.RequestAborted);
+                cancellationToken: HttpContext.RequestAborted);
             //await _workflowApplication.RecallAsync(recall, expiredTime.ExpiredTime, order.Status >= EOrderStatus.Filed, EWorkflowTraceType.Recall,
             //    HttpContext.RequestAborted);
 
@@ -6392,7 +6392,7 @@ public class OrderController : BaseController
                 var reverseFlowStepAssignInfo = _orderDomainService.GetOrderRecallAssignInfo(dto.BusinessType, stepAssignInfo);
                 await _workflowDomainService.RecallAsync(recall, reverseFlowStepAssignInfo, EWorkflowTraceType.Recall,
                     expiredTime.ExpiredTime, order.Status >= EOrderStatus.Filed, EHandleMode.Recall,
-                    HttpContext.RequestAborted);
+                    cancellationToken: HttpContext.RequestAborted);
                 //await _workflowApplication.RecallAsync(recall, expiredTime.ExpiredTime, order.Status >= EOrderStatus.Filed, EWorkflowTraceType.Recall,
                 //    HttpContext.RequestAborted);
                 if (order.Status >= EOrderStatus.Filed)

+ 1 - 2
src/Hotline.Application/Handlers/FlowEngine/WorkflowNextHandler.cs

@@ -106,7 +106,6 @@ public class WorkflowNextHandler : INotificationHandler<NextStepNotify>
             //    $"收到{nameof(NextStepNotify)}, notification: {JsonConvert.SerializeObject(notification)}");
             var workflow = notification.Workflow;
             var data = notification.Dto;
-            var assignInfo = notification.FlowAssignInfo;
 
             var currentTag = notification.Trace.Tag.TryDeserialize<DefinitionTag>();
             var nextTag = notification.NextStepDefine.Tag.TryDeserialize<DefinitionTag>();
@@ -159,7 +158,7 @@ public class WorkflowNextHandler : INotificationHandler<NextStepNotify>
                     {
                         if (notification.Dto.IsSms)
                         {
-                            switch (notification.FlowAssignInfo.FlowAssignType)
+                            switch (notification.Dto.FlowAssignType)
                             {
                                 case EFlowAssignType.Org:
                                     var orgCodes = notification.Trace.NextHandlers.Select(x =>

Diff do ficheiro suprimidas por serem muito extensas
+ 459 - 446
src/Hotline.Application/Orders/OrderApplication.cs


+ 1 - 1
src/Hotline.Application/Orders/OrderSecondaryHandlingApplication.cs

@@ -222,7 +222,7 @@ namespace Hotline.Application.Orders
 
                 var reverseFlowStepAssignInfo = new ReverseFlowStepAssignInfo(EReverseFlowStepCreationPolicy.OriginStep);
                 await _workflowDomainService.RecallAsync(recall, reverseFlowStepAssignInfo, EWorkflowTraceType.SecondHandle, 
-                    expiredTime.ExpiredTime, isOrderFiled,  EHandleMode.SecondaryHandle, cancellationToken);
+                    expiredTime.ExpiredTime, isOrderFiled,  EHandleMode.SecondaryHandle, cancellationToken: cancellationToken);
 
                 visit.VisitState = EVisitState.None;
                 await _orderVisitRepository.UpdateAsync(visit, cancellationToken);

+ 1 - 1
src/Hotline/FlowEngine/Notifications/WorkflowNotify.cs

@@ -12,7 +12,7 @@ public record WorkflowNotify(Workflow Workflow, BasicWorkflowDto Dto) : INotific
 
 public record StartWorkflowNotify(Workflow Workflow, BasicWorkflowDto Dto, EFlowAssignType FlowAssignType, WorkflowTrace Trace) : WorkflowNotify(Workflow, Dto);
 
-public record NextStepNotify(Workflow Workflow, BasicWorkflowDto Dto, FlowAssignInfo FlowAssignInfo, WorkflowTrace Trace,
+public record NextStepNotify(Workflow Workflow, BasicWorkflowDto Dto, WorkflowTrace Trace,
     StepDefine NextStepDefine, string HandlerOrgId, bool ExpiredTimeChanged) : WorkflowNotify(Workflow, Dto);
 
 public record AcceptWorkflowNotify(Workflow Workflow) : INotification;

+ 9 - 6
src/Hotline/FlowEngine/Workflows/IWorkflowDomainService.cs

@@ -38,8 +38,8 @@ namespace Hotline.FlowEngine.Workflows
         /// new
         /// </summary>
         Task<List<WorkflowStep>> NextAsync(ISessionContext current, NextWorkflowDto dto,
-            ForwardFlowStepAssignInfo forwardFlowStepAssignInfo, Action<WorkflowStep>? stepConfig = null,
-            DateTime? expiredTime = null, bool isAutoFillSummaryOpinion = false, CancellationToken cancellationToken = default);
+            DateTime? expiredTime = null, bool isAutoFillSummaryOpinion = false,
+            Action<WorkflowStep>? stepConfig = null, CancellationToken cancellationToken = default);
 
         /// <summary>
         /// 查询工作流
@@ -88,18 +88,21 @@ namespace Hotline.FlowEngine.Workflows
         /// </summary>
         Task<bool> RecallAsync(RecallDto dto, ReverseFlowStepAssignInfo reverseFlowStepAssignInfo,
             EWorkflowTraceType traceType, DateTime? expiredTime, bool isOrderFiled, EHandleMode handleMode,
-            CancellationToken cancellationToken);
+            Action<WorkflowStep>? stepConfig = null,  CancellationToken cancellationToken = default);
 
         Task<bool> RecallAsync(Workflow workflow, RecallDto dto, ReverseFlowStepAssignInfo reverseFlowStepAssignInfo, StepDefine targetStepDefine,
-            EWorkflowTraceType traceType, DateTime? expiredTime, bool isOrderFiled, EHandleMode handleMode, CancellationToken cancellationToken);
+            EWorkflowTraceType traceType, DateTime? expiredTime, bool isOrderFiled, EHandleMode handleMode,
+            Action<WorkflowStep>? stepConfig = null,  CancellationToken cancellationToken = default);
 
         Task<bool> RecallAsync(Workflow workflow, RecallDto dto, ReverseFlowStepAssignInfo reverseFlowStepAssignInfo,
             StepDefine targetStepDefine, WorkflowStep targetStep, EWorkflowTraceType traceType,
-            DateTime? expiredTime, bool isOrderFiled, EHandleMode handleMode, CancellationToken cancellationToken);
+            DateTime? expiredTime, bool isOrderFiled, EHandleMode handleMode,
+            Action<WorkflowStep>? stepConfig = null,  CancellationToken cancellationToken = default);
 
         Task<bool> RecallAsync(Workflow workflow, RecallDto dto, ReverseFlowStepAssignInfo reverseFlowStepAssignInfo,
             WorkflowStep targetStep, EWorkflowTraceType traceType,
-            DateTime? expiredTime, bool isOrderFiled, EHandleMode handleMode, CancellationToken cancellationToken);
+            DateTime? expiredTime, bool isOrderFiled, EHandleMode handleMode, 
+            Action<WorkflowStep>? stepConfig = null,  CancellationToken cancellationToken = default);
 
         /// <summary>
         /// 撤回至开始节点

+ 43 - 50
src/Hotline/FlowEngine/Workflows/WorkflowDomainService.cs

@@ -135,7 +135,7 @@ namespace Hotline.FlowEngine.Workflows
 
             //firststeps
             var firstSteps = await CreateNextStepsAsync(workflow, startStep, dto, firstStepDefine, assigner,
-                isNextDynamic, flowAssignInfo.FlowAssignType, expiredTime, dto.IsStartCountersign, cancellationToken: cancellationToken);
+                isNextDynamic, expiredTime, dto.IsStartCountersign, cancellationToken: cancellationToken);
 
             await _workflowStepRepository.UpdateAsync(startStep, cancellationToken);
 
@@ -274,7 +274,7 @@ namespace Hotline.FlowEngine.Workflows
         /// new
         /// </summary>
         public async Task<List<WorkflowStep>> NextAsync(ISessionContext current, NextWorkflowDto dto,
-            ForwardFlowStepAssignInfo forwardFlowStepAssignInfo, DateTime? expiredTime = null, bool isAutoFillSummaryOpinion = false,
+            DateTime? expiredTime = null, bool isAutoFillSummaryOpinion = false,
             Action<WorkflowStep>? stepConfig = null, CancellationToken cancellationToken = default)
         {
             var workflow = await GetWorkflowAsync(dto.WorkflowId, withDefine: true, withSteps: true,
@@ -330,9 +330,8 @@ namespace Hotline.FlowEngine.Workflows
                     throw UserFriendlyException.SameMessage("下一会签汇总节点不允许发起会签");
             }
 
-            var flowAssignInfo =
-                await GetNextStepFlowAssignInfoAsync(workflow, currentStep, dto, nextStepDefine, isNextDynamic, cancellationToken);
-
+            // var flowAssignInfo =
+            //     await GetNextStepFlowAssignInfoAsync(workflow, currentStep, dto, nextStepDefine, isNextDynamic, cancellationToken);
             dto.FlowAssignType ??= SetNextStepAssignInfo(workflow, currentStep, dto, nextStepDefine, isNextDynamic);
 
             /*
@@ -356,7 +355,7 @@ namespace Hotline.FlowEngine.Workflows
                 && !dto.NextHandlers.Any())
             {
                 //todo 指派给配置的角色
-                flowAssignInfo.FlowAssignType = EFlowAssignType.Role;
+                dto.FlowAssignType = EFlowAssignType.Role;
                 var handler = nextStepDefine.HandlerTypeItems.First();
                 dto.NextHandlers.Add(new FlowStepHandler
                 {
@@ -513,7 +512,7 @@ namespace Hotline.FlowEngine.Workflows
                     !d.IsCompleted() && !string.IsNullOrEmpty(current.UserId) && d.StarterId == current.UserId);
                 if (exists)
                     throw new UserFriendlyException($"该用户在当前流程存在未结束会签, workflowId: {workflow.Id}, userId: {current.UserId}");
-                var countersign = await StartCountersignAsync(current, workflow, currentStep, dto, flowAssignInfo.FlowAssignType,
+                var countersign = await StartCountersignAsync(current, workflow, currentStep, dto,
                     counterSignType, expiredTime, cancellationToken);
                 currentTrace.StartCountersign(countersign.Id);
                 await _workflowStepRepository.UpdateAsync(currentStep, cancellationToken);
@@ -534,7 +533,7 @@ namespace Hotline.FlowEngine.Workflows
 
             //创建下一/N个节点(会签汇总节点:会签未全部办理时不创建,最后一个会签办理节点创建会签汇总节点)
             var nextSteps = await CreateNextStepsAsync(workflow, currentStep, dto,
-                nextStepDefine, assigner, isNextDynamic, flowAssignInfo.FlowAssignType, expiredTime, dto.IsStartCountersign,
+                nextStepDefine, assigner, isNextDynamic, expiredTime, dto.IsStartCountersign,
                 isAutoFillSummaryOpinion, stepConfig, cancellationToken);
 
             // //更新办理对象(nextSteps无元素表示当前节点为会签办理节点且当前会签没有全部办理完成)
@@ -562,7 +561,7 @@ namespace Hotline.FlowEngine.Workflows
             #endregion
 
             await _publisher.PublishAsync(
-                new NextStepNotify(workflow, dto, flowAssignInfo, currentTrace, nextStepDefine,
+                new NextStepNotify(workflow, dto, currentTrace, nextStepDefine,
                     current.OrgId, expiredTime.HasValue), PublishStrategy.ParallelWhenAll,
                 cancellationToken);
 
@@ -1614,8 +1613,7 @@ namespace Hotline.FlowEngine.Workflows
             var targetStepNew = targetIsStartStep
                 ? await CreateStartStepAsync(workflow, targetStepDefine, dto, assigner,
                     stepAssignInfo, traceType, expiredTime, stepAssignInfo.FlowAssignType, cancellationToken)
-                : (await CreateStepsAsync(workflow, targetStepDefine, targetPrevStep, dto, assigner,
-                    stepAssignInfo.FlowAssignType, [stepAssignInfo],
+                : (await CreateStepsAsync(workflow, targetStepDefine, targetPrevStep, dto, assigner, [stepAssignInfo],
                     null, EWorkflowStepStatus.WaitForAccept, ECountersignPosition.None, true, traceType,
                     null, expiredTime, stepConfig: stepConfig, cancellationToken: cancellationToken)).First();
 
@@ -1696,7 +1694,7 @@ namespace Hotline.FlowEngine.Workflows
             //   handleMode, cancellationToken);
             await RecallAsync(workflow, dto, reverseFlowStepAssignInfo, startStepDefine, startStep,
                 EWorkflowTraceType.Recall, expiredTime, isOrderFiled,
-                handleMode, cancellationToken);
+                handleMode, cancellationToken: cancellationToken);
         }
 
         /// <summary>
@@ -1744,7 +1742,7 @@ namespace Hotline.FlowEngine.Workflows
 
             await RecallAsync(workflow, dto, reverseFlowStepAssignInfo, sendStepDefine, sendStep,
                 EWorkflowTraceType.Recall, expiredTime, isOrderFiled,
-                handleMode, cancellationToken);
+                handleMode, cancellationToken: cancellationToken);
         }
 
         /// <summary>
@@ -2394,7 +2392,7 @@ namespace Hotline.FlowEngine.Workflows
         /// 创建下1/N个节点
         /// </summary>
         private async Task<List<WorkflowStep>> CreateNextStepsAsync(Workflow workflow, WorkflowStep currentStep,
-            BasicWorkflowDto dto, StepDefine nextStepDefine, UserInfo assigner, bool isNextDynamic, EFlowAssignType flowAssignType,
+            BasicWorkflowDto dto, StepDefine nextStepDefine, UserInfo assigner, bool isNextDynamic,
             DateTime? expiredTime, bool isStartCountersign, bool isAutoFillSummaryOpinion = false,
             Action<WorkflowStep>? stepConfig = null, CancellationToken cancellationToken = default)
         {
@@ -2411,13 +2409,13 @@ namespace Hotline.FlowEngine.Workflows
                         {
                             //依据会签策略创建会签下一级节点
                             nextSteps = await CreateCountersignStepsAsync(workflow, nextStepDefine, currentStep, dto,
-                                assigner, flowAssignType, expiredTime, cancellationToken);
+                                assigner, expiredTime, stepConfig, cancellationToken);
                         }
                         else
                         {
                             //创建普通节点(根据配置)
                             nextSteps = await CreateConfigStepsAsync(workflow, nextStepDefine, currentStep, dto, assigner,
-                                flowAssignType, EWorkflowTraceType.Normal, expiredTime, isAutoFillSummaryOpinion, cancellationToken);
+                                EWorkflowTraceType.Normal, expiredTime, isAutoFillSummaryOpinion, stepConfig, cancellationToken);
                         }
                     }
                     else
@@ -2436,7 +2434,7 @@ namespace Hotline.FlowEngine.Workflows
                         {
                             //依据会签策略创建会签下一级节点
                             nextSteps = await CreateCountersignStepsAsync(workflow, nextStepDefine, currentStep, dto,
-                                assigner, flowAssignType, expiredTime, cancellationToken);
+                                assigner, expiredTime, stepConfig, cancellationToken);
                         }
                     }
                 }
@@ -2452,7 +2450,7 @@ namespace Hotline.FlowEngine.Workflows
                     {
                         //依据会签策略创建会签下一级节点
                         nextSteps = await CreateCountersignStepsAsync(workflow, nextStepDefine, currentStep, dto,
-                            assigner, flowAssignType, expiredTime, cancellationToken);
+                            assigner, expiredTime, stepConfig, cancellationToken);
                     }
                 }
             }
@@ -2460,19 +2458,19 @@ namespace Hotline.FlowEngine.Workflows
             {
                 //依据会签策略创建会签下一级节点
                 nextSteps = await CreateCountersignStepsAsync(workflow, nextStepDefine, currentStep, dto,
-                    assigner, flowAssignType, expiredTime, cancellationToken);
+                    assigner, expiredTime, stepConfig, cancellationToken);
             }
             else if (isNextDynamic)
             {
                 //创建动态下一级节点
-                nextSteps = await CreateDynamicStepsAsync(workflow, nextStepDefine, currentStep, dto, assigner, flowAssignType,
-                    expiredTime, cancellationToken);
+                nextSteps = await CreateDynamicStepsAsync(workflow, nextStepDefine, currentStep, dto, assigner,
+                    expiredTime, stepConfig, cancellationToken);
             }
             else
             {
                 //创建普通节点(根据配置)
-                nextSteps = await CreateConfigStepsAsync(workflow, nextStepDefine, currentStep, dto, assigner, flowAssignType,
-                    EWorkflowTraceType.Normal, expiredTime, isAutoFillSummaryOpinion, cancellationToken);
+                nextSteps = await CreateConfigStepsAsync(workflow, nextStepDefine, currentStep, dto, assigner,
+                    EWorkflowTraceType.Normal, expiredTime, isAutoFillSummaryOpinion, stepConfig, cancellationToken);
             }
 
             return nextSteps;
@@ -2497,7 +2495,6 @@ namespace Hotline.FlowEngine.Workflows
             WorkflowStep prevStep,
             BasicWorkflowDto dto,
             UserInfo assigner,
-            EFlowAssignType flowAssignType,
             DateTime? expiredTime,
             Action<WorkflowStep>? stepConfig = null,
             CancellationToken cancellationToken = default)
@@ -2519,7 +2516,7 @@ namespace Hotline.FlowEngine.Workflows
             };
 
             return await CreateStepsAsync(workflow, nextStepDefine, prevStep, dto, assigner,
-                flowAssignType, dto.NextHandlers, null, EWorkflowStepStatus.WaitForAccept,
+                dto.NextHandlers, null, EWorkflowStepStatus.WaitForAccept,
                 ECountersignPosition.None, false, EWorkflowTraceType.Normal, handlerType, expiredTime,
                 stepConfig: stepConfig, cancellationToken: cancellationToken);
         }
@@ -2530,7 +2527,6 @@ namespace Hotline.FlowEngine.Workflows
             WorkflowStep prevStep,
             BasicWorkflowDto dto,
             UserInfo assigner,
-            EFlowAssignType flowAssignType,
             DateTime? expiredTime,
             Action<WorkflowStep>? stepConfig = null,
             CancellationToken cancellationToken = default
@@ -2546,7 +2542,7 @@ namespace Hotline.FlowEngine.Workflows
                 ? ECountersignPosition.Direct
                 : ECountersignPosition.Indirect;
 
-            return CreateStepsAsync(workflow, stepDefine, prevStep, dto, assigner, flowAssignType, dto.NextHandlers,
+            return CreateStepsAsync(workflow, stepDefine, prevStep, dto, assigner, dto.NextHandlers,
                 countersignId, EWorkflowStepStatus.WaitForAccept, nextStepCountersignPosition,
                 false, EWorkflowTraceType.Normal, handlerType, expiredTime, stepConfig: stepConfig, cancellationToken: cancellationToken);
         }
@@ -2741,7 +2737,7 @@ namespace Hotline.FlowEngine.Workflows
         /// 开始会签(创建会签数据,更新currentStep会签数据)
         /// </summary>
         private async Task<WorkflowCountersign> StartCountersignAsync(ISessionContext current, Workflow workflow, WorkflowStep startStep,
-            BasicWorkflowDto dto, EFlowAssignType? flowAssignType, ECounterSignType? counterSignType, DateTime? expiredTime,
+            BasicWorkflowDto dto, ECounterSignType? counterSignType, DateTime? expiredTime,
             CancellationToken cancellationToken)
         {
             var countersignId = startStep.CountersignId;
@@ -2752,7 +2748,7 @@ namespace Hotline.FlowEngine.Workflows
             }
 
             var countersign = await CreateCountersignAsync(current, workflow, startStep,
-                dto.NextHandlers.Select(d => new Kv(d.Key, d.Value)).ToList(), flowAssignType,
+                dto.NextHandlers.Select(d => new Kv(d.Key, d.Value)).ToList(), dto.FlowAssignType,
                 counterSignType, expiredTime, countersignId, cancellationToken);
             startStep.StartCountersign(countersign.Id);
             return countersign;
@@ -3159,8 +3155,7 @@ namespace Hotline.FlowEngine.Workflows
             var targetStepNew = targetIsStartStep
                 ? await CreateStartStepAsync(workflow, targetStepDefine, dto, assigner,
                     dto.NextHandlers.First(), traceType, expiredTime, flowAssignInfo.FlowAssignType, cancellationToken)
-                : (await CreateStepsAsync(workflow, targetStepDefine, targetPrevStep, dto, assigner,
-                    flowAssignInfo.FlowAssignType, dto.NextHandlers,
+                : (await CreateStepsAsync(workflow, targetStepDefine, targetPrevStep, dto, assigner, dto.NextHandlers,
                     null, EWorkflowStepStatus.WaitForAccept, ECountersignPosition.None, true, traceType,
                     null, expiredTime, cancellationToken: cancellationToken)).First();
 
@@ -3277,35 +3272,34 @@ namespace Hotline.FlowEngine.Workflows
             WorkflowStep prevStep,
             BasicWorkflowDto dto,
             UserInfo assigner,
-            EFlowAssignType flowAssignType,
             EWorkflowTraceType traceType,
             DateTime? expiredTime,
             bool isAutoFillSummaryOpinion = false,
             Action<WorkflowStep>? stepConfig = null,
             CancellationToken cancellationToken = default)
         {
-            List<FlowStepHandler> handlers;
-            if (stepDefine.HandlerType != EHandlerType.Role && !dto.NextHandlers.Any())
-                throw new UserFriendlyException("未指定节点处理者");
-            if (stepDefine.HandlerType == EHandlerType.Role && !dto.NextHandlers.Any())
-            {
-                var handler = stepDefine.HandlerTypeItems.First();
-                handlers = new List<FlowStepHandler>
-                {
-                    new() { Key = handler.Key, Value = handler.Value, RoleId = handler.Key, RoleName = handler.Value }
-                };
-            }
-            else
-            {
-                handlers = dto.NextHandlers;
-            }
+            // List<FlowStepHandler> handlers;
+            // if (stepDefine.HandlerType != EHandlerType.Role && !dto.NextHandlers.Any())
+            //     throw new UserFriendlyException("未指定节点处理者");
+            // if (stepDefine.HandlerType == EHandlerType.Role && !dto.NextHandlers.Any())
+            // {
+            //     var handler = stepDefine.HandlerTypeItems.First();
+            //     handlers = new List<FlowStepHandler>
+            //     {
+            //         new() { Key = handler.Key, Value = handler.Value, RoleId = handler.Key, RoleName = handler.Value }
+            //     };
+            // }
+            // else
+            // {
+            //     handlers = dto.NextHandlers;
+            // }
 
             string? opinion = null;
             if (isAutoFillSummaryOpinion && stepDefine.StepType is EStepType.Summary)
                 opinion = prevStep.Opinion;
 
             return await CreateStepsAsync(workflow, stepDefine, prevStep, dto,
-                assigner, flowAssignType, handlers, null,
+                assigner, dto.NextHandlers, null,
                 EWorkflowStepStatus.WaitForAccept, ECountersignPosition.None,
                 true, traceType, null, expiredTime, opinion, stepConfig, cancellationToken);
         }
@@ -3317,7 +3311,6 @@ namespace Hotline.FlowEngine.Workflows
             BasicWorkflowDto dto,
             //bool isStartCountersign,
             UserInfo assigner,
-            EFlowAssignType? flowAssignType,
             List<FlowStepHandler> handlers,
             string? countersignId,
             EWorkflowStepStatus stepStatus,
@@ -3335,7 +3328,7 @@ namespace Hotline.FlowEngine.Workflows
             foreach (var handler in handlers)
             {
                 var isMain = handlers.Count == 1 || (handlers.Count > 1 && handler.Key == dto.NextMainHandler);
-                var step = CreateStep(workflow, stepDefine, prevStep, flowAssignType,
+                var step = CreateStep(workflow, stepDefine, prevStep, dto.FlowAssignType,
                     handler, assigner, dto.NextStepCode, countersignId, stepStatus, csPosition, expiredTime,
                     dto.NextStepName, isOrigin, isMain, handlerType, dto.BusinessType, dto.FlowDirection, opinion);
 

Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff