xf il y a 1 an
Parent
commit
b1ae97ff0e

+ 83 - 0
src/Hotline.Share/Dtos/FlowEngine/Definition/StepDefineBasic.cs

@@ -0,0 +1,83 @@
+using Hotline.Share.Enums.FlowEngine;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Hotline.Share.Dtos.FlowEngine.Definition
+{
+    /// <summary>
+    /// 模板定义节点
+    /// </summary>
+    public class StepDefineBasic
+    {
+        public string Name { get; set; }
+
+        /// <summary>
+        /// 模板内唯一
+        /// </summary>
+        public string Code { get; set; }
+
+        /// <summary>
+        /// 办理/汇总、开始/结束
+        /// </summary>
+        public EStepType StepType { get; init; }
+
+        /// <summary>
+        /// 业务属性
+        /// </summary>
+        public EBusinessProperty BusinessProperty { get; set; }
+
+        /// <summary>
+        /// 办理者类型
+        /// </summary>
+        public EHandlerType HandlerType { get; set; }
+
+        /// <summary>
+        /// 办理者类型下的配置(或是直接保存办理者)
+        /// <example>
+        /// 根据类型可能为:roles, orgLevels, orgTypes, orgCodes, userIds
+        /// </example>
+        /// </summary>
+        public List<KeyValuePair<string, string>> HandlerTypeItems { get; set; } = new();
+
+        /// <summary>
+        /// 是否支持发起会签
+        /// </summary>
+        public bool CanStartCountersign { get; set; }
+
+        /// <summary>
+        /// 执行模式(自动与否)
+        /// </summary>
+        public EExecuteMode ExecuteMode { get; set; }
+
+        /// <summary>
+        /// 实例化模式
+        /// </summary>
+        public EInstanceMode InstanceMode { get; set; }
+
+        /// <summary>
+        /// 循环策略(loop才有)
+        /// </summary>
+        public ELoopPolicy? LoopPolicy { get; set; }
+
+        /// <summary>
+        /// 到此标记loop终止(loop才有)
+        /// <remarks>
+        /// 按直属部门循环既保存orgId
+        /// </remarks>
+        /// </summary>
+        public string? TerminalLoopTag { get; set; }
+
+        /// <summary>
+        /// 标签
+        /// </summary>
+        public string? Tag { get; set; }
+
+        /// <summary>
+        /// 可跳转节点
+        /// </summary>
+        public List<StepDefineSimple> NextSteps { get; set; }
+    }
+}

+ 1 - 1
src/Hotline/FlowEngine/Definitions/StepDefineSimple.cs → src/Hotline.Share/Dtos/FlowEngine/Definition/StepDefineSimple.cs

@@ -1,4 +1,4 @@
-namespace Hotline.FlowEngine.Definitions;
+namespace Hotline.Share.Dtos.FlowEngine.Definition;
 
 public class StepDefineSimple
 {

+ 15 - 14
src/Hotline.Share/Dtos/FlowEngine/DefinitionDto.cs

@@ -1,4 +1,5 @@
-using Hotline.Share.Enums.FlowEngine;
+using Hotline.Share.Dtos.FlowEngine.Definition;
+using Hotline.Share.Enums.FlowEngine;
 using XF.Utility.EnumExtensions;
 
 namespace Hotline.Share.Dtos.FlowEngine
@@ -35,23 +36,23 @@ namespace Hotline.Share.Dtos.FlowEngine
 
         public string? Description { get; set; }
 
-        public List<StepDefineDto> Steps { get; set; }
+        public List<StepDefineBasic> Steps { get; set; }
         
         public string ExternalData { get; set; }
     }
 
-    public class StepDefineDto : StepBasicDto
-    {
-        public List<NextStepDefineDto> NextSteps { get; set; }
-    }
+    //public class StepDefineDto : StepBasicDto
+    //{
+    //    public List<NextStepDefineDto> NextSteps { get; set; }
+    //}
 
-    public class NextStepDefineDto
-    {
-        public string Code { get; set; }
+    //public class NextStepDefineDto
+    //{
+    //    public string Code { get; set; }
 
-        /// <summary>
-        /// 是否为返回的节点
-        /// </summary>
-        public bool IsPrevious { get; set; }
-    }
+    //    /// <summary>
+    //    /// 是否为返回的节点
+    //    /// </summary>
+    //    public bool IsPrevious { get; set; }
+    //}
 }

