tangjiang 7 months ago
parent
commit
68d0ddf31a

+ 2 - 0
src/DataSharing.Host/Controllers/HotlineWebController.cs

@@ -1293,6 +1293,8 @@ jxrWXHbT1FB6DqkdOnBbQqS1Azqz5HxLlSyEK3F60e3SgB5iZsDZ
                         configSendDataOld = _sharingConfigurationManager.GetYiBinConfig().SendDataOld;
                     else if (_sharingConfigurationManager.IsCity(ConfigurationConsts.ZiGong))
                         configSendDataOld = _sharingConfigurationManager.GetZiGongConfig().SendDataOld;
+                    else if (_sharingConfigurationManager.IsCity(ConfigurationConsts.LuZhou))
+                        configSendDataOld = _sharingConfigurationManager.GetLuZhouConfig().SendDataOld;
 
                     //var configSendDataOld = _sharingConfigurationManager.GetYiBinConfig().SendDataOld;
                     //先验证是否开启推送

+ 5 - 0
src/DataSharing.Share/Dtos/YiBin/Enterprise/YbEnterpriseDefaults.cs

@@ -31,5 +31,10 @@
         /// 综治平台-推送结果
         /// </summary>
         public const string ZzptPlatformsSendHandle = "appeal/exchangeManagement/addStep.action";
+
+        /// <summary>
+        /// 随手拍推送工单
+        /// </summary>
+        public const string TianQuePushOrder = "acceptSend/send";
     }
 }

+ 139 - 0
src/DataSharing.Share/Dtos/ZiGong/TianQue/PushOrderDto.cs

@@ -0,0 +1,139 @@
+using System.Text.Json.Serialization;
+
+namespace DataSharing.Share.Dtos.ZiGong.TianQue
+{
+    public class PushOrderDto
+    {
+        /// <summary>
+        /// 唯一标识
+        /// </summary>
+        [JsonPropertyName("replyCode")]
+        public string? ReplyCode { get; set; }
+
+        /// <summary>
+        /// 经度
+        /// </summary>
+        [JsonPropertyName("lon")]
+        public string? Lon { get; set; }
+
+        /// <summary>
+        /// 纬度
+        /// </summary>
+        [JsonPropertyName("lat")]
+        public string? Lat { get; set; }
+
+        /// <summary>
+        /// 诉求类型名称
+        /// </summary>
+        [JsonPropertyName("typeName")]
+        public string? TypeName { get; set; }
+
+        /// <summary>
+        /// 事发时间
+        /// </summary>
+        [JsonPropertyName("occurDate")]
+        public string? OccurDate { get; set; }
+
+        /// <summary>
+        /// 详细地址
+        /// </summary>
+        [JsonPropertyName("detailAddress")]
+        public string? DetailAddress { get; set; }
+
+        /// <summary>
+        /// 线索主题
+        /// </summary>
+        [JsonPropertyName("topic")]
+        public string? Topic { get; set; }
+
+        /// <summary>
+        /// 详细内容
+        /// </summary>
+        [JsonPropertyName("detailContent")]
+        public string? DetailContent { get; set; }
+
+        /// <summary>
+        ///   正试接口  其它测试接口
+        /// </summary>
+        [JsonPropertyName("prod")]
+        public bool Prod { get; set; }
+
+        /// <summary>
+        /// 热点分类大类
+        /// </summary>
+        [JsonPropertyName("rootCategoryInfo")]
+        public string? RootCategoryInfo { get; set; }
+
+        /// <summary>
+        /// 热点分类子类
+        /// </summary>
+        [JsonPropertyName("categoryInfo")]
+        public string? CategoryInfo { get; set; }
+
+        /// <summary>
+        /// 截至时间
+        /// </summary>
+        [JsonPropertyName("deadLine")]
+        public string? DeadLine { get; set; }
+
+        /// <summary>
+        /// 是否高频举报 0:否,1:是
+        /// </summary>
+        [JsonPropertyName("isFrequentReporting")]
+        public string? IsFrequentReporting { get; set; }
+
+        /// <summary>
+        /// 附件信息
+        /// </summary>
+        [JsonPropertyName("files")]
+        public List<FilesDto>? Files { get; set; }
+
+        /// <summary>
+        /// 反映人信息
+        /// </summary>
+        [JsonPropertyName("personList")]
+        public List<PersonInfoDto>? PersonList { get; set; }
+    }
+
+    /// <summary>
+    /// 附件信息
+    /// </summary>
+    public class FilesDto
+    {
+        /// <summary>
+        ///文件名称
+        /// </summary>
+        [JsonPropertyName("fileName")]
+        public string? FileName { get; set; }
+
+        /// <summary>
+        /// 文件地址
+        /// </summary>
+        [JsonPropertyName("fileContent")]
+        public string? FileContent { get; set; }
+    }
+
+    /// <summary>
+    /// 反映人信息
+    /// </summary>
+    public class PersonInfoDto
+    {
+        /// <summary>
+        /// 姓名
+        /// </summary>
+        [JsonPropertyName("reflectUserName")]
+        public string? ReflectUserName { get; set; }
+
+        /// <summary>
+        /// 电话
+        /// </summary>
+        [JsonPropertyName("reflectPhone")]
+        public string? ReflectPhone { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        [JsonPropertyName("reflectCardId")]
+        public string? ReflectCardId { get; set; }
+    }
+}

+ 26 - 0
src/DataSharing.Share/Dtos/ZiGong/TianQue/TianQueReceiverResponse.cs

@@ -0,0 +1,26 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DataSharing.Share.Dtos.ZiGong.TianQue
+{
+    public class TianQueReceiverResponse
+    {
+        public int code { get; set; }
+
+        public bool success { get; set; }
+
+        public TianQueInfo data { get; set; }
+
+        public string msg { get; set; }
+    }
+
+    public class TianQueInfo
+    {
+        public string appealNumber { get; set; }
+
+        public string orgId { get; set; }
+    }
+}

+ 6 - 0
src/DataSharing.Share/Enums/EPlatformSource.cs

@@ -54,5 +54,11 @@ namespace DataSharing.Share.Enums
         /// </summary>
         [Description("业务系统")]
         Hotline = 7,
+
+        /// <summary>
+        /// 随手拍天阙
+        /// </summary>
+        [Description("随手拍天阙")]
+        TianQue = 8,
     }
 }

