gongqiuhong 1 an în urmă
părinte
comite
f01f7079f4

+ 71 - 71
XdCxRhDW.Sender/Form1.cs

@@ -64,20 +64,20 @@ namespace XdCxRhDW.Sender
                                     X1D1PosDto dto = new X1D1PosDto()
                                     {
                                         SigTime = DateTime.Now,
-                                        XdDto = Convert.ToDouble(items[1]),
-                                        MainYbDto = Convert.ToDouble(items[2]),
+                                        XdDto = Convert.ToDouble(items[1]) * 1e6,
+                                        MainYbDto = Convert.ToDouble(items[2]) * 1e6,
                                         CxRes = Convert.ToDouble(items[4]),
                                         MainX = Convert.ToDouble(items[7]),
                                         MainY = Convert.ToDouble(items[8]),
                                         MainZ = Convert.ToDouble(items[9]),
-                                        SatTxLon = IniFiles.ReadValue<double>("Station_Data2023", "卫星接收天线", "Lon"),
-                                        SatTxLat = IniFiles.ReadValue<double>("Station_Data2023", "卫星接收天线", "Lat"),
-                                        CdbTxLon = IniFiles.ReadValue<double>("Station_Data2023", "超短波接收天线", "Lon"),
-                                        CdbTxLat = IniFiles.ReadValue<double>("Station_Data2023", "超短波接收天线", "Lat"),
-                                        CxLon = IniFiles.ReadValue<double>("Station_Data2023", "侧向站", "Lon"),
-                                        CxLat = IniFiles.ReadValue<double>("Station_Data2023", "侧向站", "Lat"),
-                                        RefLon = IniFiles.ReadValue<double>("Station_Data2023", "参考站", "Lon"),
-                                        RefLat = IniFiles.ReadValue<double>("Station_Data2023", "参考站", "Lat"),
+                                        SatTxLon = IniFiles.ReadValue<double>("Station_Data2023.ini", "卫星接收天线", "Lon"),
+                                        SatTxLat = IniFiles.ReadValue<double>("Station_Data2023.ini", "卫星接收天线", "Lat"),
+                                        CdbTxLon = IniFiles.ReadValue<double>("Station_Data2023.ini", "超短波接收天线", "Lon"),
+                                        CdbTxLat = IniFiles.ReadValue<double>("Station_Data2023.ini", "超短波接收天线", "Lat"),
+                                        CxLon = IniFiles.ReadValue<double>("Station_Data2023.ini", "侧向站", "Lon"),
+                                        CxLat = IniFiles.ReadValue<double>("Station_Data2023.ini", "侧向站", "Lat"),
+                                        RefLon = IniFiles.ReadValue<double>("Station_Data2023.ini", "参考站", "Lon"),
+                                        RefLat = IniFiles.ReadValue<double>("Station_Data2023.ini", "参考站", "Lat"),
                                     };
                                     var content = new StringContent(JsonConvert.SerializeObject(dto), System.Text.Encoding.UTF8, "application/json");
                                     var response = await client.PostAsync(url, content);
@@ -103,22 +103,22 @@ namespace XdCxRhDW.Sender
                                     var items = line.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                                     X2D1PosDto X2D1PosDto = new X2D1PosDto();
                                     X2D1PosDto.SigTime = DateTime.Now;
-                                    X2D1PosDto.SxDto = Convert.ToDouble(items[0]);
-                                    X2D1PosDto.XdDto = Convert.ToDouble(items[1]);
-                                    X2D1PosDto.MainYbDto = Convert.ToDouble(items[2]);
-                                    X2D1PosDto.AdjaYbDto = Convert.ToDouble(items[3]);
+                                    X2D1PosDto.SxDto = Convert.ToDouble(items[0]) * 1e6;
+                                    X2D1PosDto.XdDto = Convert.ToDouble(items[1]) * 1e6;
+                                    X2D1PosDto.MainYbDto = Convert.ToDouble(items[2]) * 1e6;
+                                    X2D1PosDto.AdjaYbDto = Convert.ToDouble(items[3]) * 1e6;
                                     X2D1PosDto.MainX = Convert.ToDouble(items[7]);
                                     X2D1PosDto.MainY = Convert.ToDouble(items[8]);
                                     X2D1PosDto.MainZ = Convert.ToDouble(items[9]);
                                     X2D1PosDto.AdjaX = Convert.ToDouble(items[10]);
                                     X2D1PosDto.AdjaY = Convert.ToDouble(items[11]);
                                     X2D1PosDto.AdjaZ = Convert.ToDouble(items[12]);
-                                    X2D1PosDto.SatTxLon = IniFiles.ReadValue<double>("Station_Data2023", "卫星接收天线", "Lon");
-                                    X2D1PosDto.SatTxLat = IniFiles.ReadValue<double>("Station_Data2023", "卫星接收天线", "Lat");
-                                    X2D1PosDto.CdbTxLon = IniFiles.ReadValue<double>("Station_Data2023", "超短波接收天线", "Lon");
-                                    X2D1PosDto.CdbTxLat = IniFiles.ReadValue<double>("Station_Data2023", "超短波接收天线", "Lat");
-                                    X2D1PosDto.RefLon = IniFiles.ReadValue<double>("Station_Data2023", "参考站", "Lon");
-                                    X2D1PosDto.RefLat = IniFiles.ReadValue<double>("Station_Data2023", "参考站", "Lat");
+                                    X2D1PosDto.SatTxLon = IniFiles.ReadValue<double>("Station_Data2023.ini", "卫星接收天线", "Lon");
+                                    X2D1PosDto.SatTxLat = IniFiles.ReadValue<double>("Station_Data2023.ini", "卫星接收天线", "Lat");
+                                    X2D1PosDto.CdbTxLon = IniFiles.ReadValue<double>("Station_Data2023.ini", "超短波接收天线", "Lon");
+                                    X2D1PosDto.CdbTxLat = IniFiles.ReadValue<double>("Station_Data2023.ini", "超短波接收天线", "Lat");
+                                    X2D1PosDto.RefLon = IniFiles.ReadValue<double>("Station_Data2023.ini", "参考站", "Lon");
+                                    X2D1PosDto.RefLat = IniFiles.ReadValue<double>("Station_Data2023.ini", "参考站", "Lat");
                                     var content = new StringContent(JsonConvert.SerializeObject(X2D1PosDto), System.Text.Encoding.UTF8, "application/json");
                                     var response = await client.PostAsync(url, content);
                                     Log($"已向[{txtAddr1.Text}]发送第{idx++}条仿真结果");
@@ -145,10 +145,10 @@ namespace XdCxRhDW.Sender
                                     var items = line.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                                     RHPosDto RHPosDto = new RHPosDto();
                                     RHPosDto.SigTime = DateTime.Now;
-                                    RHPosDto.SxDto = Convert.ToDouble(items[0]);
-                                    RHPosDto.XdDto = Convert.ToDouble(items[1]);
-                                    RHPosDto.MainYbDto = Convert.ToDouble(items[2]);
-                                    RHPosDto.AdjaYbDto = Convert.ToDouble(items[3]);
+                                    RHPosDto.SxDto = Convert.ToDouble(items[0]) * 1e6;
+                                    RHPosDto.XdDto = Convert.ToDouble(items[1]) * 1e6;
+                                    RHPosDto.MainYbDto = Convert.ToDouble(items[2]) * 1e6;
+                                    RHPosDto.AdjaYbDto = Convert.ToDouble(items[3]) * 1e6;
                                     RHPosDto.CxRes = Convert.ToDouble(items[4]);
                                     RHPosDto.MainX = Convert.ToDouble(items[7]);
                                     RHPosDto.MainY = Convert.ToDouble(items[8]);
@@ -156,14 +156,14 @@ namespace XdCxRhDW.Sender
                                     RHPosDto.AdjaX = Convert.ToDouble(items[10]);
                                     RHPosDto.AdjaY = Convert.ToDouble(items[11]);
                                     RHPosDto.AdjaZ = Convert.ToDouble(items[12]);
