|
|
@@ -22,6 +22,7 @@ using System.Drawing;
|
|
|
using System.Linq;
|
|
|
using System.Threading;
|
|
|
using System.Threading.Tasks;
|
|
|
+using System.Windows.Controls;
|
|
|
using System.Windows.Forms;
|
|
|
|
|
|
namespace DW5S.App.UserControl
|
|
|
@@ -116,10 +117,10 @@ namespace DW5S.App.UserControl
|
|
|
if (settings == null)
|
|
|
{
|
|
|
mapControl1.UseLocalDb();
|
|
|
- return;
|
|
|
+
|
|
|
}
|
|
|
|
|
|
- OnSysSetingsChanged(settings);
|
|
|
+ //OnSysSetingsChanged(settings);
|
|
|
|
|
|
try
|
|
|
{
|
|
|
@@ -154,79 +155,79 @@ namespace DW5S.App.UserControl
|
|
|
txtTimeCho_SelectedIndexChanged(null, null);
|
|
|
WaitHelper.CloseForm();
|
|
|
|
|
|
- await Task.Run(() =>
|
|
|
- {
|
|
|
- var refreshPosTime = AppConfigHelper.Get("RefreshPosTime", 5);
|
|
|
- if (refreshPosTime < 1)
|
|
|
- refreshPosTime = 5;
|
|
|
- refreshPosTime = refreshPosTime * 1000;
|
|
|
- while (!this.IsDisposed && !this.Disposing)
|
|
|
- {
|
|
|
- try
|
|
|
- {
|
|
|
- //表格处于筛选状态,不刷新数据
|
|
|
- if (!string.IsNullOrWhiteSpace(gridView2.FindFilterText) || !string.IsNullOrWhiteSpace(gridView2.FilterPanelText))
|
|
|
- {
|
|
|
- continue;
|
|
|
- }
|
|
|
- var currentTask = gridView1.GetFocusedRow() as TaskViewModel;
|
|
|
- IQueryable<PosResViewModel> refreshQuery = null;
|
|
|
- List<PosResViewModel> updateItems = null;
|
|
|
- long? currentFreq = null;
|
|
|
- if (txtFrequpMHz.EditValue != null)
|
|
|
- currentFreq = Convert.ToInt64(txtFrequpMHz.EditValue);
|
|
|
- List<long> freqs = null;
|
|
|
- lock (this)
|
|
|
- {
|
|
|
- refreshQuery = cache.AsQueryable();
|
|
|
- refreshQuery = refreshQuery.Where(p => p.TaskID == currentTask.Id);
|
|
|
- freqs = refreshQuery.Select(p => p.FrequpHz).Distinct().OrderBy(p => p).ToList();
|
|
|
- if (currentFreq != null)
|
|
|
- refreshQuery = refreshQuery.Where(p => p.FrequpHz == currentFreq.Value);
|
|
|
-
|
|
|
- if (!btnIncludeInvalidate.Checked)
|
|
|
- {
|
|
|
- refreshQuery = refreshQuery.Where(p => p.PosLon != 999);
|
|
|
- }
|
|
|
- updateItems = refreshQuery.Reverse().ToList();
|
|
|
- cache.Clear();
|
|
|
- }
|
|
|
-
|
|
|
- var items = txtFrequpMHz.Properties.Items.Where(p => p.Value != null).Select(t => Convert.ToInt64(t.Value)).ToList();
|
|
|
- foreach (var item in freqs)
|
|
|
- {
|
|
|
- if (!items.Contains(item))
|
|
|
- {
|
|
|
- this.Invoke(new Action(() =>
|
|
|
- {
|
|
|
- this.txtFrequpMHz.Properties.Items.Add(new ImageComboBoxItem((item / 1e6).ToString("f3"), item));
|
|
|
- }));
|
|
|
- }
|
|
|
- }
|
|
|
- if (txtTimeCho.Text == "自定义") continue;
|
|
|
- if (!updateItems.Any()) continue;
|
|
|
- var hours = Convert.ToInt32(txtTimeCho.EditValue);
|
|
|
- var ds = this.gridHomePosRes.DataSource as List<PosResViewModel>;
|
|
|
- ds.InsertRange(0, updateItems);
|
|
|
- var max = ds.First().SigTime;
|
|
|
- ds.RemoveAll(p => (max - p.SigTime).TotalHours > hours);
|
|
|
- this.Invoke(new Action(() =>
|
|
|
- {
|
|
|
- mapControl1.DelPosItem<PosResViewModel>(p => (max - p.SigTime).TotalHours > hours);
|
|
|
- mapControl1.AddPosItems(updateItems);
|
|
|
- gridView2.RefreshData();
|
|
|
- }));
|
|
|
- }
|
|
|
- catch (Exception ex)
|
|
|
- {
|
|
|
- IocContainer.Logger.Error(ex, "刷新定位点出错");
|
|
|
- }
|
|
|
- finally
|
|
|
- {
|
|
|
- Thread.Sleep(refreshPosTime);
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
+ // await Task.Run(() =>
|
|
|
+ //{
|
|
|
+ // var refreshPosTime = AppConfigHelper.Get("RefreshPosTime", 5);
|
|
|
+ // if (refreshPosTime < 1)
|
|
|
+ // refreshPosTime = 5;
|
|
|
+ // refreshPosTime = refreshPosTime * 1000;
|
|
|
+ // while (!this.IsDisposed && !this.Disposing)
|
|
|
+ // {
|
|
|
+ // try
|
|
|
+ // {
|
|
|
+ // //表格处于筛选状态,不刷新数据
|
|
|
+ // if (!string.IsNullOrWhiteSpace(gridView2.FindFilterText) || !string.IsNullOrWhiteSpace(gridView2.FilterPanelText))
|
|
|
+ // {
|
|
|
+ // continue;
|
|
|
+ // }
|
|
|
+ // var currentTask = gridView1.GetFocusedRow() as TaskViewModel;
|
|
|
+ // IQueryable<PosResViewModel> refreshQuery = null;
|
|
|
+ // List<PosResViewModel> updateItems = null;
|
|
|
+ // long? currentFreq = null;
|
|
|
+ // if (txtFrequpMHz.EditValue != null)
|
|
|
+ // currentFreq = Convert.ToInt64(txtFrequpMHz.EditValue);
|
|
|
+ // List<long> freqs = null;
|
|
|
+ // lock (this)
|
|
|
+ // {
|
|
|
+ // refreshQuery = cache.AsQueryable();
|
|
|
+ // refreshQuery = refreshQuery.Where(p => p.TaskID == currentTask.Id);
|
|
|
+ // freqs = refreshQuery.Select(p => p.FrequpHz).Distinct().OrderBy(p => p).ToList();
|
|
|
+ // if (currentFreq != null)
|
|
|
+ // refreshQuery = refreshQuery.Where(p => p.FrequpHz == currentFreq.Value);
|
|
|
+
|
|
|
+ // if (!btnIncludeInvalidate.Checked)
|
|
|
+ // {
|
|
|
+ // refreshQuery = refreshQuery.Where(p => p.PosLon != 999);
|
|
|
+ // }
|
|
|
+ // updateItems = refreshQuery.Reverse().ToList();
|
|
|
+ // cache.Clear();
|
|
|
+ // }
|
|
|
+
|
|
|
+ // var items = txtFrequpMHz.Properties.Items.Where(p => p.Value != null).Select(t => Convert.ToInt64(t.Value)).ToList();
|
|
|
+ // foreach (var item in freqs)
|
|
|
+ // {
|
|
|
+ // if (!items.Contains(item))
|
|
|
+ // {
|
|
|
+ // this.Invoke(new Action(() =>
|
|
|
+ // {
|
|
|
+ // this.txtFrequpMHz.Properties.Items.Add(new ImageComboBoxItem((item / 1e6).ToString("f3"), item));
|
|
|
+ // }));
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // if (txtTimeCho.Text == "自定义") continue;
|
|
|
+ // if (!updateItems.Any()) continue;
|
|
|
+ // var hours = Convert.ToInt32(txtTimeCho.EditValue);
|
|
|
+ // var ds = this.gridHomePosRes.DataSource as List<PosResViewModel>;
|
|
|
+ // ds.InsertRange(0, updateItems);
|
|
|
+ // var max = ds.First().SigTime;
|
|
|
+ // ds.RemoveAll(p => (max - p.SigTime).TotalHours > hours);
|
|
|
+ // this.Invoke(new Action(() =>
|
|
|
+ // {
|
|
|
+ // mapControl1.DelPosItem<PosResViewModel>(p => (max - p.SigTime).TotalHours > hours);
|
|
|
+ // mapControl1.AddPosItems(updateItems);
|
|
|
+ // gridView2.RefreshData();
|
|
|
+ // }));
|
|
|
+ // }
|
|
|
+ // catch (Exception ex)
|
|
|
+ // {
|
|
|
+ // IocContainer.Logger.Error(ex, "刷新定位点出错");
|
|
|
+ // }
|
|
|
+ // finally
|
|
|
+ // {
|
|
|
+ // Thread.Sleep(refreshPosTime);
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ //});
|
|
|
}
|
|
|
|
|
|
private async Task<PageData> LoadPageData(PageQueryDto arg)
|
|
|
@@ -242,6 +243,9 @@ namespace DW5S.App.UserControl
|
|
|
}
|
|
|
private async Task<PageData> LoadPageDataPos(PageQueryDto arg)
|
|
|
{
|
|
|
+ listPos.Clear();
|
|
|
+ gridView2.RefreshData();
|
|
|
+ mapControl1.SetPosDataSource(new List<PosResViewModel>() );
|
|
|
if (tsk == null) return null;
|
|
|
var repsPos = IocContainer.UnitOfWork.OfLong<PosRes>();
|
|
|
var queryable = repsPos.AsQueryable();
|
|
|
@@ -269,9 +273,10 @@ namespace DW5S.App.UserControl
|
|
|
}
|
|
|
queryable = queryable.OrderByDescending(p => p.SigTime).ThenBy(p => p.FrequpHz);
|
|
|
var pageData = await repsPos.GetPageData(arg, queryable);
|
|
|
- listPos.Clear();
|
|
|
+
|
|
|
listPos.AddRange(pageData.Data.To<List<PosResViewModel>>());
|
|
|
gridView2.RefreshData();
|
|
|
+ mapControl1.SetPosDataSource(listPos);
|
|
|
return pageData;
|
|
|
}
|
|
|
private void GridView2_ColumnFilterChanged(object sender, EventArgs e)
|
|
|
@@ -332,7 +337,6 @@ namespace DW5S.App.UserControl
|
|
|
}
|
|
|
private async void GridView1_FocusedRowObjectChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowObjectChangedEventArgs e)
|
|
|
{
|
|
|
- gridHomePosRes.DataSource = new List<PosResViewModel>();
|
|
|
mapControl1.DelFixedImg("Sat");
|
|
|
mapControl1.DelFixedImg("Tx");
|
|
|
tsk = (e.Row as TaskViewModel);
|
|
|
@@ -498,11 +502,11 @@ namespace DW5S.App.UserControl
|
|
|
gridView1.FocusedRowHandle = 0;
|
|
|
|
|
|
}
|
|
|
- else
|
|
|
+ else
|
|
|
{
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
@@ -587,10 +591,11 @@ namespace DW5S.App.UserControl
|
|
|
if (!DxHelper.MsgBoxHelper.ShowConfirm($"删除任务[{tsk.TaskName}]?"))
|
|
|
return;
|
|
|
var unitOfWork = IocContainer.UnitOfWork;
|
|
|
- var repsTask = unitOfWork.Of<TaskInfo>();
|
|
|
- await repsTask.DeleteAsync(p => p.Id == tsk.Id);
|
|
|
var repsTaskSig = unitOfWork.Of<TaskSig>();
|
|
|
await repsTaskSig.DeleteAsync(p => p.TaskInfoID == tsk.Id);
|
|
|
+
|
|
|
+ var repsTask = unitOfWork.Of<TaskInfo>();
|
|
|
+ await repsTask.DeleteAsync(p => p.Id == tsk.Id);
|
|
|
await unitOfWork.SaveAsync();
|
|
|
gridView1.DeleteSelectedRows();
|
|
|
|