|
@@ -1,297 +1,306 @@
|
|
|
-//using Hotline.DataSharing.Province.HuiJu.Send;
|
|
|
-//using Hotline.DataSharing.Province.Other;
|
|
|
-//using Hotline.DataSharing.Province.Services;
|
|
|
-//using Hotline.DataSharing.Province.XieTong.Knowledge;
|
|
|
-//using Hotline.DataSharing.Province.XieTong.Receive;
|
|
|
-//using Hotline.DataSharing.Province.XieTong.Send;
|
|
|
-//using MediatR;
|
|
|
-//using Microsoft.AspNetCore.Http;
|
|
|
-//using Microsoft.Extensions.DependencyInjection;
|
|
|
-//using Microsoft.Extensions.Hosting;
|
|
|
-//using System.Threading;
|
|
|
-//using XF.Domain.Repository;
|
|
|
-//using static System.Runtime.InteropServices.JavaScript.JSType;
|
|
|
-
|
|
|
-//namespace Hotline.Application.DataSharing.Province
|
|
|
-//{
|
|
|
-// /// <summary>
|
|
|
-// /// 后台定时任务
|
|
|
-// /// </summary>
|
|
|
-// public class PushDataBgService : BackgroundService
|
|
|
-// {
|
|
|
-// private readonly IServiceScopeFactory _serviceScopeFactory;
|
|
|
-
|
|
|
-// /// <summary>
|
|
|
-// ///
|
|
|
-// /// </summary>
|
|
|
-// /// <param name="serviceScopeFactory"></param>
|
|
|
-// public PushDataBgService(IServiceScopeFactory serviceScopeFactory)
|
|
|
-// {
|
|
|
-// _serviceScopeFactory = serviceScopeFactory;
|
|
|
-// }
|
|
|
-
|
|
|
-// /// <summary>
|
|
|
-// ///
|
|
|
-// /// </summary>
|
|
|
-// /// <param name="stoppingToken"></param>
|
|
|
-// /// <returns></returns>
|
|
|
-// protected override async Task ExecuteAsync(CancellationToken stoppingToken)
|
|
|
-// {
|
|
|
-// //10分钟扫描一次数据库
|
|
|
-// using var sc = _serviceScopeFactory.CreateScope();
|
|
|
-// var time = TimeSpan.FromSeconds(60 * 10);
|
|
|
-// while (!stoppingToken.IsCancellationRequested)
|
|
|
-// {
|
|
|
-// using var scope = _serviceScopeFactory.CreateScope();
|
|
|
-// var _waitingPushDataRepository = scope.ServiceProvider.GetService<IRepository<DsWaitingPushData>>();
|
|
|
-// var _sendCaseInfoRepository = scope.ServiceProvider.GetService<IRepository<DsSendCaseInfo>>();
|
|
|
-// var _mediator = scope.ServiceProvider.GetService<IMediator>();
|
|
|
-// var _pusherProviderService = scope.ServiceProvider.GetService<IPusherProviderService>();
|
|
|
-
|
|
|
-// #region 批量推送省数据
|
|
|
-// //查询待推送数据
|
|
|
-// var listData = await _waitingPushDataRepository
|
|
|
-// .Queryable()
|
|
|
-// .Take(30)
|
|
|
-// .OrderByDescending(p => p.Priority)
|
|
|
-// .ToListAsync();
|
|
|
-// var isContinue = true;
|
|
|
-// if (listData != null && listData.Count > 0)
|
|
|
-// {
|
|
|
-// List<DsSubmitCaseProcess> submitCaseProcesses = new(); //服务工单处理过程
|
|
|
-// List<DsSubmitCaseResult> submitCaseResults = new(); //服务工单处理结果
|
|
|
-// List<DsSubmitVisitInfo> submitVisitInfos = new(); //服务工单回访评价
|
|
|
-// List<DsGetCaseMaterialInfo> getCaseMaterialInfos = new();//附件上传处理
|
|
|
-// DsGetCaseBackApply dsGetCaseBackApply = null;//退回申请
|
|
|
-// DsSendSuperviseProcessInfo dsSendSuperviseProcessInfo = null;//服务工单督办过程
|
|
|
-// DsSendSuperviseResultInfo dsSendSuperviseResultInfo = null;//服务工单督办结果
|
|
|
-// DsScreenCaseInfoSend dsScreenCaseInfoSend = null;//工单发起甄别
|
|
|
-// DsDelayCaseInfoSend dsDelayCaseInfoSend = null;//服务工单申请延时
|
|
|
-// DsZmhdCaseInfoPublic dsZmhdCaseInfoPublic = null;//政民互动提交公开
|
|
|
-// List<DsSubmitCaseInfo> dsSubmitCaseInfos = new();//服务工单受理推送工单--批量
|
|
|
-
|
|
|
-// DsGetCaseProcessReceive dsGetCaseProcessReceive = null;//服务工单交办处理过程
|
|
|
-// DsGetVisitInfoReceive dsGetVisitInfoReceive = null;//服务工单交办评价
|
|
|
-// List<DsSubmitCaseRecord> dsSubmitCaseRecords = new();//挂电话推送--批量推送
|
|
|
-// DsSubmitCaseTotal dsSubmitCaseTotal = null;//统计数据
|
|
|
-// DsSupplyCaseInfoSend dsSupplyCaseInfoSend = null;//上报补充诉求
|
|
|
-// DsRevokeCaseInfo dsRevokeCaseInfo = null;//服务工单撤单
|
|
|
-// DsRemindCaseInfo dsRemindCaseInfo = null;//服务工单催单
|
|
|
-// DsGetKnowledgeInfoSend dsGetKnowledgeInfoSend = null;//知识库上报
|
|
|
-// DsGetKnowledgeInfoUpdate dsGetKnowledgeInfoUpdate = null;//知识库变更
|
|
|
-// DsGetKnowledgeInfoAbandon dsGetKnowledgeInfoAbandon = null;//知识库下架
|
|
|
-// DsSendRealTimeStatus dsSendRealTimeStatus = null;//实时服务上报
|
|
|
-// //根据查询出来数据组装推送数据
|
|
|
-// foreach (var item in listData)
|
|
|
-// {
|
|
|
-// switch (item.ServiceInterface)
|
|
|
-// {
|
|
|
-// case "GetCaseBackApply"://退回申请
|
|
|
-// dsGetCaseBackApply = System.Text.Json.JsonSerializer.Deserialize<DsGetCaseBackApply>(item.Data);
|
|
|
-// break;
|
|
|
-// case "SendSuperviseProcessInfo"://服务工单督办过程
|
|
|
-// dsSendSuperviseProcessInfo = System.Text.Json.JsonSerializer.Deserialize<DsSendSuperviseProcessInfo>(item.Data);
|
|
|
-// break;
|
|
|
-// case "SendSuperviseResultInfo"://服务工单督办结果
|
|
|
-// dsSendSuperviseResultInfo = System.Text.Json.JsonSerializer.Deserialize<DsSendSuperviseResultInfo>(item.Data);
|
|
|
-// break;
|
|
|
-// case "ScreenCaseInfoSend"://工单发起甄别
|
|
|
-// dsScreenCaseInfoSend = System.Text.Json.JsonSerializer.Deserialize<DsScreenCaseInfoSend>(item.Data);
|
|
|
-// break;
|
|
|
-// case "DelayCaseInfoSend"://服务工单申请延时
|
|
|
-// dsDelayCaseInfoSend = System.Text.Json.JsonSerializer.Deserialize<DsDelayCaseInfoSend>(item.Data);
|
|
|
-// break;
|
|
|
-// case "ZmhdCaseInfoPublic"://政民互动提交公开
|
|
|
-// dsZmhdCaseInfoPublic = System.Text.Json.JsonSerializer.Deserialize<DsZmhdCaseInfoPublic>(item.Data);
|
|
|
-// break;
|
|
|
-// case "SubmitCaseInfo"://服务工单受理推送工单
|
|
|
-// var submitCaseInfo = System.Text.Json.JsonSerializer.Deserialize<DsSubmitCaseInfo>(item.Data);
|
|
|
-// if (submitCaseInfo != null) dsSubmitCaseInfos.Add(submitCaseInfo);
|
|
|
-// break;
|
|
|
-// case "GetCaseProcessReceive"://服务工单交办处理过程
|
|
|
-// dsGetCaseProcessReceive = System.Text.Json.JsonSerializer.Deserialize<DsGetCaseProcessReceive>(item.Data);
|
|
|
-// break;
|
|
|
-// case "GetVisitInfoReceive"://服务工单交办评价
|
|
|
-// dsGetVisitInfoReceive = System.Text.Json.JsonSerializer.Deserialize<DsGetVisitInfoReceive>(item.Data);
|
|
|
-// break;
|
|
|
-// case "SubmitCaseRecord"://挂电话推送--批量推送
|
|
|
-// var caseRecord = System.Text.Json.JsonSerializer.Deserialize<DsSubmitCaseRecord>(item.Data);
|
|
|
-// if (caseRecord != null) dsSubmitCaseRecords.Add(caseRecord);
|
|
|
-// break;
|
|
|
-// case "SubmitCaseTotal"://统计数据
|
|
|
-// dsSubmitCaseTotal = System.Text.Json.JsonSerializer.Deserialize<DsSubmitCaseTotal>(item.Data);
|
|
|
-// break;
|
|
|
-// case "SupplyCaseInfoSend"://上报补充诉求
|
|
|
-// dsSupplyCaseInfoSend = System.Text.Json.JsonSerializer.Deserialize<DsSupplyCaseInfoSend>(item.Data);
|
|
|
-// break;
|
|
|
-// case "SendRevokeCaseInfo"://服务工单撤单
|
|
|
-// dsRevokeCaseInfo = System.Text.Json.JsonSerializer.Deserialize<DsRevokeCaseInfo>(item.Data);
|
|
|
-// break;
|
|
|
-// case "SendRemindCaseInfo"://服务工单催单
|
|
|
-// dsRemindCaseInfo = System.Text.Json.JsonSerializer.Deserialize<DsRemindCaseInfo>(item.Data);
|
|
|
-// break;
|
|
|
-// case "GetKnowledgeInfoSend"://知识库上报
|
|
|
-// dsGetKnowledgeInfoSend = System.Text.Json.JsonSerializer.Deserialize<DsGetKnowledgeInfoSend>(item.Data);
|
|
|
-// break;
|
|
|
-// case "GetKnowledgeInfoUpdate"://知识库变更
|
|
|
-// dsGetKnowledgeInfoUpdate = System.Text.Json.JsonSerializer.Deserialize<DsGetKnowledgeInfoUpdate>(item.Data);
|
|
|
-// break;
|
|
|
-// case "GetKnowledgeInfoAbandon"://知识库下架
|
|
|
-// dsGetKnowledgeInfoAbandon = System.Text.Json.JsonSerializer.Deserialize<DsGetKnowledgeInfoAbandon>(item.Data);
|
|
|
-// break;
|
|
|
-// case "SendRealTimeStatus"://实时服务上报
|
|
|
-// dsSendRealTimeStatus = System.Text.Json.JsonSerializer.Deserialize<DsSendRealTimeStatus>(item.Data);
|
|
|
-// break;
|
|
|
-
|
|
|
-
|
|
|
-// case "SubmitCaseProcess"://服务工单处理过程
|
|
|
-// var caseProcess = System.Text.Json.JsonSerializer.Deserialize<DsSubmitCaseProcess>(item.Data);
|
|
|
-// if (caseProcess != null) submitCaseProcesses.Add(caseProcess);
|
|
|
-// break;
|
|
|
-// case "SubmitCaseResult": //服务工单处理结果
|
|
|
-// var caseResult = System.Text.Json.JsonSerializer.Deserialize<DsSubmitCaseResult>(item.Data);
|
|
|
-// if (caseResult != null) submitCaseResults.Add(caseResult);
|
|
|
-// break;
|
|
|
-// case "SubmitVisitInfo"://服务工单回访评价
|
|
|
-// var visitInfo = System.Text.Json.JsonSerializer.Deserialize<DsSubmitVisitInfo>(item.Data);
|
|
|
-// if (visitInfo != null) submitVisitInfos.Add(visitInfo);
|
|
|
-// break;
|
|
|
-// case "GetCaseMaterialInfo"://附件
|
|
|
-// var materialInfo = System.Text.Json.JsonSerializer.Deserialize<DsGetCaseMaterialInfo>(item.Data);
|
|
|
-// if (materialInfo != null) getCaseMaterialInfos.Add(materialInfo);
|
|
|
-// break;
|
|
|
-// default:
|
|
|
-// break;
|
|
|
-// }
|
|
|
-// }
|
|
|
-
|
|
|
-// //推送对应消息
|
|
|
-// //退回申请
|
|
|
-// if (dsGetCaseBackApply != null)
|
|
|
-// await _pusherProviderService.GetCaseBackApplyPusher(dsGetCaseBackApply, default);
|
|
|
-
|
|
|
-// //服务工单督办过程
|
|
|
-// if (dsSendSuperviseProcessInfo != null)
|
|
|
-// await _pusherProviderService.SendSuperviseProcessInfoPusher(dsSendSuperviseProcessInfo, default);
|
|
|
-
|
|
|
-// //服务工单督办过程
|
|
|
-// if (dsSendSuperviseResultInfo != null)
|
|
|
-// await _pusherProviderService.SendSuperviseResultInfoPusher(dsSendSuperviseResultInfo, default);
|
|
|
-
|
|
|
-// //工单发起甄别
|
|
|
-// if (dsScreenCaseInfoSend != null)
|
|
|
-// await _pusherProviderService.ScreenCaseInfoSendPusher(dsScreenCaseInfoSend, default);
|
|
|
-
|
|
|
-// //服务工单申请延时
|
|
|
-// if (dsDelayCaseInfoSend != null)
|
|
|
-// await _pusherProviderService.DelayCaseInfoSendPusher(dsDelayCaseInfoSend, default);
|
|
|
-
|
|
|
-// //政民互动提交公开
|
|
|
-// if (dsZmhdCaseInfoPublic != null)
|
|
|
-// await _pusherProviderService.ZmhdCaseInfoPublicPusher(dsZmhdCaseInfoPublic, default);
|
|
|
-
|
|
|
-// //服务工单受理推送工单
|
|
|
-// if (dsSubmitCaseInfos != null && dsSubmitCaseInfos.Count > 0)
|
|
|
-// await _pusherProviderService.ProvinceOrderCreatedPusher(dsSubmitCaseInfos, default);
|
|
|
-
|
|
|
-// //服务工单交办处理过程
|
|
|
-// if (dsGetCaseProcessReceive != null)
|
|
|
-// await _pusherProviderService.GetCaseProcessReceivePusher(dsGetCaseProcessReceive, default);
|
|
|
-
|
|
|
-// //服务工单交办评价请求
|
|
|
-// if (dsGetVisitInfoReceive != null)
|
|
|
-// await _pusherProviderService.GetVisitInfoReceivePusher(dsGetVisitInfoReceive, default);
|
|
|
-
|
|
|
-// // 挂电话推送--批量推送
|
|
|
-// if (dsSubmitCaseRecords != null && dsSubmitCaseRecords.Count > 0)
|
|
|
-// await _pusherProviderService.SubmitCaseRecordPusher(dsSubmitCaseRecords, default);
|
|
|
-
|
|
|
-// // 统计数据
|
|
|
-// if (dsSubmitCaseTotal != null)
|
|
|
-// await _pusherProviderService.SubmitCaseTotalPusher(dsSubmitCaseTotal, default);
|
|
|
-
|
|
|
-// // 上报补充诉求
|
|
|
-// if (dsSupplyCaseInfoSend != null)
|
|
|
-// await _pusherProviderService.SupplyCaseInfoSendPusher(dsSupplyCaseInfoSend, default);
|
|
|
-
|
|
|
-// // 服务工单撤单
|
|
|
-// if (dsRevokeCaseInfo != null)
|
|
|
-// await _pusherProviderService.SendRevokeCaseInfoPusher(dsRevokeCaseInfo, default);
|
|
|
-
|
|
|
-// // 服务工单催单
|
|
|
-// if (dsRemindCaseInfo != null)
|
|
|
-// await _pusherProviderService.SendRemindCaseInfoPusher(dsRemindCaseInfo, default);
|
|
|
-
|
|
|
-// // 知识库上报
|
|
|
-// if (dsGetKnowledgeInfoSend != null)
|
|
|
-// await _pusherProviderService.GetKnowledgeInfoSendPusher(dsGetKnowledgeInfoSend, default);
|
|
|
-
|
|
|
-// // 知识库变更
|
|
|
-// if (dsGetKnowledgeInfoUpdate != null)
|
|
|
-// await _pusherProviderService.GetKnowledgeInfoUpdatePusher(dsGetKnowledgeInfoUpdate, default);
|
|
|
-
|
|
|
-// // 知识库下架
|
|
|
-// if (dsGetKnowledgeInfoAbandon != null)
|
|
|
-// await _pusherProviderService.GetKnowledgeInfoAbandonPusher(dsGetKnowledgeInfoAbandon, default);
|
|
|
-
|
|
|
-// // 实时服务上报
|
|
|
-// if (dsSendRealTimeStatus != null)
|
|
|
-// await _pusherProviderService.SendRealTimeStatusPusher(dsSendRealTimeStatus, default);
|
|
|
-
|
|
|
-
|
|
|
-// //服务工单处理过程
|
|
|
-// if (submitCaseProcesses != null && submitCaseProcesses.Count > 0)
|
|
|
-// {
|
|
|
-// await _pusherProviderService.SubmitCaseProcessPusher(submitCaseProcesses, default);
|
|
|
-// // await _mediator.Publish(new SubmitCaseProcessNotification(submitCaseProcesses));
|
|
|
-// }
|
|
|
-
|
|
|
-// //服务工单处理结果
|
|
|
-// if (submitCaseResults != null && submitCaseResults.Count > 0)
|
|
|
-// {
|
|
|
-// await _pusherProviderService.SubmitCaseResultPusher(submitCaseResults, default);
|
|
|
-// // await _mediator.Publish(new SubmitCaseResultNotification(submitCaseResults));
|
|
|
-// }
|
|
|
-
|
|
|
-// //服务工单回访评价
|
|
|
-// if (submitVisitInfos != null && submitVisitInfos.Count > 0)
|
|
|
-// {
|
|
|
-// await _pusherProviderService.SubmitVisitInfoPusher(submitVisitInfos, default);
|
|
|
-// // await _mediator.Publish(new SubmitVisitInfoNotification(submitVisitInfos));
|
|
|
-// }
|
|
|
-
|
|
|
-
|
|
|
-// //附件上传处理
|
|
|
-// if (getCaseMaterialInfos != null && getCaseMaterialInfos.Count > 0)
|
|
|
-// {
|
|
|
-// await _pusherProviderService.GetCaseMaterialInfoPusher(getCaseMaterialInfos, default);
|
|
|
-// // await _mediator.Publish(new GetCaseMaterialInfoNotification(getCaseMaterialInfos));
|
|
|
-// }
|
|
|
-// }
|
|
|
-// else
|
|
|
-// isContinue = false;
|
|
|
-// #endregion
|
|
|
-
|
|
|
-// #region 拉取12315工单办理信息
|
|
|
-// //查询是否存在需要拉取办理信息的工单
|
|
|
-// var listSendCaseInfo = await _sendCaseInfoRepository
|
|
|
-// .Queryable()
|
|
|
-// .OrderBy(p => p.CreationTime)
|
|
|
-// .ToListAsync();
|
|
|
-// //处理数据
|
|
|
-// if (listSendCaseInfo != null && listSendCaseInfo.Count > 0)
|
|
|
-// {
|
|
|
-// foreach (var item in listSendCaseInfo)
|
|
|
-// await _pusherProviderService.GetCaseDistrecordSendPusher(item.CaseSerial, default);// _mediator.Publish(new GetCaseDistrecordSendNotification(item.CaseSerial));
|
|
|
-// }
|
|
|
-// else
|
|
|
-// isContinue = false;
|
|
|
-// #endregion
|
|
|
-
|
|
|
-// //如果数据都为空,停止
|
|
|
-// if (!isContinue)
|
|
|
-// await Task.Delay(time, stoppingToken);
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-//}
|
|
|
+using Hotline.DataSharing.Province.HuiJu.Send;
|
|
|
+using Hotline.DataSharing.Province.Other;
|
|
|
+using Hotline.DataSharing.Province.Services;
|
|
|
+using Hotline.DataSharing.Province.XieTong.Knowledge;
|
|
|
+using Hotline.DataSharing.Province.XieTong.Receive;
|
|
|
+using Hotline.DataSharing.Province.XieTong.Send;
|
|
|
+using MediatR;
|
|
|
+using Microsoft.AspNetCore.Http;
|
|
|
+using Microsoft.Extensions.DependencyInjection;
|
|
|
+using Microsoft.Extensions.Hosting;
|
|
|
+using System.Threading;
|
|
|
+using XF.Domain.Repository;
|
|
|
+using static System.Runtime.InteropServices.JavaScript.JSType;
|
|
|
+
|
|
|
+namespace Hotline.Application.DataSharing.Province
|
|
|
+{
|
|
|
+ /// <summary>
|
|
|
+ /// 后台定时任务
|
|
|
+ /// </summary>
|
|
|
+ public class PushDataBgService : BackgroundService
|
|
|
+ {
|
|
|
+ private readonly IServiceScopeFactory _serviceScopeFactory;
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="serviceScopeFactory"></param>
|
|
|
+ public PushDataBgService(IServiceScopeFactory serviceScopeFactory)
|
|
|
+ {
|
|
|
+ _serviceScopeFactory = serviceScopeFactory;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="stoppingToken"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
|
|
|
+ {
|
|
|
+ //10分钟扫描一次数据库
|
|
|
+ using var sc = _serviceScopeFactory.CreateScope();
|
|
|
+ var time = TimeSpan.FromSeconds(60 * 10);
|
|
|
+ while (!stoppingToken.IsCancellationRequested)
|
|
|
+ {
|
|
|
+ using var scope = _serviceScopeFactory.CreateScope();
|
|
|
+ var _waitingPushDataRepository = scope.ServiceProvider.GetService<IRepository<DsWaitingPushData>>();
|
|
|
+ var _sendCaseInfoRepository = scope.ServiceProvider.GetService<IRepository<DsSendCaseInfo>>();
|
|
|
+ var _mediator = scope.ServiceProvider.GetService<IMediator>();
|
|
|
+ var _pusherProviderService = scope.ServiceProvider.GetService<IPusherProviderService>();
|
|
|
+
|
|
|
+ #region 批量推送省数据
|
|
|
+ //查询待推送数据
|
|
|
+ var listData = await _waitingPushDataRepository
|
|
|
+ .Queryable()
|
|
|
+ .Take(30)
|
|
|
+ .OrderByDescending(p => p.Priority)
|
|
|
+ .ToListAsync();
|
|
|
+ var isContinue = true;
|
|
|
+ if (listData != null && listData.Count > 0)
|
|
|
+ {
|
|
|
+ List<DsSubmitCaseProcess> submitCaseProcesses = new(); //服务工单处理过程
|
|
|
+ List<DsSubmitCaseResult> submitCaseResults = new(); //服务工单处理结果
|
|
|
+ List<DsSubmitVisitInfo> submitVisitInfos = new(); //服务工单回访评价
|
|
|
+ List<DsGetCaseMaterialInfo> getCaseMaterialInfos = new();//附件上传处理
|
|
|
+ DsGetCaseBackApply dsGetCaseBackApply = null;//退回申请
|
|
|
+ DsSendSuperviseProcessInfo dsSendSuperviseProcessInfo = null;//服务工单督办过程
|
|
|
+ DsSendSuperviseResultInfo dsSendSuperviseResultInfo = null;//服务工单督办结果
|
|
|
+ DsScreenCaseInfoSend dsScreenCaseInfoSend = null;//工单发起甄别
|
|
|
+ DsDelayCaseInfoSend dsDelayCaseInfoSend = null;//服务工单申请延时
|
|
|
+ DsZmhdCaseInfoPublic dsZmhdCaseInfoPublic = null;//政民互动提交公开
|
|
|
+ List<DsSubmitCaseInfo> dsSubmitCaseInfos = new();//服务工单受理推送工单--批量
|
|
|
+
|
|
|
+ DsGetCaseProcessReceive dsGetCaseProcessReceive = null;//服务工单交办处理过程
|
|
|
+ DsGetCaseResultReceive dsGetCaseResultReceive = null;//服务工单交办处理结果
|
|
|
+
|
|
|
+ DsGetVisitInfoReceive dsGetVisitInfoReceive = null;//服务工单交办评价
|
|
|
+ List<DsSubmitCaseRecord> dsSubmitCaseRecords = new();//挂电话推送--批量推送
|
|
|
+ DsSubmitCaseTotal dsSubmitCaseTotal = null;//统计数据
|
|
|
+ DsSupplyCaseInfoSend dsSupplyCaseInfoSend = null;//上报补充诉求
|
|
|
+ DsRevokeCaseInfo dsRevokeCaseInfo = null;//服务工单撤单
|
|
|
+ DsRemindCaseInfo dsRemindCaseInfo = null;//服务工单催单
|
|
|
+ DsGetKnowledgeInfoSend dsGetKnowledgeInfoSend = null;//知识库上报
|
|
|
+ DsGetKnowledgeInfoUpdate dsGetKnowledgeInfoUpdate = null;//知识库变更
|
|
|
+ DsGetKnowledgeInfoAbandon dsGetKnowledgeInfoAbandon = null;//知识库下架
|
|
|
+ DsSendRealTimeStatus dsSendRealTimeStatus = null;//实时服务上报
|
|
|
+ //根据查询出来数据组装推送数据
|
|
|
+ foreach (var item in listData)
|
|
|
+ {
|
|
|
+ switch (item.ServiceInterface)
|
|
|
+ {
|
|
|
+ case "GetCaseBackApply"://退回申请
|
|
|
+ dsGetCaseBackApply = System.Text.Json.JsonSerializer.Deserialize<DsGetCaseBackApply>(item.Data);
|
|
|
+ break;
|
|
|
+ case "SendSuperviseProcessInfo"://服务工单督办过程
|
|
|
+ dsSendSuperviseProcessInfo = System.Text.Json.JsonSerializer.Deserialize<DsSendSuperviseProcessInfo>(item.Data);
|
|
|
+ break;
|
|
|
+ case "SendSuperviseResultInfo"://服务工单督办结果
|
|
|
+ dsSendSuperviseResultInfo = System.Text.Json.JsonSerializer.Deserialize<DsSendSuperviseResultInfo>(item.Data);
|
|
|
+ break;
|
|
|
+ case "ScreenCaseInfoSend"://工单发起甄别
|
|
|
+ dsScreenCaseInfoSend = System.Text.Json.JsonSerializer.Deserialize<DsScreenCaseInfoSend>(item.Data);
|
|
|
+ break;
|
|
|
+ case "DelayCaseInfoSend"://服务工单申请延时
|
|
|
+ dsDelayCaseInfoSend = System.Text.Json.JsonSerializer.Deserialize<DsDelayCaseInfoSend>(item.Data);
|
|
|
+ break;
|
|
|
+ case "ZmhdCaseInfoPublic"://政民互动提交公开
|
|
|
+ dsZmhdCaseInfoPublic = System.Text.Json.JsonSerializer.Deserialize<DsZmhdCaseInfoPublic>(item.Data);
|
|
|
+ break;
|
|
|
+ case "SubmitCaseInfo"://服务工单受理推送工单
|
|
|
+ var submitCaseInfo = System.Text.Json.JsonSerializer.Deserialize<DsSubmitCaseInfo>(item.Data);
|
|
|
+ if (submitCaseInfo != null) dsSubmitCaseInfos.Add(submitCaseInfo);
|
|
|
+ break;
|
|
|
+ case "GetCaseProcessReceive"://服务工单交办处理过程
|
|
|
+ dsGetCaseProcessReceive = System.Text.Json.JsonSerializer.Deserialize<DsGetCaseProcessReceive>(item.Data);
|
|
|
+ break;
|
|
|
+ case "GetCaseResultReceive"://服务工单交办处理结果
|
|
|
+ dsGetCaseResultReceive = System.Text.Json.JsonSerializer.Deserialize<DsGetCaseResultReceive>(item.Data);
|
|
|
+ break;
|
|
|
+ case "GetVisitInfoReceive"://服务工单交办评价
|
|
|
+ dsGetVisitInfoReceive = System.Text.Json.JsonSerializer.Deserialize<DsGetVisitInfoReceive>(item.Data);
|
|
|
+ break;
|
|
|
+ case "SubmitCaseRecord"://挂电话推送--批量推送
|
|
|
+ var caseRecord = System.Text.Json.JsonSerializer.Deserialize<DsSubmitCaseRecord>(item.Data);
|
|
|
+ if (caseRecord != null) dsSubmitCaseRecords.Add(caseRecord);
|
|
|
+ break;
|
|
|
+ case "SubmitCaseTotal"://统计数据
|
|
|
+ dsSubmitCaseTotal = System.Text.Json.JsonSerializer.Deserialize<DsSubmitCaseTotal>(item.Data);
|
|
|
+ break;
|
|
|
+ case "SupplyCaseInfoSend"://上报补充诉求
|
|
|
+ dsSupplyCaseInfoSend = System.Text.Json.JsonSerializer.Deserialize<DsSupplyCaseInfoSend>(item.Data);
|
|
|
+ break;
|
|
|
+ case "SendRevokeCaseInfo"://服务工单撤单
|
|
|
+ dsRevokeCaseInfo = System.Text.Json.JsonSerializer.Deserialize<DsRevokeCaseInfo>(item.Data);
|
|
|
+ break;
|
|
|
+ case "SendRemindCaseInfo"://服务工单催单
|
|
|
+ dsRemindCaseInfo = System.Text.Json.JsonSerializer.Deserialize<DsRemindCaseInfo>(item.Data);
|
|
|
+ break;
|
|
|
+ case "GetKnowledgeInfoSend"://知识库上报
|
|
|
+ dsGetKnowledgeInfoSend = System.Text.Json.JsonSerializer.Deserialize<DsGetKnowledgeInfoSend>(item.Data);
|
|
|
+ break;
|
|
|
+ case "GetKnowledgeInfoUpdate"://知识库变更
|
|
|
+ dsGetKnowledgeInfoUpdate = System.Text.Json.JsonSerializer.Deserialize<DsGetKnowledgeInfoUpdate>(item.Data);
|
|
|
+ break;
|
|
|
+ case "GetKnowledgeInfoAbandon"://知识库下架
|
|
|
+ dsGetKnowledgeInfoAbandon = System.Text.Json.JsonSerializer.Deserialize<DsGetKnowledgeInfoAbandon>(item.Data);
|
|
|
+ break;
|
|
|
+ case "SendRealTimeStatus"://实时服务上报
|
|
|
+ dsSendRealTimeStatus = System.Text.Json.JsonSerializer.Deserialize<DsSendRealTimeStatus>(item.Data);
|
|
|
+ break;
|
|
|
+
|
|
|
+
|
|
|
+ case "SubmitCaseProcess"://服务工单处理过程
|
|
|
+ var caseProcess = System.Text.Json.JsonSerializer.Deserialize<DsSubmitCaseProcess>(item.Data);
|
|
|
+ if (caseProcess != null) submitCaseProcesses.Add(caseProcess);
|
|
|
+ break;
|
|
|
+ case "SubmitCaseResult": //服务工单处理结果
|
|
|
+ var caseResult = System.Text.Json.JsonSerializer.Deserialize<DsSubmitCaseResult>(item.Data);
|
|
|
+ if (caseResult != null) submitCaseResults.Add(caseResult);
|
|
|
+ break;
|
|
|
+ case "SubmitVisitInfo"://服务工单回访评价
|
|
|
+ var visitInfo = System.Text.Json.JsonSerializer.Deserialize<DsSubmitVisitInfo>(item.Data);
|
|
|
+ if (visitInfo != null) submitVisitInfos.Add(visitInfo);
|
|
|
+ break;
|
|
|
+ case "GetCaseMaterialInfo"://附件
|
|
|
+ var materialInfo = System.Text.Json.JsonSerializer.Deserialize<DsGetCaseMaterialInfo>(item.Data);
|
|
|
+ if (materialInfo != null) getCaseMaterialInfos.Add(materialInfo);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //推送对应消息
|
|
|
+ //退回申请
|
|
|
+ if (dsGetCaseBackApply != null)
|
|
|
+ await _pusherProviderService.GetCaseBackApplyPusher(dsGetCaseBackApply, default);
|
|
|
+
|
|
|
+ //服务工单督办过程
|
|
|
+ if (dsSendSuperviseProcessInfo != null)
|
|
|
+ await _pusherProviderService.SendSuperviseProcessInfoPusher(dsSendSuperviseProcessInfo, default);
|
|
|
+
|
|
|
+ //服务工单督办过程
|
|
|
+ if (dsSendSuperviseResultInfo != null)
|
|
|
+ await _pusherProviderService.SendSuperviseResultInfoPusher(dsSendSuperviseResultInfo, default);
|
|
|
+
|
|
|
+ //工单发起甄别
|
|
|
+ if (dsScreenCaseInfoSend != null)
|
|
|
+ await _pusherProviderService.ScreenCaseInfoSendPusher(dsScreenCaseInfoSend, default);
|
|
|
+
|
|
|
+ //服务工单申请延时
|
|
|
+ if (dsDelayCaseInfoSend != null)
|
|
|
+ await _pusherProviderService.DelayCaseInfoSendPusher(dsDelayCaseInfoSend, default);
|
|
|
+
|
|
|
+ //政民互动提交公开
|
|
|
+ if (dsZmhdCaseInfoPublic != null)
|
|
|
+ await _pusherProviderService.ZmhdCaseInfoPublicPusher(dsZmhdCaseInfoPublic, default);
|
|
|
+
|
|
|
+ //服务工单受理推送工单
|
|
|
+ if (dsSubmitCaseInfos != null && dsSubmitCaseInfos.Count > 0)
|
|
|
+ await _pusherProviderService.ProvinceOrderCreatedPusher(dsSubmitCaseInfos, default);
|
|
|
+
|
|
|
+ //服务工单交办处理过程
|
|
|
+ if (dsGetCaseProcessReceive != null)
|
|
|
+ await _pusherProviderService.GetCaseProcessReceivePusher(dsGetCaseProcessReceive, default);
|
|
|
+
|
|
|
+ //服务工单交办处理结果
|
|
|
+ if (dsGetCaseResultReceive != null)
|
|
|
+ await _pusherProviderService.GetCaseResultReceivePusher(dsGetCaseResultReceive, default);
|
|
|
+
|
|
|
+ //服务工单交办评价请求
|
|
|
+ if (dsGetVisitInfoReceive != null)
|
|
|
+ await _pusherProviderService.GetVisitInfoReceivePusher(dsGetVisitInfoReceive, default);
|
|
|
+
|
|
|
+ // 挂电话推送--批量推送
|
|
|
+ if (dsSubmitCaseRecords != null && dsSubmitCaseRecords.Count > 0)
|
|
|
+ await _pusherProviderService.SubmitCaseRecordPusher(dsSubmitCaseRecords, default);
|
|
|
+
|
|
|
+ // 统计数据
|
|
|
+ if (dsSubmitCaseTotal != null)
|
|
|
+ await _pusherProviderService.SubmitCaseTotalPusher(dsSubmitCaseTotal, default);
|
|
|
+
|
|
|
+ // 上报补充诉求
|
|
|
+ if (dsSupplyCaseInfoSend != null)
|
|
|
+ await _pusherProviderService.SupplyCaseInfoSendPusher(dsSupplyCaseInfoSend, default);
|
|
|
+
|
|
|
+ // 服务工单撤单
|
|
|
+ if (dsRevokeCaseInfo != null)
|
|
|
+ await _pusherProviderService.SendRevokeCaseInfoPusher(dsRevokeCaseInfo, default);
|
|
|
+
|
|
|
+ // 服务工单催单
|
|
|
+ if (dsRemindCaseInfo != null)
|
|
|
+ await _pusherProviderService.SendRemindCaseInfoPusher(dsRemindCaseInfo, default);
|
|
|
+
|
|
|
+ // 知识库上报
|
|
|
+ if (dsGetKnowledgeInfoSend != null)
|
|
|
+ await _pusherProviderService.GetKnowledgeInfoSendPusher(dsGetKnowledgeInfoSend, default);
|
|
|
+
|
|
|
+ // 知识库变更
|
|
|
+ if (dsGetKnowledgeInfoUpdate != null)
|
|
|
+ await _pusherProviderService.GetKnowledgeInfoUpdatePusher(dsGetKnowledgeInfoUpdate, default);
|
|
|
+
|
|
|
+ // 知识库下架
|
|
|
+ if (dsGetKnowledgeInfoAbandon != null)
|
|
|
+ await _pusherProviderService.GetKnowledgeInfoAbandonPusher(dsGetKnowledgeInfoAbandon, default);
|
|
|
+
|
|
|
+ // 实时服务上报
|
|
|
+ if (dsSendRealTimeStatus != null)
|
|
|
+ await _pusherProviderService.SendRealTimeStatusPusher(dsSendRealTimeStatus, default);
|
|
|
+
|
|
|
+
|
|
|
+ //服务工单处理过程
|
|
|
+ if (submitCaseProcesses != null && submitCaseProcesses.Count > 0)
|
|
|
+ {
|
|
|
+ await _pusherProviderService.SubmitCaseProcessPusher(submitCaseProcesses, default);
|
|
|
+ // await _mediator.Publish(new SubmitCaseProcessNotification(submitCaseProcesses));
|
|
|
+ }
|
|
|
+
|
|
|
+ //服务工单处理结果
|
|
|
+ if (submitCaseResults != null && submitCaseResults.Count > 0)
|
|
|
+ {
|
|
|
+ await _pusherProviderService.SubmitCaseResultPusher(submitCaseResults, default);
|
|
|
+ // await _mediator.Publish(new SubmitCaseResultNotification(submitCaseResults));
|
|
|
+ }
|
|
|
+
|
|
|
+ //服务工单回访评价
|
|
|
+ if (submitVisitInfos != null && submitVisitInfos.Count > 0)
|
|
|
+ {
|
|
|
+ await _pusherProviderService.SubmitVisitInfoPusher(submitVisitInfos, default);
|
|
|
+ // await _mediator.Publish(new SubmitVisitInfoNotification(submitVisitInfos));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //附件上传处理
|
|
|
+ if (getCaseMaterialInfos != null && getCaseMaterialInfos.Count > 0)
|
|
|
+ {
|
|
|
+ await _pusherProviderService.GetCaseMaterialInfoPusher(getCaseMaterialInfos, default);
|
|
|
+ // await _mediator.Publish(new GetCaseMaterialInfoNotification(getCaseMaterialInfos));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ isContinue = false;
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ #region 拉取12315工单办理信息
|
|
|
+ //查询是否存在需要拉取办理信息的工单
|
|
|
+ var listSendCaseInfo = await _sendCaseInfoRepository
|
|
|
+ .Queryable()
|
|
|
+ .OrderBy(p => p.CreationTime)
|
|
|
+ .ToListAsync();
|
|
|
+ //处理数据
|
|
|
+ if (listSendCaseInfo != null && listSendCaseInfo.Count > 0)
|
|
|
+ {
|
|
|
+ foreach (var item in listSendCaseInfo)
|
|
|
+ await _pusherProviderService.GetCaseDistrecordSendPusher(item.CaseSerial, default);// _mediator.Publish(new GetCaseDistrecordSendNotification(item.CaseSerial));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ isContinue = false;
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ //如果数据都为空,停止
|
|
|
+ if (!isContinue)
|
|
|
+ await Task.Delay(time, stoppingToken);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|