TaskUpdateOrderSourceJob.cs 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. using DataSharing.FwDataExchange;
  2. using DataSharing.RawData;
  3. using DataSharing.SendTask;
  4. using DataSharing.Share.Dtos.HotlineSetting;
  5. using Hotline.Share.Dtos.Order;
  6. using MapsterMapper;
  7. using Microsoft.Extensions.Logging;
  8. using Quartz;
  9. using SqlSugar;
  10. using XF.Domain.Repository;
  11. namespace DataSharing.Province.SendTask
  12. {
  13. public class TaskUpdateOrderSourceJob : IJob, IDisposable
  14. {
  15. private readonly IMapper _mapper;
  16. private readonly ILogger<TaskUpdateOrderSourceJob> _logger;
  17. private readonly IRepository<DsOrderSend> _dsOrderSendRepository;
  18. private readonly FwClient _fwClient;
  19. private readonly IChannelConfigurationManager _channelConfigurationManager;
  20. public TaskUpdateOrderSourceJob(IMapper mapper,
  21. ILogger<TaskUpdateOrderSourceJob> logger,
  22. IRepository<DsOrderSend> dsOrderSendRepository,
  23. FwClient fwClient,
  24. IChannelConfigurationManager channelConfigurationManager)
  25. {
  26. _mapper = mapper;
  27. _logger = logger;
  28. _dsOrderSendRepository = dsOrderSendRepository;
  29. _fwClient = fwClient;
  30. _channelConfigurationManager = channelConfigurationManager;
  31. }
  32. public async Task Execute(IJobExecutionContext context)
  33. {
  34. var isOpenPush = _channelConfigurationManager.GetConfigurationIsOpenPush();
  35. _logger.LogWarning("是否开启:" + "--------------" + isOpenPush);
  36. if (isOpenPush == true)
  37. {
  38. //查询数据
  39. var items = await _dsOrderSendRepository.Queryable()
  40. .LeftJoin<DsTelCall>((p, o) => p.CallId == o.CallId)
  41. .Where((p, o) => p.FirstSendProvinceTime >= Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 00:00:00"))
  42. && p.FirstSendProvinceTime <= Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 23:59:59")) && p.CaseSourceCode == "RGDH")
  43. .Where((p, o) => p.FirstSendProvinceTime.HasValue && p.HandleState == "办理完成")
  44. .Where((p, o) => o.CallId == null || o.CallId == "")
  45. .OrderByDescending((p, o) => p.CreationTime)
  46. .ToListAsync();
  47. //处理数据
  48. if (items != null && items.Any())
  49. {
  50. _logger.LogWarning("读取到条数:" + "--------------" + items.Count);
  51. List<string> Ids = [];
  52. foreach (var item in items)
  53. {
  54. Ids.Add(item.OrderId);
  55. }
  56. //推送数据
  57. if (Ids != null && Ids.Count > 0)
  58. {
  59. UpdateOrderSourceChannelDto data = new()
  60. {
  61. Ids = Ids,
  62. IsPush = true
  63. };
  64. await _fwClient.RequestNoTokenAsync<HotlineClientResponse>("api/v1/Order/update-order-sourcechannel", "Post", System.Text.Json.JsonSerializer.Serialize(data));
  65. }
  66. }
  67. }
  68. }
  69. public void Dispose()
  70. {
  71. }
  72. }
  73. }