Эх сурвалжийг харах

Merge branch 'dev' of http://git.12345lm.cn/Fengwo/hotline into dev

tangjiang 11 сар өмнө
parent
commit
8d393807e1

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

@@ -395,14 +395,14 @@ public class WorkflowController : BaseController
         await _workflowDomainService.CancelAsync(dto, _sessionContext, HttpContext.RequestAborted);
     }
 
-    ///// <summary>
-    ///// 否决
-    ///// </summary>
-    //[HttpPost("reject")]
-    //public async Task Reject([FromBody] RejectDto dto)
-    //{
-    //    await _workflowApplication.RejectAsync(dto, HttpContext.RequestAborted);
-    //}
+    /// <summary>
+    /// 否决
+    /// </summary>
+    [HttpPost("reject")]
+    public async Task Reject([FromBody] RejectDto dto)
+    {
+        await _workflowApplication.RejectAsync(dto, HttpContext.RequestAborted);
+    }
 
     /// <summary>
     /// 补充

+ 4 - 4
src/Hotline.Application/FlowEngine/IWorkflowApplication.cs

@@ -65,10 +65,10 @@ namespace Hotline.Application.FlowEngine
         /// </summary>
         Task<NextStepsDto<RecallStepOption>> GetRecallStepsAsync(string workflowId, CancellationToken cancellationToken);
 
-        ///// <summary>
-        ///// 否决
-        ///// </summary>
-        //Task RejectAsync(RejectDto dto, CancellationToken cancellationToken);
+        /// <summary>
+        /// 否决
+        /// </summary>
+        Task RejectAsync(RejectDto dto, CancellationToken cancellationToken);
 
         /// <summary>
         /// 获取流程模板信息

+ 23 - 12
src/Hotline.Application/FlowEngine/WorkflowApplication.cs

@@ -580,18 +580,29 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
         return steps;
     }
 
-    ///// <summary>
-    ///// 否决
-    ///// </summary>
-    //public async Task RejectAsync(RejectDto dto, CancellationToken cancellationToken)
-    //{
-    //    var workflow = await _workflowDomainService.GetWorkflowAsync(dto.WorkflowId, withDefine: true, withSteps: true,
-    //        cancellationToken: cancellationToken);
-    //    var basicDto = _mapper.Map<BasicWorkflowDto>(dto);
-    //    basicDto.NextStepCode = string.Empty;
-    //    basicDto.IsStartCountersign = false;
-    //    await _workflowDomainService.RejectAsync(workflow, basicDto, cancellationToken);
-    //}
+    /// <summary>
+    /// 否决
+    /// </summary>
+    public async Task RejectAsync(RejectDto dto, CancellationToken cancellationToken)
+    {
+        var workflow = await _workflowDomainService.GetWorkflowAsync(dto.WorkflowId, withDefine: true,
+            cancellationToken: cancellationToken);
+        //var basicDto = _mapper.Map<BasicWorkflowDto>(dto);
+        //basicDto.NextStepCode = string.Empty;
+        //basicDto.IsStartCountersign = false;
+        //await _workflowDomainService.RejectAsync(workflow, basicDto, cancellationToken);
+
+        var endStepDefine = workflow.WorkflowDefinition.FindEndStepDefine();
+        var nextDto = _mapper.Map<NextWorkflowDto>(dto);
+        nextDto.ReviewResult = EReviewResult.Failed;
+        nextDto.NextStepCode = endStepDefine.Code;
+        nextDto.NextStepName = endStepDefine.Name;
+        nextDto.FlowDirection = _sessionContext.OrgIsCenter 
+            ? EFlowDirection.CenterToFile 
+            : EFlowDirection.OrgToFile;
+
+        await NextAsync(nextDto, _sessionContext, cancellationToken: cancellationToken);
+    }
 
     //供开启流程调用
     private async Task<List<NextStepOption>> GetConfigStepsAsync(

+ 1 - 1
src/Hotline.Application/Subscribers/DatasharingSubscriber.cs

@@ -287,7 +287,7 @@ namespace Hotline.Application.Subscribers
         /// 更新工单受理附件
         /// </summary>
         [CapSubscribe(Hotline.Share.Mq.EventNames.SharingOrderUpdataFiles)]
-        public async Task RecOrderUpdataFilesAsync(OrderUpdataFiles dto, CancellationToken cancellationToken)
+        public async Task RecOrderUpdateFilesAsync(OrderUpdataFiles dto, CancellationToken cancellationToken)
         {
             if (dto == null && dto.Files.Any())
             {

+ 6 - 0
src/Hotline/Orders/Order.cs

@@ -898,6 +898,9 @@ namespace Hotline.Orders
             TimeLimitUnit = timilimitUnit;
             ExpiredTime = expiredTime;
             CenterToOrgTime = DateTime.Now;
+            CenterToOrgOpinion = opinion;
+            CenterToOrgHandlerId = handlerId;
+            CenterToOrgHandlerName = handlerName;
             NearlyExpiredTime = nearlyExpiredTime;
             SendOrderNumber += 1;
 		}
@@ -911,6 +914,9 @@ namespace Hotline.Orders
             ExpiredTime = expiredTime;
             NearlyExpiredTime = nearlyExpiredTime;
             CenterToOrgTime = null;
+            CenterToOrgOpinion = null;
+            CenterToOrgHandlerId = null;
+            CenterToOrgHandlerName = null;
         }
 
         public void CenterToCenter(string timelimit, int timelimitCount, ETimeType timilimitUnit, DateTime expiredTime, DateTime nearlyExpiredTime)