zoule 3 months ago
parent
commit
7f8215995a
41 changed files with 692 additions and 1299 deletions
  1. 55 56
      DbMigrate/Form1.Designer.cs
  2. 78 47
      DbMigrate/Form1.cs
  3. 6 4
      DbMigrate/dwpt.sql
  4. 0 76
      Service/CheckServer/App.config
  5. 17 0
      Service/CheckServer/Program.cs
  6. 0 76
      Service/CpuCgServer/App.config
  7. 17 0
      Service/CpuCgServer/Program.cs
  8. 0 76
      Service/GpuCgServer/App.config
  9. 17 0
      Service/GpuCgServer/Program.cs
  10. 0 76
      Service/X2D1TaskServer/App.config
  11. 17 0
      Service/X2D1TaskServer/Program.cs
  12. 1 1
      TestNetCore/TestNetCore.csproj
  13. 25 9
      XdCxRhDW.Api/AddIns/定位/PosApi.cs
  14. 290 627
      XdCxRhDW.App/Controllers/PosController.cs
  15. 49 169
      XdCxRhDW.App/Controllers/ResultController.cs
  16. 12 10
      XdCxRhDW.App/CorTools/XlCalculateForm.cs
  17. 1 1
      XdCxRhDW.App/EditForms/SatEditor.cs
  18. 1 1
      XdCxRhDW.App/EditForms/X2D1DTOParamEditor.cs
  19. 1 1
      XdCxRhDW.App/EditForms/X3DTOParamEditor.cs
  20. 5 2
      XdCxRhDW.App/Model/ModelPosRes.cs
  21. 1 0
      XdCxRhDW.App/PopupControl/ShowCgCtrl.cs
  22. 0 1
      XdCxRhDW.App/UserControl/CtrlHome.Designer.cs
  23. 16 10
      XdCxRhDW.App/UserControl/CtrlHome.cs
  24. 2 2
      XdCxRhDW.App/UserControl/CtrlXl.cs
  25. 6 1
      XdCxRhDW.Entity/CheckRes.cs
  26. 7 0
      XdCxRhDW.Entity/StationRes.cs
  27. 3 0
      XdCxRhDW.Repostory/04.XdCxRhDW.Repostory.csproj
  28. 23 32
      XdCxRhDW.Repostory/XlRepository.cs
  29. 1 0
      XdCxRhDW.Repostory/packages.config
  30. 2 2
      XdCxRhDW.WebApi/05.XdCxRhDW.WebApi.csproj
  31. 1 1
      XdCxRhDW.WebApi/app.config
  32. 1 1
      XdCxRhDW.WebApi/packages.config
  33. 6 11
      XdCxRhDw.Dto/CgResDto.cs
  34. 0 5
      XdCxRhDw.Dto/CgResQueryDto.cs
  35. 5 0
      XdCxRhDw.Dto/PosDto/X2D1NoXlPosDto.cs
  36. 5 0
      XdCxRhDw.Dto/PosDto/X2D1PosDto.cs
  37. 5 0
      XdCxRhDw.Dto/PosDto/X3TwoDtoNoParPosDto.cs
  38. 5 0
      XdCxRhDw.Dto/PosDto/X3TwoDtoNoXlNoParPosDto.cs
  39. 5 0
      XdCxRhDw.Dto/PosDto/X3TwoDtoNoXlPosDto.cs
  40. 5 0
      XdCxRhDw.Dto/PosDto/X3TwoDtoPosDto.cs
  41. 1 1
      XdCxRhDw.Dto/PosResQueryDto.cs

+ 55 - 56
DbMigrate/Form1.Designer.cs

@@ -36,13 +36,13 @@
             this.panel3 = new System.Windows.Forms.Panel();
             this.txtLog = new System.Windows.Forms.ListBox();
             this.panel2 = new System.Windows.Forms.Panel();
+            this.label1 = new System.Windows.Forms.Label();
+            this.txtYear = new System.Windows.Forms.TextBox();
+            this.btnCreateRange = new System.Windows.Forms.Button();
             this.btnMigrate = new System.Windows.Forms.Button();
             this.groupBox2 = new System.Windows.Forms.GroupBox();
             this.txtMySqlCon = new System.Windows.Forms.TextBox();
             this.btnInitMySql = new System.Windows.Forms.Button();
-            this.btnCreateRange = new System.Windows.Forms.Button();
-            this.txtYear = new System.Windows.Forms.TextBox();
-            this.label1 = new System.Windows.Forms.Label();
             this.groupBox1.SuspendLayout();
             this.panel3.SuspendLayout();
             this.panel2.SuspendLayout();
@@ -54,7 +54,7 @@
             this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
             this.panel1.Location = new System.Drawing.Point(0, 0);
             this.panel1.Name = "panel1";
-            this.panel1.Size = new System.Drawing.Size(800, 17);
+            this.panel1.Size = new System.Drawing.Size(1068, 17);
             this.panel1.TabIndex = 3;
             // 
             // groupBox1
@@ -66,7 +66,7 @@
             this.groupBox1.Font = new System.Drawing.Font("宋体", 12F);
             this.groupBox1.Location = new System.Drawing.Point(0, 17);
             this.groupBox1.Name = "groupBox1";
-            this.groupBox1.Size = new System.Drawing.Size(800, 144);
+            this.groupBox1.Size = new System.Drawing.Size(1068, 128);
             this.groupBox1.TabIndex = 4;
             this.groupBox1.TabStop = false;
             this.groupBox1.Text = "Sqlite数据库文件";
@@ -74,15 +74,15 @@
             // checkedListBox1
             // 
             this.checkedListBox1.FormattingEnabled = true;
-            this.checkedListBox1.Location = new System.Drawing.Point(19, 48);
+            this.checkedListBox1.Location = new System.Drawing.Point(692, 25);
             this.checkedListBox1.MultiColumn = true;
             this.checkedListBox1.Name = "checkedListBox1";
-            this.checkedListBox1.Size = new System.Drawing.Size(769, 88);
+            this.checkedListBox1.Size = new System.Drawing.Size(364, 88);
             this.checkedListBox1.TabIndex = 2;
             // 
             // btnSelectSqliteFile
             // 
-            this.btnSelectSqliteFile.Location = new System.Drawing.Point(725, 19);
+            this.btnSelectSqliteFile.Location = new System.Drawing.Point(578, 44);
             this.btnSelectSqliteFile.Name = "btnSelectSqliteFile";
             this.btnSelectSqliteFile.Size = new System.Drawing.Size(63, 24);
             this.btnSelectSqliteFile.TabIndex = 1;
@@ -93,9 +93,9 @@
             // txtSqliteFile
             // 
             this.txtSqliteFile.Font = new System.Drawing.Font("宋体", 10F);
-            this.txtSqliteFile.Location = new System.Drawing.Point(19, 20);
+            this.txtSqliteFile.Location = new System.Drawing.Point(19, 44);
             this.txtSqliteFile.Name = "txtSqliteFile";
-            this.txtSqliteFile.Size = new System.Drawing.Size(699, 23);
+            this.txtSqliteFile.Size = new System.Drawing.Size(550, 23);
             this.txtSqliteFile.TabIndex = 0;
             this.txtSqliteFile.TextChanged += new System.EventHandler(this.txtSqliteFile_TextChanged);
             // 
@@ -103,9 +103,9 @@
             // 
             this.panel3.Controls.Add(this.txtLog);
             this.panel3.Dock = System.Windows.Forms.DockStyle.Bottom;
-            this.panel3.Location = new System.Drawing.Point(0, 299);
+            this.panel3.Location = new System.Drawing.Point(0, 281);
             this.panel3.Name = "panel3";
-            this.panel3.Size = new System.Drawing.Size(800, 245);
+            this.panel3.Size = new System.Drawing.Size(1068, 263);
             this.panel3.TabIndex = 5;
             // 
             // txtLog
@@ -116,41 +116,68 @@
             this.txtLog.ItemHeight = 15;
             this.txtLog.Location = new System.Drawing.Point(0, 0);
             this.txtLog.Name = "txtLog";
-            this.txtLog.Size = new System.Drawing.Size(800, 245);
+            this.txtLog.Size = new System.Drawing.Size(1068, 263);
             this.txtLog.TabIndex = 1;
             // 
             // panel2
             // 
-            this.panel2.Controls.Add(this.label1);
-            this.panel2.Controls.Add(this.txtYear);
-            this.panel2.Controls.Add(this.btnCreateRange);
             this.panel2.Controls.Add(this.btnMigrate);
             this.panel2.Dock = System.Windows.Forms.DockStyle.Bottom;
             this.panel2.Font = new System.Drawing.Font("宋体", 12F);
-            this.panel2.Location = new System.Drawing.Point(0, 232);
+            this.panel2.Location = new System.Drawing.Point(0, 231);
             this.panel2.Name = "panel2";
-            this.panel2.Size = new System.Drawing.Size(800, 67);
+            this.panel2.Size = new System.Drawing.Size(1068, 50);
             this.panel2.TabIndex = 2;
             // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.Location = new System.Drawing.Point(784, 35);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(39, 16);
+            this.label1.TabIndex = 3;
+            this.label1.Text = "年份";
+            // 
+            // txtYear
+            // 
+            this.txtYear.Location = new System.Drawing.Point(828, 30);
+            this.txtYear.Name = "txtYear";
+            this.txtYear.Size = new System.Drawing.Size(57, 26);
+            this.txtYear.TabIndex = 2;
+            this.txtYear.Text = "2025";
+            // 
+            // btnCreateRange
+            // 
+            this.btnCreateRange.Location = new System.Drawing.Point(891, 29);
+            this.btnCreateRange.Name = "btnCreateRange";
+            this.btnCreateRange.Size = new System.Drawing.Size(108, 28);
+            this.btnCreateRange.TabIndex = 1;
+            this.btnCreateRange.Text = "2.创建分区";
+            this.btnCreateRange.UseVisualStyleBackColor = true;
+            this.btnCreateRange.Click += new System.EventHandler(this.btnCreateRange_Click);
+            // 
             // btnMigrate
             // 
-            this.btnMigrate.Location = new System.Drawing.Point(72, 17);
+            this.btnMigrate.Location = new System.Drawing.Point(389, 9);
             this.btnMigrate.Name = "btnMigrate";
-            this.btnMigrate.Size = new System.Drawing.Size(235, 37);
+            this.btnMigrate.Size = new System.Drawing.Size(235, 30);
             this.btnMigrate.TabIndex = 1;
