Dun.Jason 1 жил өмнө
parent
commit
58965705f5

+ 11 - 2
src/Hotline.Application/Handlers/FlowEngine/EndWorkflowHandler.cs

@@ -1,5 +1,6 @@
 using DotNetCore.CAP;
 using Hotline.Article;
+using Hotline.Article.Notifications;
 using Hotline.CallCenter.Tels;
 using Hotline.FlowEngine.Notifications;
 using Hotline.FlowEngine.WorkflowModules;
@@ -9,6 +10,7 @@ using Hotline.Orders;
 using Hotline.Repository.SqlSugar.Orders;
 using Hotline.Settings;
 using Hotline.Share.Dtos;
+using Hotline.Share.Dtos.Article;
 using Hotline.Share.Dtos.FlowEngine.Workflow;
 using Hotline.Share.Dtos.Order;
 using Hotline.Share.Enums.Order;
@@ -40,6 +42,7 @@ public class EndWorkflowHandler : INotificationHandler<EndWorkflowNotify>
     private readonly IRepository<OrderVisit> _orderVisitRepository;
     private readonly IRepository<OrderDelay> _orderDelayRepository;
     private readonly IRepository<OrderVisitApply> _orderVisitApplyRepository;
+    private readonly IMediator _mediator;
 
     public EndWorkflowHandler(
         IKnowledgeDomainService knowledgeDomainService,
@@ -57,7 +60,8 @@ public class EndWorkflowHandler : INotificationHandler<EndWorkflowNotify>
         ICircularRecordDomainService circularRecordDomainService,
         IRepository<OrderDelay> orderDelayRepository,
         IRepository<OrderVisit> orderVisitRepository,
-        IRepository<OrderVisitApply> orderVisitApplyRepository
+        IRepository<OrderVisitApply> orderVisitApplyRepository,
+        IMediator mediator
         )
     {
         _knowledgeDomainService = knowledgeDomainService;
@@ -76,6 +80,7 @@ public class EndWorkflowHandler : INotificationHandler<EndWorkflowNotify>
         _orderDelayRepository = orderDelayRepository;
         _orderVisitRepository = orderVisitRepository;
         _orderVisitApplyRepository = orderVisitApplyRepository;
+        _mediator = mediator;
     }
 
     /// <summary>Handles a notification</summary>
@@ -171,12 +176,16 @@ public class EndWorkflowHandler : INotificationHandler<EndWorkflowNotify>
                     {
                         bulletin.BulletinState = Share.Enums.Article.EBulletinState.ReviewPass;
                         bulletin.BulletinTime = DateTime.Now;
+                        await _bulletinRepository.UpdateAsync(bulletin, cancellationToken);
+                        //推数据交换
+                        await _mediator.Publish(new AddBulletinNotify(new List<Bulletin>() { bulletin }));
                     }
                     else
                     {
                         bulletin.BulletinState = Share.Enums.Article.EBulletinState.ReviewNoPass;
+                        await _bulletinRepository.UpdateAsync(bulletin, cancellationToken);
                     }
-                    await _bulletinRepository.UpdateAsync(bulletin, cancellationToken);
+                    
                 }
                 break;
             case WorkflowModuleConsts.CircularApply:

+ 15 - 0
src/Hotline/Article/Notifications/AddBulletinNotify.cs

@@ -0,0 +1,15 @@
+using MediatR;
+
+namespace Hotline.Article.Notifications
+{
+    public class AddBulletinNotify:INotification
+    {
+        public AddBulletinNotify(List<Bulletin> bulletins)
+        {
+             Bulletins = bulletins;
+        }
+
+
+        public List<Bulletin> Bulletins { get; set; }
+    }
+}