Forráskód Böngészése

识别数据恢复原始状态功能完善

djs 3 hónapja
szülő
commit
3a40929a56

+ 6 - 2
MeterVision/Patch/UCPatchGrid.xaml.cs

@@ -713,8 +713,9 @@ namespace MeterVision.Patch
                 {
                     string stationId = CurStationItem == null ? "" : CurStationItem.StationId;
                     //查询数据
-                    patchDetails = DBPatch.GetPatchDetailsWithRunFlag(CurPatchItem.PatchId, stationId,1);
-                    foreach(var patchDetail in patchDetails)
+                    //patchDetails = DBPatch.GetPatchDetailsWithRunFlag(CurPatchItem.PatchId, stationId,1);
+                    patchDetails = DBPatch.GetPatchDetailsWithRunFlag_StandDetal(CurPatchItem.PatchId, stationId, 1);
+                    foreach (var patchDetail in patchDetails)
                     {
                         //删除目标图像及识别日志
                         try
@@ -733,6 +734,9 @@ namespace MeterVision.Patch
 
                         }
                         patchDetail.ResetRunValue();        //恢复初始值
+                        //查找原始t_stand_detail中表盘等坐标
+
+
                     }
                     
                     if (patchDetails.Count > 0)

+ 1 - 1
MeterVision/Patch/UCPatchMain.xaml.cs

@@ -675,7 +675,7 @@ namespace MeterVision.Patch
         //清空已识别任务的各种数据及状态
         private async void BtnResetTask_Click(object sender, RoutedEventArgs e)
         {
-            MessageBoxResult result = MessageBox.Show("确定要删除该项吗?", "确认删除",
+            MessageBoxResult result = MessageBox.Show("确定要恢复这些项为原始状态吗?", "数据复原",
                 MessageBoxButton.YesNo, MessageBoxImage.Warning);
 
             // 判断用户的选择

+ 2 - 2
MeterVision/Properties/AssemblyInfo.cs

@@ -51,5 +51,5 @@ using System.Windows;
 // 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
 // 方法是按如下所示使用“*”: :
 // [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("3.3.1.2")]
-[assembly: AssemblyFileVersion("3.3.1.2")]
+[assembly: AssemblyVersion("3.3.1.3")]
+[assembly: AssemblyFileVersion("3.3.1.3")]

+ 107 - 1
MeterVision/db/DBPatch.cs

@@ -231,6 +231,8 @@ namespace MeterVision.db
                     debug_info = @DebugInfo,
                     log_path = @LogPath,
                     memo = @Memo,
+                    meter_region = @MeterRegion,
+                    feature_region = @FeatureRegion,
                     latest_complete = @LatestComplete,
                     last_compress = @LastCompress,
                     latest_value = @LatestValue,
@@ -262,13 +264,14 @@ namespace MeterVision.db
                                 new SQLiteParameter("@DebugInfo", patchDetail.DebugInfo),
                                 new SQLiteParameter("@LogPath", patchDetail.LogPath),
                                 new SQLiteParameter("@Memo", patchDetail.Memo),
+                                new SQLiteParameter("@MeterRegion", patchDetail.MeterRegion),
+                                new SQLiteParameter("@FeatureRegion", patchDetail.FeatureRegion),
                                 new SQLiteParameter("@LatestComplete", patchDetail.LatestComplete),
                                 new SQLiteParameter("@LastCompress", patchDetail.LastCompress),
                                 new SQLiteParameter("@LatestValue", patchDetail.LatestValue),
                                 new SQLiteParameter("@LatestTime", patchDetail.LatestTime),
                                 new SQLiteParameter("@PatchDetailId", patchDetail.PatchDetailId) // 条件字段
                             };
-
                             SQLiteHelper.ExecuteNonQuery(sql, parameters, transaction);
                         }
 
@@ -1029,6 +1032,109 @@ namespace MeterVision.db
         }
 
 
