소스 검색

Merge branch 'feature/orderhandle_no_nexStepCode' into test

xf 1 개월 전
부모
커밋
069875bbfd
2개의 변경된 파일16개의 추가작업 그리고 2개의 파일을 삭제
  1. 2 2
      src/Hotline/FlowEngine/Definitions/StepDefine.cs
  2. 14 0
      src/Hotline/FlowEngine/Workflows/WorkflowDomainService.cs

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

@@ -11,9 +11,9 @@ public class StepDefine : StepDefineBasic
 {
     #region method
 
-    public bool IsCenter() => BusinessType is EBusinessType.Seat or EBusinessType.Send;
+    public bool IsCenter() => BusinessType is EBusinessType.Seat or EBusinessType.Send or EBusinessType.CenterLeader or EBusinessType.CenterMonitor;
 
-    public bool IsOrg() => BusinessType is EBusinessType.Department;
+    public bool IsOrg() => BusinessType is EBusinessType.Department or EBusinessType.DepartmentLeader;
 
     #endregion
 }

+ 14 - 0
src/Hotline/FlowEngine/Workflows/WorkflowDomainService.cs

@@ -322,6 +322,20 @@ namespace Hotline.FlowEngine.Workflows
             }
             else
             {
+                //if dto.NextStepCode is empty, find nextCode, but if not only one throw it
+                if (string.IsNullOrEmpty(dto.NextStepCode))
+                {
+                    if (currentStepDefine?.NextSteps?.Count == 0)
+                        throw new UserFriendlyException(
+                            $"未选择下一办理节点且未配置下一节点, workflowId: {workflow.Id}, stepDefineName: {currentStepDefine.Name}",
+                            "未选择下一办理节点");
+                    if (currentStepDefine?.NextSteps?.Count > 1)
+                        throw new UserFriendlyException(
+                            $"未选择下一办理节点且配置有多个节点, workflowId: {workflow.Id}, stepDefineName: {currentStepDefine.Name}",
+                            "未选择下一办理节点且配置有多个节点");
+                    dto.NextStepCode = currentStepDefine.NextSteps.First().Code;
+                }
+
                 //下一步配置为下一步节点配置
                 nextStepDefine = GetStepDefine(workflow.WorkflowDefinition, dto.NextStepCode);
             }