+ 18 - 0
src/Hotline.Share/Enums/FlowEngine/EExecuteMode.cs

@@ -0,0 +1,18 @@
+using System.ComponentModel;
+
+namespace Hotline.Share.Enums.FlowEngine;
+
+/// <summary>
+/// 执行模式
+/// </summary>
+public enum EExecuteMode
+{
+    [Description("人工审批")]
+    Manual = 0,
+
+    [Description("自动通过")]
+    AutoPass = 1,
+
+    [Description("自动拒绝")]
+    AutoReject = 2,
+}

+ 15 - 0
src/Hotline.Share/Enums/FlowEngine/EInstanceMode.cs

@@ -0,0 +1,15 @@
+using System.ComponentModel;
+
+namespace Hotline.Share.Enums.FlowEngine;
+
+/// <summary>
+/// 实例化模式(依据模板实例化step的模式)
+/// </summary>
+public enum EInstanceMode
+{
+    [Description("单次")]
+    Single = 0,
+
+    [Description("循环")]
+    Loop = 1
+}

+ 27 - 0
src/Hotline.Share/Enums/FlowEngine/ELoopPolicy.cs

@@ -0,0 +1,27 @@
+using System.ComponentModel;
+
+namespace Hotline.Share.Enums.FlowEngine;
+
+/// <summary>
+/// 实例化循环策略
+/// </summary>
+public enum ELoopPolicy
+{
+    /// <summary>
+    /// 直属上级(中心看作一级部门上级)
+    /// </summary>
+    [Description("直属上级(中心看作一级部门上级)")]
+    OrgLevelUpToCenter,
+
+    /// <summary>
+    /// 直属上级
+    /// </summary>
+    [Description("直属上级")]
+    OrgLevelUp,
+
+    /// <summary>
+    /// 直属下级
+    /// </summary>
+    [Description("直属下级")]
+    OrgLevelDown,
+}

+ 70 - 121
src/Hotline/FlowEngine/Definitions/StepDefine.cs

@@ -1,5 +1,5 @@
-using System.ComponentModel;
-using Hotline.Share.Dtos.FlowEngine;
+using Hotline.Share.Dtos.FlowEngine;
+using Hotline.Share.Dtos.FlowEngine.Definition;
 using Hotline.Share.Enums.FlowEngine;
 using XF.Domain.Entities;
 
@@ -8,75 +8,75 @@ namespace Hotline.FlowEngine.Definitions;
 /// <summary>
 /// 模板定义节点
 /// </summary>
