xf 1 rok temu
rodzic
commit
00101f810a
35 zmienionych plików z 89 dodań i 127 usunięć
  1. 1 1
      src/Hotline.Api/Controllers/KnowledgeController.cs
  2. 1 1
      src/Hotline.Api/Controllers/OrderController.cs
  3. 1 1
      src/Hotline.Api/Controllers/PbxController.cs
  4. 1 1
      src/Hotline.Api/Controllers/WorkflowController.cs
  5. 1 1
      src/Hotline.Application/FlowEngine/WorkflowApplication.cs
  6. 1 1
      src/Hotline.Application/Handlers/FlowEngine/AcceptWorkflowHandler.cs
  7. 1 1
      src/Hotline.Application/Handlers/FlowEngine/CancelHandler.cs
  8. 1 1
      src/Hotline.Application/Handlers/FlowEngine/EndWorkflowHandler.cs
  9. 1 1
      src/Hotline.Application/Handlers/FlowEngine/JumpHandler.cs
  10. 1 1
      src/Hotline.Application/Handlers/FlowEngine/NextStepHandler.cs
  11. 1 1
      src/Hotline.Application/Handlers/FlowEngine/OrderFinalManageHandler.cs
  12. 1 1
      src/Hotline.Application/Handlers/FlowEngine/OrderRecallFinalManageHandler.cs
  13. 1 1
      src/Hotline.Application/Handlers/FlowEngine/PreviousStepHandler.cs
  14. 1 1
      src/Hotline.Application/Handlers/FlowEngine/RecallStepHandler.cs
  15. 0 1
      src/Hotline.Application/Handlers/FlowEngine/RedoHandler.cs
  16. 1 1
      src/Hotline.Application/Handlers/FlowEngine/RejectHandler.cs
  17. 1 1
      src/Hotline.Application/Handlers/FlowEngine/StartWorkflowHandler.cs
  18. 1 1
      src/Hotline.Application/Handlers/FlowEngine/TerminalWorkflowHandler.cs
  19. 0 1
      src/Hotline.Application/Mappers/MapperConfigs.cs
  20. 10 0
      src/Hotline.Share/Dtos/FlowEngine/Definition/StepDefineBasic.cs
  21. 33 0
      src/Hotline.Share/Enums/FlowEngine/ECountersignPolicy.cs
  22. 15 9
      src/Hotline.Share/Enums/FlowEngine/ELoopPolicy.cs
  23. 1 1
      src/Hotline/Caching/Interfaces/IWfModuleCacheManager.cs
  24. 1 1
      src/Hotline/Caching/Services/WfModuleCacheManager.cs
  25. 0 68
      src/Hotline/FlowEngine/Definitions/StepDefine.cs
  26. 0 1
      src/Hotline/FlowEngine/Definitions/WorkflowDefinition.cs
  27. 1 0
      src/Hotline/FlowEngine/README.md
  28. 2 3
      src/Hotline/FlowEngine/WorkflowModules/IWfModuleDomainService.cs
  29. 2 9
      src/Hotline/FlowEngine/WorkflowModules/WfModuleDomainService.cs
  30. 2 8
      src/Hotline/FlowEngine/WorkflowModules/WorkflowModule.cs
  31. 1 4
      src/Hotline/FlowEngine/WorkflowModules/WorkflowModuleConsts.cs
  32. 1 1
      src/Hotline/FlowEngine/Workflows/IWorkflowDomainService.cs
  33. 1 1
      src/Hotline/FlowEngine/Workflows/WorkflowDomainService.cs
  34. 1 1
      src/Hotline/KnowledgeBase/KnowledgeDomainService.cs
  35. 1 1
      src/Hotline/SeedData/Codes/ICode.cs

+ 1 - 1
src/Hotline.Api/Controllers/KnowledgeController.cs

@@ -1,6 +1,6 @@
 using Hotline.Application.FlowEngine;
 using Hotline.Application.Knowledge;
-using Hotline.FlowEngine.WfModules;
+using Hotline.FlowEngine.WorkflowModules;
 using Hotline.KnowledgeBase;
 using Hotline.KnowledgeBase.Notifies;
 using Hotline.Permissions;

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

@@ -4,7 +4,6 @@ using Hotline.Application.TimeLimits;
 using Hotline.Caching.Interfaces;
 using Hotline.File;
 using Hotline.FlowEngine.Definitions;
