wyq преди 3 месеца
родител
ревизия
d122dbae51
променени са 5 файла, в които са добавени 483 реда и са изтрити 102 реда
  1. 31 3
      DW5S.App/UserControl/CtrlCgRes.Designer.cs
  2. 57 49
      DW5S.App/UserControl/CtrlCgRes.cs
  3. 1 1
      DW5S.App/UserControl/CtrlRefCgRes.cs
  4. 0 49
      DW5S.Entity/CgRes.cs
  5. 394 0
      DW5S.ViewModel/CgResViewModel.cs

+ 31 - 3
DW5S.App/UserControl/CtrlCgRes.Designer.cs

@@ -47,6 +47,8 @@ namespace DW5S.App.UserControl
             layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+            ctrlPage1 = new CtrlPage();
+            layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
             ((System.ComponentModel.ISupportInitialize)layoutControl1).BeginInit();
             layoutControl1.SuspendLayout();
             ((System.ComponentModel.ISupportInitialize)gridCg).BeginInit();
@@ -66,10 +68,12 @@ namespace DW5S.App.UserControl
             ((System.ComponentModel.ISupportInitialize)layoutControlItem6).BeginInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlItem1).BeginInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlItem4).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem5).BeginInit();
             SuspendLayout();
             // 
             // layoutControl1
             // 
+            layoutControl1.Controls.Add(ctrlPage1);
             layoutControl1.Controls.Add(gridCg);
             layoutControl1.Controls.Add(txtTimeCho);
             layoutControl1.Controls.Add(txtStartTime);
@@ -90,7 +94,7 @@ namespace DW5S.App.UserControl
             gridCg.Location = new System.Drawing.Point(2, 26);
             gridCg.MainView = gridView1;
             gridCg.Name = "gridCg";
-            gridCg.Size = new System.Drawing.Size(1196, 437);
+            gridCg.Size = new System.Drawing.Size(1196, 407);
             gridCg.TabIndex = 4;
             gridCg.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { gridView1 });
             // 
@@ -181,7 +185,7 @@ namespace DW5S.App.UserControl
             // 
             layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
             layoutControlGroup1.GroupBordersVisible = false;
-            layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem2, layoutControlItem3, itemStart, itemEnd, layoutControlItem6, layoutControlItem1, layoutControlItem4 });
+            layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem2, layoutControlItem3, itemStart, itemEnd, layoutControlItem6, layoutControlItem1, layoutControlItem4, layoutControlItem5 });
             layoutControlGroup1.Name = "Root";
             layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
             layoutControlGroup1.Size = new System.Drawing.Size(1200, 465);
@@ -192,7 +196,7 @@ namespace DW5S.App.UserControl
             layoutControlItem2.Control = gridCg;
             layoutControlItem2.Location = new System.Drawing.Point(0, 24);
             layoutControlItem2.Name = "layoutControlItem2";
-            layoutControlItem2.Size = new System.Drawing.Size(1200, 441);
+            layoutControlItem2.Size = new System.Drawing.Size(1200, 411);
             layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
             layoutControlItem2.TextVisible = false;
             // 
@@ -295,6 +299,27 @@ namespace DW5S.App.UserControl
             layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
             layoutControlItem4.TextVisible = false;
             // 
+            // ctrlPage1
+            // 
+            ctrlPage1.Location = new System.Drawing.Point(2, 437);
+            ctrlPage1.Margin = new System.Windows.Forms.Padding(0);
+            ctrlPage1.MinimumSize = new System.Drawing.Size(100, 26);
+            ctrlPage1.Name = "ctrlPage1";
+            ctrlPage1.Size = new System.Drawing.Size(1196, 26);
+            ctrlPage1.TabIndex = 12;
+            // 
+            // layoutControlItem5
+            // 
+            layoutControlItem5.Control = ctrlPage1;
+            layoutControlItem5.Location = new System.Drawing.Point(0, 435);
+            layoutControlItem5.MaxSize = new System.Drawing.Size(0, 30);
+            layoutControlItem5.MinSize = new System.Drawing.Size(104, 30);
+            layoutControlItem5.Name = "layoutControlItem5";
+            layoutControlItem5.Size = new System.Drawing.Size(1200, 30);
+            layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+            layoutControlItem5.TextVisible = false;
+            // 
             // CtrlCgRes
             // 
             AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
