Parcourir la source

fix: 指派给部门领导时,ActualHandleOrgCode赋值异常

xf il y a 8 mois
Parent
commit
391a3afec5

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

@@ -6327,9 +6327,9 @@ public class OrderController : BaseController
             if (steps.Count > 1)
                 throw UserFriendlyException.SameMessage("多个待办理节点暂不支持平移");
             step = steps.First();
-            if (step.BusinessType is not EBusinessType.Center and not EBusinessType.Send)
+            if (step.BusinessType is not EBusinessType.Seat and not EBusinessType.Send)
                 throw UserFriendlyException.SameMessage("当前办理节点非中心暂不支持平移");
-            setting = step.BusinessType is EBusinessType.Center
+            setting = step.BusinessType is EBusinessType.Seat
                 ? _systemSettingCacheManager.GetSetting(SettingConstants.RoleZuoXi)
                 : _systemSettingCacheManager.GetSetting(SettingConstants.RolePaiDan);
         }

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

@@ -646,7 +646,7 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
 
             //已归档工单,撤回至中心看作otc,撤回至部门看作cto
             stepOption.FlowDirection = isWorkflowFiled
-                ? stepDefine.BusinessType is EBusinessType.Center or EBusinessType.Send
+                ? stepDefine.BusinessType is EBusinessType.Seat or EBusinessType.Send
                     ? EFlowDirection.FiledToCenter
                     : stepDefine.BusinessType is EBusinessType.Department
                         ? EFlowDirection.FiledToOrg
@@ -852,7 +852,7 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
 
                 //工单办理:除一级部门选择中心汇总(中心会签流程,返回topCountersignStep场景),其余只能选下级部门
                 if (flowType is EFlowType.Handle
-                    && (stepDefine.StepType != EStepType.Summary && stepDefine.BusinessType != EBusinessType.Center))
+                    && (stepDefine.StepType != EStepType.Summary && stepDefine.BusinessType != EBusinessType.Seat))
                     users1 = users1.Where(d => d.OrgId.StartsWith(levelOneOrgId));
                 var defineTypeItem = stepDefine.HandlerTypeItems.First();
 
@@ -1316,7 +1316,7 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
             withCountersigns: true, cancellationToken: cancellationToken);
         var (currentStep, prevStep, _) = _workflowDomainService.GetPreviousStep(workflow, operatorId, operatorOrgId, roles);
         var isOrgToCenter = currentStep.BusinessType is EBusinessType.Department &&
-                            prevStep.BusinessType is EBusinessType.Center or EBusinessType.Send;
+                            prevStep.BusinessType is EBusinessType.Seat or EBusinessType.Send;
         var isSecondToFirstOrgLevel = currentStep.HandlerType is EHandlerType.OrgLevel &&
                                       currentStep.Handlers.First().Key.CheckIfOrgLevelIs(2) &&
                                       prevStep.HandlerType is EHandlerType.OrgLevel &&

+ 10 - 4
src/Hotline.Share/Enums/FlowEngine/EBusinessType.cs

@@ -5,10 +5,10 @@ namespace Hotline.Share.Enums.FlowEngine;
 public enum EBusinessType
 {
     /// <summary>
-    /// 中心节点
+    /// 坐席节点
     /// </summary>
-    [Description("中心节点")]
-    Center = 0,
+    [Description("坐席节点")]
+    Seat = 0,
 
     /// <summary>
     /// 派单节点
@@ -22,8 +22,14 @@ public enum EBusinessType
     [Description("部门节点")]
     Department = 2,
 
+    /// <summary>
+    /// 部门领导
+    /// </summary>
+    [Description("部门领导节点")]
+    DepartmentLeader = 3,
+
     /// <summary>
     /// 归档节点
     /// </summary>
-    File = 3,
+    File = 99,
 }

+ 1 - 1
src/Hotline/FlowEngine/Definitions/StepDefine.cs