-using Hotline.FlowEngine.WfModules;
 using Hotline.FlowEngine.Workflows;
 using Hotline.Orders;
 using Hotline.Orders.Notifications;
@@ -27,6 +26,7 @@ using Microsoft.IdentityModel.Tokens;
 using MongoDB.Driver;
 using SqlSugar;
 using System.Threading;
+using Hotline.FlowEngine.WorkflowModules;
 using XF.Domain.Authentications;
 using XF.Domain.Constants;
 using XF.Domain.Exceptions;

+ 1 - 1
src/Hotline.Api/Controllers/PbxController.cs

@@ -4,7 +4,6 @@ using Hotline.CallCenter.Calls;
 using Hotline.CallCenter.Devices;
 using Hotline.CallCenter.Ivrs;
 using Hotline.CallCenter.Tels;
-using Hotline.FlowEngine.WfModules;
 using Hotline.Permissions;
 using Hotline.Settings;
 using Hotline.Share.Dtos.CallCenter;
@@ -24,6 +23,7 @@ using XF.Domain.Constants;
 using XF.Domain.Exceptions;
 using XF.Utility.EnumExtensions;
 using System.Linq;
+using Hotline.FlowEngine.WorkflowModules;
 using Hotline.Share.Dtos;
 using Microsoft.AspNetCore.Authorization;
 using XF.Domain.Repository;

+ 1 - 1
src/Hotline.Api/Controllers/WorkflowController.cs

@@ -12,7 +12,7 @@ using Hotline.Users;
 using MapsterMapper;
 using Microsoft.AspNetCore.Mvc;
 using SqlSugar;
-using Hotline.FlowEngine.WfModules;
+using Hotline.FlowEngine.WorkflowModules;
 using Microsoft.AspNetCore.Authorization;
 using XF.Domain.Authentications;
 using XF.Domain.Exceptions;

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

@@ -3,7 +3,7 @@ using Hotline.Caching.Interfaces;
 using Hotline.Caching.Services;
 using Hotline.FlowEngine;
 using Hotline.FlowEngine.Definitions;
-using Hotline.FlowEngine.WfModules;
+using Hotline.FlowEngine.WorkflowModules;
 using Hotline.FlowEngine.Workflows;
 using Hotline.Identity.Accounts;
 using Hotline.Identity.Roles;

+ 1 - 1
src/Hotline.Application/Handlers/FlowEngine/AcceptWorkflowHandler.cs

@@ -4,7 +4,7 @@ using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using Hotline.FlowEngine.Notifications;
-using Hotline.FlowEngine.WfModules;
+using Hotline.FlowEngine.WorkflowModules;
 using Hotline.Orders;
 using MediatR;
 

+ 1 - 1
src/Hotline.Application/Handlers/FlowEngine/CancelHandler.cs

@@ -1,5 +1,5 @@
 using Hotline.FlowEngine.Notifications;
-using Hotline.FlowEngine.WfModules;
+using Hotline.FlowEngine.WorkflowModules;
 using Hotline.Orders;
 using MapsterMapper;
 using MediatR;

+ 1 - 1
src/Hotline.Application/Handlers/FlowEngine/EndWorkflowHandler.cs

@@ -1,7 +1,7 @@
 using DotNetCore.CAP;
 using Hotline.CallCenter.Tels;
 using Hotline.FlowEngine.Notifications;
-using Hotline.FlowEngine.WfModules;
+using Hotline.FlowEngine.WorkflowModules;
 using Hotline.FlowEngine.Workflows;
 using Hotline.KnowledgeBase;
 using Hotline.Orders;

+ 1 - 1
src/Hotline.Application/Handlers/FlowEngine/JumpHandler.cs

@@ -1,6 +1,6 @@
 using DotNetCore.CAP;
 using Hotline.FlowEngine.Notifications;
-using Hotline.FlowEngine.WfModules;
+using Hotline.FlowEngine.WorkflowModules;
 using Hotline.Orders;
 using Hotline.Share.Dtos.Order;
 using Hotline.Share.Mq;

+ 1 - 1
src/Hotline.Application/Handlers/FlowEngine/NextStepHandler.cs

@@ -1,7 +1,7 @@
 using DotNetCore.CAP;
 using Hotline.Application.FlowEngine;
 using Hotline.FlowEngine.Notifications;