@@ -322,6 +347,7 @@ namespace DW5S.App.UserControl
             ((System.ComponentModel.ISupportInitialize)layoutControlItem6).EndInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlItem1).EndInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlItem4).EndInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem5).EndInit();
             ResumeLayout(false);
         }
 
@@ -344,5 +370,7 @@ namespace DW5S.App.UserControl
         private DevExpress.XtraGrid.Views.Grid.GridView searchLookUpEdit1View;
         private DevExpress.XtraEditors.SimpleButton btnDraw;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+        private CtrlPage ctrlPage1;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
     }
 }

+ 57 - 49
DW5S.App/UserControl/CtrlCgRes.cs

@@ -1,60 +1,47 @@
-using DevExpress.Data;
-using DevExpress.XtraCharts;
-using DevExpress.XtraEditors;
-using DevExpress.XtraExport.Helpers;
-using DevExpress.XtraGrid.Columns;
-using DevExpress.XtraGrid.Views.Grid;
+using DevExpress.Mvvm.Native;
+using DevExpress.XtraSpreadsheet.Model;
+using DW5S.DTO;
+using DW5S.Entity;
+using DW5S.Repostory;
+using DW5S.ViewModel;
 using DxHelper;
 using ExtensionsDev;
+using Microsoft.EntityFrameworkCore;
 using System;
 using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
 using System.Diagnostics;
-using System.Drawing;
 using System.IO;
 using System.Linq;
-using System.Text;
-using System.Threading;
 using System.Threading.Tasks;
-using System.Windows.Controls;
-using System.Windows.Documents;
-using System.Windows.Forms;
-using DW5S.App.Model;
-using DW5S.Entity;
-
-using DW5S.Repostory;
-using Serilog;
-using DW5S.Service;
+using XdCxRhDW5S.ViewModel;
 
 namespace DW5S.App.UserControl
 {
     public partial class CtrlCgRes : DevExpress.XtraEditors.XtraUserControl
     {
-        
-        
-
-        List<CgRes> list = new List<CgRes>();
+        List<CgResViewModel> list = new List<CgResViewModel>();
         public CtrlCgRes()
         {
             InitializeComponent();
-           
+            this.layoutControl1.UseDefault();
+            this.ctrlPage1.Compact = false;
+            this.ctrlPage1.AlignRight = true;
+            this.ctrlPage1.ShowGoto = true;
         }
 
         private async void CtrlCgRes_Load(object sender, EventArgs e)
         {
             try
             {
-                layoutControl1.UseDefault();
+                ctrlPage1.SetOnQuery(LoadPageData);
                 txtStartTime.UseDefault();
                 txtEndTime.UseDefault();
-                gridCg.UseDefault(list, showScrollH:true).UseMultiSelect().UseRowNumber().UseDeleteAsync<CgRes>(DelCg);
+                gridCg.UseDefault(list, showScrollH: true).UseMultiSelect().UseRowNumber().UseDeleteAsync<CgRes>(DelCg);
 
-                List<TaskInfo> tskList = new List<TaskInfo>();
                 var unitOfWork = IocContainer.UnitOfWork;
                 var repsTask = unitOfWork.Of<TaskInfo>();
-                tskList.AddRange(await repsTask.GetAllAsync(p => p.UpdateTime));
-                this.txtTask.UseDefault().SetData(tskList, nameof(TaskInfo.TaskName)).UseDoubleClickToSelectAll();
+                var tskLists = await repsTask.GetAllAsync(p => p.UpdateTime);
+                this.txtTask.UseDefault().SetData(tskLists.To<List<TaskViewModel>>(), nameof(TaskViewModel.TaskName)).UseDoubleClickToSelectAll();
 
             }
             catch (Exception ex)
@@ -72,8 +59,10 @@ namespace DW5S.App.UserControl
             {
                 var unitOfWork = IocContainer.UnitOfWork;
                 var repsCg = unitOfWork.OfLong<CgRes>();
-                await repsCg.DeleteAsync(selectedRes);
+                var count = await repsCg.DeleteAsync(selectedRes);
                 await unitOfWork.SaveAsync();
+                ctrlPage1.RefreshData();
+                IocContainer.Logger.Information($"删除选中参估结果,共删除了{count}条参估结果记录");
                 return true;
             }
             catch (Exception ex)
@@ -103,7 +92,7 @@ namespace DW5S.App.UserControl
             }
         }
 
-        private async void btnSearch_Click(object sender, EventArgs e)
+        private void btnSearch_Click(object sender, EventArgs e)
         {
             if (txtTask.EditValue == null)
             {
@@ -133,19 +122,24 @@ namespace DW5S.App.UserControl
                     return;
                 }
             }
-            list = await searchPos();
-            this.gridCg.DataSource = list;
-            gridView1.BestFitColumns();
-            GC.Collect();
+            ctrlPage1.RefreshData();
         }
