Procházet zdrojové kódy

WorkflowApplication.cs

Xfedge před 1 rokem
rodič
revize
263f93431c

+ 21 - 0
src/Hotline.Application/FlowEngine/WorkflowApplication.cs

@@ -210,6 +210,25 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
         var startStep = definition.Steps.FirstOrDefault(d => d.StepType == EStepType.Start);
         if (startStep == null)
             throw new UserFriendlyException("未正确配置发起人节点");
+        
+        if(startStep.InstanceMode is EInstanceMode.Multiple)
+        {
+            switch (startStep.RepeatPolicy)
+            {
+                case ERepeatPolicy.OrgUpCenterTop:
+                    break;
+                case ERepeatPolicy.OrgUp:
+                    break;
+                case ERepeatPolicy.OrgDownCenterTop:
+                    break;
+                case ERepeatPolicy.OrgDown:
+                    break;
+                case null:
+                    break;
+                default:
+                    throw new ArgumentOutOfRangeException();
+            }
+        }
 
         var firstStepDefines = definition.FindStepDefines(startStep.NextSteps.Select(d => d.Code));
         if (!firstStepDefines.Any())
@@ -257,6 +276,7 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
                 handlers = stepDefine.HandlerTypeItems;
                 break;
             case EHandlerType.Role:
+                //当前操作人所属部门的下级部门并且属于配置包含角色
                 var roles = await _roleRepository.Queryable()
                     .Includes(d => d.Accounts.Where(x => !x.IsDeleted && x.Status == EAccountStatus.Normal).ToList(),
                         x => x.User)
@@ -354,6 +374,7 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
     /// 查询流程业务模块
     /// </summary>
     /// <param name="code"></param>
+    /// <param name="cancellationToken"></param>
     /// <returns></returns>
     /// <exception cref="UserFriendlyException"></exception>
     private async Task<WorkflowModule> GetWorkflowModuleAsync(string code, CancellationToken cancellationToken)