瀏覽代碼

更新手动dw,实时刷新

wyq 1 年之前
父節點
當前提交
2a7e8f5091
共有 2 個文件被更改,包括 55 次插入33 次删除
  1. 35 25
      XzXdDw.App/EditForms/X2D1PosParamEditor.cs
  2. 20 8
      XzXdDw.App/UserControl/CtrlPosXd.cs

+ 35 - 25
XzXdDw.App/EditForms/X2D1PosParamEditor.cs

@@ -7,6 +7,7 @@ using System.Collections.Generic;
 using System.ComponentModel;
 using System.Data;
 using System.Data.Entity;
+using System.Data.Entity.Migrations;
 using System.Drawing;
 using System.Linq;
 using System.Text;
@@ -25,12 +26,19 @@ namespace XzXdDw.App.EditForms
         public PosRes info;
         public List<TxInfo> listTx;
         private CgRes cgRes;
-        public X2D1PosParamEditor(PosRes info, List<TxInfo> listTx)
+        private Action callBack;
+        public X2D1PosParamEditor(PosRes info, CgRes cgRes, List<TxInfo> listTx, Action callBack)
         {
             InitializeComponent();
             this.Text = "两星一地定位";
             this.info = info;
+            if (cgRes == null)
+            {
+                cgRes = new CgRes();
+            }
+            this.cgRes = cgRes;
             this.listTx = listTx;
+            this.callBack = callBack;
             this.StartPosition = FormStartPosition.CenterParent;
             txtsatStation.EditValueChanged += TxtsatStation_EditValueChanged;
             txtcdbStation.EditValueChanged += TxtcdbStation_EditValueChanged;
@@ -68,17 +76,17 @@ namespace XzXdDw.App.EditForms
             this.txtsatStation.Text = $"{satTx.Lon},{satTx.Lat}";
             this.txtcdbStation.Text = $"{cdbTx.Lon},{cdbTx.Lat}";
             this.txtRefLocation.Text = $"{refTx.Lon},{refTx.Lat}";
-            this.txtDtoSx.Text = $"{info.CgRes.DtoSx}";
-            this.txtDtoCdb.Text = $"{info.CgRes.DtoCdb}";
-            this.txtYbMain.Text = $"{info.CgRes.YbMain}";
-            this.txtYbAdja.Text = $"{info.CgRes.YbAdja}";
-            this.sigTime.EditValue = info.CgRes.SigTime;
-            this.txtMainX.Text = $"{info.CgRes.MainX}";
-            this.txtMainY.Text = $"{info.CgRes.MainY}";
-            this.txtMainZ.Text = $"{info.CgRes.MainZ}";
-            this.txtAdjaX.Text = $"{info.CgRes.AdjaX}";
-            this.txtAdjaY.Text = $"{info.CgRes.AdjaY}";
-            this.txtAdjaZ.Text = $"{info.CgRes.AdjaZ}";
+            this.txtDtoSx.Text = $"{cgRes.DtoSx}";
+            this.txtDtoCdb.Text = $"{cgRes.DtoCdb}";
+            this.txtYbMain.Text = $"{cgRes.YbMain}";
+            this.txtYbAdja.Text = $"{cgRes.YbAdja}";
+            this.sigTime.EditValue = cgRes.SigTime;
+            this.txtMainX.Text = $"{cgRes.MainX}";
+            this.txtMainY.Text = $"{cgRes.MainY}";
+            this.txtMainZ.Text = $"{cgRes.MainZ}";
+            this.txtAdjaX.Text = $"{cgRes.AdjaX}";
+            this.txtAdjaY.Text = $"{cgRes.AdjaY}";
+            this.txtAdjaZ.Text = $"{cgRes.AdjaZ}";
 
         }
 
@@ -92,17 +100,17 @@ namespace XzXdDw.App.EditForms
                     XtraMessageBox.Show($"两星一地未定位不能更新到数据库中");
                     return;
                 }