+        public static List<TPatchDetail> GetPatchDetailsWithRunFlag_StandDetal(string patchId, string stationId, int runFlag)
+        {
+            // 查询 SQL
+            //string sql = @"
+            //    SELECT patch_detail_id, patch_id, create_time, stand_detail_id, stand_value, src_image, 
+            //           run_flag, run_time, dst_image, meter_type, digit_count, pointer_count, 
+            //           last_unit, result_type, raw_value, final_value, equal_flag, ai_ver, debug_info, log_path
+            //    FROM t_patch_detail 
+            //    WHERE patch_id = @PatchId AND run_flag = 0
+            //    ORDER BY create_time AESC;"; // 可以根据需要修改排序字段
+
+            //string sql = @"
+            //    SELECT patch_detail_id, patch_id, create_time, stand_detail_id, stand_value, src_image 
+            //    FROM t_patch_detail 
+            //    WHERE patch_id = @PatchId AND run_flag = 0
+            //    ORDER BY create_time ASC;"; // 可以根据需要修改排序字段
+            string whereStation = " AND a.run_flag = @RunFlag";
+            if (!string.IsNullOrEmpty(stationId))
+            {
+                whereStation = " AND a.station_id = @StationId";
+            }
+
+            //string sql = $@"
+            //    SELECT * FROM t_patch_detail
+            //    WHERE patch_id = @PatchId AND run_flag = 0{whereStation}
+            //    ORDER BY station_id,sample_time ASC";
+
+            //string sql = $@"
+            //    SELECT * FROM t_patch_detail
+            //    WHERE patch_id = @PatchId{whereStation}
+            //    ORDER BY station_id,sample_time ASC";
+            string sql = $@"
+            SELECT a.*, b.dial_region as dial_region1,b.feature_region as feature_region1
+            FROM t_patch_detail a
+            LEFT JOIN t_stand_detail b ON a.stand_detail_id = b.stand_detail_id
+            WHERE a.patch_id = @PatchId{ whereStation}
+            ORDER BY a.station_id,a.sample_time ASC";
+
+
+            // 定义参数
+            SQLiteParameter[] parameters = new SQLiteParameter[]
+            {
+                new SQLiteParameter("@PatchId", patchId),
+                new SQLiteParameter("@StationId",stationId),
+                new SQLiteParameter("@RunFlag",runFlag)
+            };
+
+            // 执行查询并读取数据
+            List<TPatchDetail> patchDetails = new List<TPatchDetail>();
+            using (SQLiteDataReader reader = SQLiteHelper.ExecuteReader(sql, parameters))
+            {
+                while (reader.Read())
+                {
+                    // 将查询结果映射到 TPatchDetail 对象
+                    TPatchDetail patchDetail = new TPatchDetail
+                    {
+                        PatchDetailId = reader.GetString(reader.GetOrdinal("patch_detail_id")),
+                        PatchId = reader.GetString(reader.GetOrdinal("patch_id")),
+                        CreateTime = reader.GetString(reader.GetOrdinal("create_time")),
+                        StandDetailId = reader.GetString(reader.GetOrdinal("stand_detail_id")),
+                        StandValue = reader.GetString(reader.GetOrdinal("stand_value")),
+                        SrcImage = reader.GetString(reader.GetOrdinal("src_image")),
+                        SampleTime = reader.GetString(reader.GetOrdinal("sample_time")),
+                        RunFlag = reader.GetInt32(reader.GetOrdinal("run_flag")),
+                        RunTime = reader.GetString(reader.GetOrdinal("run_time")),
+                        DstImage = reader.GetString(reader.GetOrdinal("dst_image")),
+                        ResultType = reader.GetInt32(reader.GetOrdinal("result_type")),
+                        RawValue = reader.GetInt64(reader.GetOrdinal("raw_value")),
+                        FinalValue = reader.GetInt64(reader.GetOrdinal("final_value")),
+                        CompleteValue = reader.GetInt64(reader.GetOrdinal("complete_value")),
+                        ValueChanged = reader.GetInt32(reader.GetOrdinal("value_changed")),
+                        ResultMeter = reader.GetInt32(reader.GetOrdinal("result_meter")),
+                        EqualFlag = reader.GetInt32(reader.GetOrdinal("equal_flag")),
+                        AiVer = reader.GetString(reader.GetOrdinal("ai_ver")),
+                        DebugInfo = reader.GetString(reader.GetOrdinal("debug_info")),
+                        LogPath = reader.GetString(reader.GetOrdinal("log_path")),
+                        Memo = reader.GetString(reader.GetOrdinal("memo")),
+                        StationKey = reader.GetString(reader.GetOrdinal("station_key")),
+                        StationId = reader.GetString(reader.GetOrdinal("station_id")),
+                        MeterType = reader.GetInt32(reader.GetOrdinal("meter_type")),
+                        BrightVal = reader.GetDouble(reader.GetOrdinal("bright_val")),
+                        FlowRate = reader.GetInt32(reader.GetOrdinal("flow_rate")),
+                        DigitCount = reader.GetInt32(reader.GetOrdinal("digit_count")),
+                        PointerCount = reader.GetInt32(reader.GetOrdinal("pointer_count")),
+                        LastUnit = reader.GetDouble(reader.GetOrdinal("last_unit")),
+                        NumInUpper = reader.GetInt32(reader.GetOrdinal("num_in_upper")),
+                        //MeterRegion = reader.GetString(reader.GetOrdinal("meter_region")),
+                        //FeatureRegion = reader.GetString(reader.GetOrdinal("feature_region")),
+                        MeterRegion = reader.GetString(reader.GetOrdinal("dial_region1")),
+                        FeatureRegion = reader.GetString(reader.GetOrdinal("feature_region1")),
+                        LastCompress = reader.GetInt32(reader.GetOrdinal("last_compress")),
+                        LatestValue = reader.GetInt64(reader.GetOrdinal("latest_value")),
+                        LatestTime = reader.GetString(reader.GetOrdinal("latest_time")),
+                        LatestComplete = reader.GetInt64(reader.GetOrdinal("latest_complete"))
+                    };
+                    patchDetails.Add(patchDetail);
+                }
+            }
+
+            return patchDetails;
+        }
+
+
         public static int GetPatchDetailsCountWithRunFlagZero(string patchId,string stationId)
         {
             string whereStation = "";