-                                    RHPosDto.SatTxLon = IniFiles.ReadValue<double>("Station_Data2023", "卫星接收天线", "Lon");
-                                    RHPosDto.SatTxLat = IniFiles.ReadValue<double>("Station_Data2023", "卫星接收天线", "Lat");
-                                    RHPosDto.CdbTxLon = IniFiles.ReadValue<double>("Station_Data2023", "超短波接收天线", "Lon");
-                                    RHPosDto.CdbTxLat = IniFiles.ReadValue<double>("Station_Data2023", "超短波接收天线", "Lat");
-                                    RHPosDto.CxLon = IniFiles.ReadValue<double>("Station_Data2023", "侧向站", "Lon");
-                                    RHPosDto.CxLat = IniFiles.ReadValue<double>("Station_Data2023", "侧向站", "Lat");
-                                    RHPosDto.RefLon = IniFiles.ReadValue<double>("Station_Data2023", "参考站", "Lon");
-                                    RHPosDto.RefLat = IniFiles.ReadValue<double>("Station_Data2023", "参考站", "Lat");
+                                    RHPosDto.SatTxLon = IniFiles.ReadValue<double>("Station_Data2023.ini", "卫星接收天线", "Lon");
+                                    RHPosDto.SatTxLat = IniFiles.ReadValue<double>("Station_Data2023.ini", "卫星接收天线", "Lat");
+                                    RHPosDto.CdbTxLon = IniFiles.ReadValue<double>("Station_Data2023.ini", "超短波接收天线", "Lon");
+                                    RHPosDto.CdbTxLat = IniFiles.ReadValue<double>("Station_Data2023.ini", "超短波接收天线", "Lat");
+                                    RHPosDto.CxLon = IniFiles.ReadValue<double>("Station_Data2023.ini", "侧向站", "Lon");
+                                    RHPosDto.CxLat = IniFiles.ReadValue<double>("Station_Data2023.ini", "侧向站", "Lat");
+                                    RHPosDto.RefLon = IniFiles.ReadValue<double>("Station_Data2023.ini", "参考站", "Lon");
+                                    RHPosDto.RefLat = IniFiles.ReadValue<double>("Station_Data2023.ini", "参考站", "Lat");
                                     var content = new StringContent(JsonConvert.SerializeObject(RHPosDto), System.Text.Encoding.UTF8, "application/json");
                                     var response = await client.PostAsync(url, content);
                                     Log($"已向[{txtAddr1.Text}]发送第{idx++}条仿真结果");
@@ -220,18 +220,18 @@ namespace XdCxRhDW.Sender
                                     X1D1NoXlPosDto dto = new X1D1NoXlPosDto()
                                     {
                                         SigTime = DateTime.Now,
-                                        MainSatID= 19548,
-                                        XdDto = Convert.ToDouble(items[1]),
-                                        MainYbDto = Convert.ToDouble(items[2]),
+                                        MainSatID = 19548,
+                                        XdDto = Convert.ToDouble(items[1]) * 1e6,
+                                        MainYbDto = Convert.ToDouble(items[2]) * 1e6,
                                         CxRes = Convert.ToDouble(items[4]),
-                                        SatTxLon = IniFiles.ReadValue<double>("Station_Data2023", "卫星接收天线", "Lon"),
-                                        SatTxLat = IniFiles.ReadValue<double>("Station_Data2023", "卫星接收天线", "Lat"),
-                                        CdbTxLon = IniFiles.ReadValue<double>("Station_Data2023", "超短波接收天线", "Lon"),
-                                        CdbTxLat = IniFiles.ReadValue<double>("Station_Data2023", "超短波接收天线", "Lat"),
-                                        CxLon = IniFiles.ReadValue<double>("Station_Data2023", "侧向站", "Lon"),
-                                        CxLat = IniFiles.ReadValue<double>("Station_Data2023", "侧向站", "Lat"),
-                                        RefLon = IniFiles.ReadValue<double>("Station_Data2023", "参考站", "Lon"),
-                                        RefLat = IniFiles.ReadValue<double>("Station_Data2023", "参考站", "Lat"),
+                                        SatTxLon = IniFiles.ReadValue<double>("Station_Data2023.ini", "卫星接收天线", "Lon"),
+                                        SatTxLat = IniFiles.ReadValue<double>("Station_Data2023.ini", "卫星接收天线", "Lat"),
+                                        CdbTxLon = IniFiles.ReadValue<double>("Station_Data2023.ini", "超短波接收天线", "Lon"),
+                                        CdbTxLat = IniFiles.ReadValue<double>("Station_Data2023.ini", "超短波接收天线", "Lat"),
+                                        CxLon = IniFiles.ReadValue<double>("Station_Data2023.ini", "侧向站", "Lon"),
+                                        CxLat = IniFiles.ReadValue<double>("Station_Data2023.ini", "侧向站", "Lat"),
+                                        RefLon = IniFiles.ReadValue<double>("Station_Data2023.ini", "参考站", "Lon"),
+                                        RefLat = IniFiles.ReadValue<double>("Station_Data2023.ini", "参考站", "Lat"),
                                     };
                                     var content = new StringContent(JsonConvert.SerializeObject(dto), System.Text.Encoding.UTF8, "application/json");
                                     var response = await client.PostAsync(url, content);
@@ -253,16 +253,16 @@ namespace XdCxRhDW.Sender
                                     X2D1NoXlPosDto.SigTime = DateTime.Now;
                                     X2D1NoXlPosDto.MainSatID = 19548;
                                     X2D1NoXlPosDto.AdjaSatID = 20253;
-                                    X2D1NoXlPosDto.SxDto = Convert.ToDouble(items[0]);
-                                    X2D1NoXlPosDto.XdDto = Convert.ToDouble(items[1]);
-                                    X2D1NoXlPosDto.MainYbDto = Convert.ToDouble(items[2]);
-                                    X2D1NoXlPosDto.AdjaYbDto = Convert.ToDouble(items[3]);
-                                    X2D1NoXlPosDto.SatTxLon = IniFiles.ReadValue<double>("Station_Data2023", "卫星接收天线", "Lon");
-                                    X2D1NoXlPosDto.SatTxLat = IniFiles.ReadValue<double>("Station_Data2023", "卫星接收天线", "Lat");
-                                    X2D1NoXlPosDto.CdbTxLon = IniFiles.ReadValue<double>("Station_Data2023", "超短波接收天线", "Lon");
-                                    X2D1NoXlPosDto.CdbTxLat = IniFiles.ReadValue<double>("Station_Data2023", "超短波接收天线", "Lat");
-                                    X2D1NoXlPosDto.RefLon = IniFiles.ReadValue<double>("Station_Data2023", "参考站", "Lon");
-                                    X2D1NoXlPosDto.RefLat = IniFiles.ReadValue<double>("Station_Data2023", "参考站", "Lat");
+                                    X2D1NoXlPosDto.SxDto = Convert.ToDouble(items[0]) * 1e6;
+                                    X2D1NoXlPosDto.XdDto = Convert.ToDouble(items[1]) * 1e6;
+                                    X2D1NoXlPosDto.MainYbDto = Convert.ToDouble(items[2]) * 1e6;
+                                    X2D1NoXlPosDto.AdjaYbDto = Convert.ToDouble(items[3]) * 1e6;
+                                    X2D1NoXlPosDto.SatTxLon = IniFiles.ReadValue<double>("Station_Data2023.ini", "卫星接收天线", "Lon");
+                                    X2D1NoXlPosDto.SatTxLat = IniFiles.ReadValue<double>("Station_Data2023.ini", "卫星接收天线", "Lat");
+                                    X2D1NoXlPosDto.CdbTxLon = IniFiles.ReadValue<double>("Station_Data2023.ini", "超短波接收天线", "Lon");
+                                    X2D1NoXlPosDto.CdbTxLat = IniFiles.ReadValue<double>("Station_Data2023.ini", "超短波接收天线", "Lat");
+                                    X2D1NoXlPosDto.RefLon = IniFiles.ReadValue<double>("Station_Data2023.ini", "参考站", "Lon");
+                                    X2D1NoXlPosDto.RefLat = IniFiles.ReadValue<double>("Station_Data2023.ini", "参考站", "Lat");
                                     var content = new StringContent(JsonConvert.SerializeObject(X2D1NoXlPosDto), System.Text.Encoding.UTF8, "application/json");
                                     var response = await client.PostAsync(url, content);
                                     Log($"已向[{txtAddr1.Text}]发送第{idx++}条仿真结果");
@@ -292,19 +292,19 @@ namespace XdCxRhDW.Sender
                                     RHNoXlPosDto.SigTime = DateTime.Now;
                                     RHNoXlPosDto.MainSatID = 19548;
                                     RHNoXlPosDto.AdjaSatID = 20253;
-                                    RHNoXlPosDto.SxDto = Convert.ToDouble(items[0]);
-                                    RHNoXlPosDto.XdDto = Convert.ToDouble(items[1]);
-                                    RHNoXlPosDto.MainYbDto = Convert.ToDouble(items[2]);
-                                    RHNoXlPosDto.AdjaYbDto = Convert.ToDouble(items[3]);
+                                    RHNoXlPosDto.SxDto = Convert.ToDouble(items[0]) * 1e6;
+                                    RHNoXlPosDto.XdDto = Convert.ToDouble(items[1]) * 1e6;
+                                    RHNoXlPosDto.MainYbDto = Convert.ToDouble(items[2]) * 1e6;
+                                    RHNoXlPosDto.AdjaYbDto = Convert.ToDouble(items[3]) * 1e6;
                                     RHNoXlPosDto.CxRes = Convert.ToDouble(items[4]);