+ 0 - 4
src/DataSharing.ZiGong/DataSharing.ZiGong.csproj

@@ -11,8 +11,4 @@
     <ProjectReference Include="..\DataSharing\DataSharing.csproj" />
   </ItemGroup>
 
-  <ItemGroup>
-    <Folder Include="TianQue\" />
-  </ItemGroup>
-
 </Project>

+ 12 - 0
src/DataSharing.ZiGong/TianQue/ITianQueService.cs

@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DataSharing.ZiGong.TianQue
+{
+    public interface ITianQueService
+    {
+    }
+}

+ 96 - 0
src/DataSharing.ZiGong/TianQue/TianQueService.cs

@@ -0,0 +1,96 @@
+using DataSharing.Province;
+using DataSharing.SendTask;
+using DataSharing.Share.Dtos.YiBin.Enterprise;
+using DataSharing.Share.Dtos.ZiGong.TianQue;
+using DataSharing.Share.Enums;
+using Hotline.Share.Dtos.Order;
+using MapsterMapper;
+using Microsoft.Extensions.Logging;
+using System.Text.Json;
+
+namespace DataSharing.ZiGong.TianQue
+{
+    public class TianQueService : ITianQueService
+    {
+        private readonly IMapper _mapper;
+        private readonly ILogger<TianQueService> _logger;
+        private readonly IInitPushDataService _initPushDataService;
+        private readonly IChannelConfigurationManager _channelConfigurationManager;
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="mapper"></param>
+        /// <param name="logger"></param>
+        /// <param name="initPushDataService"></param>
+        /// <param name="channelConfigurationManager"></param>
+        public TianQueService(IMapper mapper,
+            ILogger<TianQueService> logger,
+            IInitPushDataService initPushDataService,
+            IChannelConfigurationManager channelConfigurationManager)
+        {
+            _mapper = mapper;
+            _logger = logger;
+            _initPushDataService = initPushDataService;
+            _channelConfigurationManager = channelConfigurationManager;
+        }
+
+        /// <summary>
+        /// 综治平台--推送工单信息
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        public async Task InitPushOrderAsync(OrderDto dto, CancellationToken cancellationToken)
+        {
+            List<PersonInfoDto> personInfoDtos =
+            [
+                new PersonInfoDto()
+                {
+                    ReflectUserName = dto.IsSecret == false ? dto.FromName : "保密",
+                    ReflectPhone = dto.IsSecret == false ? dto.Contact : "12345",
+                    ReflectCardId = ""
+                },
+            ];
+            List<FilesDto> filesDtos = new List<FilesDto>();
+            if (dto.FileJson != null && dto.FileJson.Count > 0)
+            {
+                var businessFile = _channelConfigurationManager.GetConfigurationBusinessFile();
+                var baseAddress = businessFile.BaseUrl;
+                if (baseAddress.EndsWith('/'))
+                    baseAddress = baseAddress.Remove(baseAddress.Length - 1, 1);
+                foreach (var item in dto.FileJson)
+                {
+                    filesDtos.Add(new FilesDto()
+                    {
+                        FileName = item.FileName,
+                        FileContent = baseAddress + item.Path
+                    });
+                }
+            }
+
+            PushOrderDto pushOrderDto = new PushOrderDto()
+            {
+                ReplyCode = dto.No,
+                Lon = dto.Longitude + "",
+                Lat = dto.Latitude + "",
+                TypeName = dto.AcceptType,
+                OccurDate = dto.IncidentTime.HasValue == true ? dto.IncidentTime.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
+                DetailAddress = dto.FullAddress,
+                Topic = dto.Title,
+                DetailContent = dto.Content,
+                Prod = true,
+                RootCategoryInfo = "",
+                CategoryInfo = "",
+                DeadLine = "",
+                IsFrequentReporting = "",
+                Files = filesDtos,
+                PersonList = personInfoDtos,
+            };
+
+            //写入待推送数据
+            var request = JsonSerializer.Serialize(pushOrderDto, ProvinceJsonSerializerOptions.UnStandardDatetimeJsonOptions);
+            await _initPushDataService.InitDsSendTaskOtherPlatforms("InitTianQuePushOrderAsync", YbEnterpriseDefaults.TianQuePushOrder, dto.No,
+                request, request, EPlatformSource.TianQue, cancellationToken: cancellationToken);
+        }
+    }
+}