-            this.btnMigrate.Text = "Sqlite数据迁移到MySql";
+            this.btnMigrate.Text = "3.Sqlite数据迁移到MySql";
             this.btnMigrate.UseVisualStyleBackColor = true;
             this.btnMigrate.Click += new System.EventHandler(this.btnMigrate_Click);
             // 
             // groupBox2
             // 
+            this.groupBox2.Controls.Add(this.label1);
             this.groupBox2.Controls.Add(this.txtMySqlCon);
+            this.groupBox2.Controls.Add(this.txtYear);
             this.groupBox2.Controls.Add(this.btnInitMySql);
+            this.groupBox2.Controls.Add(this.btnCreateRange);
             this.groupBox2.Dock = System.Windows.Forms.DockStyle.Fill;
             this.groupBox2.Font = new System.Drawing.Font("宋体", 12F);
-            this.groupBox2.Location = new System.Drawing.Point(0, 161);
+            this.groupBox2.Location = new System.Drawing.Point(0, 145);
             this.groupBox2.Name = "groupBox2";
-            this.groupBox2.Size = new System.Drawing.Size(800, 71);
+            this.groupBox2.Size = new System.Drawing.Size(1068, 86);
             this.groupBox2.TabIndex = 7;
             this.groupBox2.TabStop = false;
             this.groupBox2.Text = "MySql数据库";
@@ -160,52 +187,25 @@
             this.txtMySqlCon.Font = new System.Drawing.Font("宋体", 11F);
             this.txtMySqlCon.Location = new System.Drawing.Point(19, 32);
             this.txtMySqlCon.Name = "txtMySqlCon";
-            this.txtMySqlCon.Size = new System.Drawing.Size(622, 24);
+            this.txtMySqlCon.Size = new System.Drawing.Size(571, 24);
             this.txtMySqlCon.TabIndex = 0;
             this.txtMySqlCon.Text = "server=192.168.101.4;uid=root;pwd=123456;database=DWPT;";
             // 
             // btnInitMySql
             // 
-            this.btnInitMySql.Location = new System.Drawing.Point(647, 32);
+            this.btnInitMySql.Location = new System.Drawing.Point(608, 30);
             this.btnInitMySql.Name = "btnInitMySql";
-            this.btnInitMySql.Size = new System.Drawing.Size(141, 26);
+            this.btnInitMySql.Size = new System.Drawing.Size(99, 28);
             this.btnInitMySql.TabIndex = 1;
-            this.btnInitMySql.Text = "创建库及表结构";
+            this.btnInitMySql.Text = "1.创建库";
             this.btnInitMySql.UseVisualStyleBackColor = true;
             this.btnInitMySql.Click += new System.EventHandler(this.btnInitMySql_Click);
             // 
-            // btnCreateRange
-            // 
-            this.btnCreateRange.Location = new System.Drawing.Point(540, 17);
-            this.btnCreateRange.Name = "btnCreateRange";
-            this.btnCreateRange.Size = new System.Drawing.Size(178, 37);
-            this.btnCreateRange.TabIndex = 1;
-            this.btnCreateRange.Text = "创建分区";
-            this.btnCreateRange.UseVisualStyleBackColor = true;
-            this.btnCreateRange.Click += new System.EventHandler(this.btnCreateRange_Click);
-            // 
-            // txtYear
-            // 
-            this.txtYear.Location = new System.Drawing.Point(447, 22);
-            this.txtYear.Name = "txtYear";
-            this.txtYear.Size = new System.Drawing.Size(81, 26);
-            this.txtYear.TabIndex = 2;
-            this.txtYear.Text = "2025";
-            // 
-            // label1
-            // 
-            this.label1.AutoSize = true;
-            this.label1.Location = new System.Drawing.Point(403, 27);
-            this.label1.Name = "label1";
-            this.label1.Size = new System.Drawing.Size(39, 16);
-            this.label1.TabIndex = 3;
-            this.label1.Text = "年份";
-            // 
             // Form1
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.ClientSize = new System.Drawing.Size(800, 544);
+            this.ClientSize = new System.Drawing.Size(1068, 544);
             this.Controls.Add(this.groupBox2);
             this.Controls.Add(this.panel2);
             this.Controls.Add(this.panel3);
@@ -218,7 +218,6 @@
             this.groupBox1.PerformLayout();
             this.panel3.ResumeLayout(false);
             this.panel2.ResumeLayout(false);
-            this.panel2.PerformLayout();
             this.groupBox2.ResumeLayout(false);
             this.groupBox2.PerformLayout();
             this.ResumeLayout(false);

+ 78 - 47
DbMigrate/Form1.cs

@@ -126,7 +126,8 @@ namespace DbMigrate
                 Log($"Sqlite库文件{file}不存在!");
                 return;
             }