-                                    RHNoXlPosDto.SatTxLon = IniFiles.ReadValue<double>("Station_Data2023", "卫星接收天线", "Lon");
-                                    RHNoXlPosDto.SatTxLat = IniFiles.ReadValue<double>("Station_Data2023", "卫星接收天线", "Lat");
-                                    RHNoXlPosDto.CdbTxLon = IniFiles.ReadValue<double>("Station_Data2023", "超短波接收天线", "Lon");
-                                    RHNoXlPosDto.CdbTxLat = IniFiles.ReadValue<double>("Station_Data2023", "超短波接收天线", "Lat");
-                                    RHNoXlPosDto.CxLon = IniFiles.ReadValue<double>("Station_Data2023", "侧向站", "Lon");
-                                    RHNoXlPosDto.CxLat = IniFiles.ReadValue<double>("Station_Data2023", "侧向站", "Lat");
-                                    RHNoXlPosDto.RefLon = IniFiles.ReadValue<double>("Station_Data2023", "参考站", "Lon");
-                                    RHNoXlPosDto.RefLat = IniFiles.ReadValue<double>("Station_Data2023", "参考站", "Lat");
+                                    RHNoXlPosDto.SatTxLon = IniFiles.ReadValue<double>("Station_Data2023.ini", "卫星接收天线", "Lon");
+                                    RHNoXlPosDto.SatTxLat = IniFiles.ReadValue<double>("Station_Data2023.ini", "卫星接收天线", "Lat");
+                                    RHNoXlPosDto.CdbTxLon = IniFiles.ReadValue<double>("Station_Data2023.ini", "超短波接收天线", "Lon");
+                                    RHNoXlPosDto.CdbTxLat = IniFiles.ReadValue<double>("Station_Data2023.ini", "超短波接收天线", "Lat");
+                                    RHNoXlPosDto.CxLon = IniFiles.ReadValue<double>("Station_Data2023.ini", "侧向站", "Lon");
+                                    RHNoXlPosDto.CxLat = IniFiles.ReadValue<double>("Station_Data2023.ini", "侧向站", "Lat");
+                                    RHNoXlPosDto.RefLon = IniFiles.ReadValue<double>("Station_Data2023.ini", "参考站", "Lon");
+                                    RHNoXlPosDto.RefLat = IniFiles.ReadValue<double>("Station_Data2023.ini", "参考站", "Lat");
                                     var content = new StringContent(JsonConvert.SerializeObject(RHNoXlPosDto), System.Text.Encoding.UTF8, "application/json");
                                     var response = await client.PostAsync(url, content);
                                     Log($"已向[{txtAddr1.Text}]发送第{idx++}条仿真结果");
@@ -386,12 +386,12 @@ namespace XdCxRhDW.Sender
             X2D1PosDto.AdjaX = 0;
             X2D1PosDto.AdjaY = 0;
             X2D1PosDto.AdjaZ = 0;
-            X2D1PosDto.SatTxLon = IniFiles.ReadValue<double>("Station_Data2023", "卫星接收天线", "Lon");
-            X2D1PosDto.SatTxLat = IniFiles.ReadValue<double>("Station_Data2023", "卫星接收天线", "Lat");
-            X2D1PosDto.CdbTxLon = IniFiles.ReadValue<double>("Station_Data2023", "超短波接收天线", "Lon");
-            X2D1PosDto.CdbTxLat = IniFiles.ReadValue<double>("Station_Data2023", "超短波接收天线", "Lat");
-            X2D1PosDto.RefLon = IniFiles.ReadValue<double>("Station_Data2023", "参考站", "Lon");
-            X2D1PosDto.RefLat = IniFiles.ReadValue<double>("Station_Data2023", "参考站", "Lat");
+            X2D1PosDto.SatTxLon = IniFiles.ReadValue<double>("Station_Data2023.ini", "卫星接收天线", "Lon");
+            X2D1PosDto.SatTxLat = IniFiles.ReadValue<double>("Station_Data2023.ini", "卫星接收天线", "Lat");
+            X2D1PosDto.CdbTxLon = IniFiles.ReadValue<double>("Station_Data2023.ini", "超短波接收天线", "Lon");
+            X2D1PosDto.CdbTxLat = IniFiles.ReadValue<double>("Station_Data2023.ini", "超短波接收天线", "Lat");
+            X2D1PosDto.RefLon = IniFiles.ReadValue<double>("Station_Data2023.ini", "参考站", "Lon");
+            X2D1PosDto.RefLat = IniFiles.ReadValue<double>("Station_Data2023.ini", "参考站", "Lat");
             return X2D1PosDto;
         }
 

+ 115 - 85
XdCxRhDW.WebApi/Controllers/PosController.cs

@@ -35,7 +35,7 @@ namespace XdCxRhDW.App.WebAPI
         /// <param name="dto">定位参数</param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<AjaxResult<PosRes>> PosX1D1Async(X1D1PosDto dto)
+        public async Task<AjaxResult<PosResDto>> PosX1D1Async(X1D1PosDto dto)
         {
             using (RHDWContext db = new RHDWContext())
             {
@@ -43,7 +43,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (runTask == null)
                 {
                     Serilog.Log.Warning($"接收到一星一地测向带参定位(含星历)参数,由于任务没有运行中忽略本次定位!");
-                    return Error<PosRes>($"多模式融合定位平台没有启动一星一地测向定位任务");
+                    return Error<PosResDto>($"多模式融合定位平台没有启动一星一地测向定位任务");
                 }
 
                 var StationRes = db.StationRes.Add(new StationRes()
@@ -91,20 +91,35 @@ namespace XdCxRhDW.App.WebAPI
                     PosLat = res[1],
                     MirrLon = res[3],
                     MirrLat = res[4],
+                    PosResType = EnumPosResType.X1D1CX,
                 };
                 posRes = db.PosRes.Add(posRes);
                 await db.SaveChangesAsync();
                 PosObServer.Instance.Pub(posRes);
-                return Success(posRes);
+                return Success(Map(posRes));
             }
         }
-
+        private PosResDto Map(PosRes res)
+        {
+            return new PosResDto()
+            {
+                ID = res.ID,
+                SigTime = res.SigTime,
+                TaskInfoID = res.TaskInfoID,
+                TarName = string.IsNullOrWhiteSpace(res.TarName) ? "未知目标" : res.TarName,
+                PosLon = res.PosLon,
+                PosLat = res.PosLat,
+                MirrLon = res.MirrLon,
+                MirrLat = res.MirrLat,
+                PosResType = (EnumPosResTypeDto)((int)res.PosResType)
+            };
+        }
         /// <summary>
         /// 一星一地测向带参定位(无星历)
         /// </summary>
         /// <returns>返回定位结果ID</returns>
         [HttpPost]
-        public async Task<AjaxResult<PosRes>> PosX1D1NoXlAsync(X1D1NoXlPosDto dto)
+        public async Task<AjaxResult<PosResDto>> PosX1D1NoXlAsync(X1D1NoXlPosDto dto)
         {
             using (RHDWContext db = new RHDWContext())
             {
@@ -112,7 +127,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (runTask == null)
                 {
                     Serilog.Log.Warning($"接收到一星一地带参定位(无星历)参数,由于任务没有运行中忽略本次定位!");
-                    return Error<PosRes>($"多模式融合定位平台没有启动一星一地定位任务");
+                    return Error<PosResDto>($"多模式融合定位平台没有启动一星一地定位任务");
                 }
                 var parameter1 = new SQLiteParameter("@sigTime", dto.SigTime);
                 var parameter2 = new SQLiteParameter("@satcode", dto.MainSatID);
@@ -120,7 +135,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (xlInfo1 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.MainSatID}]的双行根数星历");
-                    return Error<PosRes>($"未找到卫星[{dto.MainSatID}]的双行根数星历");
+                    return Error<PosResDto>($"未找到卫星[{dto.MainSatID}]的双行根数星历");
                 }
                 Serilog.Log.Information($"卫星{dto.MainSatID}使用{xlInfo1.TwoLine}进行星历推算");
                 var settings = await db.SysSetings.FirstOrDefaultAsync();
@@ -131,7 +146,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (!response.IsSuccessStatusCode) // 处理响应失败
                 {
                     Serilog.Log.Error($"[{dto.MainSatID}]星厉推算失败");
-                    return Error<PosRes>($"[{dto.MainSatID}]星厉推算失败");
+                    return Error<PosResDto>($"[{dto.MainSatID}]星厉推算失败");
                 }
                 var content = await response.Content.ReadAsStringAsync();
                 var ephMain = JsonConvert.DeserializeObject<AjaxResult<SatEphDto>>(content).data;