-                info.CgRes.DtoSx = Convert.ToDouble(this.txtDtoSx.Text);
-                info.CgRes.DtoCdb = Convert.ToDouble(this.txtDtoCdb.Text);
-                info.CgRes.YbMain = Convert.ToDouble(this.txtYbMain.Text);
-                info.CgRes.YbAdja = Convert.ToDouble(this.txtYbAdja.Text);
-                info.CgRes.SigTime = this.sigTime.DateTime;
-                info.CgRes.MainX = Convert.ToDouble(this.txtMainX.Text);
-                info.CgRes.MainY = Convert.ToDouble(this.txtMainY.Text);
-                info.CgRes.MainZ = Convert.ToDouble(this.txtMainZ.Text);
-                info.CgRes.AdjaX = Convert.ToDouble(this.txtAdjaX.Text);
-                info.CgRes.AdjaY = Convert.ToDouble(this.txtAdjaY.Text);
-                info.CgRes.AdjaZ = Convert.ToDouble(this.txtAdjaZ.Text);
+                cgRes.DtoSx = Convert.ToDouble(this.txtDtoSx.Text);
+                cgRes.DtoCdb = Convert.ToDouble(this.txtDtoCdb.Text);
+                cgRes.YbMain = Convert.ToDouble(this.txtYbMain.Text);
+                cgRes.YbAdja = Convert.ToDouble(this.txtYbAdja.Text);
+                cgRes.SigTime = this.sigTime.DateTime;
+                cgRes.MainX = Convert.ToDouble(this.txtMainX.Text);
+                cgRes.MainY = Convert.ToDouble(this.txtMainY.Text);
+                cgRes.MainZ = Convert.ToDouble(this.txtMainZ.Text);
+                cgRes.AdjaX = Convert.ToDouble(this.txtAdjaX.Text);
+                cgRes.AdjaY = Convert.ToDouble(this.txtAdjaY.Text);
+                cgRes.AdjaZ = Convert.ToDouble(this.txtAdjaZ.Text);
 
                 string posstr = this.listBox.Items[0].ToString();
                 var allstrs = posstr.Split(new string[] { ":", "PosLon", "PosLat", "MirrLon", "MirrLat" }, StringSplitOptions.RemoveEmptyEntries);
@@ -115,9 +123,11 @@ namespace XzXdDw.App.EditForms
                         info.PosLat = Convert.ToDouble(allstrs[2]);
                         info.MirrLon = Convert.ToDouble(allstrs[3]);
                         info.MirrLat = Convert.ToDouble(allstrs[4]);
-                        db.CgRes.Add(info.CgRes);//参估结果入库
-                        db.PosRes.Add(info);//定位结果入库
+                        db.CgRes.AddOrUpdate(cgRes);//参估结果入库
+                        db.PosRes.AddOrUpdate(info);//定位结果入库
+                        db.SaveChangesAsync();
                     }
+                    callBack?.Invoke();
                     XtraMessageBox.Show($"两星一地更新数据成功");
                 }
             }

+ 20 - 8
XzXdDw.App/UserControl/CtrlPosXd.cs

@@ -258,8 +258,8 @@ namespace XzXdDw.App.UserControl
                         AdjaY = adjaY,
                         AdjaZ = adjaZ,
                     };
-                    db.CgRes.Add(cgRes);//参估结果入库
-
+                    var cg = db.CgRes.Add(cgRes);//参估结果入库
+                    await db.SaveChangesAsync();
                     var res = PosApi.X2D1_POS(cgRes, listTx);
                     PosRes posRes = new PosRes()
                     {
@@ -270,11 +270,10 @@ namespace XzXdDw.App.UserControl
                         PosLon = res[0],
                         PosLat = res[1],
                         MirrLon = res[3],
-                        MirrLat = res[4],
-                        CgRes = cgRes,
+                        MirrLat = res[4]
                     };
                     db.PosRes.Add(posRes);//定位结果入库
-
+                    await db.SaveChangesAsync();
                     //更新定位结果UI列表和地图
                     var currentTask = gridView1.GetFocusedRow() as TaskInfo;
                     var ds = this.gridPos.DataSource as List<PosRes>;
@@ -302,14 +301,27 @@ namespace XzXdDw.App.UserControl
                 }
                 var item = gridView1.GetRow(ids[0]) as PosRes;
                 List<TxInfo> listTx = new List<TxInfo>();
+                CgRes cg;
                 using (RHDWContext db = new RHDWContext())
                 {
                     listTx = db.TxInfos.ToList();
+                    cg = await db.CgRes.Where(m => m.ID == item.CgResID).FirstOrDefaultAsync();
+
                 }
-                X2D1PosParamEditor frm = new X2D1PosParamEditor(item, listTx);
+
+                X2D1PosParamEditor frm = new X2D1PosParamEditor(item, cg, listTx, () =>
+                {
+                    gridView1.RefreshData();
+                    if (item.PosLon > 180 || item.PosLon < -180)
+                    {
+                        item.PosLon = 0;
+                        item.PosLat = 0;
+                    }
+                    mapControl1.UpdatePosItem(item);
+                });
                 frm.ShowDialog();
-                gridView1.RefreshData();
-                mapControl1.UpdatePosItem(item);
+
+
 
             }
             catch (Exception ex)