-            var tables = this.checkedListBox1.CheckedItems.Cast<string>().ToList();
+            var tables = this.checkedListBox1.CheckedItems.Cast<string>().Select(p=>p.ToLower()).ToList();
+            tables.Reverse();
             if (!tables.Any())
             {
                 Log("请选择要迁移的表");
@@ -167,6 +168,20 @@ namespace DbMigrate
                         while (true)
                         {
                             var dataItems = await con.QueryAsync(type, $"select * from {item} order by id limit 1000 offset {offset}");
+                            if (item == "checkres")
+                            {
+                                foreach (CheckRes dataItem in dataItems)
+                                {
+                                    dataItem.SigTime = await con.QueryFirstOrDefaultAsync<DateTime>($"select sigtime from posres where CheckResID={dataItem.ID}");
+                                }
+                            }
+                            if (item== "stationres")
+                            {
+                                foreach (StationRes dataItem in dataItems)
+                                {
+                                    dataItem.SigTime = await con.QueryFirstOrDefaultAsync<DateTime>($"select sigtime from posres where StationResID={dataItem.ID}");
+                                }
+                            }
                             if (dataItems.Any())
                             {
                                 ctx.Set(type).AddRange(dataItems);
@@ -211,7 +226,6 @@ namespace DbMigrate
                 now = now.AddDays(7);
                 if (now.Year != year) break;
             }
-            list.Reverse();
             return list;
         }
         void Log(string msg)
@@ -266,65 +280,82 @@ namespace DbMigrate
 
         private async void btnCreateRange_Click(object sender, EventArgs e)
         {
-            txtLog.Items.Clear();
-            string conStr = txtMySqlCon.Text.Trim();
-            if (!conStr.EndsWith(";"))
-                conStr = $"{conStr};";
-            List<string> tables = new List<string>() { "posres", "cgres", "cgxgfres", "cxres" };
-            using (MySqlConnection con = new MySqlConnection(conStr))
-            {
-                await con.OpenAsync();
-                foreach (var table in tables)
-                {
-                    string sqlExist = $"SELECT count(*) FROM INFORMATION_SCHEMA.PARTITIONS WHERE  TABLE_SCHEMA = 'dwpt' AND TABLE_NAME = '{table}' AND PARTITION_NAME = 'p_future'";
-                    var existed = (await con.QueryFirstAsync<int>(sqlExist)) > 0;
-                    if (!existed)
-                    {
-                        string sql = $"ALTER TABLE {table} " +
-                            "PARTITION BY RANGE (TO_DAYS(SigTime)) (" +
-                             $"PARTITION p_future VALUES LESS THAN MAXVALUE)";
-                        await con.ExecuteAsync(sql);
-                    }
-                }
-                
-            }
-            string str = txtYear.Text.Trim();
-            if (str.Length != 4)
-            {
-                Log("年份输入错误!");
-                return;
-            }
-            if (!int.TryParse(str, out int year))
-            {
-                Log("年份输入错误!");
-                return;
-            }
-
-            var weekTimes = GetRangeString(year);
-            using (MySqlConnection con = new MySqlConnection(conStr))
+            if (MessageBox.Show("1.请按照年份从小到大创建分区\r\n2.比如系统一但创建了2025年的分区后无法再创建2024年的分区\r\n3.创建分区时最好不要有太多数据库读写操作", "是否继续?", MessageBoxButtons.YesNo) != DialogResult.Yes) return;
+            this.groupBox1.Enabled = false;
+            this.groupBox2.Enabled = false;
+            this.panel2.Enabled = false;
+            try
             {
-                await con.OpenAsync();
-                foreach (var item in weekTimes)
+                txtLog.Items.Clear();
+                string conStr = txtMySqlCon.Text.Trim();
+                if (!conStr.EndsWith(";"))
+                    conStr = $"{conStr};";
+                List<string> tables = new List<string>() { "posres", "cgres", "cgxgfres", "cxres", "checkres", "stationres" };
+                using (MySqlConnection con = new MySqlConnection(conStr))
                 {
+                    await con.OpenAsync();
                     foreach (var table in tables)
                     {
-                        var sqlExist = $"SELECT count(*) FROM INFORMATION_SCHEMA.PARTITIONS WHERE  TABLE_SCHEMA = 'dwpt' AND TABLE_NAME = '{table}' AND PARTITION_NAME = 'p_{item:yyyyMMdd}'";
-                        var sql = $" ALTER TABLE {table} REORGANIZE PARTITION p_future into (PARTITION p_{item:yyyyMMdd} VALUES LESS THAN (TO_DAYS('{item.AddDays(7):yyyy-MM-dd HH:mm:ss}')),PARTITION p_future VALUES LESS THAN MAXVALUE )";
+                        string sqlExist = $"SELECT count(*) FROM INFORMATION_SCHEMA.PARTITIONS WHERE  TABLE_SCHEMA = 'dwpt' AND TABLE_NAME = '{table}' AND PARTITION_NAME = 'p_future'";
                         var existed = (await con.QueryFirstAsync<int>(sqlExist)) > 0;
                         if (!existed)
                         {
+                            string sql = $"ALTER TABLE {table} " +
+                                "PARTITION BY RANGE (TO_DAYS(SigTime)) (" +
+                                 $"PARTITION p_future VALUES LESS THAN MAXVALUE)";
                             await con.ExecuteAsync(sql);
-                            Log($"表{table}分区p_{item:yyyyMMdd}创建完成");
                         }
-                        else
+                    }
+
+                }
+                string str = txtYear.Text.Trim();
+                if (str.Length != 4)
+                {
+                    Log("年份输入错误!");
+                    return;
+                }
+                if (!int.TryParse(str, out int year))
+                {
+                    Log("年份输入错误!");
+                    return;
+                }
+
+                var weekTimes = GetRangeString(year);
+                using (MySqlConnection con = new MySqlConnection(conStr))
+                {
+                    await con.OpenAsync();
+                    foreach (var table in tables)
+                    {
+                        foreach (var item in weekTimes)
                         {
-                            Log($"表{table}分区p_{item:yyyyMMdd}创建跳过,已经存在此分区");
+                            var sqlExist = $"SELECT count(*) FROM INFORMATION_SCHEMA.PARTITIONS WHERE  TABLE_SCHEMA = 'dwpt' AND TABLE_NAME = '{table}' AND PARTITION_NAME = 'p_{item:yyyyMMdd}'";
+                            var sql = $" ALTER TABLE {table} REORGANIZE PARTITION p_future into (PARTITION p_{item:yyyyMMdd} VALUES LESS THAN (TO_DAYS('{item.AddDays(7):yyyy-MM-dd HH:mm:ss}')),PARTITION p_future VALUES LESS THAN MAXVALUE )";
+                            var existed = (await con.QueryFirstAsync<int>(sqlExist)) > 0;
+                            if (!existed)
+                            {
+                                await con.ExecuteAsync(sql);
+                                Log($"表{table}分区p_{item:yyyyMMdd}创建完成");
+                            }
+                            else
+                            {
+                                Log($"表{table}分区p_{item:yyyyMMdd}创建跳过,已经存在此分区");
+                            }
                         }
+
                     }
-                   
                 }
+                Log($"分区创建完成");
+            }
+            catch (Exception ex)
+            {
+                Log($"分区创建异常.{ex.Message}");
+            }
+            finally
+            {
+                this.groupBox1.Enabled = true;
+                this.groupBox2.Enabled = true;
+                this.panel2.Enabled = true;
             }
-            Log($"分区创建完成");
             /*
              *
              */

+ 6 - 4
DbMigrate/dwpt.sql

@@ -120,6 +120,7 @@ CREATE TABLE `checkres`  (
   `PosCheckType` int NULL DEFAULT NULL,
   `SmpStart` bigint NULL DEFAULT NULL,
   `SmpCount` bigint NULL DEFAULT NULL,
+  `SigTime` datetime(3) NOT NULL,
   `UserName` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
   `ModType` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
   `ModRate` double NULL DEFAULT NULL,
@@ -128,8 +129,8 @@ CREATE TABLE `checkres`  (
   `CreateTime` datetime(3) NOT NULL,
   `UpdateTime` datetime(3) NOT NULL,
   `Deleted` int NOT NULL,
-  PRIMARY KEY (`ID`) USING BTREE,
-  UNIQUE INDEX `ID`(`ID` ASC) USING BTREE,
+  PRIMARY KEY (`ID`, `SigTime`) USING BTREE,
+  UNIQUE INDEX `ID`(`SigTime` DESC, `ID` ASC) USING BTREE,
   INDEX `Deleted`(`Deleted` ASC) USING BTREE
 ) ENGINE = InnoDB AUTO_INCREMENT = 1641 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
 
@@ -288,6 +289,7 @@ CREATE TABLE `siginfo`  (
 DROP TABLE IF EXISTS `stationres`;
 CREATE TABLE `stationres`  (
   `ID` bigint NOT NULL AUTO_INCREMENT,
+  `SigTime` datetime(3) NOT NULL,
   `SatTxLon` double NOT NULL,
   `SatTxLat` double NOT NULL,
   `CdbTxLon` double NULL DEFAULT NULL,
@@ -299,8 +301,8 @@ CREATE TABLE `stationres`  (
   `CreateTime` datetime(3) NOT NULL,
   `UpdateTime` datetime(3) NOT NULL,
   `Deleted` int NOT NULL,
-  PRIMARY KEY (`ID`) USING BTREE,
-  UNIQUE INDEX `ID`(`ID` ASC) USING BTREE,
+  PRIMARY KEY (`ID`, `SigTime`) USING BTREE,
+  UNIQUE INDEX `ID`(`SigTime` DESC, `ID` ASC) USING BTREE,
   INDEX `Deleted`(`Deleted` ASC) USING BTREE
 ) ENGINE = InnoDB AUTO_INCREMENT = 1641 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
 

+ 0 - 76
Service/CheckServer/App.config

@@ -13,80 +13,4 @@
 	<startup>
 		<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
 	</startup>
-  <runtime>
-    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
-      <dependentAssembly>
-        <assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-9.0.0.4" newVersion="9.0.0.4" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Threading.Channels" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-9.0.0.4" newVersion="9.0.0.4" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Serilog" publicKeyToken="24c2f752a8e58a10" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-6.0.3.0" newVersion="6.0.3.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-4.1.6.0" newVersion="4.1.6.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-9.0.0.4" newVersion="9.0.0.4" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-4.2.2.0" newVersion="4.2.2.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Autofac" publicKeyToken="17863af14b0044da" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-8.2.1.0" newVersion="8.2.1.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-5.3.0.0" newVersion="5.3.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Web.Http.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-5.3.0.0" newVersion="5.3.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-4.2.2.0" newVersion="4.2.2.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Web.Cors" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-5.3.0.0" newVersion="5.3.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Microsoft.Web.Infrastructure" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
-      </dependentAssembly>
-    </assemblyBinding>
-  </runtime>
 </configuration>

+ 17 - 0
Service/CheckServer/Program.cs

@@ -45,6 +45,23 @@ namespace CheckServer
             {
                 XdCxRhDW.UI.Lib.LogUI.Error("出现未处理的线程异常!", e.Exception).Wait(5000);
             };
+            AppDomain.CurrentDomain.AssemblyResolve += (sender,args)=>
+            {
+                //if (args.Name.EndsWith(".dll"))
+                //    return Assembly.Load(args.Name);
+                // 1. 提取程序集简单名称
+                string assemblyName = new AssemblyName(args.Name).Name;
+
+                // 2. 定义程序集可能的查找路径
+                string assemblyPath1 = Path.Combine(Application.StartupPath, "AddIns", $"{assemblyName}.dll");
+                string assemblyPath2 = Path.Combine(Application.StartupPath, $"{assemblyName}.dll");
+
+                if (File.Exists(assemblyPath1))
+                    return Assembly.LoadFrom(assemblyPath1);
+                if (File.Exists(assemblyPath2))
+                    return Assembly.LoadFrom(assemblyPath2);
+                return null;
+            };
         }
         static bool IsRunningAsAdmin()
         {

+ 0 - 76
Service/CpuCgServer/App.config

@@ -14,80 +14,4 @@
 	<startup>
 		<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
 	</startup>
-  <runtime>
-    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
-      <dependentAssembly>
-        <assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-9.0.0.4" newVersion="9.0.0.4" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Threading.Channels" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-9.0.0.4" newVersion="9.0.0.4" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Serilog" publicKeyToken="24c2f752a8e58a10" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-6.0.3.0" newVersion="6.0.3.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-4.1.6.0" newVersion="4.1.6.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-9.0.0.4" newVersion="9.0.0.4" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-4.2.2.0" newVersion="4.2.2.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Autofac" publicKeyToken="17863af14b0044da" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-8.2.1.0" newVersion="8.2.1.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-5.3.0.0" newVersion="5.3.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Web.Http.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-5.3.0.0" newVersion="5.3.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-4.2.2.0" newVersion="4.2.2.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Web.Cors" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-5.3.0.0" newVersion="5.3.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Microsoft.Web.Infrastructure" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
-      </dependentAssembly>
-    </assemblyBinding>
-  </runtime>
 </configuration>

+ 17 - 0
Service/CpuCgServer/Program.cs

@@ -45,6 +45,23 @@ namespace CpuCgServer
             {
                 XdCxRhDW.UI.Lib.LogUI.Error("出现未处理的线程异常!", e.Exception).Wait(5000);
             };
+            AppDomain.CurrentDomain.AssemblyResolve += (sender, args) =>
+            {
+                //if (args.Name.EndsWith(".dll"))
+                //    return Assembly.Load(args.Name);
+                // 1. 提取程序集简单名称
+                string assemblyName = new AssemblyName(args.Name).Name;
+
+                // 2. 定义程序集可能的查找路径
+                string assemblyPath1 = Path.Combine(Application.StartupPath, "AddIns", $"{assemblyName}.dll");
+                string assemblyPath2 = Path.Combine(Application.StartupPath, $"{assemblyName}.dll");
+
+                if (File.Exists(assemblyPath1))
+                    return Assembly.LoadFrom(assemblyPath1);
+                if (File.Exists(assemblyPath2))
+                    return Assembly.LoadFrom(assemblyPath2);
+                return null;
+            };
         }
         static bool IsRunningAsAdmin()
         {

+ 0 - 76
Service/GpuCgServer/App.config

@@ -14,80 +14,4 @@
 	<startup>
 		<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
 	</startup>
-  <runtime>
-    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
-      <dependentAssembly>
-        <assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-9.0.0.4" newVersion="9.0.0.4" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Threading.Channels" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-9.0.0.4" newVersion="9.0.0.4" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Serilog" publicKeyToken="24c2f752a8e58a10" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-6.0.3.0" newVersion="6.0.3.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-4.1.6.0" newVersion="4.1.6.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-9.0.0.4" newVersion="9.0.0.4" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-4.2.2.0" newVersion="4.2.2.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Autofac" publicKeyToken="17863af14b0044da" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-8.2.1.0" newVersion="8.2.1.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-5.3.0.0" newVersion="5.3.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Web.Http.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-5.3.0.0" newVersion="5.3.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-4.2.2.0" newVersion="4.2.2.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Web.Cors" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-5.3.0.0" newVersion="5.3.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Microsoft.Web.Infrastructure" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
-      </dependentAssembly>
-    </assemblyBinding>
-  </runtime>
 </configuration>

+ 17 - 0
Service/GpuCgServer/Program.cs

@@ -45,6 +45,23 @@ namespace GpuCgServer
             {
                 XdCxRhDW.UI.Lib.LogUI.Error("出现未处理的线程异常!", e.Exception).Wait(5000);
             };
+            AppDomain.CurrentDomain.AssemblyResolve += (sender, args) =>
+            {
+                //if (args.Name.EndsWith(".dll"))
+                //    return Assembly.Load(args.Name);
+                // 1. 提取程序集简单名称
+                string assemblyName = new AssemblyName(args.Name).Name;
+
+                // 2. 定义程序集可能的查找路径
+                string assemblyPath1 = Path.Combine(Application.StartupPath, "AddIns", $"{assemblyName}.dll");
+                string assemblyPath2 = Path.Combine(Application.StartupPath, $"{assemblyName}.dll");
+
+                if (File.Exists(assemblyPath1))
+                    return Assembly.LoadFrom(assemblyPath1);
+                if (File.Exists(assemblyPath2))
+                    return Assembly.LoadFrom(assemblyPath2);
+                return null;
+            };
         }
         static bool IsRunningAsAdmin()
         {

+ 0 - 76
Service/X2D1TaskServer/App.config

@@ -33,80 +33,4 @@
 	<startup>
 		<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
 	</startup>
-  <runtime>
-    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
-      <dependentAssembly>
-        <assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-9.0.0.4" newVersion="9.0.0.4" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Threading.Channels" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-9.0.0.4" newVersion="9.0.0.4" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Serilog" publicKeyToken="24c2f752a8e58a10" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-6.0.3.0" newVersion="6.0.3.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-4.1.6.0" newVersion="4.1.6.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-9.0.0.4" newVersion="9.0.0.4" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-4.2.2.0" newVersion="4.2.2.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Autofac" publicKeyToken="17863af14b0044da" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-8.2.1.0" newVersion="8.2.1.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-5.3.0.0" newVersion="5.3.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Web.Http.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-5.3.0.0" newVersion="5.3.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-4.2.2.0" newVersion="4.2.2.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Web.Cors" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-5.3.0.0" newVersion="5.3.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Microsoft.Web.Infrastructure" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
-      </dependentAssembly>
-    </assemblyBinding>
-  </runtime>
 </configuration>

+ 17 - 0
Service/X2D1TaskServer/Program.cs

@@ -41,6 +41,23 @@ namespace X2D1TaskServer
             {
                 XdCxRhDW.UI.Lib.LogUI.Error("出现未处理的线程异常!", e.Exception).Wait(5000);
             };
+            AppDomain.CurrentDomain.AssemblyResolve += (sender, args) =>
+            {
+                //if (args.Name.EndsWith(".dll"))
+                //    return Assembly.Load(args.Name);
+                // 1. 提取程序集简单名称
+                string assemblyName = new AssemblyName(args.Name).Name;
+
+                // 2. 定义程序集可能的查找路径
+                string assemblyPath1 = Path.Combine(Application.StartupPath, "AddIns", $"{assemblyName}.dll");
+                string assemblyPath2 = Path.Combine(Application.StartupPath, $"{assemblyName}.dll");
+
+                if (File.Exists(assemblyPath1))
+                    return Assembly.LoadFrom(assemblyPath1);
+                if (File.Exists(assemblyPath2))
+                    return Assembly.LoadFrom(assemblyPath2);
+                return null;
+            };
         }
         static bool IsRunningAsAdmin()
         {

+ 1 - 1
TestNetCore/TestNetCore.csproj

@@ -10,7 +10,7 @@
   <ItemGroup>
     <PackageReference Include="Dapper" Version="2.1.66" />
     <PackageReference Include="MySql.EntityFrameworkCore" Version="9.0.3" />
-    <PackageReference Include="System.Threading.Tasks.Extensions" Version="4.6.3" />
+    <PackageReference Include="System.Threading.Tasks.Extensions" Version="4.5.4" />
   </ItemGroup>
 
 </Project>

+ 25 - 9
XdCxRhDW.Api/AddIns/定位/PosApi.cs

@@ -187,7 +187,7 @@ namespace XdCxRhDW.Api
         /// <param name="sRes">站点信息</param>
         /// <param name="CalcConfidence">是否计算置信度</param>
         /// <returns></returns>
-        public static double[] X2D1_Pos(CgRes cgRes, StationRes sRes, bool CalcConfidence = false)
+        public static double[] X2D1_Pos(CgRes cgRes, StationRes sRes, double[] zone, bool CalcConfidence = false)
         {
             if (cgRes.Dto1.Value == 0 || cgRes.DtoCdb.Value == 0)
             {
@@ -202,7 +202,8 @@ namespace XdCxRhDW.Api
             double dtoCdb = cgRes.DtoCdb.Value / 1e6;
             double ybDto1 = cgRes.YbMainDto.Value / 1e6;
             double ybDto2 = cgRes.YbAdja1Dto.Value / 1e6;
-            double[] zone = new double[] { -85, 85, -180, 180 }; //定位区域
+            if (zone == null)
+                zone = new double[] { -85, 85, -180, 180 }; //定位区域
             double[] res = new double[6];
             X2D1_Pos20240305_Core(mainSat, adjaSat, cdbStation, satStation, satStation, satStation, satStation, satStation, refStation, zone, dto1, dtoCdb, ybDto1, ybDto2, res);
             ConvertToGeoPoint(res);
@@ -254,7 +255,7 @@ namespace XdCxRhDW.Api
         /// <param name="sRes">站点信息</param>
         /// <param name="CalcConfidence">是否计算置信度</param>
         /// <returns></returns>
-        public static double[] X2D1_PosNoRef(CgRes cgRes, StationRes sRes, bool CalcConfidence = false)
+        public static double[] X2D1_PosNoRef(CgRes cgRes, StationRes sRes, double[] zone, bool CalcConfidence = false)
         {
             if (cgRes.Dto1.Value == 0 || cgRes.DtoCdb.Value == 0)
             {
@@ -266,7 +267,8 @@ namespace XdCxRhDW.Api
             double[] cdbStation = new double[3] { sRes.CdbTxLon.Value, sRes.CdbTxLat.Value, 0 };
             double dto1 = cgRes.Dto1.Value / 1e6;
             double dtoCdb = cgRes.DtoCdb.Value / 1e6;
-            double[] zone = new double[] { -85, 85, -180, 180 }; //定位区域
+            if (zone == null)
+                zone = new double[] { -85, 85, -180, 180 }; //定位区域
             double[] res = new double[6];
             X2D1_PosNoRef20240305_Core(mainSat, adjaSat, cdbStation, satStation, satStation, satStation, zone, dto1, dtoCdb, res);
             var posRes = ConvertToGeoPoint(res);
@@ -512,7 +514,7 @@ namespace XdCxRhDW.Api
         public static double[] RH_Pos(CgRes cgRes, StationRes sRes, CxRes cxRes, bool CalcConfidence = false)
         {
             var res1 = X1D1_Pos(cgRes, sRes, cxRes, CalcConfidence);
-            var res2 = X2D1_Pos(cgRes, sRes, CalcConfidence);
+            var res2 = X2D1_Pos(cgRes, sRes, null,CalcConfidence);
             double[] res = new double[] { 999, 999, 0, 999, 999, 0, 100 };
             var p1 = res1.Take(3).ToArray();
             var p2 = res1.Skip(3).ToArray();
@@ -578,7 +580,7 @@ namespace XdCxRhDW.Api
         /// <param name="sRes">站点信息</param>
         /// <param name="CalcConfidence">是否计算置信度</param>
         /// <returns></returns>
-        public static double[] X3_Pos(CgRes cgRes, StationRes sRes, bool CalcConfidence = false)
+        public static double[] X3_Pos(CgRes cgRes, StationRes sRes, double[] zone, bool CalcConfidence = false)
         {
             if (cgRes.Dto1.Value == 0 || cgRes.Dto2.Value == 0)
             {
@@ -590,7 +592,8 @@ namespace XdCxRhDW.Api
             double[] adjaSat2 = new double[3] { cgRes.Adja2X.Value, cgRes.Adja2Y.Value, cgRes.Adja2Z.Value };
             double[] satStation = new double[3] { sRes.SatTxLon, sRes.SatTxLat, 0 };
             double[] refStation = new double[3] { sRes.RefLon.Value, sRes.RefLat.Value, 0 };
-            double[] zone = new double[] { -85, 85, -180, 180 }; //定位区域
+            if (zone == null)
+                zone = new double[] { -85, 85, -180, 180 }; //定位区域
             var tarDto1 = cgRes.Dto1.Value / 1e6;
             var tarDto2 = cgRes.Dto2.Value / 1e6;
             var refDto1 = (cgRes.YbMainDto.Value - cgRes.YbAdja1Dto.Value) / 1e6;
@@ -650,7 +653,7 @@ namespace XdCxRhDW.Api
         /// <param name="sRes">站点信息</param>
         /// <param name="CalcConfidence">是否计算置信度</param>
         /// <returns></returns>
-        public static double[] X3_PosNoRef(CgRes cgRes, StationRes sRes, bool CalcConfidence = false)
+        public static double[] X3_PosNoRef(CgRes cgRes, StationRes sRes, double[] zone, bool CalcConfidence = false)
         {
             if (cgRes.Dto1.Value == 0 || cgRes.Dto2.Value == 0)
             {
@@ -659,8 +662,11 @@ namespace XdCxRhDW.Api
             double[] mainSat = new double[3] { cgRes.MainX.Value, cgRes.MainY.Value, cgRes.MainZ.Value };
             double[] adjaSat1 = new double[3] { cgRes.Adja1X.Value, cgRes.Adja1Y.Value, cgRes.Adja1Z.Value };
             double[] adjaSat2 = new double[3] { cgRes.Adja2X.Value, cgRes.Adja2Y.Value, cgRes.Adja2Z.Value };
+            if (zone == null)
+            {
+                zone = new double[] { -85, 85, -180, 180 }; //定位区域
+            }
             double[] satStation = new double[3] { sRes.SatTxLon, sRes.SatTxLat, 0 };
-            double[] zone = new double[] { -85, 85, -180, 180 }; //定位区域
             var tarDto1 = cgRes.Dto1.Value / 1e6;
             var tarDto2 = cgRes.Dto2.Value / 1e6;
             double[] res = new double[6];
@@ -899,6 +905,16 @@ namespace XdCxRhDW.Api
                 listNew.Add(-1);
                 list = listNew.ToArray();
             }
+            if (list[1] < 0 && list[4] > 0 && list[4] != 999)
+            {
+                //交换镜像点
+                var tmpLon = list[3];
+                var tmpLat = list[4];
+                list[3] = list[0];
+                list[4] = list[1];
+                list[0] = tmpLon;
+                list[1] = tmpLat;
+            }
             return list;
         }
 

File diff suppressed because it is too large
+ 290 - 627
XdCxRhDW.App/Controllers/PosController.cs


+ 49 - 169
XdCxRhDW.App/Controllers/ResultController.cs

@@ -17,7 +17,6 @@ using XdCxRhDW.App.Model;
 using System.Diagnostics;
 using System.Configuration;
 using DevExpress.Mvvm.Native;
-using System.Data.Entity.Infrastructure;
 
 namespace XdCxRhDW.App.Controllers
 {
@@ -26,7 +25,6 @@ namespace XdCxRhDW.App.Controllers
     /// </summary>
     public class ResultController : BaseController
     {
-
         /// <summary>
         /// 根据时间范围查询参估结果
         /// </summary>
@@ -36,38 +34,22 @@ namespace XdCxRhDW.App.Controllers
         [HttpPost]
         public async Task<AjaxResult<List<CgResDto>>> GetCgResByTimeRange(CgResQueryDto dto)
         {
-            List<CgResDto> cgList = new List<CgResDto>();
+            List<CgResDto> cgRes = null;
             try
             {
-                DateTime start = dto.BeginTime;
-                DateTime end = dto.EndTime;
-                var dir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "DbPart");
-                if (!Directory.Exists(dir)) return Success(cgList);
-                List<string> list = new List<string>();
-                DateTime tempStart = new DateTime(start.Year, start.Month, start.Day);
-                while (end >= tempStart)
-                {
-                    list.Add(end.ToString("yyyy") + "\\" + end.ToString("MMdd") + ".db");
-                    end = end.AddDays(-1);
-                }
-                end = dto.EndTime;
-                foreach (var item in list)
+                var start = dto.BeginTime.ToString("yyyy-MM-dd HH:mm:ss");
+                var end = dto.EndTime.ToString("yyyy-MM-dd HH:mm:ss");
+                using (MySqlContext db = new MySqlContext())
                 {
-                    var dayFile = Path.Combine(dir, item);
-                    using (MySqlContext db = new MySqlContext())
-                    {
-                        if (db == null) continue;
-                        var query = db.PosRes.Where(p => p.Deleted == 0 && p.SigTime >= start && p.SigTime <= end && p.TaskInfoID == dto.TaskInfoID);
-                        if (!dto.IncludeInvalidate)
-                            query = query.Where(p => p.PosLon != 999);
-                        if (dto.TarFrequpHz != null && dto.TarFrequpHz > 0)
-                            query = query.Where(p => p.FreqUpHz == dto.TarFrequpHz.Value);
-                        var cgRes = await query.Include(p => p.CgRes).Select(t => t.CgRes).Include(t => t.StationRes).OrderByDescending(p => p.SigTime).ToListAsync();
-                        var listDto = MapCgDto(cgRes);
-                        cgList.AddRange(listDto);
-                    }
+                    string sql = $"select a.*,b.SatTxLon,b.SatTxLat,b.CdbTxLon,b.CdbTxLat,b.CxLon,b.CxLat,b.RefLon,b.RefLat from cgres a left join stationres b on a.StationResID=b.ID and b.SigTime>='{start}' and b.SigTime<='{end}' where a.SigTime>='{start}' and a.SigTime<='{end}' and a.Deleted=0 and a.TaskID={dto.TaskInfoID} ";
+
+                    if (dto.TarFrequpHz != null && dto.TarFrequpHz > 0)
+                        sql = $"{sql} and TarFreqUp={dto.TarFrequpHz.Value} ";
+
+                    sql = $"{sql} order by SigTime desc ";
+                    cgRes = await db.SqlQueryAsync<CgResDto>(sql);
                 }
-                return Success(cgList);
+                return Success(cgRes);
             }
             catch (TaskCanceledException)
             {
@@ -92,41 +74,21 @@ namespace XdCxRhDW.App.Controllers
         [HttpPost]
         public async Task<AjaxResult<List<TaskFreqResDto>>> GetTaskFreqs(TaskFreqQueryDto dto)
         {
-            var posList = new List<long>();
+            List<long> posList = null;
             try
             {
-                var dir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "DbPart");
-                if (!Directory.Exists(dir)) return Success(new List<TaskFreqResDto>());
-                var yearDirs = Directory.EnumerateDirectories(dir).OrderByDescending(p => Convert.ToInt32(new DirectoryInfo(p).Name));//年目录,倒叙排列
-                DateTime max = DateTime.MinValue;
-                foreach (var yearDir in yearDirs)
+                using (MySqlContext db = new MySqlContext())
                 {
-                    if (max != DateTime.MinValue) break;
-                    //每一天的db文件,倒序排列
-                    var dayFiles = Directory.EnumerateFiles(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, yearDir), "*.db").OrderByDescending(p => Convert.ToInt32(new DirectoryInfo(p).Name.Substring(0, 4)));
-                    foreach (var dayFile in dayFiles)
-                    {
-                        using (MySqlContext db = new MySqlContext())
-                        {
-                            if (db == null) continue;
-
-                            var listFrequp = await db.PosRes.Where(p => p.Deleted == 0 && p.TaskInfoID == dto.TaskInfoID).Select(p => p.FreqUpHz).Distinct().ToListAsync();
-                            foreach (var item in listFrequp)
-                            {
-                                if (!posList.Contains(item))
-                                    posList.Add(item);
-                            }
-                        }
-                    }
+                    posList = await db.PosRes.Where(p => p.Deleted == 0 && p.TaskInfoID == dto.TaskInfoID).Select(p => p.FreqUpHz).Distinct().ToListAsync();
                 }
                 var res = posList.Select(p => new TaskFreqResDto() { FreqUpHz = p }).OrderBy(o => o.FreqUpHz).ToList();
                 return Success(res);
             }
             catch (Exception ex)
             {
-                string msg = $"定位结果查询异常-任务编号:{dto.TaskInfoID}";
+                string msg = $"任务上行频点查询异常-任务编号:{dto.TaskInfoID}";
                 XdCxRhDW.Framework.LogHelper.Error(msg, ex);
-                return Error<List<TaskFreqResDto>>("定位结果查询异常");
+                return Error<List<TaskFreqResDto>>("任务上行频点查询异常");
             }
         }
 
@@ -212,7 +174,7 @@ namespace XdCxRhDW.App.Controllers
         [Obsolete]
         public async Task<AjaxResult<List<ModelPosRes>>> GetPosResByTimeRangeObsolete(PosRequestByTimeRangeDto dto)
         {
-            List<ModelPosRes> posList = new List<ModelPosRes>();
+            List<ModelPosRes> posRes = null;
             try
             {
                 DateTime start = dto.BeginTime;
@@ -220,41 +182,39 @@ namespace XdCxRhDW.App.Controllers
                 List<TargetInfo> targets;
                 using (MySqlContext db = new MySqlContext())
                 {
-                    var query = db.PosRes.Where(p => p.SigTime >= start && p.SigTime <= end);
-                    query = query.Where(p => p.TaskInfoID == dto.TaskInfoID && p.Deleted == 0);
+                    var startStr = dto.BeginTime.ToString("yyyy-MM-dd HH:mm:ss");
+                    var endStr = dto.EndTime.ToString("yyyy-MM-dd HH:mm:ss");
+                    string sql = $"select a.*,b.UserName,b.PosCheckType,c.Snr1,c.Snr2,c.SnrCdb from posres a left join checkres b on a.CheckResID=b.ID and b.SigTime>='{startStr}' and b.SigTime<='{endStr}' left JOIN cgres c on a.CgResID=c.ID and c.SigTime>='{startStr}' and c.SigTime<='{endStr}'  where a.SigTime>='{startStr}' and a.SigTime<='{endStr}' and a.Deleted=0 and a.TaskInfoID={dto.TaskInfoID} ";
+
                     if (!dto.IncludeInvalidate)
-                        query = query.Where(p => p.PosLon != 999);
+                        sql = $"{sql} and PosLon!=999 ";
+
                     if (dto.TarFrequpHz != null && dto.TarFrequpHz > 0)
-                        query = query.Where(p => p.FreqUpHz == dto.TarFrequpHz.Value);
-                    var sql = query.ToString();
-                    var posRes = await query
-                        .Include(p => p.CheckRes)
-                        //.Include(p => p.CgRes)
-                        .OrderByDescending(p => p.SigTime).ToListAsync();
+                        sql = $"{sql} and FreqUpHz={dto.TarFrequpHz.Value} ";
+
+                    sql = $"{sql} order by SigTime desc ";
+
+                    posRes = await db.SqlQueryAsync<ModelPosRes>(sql);
                     if (posRes.Any())
                     {
                         targets = await db.TargetInfos.ToListAsync();
-                        if (targets.Any())
+                        foreach (var itemPos in posRes)
                         {
-                            foreach (var itemPos in posRes)
+                            if (itemPos.TargetInfoID > 0)
                             {
-                                if (itemPos.TargetInfoID > 0)
-                                {
-                                    itemPos.TargetInfo = targets.FirstOrDefault(p => p.ID == itemPos.TargetInfoID);
-                                    if (itemPos.TargetInfo != null && !string.IsNullOrWhiteSpace(itemPos.TargetInfo.TargeColor))
-                                        itemPos.ColorKey = itemPos.TargetInfo.TargeColor;
-                                }
+                                var find = targets.FirstOrDefault(p => p.ID == itemPos.TargetInfoID);
+                                itemPos.TargetName = find?.TargetName;
+                                itemPos.ColorKey = find?.TargeColor;
+                            }
+                            if (itemPos.Snr2 == null && itemPos.SnrCdb != null)
+                            {
+                                itemPos.Snr2 = itemPos.SnrCdb;
                             }
-                        }
-                        foreach (var itemPos in posRes)
-                        {
-                            var mp = ModelPosRes.GetVm(itemPos);
-                            posList.Add(mp);
                         }
 
                     }
                 }
-                return Success(posList);
+                return Success(posRes);
             }
             catch (Exception ex)
             {
@@ -364,17 +324,18 @@ namespace XdCxRhDW.App.Controllers
                 DateTime? max = null;
                 using (MySqlContext db = new MySqlContext())
                 {
+                    string sql = $"select max(SigTime) from PosRes where TaskInfoID={dto.TaskInfoID} and Deleted=0 ";
                     var query = db.PosRes.Where(p => p.TaskInfoID == dto.TaskInfoID && p.Deleted == 0);
                     if (!dto.IncludeInvalidate)
                     {
-                        query = query.Where(p => p.PosLon != 999);
+                        sql = $"{sql} and PosLon!=999 ";
 
                     }
                     if (dto.TarFrequpHz != null && dto.TarFrequpHz > 0)
                     {
-                        query = query.Where(p => p.FreqUpHz == dto.TarFrequpHz);
+                        sql = $"{sql} and FreqUpHz={dto.TarFrequpHz} ";
                     }
-                    max = await query.MaxAsync(p => (DateTime?)p.SigTime);
+                    max = await db.SqlQueryOneAsync<DateTime?>(sql);
                 }
                 if (max == null) return Success(posList);
                 DateTime min = max.Value.AddHours(-dto.Hours);
@@ -397,7 +358,7 @@ namespace XdCxRhDW.App.Controllers
         }
         #endregion
 
-        private PosResDto MapDto(PosRes res)
+        private PosResDto MapDto(ModelPosRes res)
         {
             var item = new PosResDto()
             {
@@ -405,103 +366,22 @@ namespace XdCxRhDW.App.Controllers
                 FreqUpHz = res.FreqUpHz,
                 SigTime = res.SigTime,
                 TaskInfoID = res.TaskInfoID,
-                TarName = res.TargetInfo?.TargetName,
+                TarName = res.TargetName,
                 PosLon = res.PosLon,
                 PosLat = res.PosLat,
                 MirrLon = res.MirrLon,
                 MirrLat = res.MirrLat,
-                CheckType = res.CheckRes?.PosCheckType == null ? "" : res.CheckRes?.PosCheckType?.GetEnumDisplayName(),
+                CheckType = res.PosCheckType?.GetEnumDisplayName(),
                 TargetState = (EnumTargetStateDto)res.TargetState,
                 PosResType = (EnumPosResTypeDto)res.PosResType,
                 Confidence = res.Confidence,
                 CreateTime = res.CreateTime,
-                UserName = res.CheckRes?.UserName,
-                Snr1 = res.CgRes?.Snr1,
+                UserName = res.UserName,
+                Snr1 = res.Snr1,
+                Snr2 = res.Snr2,
             };
-            if (res.CgRes != null)
-            {
-                if (res.CgRes.SnrCdb != null || res.CgRes.Snr2 != null)
-                {
-                    if (res.CgRes.Snr2 != null)
-                        item.Snr2 = res.CgRes.Snr2;
-                    else
-                        item.Snr2 = res.CgRes.SnrCdb;
-                }
-            }
             return item;
         }
 
-        private List<CgResDto> MapCgDto(List<CgRes> listCg)
-        {
-            List<CgResDto> list = new List<CgResDto>();
-            foreach (CgRes cgRes in listCg)
-            {
-                var dto = new CgResDto()
-                {
-                    ID = cgRes.ID,
-                    TaskID = cgRes.TaskID,
-                    FreqUpHz = cgRes.TarFreqUp == null ? 0 : (long)(cgRes.TarFreqUp.Value),
-                    SigTime = cgRes.SigTime,
-                    Dto1 = cgRes.Dto1,
-                    Dfo1 = cgRes.Dfo1,
-                    Snr1 = cgRes.Snr1,
-                    Dto2 = cgRes.Dto2,
-                    Dfo2 = cgRes.Dfo2,
-                    Snr2 = cgRes.Snr2,
-                    DtoCdb = cgRes.DtoCdb,
-                    DfoCdb = cgRes.DfoCdb,
-                    SnrCdb = cgRes.SnrCdb,
-                    YbMainDto = cgRes.YbMainDto,
-                    YbMainDfo = cgRes.YbMainDfo,
-                    YbMainSnr = cgRes.YbMainSnr,
-                    YbAdja1Dto = cgRes.YbAdja1Dto,
-                    YbAdja1Dfo = cgRes.YbAdja1Dfo,
-                    YbAdja1Snr = cgRes.YbAdja1Snr,
-                    YbAdja2Dfo = cgRes.YbAdja2Dfo,
-                    YbAdja2Dto = cgRes.YbAdja2Dto,
-                    YbAdja2Snr = cgRes.YbAdja2Snr,
-                    TarFreqUp = cgRes.TarFreqUp,
-                    TarFreqDown = cgRes.TarFreqDown,
-                    RefFreqUp = cgRes.RefFreqUp,
-                    RefFreqDown = cgRes.RefFreqDown,
-                    MainCode = cgRes.MainCode,
-                    Adja1Code = cgRes.Adja1Code,
-                    Adja2Code = cgRes.Adja2Code,
-                    MainXlTime = cgRes.MainXlTime,
-                    Adja1XlTime = cgRes.Adja1XlTime,
-                    Adja2XlTime = cgRes.Adja2XlTime,
-                    MainX = cgRes.MainX,
-                    MainY = cgRes.MainY,
-                    MainZ = cgRes.MainZ,
-                    MainVx = cgRes.MainVx,
-                    MainVy = cgRes.MainVy,
-                    MainVz = cgRes.MainVz,
-                    Adja1X = cgRes.Adja1X,
-                    Adja1Y = cgRes.Adja1Y,
-                    Adja1Z = cgRes.Adja1Z,
-                    Adja1Vx = cgRes.Adja1Vx,
-                    Adja1Vy = cgRes.Adja1Vy,
-                    Adja1Vz = cgRes.Adja1Vz,
-                    Adja2X = cgRes.Adja2X,
-                    Adja2Y = cgRes.Adja2Y,
-                    Adja2Z = cgRes.Adja2Z,
-                    Adja2Vx = cgRes.Adja2Vx,
-                    Adja2Vy = cgRes.Adja2Vy,
-                    Adja2Vz = cgRes.Adja2Vz,
-                    SatTxLon = cgRes.StationRes.SatTxLon,
-                    SatTxLat = cgRes.StationRes.SatTxLat,
-                    CdbTxLon = cgRes.StationRes.CdbTxLon,
-                    CdbTxLat = cgRes.StationRes.CdbTxLat,
-                    CxLon = cgRes.StationRes.CxLon,
-                    CxLat = cgRes.StationRes.CxLat,
-                    RefLon = cgRes.StationRes.RefLon,
-                    RefLat = cgRes.StationRes.RefLat,
-                    CreateTime = cgRes.CreateTime,
-                };
-                list.Add(dto);
-            }
-            return list;
-
-        }
     }
 }

+ 12 - 10
XdCxRhDW.App/CorTools/XlCalculateForm.cs

@@ -29,16 +29,9 @@ namespace XdCxRhDW.App.CorTools
         {
             InitializeComponent();
             this.itemTle.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
-            List<SatInfo> list1 = new List<SatInfo>();//配置的卫星
-            using (MySqlContext db = new MySqlContext())
-            {
-                list1 = db.SatInfos.OrderBy(p=>p.SatCode).ToList();
-            }
 
-            var list2 = XlRepository.GetAllSat().Result;//所有卫星
-            list2.RemoveAll(p => list1.Select(t => t.SatCode).Contains(p.SatCode));
-            list2.InsertRange(0, list1);
-            this.txtSat.UseDefault().SetData(list2, nameof(SatInfo.Sat)).UseDoubleClickToSelectAll();
+
+           
         }
 
         //选择TLE执行星历推算
@@ -54,8 +47,17 @@ namespace XdCxRhDW.App.CorTools
             this.itemSat.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
         }
 
-        private void XlCalculateForm_Load(object sender, EventArgs e)
+        private async void XlCalculateForm_Load(object sender, EventArgs e)
         {
+            List<SatInfo> list1 = new List<SatInfo>();//配置的卫星
+            using (MySqlContext db = new MySqlContext())
+            {
+                list1 =await db.SatInfos.OrderBy(p => p.SatCode).ToListAsync();
+            }
+            var list2 =await XlRepository.GetAllSatAsync();//所有卫星
+            list2.RemoveAll(p => list1.Select(t => t.SatCode).Contains(p.SatCode));
+            list2.InsertRange(0, list1);
+            this.txtSat.UseDefault().SetData(list2, nameof(SatInfo.Sat)).UseDoubleClickToSelectAll();
             gridControl.UseDefault(listEph).UseMultiSelect().UseRowNumber();
             txtStartTime.UseDefault().UseDoubleClickToSelectAll();
             txtEndTime.UseDefault().UseDoubleClickToSelectAll();

+ 1 - 1
XdCxRhDW.App/EditForms/SatEditor.cs

@@ -38,7 +38,7 @@ namespace XdCxRhDW.App.EditForms
         }
         private async void SatEditor_Load(object sender, EventArgs e)
         {
-            var listXl = await XlRepository.GetAllSat();
+            var listXl = await XlRepository.GetAllSatAsync();
             this.searchLookUpEdit1.UseDefault().SetData(listXl,nameof(XlInfo.Sat)).UseDoubleClickToSelectAll();
             if (this.Text == "编辑卫星" && info != null)
             {

+ 1 - 1
XdCxRhDW.App/EditForms/X2D1DTOParamEditor.cs

@@ -427,7 +427,7 @@ namespace XdCxRhDW.App.EditForms
                         Adja1Y = dto.AdjaY,
                         Adja1Z = dto.AdjaZ,
                     };
-                    var res = PosApi.X2D1_Pos(cgRes, StationRes);
+                    var res = PosApi.X2D1_Pos(cgRes, StationRes, null);
                     this.txtPosRes.Text = $"{info.PosResType.GetEnumDisplayName()}定位点:[{res[0]:f4},{res[1]:f4}] 镜像点:[{res[3]:f4},{res[4]:f4}]";
                 }
             }

+ 1 - 1
XdCxRhDW.App/EditForms/X3DTOParamEditor.cs

@@ -292,7 +292,7 @@ namespace XdCxRhDW.App.EditForms
                     Adja2Y = Ns2Eph[1],
                     Adja2Z = Ns2Eph[2],
                 };
-                var res = info.PosResType == EnumPosResType.X3 ? PosApi.X3_Pos(cgRes, StationRes) : PosApi.X3_PosNoRef(cgRes, StationRes);
+                var res = info.PosResType == EnumPosResType.X3 ? PosApi.X3_Pos(cgRes, StationRes,null) : PosApi.X3_PosNoRef(cgRes, StationRes,null);
                 this.txtPosRes.Text = $"{info.PosResType.GetEnumDisplayName()}定位点:[{res[0]:f4},{res[1]:f4}] 镜像点:[{res[3]:f4},{res[4]:f4}]";
             }
             catch (Exception ex)

+ 5 - 2
XdCxRhDW.App/Model/ModelPosRes.cs

@@ -37,7 +37,7 @@ namespace XdCxRhDW.App.Model
                 TargetState = res.TargetState,
                 TargetInfoID = res.TargetInfoID,
                 ColorKey = res.ColorKey,
-                CheckType = res.CheckRes?.PosCheckType.GetEnumDisplayName(),
+                //CheckType = res.CheckRes?.PosCheckType.GetEnumDisplayName(),
                 TargetName = res.TargetInfo?.TargetName,
             };
             //if (res.CgRes != null)
@@ -59,7 +59,7 @@ namespace XdCxRhDW.App.Model
 
         [Display(Name = "检测方式")]
         [ToolTip]
-        public string CheckType { get; set; }// => CheckRes?.PosCheckType?.GetEnumDisplayName();
+        public EnumPosCheckType? PosCheckType { get; set; }// => CheckRes?.PosCheckType?.GetEnumDisplayName();
 
 
         /// <summary>
@@ -80,6 +80,9 @@ namespace XdCxRhDW.App.Model
         [Display(Name = "第2路信噪比")]
         public double? Snr2 { get; set; }// => CgRes?.Snr2;
 
+        [Display(AutoGenerateField =false)]
+        public double? SnrCdb { get; set; }
+
         public override int GetHashCode()
         {
             return $"ModelPosRes_{TaskInfoID}_{ID}".GetHashCode();

+ 1 - 0
XdCxRhDW.App/PopupControl/ShowCgCtrl.cs

@@ -124,6 +124,7 @@ namespace XdCxRhDW.App.PopupControl
             }
             this.listCg.Clear();
             this.listCg.AddRange(list);
+            gridView1.RefreshData();
         }
         private async void gridView1_FocusedRowObjectChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowObjectChangedEventArgs e)
         {

+ 0 - 1
XdCxRhDW.App/UserControl/CtrlHome.Designer.cs

@@ -337,7 +337,6 @@ namespace XdCxRhDW.App.UserControl
             this.txtFrequpMHz.Size = new System.Drawing.Size(99, 20);
             this.txtFrequpMHz.StyleController = this.layoutControl1;
             this.txtFrequpMHz.TabIndex = 11;
-            this.txtFrequpMHz.SelectedIndexChanged += new System.EventHandler(this.txtFrequpMHz_SelectedIndexChanged);
             // 
             // Root
             // 

+ 16 - 10
XdCxRhDW.App/UserControl/CtrlHome.cs

@@ -175,7 +175,7 @@ namespace XdCxRhDW.App.UserControl
             gridView1.DoubleClick += GridView1_DoubleClick;
             gridView2.FocusedRowObjectChanged += GridView2_FocusedRowObjectChanged;
             btnIncludeInvalidate.CheckedChanged += BtnIncludeInvalidate_CheckedChanged;
-            txtTimeCho_SelectedIndexChanged(null, null);
+            //txtTimeCho_SelectedIndexChanged(null, null);
             WaitHelper.CloseForm();
 
             await Task.Run(() =>
@@ -227,6 +227,7 @@ namespace XdCxRhDW.App.UserControl
                                }));
                            }
                        }
+                       this.txtFrequpMHz.SelectedIndexChanged += new System.EventHandler(this.txtFrequpMHz_SelectedIndexChanged);
                        if (txtTimeCho.Text == "自定义") continue;
                        if (!updateItems.Any()) continue;
                        var hours = Convert.ToInt32(txtTimeCho.EditValue);
@@ -404,7 +405,7 @@ namespace XdCxRhDW.App.UserControl
             mapControl1.DelFixedImg("Tx");
             var posItem = (e.Row as ModelPosRes);
             if (posItem == null) return;
-            using (MySqlContext db=new MySqlContext())
+            using (MySqlContext db = new MySqlContext())
             {
                 var station = db?.StationRes.Where(p => p.ID == posItem.StationResID).FirstOrDefault();
                 if (station != null)
@@ -876,6 +877,7 @@ namespace XdCxRhDW.App.UserControl
             gridView2.ClearSorting();
             gridView2.ClearFindFilter();
             gridView2.ClearColumnsFilter();
+            btnSearch.Enabled = false;
             try
             {
                 List<ModelPosRes> list = new List<ModelPosRes>();
@@ -939,6 +941,10 @@ namespace XdCxRhDW.App.UserControl
                 XdCxRhDW.Framework.LogHelper.Error("定位结果查询异常", ex);
                 MsgBoxHelper.ShowError("定位结果查询异常");
             }
+            finally
+            {
+                btnSearch.Enabled = true;
+            }
             return new List<ModelPosRes>();
         }
 
@@ -954,7 +960,7 @@ namespace XdCxRhDW.App.UserControl
                 foreach (var groupItem in groupItems)
                 {
                     var ids = groupItem.Select(m => m.ID).ToList();
-                    using (MySqlContext db=new MySqlContext())
+                    using (MySqlContext db = new MySqlContext())
                     {
                         if (db == null) continue;
                         string sql = $"update posres set deleted=1 where deleted=0 and id in ({string.Join(",", ids)})";
@@ -987,7 +993,7 @@ namespace XdCxRhDW.App.UserControl
                 foreach (var groupItem in groupItems)
                 {
                     var ids = groupItem.Select(m => m.ID).ToList();
-                    using (MySqlContext db=new MySqlContext())
+                    using (MySqlContext db = new MySqlContext())
                     {
                         if (db == null) continue;
                         string sql = $"update posres set deleted=1 where deleted=0 and id in ({string.Join(",", ids)})";
@@ -1219,7 +1225,7 @@ namespace XdCxRhDW.App.UserControl
 
                             if (item.PosResType == EnumPosResType.X2D1)
                             {
-                                res = PosApi.X2D1_Pos(CgRes, StationRes);
+                                res = PosApi.X2D1_Pos(CgRes, StationRes, null);
                             }
                             else
                             {
@@ -1260,7 +1266,7 @@ namespace XdCxRhDW.App.UserControl
                             CgRes.Adja2Y = X3eph2.Y;
                             CgRes.Adja2Z = X3eph2.Z;
 
-                            res = item.PosResType == EnumPosResType.X3 ? PosApi.X3_Pos(CgRes, StationRes) : PosApi.X3_PosNoRef(CgRes, StationRes);
+                            res = item.PosResType == EnumPosResType.X3 ? PosApi.X3_Pos(CgRes, StationRes, null) : PosApi.X3_PosNoRef(CgRes, StationRes, null);
                             item.PosLon = res[0];
                             item.PosLat = res[1];
                             item.MirrLon = res[3];
@@ -1352,7 +1358,7 @@ namespace XdCxRhDW.App.UserControl
                 foreach (var groupItem in groupItems)
                 {
                     var ids = groupItem.Select(m => m.ID).ToList();
-                    using (MySqlContext db=new MySqlContext())
+                    using (MySqlContext db = new MySqlContext())
                     {
                         if (db == null) continue;
                         var tarItems = await db.PosRes.Where(p => p.Deleted == 0 && ids.Contains(p.ID)).ToArrayAsync();
@@ -1443,7 +1449,7 @@ namespace XdCxRhDW.App.UserControl
             {
                 if (items.Count == 0) return;
                 long? targetID = 0;
-                using (MySqlContext db=new MySqlContext())
+                using (MySqlContext db = new MySqlContext())
                 {
                     if (db != null)
                     {
@@ -1469,7 +1475,7 @@ namespace XdCxRhDW.App.UserControl
                 foreach (var groupItems in groupData)
                 {
                     var ids = groupItems.Select(p => p.ID);
-                    using (MySqlContext db=new MySqlContext())
+                    using (MySqlContext db = new MySqlContext())
                     {
                         if (db == null) continue;
                         var tarItems = await db.PosRes.Where(p => p.Deleted == 0 && ids.Contains(p.ID)).ToArrayAsync();
@@ -1545,7 +1551,7 @@ namespace XdCxRhDW.App.UserControl
                 foreach (var groupItem in groupItems)
                 {
                     var ids = groupItem.Select(m => m.ID).ToList();
-                    using (MySqlContext db=new MySqlContext())
+                    using (MySqlContext db = new MySqlContext())
                     {
                         if (db == null) continue;
                         var array = await db.PosRes.Where(p => p.Deleted == 0 && ids.Contains(p.ID)).ToArrayAsync();

+ 2 - 2
XdCxRhDW.App/UserControl/CtrlXl.cs

@@ -28,8 +28,6 @@ namespace XdCxRhDW.App.UserControl
             InitializeComponent();
             this.layoutControl1.UseDefault();
             btnOpen.UseChooseFile().UseDoubleClickToSelectAll();
-            var sat = XlRepository.GetAllSat().Result;
-            txtSat.UseDefault("不限制", true).SetData(sat, nameof(SatInfo.Sat));
         }
 
         private async void TxtSat_EditValueChanged(object sender, EventArgs e)
@@ -49,6 +47,8 @@ namespace XdCxRhDW.App.UserControl
 
         private async void CtrlXl_Load(object sender, EventArgs e)
         {
+            var sat =await XlRepository.GetAllSatAsync();
+            txtSat.UseDefault("不限制", true).SetData(sat, nameof(SatInfo.Sat));
             gridXl.UseDefault(list).UseRowNumber().UseDeleteAsync<XlInfo>(Del)
                 .UseClearAsync<XlInfo>(Clear).UseExportXlsx()
             .AddMenu("星历推算", SvgHelper.LoadFromFile("Image\\XlCalc.svg"), () =>

+ 6 - 1
XdCxRhDW.Entity/CheckRes.cs

@@ -35,13 +35,18 @@ namespace XdCxRhDW.Entity
         [Display(Name = "样点长度")]
         public long? SmpCount { get; set; }
 
+        /// <summary>
+        /// 信号时间
+        /// </summary>
+        [Display(Name = "信号时间")]
+        public DateTime SigTime { get; set; }
+
         /// <summary>
         /// 用户名(只有DAMA有)
         /// </summary>
         [Display(Name = "用户名")]
         public string UserName { get; set; }
 
-
         /// <summary>
         /// 调制类型
         /// </summary>

+ 7 - 0
XdCxRhDW.Entity/StationRes.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
 using System.ComponentModel.DataAnnotations.Schema;
 using System.Linq;
 using System.Text;
@@ -53,5 +54,11 @@ namespace XdCxRhDW.Entity
         /// </summary>
         public double? RefLat { get; set; }
 
+        /// <summary>
+        /// 信号时间
+        /// </summary>
+        [Display(Name = "信号时间")]
+        public DateTime SigTime { get; set; }
+
     }
 }

+ 3 - 0
XdCxRhDW.Repostory/04.XdCxRhDW.Repostory.csproj

@@ -39,6 +39,9 @@
     <Reference Include="BouncyCastle.Cryptography, Version=2.0.0.0, Culture=neutral, PublicKeyToken=072edcf4a5328938, processorArchitecture=MSIL">
       <HintPath>..\packages\BouncyCastle.Cryptography.2.5.1\lib\net461\BouncyCastle.Cryptography.dll</HintPath>
     </Reference>
+    <Reference Include="Dapper, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\packages\Dapper.2.1.66\lib\net461\Dapper.dll</HintPath>
+    </Reference>
     <Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
       <HintPath>..\packages\EntityFramework.6.5.1\lib\net45\EntityFramework.dll</HintPath>
     </Reference>

+ 23 - 32
XdCxRhDW.Repostory/XlRepository.cs

@@ -7,31 +7,13 @@ using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using XdCxRhDW.Entity;
-
+using Dapper;
+using XdCxRhDW.Framework;
+using MySql.Data.MySqlClient;
 namespace XdCxRhDW.Repostory
 {
     public static class XlRepository
     {
-        /// <summary>
-        /// 获取数据库所有双行根数
-        /// </summary>
-        /// <returns></returns>
-        public static async Task<List<XlInfo>> GetAllAsync()
-        {
-            try
-            {
-                using (MySqlContext db = new MySqlContext())
-                {
-                    var res = await db.XlInfos.OrderByDescending(p => p.TimeUTC).OrderByDescending(p => p.Lon).Take(5000).ToListAsync();
-                    return res;
-                }
-            }
-            catch (Exception ex)
-            {
-                XdCxRhDW.Framework.LogHelper.Error("加载星历信息异常", ex);
-                return null;
-            }
-        }
         public static async Task<int> GetCount(int? satCode)
         {
             using (MySqlContext db = new MySqlContext())
@@ -48,19 +30,28 @@ namespace XdCxRhDW.Repostory
                 }
             }
         }
-        public static async Task<List<SatInfo>> GetAllSat()
+        public static async Task<List<SatInfo>> GetAllSatAsync()
         {
-            using (MySqlContext db = new MySqlContext())
+            try
             {
-                string sql = "select * from XlInfo where id in (select max(id) maxid from xlinfo group by satcode) order by satcode";
-                var data = await db.Database.SqlQuery<XlInfo>(sql).ToListAsync();
-                var sats = data.Select(p => new SatInfo()
+                var str = AppConfigHelper.GetConnectionString("MySql");
+                using (MySqlConnection con = new MySqlConnection(str))
                 {
-                    SatCode = p.SatCode,
-                    SatName = p.SatName,
-                    SatLon = p.Lon,
-                }).ToList();
-                return sats;
+                    string sql = "select SatCode,SatName,Lon from XlInfo where id in (select max(id) maxid from xlinfo group by satcode) order by satcode";
+                    var data = await con.QueryAsync<dynamic>(sql);
+                    var sats = data.Select(p => new SatInfo()
+                    {
+                        SatCode = p.SatCode,
+                        SatName = p.SatName,
+                        SatLon = p.Lon,
+                    }).ToList();
+                    return sats;
+                }
+            }
+            catch (Exception ex)
+            {
+                XdCxRhDW.Framework.LogHelper.Error("获取星历表所有卫星信息异常", ex);
+                return null;
             }
         }
         /// <summary>
@@ -134,7 +125,7 @@ namespace XdCxRhDW.Repostory
             }
             catch (Exception ex)
             {
-                XdCxRhDW.Framework.LogHelper.Error($"获取卫星[{satCode}]--{sigTime:yyyyMMddHHmmss}时刻附近的双行根数出错!",ex);
+                XdCxRhDW.Framework.LogHelper.Error($"获取卫星[{satCode}]--{sigTime:yyyyMMddHHmmss}时刻附近的双行根数出错!", ex);
                 return null;
             }
         }

+ 1 - 0
XdCxRhDW.Repostory/packages.config

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <packages>
   <package id="BouncyCastle.Cryptography" version="2.5.1" targetFramework="net472" />
+  <package id="Dapper" version="2.1.66" targetFramework="net472" />
   <package id="EntityFramework" version="6.5.1" targetFramework="net472" />
   <package id="Google.Protobuf" version="3.30.2" targetFramework="net472" />
   <package id="K4os.Compression.LZ4" version="1.3.8" targetFramework="net472" />

+ 2 - 2
XdCxRhDW.WebApi/05.XdCxRhDW.WebApi.csproj

@@ -37,8 +37,8 @@
     <AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="Autofac, Version=8.2.1.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
-      <HintPath>..\packages\Autofac.8.2.1\lib\netstandard2.0\Autofac.dll</HintPath>
+    <Reference Include="Autofac, Version=8.3.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
+      <HintPath>..\packages\Autofac.8.3.0\lib\netstandard2.0\Autofac.dll</HintPath>
     </Reference>
     <Reference Include="Autofac.Integration.Owin, Version=7.1.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
       <HintPath>..\packages\Autofac.Owin.7.1.0\lib\net472\Autofac.Integration.Owin.dll</HintPath>

+ 1 - 1
XdCxRhDW.WebApi/app.config

@@ -20,7 +20,7 @@
       </dependentAssembly>
       <dependentAssembly>
         <assemblyIdentity name="Autofac" publicKeyToken="17863af14b0044da" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-8.2.1.0" newVersion="8.2.1.0" />
+        <bindingRedirect oldVersion="0.0.0.0-8.3.0.0" newVersion="8.3.0.0" />
       </dependentAssembly>
       <dependentAssembly>
         <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />

+ 1 - 1
XdCxRhDW.WebApi/packages.config

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <packages>
-  <package id="Autofac" version="8.2.1" targetFramework="net472" />
+  <package id="Autofac" version="8.3.0" targetFramework="net472" />
   <package id="Autofac.Owin" version="7.1.0" targetFramework="net472" />
   <package id="Autofac.WebApi2" version="6.1.1" targetFramework="net472" />
   <package id="Autofac.WebApi2.Owin" version="6.2.1" targetFramework="net472" />

+ 6 - 11
XdCxRhDw.Dto/CgResDto.cs

@@ -26,7 +26,12 @@ namespace XdCxRhDW.Dto
         /// <summary>
         /// 上行频点Hz
         /// </summary>
-        public long FreqUpHz { get; set; }
+        public double? TarFreqUp { get; set; }
+
+        /// <summary>
+        /// 目标下行频点(Hz)
+        /// </summary>
+        public double? TarFreqDown { get; set; }
 
         /// <summary>
         /// 信号时刻
@@ -123,16 +128,6 @@ namespace XdCxRhDW.Dto
         /// </summary>
         public double? YbAdja2Snr { get; set; }
 
-        /// <summary>
-        /// 目标上行频点(Hz)
-        /// </summary>
-        public double? TarFreqUp { get; set; }
-
-        /// <summary>
-        /// 目标下行频点(Hz)
-        /// </summary>
-        public double? TarFreqDown { get; set; }
-
         /// <summary>
         /// 参考上行频点(Hz)
         /// </summary>

+ 0 - 5
XdCxRhDw.Dto/CgResQueryDto.cs

@@ -36,11 +36,6 @@ namespace XdCxRhDW.Dto
         public DateTime EndTime { get; set; }
 
 
-        /// <summary>
-        /// 是否包含无效结果(无定位结果的参估结果)
-        /// </summary>
-        public bool IncludeInvalidate { get; set; } = false;
-
         /// <summary>
         /// 
         /// </summary>

+ 5 - 0
XdCxRhDw.Dto/PosDto/X2D1NoXlPosDto.cs

@@ -150,5 +150,10 @@ namespace XdCxRhDW.Dto
         /// 目标名称(可选)
         /// </summary>
         public string Target { get; set; }
+
+        /// <summary>
+        /// 目标大致区域(全球搜索传[-85,85,-180,180],不传内部自动使用全球搜索)
+        /// </summary>
+        public double[] Zone { get; set; }
     }
 }

+ 5 - 0
XdCxRhDw.Dto/PosDto/X2D1PosDto.cs

@@ -208,6 +208,11 @@ namespace XdCxRhDW.Dto
         /// 目标名称(可选)
         /// </summary>
         public string Target { get; set; }
+
+        /// <summary>
+        /// 目标大致区域(全球搜索传[-85,85,-180,180],不传内部自动使用全球搜索)
+        /// </summary>
+        public double[] Zone { get; set; }
     }
 
 }

+ 5 - 0
XdCxRhDw.Dto/PosDto/X3TwoDtoNoParPosDto.cs

@@ -205,6 +205,11 @@ namespace XdCxRhDW.Dto
         /// 目标名称(可选)
         /// </summary>
         public string Target { get; set; }
+
+        /// <summary>
+        /// 目标大致区域(全球搜索传[-85,85,-180,180],不传内部自动使用全球搜索)
+        /// </summary>
+        public double[] Zone { get; set; }
     }
 
 }

+ 5 - 0
XdCxRhDw.Dto/PosDto/X3TwoDtoNoXlNoParPosDto.cs

@@ -114,6 +114,11 @@ namespace XdCxRhDW.Dto
         /// 目标名称(可选)
         /// </summary>
         public string Target { get; set; }
+
+        /// <summary>
+        /// 目标大致区域(全球搜索传[-85,85,-180,180],不传内部自动使用全球搜索)
+        /// </summary>
+        public double[] Zone { get; set; }
     }
 
 }

+ 5 - 0
XdCxRhDw.Dto/PosDto/X3TwoDtoNoXlPosDto.cs

@@ -141,6 +141,11 @@ namespace XdCxRhDW.Dto
         /// 目标名称(可选)
         /// </summary>
         public string Target { get; set; }
+
+        /// <summary>
+        /// 目标大致区域(全球搜索传[-85,85,-180,180],不传内部自动使用全球搜索)
+        /// </summary>
+        public double[] Zone { get; set; }
     }
 
 }

+ 5 - 0
XdCxRhDw.Dto/PosDto/X3TwoDtoPosDto.cs

@@ -231,6 +231,11 @@ namespace XdCxRhDW.Dto
         /// 目标名称(可选)
         /// </summary>
         public string Target { get; set; }
+
+        /// <summary>
+        /// 目标大致区域(全球搜索传[-85,85,-180,180],不传内部自动使用全球搜索)
+        /// </summary>
+        public double[] Zone { get; set; }
     }
 
 }

+ 1 - 1
XdCxRhDw.Dto/PosResQueryDto.cs

@@ -68,7 +68,7 @@ namespace XdCxRhDW.Dto
         /// <summary>
         /// 目标上行频点(Hz),为空值时查询所有频点
         /// </summary>
-        [RangeLong(0)]
+        [RangeLong(0,IncludeMin =true)]
         public long? TarFrequpHz { get; set; }
 
         /// <summary>

Some files were not shown because too many files changed in this diff