浏览代码

Merge branch 'dev_dss' of Fengwo/hotline into dev

dengshengshuang 11 月之前
父节点
当前提交
02c82e4d51
共有 1 个文件被更改,包括 11 次插入2 次删除
  1. 11 2
      src/Hotline.Application/Subscribers/DatasharingSubscriber.cs

+ 11 - 2
src/Hotline.Application/Subscribers/DatasharingSubscriber.cs

@@ -20,6 +20,7 @@ using MediatR;
 using Hotline.Settings;
 using Hotline.OrderTranspond;
 using Hotline.Share.Dtos.OrderTranspond;
+using Hotline.Repository.SqlSugar.FlowEngine;
 
 namespace Hotline.Application.Subscribers
 {
@@ -49,6 +50,7 @@ namespace Hotline.Application.Subscribers
         private readonly IRepository<SystemDicData> _systemDicDataRepository;
         private readonly ISystemOrganizeRepository _systemOrganizeRepository;
         private readonly IRepository<TranspondCityRawData> _transpondCityRawDataRepository;
+        private readonly IRepository<Workflow> _workflowRepository;
 
         public DataSharingSubscriber(
             IRepository<OrderVisit> orderVisitRepository,
@@ -70,7 +72,8 @@ namespace Hotline.Application.Subscribers
             IFileRepository fileRepository,
             IRepository<SystemDicData> systemDicDataRepository,
             ISystemOrganizeRepository systemOrganizeRepository,
-            IRepository<TranspondCityRawData> transpondCityRawDataRepository)
+            IRepository<TranspondCityRawData> transpondCityRawDataRepository,
+            IRepository<Workflow> workflowRepository)
         {
             _orderSendBackRepository = orderSendBackRepository;
             _workflowApplication = workflowApplication;
@@ -91,7 +94,7 @@ namespace Hotline.Application.Subscribers
             _systemDicDataRepository = systemDicDataRepository;
             _systemOrganizeRepository = systemOrganizeRepository;
             _transpondCityRawDataRepository = transpondCityRawDataRepository;
-
+            _workflowRepository = workflowRepository;
         }
 
         /// <summary>
@@ -438,6 +441,12 @@ namespace Hotline.Application.Subscribers
             {
                 //查询延期
                 var orderDelay = await _orderDelayRepository.GetAsync(x => x.OrderId == order.Id && x.DelayState == EDelayState.Examining, cancellationToken);
+                var workflow = await _workflowRepository.GetAsync(orderDelay.WorkflowId);
+                if (workflow != null)
+                {
+                    workflow.Complete(dto.IsPass? Share.Enums.FlowEngine.EReviewResult.Approval : Share.Enums.FlowEngine.EReviewResult.Failed);
+                    await _workflowRepository.UpdateAsync(workflow, cancellationToken);
+                }
                 await _workflowApplication.JumpToEndAsync(orderDelay.WorkflowId, dto.Opinion, null);
             }
         }