+ 3 - 4
src/DataSharing.ZiGong/ZiGongSendTaskDataService.cs

@@ -13,7 +13,6 @@ namespace DataSharing.ZiGong
     public class ZiGongSendTaskDataService : ISendTaskDataService
     {
         private readonly ILogger<ZiGongSendTaskDataService> _logger;
-        private readonly ICityStateDataExchangePusherProviderService _dataExchangePusherProviderService;
         private readonly ISharingConfigurationManager _sharingConfigurationManager;
         private readonly ICityStateDataExchangeService _cityStateDataExchangeService;
 
@@ -21,16 +20,13 @@ namespace DataSharing.ZiGong
         /// 
         /// </summary>
         /// <param name="logger"></param>
-        /// <param name="dataExchangePusherProviderService"></param>
         /// <param name="sharingConfigurationManager"></param>
         /// <param name="dcjtService"></param>
         public ZiGongSendTaskDataService(ILogger<ZiGongSendTaskDataService> logger,
-         ICityStateDataExchangePusherProviderService dataExchangePusherProviderService,
          ISharingConfigurationManager sharingConfigurationManager,
          ICityStateDataExchangeService cityStateDataExchangeService)
         {
             _logger = logger;
-            _dataExchangePusherProviderService = dataExchangePusherProviderService;
             _sharingConfigurationManager = sharingConfigurationManager;
             _cityStateDataExchangeService = cityStateDataExchangeService;
         }
@@ -51,6 +47,9 @@ namespace DataSharing.ZiGong
             {
                 case Share.Enums.EPlatformSource.Police110:
                     break;
+                //case Share.Enums.EPlatformSource.TianQue://天阙
+                //    await _tianQuePusherProviderService.SendDataPusher(dto, cancellationToken);
+                //    break;
                 //case Share.Enums.EPlatformSource.CityDataExchange:
                 //    await _dataExchangePusherProviderService.SendDataExchangeDataPusher(dto, cancellationToken);
                 //    break;

+ 1 - 1
src/DataSharing/DataSharing.csproj

@@ -8,7 +8,7 @@
 
   <ItemGroup>
     <PackageReference Include="FluentValidation" Version="11.6.0" />
-    <PackageReference Include="Hotline.Share" Version="1.0.102" />
+    <PackageReference Include="Hotline.Share" Version="1.0.103" />
     <PackageReference Include="Portable.BouncyCastle" Version="1.9.0" />
     <PackageReference Include="Quartz.Jobs" Version="3.8.0" />
     <PackageReference Include="RestSharp" Version="110.2.0" />

+ 21 - 0
src/DataSharing/FwDataExchange/FwClient.cs

@@ -136,5 +136,26 @@ namespace DataSharing.FwDataExchange
                 d => d.SetHttpClient(configHotlineClient.AddressUrl), cancellationToken);
         }
 
