Parcourir la source

Merge branch 'master' of http://git.fwt.com/Hotline/hotline

xf il y a 2 ans
Parent
commit
8448bdee47

+ 9 - 0
src/Hotline.Application/Handlers/FlowEngine/NextStepHandler.cs

@@ -1,6 +1,7 @@
 using Hotline.Application.FlowEngine;
 using Hotline.FlowEngine.Notifications;
 using Hotline.FlowEngine.Workflows;
+using Hotline.KnowledgeBase;
 using Hotline.Orders;
 using Hotline.Settings;
 using Hotline.Share.Dtos.FlowEngine;
@@ -17,12 +18,15 @@ public class NextStepHandler : INotificationHandler<NextStepNotify>
 {
     private readonly IOrderDomainService _orderDomainService;
     private readonly ILogger<NextStepHandler> _logger;
+    private readonly IKnowledgeDomainService _knowledgeDomainService;
 
     public NextStepHandler(
         IOrderDomainService orderDomainService,
+        IKnowledgeDomainService knowledgeDomainService,
         ILogger<NextStepHandler> logger)
     {
         _orderDomainService = orderDomainService;
+        _knowledgeDomainService = knowledgeDomainService;
         _logger = logger;
     }
 
@@ -45,6 +49,11 @@ public class NextStepHandler : INotificationHandler<NextStepNotify>
                     workflow.ExternalId, workflow.CurrentStepTime, workflow.CurrentStepName, workflow.ExpiredTime,
                     cancellationToken);
                 break;
+            case WorkflowModuleConsts.KnowledgeAdd:
+            case WorkflowModuleConsts.KnowledgeUpdate:
+            case WorkflowModuleConsts.KnowledgeDelete:
+                await _knowledgeDomainService.UpdateWorkAssign(notification.FlowAssignMode, workflow.ExternalId, cancellationToken);
+                break;
         }
     }
 }

+ 9 - 0
src/Hotline/KnowledgeBase/IKnowledgeDomainService.cs

@@ -50,6 +50,15 @@ namespace Hotline.KnowledgeBase
         /// </summary>
         Task UpdateWorkFlowId(FlowAssignMode assignMode, string? knowledgeFlowId, string workFlowId, CancellationToken cancellationToken);
 
+        /// <summary>
+        /// 修改指派人
+        /// </summary>
+        /// <param name="assignMode"></param>
+        /// <param name="knowledgeFlowId"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        Task UpdateWorkAssign(FlowAssignMode assignMode, string? knowledgeFlowId, CancellationToken cancellationToken);
+
         /// <summary>
         /// 撤销
         /// </summary>

+ 2 - 0
src/Hotline/KnowledgeBase/Knowledge.cs

@@ -3,6 +3,7 @@ using Hotline.Settings.Hotspots;
 using Hotline.Share.Enums.KnowledgeBase;
 using Hotline.Users;
 using SqlSugar;
+using System.ComponentModel;
 using XF.Domain.Repository;
 
 namespace Hotline.KnowledgeBase;
@@ -10,6 +11,7 @@ namespace Hotline.KnowledgeBase;
 /// <summary>
 /// 知识库文档内容
 /// </summary>
+[Description("知识库文档")]
 public class Knowledge : WorkflowEntity//   WorkflowEntity  FullStateEntity
 {
     /// <summary>

+ 2 - 0
src/Hotline/KnowledgeBase/KnowledgeApply.cs

@@ -2,6 +2,7 @@
 using Hotline.Share.Enums.KnowledgeBase;
 using Hotline.Users;
 using SqlSugar;
+using System.ComponentModel;
 using XF.Domain.Repository;
 
 namespace Hotline.KnowledgeBase;
@@ -9,6 +10,7 @@ namespace Hotline.KnowledgeBase;
 /// <summary>
 /// 申请
 /// </summary>
+[Description("知识申请")]
 public class KnowledgeApply : FullStateEntity
 {
     /// <summary>

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

@@ -94,7 +94,7 @@ namespace Hotline.KnowledgeBase
         /// 修改流程ID
         /// </summary>
         /// <param name="assignMode"></param>
-        /// <param name="knowledgeId"></param>
+        /// <param name="knowledgeFlowId"></param>
         /// <param name="workFlowId"></param>
         /// <param name="cancellationToken"></param>
         /// <returns></returns>
@@ -122,6 +122,33 @@ namespace Hotline.KnowledgeBase
             }
         }
 
+        /// <summary>
+        /// 修改指派人
+        /// </summary>
+        /// <param name="assignMode"></param>
+        /// <param name="knowledgeFlowId"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        public async Task UpdateWorkAssign(FlowAssignMode assignMode, string? knowledgeFlowId, CancellationToken cancellationToken)
+        {
+            //知识流程表
+            var knowledgeFlow =
+                await _knowledgeWorkFlowRepository.GetAsync(knowledgeFlowId, cancellationToken);
+            if (knowledgeFlow == null)
+                throw new UserFriendlyException($"无效知识编号, knowledgeFlowId: {knowledgeFlowId}", "指派失败");
+
+            knowledgeFlow.Assign(assignMode.FlowAssignType, assignMode.GetHandlers());
+            await _knowledgeWorkFlowRepository.UpdateAsync(knowledgeFlow, cancellationToken);
+
+            //知识主表
+            var knowledge = await _knowledgeRepository.GetAsync(p => p.WorkflowId == knowledgeFlow.WorkflowId, cancellationToken);
+            if (knowledge != null)
+            {
+                knowledge.Assign(assignMode.FlowAssignType, assignMode.GetHandlers());
+                await _knowledgeRepository.UpdateAsync(knowledge, cancellationToken);
+            }
+        }
+
         /// <summary>
         /// 知识库-新增
         /// </summary>

+ 2 - 0
src/Hotline/KnowledgeBase/KnowledgeType.cs

@@ -1,4 +1,5 @@
 using SqlSugar;
+using System.ComponentModel;
 using XF.Domain.Repository;
 
 namespace Hotline.KnowledgeBase;
@@ -6,6 +7,7 @@ namespace Hotline.KnowledgeBase;
 /// <summary>
 /// 知识分类
 /// </summary>
+[Description("知识分类")]
 public class KnowledgeType : FullStateEntity
 {
     /// <summary>

+ 5 - 0
src/Hotline/KnowledgeBase/KnowledgeWorkFlow.cs

@@ -3,10 +3,15 @@ using Hotline.Settings;
 using Hotline.Share.Enums.KnowledgeBase;
 using Hotline.Users;
 using SqlSugar;
+using System.ComponentModel;
 using XF.Domain.Repository;
 
 namespace Hotline.KnowledgeBase
 {
+    /// <summary>
+    /// 知识审核
+    /// </summary>
+    [Description("知识审核")]
     public class KnowledgeWorkFlow : WorkflowEntity
     {
         /// <summary>