TaskSubmitCaseTotalJob.cs 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. using DataSharing.FwDataExchange;
  2. using DataSharing.Province;
  3. using DataSharing.Share.Consts;
  4. using DataSharing.Share.Dtos.HotlineSetting;
  5. using DataSharing.Share.Dtos.HotlineWeb;
  6. using DataSharing.Share.Dtos.Province.HuiJu;
  7. using DataSharing.Share.Enums;
  8. using Microsoft.Extensions.Logging;
  9. using Quartz;
  10. using XF.Domain.Cache;
  11. using XF.Domain.Repository;
  12. namespace DataSharing.SendTask
  13. {
  14. /// <summary>
  15. ///
  16. /// </summary>
  17. public class TaskSubmitCaseTotalJob : IJob, IDisposable
  18. {
  19. private readonly ILogger<TaskLoadJob> _logger;
  20. private readonly FwClient _fwClient;
  21. private readonly ITypedCache<ConfigurationInformationDto> _configurationInformationCache;
  22. private readonly IChannelConfigurationManager _channelConfigurationManager;
  23. private readonly IRepository<DsSendTask> _dsSendTaskRepository;
  24. /// <summary>
  25. ///
  26. /// </summary>
  27. /// <param name="fwClient"></param>
  28. /// <param name="configurationInformationCache"></param>
  29. /// <param name="channelConfigurationManager"></param>
  30. /// <param name="dsSendTaskRepository"></param>
  31. public TaskSubmitCaseTotalJob( ILogger<TaskLoadJob> logger,FwClient fwClient,
  32. ITypedCache<ConfigurationInformationDto> configurationInformationCache,
  33. IChannelConfigurationManager channelConfigurationManager,
  34. IRepository<DsSendTask> dsSendTaskRepository)
  35. {
  36. _logger = logger;
  37. _fwClient = fwClient;
  38. _configurationInformationCache = configurationInformationCache;
  39. _channelConfigurationManager = channelConfigurationManager;
  40. _dsSendTaskRepository = dsSendTaskRepository;
  41. }
  42. public async Task Execute(IJobExecutionContext context)
  43. {
  44. _logger.LogError($"数据汇聚,进来了时间是{DateTime.Now}");
  45. var data = await _fwClient.RequestNoTokenAsync<SubmitCaseTotalnfoResponse>("api/v1/Order/get-orderurge-count", "Get", null);
  46. var areaInfo = _channelConfigurationManager.GetConfigurationCityCode();
  47. SubmitCaseTotalInfo submitCaseTotal = new()
  48. {
  49. AreaCode = areaInfo.AreaCode,
  50. SubmitDate = Convert.ToDateTime(DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd 00:00:00"))
  51. };
  52. if (data != null && data.code == 0)
  53. {
  54. submitCaseTotal.CBZL = data.result.Totle;
  55. }
  56. var configurationInformation = await _configurationInformationCache.GetAsync(ConstantSettings.ConfigurationInformationCacheKey, context.CancellationToken);
  57. if (configurationInformation != null)
  58. {
  59. submitCaseTotal.SeatNum = configurationInformation.SeatNum;
  60. submitCaseTotal.SeatHwyNum = configurationInformation.SeatHwyNum;
  61. }
  62. #region 处理请求参数
  63. var configProvince = _channelConfigurationManager.GetConfigurationProvince();
  64. var request = new ProvinceListRequest<SubmitCaseTotalInfo>(configProvince.ClientId, configProvince.ClientSecret);
  65. request.SetData(new List<SubmitCaseTotalInfo>() { submitCaseTotal });
  66. var jsonData = request.ToString();
  67. #endregion
  68. //组装参数
  69. DsSendTask dsSendTask = new()
  70. {
  71. TaskPriority = 0,
  72. TaskType = "SubmitCaseTotal",
  73. HttpMethod = "Post",
  74. Path = "submit_case_total",
  75. PlatformSource = EPlatformSource.Province,
  76. FileJson = null,
  77. Request = jsonData,
  78. GenerationTime = null,
  79. PathType = EPathType.HuiJu
  80. };
  81. await _dsSendTaskRepository.AddAsync(dsSendTask, context.CancellationToken);
  82. }
  83. public void Dispose()
  84. {
  85. }
  86. }
  87. }