xf 2 yıl önce
ebeveyn
işleme
ac2a484faa

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

@@ -195,17 +195,17 @@ namespace Hotline.Api.Controllers
                 throw UserFriendlyException.SameMessage("知识上架失败");
         }
 
-        /// <summary>
-        /// 撤销
-        /// </summary>
-        /// <param name="workFlowId"></param>
-        /// <returns></returns>
-        [Permission(EPermission.KnowledgeRevoke)]
-        [HttpPut("revoke")]
-        public async Task KnowledgeRevoke(string workFlowId)
-        {
-            await _knowledgeDomainService.KnowledgeRevoke(workFlowId, HttpContext.RequestAborted);
-        }
+        ///// <summary>
+        ///// 撤销
+        ///// </summary>
+        ///// <param name="workFlowId"></param>
+        ///// <returns></returns>
+        //[Permission(EPermission.KnowledgeRevoke)]
+        //[HttpPut("revoke")]
+        //public async Task KnowledgeRevoke(string workFlowId)
+        //{
+        //    await _knowledgeDomainService.KnowledgeRevoke(workFlowId, HttpContext.RequestAborted);
+        //}
 
         /// <summary>
         /// 知识申请-关联知识-获取知识列表

+ 3 - 5
src/Hotline.Api/Controllers/WorkflowController.cs

@@ -342,13 +342,11 @@ public class WorkflowController : BaseController
     /// <summary>
     /// 终止流程
     /// </summary>
-    /// <param name="workflowId"></param>
-    /// <returns></returns>
     [Permission(EPermission.FlowTerminate)]
-    [HttpPost("{workflowId}/terminate")]
-    public async Task Terminate(string workflowId)
+    [HttpPost("terminate")]
+    public async Task Terminate([FromBody] TerminateDto dto)
     {
-        await _workflowDomainService.TerminateAsync(workflowId, HttpContext.RequestAborted);
+        await _workflowDomainService.TerminateAsync(dto, HttpContext.RequestAborted);
     }
 
     /// <summary>

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

@@ -57,7 +57,7 @@ namespace Hotline.FlowEngine.Workflows
         /// <summary>
         /// 终止流程
         /// </summary>
-        Task TerminateAsync(string id, CancellationToken cancellationToken);
+        Task TerminateAsync(TerminateDto dto, CancellationToken cancellationToken);
 
         StepDefine GetStepBoxDefine(Definition definition, string stepCode);
 

+ 2 - 1
src/Hotline/FlowEngine/Workflows/Workflow.cs

@@ -136,10 +136,11 @@ public class Workflow : CreationEntity
         CompleteTime = DateTime.Now;
     }
 
-    public void Terminate()
+    public void Terminate(string opinion)
     {
         Status = EWorkflowStatus.Terminated;
         CompleteTime = DateTime.Now;
+        Opinion = opinion;
     }
 
     /// <summary>

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

@@ -562,12 +562,12 @@ namespace Hotline.FlowEngine.Workflows
         /// <summary>
         /// 终止流程
         /// </summary>
-        public async Task TerminateAsync(string id, CancellationToken cancellationToken)
+        public async Task TerminateAsync(TerminateDto dto, CancellationToken cancellationToken)
         {
-            var workflow = await _workflowRepository.GetAsync(id, cancellationToken);
+            var workflow = await _workflowRepository.GetAsync(dto.WorkflowId, cancellationToken);
             if (workflow == null)
                 throw UserFriendlyException.SameMessage("无效的流程编号");
-            workflow.Terminate();
+            workflow.Terminate(dto.Opinion);
             await _workflowRepository.UpdateAsync(workflow, cancellationToken);
 
             await _mediator.Publish(new TerminalWorkflowNotify(workflow));

+ 7 - 7
src/Hotline/KnowledgeBase/IKnowledgeDomainService.cs

@@ -59,13 +59,13 @@ namespace Hotline.KnowledgeBase
         /// <returns></returns>
         Task UpdateWorkAssign(FlowAssignMode assignMode, string? knowledgeFlowId, CancellationToken cancellationToken);
 
-        /// <summary>
-        /// 撤销
-        /// </summary>
-        /// <param name="workFlowId"></param>
-        /// <param name="cancellationToken"></param>
-        /// <returns></returns>
-        Task KnowledgeRevoke(string workFlowId, CancellationToken cancellationToken);
+        ///// <summary>
+        ///// 撤销
+        ///// </summary>
+        ///// <param name="workFlowId"></param>
+        ///// <param name="cancellationToken"></param>
+        ///// <returns></returns>
+        //Task KnowledgeRevoke(string workFlowId, CancellationToken cancellationToken);
 
         /// <summary>
         /// 获取关键词

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

@@ -195,47 +195,47 @@ namespace Hotline.KnowledgeBase
 
         }
 