-        private async Task<List<CgRes>> searchPos()
+        private async Task<PageData> LoadPageData(PageQueryDto arg)
         {
+            var unitOfWork = IocContainer.UnitOfWork;
+            var repsCg = unitOfWork.OfLong<CgRes>();
+            var queryable = repsCg.AsQueryable();
+            int? taskID = ((TaskViewModel)txtTask.EditValue)?.Id;
             try
             {
-                var unitOfWork = IocContainer.UnitOfWork;
-                var repsCg = unitOfWork.OfLong<CgRes>();
+
                 DateTime start = DateTime.MinValue;
                 DateTime end = DateTime.MinValue;
+
+                if (taskID != null)
+                {
+                    queryable = queryable.Where(p => p.TaskID == taskID);
+                }
                 if (txtTimeCho.Text == "自定义")
                 {
                     start = txtStartTime.DateTime;
@@ -153,26 +147,40 @@ namespace DW5S.App.UserControl
                 }
                 else
                 {
-                    var max = repsCg.MaxBy(p => p.SigTime, q => q.TaskID == ((TaskInfo)txtTask.EditValue).Id);
-                    if (max == null) return new List<CgRes>();
-                    end = max.SigTime;
-                    start = end.AddHours(-(int)txtTimeCho.EditValue);
+                    var max = queryable.OrderByDescending(p => p.SigTime).FirstOrDefault();
+                    if (max != null)
+                    {
+                        end = max.SigTime;
+                        start = end.AddHours(-(int)txtTimeCho.EditValue);
+                    }
                 }
-                if (end == DateTime.MinValue)
+                if (start != DateTime.MinValue)
                 {
-                    return new List<CgRes>();//没有数据不查询
+                    queryable = queryable.Where(w => w.SigTime >= start);
                 }
-                var cgRes = await repsCg.FindAsync(w => w.SigTime >= start && w.SigTime <= end && w.TaskID == ((TaskInfo)txtTask.EditValue).Id, p => p.SigTime, false);
-                return cgRes.ToList();
+                if (end != DateTime.MinValue)
+                {
+                    queryable = queryable.Where(w => w.SigTime <= end);
+                }
+                queryable = queryable
+                       .Include(w => w.StationRes)
+                       .Include(w => w.FixedStation)
+                       .OrderByDescending(o => o.SigTime)
+                       .ThenBy(p => p.MainCode);
             }
             catch (TaskCanceledException) { }
             catch (Exception ex)
             {
                 string msg = "参估结果查询异常";
-                IocContainer.Logger.Error(ex,msg);
+                IocContainer.Logger.Error(ex, msg);
                 MsgBoxHelper.ShowError(msg);
             }
-            return new List<CgRes>();
+            var pageData = await repsCg.GetPageData(arg, queryable);
+            list.Clear();
+            list.AddRange(pageData.Data.To<List<CgResViewModel>>());
+            gridView1.RefreshData();
+            gridView1.BestFitColumns();
+            return pageData;
         }
 
         private void btnDraw_Click(object sender, EventArgs e)

+ 1 - 1
DW5S.App/UserControl/CtrlRefCgRes.cs

@@ -61,7 +61,7 @@ namespace DW5S.App.UserControl
                 var count = await repsCg.DeleteAsync(selectedRes.To<List<RefCgRes>>());
                 await unitOfWork.SaveAsync();
                 ctrlPage1.RefreshData();
-                IocContainer.Logger.Information($"删除选中参考参估结果,共删除了{count}条星历记录");
+                IocContainer.Logger.Information($"删除选中参考参估结果,共删除了{count}条参考参估结果记录");
                 return true;
             }
             catch (Exception ex)

+ 0 - 49
DW5S.Entity/CgRes.cs

@@ -17,19 +17,16 @@ namespace DW5S.Entity
         /// <summary>
         /// 信号时刻
         /// </summary>
-        [Display(Name = "信号时刻")]
         public DateTime SigTime { get; set; }
 
         /// <summary>
         /// 站点ID
         /// </summary>