@@ -180,11 +195,12 @@ namespace XdCxRhDW.App.WebAPI
                     PosLat = res[1],
                     MirrLon = res[3],
                     MirrLat = res[4],
+                    PosResType = EnumPosResType.X1D1CX,
                 };
                 posRes = db.PosRes.Add(posRes);
                 await db.SaveChangesAsync();
                 PosObServer.Instance.Pub(posRes);
-                return Success(posRes);
+                return Success(Map(posRes));
             }
         }
         #endregion
@@ -196,7 +212,7 @@ namespace XdCxRhDW.App.WebAPI
         /// <param name="dto">定位参数</param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<AjaxResult<PosRes>> PosX2D1Async(X2D1PosDto dto)
+        public async Task<AjaxResult<PosResDto>> PosX2D1Async(X2D1PosDto dto)
         {
             using (RHDWContext db = new RHDWContext())
             {
@@ -204,7 +220,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (runTask == null)
                 {
                     Serilog.Log.Warning($"接收到两星一地带参定位(含星历)参数,由于任务没有运行中忽略本次定位!");
-                    return Error<PosRes>($"多模式融合定位平台没有启动两星一地定位任务");
+                    return Error<PosResDto>($"多模式融合定位平台没有启动两星一地定位任务");
                 }
 
                 var StationRes = db.StationRes.Add(new StationRes()
@@ -250,11 +266,12 @@ namespace XdCxRhDW.App.WebAPI
                     PosLat = res[1],
                     MirrLon = res[3],
                     MirrLat = res[4],
+                    PosResType = EnumPosResType.X2D1,
                 };
                 posRes = db.PosRes.Add(posRes);
                 await db.SaveChangesAsync();
                 PosObServer.Instance.Pub(posRes);
-                return Success(posRes);
+                return Success(Map(posRes));
             }
         }
 
@@ -263,7 +280,7 @@ namespace XdCxRhDW.App.WebAPI
         /// </summary>
         /// <returns>返回定位结果ID</returns>
         [HttpPost]
-        public async Task<AjaxResult<PosRes>> PosX2D1NoXlAsync(X2D1NoXlPosDto dto)
+        public async Task<AjaxResult<PosResDto>> PosX2D1NoXlAsync(X2D1NoXlPosDto dto)
         {
             using (RHDWContext db = new RHDWContext())
             {
@@ -271,7 +288,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (runTask == null)
                 {
                     Serilog.Log.Warning($"接收到两星一地带参定位(无星历)参数,由于任务没有运行中忽略本次定位!");
-                    return Error<PosRes>($"多模式融合定位平台没有启动两星一地定位任务");
+                    return Error<PosResDto>($"多模式融合定位平台没有启动两星一地定位任务");
                 }
                 var parameter1 = new SQLiteParameter("@sigTime", dto.SigTime);
                 var parameter2 = new SQLiteParameter("@satcode", dto.MainSatID);
@@ -280,14 +297,14 @@ namespace XdCxRhDW.App.WebAPI
                 if (xlInfo1 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.MainSatID}]的双行根数星历");
-                    return Error<PosRes>($"未找到卫星[{dto.MainSatID}]的双行根数星历");
+                    return Error<PosResDto>($"未找到卫星[{dto.MainSatID}]的双行根数星历");
                 }
 
                 var xlInfo2 = await db.XlInfos.SqlQuery("select * from XlInfo where ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))=(select min(ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))) from XlInfo where satcode=@satcode)", parameter1, parameter3).FirstOrDefaultAsync();
                 if (xlInfo2 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.AdjaSatID}]的双行根数星历");
-                    return Error<PosRes>($"未找到卫星[{dto.AdjaSatID}]的双行根数星历");
+                    return Error<PosResDto>($"未找到卫星[{dto.AdjaSatID}]的双行根数星历");
                 }
                 Serilog.Log.Information($"卫星{dto.MainSatID}使用{xlInfo1.TwoLine}进行星历推算");
                 Serilog.Log.Information($"卫星{dto.AdjaSatID}使用{xlInfo2.TwoLine}进行星历推算");
@@ -299,7 +316,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (!response.IsSuccessStatusCode) // 处理响应失败
                 {
                     Serilog.Log.Error($"[{dto.MainSatID}]星厉推算失败");
-                    return Error<PosRes>($"[{dto.MainSatID}]星厉推算失败");
+                    return Error<PosResDto>($"[{dto.MainSatID}]星厉推算失败");
                 }
                 var content = await response.Content.ReadAsStringAsync();
                 var ephMain = JsonConvert.DeserializeObject<AjaxResult<SatEphDto>>(content).data;
@@ -309,7 +326,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (!response2.IsSuccessStatusCode) // 处理响应失败
                 {
                     Serilog.Log.Error($"[{dto.AdjaSatID}]星厉推算失败");
-                    return Error<PosRes>($"[{dto.AdjaSatID}]星厉推算失败");
+                    return Error<PosResDto>($"[{dto.AdjaSatID}]星厉推算失败");
                 }
                 var content2 = await response2.Content.ReadAsStringAsync();
                 var ephAdja = JsonConvert.DeserializeObject<AjaxResult<SatEphDto>>(content2).data;
@@ -357,11 +374,12 @@ namespace XdCxRhDW.App.WebAPI
                     PosLat = res[1],
                     MirrLon = res[3],
                     MirrLat = res[4],
+                    PosResType = EnumPosResType.X2D1,
                 };
                 posRes = db.PosRes.Add(posRes);
                 await db.SaveChangesAsync();
                 PosObServer.Instance.Pub(posRes);
-                return Success(posRes);
+                return Success(Map(posRes));
             }
         }
 
@@ -371,7 +389,7 @@ namespace XdCxRhDW.App.WebAPI
         /// <param name="dto">定位参数</param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<AjaxResult<PosRes>> PosX2D1NoParAsync(X2D1NoParPosDto dto)
+        public async Task<AjaxResult<PosResDto>> PosX2D1NoParAsync(X2D1NoParPosDto dto)
         {
             using (RHDWContext db = new RHDWContext())
             {
@@ -379,7 +397,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (runTask == null)
                 {
                     Serilog.Log.Warning($"接收到两星一地无参定位(含星历)参数,由于任务没有运行中忽略本次定位!");
-                    return Error<PosRes>($"多模式融合定位平台没有启动两星一地定位任务");
+                    return Error<PosResDto>($"多模式融合定位平台没有启动两星一地定位任务");
                 }
 
                 var StationRes = db.StationRes.Add(new StationRes()
@@ -421,12 +439,13 @@ namespace XdCxRhDW.App.WebAPI
                     PosLat = res[1],
                     MirrLon = res[3],
                     MirrLat = res[4],
+                    PosResType = EnumPosResType.X2D1NoRef,
                 };
 
                 posRes = db.PosRes.Add(posRes);
                 await db.SaveChangesAsync();
                 PosObServer.Instance.Pub(posRes);
-                return Success(posRes);
+                return Success(Map(posRes));
             }
         }
 
@@ -435,7 +454,7 @@ namespace XdCxRhDW.App.WebAPI
         /// </summary>
         /// <returns>返回定位结果ID</returns>
         [HttpPost]
-        public async Task<AjaxResult<PosRes>> PosX2D1NoXlNoParAsync(X2D1NoXlNoParlPosDto dto)
+        public async Task<AjaxResult<PosResDto>> PosX2D1NoXlNoParAsync(X2D1NoXlNoParlPosDto dto)
         {
             using (RHDWContext db = new RHDWContext())
             {
@@ -443,7 +462,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (runTask == null)
                 {
                     Serilog.Log.Warning($"接收到两星一地无参定位(无星历)参数,由于任务没有运行中忽略本次定位!");
-                    return Error<PosRes>($"多模式融合定位平台没有启动两星一地定位任务");
+                    return Error<PosResDto>($"多模式融合定位平台没有启动两星一地定位任务");
                 }
                 var parameter1 = new SQLiteParameter("@sigTime", dto.SigTime);
                 var parameter2 = new SQLiteParameter("@satcode", dto.MainSatID);
@@ -452,14 +471,14 @@ namespace XdCxRhDW.App.WebAPI
                 if (xlInfo1 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.MainSatID}]的双行根数星历");
-                    return Error<PosRes>($"未找到卫星[{dto.MainSatID}]的双行根数星历");
+                    return Error<PosResDto>($"未找到卫星[{dto.MainSatID}]的双行根数星历");
                 }
 
                 var xlInfo2 = await db.XlInfos.SqlQuery("select * from XlInfo where ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))=(select min(ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))) from XlInfo where satcode=@satcode)", parameter1, parameter3).FirstOrDefaultAsync();
                 if (xlInfo2 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.AdjaSatID}]的双行根数星历");