+        /// <summary>
+        /// 请求,不带token
+        /// </summary>
+        /// <typeparam name="TResponse"></typeparam>
+        /// <param name="addressUrl"></param>
+        /// <param name="url"></param>
+        /// <param name="httpMethod"></param>
+        /// <param name="stringContent"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        public async Task<TResponse?> RequestNoTokenOtherAsync<TResponse>(string addressUrl,string url, string httpMethod, string? stringContent = null, CancellationToken cancellationToken = default)
+        {
+            using var scope = _scopeFactory.CreateScope();
+            var provider = scope.ServiceProvider;
+            var channelconfigManager = provider.GetRequiredService<IChannelConfigurationManager>();
+            var httpInvoker = provider.GetRequiredService<IHttpInvoker>();
+
+            return await httpInvoker.RequestStringContentAsync<TResponse>(addressUrl+url, httpMethod, stringContent,
+                d => d.SetHttpClient(addressUrl), cancellationToken);
+        }
+
     }
 }

+ 13 - 14
src/DataSharing/SendTask/TaskOtherPlatformsJob.cs

@@ -1,12 +1,10 @@
 using DataSharing.CityStateDataExchange;
 using DataSharing.SendTask.OtherPlatforms;
-using DataSharing.Share.Dtos.CityStateDataExchange;
 using DataSharing.Share.Enums;
-using DotNetCore.CAP;
+using DataSharing.TianQue;
 using MapsterMapper;
 using Microsoft.Extensions.Logging;
 using Quartz;
-using System.Threading;
 using XF.Domain.Repository;
 
 namespace DataSharing.SendTask
@@ -20,9 +18,8 @@ namespace DataSharing.SendTask
         private readonly ILogger<TaskOtherPlatformsJob> _logger;
         private readonly IRepository<DsWaitSendTaskOtherPlatforms> _waitSendTaskOtherPlatformsRepository;
         private readonly ISendTaskDataService _sendTaskDataService;
-        private readonly IChannelConfigurationManager _channelConfigurationManager;
-
         private readonly ICityStateDataExchangePusherProviderService _dataExchangePusherProviderService;
+        private readonly ITianQuePusherProviderService _tianQuePusherProviderService;
 
         /// <summary>
         /// 
@@ -31,20 +28,21 @@ namespace DataSharing.SendTask
         /// <param name="logger"></param>
         /// <param name="waitSendTaskOtherPlatformsRepository"></param>
         /// <param name="sendTaskDataService"></param>
-        /// <param name="channelConfigurationManager"></param>
+        /// <param name="dataExchangePusherProviderService"></param>
+        /// <param name="tianQuePusherProviderService"></param>
         public TaskOtherPlatformsJob(IMapper mapper,
             ILogger<TaskOtherPlatformsJob> logger,
             IRepository<DsWaitSendTaskOtherPlatforms> waitSendTaskOtherPlatformsRepository,
             ISendTaskDataService sendTaskDataService,
-            IChannelConfigurationManager channelConfigurationManager,
-            ICityStateDataExchangePusherProviderService dataExchangePusherProviderService)
+            ICityStateDataExchangePusherProviderService dataExchangePusherProviderService,
+            ITianQuePusherProviderService tianQuePusherProviderService)
         {
             _mapper = mapper;
             _logger = logger;
             _waitSendTaskOtherPlatformsRepository = waitSendTaskOtherPlatformsRepository;
             _sendTaskDataService = sendTaskDataService;
-            _channelConfigurationManager = channelConfigurationManager;
             _dataExchangePusherProviderService = dataExchangePusherProviderService;
+            _tianQuePusherProviderService = tianQuePusherProviderService;
         }
 
         /// <summary>
