Jelajahi Sumber

新增应急管理局消息回调

tangjiang 9 bulan lalu
induk
melakukan
c40e06c027

+ 3 - 3
src/Hotline.Api/Controllers/OrderController.cs

@@ -349,8 +349,8 @@ public class OrderController : BaseController
                                 await _contingencyManagementOrdersRepository.UpdateAsync(orderData, HttpContext.RequestAborted);
                             }
                             //推送消息
-                            await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderContingencyManagement,
-                                _mapper.Map<ContingencyManagementOrdersDto>(orderData));
+                            await _capPublisher.PublishAsync(Share.Mq.EventNames.HotlineOrderContingencyManagement,
+                                _mapper.Map<ContingencyManagementOrdersDto>(orderData), Share.Mq.EventNames.HotlineOrderContingencyManagementState);
                         }
                     }
                     catch (Exception)
@@ -485,7 +485,7 @@ public class OrderController : BaseController
                 }
                 //推送消息
                 await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderContingencyManagement,
-                    _mapper.Map<ContingencyManagementOrdersDto>(orderData));
+                    _mapper.Map<ContingencyManagementOrdersDto>(orderData), Hotline.Share.Mq.EventNames.HotlineOrderContingencyManagementState);
             }
         }
         catch (Exception)

+ 24 - 3
src/Hotline.Application/Subscribers/DatasharingSubscriber.cs

@@ -4,6 +4,7 @@ using Hotline.Application.Orders;
 using Hotline.Application.Quality;
 using Hotline.Authentications;
 using Hotline.Caching.Interfaces;
+using Hotline.ContingencyManagement;
 using Hotline.File;
 using Hotline.FlowEngine.WorkflowModules;
 using Hotline.FlowEngine.Workflows;
@@ -11,6 +12,8 @@ using Hotline.Orders;
 using Hotline.OrderTranspond;
 using Hotline.Settings;
 using Hotline.Share.Dtos;
+using Hotline.Share.Dtos.CallCenter;
+using Hotline.Share.Dtos.ContingencyManagement;
 using Hotline.Share.Dtos.DataSharing.PusherHotlineDto;
 using Hotline.Share.Dtos.FlowEngine;
 using Hotline.Share.Dtos.Order;
@@ -55,6 +58,7 @@ namespace Hotline.Application.Subscribers
         private readonly ISystemSettingCacheManager _systemSettingCacheManager;
         private readonly IRepository<OrderWarning> _orderWarningRepository;
         private readonly IRepository<OrderRevoke> _orderRevokeRepository;
+        private readonly IRepository<ContingencyManagementOrders> _contingencyManagementOrdersRepository;
 
         public DataSharingSubscriber(
             IRepository<OrderVisit> orderVisitRepository,
@@ -79,7 +83,8 @@ namespace Hotline.Application.Subscribers
             IOrderApplication orderApplication,
             ISystemSettingCacheManager systemSettingCacheManager,
             IRepository<OrderWarning> orderWarningRepository,
-             IRepository<OrderRevoke> orderRevokeRepository
+             IRepository<OrderRevoke> orderRevokeRepository,
+             IRepository<ContingencyManagementOrders> contingencyManagementOrdersRepository
             )
         {
             _orderSendBackRepository = orderSendBackRepository;
@@ -105,6 +110,7 @@ namespace Hotline.Application.Subscribers
             _systemSettingCacheManager = systemSettingCacheManager;
             _orderWarningRepository = orderWarningRepository;
             _orderRevokeRepository = orderRevokeRepository;
+            _contingencyManagementOrdersRepository = contingencyManagementOrdersRepository;
         }
 
         /// <summary>