-                    return Error<PosRes>($"未找到卫星[{dto.AdjaSatID}]的双行根数星历");
+                    return Error<PosResDto>($"未找到卫星[{dto.AdjaSatID}]的双行根数星历");
                 }
                 Serilog.Log.Information($"卫星{dto.MainSatID}使用{xlInfo1.TwoLine}进行星历推算");
                 Serilog.Log.Information($"卫星{dto.AdjaSatID}使用{xlInfo2.TwoLine}进行星历推算");
@@ -471,7 +490,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (!response.IsSuccessStatusCode) // 处理响应失败
                 {
                     Serilog.Log.Error($"[{dto.MainSatID}]星厉推算失败");
-                    return Error<PosRes>($"[{dto.MainSatID}]星厉推算失败");
+                    return Error<PosResDto>($"[{dto.MainSatID}]星厉推算失败");
                 }
                 var content = await response.Content.ReadAsStringAsync();
                 var ephMain = JsonConvert.DeserializeObject<AjaxResult<SatEphDto>>(content).data;
@@ -481,7 +500,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (!response2.IsSuccessStatusCode) // 处理响应失败
                 {
                     Serilog.Log.Error($"[{dto.AdjaSatID}]星厉推算失败");
-                    return Error<PosRes>($"[{dto.AdjaSatID}]星厉推算失败");
+                    return Error<PosResDto>($"[{dto.AdjaSatID}]星厉推算失败");
                 }
                 var content2 = await response2.Content.ReadAsStringAsync();
                 var ephAdja = JsonConvert.DeserializeObject<AjaxResult<SatEphDto>>(content2).data;
@@ -525,12 +544,13 @@ namespace XdCxRhDW.App.WebAPI
                     PosLat = res[1],
                     MirrLon = res[3],
                     MirrLat = res[4],
+                    PosResType = EnumPosResType.X2D1NoRef,
                 };
 
                 posRes = db.PosRes.Add(posRes);
                 await db.SaveChangesAsync();
                 PosObServer.Instance.Pub(posRes);
-                return Success(posRes);
+                return Success(Map(posRes));
             }
         }
         #endregion
@@ -542,7 +562,7 @@ namespace XdCxRhDW.App.WebAPI
         /// <param name="dto">定位参数</param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<AjaxResult<PosRes>> PosRhAsync(RHPosDto dto)
+        public async Task<AjaxResult<PosResDto>> PosRhAsync(RHPosDto dto)
         {
             using (RHDWContext db = new RHDWContext())
             {
@@ -550,7 +570,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (runTask == null)
                 {
                     Serilog.Log.Warning($"接收到融合带参定位(含星历)参数,由于任务没有运行中忽略本次定位!");
-                    return Error<PosRes>($"多模式融合定位平台没有启动融合定位任务");
+                    return Error<PosResDto>($"多模式融合定位平台没有启动融合定位任务");
                 }
 
                 var StationRes = db.StationRes.Add(new StationRes()
@@ -605,11 +625,12 @@ namespace XdCxRhDW.App.WebAPI
                     PosLat = res[1],
                     MirrLon = res[3],
                     MirrLat = res[4],
+                    PosResType = EnumPosResType.RH,
                 };
                 posRes = db.PosRes.Add(posRes);
                 await db.SaveChangesAsync();
                 PosObServer.Instance.Pub(posRes);
-                return Success(posRes);
+                return Success(Map(posRes));
             }
         }
 
@@ -618,7 +639,7 @@ namespace XdCxRhDW.App.WebAPI
         /// </summary>
         /// <returns>返回定位结果ID</returns>
         [HttpPost]
-        public async Task<AjaxResult<PosRes>> PosRhNoXlAsync(RHNoXlPosDto dto)
+        public async Task<AjaxResult<PosResDto>> PosRhNoXlAsync(RHNoXlPosDto dto)
         {
             using (RHDWContext db = new RHDWContext())
             {
@@ -626,7 +647,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (runTask == null)
                 {
                     Serilog.Log.Warning($"接收到融合带参定位(无星历)参数,由于任务没有运行中忽略本次定位!");
-                    return Error<PosRes>($"多模式融合定位平台没有启动融合定位任务");
+                    return Error<PosResDto>($"多模式融合定位平台没有启动融合定位任务");
                 }
                 var parameter1 = new SQLiteParameter("@sigTime", dto.SigTime);
                 var parameter2 = new SQLiteParameter("@satcode", dto.MainSatID);
@@ -635,14 +656,14 @@ namespace XdCxRhDW.App.WebAPI
                 if (xlInfo1 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.MainSatID}]的双行根数星历");
-                    return Error<PosRes>($"未找到卫星[{dto.MainSatID}]的双行根数星历");
+                    return Error<PosResDto>($"未找到卫星[{dto.MainSatID}]的双行根数星历");
                 }
 
                 var xlInfo2 = await db.XlInfos.SqlQuery("select * from XlInfo where ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))=(select min(ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))) from XlInfo where satcode=@satcode)", parameter1, parameter3).FirstOrDefaultAsync();
                 if (xlInfo2 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.AdjaSatID}]的双行根数星历");
-                    return Error<PosRes>($"未找到卫星[{dto.AdjaSatID}]的双行根数星历");
+                    return Error<PosResDto>($"未找到卫星[{dto.AdjaSatID}]的双行根数星历");
                 }
                 Serilog.Log.Information($"卫星{dto.MainSatID}使用{xlInfo1.TwoLine}进行星历推算");
                 Serilog.Log.Information($"卫星{dto.AdjaSatID}使用{xlInfo2.TwoLine}进行星历推算");
@@ -654,7 +675,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (!response.IsSuccessStatusCode) // 处理响应失败
                 {
                     Serilog.Log.Error($"[{dto.MainSatID}]星厉推算失败");
-                    return Error<PosRes>($"[{dto.MainSatID}]星厉推算失败");
+                    return Error<PosResDto>($"[{dto.MainSatID}]星厉推算失败");
                 }
                 var content = await response.Content.ReadAsStringAsync();
                 var ephMain = JsonConvert.DeserializeObject<AjaxResult<SatEphDto>>(content).data;
@@ -664,7 +685,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (!response2.IsSuccessStatusCode) // 处理响应失败
                 {
                     Serilog.Log.Error($"[{dto.AdjaSatID}]星厉推算失败");
-                    return Error<PosRes>($"[{dto.AdjaSatID}]星厉推算失败");
+                    return Error<PosResDto>($"[{dto.AdjaSatID}]星厉推算失败");
                 }
                 var content2 = await response2.Content.ReadAsStringAsync();
                 var ephAdja = JsonConvert.DeserializeObject<AjaxResult<SatEphDto>>(content2).data;
@@ -721,11 +742,12 @@ namespace XdCxRhDW.App.WebAPI
                     PosLat = res[1],
                     MirrLon = res[3],
                     MirrLat = res[4],
+                    PosResType = EnumPosResType.RH,
                 };
                 posRes = db.PosRes.Add(posRes);
                 await db.SaveChangesAsync();
                 PosObServer.Instance.Pub(posRes);
-                return Success(posRes);
+                return Success(Map(posRes));
             }
         }
         #endregion
@@ -737,7 +759,7 @@ namespace XdCxRhDW.App.WebAPI
         /// <param name="dto">定位参数</param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<AjaxResult<PosRes>> PosX3TwoDtoAsync(X3TwoDtoPosDto dto)
+        public async Task<AjaxResult<PosResDto>> PosX3TwoDtoAsync(X3TwoDtoPosDto dto)
         {
             using (RHDWContext db = new RHDWContext())
             {
@@ -745,7 +767,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (runTask == null)
                 {
                     Serilog.Log.Warning($"接收到三星双时差带参定位(含星历)参数,由于任务没有运行中忽略本次定位!");
-                    return Error<PosRes>($"多模式融合定位平台没有启动三星双时差定位任务");
+                    return Error<PosResDto>($"多模式融合定位平台没有启动三星双时差定位任务");
                 }
 
                 var StationRes = db.StationRes.Add(new StationRes()
@@ -793,11 +815,12 @@ namespace XdCxRhDW.App.WebAPI
                     PosLat = res[1],
                     MirrLon = res[3],
                     MirrLat = res[4],
+                    PosResType = EnumPosResType.X3,
                 };
                 posRes = db.PosRes.Add(posRes);
                 await db.SaveChangesAsync();
                 PosObServer.Instance.Pub(posRes);
-                return Success(posRes);
+                return Success(Map(posRes));
             }
         }
 
@@ -806,7 +829,7 @@ namespace XdCxRhDW.App.WebAPI
         /// </summary>
         /// <returns>返回定位结果ID</returns>
         [HttpPost]
