CtrlADTask.cs 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. using DevExpress.CodeParser;
  2. using DevExpress.Mvvm.Native;
  3. using DevExpress.XtraPrinting;
  4. using DW5S.DTO;
  5. using DW5S.Entity;
  6. using DW5S.Repostory;
  7. using DW5S.ViewModel;
  8. using ExtensionsDev;
  9. using Microsoft.EntityFrameworkCore;
  10. using System;
  11. using System.Collections.Generic;
  12. using System.Linq;
  13. using System.Threading.Tasks;
  14. using XdCxRhDW5S.ViewModel;
  15. namespace DW5S.App.UserControl
  16. {
  17. public partial class CtrlADTask : DevExpress.XtraEditors.XtraUserControl
  18. {
  19. readonly List<ADTaskViewModel> list = new List<ADTaskViewModel>();
  20. readonly List<ADSatChViewMode> AdSatChViews = new List<ADSatChViewMode>();
  21. public CtrlADTask()
  22. {
  23. InitializeComponent();
  24. }
  25. private async void CtrlRefTask_Load(object sender, EventArgs e)
  26. {
  27. try
  28. {
  29. gridRefTask.UseDefault(list).UseMultiSelect().UseRowNumber()
  30. .HideColumn(nameof(ADTaskViewModel.Id));
  31. var sigList = await GetSigInfos();
  32. this.txtSig.UseDefault(showClearBtn: true).SetData(sigList, displayField: nameof(SigViewModel.FreqDownDis)).UseDoubleClickToSelectAll();
  33. var taskList = await Query();
  34. list.AddRange(taskList);
  35. gridView1.RefreshData();
  36. gridView1.BestFitColumns();
  37. }
  38. catch (Exception ex)
  39. {
  40. IocContainer.Logger.Error(ex, "查询采集任务信息异常");
  41. DxHelper.MsgBoxHelper.ShowError("查询采集任务信息异常");
  42. }
  43. }
  44. private async Task<List<SigViewModel>> GetSigInfos()
  45. {
  46. var unitOfWork = IocContainer.UnitOfWork;
  47. var sigInfos = await unitOfWork.Of<SigInfo>().GetAllAsync(p => p.FreqUpHz);
  48. var sigList = sigInfos.OrderBy(i => i.SigType).OrderBy(i => i.FreqDownHz).To<List<SigViewModel>>();
  49. return sigList;
  50. }
  51. private async Task<List<SatViewModel>> GetSats()
  52. {
  53. var unitOfWork = IocContainer.UnitOfWork;
  54. var reps = unitOfWork.Of<SatInfo>();
  55. var res = await reps.GetAllAsync();
  56. return res.OrderBy(s => s.SatName).To<List<SatViewModel>>();
  57. }
  58. private async Task<List<ADTaskViewModel>> Query(SigViewModel sigView = null)
  59. {
  60. List<ADTaskViewModel> taskList = new List<ADTaskViewModel>();
  61. var unitOfWork = IocContainer.UnitOfWork;
  62. var adCards = await unitOfWork.Of<AdCard>().AsQueryable().Where(p => p.Enable == true)
  63. .Include(p => p.AdChannels)
  64. .OrderByDescending(p => p.Name).ToListAsync();
  65. var sats = await GetSats();
  66. List<ADSatChViewMode> adSatChViews = new List<ADSatChViewMode>();
  67. foreach (var adCard in adCards)
  68. {
  69. foreach (var adChannel in adCard.AdChannels)
  70. {
  71. var satinfo = sats.FirstOrDefault(c => c.Id == adChannel.SatInfoID);
  72. if (adChannel.Enable == true && satinfo != null)
  73. {
  74. ADSatChViewMode mode = new ADSatChViewMode()
  75. {
  76. Channel = adChannel.ChNum,
  77. ClockerType = adCard.ClockerType,
  78. ClockFreq = adCard.ClockFreq,
  79. DdcFreq = adCard.DdcFreq,
  80. Mutil = adCard.Mutil,
  81. SatCode = satinfo.SatCode,
  82. SatLon = satinfo.SatLon,
  83. SatName = satinfo.SatName,
  84. TriggerMode = adCard.TriggerMode,
  85. };
  86. adSatChViews.Add(mode);
  87. }
  88. }
  89. }
  90. var chItems = adCards.SelectMany(a => a.AdChannels).Where(s => s.Enable == true).ToList();
  91. var sigList = await GetSigInfos();
  92. foreach (var sigItem in sigList)
  93. {
  94. if (sigView != null && sigView.Id != sigItem.Id)
  95. {
  96. continue;
  97. }
  98. var adTask = sigItem.To<ADTaskViewModel>();
  99. adTask.Sat = string.Join(",", adSatChViews.ToList().Select(s => s.Sat));
  100. taskList.Add(adTask);
  101. }
  102. AdSatChViews.Clear();
  103. AdSatChViews.AddRange(adSatChViews);
  104. return taskList;
  105. }
  106. private async void btnSerach_Click(object sender, EventArgs e)
  107. {
  108. try
  109. {
  110. var sigView = (txtSig.EditValue as SigViewModel);
  111. var taskList = await Query(sigView);
  112. list.Clear();
  113. list.AddRange(taskList);
  114. gridView1.RefreshData();
  115. }
  116. catch (Exception ex)
  117. {
  118. IocContainer.Logger.Error(ex, "查询采集任务信息异常");
  119. DxHelper.MsgBoxHelper.ShowError("查询采集任务信息异常");
  120. }
  121. }
  122. private async void btnStartaAD_Click(object sender, EventArgs e)
  123. {
  124. try
  125. {
  126. List<AdCard> adCard = new List<AdCard>();
  127. var res = await HttpHelper.PostRequestAsync<List<AdCard>>("http://127.0.0.1:7070/api/Ad/StartAd", adCard);
  128. IocContainer.Logger.Information("启动采集任务成功");
  129. }
  130. catch (Exception ex)
  131. {
  132. IocContainer.Logger.Error(ex, "启动采集任务异常");
  133. DxHelper.MsgBoxHelper.ShowError("启动采集任务异常");
  134. }
  135. }
  136. }
  137. }