-        [Display(Name = "站点ID")]
         public long StationResID { get; set; }
 
         /// <summary>
         /// 任务ID
         /// </summary>
-        [Display(Name = "任务ID")]
         public int TaskID { get; set; }
 
         /// <summary>
@@ -53,277 +50,231 @@ namespace DW5S.Entity
         /// <summary>
         /// 主邻1时差(us)
         /// </summary>
-        [Display(Name = "主邻1时差(us)")]
         public double? Dto1 { get; set; }
 
         /// <summary>
         /// 主邻1频差(Hz)
         /// </summary>
-        [Display(Name = "主邻1频差(Hz)")]
         public double? Dfo1 { get; set; }
 
         /// <summary>
         /// 主邻1信噪比(dB)
         /// </summary>
-        [Display(Name = "主邻1信噪比(dB)")]
         public double? Snr1 { get; set; }
 
         /// <summary>
         /// 主邻2时差(us)
         /// </summary>
-        [Display(Name = "主邻2时差(us)")]
         public double? Dto2 { get; set; }
 
         /// <summary>
         /// 主邻2频差(Hz)
         /// </summary>
-        [Display(Name = "主邻2频差(Hz)")]
         public double? Dfo2 { get; set; }
 
         /// <summary>
         /// 主邻2信噪比(dB)
         /// </summary>
-        [Display(Name = "主邻2信噪比(dB)")]
         public double? Snr2 { get; set; }
 
         /// <summary>
         /// 主星超短时差(us)
         /// </summary>
-        [Display(Name = "主星超短时差(us)")]
         public double? DtoCdb { get; set; }
 
         /// <summary>
         /// 主星超短频差 (Hz)
         /// </summary>
-        [Display(Name = "主星超短频差 (Hz)")]
         public double? DfoCdb { get; set; }
 
         /// <summary>
         /// 主星超短信噪比(dB)
         /// </summary>
-        [Display(Name = "主星超短信噪比(dB)")]
         public double? SnrCdb { get; set; }
 
         /// <summary>
         /// 样本主星时差(us)
         /// </summary>
-        [Display(Name = "样本主星时差(us)")]
         public double? YbMainDto { get; set; }
 
         /// <summary>
         /// 样本主星频差(Hz)
         /// </summary>
-        [Display(Name = "样本主星频差(Hz)")]
         public double? YbMainDfo { get; set; }
 
         /// <summary>
         /// 样本主星信噪比(dB)
         /// </summary>
-        [Display(Name = "样本主星信噪比(dB)")]
         public double? YbMainSnr { get; set; }
 
         /// <summary>
         /// 样本邻星1时差(us)
         /// </summary>
-        [Display(Name = "样本邻星1时差(us)")]
         public double? YbAdja1Dto { get; set; }
 
         /// <summary>
         /// 样本邻星1频差(Hz)
         /// </summary>
-        [Display(Name = "样本邻星1频差(Hz)")]
         public double? YbAdja1Dfo { get; set; }
 
         /// <summary>
         /// 样本邻星1信噪比(dB)
         /// </summary>
-        [Display(Name = "样本邻星1信噪比(dB)")]
         public double? YbAdja1Snr { get; set; }
 
         /// <summary>
         /// 样本邻星2时差(us)
         /// </summary>
-        [Display(Name = "样本邻星2时差(us)")]
         public double? YbAdja2Dto { get; set; }
 
         /// <summary>
         /// 样本邻星1频差(Hz)
         /// </summary>
-        [Display(Name = "样本邻星1频差(Hz)")]
         public double? YbAdja2Dfo { get; set; }
 
         /// <summary>
         /// 样本邻星2信噪比(dB)
         /// </summary>
-        [Display(Name = "样本邻星2信噪比(dB)")]
         public double? YbAdja2Snr { get; set; }
 
         /// <summary>
         /// 目标上行频点(Hz)
         /// </summary>
-        [Display(Name = "目标上行频点(Hz)")]
         public double? TarFreqUp { get; set; }
 
         /// <summary>
         /// 目标下行频点(Hz)
         /// </summary>
-        [Display(Name = "目标下行频点(Hz)")]
         public double? TarFreqDown { get; set; }
 
         /// <summary>
         /// 参考上行频点(Hz)
         /// </summary>