-        public async Task<AjaxResult<PosRes>> PosX3TwoDtoNoXlAsync(X3TwoDtoNoXlPosDto dto)
+        public async Task<AjaxResult<PosResDto>> PosX3TwoDtoNoXlAsync(X3TwoDtoNoXlPosDto dto)
         {
             using (RHDWContext db = new RHDWContext())
             {
@@ -814,7 +837,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (runTask == null)
                 {
                     Serilog.Log.Warning($"接收到三星双时差带参定位(无星历)参数,由于任务没有运行中忽略本次定位!");
-                    return Error<PosRes>($"多模式融合定位平台没有启动三星双时差定位任务");
+                    return Error<PosResDto>($"多模式融合定位平台没有启动三星双时差定位任务");
                 }
                 var parameter1 = new SQLiteParameter("@sigTime", dto.SigTime);
                 var parameter2 = new SQLiteParameter("@satcode", dto.MainSatID);
@@ -824,21 +847,21 @@ namespace XdCxRhDW.App.WebAPI
                 if (xlInfo1 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.MainSatID}]的双行根数星历");
-                    return Error<PosRes>($"未找到卫星[{dto.MainSatID}]的双行根数星历");
+                    return Error<PosResDto>($"未找到卫星[{dto.MainSatID}]的双行根数星历");
                 }
 
                 var xlInfo2 = await db.XlInfos.SqlQuery("select * from XlInfo where ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))=(select min(ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))) from XlInfo where satcode=@satcode)", parameter1, parameter3).FirstOrDefaultAsync();
                 if (xlInfo2 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.Adja1SatID}]的双行根数星历");
-                    return Error<PosRes>($"未找到卫星[{dto.Adja1SatID}]的双行根数星历");
+                    return Error<PosResDto>($"未找到卫星[{dto.Adja1SatID}]的双行根数星历");
                 }
 
                 var xlInfo3 = await db.XlInfos.SqlQuery("select * from XlInfo where ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))=(select min(ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))) from XlInfo where satcode=@satcode)", parameter1, parameter4).FirstOrDefaultAsync();
                 if (xlInfo3 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.Adja2SatID}]的双行根数星历");
-                    return Error<PosRes>($"未找到卫星[{dto.Adja2SatID}]的双行根数星历");
+                    return Error<PosResDto>($"未找到卫星[{dto.Adja2SatID}]的双行根数星历");
                 }
                 Serilog.Log.Information($"卫星{dto.MainSatID}使用{xlInfo1.TwoLine}进行星历推算");
                 Serilog.Log.Information($"卫星{dto.Adja1SatID}使用{xlInfo2.TwoLine}进行星历推算");
@@ -852,7 +875,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (!response.IsSuccessStatusCode) // 处理响应失败
                 {
                     Serilog.Log.Error($"[{dto.MainSatID}]星厉推算失败");
-                    return Error<PosRes>($"[{dto.MainSatID}]星厉推算失败");
+                    return Error<PosResDto>($"[{dto.MainSatID}]星厉推算失败");
                 }
                 var content = await response.Content.ReadAsStringAsync();
                 var ephMain = JsonConvert.DeserializeObject<AjaxResult<SatEphDto>>(content).data;
@@ -862,7 +885,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (!response2.IsSuccessStatusCode) // 处理响应失败
                 {
                     Serilog.Log.Error($"[{dto.Adja1SatID}]星厉推算失败");
-                    return Error<PosRes>($"[{dto.Adja1SatID}]星厉推算失败");
+                    return Error<PosResDto>($"[{dto.Adja1SatID}]星厉推算失败");
                 }
                 var content2 = await response2.Content.ReadAsStringAsync();
                 var ephAdja1 = JsonConvert.DeserializeObject<AjaxResult<SatEphDto>>(content2).data;
@@ -872,7 +895,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (!response3.IsSuccessStatusCode) // 处理响应失败
                 {
                     Serilog.Log.Error($"[{dto.Adja2SatID}]星厉推算失败");
-                    return Error<PosRes>($"[{dto.Adja2SatID}]星厉推算失败");
+                    return Error<PosResDto>($"[{dto.Adja2SatID}]星厉推算失败");
                 }
                 var content3 = await response2.Content.ReadAsStringAsync();
                 var ephAdja2 = JsonConvert.DeserializeObject<AjaxResult<SatEphDto>>(content3).data;
@@ -922,11 +945,12 @@ namespace XdCxRhDW.App.WebAPI
                     PosLat = res[1],
                     MirrLon = res[3],
                     MirrLat = res[4],
+                    PosResType = EnumPosResType.X3,
                 };
                 posRes = db.PosRes.Add(posRes);
                 await db.SaveChangesAsync();
                 PosObServer.Instance.Pub(posRes);
-                return Success(posRes);
+                return Success(Map(posRes));
             }
         }
 
@@ -936,7 +960,7 @@ namespace XdCxRhDW.App.WebAPI
         /// <param name="dto">定位参数</param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<AjaxResult<PosRes>> PosX3TwoDtoNoParAsync(X3TwoDtoNoParPosDto dto)
+        public async Task<AjaxResult<PosResDto>> PosX3TwoDtoNoParAsync(X3TwoDtoNoParPosDto dto)
         {
             using (RHDWContext db = new RHDWContext())
             {
@@ -944,7 +968,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (runTask == null)
                 {
                     Serilog.Log.Warning($"接收到三星双时差无参定位(含星历)参数,由于任务没有运行中忽略本次定位!");
-                    return Error<PosRes>($"多模式融合定位平台没有启动三星双时差定位任务");
+                    return Error<PosResDto>($"多模式融合定位平台没有启动三星双时差定位任务");
                 }
 
                 var StationRes = db.StationRes.Add(new StationRes()
@@ -987,11 +1011,12 @@ namespace XdCxRhDW.App.WebAPI
                     PosLat = res[1],
                     MirrLon = res[3],
                     MirrLat = res[4],
+                    PosResType = EnumPosResType.X3NoRef,
                 };
                 posRes = db.PosRes.Add(posRes);
                 await db.SaveChangesAsync();
                 PosObServer.Instance.Pub(posRes);
-                return Success(posRes);
+                return Success(Map(posRes));
             }
         }
 
@@ -1000,7 +1025,7 @@ namespace XdCxRhDW.App.WebAPI
         /// </summary>
         /// <returns>返回定位结果ID</returns>
         [HttpPost]
-        public async Task<AjaxResult<PosRes>> PosX3TwoDtoNoXlNoParAsync(X3TwoDtoNoXlNoParPosDto dto)
+        public async Task<AjaxResult<PosResDto>> PosX3TwoDtoNoXlNoParAsync(X3TwoDtoNoXlNoParPosDto dto)
         {
             using (RHDWContext db = new RHDWContext())
             {
@@ -1008,7 +1033,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (runTask == null)
                 {
                     Serilog.Log.Warning($"接收到三星双时差无参定位(无星历)参数,由于任务没有运行中忽略本次定位!");
-                    return Error<PosRes>($"多模式融合定位平台没有启动三星双时差定位任务");
+                    return Error<PosResDto>($"多模式融合定位平台没有启动三星双时差定位任务");
                 }
                 var parameter1 = new SQLiteParameter("@sigTime", dto.SigTime);
                 var parameter2 = new SQLiteParameter("@satcode", dto.MainSatID);
@@ -1018,21 +1043,21 @@ namespace XdCxRhDW.App.WebAPI
                 if (xlInfo1 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.MainSatID}]的双行根数星历");
-                    return Error<PosRes>($"未找到卫星[{dto.MainSatID}]的双行根数星历");
+                    return Error<PosResDto>($"未找到卫星[{dto.MainSatID}]的双行根数星历");
                 }
 
                 var xlInfo2 = await db.XlInfos.SqlQuery("select * from XlInfo where ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))=(select min(ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))) from XlInfo where satcode=@satcode)", parameter1, parameter3).FirstOrDefaultAsync();
                 if (xlInfo2 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.Adja1SatID}]的双行根数星历");
-                    return Error<PosRes>($"未找到卫星[{dto.Adja1SatID}]的双行根数星历");
+                    return Error<PosResDto>($"未找到卫星[{dto.Adja1SatID}]的双行根数星历");
                 }
 
                 var xlInfo3 = await db.XlInfos.SqlQuery("select * from XlInfo where ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))=(select min(ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))) from XlInfo where satcode=@satcode)", parameter1, parameter4).FirstOrDefaultAsync();
                 if (xlInfo3 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.Adja2SatID}]的双行根数星历");
-                    return Error<PosRes>($"未找到卫星[{dto.Adja2SatID}]的双行根数星历");
+                    return Error<PosResDto>($"未找到卫星[{dto.Adja2SatID}]的双行根数星历");
                 }
                 Serilog.Log.Information($"卫星{dto.MainSatID}使用{xlInfo1.TwoLine}进行星历推算");
                 Serilog.Log.Information($"卫星{dto.Adja1SatID}使用{xlInfo2.TwoLine}进行星历推算");