-public class StepDefine
+public class StepDefine : StepDefineBasic
 {
-    public string Name { get; set; }
-
-    /// <summary>
-    /// 模板内唯一
-    /// </summary>
-    public string Code { get; set; }
-
-    /// <summary>
-    /// 办理/汇总、开始/结束
-    /// </summary>
-    public EStepType StepType { get; init; }
-
-    /// <summary>
-    /// 业务属性
-    /// </summary>
-    public EBusinessProperty BusinessProperty { get; set; }
-
-    /// <summary>
-    /// 办理者类型
-    /// </summary>
-    public EHandlerType HandlerType { get; set; }
-
-    /// <summary>
-    /// 办理者类型下的配置(或是直接保存办理者)
-    /// <example>
-    /// 根据类型可能为:roles, orgLevels, orgTypes, orgCodes, userIds
-    /// </example>
-    /// </summary>
-    public List<KeyValuePair<string, string>> HandlerTypeItems { get; set; } = new();
-
-    /// <summary>
-    /// 是否支持发起会签
-    /// </summary>
-    public bool CanStartCountersign { get; set; }
-
-    /// <summary>
-    /// 执行模式(自动与否)
-    /// </summary>
-    public EExecuteMode ExecuteMode { get; set; }
-
-    /// <summary>
-    /// 实例化模式
-    /// </summary>
-    public EInstanceMode InstanceMode { get; set; }
-
-    /// <summary>
-    /// 循环策略
-    /// </summary>
-    public ELoopPolicy? LoopPolicy { get; set; }
-
-    /// <summary>
-    /// 终止loop目标
-    /// <remarks>
-    /// 按直属部门循环既保存orgId
-    /// </remarks>
-    /// </summary>
-    public string? TerminalLoopDestination{ get; set; }
-
-    /// <summary>
-    /// 标签
-    /// </summary>
-    public string? Tag { get; set; }
-
-    /// <summary>
-    /// 可跳转节点
-    /// </summary>
-    public List<StepDefineSimple> NextSteps { get; set; }
+    //public string Name { get; set; }
+
+    ///// <summary>
+    ///// 模板内唯一
+    ///// </summary>
+    //public string Code { get; set; }
+
+    ///// <summary>
+    ///// 办理/汇总、开始/结束
+    ///// </summary>
+    //public EStepType StepType { get; init; }
+
+    ///// <summary>
+    ///// 业务属性
+    ///// </summary>
+    //public EBusinessProperty BusinessProperty { get; set; }
+
+    ///// <summary>
+    ///// 办理者类型
+    ///// </summary>
+    //public EHandlerType HandlerType { get; set; }
+
+    ///// <summary>
+    ///// 办理者类型下的配置(或是直接保存办理者)
+    ///// <example>
+    ///// 根据类型可能为:roles, orgLevels, orgTypes, orgCodes, userIds
+    ///// </example>
+    ///// </summary>
+    //public List<KeyValuePair<string, string>> HandlerTypeItems { get; set; } = new();
+
+    ///// <summary>
+    ///// 是否支持发起会签
+    ///// </summary>
+    //public bool CanStartCountersign { get; set; }
+
+    ///// <summary>
+    ///// 执行模式(自动与否)
+    ///// </summary>
+    //public EExecuteMode ExecuteMode { get; set; }
+
+    ///// <summary>
+    ///// 实例化模式
+    ///// </summary>
+    //public EInstanceMode InstanceMode { get; set; }
+
+    ///// <summary>
+    ///// 循环策略(loop才有)
+    ///// </summary>
+    //public ELoopPolicy? LoopPolicy { get; set; }
+
+    ///// <summary>
+    ///// 到此标记loop终止(loop才有)
+    ///// <remarks>
+    ///// 按直属部门循环既保存orgId
+    ///// </remarks>
+    ///// </summary>
+    //public string? TerminalLoopTag { get; set; }
+
+    ///// <summary>
+    ///// 标签
+    ///// </summary>
+    //public string? Tag { get; set; }
+
+    ///// <summary>
+    ///// 可跳转节点
+    ///// </summary>
+    //public List<StepDefineSimple> NextSteps { get; set; }
 
     #region method
 
@@ -85,55 +85,4 @@ public class StepDefine
     public bool IsOrg() => BusinessProperty is EBusinessProperty.Department;
 
     #endregion
-}
-
-/// <summary>
-/// 执行模式
-/// </summary>
-public enum EExecuteMode
-{
-    [Description("人工审批")]
-    Manual = 0,
-
-    [Description("自动通过")]
-    AutoPass = 1,
-
-    [Description("自动拒绝")]
-    AutoReject = 2,
-}
-
-/// <summary>
-/// 实例化循环策略
-/// </summary>
-public enum ELoopPolicy
-{
-    /// <summary>
-    /// 直属上级(中心看作一级部门上级)
-    /// </summary>
-    [Description("直属上级(中心看作一级部门上级)")]
-    OrgLevelUpToCenter,
-
-    /// <summary>
-    /// 直属上级
-    /// </summary>
-    [Description("直属上级")]
-    OrgLevelUp,
-
-    /// <summary>
-    /// 直属下级
-    /// </summary>
-    [Description("直属下级")]
-    OrgLevelDown,
-}
-
-/// <summary>
-/// 实例化模式(依据模板实例化step的模式)
-/// </summary>
-public enum EInstanceMode
-{
-    [Description("单次")]
-    Single = 0,
-
-    [Description("循环")]
-    Loop = 1
 }

+ 1 - 0
src/Hotline/FlowEngine/Definitions/WorkflowDefinition.cs

@@ -33,6 +33,7 @@ public class WorkflowDefinition : CreationEntity
     public string? ExternalData { get; set; }
 
     public EDefinitionStatus Status { get; set; }
+    
 
     #region Method
 

+ 1 - 0
src/Hotline/FlowEngine/Workflows/Step.cs

@@ -1,4 +1,5 @@
 using Hotline.FlowEngine.Definitions;
+using Hotline.Share.Dtos.FlowEngine.Definition;
 
 namespace Hotline.FlowEngine.Workflows;