TANG JIANG před 1 rokem
rodič
revize
a8d8cca878

+ 7 - 7
src/Sharing.Api/Controllers/HotlineMessageReceiveController.cs

@@ -332,7 +332,7 @@ namespace Sharing.Api.Controllers
             if (dto.Source != ESource.ProvinceStraight)
             {
                 var submitCaseInfo = await _provinceService.InitData(dto);
-                await _mediator.Publish(new OrderCreatedNotification(submitCaseInfo));
+                //await _mediator.Publish(new OrderCreatedNotification(submitCaseInfo));
 
                 //如果是12315市场监管局受理单 推送扩展信息
                 if (dto.OrderType == EOrderType.MarketSupervisionBy12315)
@@ -356,7 +356,7 @@ namespace Sharing.Api.Controllers
             if (dto.Source != ESource.ProvinceStraight)
             {
                 var submitCaseInfo = await _provinceService.InitData(dto);
-                await _mediator.Publish(new OrderCreatedNotification(submitCaseInfo));
+                //await _mediator.Publish(new OrderCreatedNotification(submitCaseInfo));
             }
         }
 
@@ -441,8 +441,8 @@ namespace Sharing.Api.Controllers
             if (dto != null && dto.Order != null && !dto.Order.IsProvince)
             {
                 //推送工单信息
-                var submitCaseInfo = await _provinceService.InitData(dto.Order);
-                await _mediator.Publish(new OrderCreatedNotification(submitCaseInfo));
+                //var submitCaseInfo = await _provinceService.InitData(dto.Order);
+                //await _mediator.Publish(new OrderCreatedNotification(submitCaseInfo));
 
             }
             //推送服务工单处理信息
@@ -476,9 +476,9 @@ namespace Sharing.Api.Controllers
                 if (!string.IsNullOrEmpty(record.Id))
                     recordList.Add(record);
             }
-            if (recordList != null && recordList.Count > 0)
-                //信息上报
-                await _mediator.Publish(new SubmitCaseRecordNotification(recordList));
+            //if (recordList != null && recordList.Count > 0)
+            //    //信息上报
+            //    await _mediator.Publish(new SubmitCaseRecordNotification(recordList));
         }
 
         /// <summary>

+ 8 - 0
src/Sharing.Api/ProvinceService.cs

@@ -268,6 +268,10 @@ namespace Sharing.Api
             var data = _mapper.Map<SubmitCaseProcess>(dto);
 
             data.TacheName = "70:" + data.DeptName;
+            if (string.IsNullOrEmpty(data.CaseSerial))
+            {
+                data.CaseSerial = dto.Order.No;
+            }
             //将上报信息写入本地库
             data.Id = await _submitCaseProcessRepository.AddAsync(data);
 
@@ -296,6 +300,10 @@ namespace Sharing.Api
             data.ConcactType = "40";
             data.FinishType = "1";
             data.HandleTimeLong = 0;
+            if (string.IsNullOrEmpty(data.CaseSerial))
+            {
+                data.CaseSerial = dto.Order.No;
+            }
             //将上报信息写入本地库
             data.Id = await _submitCaseResultRepository.AddAsync(data);
 

+ 0 - 101
src/Sharing.Api/PushDataBgService.cs