@@ -75,13 +73,14 @@ namespace DataSharing.SendTask
                         if (sendTask.PlatformSource == Share.Enums.EPlatformSource.CityDataExchange)
                         {
                             await _dataExchangePusherProviderService.SendDataExchangeDataPusher(sendTask, context.CancellationToken);
+                        } //如果是推随手拍天阙直接调用
+                        if (sendTask.PlatformSource == Share.Enums.EPlatformSource.TianQue)
+                        {
+                            await _tianQuePusherProviderService.SendDataPusher(sendTask, context.CancellationToken);
                         }
                         else
-                            await _sendTaskDataService.SendTask(sendTask, context.CancellationToken);
-                        //CityStateTranspondRawDataDto cityRawDataDto = new();
-                        ////推业务系统
-                        //await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.SharingOrderTranspondCity, cityRawDataDto, cancellationToken: context.CancellationToken);
-                        //处理其他平台推送
+                            await _sendTaskDataService.SendTask(sendTask, context.CancellationToken);//其他推送
+
                     }
                 }
             }

+ 15 - 0
src/DataSharing/TianQue/ITianQuePusherProviderService.cs

@@ -0,0 +1,15 @@
+using DataSharing.SendTask.OtherPlatforms;
+
+namespace DataSharing.TianQue
+{
+    public interface ITianQuePusherProviderService
+    {
+        /// <summary>
+        /// 随手拍推送工单数据
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        Task SendDataPusher(DsWaitSendTaskOtherPlatforms dto, CancellationToken cancellationToken);
+    }
+}

+ 158 - 0
src/DataSharing/TianQue/TianQuePusherProviderService.cs

