xf há 2 meses atrás
pai
commit
68a022d7eb

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

@@ -232,7 +232,7 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
 
         //todo 需求:所有坐席都可以办,临时方案,后期重构:依据策略决定指派对象
         var startStep = _workflowDomainService.CreateStartStep(workflow, startStepDefine, dto, assigner,
-            new FlowStepHandler
+            new StepAssignInfo
             {
                 Key = _sessionContextProvider.SessionContext.RequiredUserId,
                 Value = _sessionContextProvider.SessionContext.UserName,
@@ -242,8 +242,8 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
                 OrgName = _sessionContextProvider.SessionContext.OrgName,
                 RoleId = defineHandler.Key,
                 RoleName = defineHandler.Value,
-            }, expiredTime,
-            EFlowAssignType.Role);
+                FlowAssignType = EFlowAssignType.Role,
+            }, expiredTime);
 
         if (dto.Files.Any())
             startStep.FileJson = await _fileRepository.AddFileAsync(dto.Files, workflow.ExternalId, startStep.Id, cancellationToken);

+ 1 - 1
src/Hotline/FlowEngine/Workflows/IWorkflowDomainService.cs

@@ -192,7 +192,7 @@ namespace Hotline.FlowEngine.Workflows
         /// 创建开始节点
         /// </summary>
         WorkflowStep CreateStartStep(Workflow workflow, StepDefine startStepDefine, BasicWorkflowDto dto, UserInfo assigner,
-            FlowStepHandler handler, DateTime? expiredTime, EFlowAssignType? flowAssignType = EFlowAssignType.User,
+            StepAssignInfo handler, DateTime? expiredTime, //EFlowAssignType? flowAssignType = EFlowAssignType.User,
             Action<Workflow, StepDefine, WorkflowStep, WorkflowStep>? stepConfig = null);
 
         /// <summary>

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

@@ -223,7 +223,7 @@ namespace Hotline.FlowEngine.Workflows
                 _sessionContextProvider.SessionContext.OrgIsCenter
             );
 
-            var handler = new FlowStepHandler
+            var handler = new StepAssignInfo
             {
                 Key = _sessionContextProvider.SessionContext.RequiredUserId,
                 Value = _sessionContextProvider.SessionContext.UserName,
@@ -233,8 +233,9 @@ namespace Hotline.FlowEngine.Workflows
                 OrgName = _sessionContextProvider.SessionContext.OrgName,
                 RoleId = defineHandler.Key,
                 RoleName = defineHandler.Value,
+                FlowAssignType = EFlowAssignType.User
             };
-            var startStep = CreateStartStep(workflow, startStepDefine, dto, assigner, handler, expiredTime, stepConfig: stepConfig);
+            var startStep = CreateStartStep(workflow, startStepDefine, dto, assigner, handler, expiredTime, stepConfig);
 
             if (dto.Files.Any())
                 startStep.FileJson =
@@ -1531,6 +1532,7 @@ namespace Hotline.FlowEngine.Workflows
                 traceType, expiredTime, isOrderFiled, handleMode, stepConfig, cancellationToken);
         }
 
+
         public Task<bool> RecallAsync(Workflow workflow, RecallDto dto, StepAssignInfo stepAssignInfo,
             WorkflowStep targetStep, EWorkflowTraceType traceType, DateTime? expiredTime, bool isOrderFiled, EHandleMode handleMode,
             Action<Workflow, StepDefine, WorkflowStep, WorkflowStep>? stepConfig = null,
@@ -2023,8 +2025,8 @@ namespace Hotline.FlowEngine.Workflows
         /// </summary>
         public WorkflowStep CreateStartStep(
             Workflow workflow, StepDefine startStepDefine,
-            BasicWorkflowDto dto, UserInfo assigner, FlowStepHandler handler, DateTime? expiredTime,
-            EFlowAssignType? flowAssignType = EFlowAssignType.User,
+            BasicWorkflowDto dto, UserInfo assigner, StepAssignInfo handler, DateTime? expiredTime,
+            //EFlowAssignType? flowAssignType = EFlowAssignType.User,
             Action<Workflow, StepDefine, WorkflowStep, WorkflowStep>? stepConfig = null)
         {
             //startstep
@@ -2038,7 +2040,7 @@ namespace Hotline.FlowEngine.Workflows
 
             var startStep = _mapper.Map<WorkflowStep>(startStepDefine);
             _mapper.Map(workflow, startStep);
-            startStep.FlowAssignType = flowAssignType;
+            //startStep.FlowAssignType = flowAssignType;
             startStep.Handlers = new List<Kv> { new(handler.Key, handler.Value) };
             startStep.NextSteps = nextSteps;
             startStep.IsMain = true;
@@ -2049,9 +2051,7 @@ namespace Hotline.FlowEngine.Workflows
             if (expiredTime.HasValue)
                 startStep.StepExpiredTime = expiredTime;
 
-            startStep.Assign(handler.UserId, handler.Username,
-                handler.OrgId, handler.OrgName,
-                handler.RoleId, handler.RoleName);
+            startStep.Assign(handler);
 
             startStep.AssignerId = assigner.UserId;
             startStep.AssignerName = assigner.UserName;
@@ -2435,8 +2435,7 @@ namespace Hotline.FlowEngine.Workflows
             Action<Workflow, StepDefine, WorkflowStep, WorkflowStep>? stepConfig = null,
             CancellationToken cancellationToken = default)
         {
-            var startStep = CreateStartStep(workflow, startStepDefine, dto, assigner, stepAssignInfo, expiredTime,
-                stepAssignInfo.FlowAssignType, stepConfig);
+            var startStep = CreateStartStep(workflow, startStepDefine, dto, assigner, stepAssignInfo, expiredTime, stepConfig);
             await _workflowStepRepository.AddAsync(startStep, cancellationToken);
             await CreateTraceAsync(workflow, startStep, traceType, cancellationToken);
             return startStep;
@@ -3906,7 +3905,8 @@ namespace Hotline.FlowEngine.Workflows
             if (!string.IsNullOrEmpty(stepName))
                 step.Name = stepName;
 
-            //新增需求: 部门汇总节点由部门办理//todo 待确认中心由部门处理还是由之前办理人办理 待重构
+            //新增需求: 部门汇总节点由部门办理
+            //todo 待确认中心由部门处理还是由之前办理人办理 待重构
             if (step.StepType == EStepType.Summary && step.BusinessType == EBusinessType.Department)
                 step.FlowAssignType = EFlowAssignType.Org;