-using Hotline.FlowEngine.WfModules;
+using Hotline.FlowEngine.WorkflowModules;
 using Hotline.FlowEngine.Workflows;
 using Hotline.KnowledgeBase;
 using Hotline.Orders;

+ 1 - 1
src/Hotline.Application/Handlers/FlowEngine/OrderFinalManageHandler.cs

@@ -4,7 +4,7 @@ using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using Hotline.FlowEngine.Notifications;
-using Hotline.FlowEngine.WfModules;
+using Hotline.FlowEngine.WorkflowModules;
 using Hotline.Orders;
 using MediatR;
 

+ 1 - 1
src/Hotline.Application/Handlers/FlowEngine/OrderRecallFinalManageHandler.cs

@@ -1,5 +1,5 @@
 using Hotline.FlowEngine.Notifications;
-using Hotline.FlowEngine.WfModules;
+using Hotline.FlowEngine.WorkflowModules;
 using Hotline.Orders;
 using MediatR;
 

+ 1 - 1
src/Hotline.Application/Handlers/FlowEngine/PreviousStepHandler.cs

@@ -6,7 +6,7 @@ using System.Threading.Tasks;
 using DotNetCore.CAP;
 using Hotline.CallCenter.Tels;
 using Hotline.FlowEngine.Notifications;
-using Hotline.FlowEngine.WfModules;
+using Hotline.FlowEngine.WorkflowModules;
 using Hotline.KnowledgeBase;
 using Hotline.Orders;
 using Hotline.Share.Dtos.Order;

+ 1 - 1
src/Hotline.Application/Handlers/FlowEngine/RecallStepHandler.cs

@@ -1,6 +1,6 @@
 using DotNetCore.CAP;
 using Hotline.FlowEngine.Notifications;
-using Hotline.FlowEngine.WfModules;
+using Hotline.FlowEngine.WorkflowModules;
 using Hotline.Orders;
 using Hotline.Repository.SqlSugar.Orders;
 using Hotline.Share.Dtos.Order;

+ 0 - 1
src/Hotline.Application/Handlers/FlowEngine/RedoHandler.cs

@@ -1,6 +1,5 @@
 using DotNetCore.CAP;
 using Hotline.FlowEngine.Notifications;
-using Hotline.FlowEngine.WfModules;
 using Hotline.Share.Dtos.Order;
 using Hotline.Share.Mq;
 using MediatR;

+ 1 - 1
src/Hotline.Application/Handlers/FlowEngine/RejectHandler.cs

@@ -1,6 +1,6 @@
 using DotNetCore.CAP;
 using Hotline.FlowEngine.Notifications;
-using Hotline.FlowEngine.WfModules;
+using Hotline.FlowEngine.WorkflowModules;
 using Hotline.Orders;
 using Hotline.Share.Dtos.Order;
 using Hotline.Share.Mq;

+ 1 - 1
src/Hotline.Application/Handlers/FlowEngine/StartWorkflowHandler.cs

@@ -4,7 +4,7 @@ using System.Text.Unicode;
 using DotNetCore.CAP;
 using Hotline.CallCenter.Tels;
 using Hotline.FlowEngine.Notifications;
-using Hotline.FlowEngine.WfModules;
+using Hotline.FlowEngine.WorkflowModules;
 using Hotline.KnowledgeBase;
 using Hotline.Orders;
 using Hotline.Share.Dtos.Order;

+ 1 - 1
src/Hotline.Application/Handlers/FlowEngine/TerminalWorkflowHandler.cs

@@ -1,6 +1,6 @@
 using Hotline.CallCenter.Tels;
 using Hotline.FlowEngine.Notifications;
-using Hotline.FlowEngine.WfModules;
+using Hotline.FlowEngine.WorkflowModules;
 using Hotline.KnowledgeBase;
 using Hotline.Orders;
 using MediatR;

+ 0 - 1
src/Hotline.Application/Mappers/MapperConfigs.cs

@@ -1,5 +1,4 @@
 using Hotline.CallCenter.BlackLists;
-using Hotline.FlowEngine.WfModules;
 using Hotline.Push.FWMessage;
 using Hotline.Settings;
 using Hotline.Share.Dtos.CallCenter;

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

