Browse Source

每天晚上23点处理每天办理完成未及时推送办理结果的数据

tangjiang 7 months ago
parent
commit
f209091c7e

+ 10 - 0
src/DataSharing.Host/StartupHelper.cs

@@ -304,6 +304,16 @@ namespace DataSharing.Host
                 //    .WithCronSchedule("0 0 1 * * ?")//0 0 1 * * ?
                 //);
 
+                //每天晚上23点处理每天办理完成未及时推送办理结果的数据
+                var taskRepublishFiledOrdersJobKey = new JobKey("task-republish-filed-orders-job", "task republish filed orders job");
+                d.AddJob<TaskRepublishFiledOrdersJob>(taskRepublishFiledOrdersJobKey);
+                d.AddTrigger(t => t
+                    .WithIdentity("task-republish-filed-orders-job-trigger")
+                    .ForJob(taskRepublishFiledOrdersJobKey)
+                   .StartNow()
+                   .WithCronSchedule("0 0 23 * * ?")//0 0 1 * * ?
+                );
+
             });
 
 

+ 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.92" />
+    <PackageReference Include="Hotline.Share" Version="1.0.94" />
     <PackageReference Include="Portable.BouncyCastle" Version="1.9.0" />
     <PackageReference Include="Quartz.Jobs" Version="3.8.0" />
     <PackageReference Include="RestSharp" Version="110.2.0" />

+ 0 - 13
src/DataSharing/Province/SendTask/IWaitSendTaskRepository.cs

@@ -9,18 +9,5 @@ namespace DataSharing.Province.SendTask
     {
         ISugarQueryable<T> UnionAll<T>(params ISugarQueryable<T>[] queryables) where T : class;
 
-        ///// <summary>
-        ///// 
-        ///// </summary>
-        ///// <param name="t1"></param>
-        ///// <param name="t2"></param>
-        ///// <param name="t3"></param>
-        ///// <param name="t4"></param>
-        ///// <returns></returns>
-        //ISugarQueryable<DsWaitSendTaskDto> UnionAll(ISugarQueryable<DsWaitSendTaskDto> t1,
-        //   ISugarQueryable<DsWaitSendTaskDto> t2,
-        //   ISugarQueryable<DsWaitSendTaskDto> t3,
-        //   ISugarQueryable<DsWaitSendTaskDto> t4,
-        //   ISugarQueryable<DsWaitSendTaskDto> t5);
     }
 }

+ 57 - 0
src/DataSharing/Province/SendTask/TaskRepublishFiledOrdersJob.cs

@@ -0,0 +1,57 @@
+using DataSharing.Province.SendTask.SubmitCaseInfo;
+using DataSharing.Province.SendTask.SubmitCaseResult;
+using DotNetCore.CAP;
+using MapsterMapper;
+using Microsoft.Extensions.Logging;
+using Quartz;
+using SqlSugar;
+using XF.Domain.Repository;
+
+namespace DataSharing.Province.SendTask
+{
+    /// <summary>
+    /// 处理每天办理完成未及时推送办理结果的数据
+    /// </summary>
+    public class TaskRepublishFiledOrdersJob : IJob, IDisposable
+    {
+        private readonly IMapper _mapper;
+        private readonly ILogger<TaskRepublishFiledOrdersJob> _logger;
+        private readonly IRepository<DsSendTaskSubmitCaseInfo> _sendTaskSubmitCaseInfoRepository;
+        private readonly ICapPublisher _capPublisher;
+
+        public TaskRepublishFiledOrdersJob(IMapper mapper,
+            ILogger<TaskRepublishFiledOrdersJob> logger,
+            IRepository<DsSendTaskSubmitCaseInfo> sendTaskSubmitCaseInfoRepository,
+             ICapPublisher capPublisher)
+        {
+            _mapper = mapper;
+            _logger = logger;
+            _sendTaskSubmitCaseInfoRepository = sendTaskSubmitCaseInfoRepository;
+            _capPublisher = capPublisher;
+        }
+
+        /// <summary>
+        /// 查询
+        /// </summary>
+        /// <param name="context"></param>
+        /// <returns></returns>
+        public async Task Execute(IJobExecutionContext context)
+        {
+            //查询推送了受理信息,没有推送工单结果的数据
+            var items = await _sendTaskSubmitCaseInfoRepository.Queryable()
+                  .Where(p => p.FirstTime >= Convert.ToDateTime("2024-08-01"))
+                  .Where(p => SqlFunc.Subqueryable<DsSendTaskSubmitCaseResult>().Where(s => s.ProvinceNo == p.ProvinceNo).NotAny())
+                  .GroupBy(p => p.ProvinceNo)
+                  .Select(p => p.ProvinceNo)
+                  .ToListAsync();
+            if (items.Any())
+                await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineFiledOrdersRepublish, items, cancellationToken: context.CancellationToken);
+        }
+
+        public void Dispose()
+        {
+
+        }
+
+    }
+}

+ 0 - 3
src/DataSharing/Province/SendTask/TaskSubmitCaseInfoJob.cs

@@ -7,7 +7,6 @@ using MapsterMapper;
 using Microsoft.Extensions.Logging;
 using Quartz;
 using System.Text.Json;
-using System.Threading;
 using XF.Domain.Repository;
 
 namespace DataSharing.Province.SendTask
@@ -588,8 +587,6 @@ namespace DataSharing.Province.SendTask
             }
         }
 
-
-
         public void Dispose()
         {