-        [Display(Name = "参考上行频点(Hz)")]
         public double? RefFreqUp { get; set; }
 
         /// <summary>
         /// 参考下行频点(Hz)
         /// </summary>
-        [Display(Name = "参考下行频点(Hz)")]
         public double? RefFreqDown { get; set; }
 
         /// <summary>
         /// 主星编号
         /// </summary>
-        [Display(Name = "主星编号")]
         public int? MainCode { get; set; }
 
         /// <summary>
         /// 邻星1编号
         /// </summary>
-        [Display(Name = "邻星1编号")]
         public int? Adja1Code { get; set; }
 
         /// <summary>
         /// 邻星2编号
         /// </summary>
-        [Display(Name = "邻星2编号")]
         public int? Adja2Code { get; set; }
 
         /// <summary>
         /// 主星星历发布时刻
         /// </summary>
-        [Display(Name = "主星星历发布时刻")]
         public DateTime? MainXlTime { get; set; }
 
         /// <summary>
         /// 邻星1星历发布时刻
         /// </summary>
-        [Display(Name = "邻星1星历发布时刻")]
         public DateTime? Adja1XlTime { get; set; }
 
         /// <summary>
         /// 邻星2星历发布时刻
         /// </summary>
-        [Display(Name = "邻星2星历发布时刻")]
         public DateTime? Adja2XlTime { get; set; }
 
         /// <summary>
         /// 主星坐标X
         /// </summary>
-        [Display(Name = "主星坐标X")]
         public double? MainX { get; set; }
 
         /// <summary>
         /// 主星坐标Y
         /// </summary>
-        [Display(Name = "主星坐标Y")]
         public double? MainY { get; set; }
 
         /// <summary>
         /// 主星坐标Z
         /// </summary>
-        [Display(Name = "主星坐标Z")]
         public double? MainZ { get; set; }
 
         /// <summary>
         /// 主星速度Vx(m/s)
         /// </summary>
-        [Display(Name = "主星速度Vx(m/s)")]
         public double? MainVx { get; set; }
 
         /// <summary>
         /// 主星速度Vy(m/s)
         /// </summary>
-        [Display(Name = "主星速度Vy(m/s)")]
         public double? MainVy { get; set; }
 
         /// <summary>
         /// 主星速度Vz(m/s)
         /// </summary>
-        [Display(Name = "主星速度Vz(m/s)")]
         public double? MainVz { get; set; }
 
         /// <summary>
         /// 邻星1坐标X
         /// </summary>
-        [Display(Name = "邻星1坐标X")]
         public double? Adja1X { get; set; }
 
         /// <summary>
         /// 邻星1坐标Y
         /// </summary>
-        [Display(Name = "邻星1坐标Y")]
         public double? Adja1Y { get; set; }
 
         /// <summary>
         /// 邻星1坐标Z
         /// </summary>
-        [Display(Name = "邻星1坐标Z")]
         public double? Adja1Z { get; set; }
         
         /// <summary>
         /// 邻星1速度Vx(m/s)
         /// </summary>
-        [Display(Name = "邻星1速度Vx(m/s)")]
         public double? Adja1Vx { get; set; }
 
         /// <summary>
         /// 邻星1速度Vy(m/s)
         /// </summary>
-        [Display(Name = "邻星1速度Vy(m/s)")]
         public double? Adja1Vy { get; set; }
 
         /// <summary>
         /// 邻星1速度Vz(m/s)
         /// </summary>
-        [Display(Name = "邻星1速度Vz(m/s)")]
         public double? Adja1Vz { get; set; }
 
         /// <summary>
         /// 邻星2坐标X
         /// </summary>
-        [Display(Name = "邻星2坐标X")]
         public double? Adja2X { get; set; }
 
         /// <summary>
         /// 邻星2坐标Y
         /// </summary>
-        [Display(Name = "邻星2坐标Y")]
         public double? Adja2Y { get; set; }
 
         /// <summary>
         /// 邻星2坐标Z
         /// </summary>
-        [Display(Name = "邻星2坐标Z")]
         public double? Adja2Z { get; set; }
 
         /// <summary>
         /// 邻星2速度Vx(m/s)
         /// </summary>
-        [Display(Name = "邻星2速度Vx(m/s)")]
         public double? Adja2Vx { get; set; }
 
         /// <summary>
         /// 邻星2速度Vy(m/s)
         /// </summary>