@@ -47,6 +47,16 @@ namespace Hotline.Share.Dtos.FlowEngine.Definition
         /// </summary>
         public bool CanStartCountersign { get; set; }
 
+        /// <summary>
+        /// 会签策略
+        /// </summary>
+        public ECountersignPolicy? CountersignPolicy { get; set; }
+
+        /// <summary>
+        /// 是否有否决按钮
+        /// </summary>
+        public bool CanReject { get; set; }
+
         /// <summary>
         /// 执行模式(自动与否)
         /// </summary>

+ 33 - 0
src/Hotline.Share/Enums/FlowEngine/ECountersignPolicy.cs

@@ -0,0 +1,33 @@
+using System.ComponentModel;
+
+namespace Hotline.Share.Enums.FlowEngine;
+
+/// <summary>
+/// 会签策略
+/// </summary>
+public enum ECountersignPolicy
+{
+    /// <summary>
+    /// 直属上级部门(中心作为顶级部门)
+    /// </summary>
+    [Description("直属上级(中心作为顶级部门)")]
+    OrgUpCenterTop = 0,
+
+    /// <summary>
+    /// 直属上级(中心作为一级部门)
+    /// </summary>
+    [Description("直属上级(中心作为一级部门)")]
+    OrgUp = 1,
+
+    /// <summary>
+    /// 直属下级部门(中心作为顶级部门)
+    /// </summary>
+    [Description("直属下级(中心作为顶级部门)")]
+    OrgDownCenterTop = 2,
+
+    /// <summary>
+    /// 直属下级(中心作为一级部门)
+    /// </summary>
+    [Description("直属下级(中心作为一级部门)")]
+    OrgDown = 3,
+}

+ 15 - 9
src/Hotline.Share/Enums/FlowEngine/ELoopPolicy.cs

@@ -8,20 +8,26 @@ namespace Hotline.Share.Enums.FlowEngine;
 public enum ELoopPolicy
 {
     /// <summary>
-    /// 直属上级(中心看作一级部门上级
+    /// 直属上级部门(中心作为顶级部门
     /// </summary>
-    [Description("直属上级(中心看作一级部门上级)")]
-    OrgLevelUpToCenter,
+    [Description("直属上级(中心作为顶级部门)")]
+    OrgUpCenterTop = 0,
 
     /// <summary>
-    /// 直属上级
+    /// 直属上级(中心作为一级部门)
     /// </summary>
-    [Description("直属上级")]
-    OrgLevelUp,
+    [Description("直属上级(中心作为一级部门)")]
+    OrgUp = 1,
 
     /// <summary>
-    /// 直属下级
+    /// 直属下级部门(中心作为顶级部门)
     /// </summary>
-    [Description("直属下级")]
-    OrgLevelDown,
+    [Description("直属下级(中心作为顶级部门)")]
+    OrgDownCenterTop = 2,
+
+    /// <summary>
+    /// 直属下级(中心作为一级部门)
+    /// </summary>
+    [Description("直属下级(中心作为一级部门)")]
+    OrgDown = 3,
 }

+ 1 - 1
src/Hotline/Caching/Interfaces/IWfModuleCacheManager.cs