-        /// <summary>
-        /// 撤销
-        /// </summary>
-        /// <param name="workFlowId"></param>
-        /// <param name="cancellationToken"></param>
-        /// <returns></returns>
-        public async Task KnowledgeRevoke(string workFlowId, CancellationToken cancellationToken)
-        {
-            var knowWorkFlow = await _knowledgeWorkFlowRepository.GetAsync(p => p.WorkflowId == workFlowId, cancellationToken);
-            if (knowWorkFlow is null)
-                throw UserFriendlyException.SameMessage("无效知识审批");
-            if (knowWorkFlow.WorkFlowApplyStatus != EKnowledgeWorkFlowStatus.Auditing)
-                throw UserFriendlyException.SameMessage("只有审批中的知识才能撤回!");
-
-            //调用终止流程
-            await _workflowDomainService.TerminateAsync(workFlowId, cancellationToken);
-            //业务放到消息通知里面处理
-            ////修改业务数据状态
-            //knowWorkFlow.WorkFlowApplyStatus = EKnowledgeWorkFlowStatus.Revoke;
-            //await _knowledgeWorkFlowRepository.UpdateAsync(knowWorkFlow);
-
-            //switch (knowWorkFlow.WorkflowModuleStatus)
-            //{
-            //    case EKnowledgeApplyType.Add:
-            //        //查询知识
-            //        var knowledge = await _knowledgeRepository.GetAsync(p => p.WorkflowId == workFlowId, cancellationToken);
-            //        if (knowledge != null)
-            //        {
-            //            //将知识保存为草稿
-            //            var dto = _mapper.Map<AddKnowledgeDto>(knowledge);
-            //            dto.Status = EKnowledgeStatus.Drafts;
-            //            var tempKnow = _mapper.Map<Knowledge>(dto);
-            //            await _knowledgeRepository.AddAsync(tempKnow, cancellationToken);
-
-            //            knowledge.Status = EKnowledgeStatus.Revert;
-            //            //删除现有知识
-            //            await _knowledgeRepository.UpdateAsync(knowledge, cancellationToken);
-            //        }
-            //        break;
-            //}
-        }
+        ///// <summary>
+        ///// 撤销
+        ///// </summary>
+        ///// <param name="workFlowId"></param>
+        ///// <param name="cancellationToken"></param>
+        ///// <returns></returns>
+        //public async Task KnowledgeRevoke(string workFlowId, CancellationToken cancellationToken)
+        //{
+        //    var knowWorkFlow = await _knowledgeWorkFlowRepository.GetAsync(p => p.WorkflowId == workFlowId, cancellationToken);
+        //    if (knowWorkFlow is null)
+        //        throw UserFriendlyException.SameMessage("无效知识审批");
+        //    if (knowWorkFlow.WorkFlowApplyStatus != EKnowledgeWorkFlowStatus.Auditing)
+        //        throw UserFriendlyException.SameMessage("只有审批中的知识才能撤回!");
+
+        //    //调用终止流程
+        //    await _workflowDomainService.TerminateAsync(workFlowId, cancellationToken);
+        //    //业务放到消息通知里面处理
+        //    ////修改业务数据状态
+        //    //knowWorkFlow.WorkFlowApplyStatus = EKnowledgeWorkFlowStatus.Revoke;
+        //    //await _knowledgeWorkFlowRepository.UpdateAsync(knowWorkFlow);
+
+        //    //switch (knowWorkFlow.WorkflowModuleStatus)
+        //    //{
+        //    //    case EKnowledgeApplyType.Add:
+        //    //        //查询知识
+        //    //        var knowledge = await _knowledgeRepository.GetAsync(p => p.WorkflowId == workFlowId, cancellationToken);
+        //    //        if (knowledge != null)
+        //    //        {
+        //    //            //将知识保存为草稿
+        //    //            var dto = _mapper.Map<AddKnowledgeDto>(knowledge);
+        //    //            dto.Status = EKnowledgeStatus.Drafts;
+        //    //            var tempKnow = _mapper.Map<Knowledge>(dto);
+        //    //            await _knowledgeRepository.AddAsync(tempKnow, cancellationToken);
+
+        //    //            knowledge.Status = EKnowledgeStatus.Revert;
+        //    //            //删除现有知识
+        //    //            await _knowledgeRepository.UpdateAsync(knowledge, cancellationToken);
+        //    //        }
+        //    //        break;
+        //    //}
+        //}
 
         /// <summary>
         /// 获取关键词