@@ -1,101 +0,0 @@
-using MediatR;
-using Sharing.Notifications.HuiJu;
-using Sharing.Province.HuiJu.Send;
-using Sharing.Province.Other;
-using XF.Domain.Dependency;
-
-namespace Sharing.Api
-{
-    /// <summary>
-    /// 后台定时执行推送
-    /// </summary>
-    public class PushDataBgService : BackgroundService
-    {
-        private readonly int nSleep = 1 * 60 * 1000;//1分钟运行一次
-        private readonly ILogger<PushDataBgService> _logger;
-        private readonly IMediator _mediator;
-
-        private readonly IWaitingPushDataRepository _waitingPushDataRepository;
-
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="logger"></param>
-        /// <param name="mediator"></param>
-        /// <param name="waitingPushDataRepository"></param>
-        public PushDataBgService(ILogger<PushDataBgService> logger, IMediator mediator, IWaitingPushDataRepository waitingPushDataRepository)
-        {
-            _logger = logger;
-            _mediator = mediator;
-            _waitingPushDataRepository = waitingPushDataRepository;
-        }
-
-        /// <summary>
-        /// 任务的代码 
-        /// </summary>
-        /// <param name="stoppingToken"></param>
-        /// <returns></returns>
-        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
-        {
-            while (!stoppingToken.IsCancellationRequested)
-            {
-                await PushData();
-                await Task.Delay(nSleep, stoppingToken);
-            }
-        }
-
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <returns></returns>
-        public async Task PushData()
-        {
-            //查询待推送数据
-            var listData = await _waitingPushDataRepository
-                   .Queryable()
-                   .OrderByDescending(p => p.Priority)
-                   .ToListAsync();
-            if (listData != null&& listData.Count>0)
-            {
-                List<SubmitCaseProcess> submitCaseProcesses = new(); //服务工单处理过程
-                List<SubmitCaseResult> submitCaseResults = new(); //服务工单处理结果
-                List<SubmitVisitInfo> submitVisitInfos = new(); //服务工单回访评价
-
-                //根据查询出来数据组装推送数据
-                foreach (var item in listData)
-                {
-                    switch (item.ServiceInterface)
-                    {
-                        case "SubmitCaseProcess"://服务工单处理过程
-                            var caseProcess = System.Text.Json.JsonSerializer.Deserialize<SubmitCaseProcess>(item.Data);
-                            if (caseProcess != null) submitCaseProcesses.Add(caseProcess);
-                            break;
-                        case "SubmitCaseResult": //服务工单处理结果
-                            var caseResult = System.Text.Json.JsonSerializer.Deserialize<SubmitCaseResult>(item.Data);
-                            if (caseResult != null) submitCaseResults.Add(caseResult);
-                            break;
-                        case "SubmitVisitInfo"://服务工单回访评价
-                            var visitInfo = System.Text.Json.JsonSerializer.Deserialize<SubmitVisitInfo>(item.Data);
-                            if (visitInfo != null) submitVisitInfos.Add(visitInfo);
-                            break;
-                        default:
-                            break;
-                    }
-                }
-
-                //推送对应消息
-                //服务工单处理过程
-                if (submitCaseProcesses != null && submitCaseProcesses.Count > 0)
-                    await _mediator.Publish(new SubmitCaseProcessNotification(submitCaseProcesses));
-
-                //服务工单处理结果
-                if (submitCaseResults != null && submitCaseResults.Count > 0)
-                    await _mediator.Publish(new SubmitCaseResultNotification(submitCaseResults));
-
-                //服务工单回访评价
-                if (submitVisitInfos != null && submitVisitInfos.Count > 0)
-                    await _mediator.Publish(new SubmitVisitInfoNotification(submitVisitInfos));
-            }
-        }
-    }
-}

+ 0 - 1
src/Sharing.Api/StartupExtensions.cs

@@ -98,7 +98,6 @@ internal static class StartupExtensions
 
         //mq
         services.AddMq(configuration);
-        services.AddHostedService<PushDataBgService>();
         return builder.Build();
     }
 

+ 1 - 1
src/Sharing.Api/config/appsettings.Development.json

@@ -10,7 +10,7 @@
     "Origins": [ "http://localhost:8888", "http://admin.hotline.fw.com", "http://hotline.fw.com" ]
   },
   "DatabaseConfiguration": {
-    "ApplyDbMigrations": false,
+    "ApplyDbMigrations": true,
     "ApplySeed": false
   },
   "MqConfiguration": {

+ 1 - 1
src/Sharing.Application/Mappers/MapperConfigs.cs

@@ -27,7 +27,7 @@ namespace Sharing.Application.Mappers
                 .Map(d => d.CaseAccord, x => x.Hotspot.ProvinceCode)
                 .Map(d => d.CaseContent, x => x.Content)
                 .Map(d => d.CaseProcessType, x => Convert.ToInt32(x.ProcessType))
-                .Map(d => d.CaseIsSecrect, x => x.IsSecret)
+                .Map(d => d.CaseIsSecrect, x => x.IsSecret ? "1" : "0")
                 .Map(d => d.CaseIsVisit, x => x.ProcessType == Hotline.Share.Enums.Order.EProcessType.Zhiban ? "0" : "1")
                 .Map(d => d.EventDate, x => x.IncidentTime)
                 .Map(d => d.PushType, x => x.PushTypeCode)

+ 87 - 0
src/Sharing.Application/Province/PushDataBgService.cs

@@ -0,0 +1,87 @@
+using MediatR;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Hosting;
+using Sharing.Notifications.HuiJu;
+using Sharing.Province.HuiJu.Send;
+using Sharing.Province.Other;
+
+namespace Sharing.Application.Province
+{
+    public class PushDataBgService : BackgroundService
+    {
+        private readonly IServiceScopeFactory _serviceScopeFactory;
+
+        public PushDataBgService(IServiceScopeFactory serviceScopeFactory)
+        {
+            _serviceScopeFactory = serviceScopeFactory;
+        }
+
+        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<IWaitingPushDataRepository>();
+                var _mediator = scope.ServiceProvider.GetService<IMediator>();
+
+                //查询待推送数据
+                var listData = await _waitingPushDataRepository
+                       .Queryable()
+                       .OrderByDescending(p => p.Priority)
+                       .ToListAsync();
+                if (listData != null && listData.Count > 0)
+                {
+                    List<SubmitCaseProcess> submitCaseProcesses = new(); //服务工单处理过程
+                    List<SubmitCaseResult> submitCaseResults = new(); //服务工单处理结果
+                    List<SubmitVisitInfo> submitVisitInfos = new(); //服务工单回访评价
+
+                    //根据查询出来数据组装推送数据
+                    foreach (var item in listData)
+                    {
+                        switch (item.ServiceInterface)
+                        {
+                            case "SubmitCaseProcess"://服务工单处理过程
+                                var caseProcess = System.Text.Json.JsonSerializer.Deserialize<SubmitCaseProcess>(item.Data);
+                                if (caseProcess != null) submitCaseProcesses.Add(caseProcess);
+                                break;
+                            case "SubmitCaseResult": //服务工单处理结果
+                                var caseResult = System.Text.Json.JsonSerializer.Deserialize<SubmitCaseResult>(item.Data);
+                                if (caseResult != null) submitCaseResults.Add(caseResult);
+                                break;
+                            case "SubmitVisitInfo"://服务工单回访评价
+                                var visitInfo = System.Text.Json.JsonSerializer.Deserialize<SubmitVisitInfo>(item.Data);
+                                if (visitInfo != null) submitVisitInfos.Add(visitInfo);
+                                break;
+                            default:
+                                break;
+                        }
+                    }
+
+                    //推送对应消息
+                    //服务工单处理过程
+                    if (submitCaseProcesses != null && submitCaseProcesses.Count > 0) { }
+                      //  await _mediator.Publish(new SubmitCaseProcessNotification(submitCaseProcesses));
+
+                    //服务工单处理结果
+                    if (submitCaseResults != null && submitCaseResults.Count > 0) { }
+                    //   await _mediator.Publish(new SubmitCaseResultNotification(submitCaseResults));
+
+                    //服务工单回访评价
+                    if (submitVisitInfos != null && submitVisitInfos.Count > 0) { }
+                    //  await _mediator.Publish(new SubmitVisitInfoNotification(submitVisitInfos));
+                }
+                else
+                {
+                    await Task.Delay(time, stoppingToken);
+                }
+
+
+
+            }
+        }
+
+    }
+}