@@ -113,7 +119,7 @@ namespace Hotline.Application.Subscribers
         [CapSubscribe(Hotline.Share.Mq.EventNames.SharingOrderReturnFeedback)]
         public async Task RecOrderReturnAsync(OrderSendBackResultDto dto, CancellationToken cancellationToken)
         {
-            var sendBack = await _orderSendBackRepository.GetAsync(p=>p.Id==dto.Id&&p.State==0, cancellationToken);
+            var sendBack = await _orderSendBackRepository.GetAsync(p => p.Id == dto.Id && p.State == 0, cancellationToken);
             if (sendBack != null)
             {
                 sendBack.Result = dto.Result;
@@ -256,7 +262,7 @@ namespace Hotline.Application.Subscribers
             model.OrgId = "001";
             model.OrgName = "市民热线服务中心";
             model.RemindTime = dto.RemindTime;
-            model.DsBisId= dto.DsBisId;
+            model.DsBisId = dto.DsBisId;
 
             //if (!string.IsNullOrEmpty(order.WorkflowId))
             //{
@@ -816,5 +822,20 @@ namespace Hotline.Application.Subscribers
                 await _transpondCityRawDataRepository.UpdateAsync(data, cancellationToken);
             }
         }
+
+        /// <summary>
+        /// 应急管理局推送回调
+        /// </summary>
+        /// <returns></returns>
+        [CapSubscribe(EventNames.HotlineOrderContingencyManagementState)]
+        public async Task RecHotlineOrderContingencyManagementState(RecOrderStateDto dto, CancellationToken cancellationToken)
+        {
+            var data = await _contingencyManagementOrdersRepository.GetAsync(p => p.Id == dto.Id, cancellationToken);
+            if (data != null && dto.State != data.PushState)
+            {
+                data.PushState = dto.State;
+                await _contingencyManagementOrdersRepository.UpdateAsync(data, cancellationToken);
+            }
+        }
     }
 }

+ 5 - 0
src/Hotline.Share/Dtos/ContingencyManagement/ContingencyManagementOrdersDto.cs

@@ -180,5 +180,10 @@ namespace Hotline.Share.Dtos.ContingencyManagement
         /// 整理后办理意见
         /// </summary>
         public string? ArrangementOpinion { get; set; }
+
+        /// <summary>
+        ///  推送状态 0:推送中,1:成功,2:失败
+        /// </summary>
+        public string? PushState { get; set; }
     }
 }

+ 15 - 0
src/Hotline.Share/Dtos/ContingencyManagement/RecOrderStateDto.cs

@@ -0,0 +1,15 @@
+namespace Hotline.Share.Dtos.ContingencyManagement
+{
+    public class RecOrderStateDto
+    {
+        /// <summary>
+        /// 工单Id
+        /// </summary>
+        public string Id { get; set; }
+
+        /// <summary>
+        /// 状态
+        /// </summary>
+        public string State { get; set; }
+    }
+}

+ 1 - 1
src/Hotline.Share/Hotline.Share.csproj

@@ -7,7 +7,7 @@
     <GenerateDocumentationFile>True</GenerateDocumentationFile>
     <NoWarn>$(NoWarn);1591;8618;</NoWarn>
     <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
-    <Version>1.0.88</Version>
+    <Version>1.0.89</Version>
   </PropertyGroup>
 
   <ItemGroup>

+ 5 - 0
src/Hotline.Share/Mq/EventNames.Order.cs

@@ -105,6 +105,11 @@ namespace Hotline.Share.Mq
         /// </summary>
         public const string HotlineOrderContingencyManagement = "hotline.order.contingency.management";
 
+        /// <summary>
+        /// 应急管理局推送回调
+        /// </summary>
+        public const string HotlineOrderContingencyManagementState = "hotline.order.contingency.management.state";
+
         #endregion
     }
 }

+ 7 - 1
src/Hotline/ContingencyManagement/ContingencyManagementOrders.cs

@@ -193,6 +193,12 @@ namespace Hotline.ContingencyManagement
         /// 整理后办理意见
         /// </summary>
         [SugarColumn(Length = 8000)]
-        public string? ArrangementOpinion { get;  set; }
+        public string? ArrangementOpinion { get; set; }
+
+        /// <summary>
+        /// 推送状态 0:推送中,1:成功,2:失败
+        /// </summary>        
+        [SugarColumn(DefaultValue = "0")]
+        public string? PushState { get; set; }
     }
 }