@@ -11,7 +11,7 @@ public class StepDefine : StepDefineBasic
 {
     #region method
 
-    public bool IsCenter() => BusinessType is EBusinessType.Center or EBusinessType.Send;
+    public bool IsCenter() => BusinessType is EBusinessType.Seat or EBusinessType.Send;
 
     public bool IsOrg() => BusinessType is EBusinessType.Department;
 

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

@@ -919,11 +919,11 @@ namespace Hotline.FlowEngine.Workflows
         {
             switch (sourceStepBusinessType)
             {
-                case EBusinessType.Center:
+                case EBusinessType.Seat:
                 case EBusinessType.Send:
                     return directionStepBusinessType switch
                     {
-                        EBusinessType.Center => EFlowDirection.CenterToCenter,
+                        EBusinessType.Seat => EFlowDirection.CenterToCenter,
                         EBusinessType.Send => EFlowDirection.CenterToCenter,
                         EBusinessType.Department => EFlowDirection.CenterToOrg,
                         EBusinessType.File => EFlowDirection.CenterToFile,
@@ -934,7 +934,7 @@ namespace Hotline.FlowEngine.Workflows
                 case EBusinessType.File:
                     return directionStepBusinessType switch
                     {
-                        EBusinessType.Center => EFlowDirection.OrgToCenter,
+                        EBusinessType.Seat => EFlowDirection.OrgToCenter,
                         EBusinessType.Send => EFlowDirection.OrgToCenter,
                         EBusinessType.Department => EFlowDirection.OrgToOrg,
                         EBusinessType.File => EFlowDirection.OrgToFile,
@@ -1483,8 +1483,8 @@ namespace Hotline.FlowEngine.Workflows
         //public ECounterSignType? GetCounterSignType(EBusinessType businessType) =>
         //    businessType switch
         //    {
-        //        EBusinessType.Center => ECounterSignType.Center,
-        //        EBusinessType.Send => ECounterSignType.Center,
+        //        EBusinessType.Seat => ECounterSignType.Seat,
+        //        EBusinessType.Send => ECounterSignType.Seat,
         //        EBusinessType.Department => ECounterSignType.Department,
         //        EBusinessType.File => null,
         //        _ => throw new ArgumentOutOfRangeException(nameof(businessType), businessType, null)
@@ -1534,7 +1534,7 @@ namespace Hotline.FlowEngine.Workflows
             if (dto.IsStartCountersign) return;
             if (workflow.IsInCountersign) return;
 
-            if (nextStepDefine.BusinessType is EBusinessType.Center or EBusinessType.Send)
+            if (nextStepDefine.BusinessType is EBusinessType.Seat or EBusinessType.Send)
             {
                 //坐席->派单不选办理对象时
                 workflow.UpdateCurrentStepWhenAssign(nextSteps.First(),
@@ -1558,7 +1558,7 @@ namespace Hotline.FlowEngine.Workflows
             if (workflow.IsInCountersign) return;
             if (nextStepDefine.StepType is EStepType.Summary or EStepType.End) return;
 
-            if (nextStepDefine.BusinessType is EBusinessType.Center or EBusinessType.Send)
+            if (nextStepDefine.BusinessType is EBusinessType.Seat or EBusinessType.Send)
             {
                 //坐席->派单不选办理对象时
                 workflow.UpdateActualStepWhenAssign(nextSteps.First(),
@@ -1569,8 +1569,8 @@ namespace Hotline.FlowEngine.Workflows
             {
                 var nextHandler = dto.NextHandlers.First();
                 workflow.UpdateActualStepWhenAssign(nextSteps.First(),
-                    actualHandleOrgCode: nextHandler.Key,
-                    actualHandleOrgName: nextHandler.Value);
+                    actualHandleOrgCode: nextHandler.OrgId,
+                    actualHandleOrgName: nextHandler.OrgName);
             }
 
             //if ( /*workflow.FlowType is EFlowType.Handle &&*/
@@ -1578,7 +1578,7 @@ namespace Hotline.FlowEngine.Workflows
             //    nextStepDefine.StepType != EStepType.Summary &&
             //    nextStepDefine.StepType != EStepType.End)
             //{
-            //    if (nextStepDefine.BusinessType is EBusinessType.Center or EBusinessType.Send)
+            //    if (nextStepDefine.BusinessType is EBusinessType.Seat or EBusinessType.Send)
             //    {
             //        workflow.UpdateActualStepWhenAssign(firstSteps.First(), actualHandleOrgCode: OrgSeedData.CenterId,
             //            actualHandleOrgName: "市民热线服务中心");

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

@@ -108,7 +108,7 @@ public class WorkflowStep : StepBasicEntity
     //            ? ECountersignPosition.Single
     //            : ECountersignPosition.None;
 
-    public bool IsCenter() => BusinessType is EBusinessType.Center or EBusinessType.Send;
+    public bool IsCenter() => BusinessType is EBusinessType.Seat or EBusinessType.Send;
 
     public bool IsOrg() => BusinessType is EBusinessType.Department;