-        [Display(Name = "邻星2速度Vy(m/s)")]
         public double? Adja2Vy { get; set; }
 
         /// <summary>
         /// 邻星2速度Vz(m/s)
         /// </summary>
-        [Display(Name = "邻星2速度Vz(m/s)")]
         public double? Adja2Vz { get; set; }
 
 

+ 394 - 0
DW5S.ViewModel/CgResViewModel.cs

@@ -0,0 +1,394 @@
+using DW5S.Entity;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DW5S.ViewModel
+{
+    /// <summary>
+    /// 参数估计结果表
+    /// </summary>
+    public class CgResViewModel : BaseViewModel<long>
+    {
+        /// <summary>
+        /// 信号时刻
+        /// </summary>
+        [Display(Name = "信号时刻")]
+        public DateTime SigTime { get; set; }
+
+        /// <summary>
+        /// 站点ID
+        /// </summary>
+        [Display(Name = "站点ID")]
+        public long StationResID { get; set; }
+
+        /// <summary>
+        /// 任务ID
+        /// </summary>
+        [Display(Name = "任务ID")]
+        public int TaskID { get; set; }
+
+        /// <summary>
+        /// 站点信息
+        /// </summary>
+        [Display(AutoGenerateField = false)]
+        public virtual StationRes StationRes { get; set; }
+
+        /// <summary>
+        /// 固定站ID
+        /// </summary>
+        [Display(Name = "固定站ID")]
+        public int? FixedStationID { get; set; }
+
+        /// <summary>
+        /// 固定站
+        /// </summary>
+        [Display(AutoGenerateField = false)]
+        public virtual FixedStation FixedStation { get; set; }
+
+        /// <summary>
+        /// 主邻1时差(us)
+        /// </summary>
+        [Display(Name = "主邻1时差(us)")]
+        public double? Dto1 { get; set; }
+
+        /// <summary>
+        /// 主邻1频差(Hz)
+        /// </summary>
+        [Display(Name = "主邻1频差(Hz)")]
+        public double? Dfo1 { get; set; }
+
+        /// <summary>
+        /// 主邻1信噪比(dB)
+        /// </summary>
+        [Display(Name = "主邻1信噪比(dB)")]
+        public double? Snr1 { get; set; }
+
+        /// <summary>
+        /// 主邻2时差(us)
+        /// </summary>
+        [Display(Name = "主邻2时差(us)")]
+        public double? Dto2 { get; set; }
+
+        /// <summary>
+        /// 主邻2频差(Hz)
+        /// </summary>
+        [Display(Name = "主邻2频差(Hz)")]
+        public double? Dfo2 { get; set; }
+
+        /// <summary>
+        /// 主邻2信噪比(dB)
+        /// </summary>
+        [Display(Name = "主邻2信噪比(dB)")]
+        public double? Snr2 { get; set; }
+
+        /// <summary>
+        /// 主星超短时差(us)
+        /// </summary>
+        [Display(Name = "主星超短时差(us)")]
+        public double? DtoCdb { get; set; }
+
+        /// <summary>
+        /// 主星超短频差 (Hz)
+        /// </summary>
+        [Display(Name = "主星超短频差 (Hz)")]
+        public double? DfoCdb { get; set; }
+
+        /// <summary>
+        /// 主星超短信噪比(dB)
+        /// </summary>
+        [Display(Name = "主星超短信噪比(dB)")]
+        public double? SnrCdb { get; set; }
+
+        /// <summary>
+        /// 样本主星时差(us)
+        /// </summary>
+        [Display(Name = "样本主星时差(us)")]
+        public double? YbMainDto { get; set; }
+
+        /// <summary>
+        /// 样本主星频差(Hz)
+        /// </summary>
+        [Display(Name = "样本主星频差(Hz)")]
+        public double? YbMainDfo { get; set; }
+
+        /// <summary>
+        /// 样本主星信噪比(dB)
+        /// </summary>
+        [Display(Name = "样本主星信噪比(dB)")]
+        public double? YbMainSnr { get; set; }
+
+        /// <summary>
+        /// 样本邻星1时差(us)
+        /// </summary>
+        [Display(Name = "样本邻星1时差(us)")]
+        public double? YbAdja1Dto { get; set; }
+
+        /// <summary>
+        /// 样本邻星1频差(Hz)
+        /// </summary>
+        [Display(Name = "样本邻星1频差(Hz)")]
+        public double? YbAdja1Dfo { get; set; }
+
+        /// <summary>
+        /// 样本邻星1信噪比(dB)
+        /// </summary>
+        [Display(Name = "样本邻星1信噪比(dB)")]
+        public double? YbAdja1Snr { get; set; }
+
+        /// <summary>
+        /// 样本邻星2时差(us)
+        /// </summary>
+        [Display(Name = "样本邻星2时差(us)")]
+        public double? YbAdja2Dto { get; set; }
+
+        /// <summary>
+        /// 样本邻星1频差(Hz)
+        /// </summary>
+        [Display(Name = "样本邻星1频差(Hz)")]
+        public double? YbAdja2Dfo { get; set; }
+
+        /// <summary>
+        /// 样本邻星2信噪比(dB)
+        /// </summary>
+        [Display(Name = "样本邻星2信噪比(dB)")]
+        public double? YbAdja2Snr { get; set; }
+
+        /// <summary>
+        /// 目标上行频点(Hz)
+        /// </summary>
+        [Display(Name = "目标上行频点(Hz)")]
+        public double? TarFreqUp { get; set; }
+
+        /// <summary>
+        /// 目标下行频点(Hz)
+        /// </summary>
+        [Display(Name = "目标下行频点(Hz)")]
+        public double? TarFreqDown { get; set; }
+
+        /// <summary>
+        /// 参考上行频点(Hz)
+        /// </summary>
+        [Display(Name = "参考上行频点(Hz)")]
+        public double? RefFreqUp { get; set; }
+
+        /// <summary>
+        /// 参考下行频点(Hz)
+        /// </summary>
+        [Display(Name = "参考下行频点(Hz)")]
+        public double? RefFreqDown { get; set; }
+
+        /// <summary>
+        /// 主星编号
+        /// </summary>
+        [Display(Name = "主星编号")]
+        public int? MainCode { get; set; }
+
+        /// <summary>
+        /// 邻星1编号
+        /// </summary>
+        [Display(Name = "邻星1编号")]
+        public int? Adja1Code { get; set; }
+
+        /// <summary>
+        /// 邻星2编号
+        /// </summary>
+        [Display(Name = "邻星2编号")]
+        public int? Adja2Code { get; set; }
+
+        /// <summary>
+        /// 主星星历发布时刻
+        /// </summary>
+        [Display(Name = "主星星历发布时刻")]
+        public DateTime? MainXlTime { get; set; }
+
+        /// <summary>
+        /// 邻星1星历发布时刻
+        /// </summary>
+        [Display(Name = "邻星1星历发布时刻")]
+        public DateTime? Adja1XlTime { get; set; }
+
+        /// <summary>
+        /// 邻星2星历发布时刻
+        /// </summary>
+        [Display(Name = "邻星2星历发布时刻")]
+        public DateTime? Adja2XlTime { get; set; }
+
+        /// <summary>
+        /// 主星坐标X
+        /// </summary>
+        [Display(Name = "主星坐标X")]
+        public double? MainX { get; set; }
+
+        /// <summary>
+        /// 主星坐标Y
+        /// </summary>
+        [Display(Name = "主星坐标Y")]
+        public double? MainY { get; set; }
+
+        /// <summary>
+        /// 主星坐标Z
+        /// </summary>
+        [Display(Name = "主星坐标Z")]
+        public double? MainZ { get; set; }
+
+        /// <summary>
+        /// 主星速度Vx(m/s)
+        /// </summary>
+        [Display(Name = "主星速度Vx(m/s)")]
+        public double? MainVx { get; set; }
+
+        /// <summary>
+        /// 主星速度Vy(m/s)
+        /// </summary>
+        [Display(Name = "主星速度Vy(m/s)")]
+        public double? MainVy { get; set; }
+
+        /// <summary>
+        /// 主星速度Vz(m/s)
+        /// </summary>
+        [Display(Name = "主星速度Vz(m/s)")]
+        public double? MainVz { get; set; }
+
+        /// <summary>
+        /// 邻星1坐标X
+        /// </summary>
+        [Display(Name = "邻星1坐标X")]
+        public double? Adja1X { get; set; }
+
+        /// <summary>
+        /// 邻星1坐标Y
+        /// </summary>
+        [Display(Name = "邻星1坐标Y")]
+        public double? Adja1Y { get; set; }
+
+        /// <summary>
+        /// 邻星1坐标Z
+        /// </summary>
+        [Display(Name = "邻星1坐标Z")]
+        public double? Adja1Z { get; set; }
+        
+        /// <summary>
+        /// 邻星1速度Vx(m/s)
+        /// </summary>
+        [Display(Name = "邻星1速度Vx(m/s)")]
+        public double? Adja1Vx { get; set; }
+
+        /// <summary>
+        /// 邻星1速度Vy(m/s)
+        /// </summary>
+        [Display(Name = "邻星1速度Vy(m/s)")]
+        public double? Adja1Vy { get; set; }
+
+        /// <summary>
+        /// 邻星1速度Vz(m/s)
+        /// </summary>
+        [Display(Name = "邻星1速度Vz(m/s)")]
+        public double? Adja1Vz { get; set; }
+
+        /// <summary>
+        /// 邻星2坐标X
+        /// </summary>
+        [Display(Name = "邻星2坐标X")]
+        public double? Adja2X { get; set; }
+
+        /// <summary>
+        /// 邻星2坐标Y
+        /// </summary>
+        [Display(Name = "邻星2坐标Y")]
+        public double? Adja2Y { get; set; }
+
+        /// <summary>
+        /// 邻星2坐标Z
+        /// </summary>
+        [Display(Name = "邻星2坐标Z")]
+        public double? Adja2Z { get; set; }
+
+        /// <summary>
+        /// 邻星2速度Vx(m/s)
+        /// </summary>
+        [Display(Name = "邻星2速度Vx(m/s)")]
+        public double? Adja2Vx { get; set; }
+
+        /// <summary>
+        /// 邻星2速度Vy(m/s)
+        /// </summary>
+        [Display(Name = "邻星2速度Vy(m/s)")]
+        public double? Adja2Vy { get; set; }
+
+        /// <summary>
+        /// 邻星2速度Vz(m/s)
+        /// </summary>
+        [Display(Name = "邻星2速度Vz(m/s)")]
+        public double? Adja2Vz { get; set; }
+
+
+
+        public CgResViewModel Clone()
+        {
+            return new CgResViewModel()
+            {
+                Adja1Code = Adja1Code,
+                Adja1Vx = Adja1Vx,
+                Adja1Vy = Adja1Vy,
+                Adja1Vz = Adja1Vz,
+                Adja1X = Adja1X,
+                Adja1XlTime = Adja1XlTime,
+                Adja1Y = Adja1Y,
+                Adja1Z = Adja1Z,
+                Adja2Code = Adja2Code,
+                Adja2Vx = Adja2Vx,
+                Adja2Vy = Adja2Vy,
+                Adja2Vz = Adja2Vz,
+                Adja2X = Adja2X,
+                Adja2XlTime = Adja2XlTime,
+                Adja2Y = Adja2Y,
+                Adja2Z = Adja2Z,
+                CreateTime = CreateTime,
+                Dfo1 = Dfo1,
+                Dfo2 = Dfo2,
+                DfoCdb = DfoCdb,
+                Dto1 = Dto1,
+                Dto2 = Dto2,
+                DtoCdb = DtoCdb,
+                Id = Id,
+                MainCode = MainCode,
+                MainVx = MainVx,
+                MainVy = MainVy,
+                MainVz = MainVz,
+                MainX = MainX,
+                MainY = MainY,
+                MainXlTime = MainXlTime,
+                MainZ = MainZ,
+                RefFreqDown = RefFreqDown,
+                RefFreqUp = RefFreqUp,
+                SigTime = SigTime,
+                Snr1 = Snr1,
+                Snr2 = Snr2,
+                SnrCdb = SnrCdb,
+                StationRes = StationRes,
+                StationResID = StationResID,
+                //FixedStation=FixedStation,
+                FixedStationID=FixedStationID,
+                TarFreqDown = TarFreqDown,
+                TarFreqUp = TarFreqUp,
+                TaskID = TaskID,
+                UpdateTime = UpdateTime,
+                YbAdja1Dfo = YbAdja1Dfo,
+                YbAdja1Dto = YbAdja1Dto,
+                YbAdja1Snr = YbAdja1Snr,
+                YbAdja2Dfo = YbAdja2Dfo,
+                YbAdja2Dto = YbAdja2Dto,
+                YbAdja2Snr = YbAdja2Snr,
+                YbMainDfo = YbMainDfo,
+                YbMainDto = YbMainDto,
+                YbMainSnr = YbMainSnr,
+            };
+        }
+
+    }
+}