xf il y a 1 an
Parent
commit
39fa7694a9

+ 28 - 14
src/Hotline.Application/FlowEngine/WorkflowApplication.cs

@@ -532,14 +532,16 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
 
             stepOption.InputRealHandler = false;
 
-            //已归档工单,撤回至中心看作otc,撤回至部门看作cto
-            stepOption.FlowDirection = isWorkflowFiled
-                ? stepDefine.BusinessType is EBusinessType.Center or EBusinessType.Send
-                    ? EFlowDirection.OrgToCenter
-                    : stepDefine.BusinessType is EBusinessType.Department
-                        ? EFlowDirection.CenterToOrg
-                        : null
-                : CheckFlowDirection(currentStep.BusinessType, stepDefine.BusinessType);
+            ////已归档工单,撤回至中心看作otc,撤回至部门看作cto
+            //stepOption.FlowDirection = isWorkflowFiled
+            //    ? stepDefine.BusinessType is EBusinessType.Center or EBusinessType.Send
+            //        ? EFlowDirection.OrgToCenter
+            //        : stepDefine.BusinessType is EBusinessType.Department
+            //            ? EFlowDirection.CenterToOrg
+            //            : null
+            //    : CheckFlowDirection(currentStep.BusinessType, stepDefine.BusinessType);
+
+            //需求已调整为特提必重算期满时间
 
             //需求:撤回选择办理对象时,默认选中该节点原办理对象
             if (originStep.Handlers.Any())
@@ -754,13 +756,25 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
         {
             case EBusinessType.Center:
             case EBusinessType.Send:
-                return directionStepBusinessType is EBusinessType.Department
-                    ? EFlowDirection.CenterToOrg
-                    : null;
+                return directionStepBusinessType switch
+                {
+                    EBusinessType.Center => EFlowDirection.CenterToCenter,
+                    EBusinessType.Send => EFlowDirection.CenterToCenter,
+                    EBusinessType.Department => EFlowDirection.CenterToOrg,
+                    EBusinessType.File => EFlowDirection.CenterToFile,
+                    _ => throw new ArgumentOutOfRangeException(nameof(directionStepBusinessType),
+                        directionStepBusinessType, null)
+                };
             case EBusinessType.Department:
-                return directionStepBusinessType is EBusinessType.Center or EBusinessType.Send
-                    ? EFlowDirection.OrgToCenter
-                    : null;
+                return directionStepBusinessType switch
+                {
+                    EBusinessType.Center => EFlowDirection.OrgToCenter,
+                    EBusinessType.Send => EFlowDirection.OrgToCenter,
+                    EBusinessType.Department => EFlowDirection.OrgToOrg,
+                    EBusinessType.File => EFlowDirection.OrgToFile,
+                    _ => throw new ArgumentOutOfRangeException(nameof(directionStepBusinessType),
+                        directionStepBusinessType, null)
+                };
             case EBusinessType.File:
                 return null;
             default:

+ 5 - 3
src/Hotline.Share/Enums/FlowEngine/EFlowDirection.cs

@@ -6,9 +6,11 @@ public enum EFlowDirection
 
     OrgToCenter = 1,
 
-    //CenterToCenter = 2,
+    CenterToCenter = 2,
 
-    //OrgToOrg = 3,
+    OrgToOrg = 3,
 
-    //CenterToFile = 4,
+    CenterToFile = 4,
+
+    OrgToFile = 5,
 }