@@ -3,7 +3,7 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
-using Hotline.FlowEngine.WfModules;
+using Hotline.FlowEngine.WorkflowModules;
 
 namespace Hotline.Caching.Interfaces
 {

+ 1 - 1
src/Hotline/Caching/Services/WfModuleCacheManager.cs

@@ -4,7 +4,7 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
-using Hotline.FlowEngine.WfModules;
+using Hotline.FlowEngine.WorkflowModules;
 using XF.Domain.Cache;
 using XF.Domain.Dependency;
 using XF.Domain.Exceptions;

+ 0 - 68
src/Hotline/FlowEngine/Definitions/StepDefine.cs

@@ -10,74 +10,6 @@ namespace Hotline.FlowEngine.Definitions;
 /// </summary>
 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>
-    ///// 循环策略(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
 
     public bool IsCenter() => BusinessProperty is EBusinessProperty.Center or EBusinessProperty.Send;

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

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

+ 1 - 0
src/Hotline/FlowEngine/README.md

@@ -4,6 +4,7 @@
 * 同一模板可以配置给多个业务模块使用
 * 发布操作为当前草稿生成新版本号,并将前一个版本变为过期(如前版本为禁用状态则不变)
 * 节点配置是否可以发起会签,但下一节点选中汇总节点时,不允许发起会签
+* 同一模板内的会签策略保持一致
 
 #### 工作流业务模块
 * 按 WorkflowModuleConsts 约定模块编码持久化数据

+ 2 - 3
src/Hotline/FlowEngine/WfModules/IWfModuleDomainService.cs → src/Hotline/FlowEngine/WorkflowModules/IWfModuleDomainService.cs

@@ -1,7 +1,6 @@
-using Hotline.FlowEngine.Definitions;
-using Hotline.Share.Dtos.FlowEngine;
+using Hotline.Share.Dtos.FlowEngine;
 
-namespace Hotline.FlowEngine.WfModules;
+namespace Hotline.FlowEngine.WorkflowModules;
 
 public interface IWfModuleDomainService
 {

+ 2 - 9
src/Hotline/FlowEngine/WfModules/WfModuleDomainService.cs → src/Hotline/FlowEngine/WorkflowModules/WfModuleDomainService.cs

@@ -1,17 +1,10 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Hotline.Caching.Interfaces;
-using Hotline.FlowEngine.Definitions;
+using Hotline.Caching.Interfaces;
 using Hotline.Share.Dtos.FlowEngine;
-using MapsterMapper;
 using XF.Domain.Dependency;
 using XF.Domain.Exceptions;
 using XF.Domain.Repository;
 
-namespace Hotline.FlowEngine.WfModules
+namespace Hotline.FlowEngine.WorkflowModules
 {
     public class WfModuleDomainService : IWfModuleDomainService, IScopeDependency
     {

+ 2 - 8
src/Hotline/FlowEngine/WfModules/WorkflowModule.cs → src/Hotline/FlowEngine/WorkflowModules/WorkflowModule.cs

@@ -1,14 +1,8 @@
-using System;
-using System.Collections.Concurrent;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Hotline.FlowEngine.Definitions;
+using Hotline.FlowEngine.Definitions;
 using SqlSugar;
 using XF.Domain.Repository;
 
-namespace Hotline.FlowEngine.WfModules;
+namespace Hotline.FlowEngine.WorkflowModules;
 
 /// <summary>
 /// 工作流业务模块

+ 1 - 4
src/Hotline/FlowEngine/WfModules/WorkflowModuleConsts.cs → src/Hotline/FlowEngine/WorkflowModules/WorkflowModuleConsts.cs

@@ -1,7 +1,4 @@
-using Hotline.SeedData.Codes;
-using Hotline.Share.Dtos;
-
-namespace Hotline.FlowEngine.WfModules;
+namespace Hotline.FlowEngine.WorkflowModules;
 
 public class WorkflowModuleConsts
 {

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

@@ -1,5 +1,5 @@
 using Hotline.FlowEngine.Definitions;
-using Hotline.FlowEngine.WfModules;
+using Hotline.FlowEngine.WorkflowModules;
 using Hotline.Share.Dtos;
 using Hotline.Share.Dtos.FlowEngine;
 using Hotline.Share.Enums.FlowEngine;

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

@@ -1,6 +1,6 @@
 using Hotline.FlowEngine.Definitions;
 using Hotline.FlowEngine.Notifications;
-using Hotline.FlowEngine.WfModules;
+using Hotline.FlowEngine.WorkflowModules;
 using Hotline.Settings;
 using Hotline.Share.Dtos;
 using Hotline.Share.Dtos.FlowEngine;

+ 1 - 1
src/Hotline/KnowledgeBase/KnowledgeDomainService.cs

@@ -1,6 +1,6 @@
 using DotNetCore.CAP;
 using Hotline.FlowEngine;
-using Hotline.FlowEngine.WfModules;
+using Hotline.FlowEngine.WorkflowModules;
 using Hotline.FlowEngine.Workflows;
 using Hotline.Share.Dtos.Knowledge;
 using Hotline.Share.Enums.KnowledgeBase;

+ 1 - 1
src/Hotline/SeedData/Codes/ICode.cs

@@ -1,5 +1,5 @@
 using System.Diagnostics;
-using Hotline.FlowEngine.WfModules;
+using Hotline.FlowEngine.WorkflowModules;
 using Hotline.Share.Dtos;
 
 namespace Hotline.SeedData.Codes