@@ -1046,7 +1071,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (!response.IsSuccessStatusCode) // 处理响应失败
                 {
                     Serilog.Log.Error($"[{dto.MainSatID}]星厉推算失败");
-                    return Error<PosRes>($"[{dto.MainSatID}]星厉推算失败");
+                    return Error<PosResDto>($"[{dto.MainSatID}]星厉推算失败");
                 }
                 var content = await response.Content.ReadAsStringAsync();
                 var ephMain = JsonConvert.DeserializeObject<AjaxResult<SatEphDto>>(content).data;
@@ -1056,7 +1081,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (!response2.IsSuccessStatusCode) // 处理响应失败
                 {
                     Serilog.Log.Error($"[{dto.Adja1SatID}]星厉推算失败");
-                    return Error<PosRes>($"[{dto.Adja1SatID}]星厉推算失败");
+                    return Error<PosResDto>($"[{dto.Adja1SatID}]星厉推算失败");
                 }
                 var content2 = await response2.Content.ReadAsStringAsync();
                 var ephAdja1 = JsonConvert.DeserializeObject<AjaxResult<SatEphDto>>(content2).data;
@@ -1066,7 +1091,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (!response3.IsSuccessStatusCode) // 处理响应失败
                 {
                     Serilog.Log.Error($"[{dto.Adja2SatID}]星厉推算失败");
-                    return Error<PosRes>($"[{dto.Adja2SatID}]星厉推算失败");
+                    return Error<PosResDto>($"[{dto.Adja2SatID}]星厉推算失败");
                 }
                 var content3 = await response2.Content.ReadAsStringAsync();
                 var ephAdja2 = JsonConvert.DeserializeObject<AjaxResult<SatEphDto>>(content3).data;
@@ -1111,11 +1136,12 @@ namespace XdCxRhDW.App.WebAPI
                     PosLat = res[1],
                     MirrLon = res[3],
                     MirrLat = res[4],
+                    PosResType = EnumPosResType.X3NoRef,
                 };
                 posRes = db.PosRes.Add(posRes);
                 await db.SaveChangesAsync();
                 PosObServer.Instance.Pub(posRes);
-                return Success(posRes);
+                return Success(Map(posRes));
             }
         }
         #endregion
@@ -1127,7 +1153,7 @@ namespace XdCxRhDW.App.WebAPI
         /// <param name="dto">定位参数</param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<AjaxResult<PosRes>> PosX3TwoDfoAsync(X3TwoDfoPosDto dto)
+        public async Task<AjaxResult<PosResDto>> PosX3TwoDfoAsync(X3TwoDfoPosDto dto)
         {
             using (RHDWContext db = new RHDWContext())
             {
@@ -1135,7 +1161,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (runTask == null)
                 {
                     Serilog.Log.Warning($"接收到三星双频差带参定位(含星历)参数,由于任务没有运行中忽略本次定位!");
-                    return Error<PosRes>($"多模式融合定位平台没有启动三星双频差定位任务");
+                    return Error<PosResDto>($"多模式融合定位平台没有启动三星双频差定位任务");
                 }
 
                 var StationRes = db.StationRes.Add(new StationRes()
@@ -1196,11 +1222,12 @@ namespace XdCxRhDW.App.WebAPI
                     PosLat = res[1],
                     MirrLon = res[3],
                     MirrLat = res[4],
+                    PosResType = EnumPosResType.X3TwoDfo,
                 };
                 posRes = db.PosRes.Add(posRes);
                 await db.SaveChangesAsync();
                 PosObServer.Instance.Pub(posRes);
-                return Success(posRes);
+                return Success(Map(posRes));
             }
         }
 
@@ -1209,7 +1236,7 @@ namespace XdCxRhDW.App.WebAPI
         /// </summary>
         /// <returns>返回定位结果ID</returns>
         [HttpPost]
-        public async Task<AjaxResult<PosRes>> PosX3TwoDfoNoXlAsync(X3TwoDfoNoXlPosDto dto)
+        public async Task<AjaxResult<PosResDto>> PosX3TwoDfoNoXlAsync(X3TwoDfoNoXlPosDto dto)
         {
             using (RHDWContext db = new RHDWContext())
             {
@@ -1217,7 +1244,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (runTask == null)
                 {
                     Serilog.Log.Warning($"接收到三星双频差带参定位(无星历)参数,由于任务没有运行中忽略本次定位!");
-                    return Error<PosRes>($"多模式融合定位平台没有启动三星双频差定位任务");
+                    return Error<PosResDto>($"多模式融合定位平台没有启动三星双频差定位任务");
                 }
                 var parameter1 = new SQLiteParameter("@sigTime", dto.SigTime);
                 var parameter2 = new SQLiteParameter("@satcode", dto.MainSatID);
@@ -1227,21 +1254,21 @@ namespace XdCxRhDW.App.WebAPI
                 if (xlInfo1 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.MainSatID}]的双行根数星历");
-                    return Error<PosRes>($"未找到卫星[{dto.MainSatID}]的双行根数星历");
+                    return Error<PosResDto>($"未找到卫星[{dto.MainSatID}]的双行根数星历");
                 }
 
                 var xlInfo2 = await db.XlInfos.SqlQuery("select * from XlInfo where ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))=(select min(ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))) from XlInfo where satcode=@satcode)", parameter1, parameter3).FirstOrDefaultAsync();
                 if (xlInfo2 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.Adja1SatID}]的双行根数星历");
-                    return Error<PosRes>($"未找到卫星[{dto.Adja1SatID}]的双行根数星历");
+                    return Error<PosResDto>($"未找到卫星[{dto.Adja1SatID}]的双行根数星历");
                 }
 
                 var xlInfo3 = await db.XlInfos.SqlQuery("select * from XlInfo where ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))=(select min(ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))) from XlInfo where satcode=@satcode)", parameter1, parameter4).FirstOrDefaultAsync();
                 if (xlInfo3 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.Adja2SatID}]的双行根数星历");
-                    return Error<PosRes>($"未找到卫星[{dto.Adja2SatID}]的双行根数星历");
+                    return Error<PosResDto>($"未找到卫星[{dto.Adja2SatID}]的双行根数星历");
                 }
                 Serilog.Log.Information($"卫星{dto.MainSatID}使用{xlInfo1.TwoLine}进行星历推算");
                 Serilog.Log.Information($"卫星{dto.Adja1SatID}使用{xlInfo2.TwoLine}进行星历推算");
@@ -1255,7 +1282,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (!response.IsSuccessStatusCode) // 处理响应失败
                 {
                     Serilog.Log.Error($"[{dto.MainSatID}]星厉推算失败");
-                    return Error<PosRes>($"[{dto.MainSatID}]星厉推算失败");
+                    return Error<PosResDto>($"[{dto.MainSatID}]星厉推算失败");
                 }
                 var content = await response.Content.ReadAsStringAsync();
                 var ephMain = JsonConvert.DeserializeObject<AjaxResult<SatEphDto>>(content).data;
@@ -1265,7 +1292,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (!response2.IsSuccessStatusCode) // 处理响应失败
                 {
                     Serilog.Log.Error($"[{dto.Adja1SatID}]星厉推算失败");
-                    return Error<PosRes>($"[{dto.Adja1SatID}]星厉推算失败");
+                    return Error<PosResDto>($"[{dto.Adja1SatID}]星厉推算失败");
                 }
                 var content2 = await response2.Content.ReadAsStringAsync();
                 var ephAdja1 = JsonConvert.DeserializeObject<AjaxResult<SatEphDto>>(content2).data;
@@ -1275,7 +1302,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (!response3.IsSuccessStatusCode) // 处理响应失败
                 {
                     Serilog.Log.Error($"[{dto.Adja2SatID}]星厉推算失败");
-                    return Error<PosRes>($"[{dto.Adja2SatID}]星厉推算失败");
+                    return Error<PosResDto>($"[{dto.Adja2SatID}]星厉推算失败");
                 }
                 var content3 = await response2.Content.ReadAsStringAsync();
                 var ephAdja2 = JsonConvert.DeserializeObject<AjaxResult<SatEphDto>>(content3).data;
@@ -1338,11 +1365,12 @@ namespace XdCxRhDW.App.WebAPI
                     PosLat = res[1],
                     MirrLon = res[3],
                     MirrLat = res[4],
+                    PosResType = EnumPosResType.X3TwoDfo,
                 };
                 posRes = db.PosRes.Add(posRes);
                 await db.SaveChangesAsync();
                 PosObServer.Instance.Pub(posRes);