+ 1 - 2
src/Sharing.Province/Handlers/HuiJu/SubmitVisitInfoHandler.cs

@@ -5,7 +5,6 @@ using Sharing.Province.Dtos;
 using Sharing.Province.Dtos.HuiJu.Send;
 using Sharing.Province.HuiJu.Send;
 using Sharing.Province.Other;
-using Sharing.Repository.Province.Other;
 
 namespace Sharing.Province.Handlers.HuiJu
 {
@@ -60,7 +59,7 @@ namespace Sharing.Province.Handlers.HuiJu
             var request = new SubmitVisitInfoRequest();
             foreach (var item in dataReceive)
             {
-                request.ForeachClass(dataReceive);
+                request.ForeachClass(item);
             }
             var data = new SubmitVisitInfoData
             {

+ 1 - 1
src/Sharing.Repository/Province/Other/WaitingPushDataRepository.cs

@@ -4,7 +4,7 @@ using XF.Domain.Dependency;
 
 namespace Sharing.Repository.Province.Other
 {
-    public class WaitingPushDataRepository : BaseRepository<WaitingPushData>, IWaitingPushDataRepository, ISingletonDependency
+    public class WaitingPushDataRepository : BaseRepository<WaitingPushData>, IWaitingPushDataRepository, IScopeDependency
     {
         public WaitingPushDataRepository(ISugarUnitOfWork<SharingDbContext> uow) : base(uow)
         {

+ 7 - 1
src/Sharing/Province/HuiJu/Send/SubmitCaseRecord.cs

@@ -7,8 +7,14 @@ namespace Sharing.Province.HuiJu.Send
     /// 电话记录
     /// </summary>
     [Description("电话记录")]
-    public class SubmitCaseRecord : SendOrderResult
+    public class SubmitCaseRecord : SendBaseResult
     {
+        /// <summary>
+        /// 服务工单编号  
+        /// </summary>
+        [SugarColumn(ColumnDescription = "服务工单编号", ColumnDataType = "varchar(50)",IsNullable =true)]
+        public string? CaseSerial { get; set; }
+
         /// <summary>
         /// 通话记录ID
         /// </summary>

+ 2 - 2
src/Sharing/Province/HuiJu/Send/SubmitCaseResult.cs

@@ -120,8 +120,8 @@ namespace Sharing.Province.HuiJu.Send
         /// <summary>
         /// 工单办理过程中交办单位
         /// </summary>
-        [SugarColumn(ColumnDescription = "工单办理过程中交办单位", ColumnDataType = "varchar(255)")]
-        public string BeiZhu { get; set; }
+        [SugarColumn(ColumnDescription = "工单办理过程中交办单位", ColumnDataType = "varchar(255)", IsNullable = true)]
+        public string? BeiZhu { get; set; }
 
     }
 }