@@ -0,0 +1,158 @@
+using DataSharing.FwDataExchange;
+using DataSharing.RawData;
+using DataSharing.SendTask;
+using DataSharing.SendTask.OtherPlatforms;
+using DataSharing.Share.Dtos.ZiGong.TianQue;
+using DataSharing.Share.Enums;
+using DotNetCore.CAP;
+using Hotline.Share.Dtos.DataSharing.PusherHotlineDto;
+using Microsoft.Extensions.Logging;
+using XF.Domain.Dependency;
+using XF.Domain.Repository;
+
+namespace DataSharing.TianQue
+{
+    public class TianQuePusherProviderService : ITianQuePusherProviderService, IScopeDependency
+    {
+        private readonly ILogger<TianQuePusherProviderService> _logger;
+        private readonly IRepository<DsUserTokenInfo> _dsUserTokenInfoRepository;
+        private readonly IRepository<DsWaitSendTaskOtherPlatforms> _waitSendTaskOtherPlatformsRepository;
+        private readonly IRepository<DsSendTaskDetailInfo> _dsSendTaskDetailInfoRepository;
+        private readonly IRepository<DsSendTaskOtherPlatforms> _sendTaskOtherPlatformsRepository;
+        private readonly IChannelConfigurationManager _channelConfigurationManager;
+        private readonly FwClient _fwClient;
+        private readonly ICapPublisher _capPublisher;
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="logger"></param>
+        /// <param name="dsUserTokenInfoRepository"></param>
+        /// <param name="waitSendTaskOtherPlatformsRepository"></param>
+        /// <param name="dsSendTaskDetailInfoRepository"></param>
+        /// <param name="sendTaskOtherPlatformsRepository"></param>
+        /// <param name="channelConfigurationManager"></param>
+        /// <param name="fwClient"></param>
+        /// <param name="capPublisher"></param>
+        public TianQuePusherProviderService(ILogger<TianQuePusherProviderService> logger,
+            IRepository<DsUserTokenInfo> dsUserTokenInfoRepository,
+            IRepository<DsWaitSendTaskOtherPlatforms> waitSendTaskOtherPlatformsRepository,
+            IRepository<DsSendTaskDetailInfo> dsSendTaskDetailInfoRepository,
+            IRepository<DsSendTaskOtherPlatforms> sendTaskOtherPlatformsRepository,
+            IChannelConfigurationManager channelConfigurationManager,
+            FwClient fwClient,
+            ICapPublisher capPublisher)
+        {
+            _logger = logger;
+            _dsUserTokenInfoRepository = dsUserTokenInfoRepository;
+            _waitSendTaskOtherPlatformsRepository = waitSendTaskOtherPlatformsRepository;
+            _dsSendTaskDetailInfoRepository = dsSendTaskDetailInfoRepository;
+            _sendTaskOtherPlatformsRepository = sendTaskOtherPlatformsRepository;
+            _channelConfigurationManager = channelConfigurationManager;
+            _fwClient = fwClient;
+            _capPublisher = capPublisher;
+        }
+
+        /// <summary>
+        /// 随手拍推送工单数据
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        public async Task SendDataPusher(DsWaitSendTaskOtherPlatforms dto, CancellationToken cancellationToken)
+        {
+            if (dto is null || string.IsNullOrEmpty(dto.Request))
+                return;
+
+            var userInfo = await _dsUserTokenInfoRepository.GetAsync(p => p.PlatformSource == EPlatformSource.TianQue.ToString(), cancellationToken);
+            if (userInfo is null || string.IsNullOrEmpty(userInfo.AddressUrl))
+                return;
+
+            var baseAddress = userInfo.AddressUrl;
+            if (!baseAddress.EndsWith('/'))
+                baseAddress += "/";
+
+            TianQueReceiverResponse result = new();
+            string error = "";
+            _logger.LogWarning("随手拍天阙请求参数------------------" + dto.Request);
+            try
+            {
+                result = await _fwClient.RequestNoTokenOtherAsync<TianQueReceiverResponse>(baseAddress, baseAddress + dto.Path, "POST", dto.Request, cancellationToken);
+            }
+            catch (Exception ex)
+            {
+                error = ex.Message;
+            }
+            _logger.LogWarning("随手拍天阙返回参数------------------" + System.Text.RegularExpressions.Regex.Unescape(System.Text.Json.JsonSerializer.Serialize(result)));
+
+            //写入推送明细表
+            DsSendTaskDetailInfo dsSendTaskInfo = new()
+            {
+                TaskId = dto.Id,
+                Result = System.Text.RegularExpressions.Regex.Unescape(System.Text.Json.JsonSerializer.Serialize(result)),
+                ResultErrorData = error,
+                ProcessingServices = _channelConfigurationManager.GetConfigurationProcessingServices()
+            };
+            if (result is not null)
+            {
+                #region 处理待同步表数据
+                //移除待同步表数据
+                if (result.success == true && result.code == 200)
+                {
+                    dsSendTaskInfo.IsSuccess = true;
+                    await _waitSendTaskOtherPlatformsRepository.RemoveAsync(dto, cancellationToken: cancellationToken);
+                }
+                else
+                {
+                    dto.LastTime = DateTime.Now;
+                    dto.SendTimes = dto.SendTimes++;
+
+                    if (dto.FirstTime is null)
+                        dto.FirstTime = DateTime.Now;
+
+                    if (dto.SendTimes >= 7)
+                        dto.State = EWaitSendTaskState.PushFail;
+                    else
+                        dto.State = EWaitSendTaskState.WaitPush;
+
+                    await _waitSendTaskOtherPlatformsRepository.UpdateAsync(dto, cancellationToken);
+                }
+                #endregion
+
+                #region 处理推送主表数据
+                //处理推送主表数据
+                var data = await _sendTaskOtherPlatformsRepository.GetAsync(p => p.Id == dto.Id, cancellationToken);
+                if (data != null)
+                {
+                    data.LastTime = DateTime.Now;
+                    data.SendTimes = data.SendTimes++;
+
+                    if (data.FirstTime is null)
+                        data.FirstTime = DateTime.Now;
+                    if (result.success == true && result.code == 200)
+                        data.IsSuccess = ESendTaskState.PushSuccess;
+                    else
+                        data.IsSuccess = ESendTaskState.PushFail;
+                    await _sendTaskOtherPlatformsRepository.UpdateAsync(data, cancellationToken);
+                }
+                #endregion
+
+                //收到天阙返回,推送
+                if (result.success == true && result.code == 200 && !string.IsNullOrEmpty(result.data.appealNumber))
+                {
+                    TianQuePushOrderReceiverDto tianQuePush = new TianQuePushOrderReceiverDto()
+                    {
+                        AppealNumber = result.data.appealNumber,
+                        OrgId = result.data.orgId
+                    };
+
+                    //推业务系统
+                    await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.TianQuePushOrderReceiver, tianQuePush, cancellationToken: cancellationToken);
+                }
+
+            }
+            await _dsSendTaskDetailInfoRepository.AddAsync(dsSendTaskInfo, cancellationToken);
+        }
+
+    }
+}