xf il y a 1 an
Parent
commit
1c15681801

+ 12 - 23
src/Hotline.Application/FlowEngine/WorkflowApplication.cs

@@ -142,8 +142,6 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
     /// <summary>
     /// 流转至下一节点(节点办理)
     /// </summary>
-
-    //new
     public async Task NextAsync(NextWorkflowDto dto, CancellationToken cancellationToken)
     {
         var workflow = await _workflowDomainService.GetWorkflowAsync(dto.WorkflowId, true, true, withCountersigns: true,
@@ -419,24 +417,17 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
         if (currentStep.StepType is EStepType.End)
             throw new UserFriendlyException("结束节点无需办理");
 
-        //var dto = new NextStepsDto
-        //{
-        //    DefinitionId = workflow.DefinitionId,
-        //    InstanceMode = currentStep.InstanceMode,
-        //    DynamicPolicy = currentStep.InstancePolicy
-        //};
+        var dto = new NextStepsDto
+        {
+            CanReject = currentStep.CanReject
+        };
 
         if (currentStep.InstanceMode is EInstanceMode.Dynamic && !DynamicShouldTerminal(currentStep))
         {
             //动态生成下一步
-            //var nextStepOption = CreateDynamicStep(currentStep.InstancePolicy);
-            //dto.Steps = new List<NextStepOption> { nextStepOption };
-            //return dto;
             var nextStepOption = await CreateDynamicStepAsync(currentStep.InstancePolicy.Value, cancellationToken);
-            return new NextStepsDto
-            {
-                Steps = new List<NextStepOption> { nextStepOption }
-            };
+            dto.Steps = new List<NextStepOption> { nextStepOption };
+            return dto;
         }
 
         if (currentStep.IsInCountersign())
@@ -448,8 +439,8 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
                 //当前待办节点为会签汇总节点时:检查是否为顶级会签发起节点(csstate==none),t:按配置往下走,f:继续往上汇总,不需要重复往下指派
                 if (currentStep.CountersignStartStepId != workflow.TopCountersignStepId)
                 {
-                    var steps = new List<NextStepOption> { countersignEndOption };
-                    return new NextStepsDto { Steps = steps };
+                    dto.Steps = new List<NextStepOption> { countersignEndOption };
+                    return dto;
                 }
 
                 //var startCountersignStep = workflow.Steps.FirstOrDefault(d => d.Id == currentStep.CountersignStartStepId);
@@ -467,8 +458,8 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
             {
                 //按会签策略
                 var nextStepOption = await CreateDynamicStepAsync(currentStep.CountersignPolicy.Value, cancellationToken);
-                var steps = new List<NextStepOption> { nextStepOption, countersignEndOption };
-                return new NextStepsDto { Steps = steps };
+                dto.Steps = new List<NextStepOption> { nextStepOption, countersignEndOption };
+                return dto;
             }
         }
 
@@ -476,10 +467,8 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
         if (!nextDefines.Any())
             throw new UserFriendlyException("未正确配置下一节点");
 
-        return new NextStepsDto
-        {
-            Steps = await CreateConfigStepsAsync(nextDefines, cancellationToken)
-        };
+        dto.Steps = await CreateConfigStepsAsync(nextDefines, cancellationToken);
+        return dto;
 
 
         //return new NextStepsDto

+ 5 - 0
src/Hotline.Share/Dtos/FlowEngine/NextStepsDto.cs

@@ -9,6 +9,11 @@ public class NextStepsDto
     //public EDynamicPolicy DynamicPolicy { get; set; }
     public IReadOnlyList<NextStepOption> Steps { get; set; }
     public DateTime? ExpiredTime { get; set; }
+
+    /// <summary>
+    /// 是否有否决按钮
+    /// </summary>
+    public bool CanReject { get; set; }
 }
 
 public class NextStepOption : Kv