-                return Success(posRes);
+                return Success(Map(posRes));
             }
         }
         #endregion
@@ -1354,7 +1382,7 @@ namespace XdCxRhDW.App.WebAPI
         /// <param name="dto">定位参数</param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<AjaxResult<PosRes>> PosX2DtoDfoAsync(X2DtoDfoPosDto dto)
+        public async Task<AjaxResult<PosResDto>> PosX2DtoDfoAsync(X2DtoDfoPosDto dto)
         {
             using (RHDWContext db = new RHDWContext())
             {
@@ -1362,7 +1390,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (runTask == null)
                 {
                     Serilog.Log.Warning($"接收到双星时频差带参定位(含星历)参数,由于任务没有运行中忽略本次定位!");
-                    return Error<PosRes>($"多模式融合定位平台没有启动双星时频差定位任务");
+                    return Error<PosResDto>($"多模式融合定位平台没有启动双星时频差定位任务");
                 }
 
                 var StationRes = db.StationRes.Add(new StationRes()
@@ -1415,11 +1443,12 @@ namespace XdCxRhDW.App.WebAPI
                     PosLat = res[1],
                     MirrLon = res[3],
                     MirrLat = res[4],
+                    PosResType = EnumPosResType.X2Dfo,
                 };
                 posRes = db.PosRes.Add(posRes);
                 await db.SaveChangesAsync();
                 PosObServer.Instance.Pub(posRes);
-                return Success(posRes);
+                return Success(Map(posRes));
             }
         }
 
@@ -1428,7 +1457,7 @@ namespace XdCxRhDW.App.WebAPI
         /// </summary>
         /// <returns>返回定位结果ID</returns>
         [HttpPost]
-        public async Task<AjaxResult<PosRes>> PosX2DtoDfoNoXlAsync(X2DtoDfoNoXlPosDto dto)
+        public async Task<AjaxResult<PosResDto>> PosX2DtoDfoNoXlAsync(X2DtoDfoNoXlPosDto dto)
         {
             using (RHDWContext db = new RHDWContext())
             {
@@ -1436,7 +1465,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (runTask == null)
                 {
                     Serilog.Log.Warning($"接收到双星时频差带参定位(无星历)参数,由于任务没有运行中忽略本次定位!");
-                    return Error<PosRes>($"多模式融合定位平台没有启动双星时频差定位任务");
+                    return Error<PosResDto>($"多模式融合定位平台没有启动双星时频差定位任务");
                 }
                 var parameter1 = new SQLiteParameter("@sigTime", dto.SigTime);
                 var parameter2 = new SQLiteParameter("@satcode", dto.MainSatID);
@@ -1445,14 +1474,14 @@ namespace XdCxRhDW.App.WebAPI
                 if (xlInfo1 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.MainSatID}]的双行根数星历");
-                    return Error<PosRes>($"未找到卫星[{dto.MainSatID}]的双行根数星历");
+                    return Error<PosResDto>($"未找到卫星[{dto.MainSatID}]的双行根数星历");
                 }
 
                 var xlInfo2 = await db.XlInfos.SqlQuery("select * from XlInfo where ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))=(select min(ABS(JULIANDAY(TimeBJ)-JULIANDAY(@sigTime))) from XlInfo where satcode=@satcode)", parameter1, parameter3).FirstOrDefaultAsync();
                 if (xlInfo2 == null)
                 {
                     Serilog.Log.Error($"未找到卫星[{dto.AdjaSatID}]的双行根数星历");
-                    return Error<PosRes>($"未找到卫星[{dto.AdjaSatID}]的双行根数星历");
+                    return Error<PosResDto>($"未找到卫星[{dto.AdjaSatID}]的双行根数星历");
                 }
                 Serilog.Log.Information($"卫星{dto.MainSatID}使用{xlInfo1.TwoLine}进行星历推算");
                 Serilog.Log.Information($"卫星{dto.AdjaSatID}使用{xlInfo2.TwoLine}进行星历推算");
@@ -1465,7 +1494,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (!response.IsSuccessStatusCode) // 处理响应失败
                 {
                     Serilog.Log.Error($"[{dto.MainSatID}]星厉推算失败");
-                    return Error<PosRes>($"[{dto.MainSatID}]星厉推算失败");
+                    return Error<PosResDto>($"[{dto.MainSatID}]星厉推算失败");
                 }
                 var content = await response.Content.ReadAsStringAsync();
                 var ephMain = JsonConvert.DeserializeObject<AjaxResult<SatEphDto>>(content).data;
@@ -1475,7 +1504,7 @@ namespace XdCxRhDW.App.WebAPI
                 if (!response2.IsSuccessStatusCode) // 处理响应失败
                 {
                     Serilog.Log.Error($"[{dto.AdjaSatID}]星厉推算失败");
-                    return Error<PosRes>($"[{dto.AdjaSatID}]星厉推算失败");
+                    return Error<PosResDto>($"[{dto.AdjaSatID}]星厉推算失败");
                 }
                 var content2 = await response2.Content.ReadAsStringAsync();
                 var ephAdja1 = JsonConvert.DeserializeObject<AjaxResult<SatEphDto>>(content2).data;
@@ -1530,11 +1559,12 @@ namespace XdCxRhDW.App.WebAPI
                     PosLat = res[1],
                     MirrLon = res[3],
                     MirrLat = res[4],
+                    PosResType = EnumPosResType.X2Dfo,
                 };
                 posRes = db.PosRes.Add(posRes);
                 await db.SaveChangesAsync();
                 PosObServer.Instance.Pub(posRes);
-                return Success(posRes);
+                return Success(Map(posRes));
             }
         }
         #endregion

+ 63 - 0
XdCxRhDw.Dto/Class1.cs

@@ -0,0 +1,63 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace XdCxRhDw.Dto
+{
+    /// <summary>
+    /// 定位类型枚举
+    /// </summary>
+    public enum EnumPosResTypeDto
+    {
+        /// <summary>
+        /// 
+        /// </summary>
+        [Display(Name = "一星一地带参")]
+        X1D1CX,
+
+        /// <summary>
+        /// 
+        /// </summary>
+        [Display(Name = "两星一地带参")]
+        X2D1,
+
+        /// <summary>
+        /// 
+        /// </summary>
+        [Display(Name = "两星一地无参")]
+        X2D1NoRef,
+
+        /// <summary>
+        /// 
+        /// </summary>
+        [Display(Name = "融合定位")]//仅支持带参
+        RH,
+
+        /// <summary>
+        /// 
+        /// </summary>
+        [Display(Name = "三星双时差带参")]
+        X3,
+
+        /// <summary>
+        /// 
+        /// </summary>
+        [Display(Name = "三星双时差无参")]
+        X3NoRef,
+
+        /// <summary>
+        /// 
+        /// </summary>
+        [Display(Name = "三星双频差带参")]
+        X3TwoDfo,
+
+        /// <summary>
+        /// 
+        /// </summary>
+        [Display(Name = "双星时频差带参")]
+        X2Dfo,
+    }
+}

+ 24 - 2
XdCxRhDw.Dto/PosResDto.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
@@ -11,20 +12,30 @@ namespace XdCxRhDw.Dto
     /// </summary>
     public class PosResDto
     {
+        /// <summary>
+        /// 定位编号
+        /// </summary>
+        public long ID { get; set; }
+
         /// <summary>
         /// 信号时刻
         /// </summary>
         public DateTime SigTime { get; set; }
 
+        /// <summary>
+        /// 任务编号
+        /// </summary>
+        public int TaskInfoID { get; set; }
+
         /// <summary>
         /// 目标位置经度
         /// </summary>
-        public double Lon { get; set; }
+        public double PosLon { get; set; }
 
         /// <summary>
         /// 目标位置纬度
         /// </summary>
-        public double Lat { get; set; }
+        public double PosLat { get; set; }
 
         /// <summary>
         /// 镜像点经度
@@ -36,5 +47,16 @@ namespace XdCxRhDw.Dto
         /// </summary>
         public double? MirrLat { get; set; }
 
+        /// <summary>
+        /// 目标名称
+        /// </summary>
+        public string TarName { get; set; } = "未识别";
+
+        /// <summary>
+        /// 定位类型
+        /// </summary>
+        [Display(Name = "定位类型")]
+        public EnumPosResTypeDto PosResType { get; set; }
+
     }
 }

+ 1 - 0
XdCxRhDw.Dto/XdCxRhDw.Dto.csproj

@@ -48,6 +48,7 @@
   <ItemGroup>
     <Compile Include="CalcDto.cs" />
     <Compile Include="AjaxResult.cs" />
+    <Compile Include="Class1.cs" />
     <Compile Include="DetectDto.cs" />
     <Compile Include="DetectResDto.cs" />
     <Compile Include="EstimationResDto.cs" />