From 99df058a665ea04065a23e729ec79a2f23f79881 Mon Sep 17 00:00:00 2001
From: alielie <alielie@git.com>
Date: 星期二, 20 五月 2025 16:59:43 +0800
Subject: [PATCH] 优化

---
 SimpleUtil/HMI.SerialData.Util/SerialDataHelper.cs |   59 ++++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 38 insertions(+), 21 deletions(-)

diff --git a/SimpleUtil/HMI.SerialData.Util/SerialDataHelper.cs b/SimpleUtil/HMI.SerialData.Util/SerialDataHelper.cs
index a725973..4661184 100644
--- a/SimpleUtil/HMI.SerialData.Util/SerialDataHelper.cs
+++ b/SimpleUtil/HMI.SerialData.Util/SerialDataHelper.cs
@@ -6,13 +6,19 @@
 {
     public class SerialDataHelper
     {
+        private static string FileName = "SerialData";
+        /// <summary>
+        /// 闃叉澶氱嚎绋嬪垱寤烘枃浠讹紙浣嗘槸涓嶇煡閬搕eststand浼氫笉浼氬杩涚▼璋冪敤锛�
+        /// </summary>
+        private static object fileLock = new object();
+
         private static string createTableSql = @"CREATE TABLE IF NOT EXISTS serialData (
                     id INTEGER PRIMARY KEY AUTOINCREMENT,
                     sn TEXT NOT NULL,
                     station TEXT NOT NULL,
                     step TEXT NOT NULL,
                     status TEXT NOT NULL,
-                    time TIME NOT NULL);";
+                    time DATETIME NOT NULL);";
 
         private static string GetConnectionStr(string dbFile)
         {
@@ -21,42 +27,53 @@
 
         private static void CreateDbFile(string dbFile)
         {
-            if (!File.Exists(dbFile))
+            lock (fileLock)
             {
-                string dir = Path.GetDirectoryName(dbFile);
-                if (!Directory.Exists(dir))
+                if (!File.Exists(dbFile))
                 {
-                    Directory.CreateDirectory(dir);
-                }
-                SQLiteConnection.CreateFile(dbFile);
+                    string dir = Path.GetDirectoryName(dbFile);
+                    if (!Directory.Exists(dir))
+                    {
+                        Directory.CreateDirectory(dir);
+                    }
+                    SQLiteConnection.CreateFile(dbFile);
 
-                using (SQLiteConnection conn = new SQLiteConnection())
-                using (SQLiteCommand cmd = new SQLiteCommand(conn))
-                {
-                    conn.ConnectionString = GetConnectionStr(dbFile);
-                    conn.Open();
-                    cmd.CommandText = createTableSql;
-                    cmd.ExecuteNonQuery();
+                    using (SQLiteConnection conn = new SQLiteConnection())
+                    using (SQLiteCommand cmd = new SQLiteCommand(conn))
+                    {
+                        conn.ConnectionString = GetConnectionStr(dbFile);
+                        conn.Open();
+                        cmd.CommandText = createTableSql;
+                        cmd.ExecuteNonQuery();
+                    }
                 }
             }
         }
 
-        public static bool InsertSerialData(string dbFile, string sn, string station, string step, string status, out string errMsg)
+        private static string GetDbFile()
+        {
+            string value = RegUtil.GetLocaltion();
+            string path = Path.Combine(value, "Config", "DataBoard", $"{FileName}_{DateTime.Now:yyyy-MM}.db");
+            if (!File.Exists(path))
+            {
+                CreateDbFile(path);
+            }
+            return path;
+        }
+
+        public static bool InsertSerialData(string sn, string station, string step, string status, out string errMsg)
         {
             errMsg = string.Empty;
             try
             {
-                if (!File.Exists(dbFile))
-                {
-                    CreateDbFile(dbFile);
-                }
+                string dbFile = GetDbFile();
                 using (SQLiteConnection conn = new SQLiteConnection())
                 using (SQLiteCommand cmd = new SQLiteCommand(conn))
                 {
                     conn.ConnectionString = GetConnectionStr(dbFile);
                     conn.Open();
                     cmd.CommandText =
-                        $@"INSERT INTO serialData (sn, station, step, status, time) VALUES ('{sn}', '{station}', '{step}', '{status}', '{DateTime.Now:yyyy-MM-dd HH:mm.ss}');";
+                        $@"INSERT INTO serialData (sn, station, step, status, time) VALUES ('{sn}', '{station}', '{step}', '{status}', '{DateTime.Now:yyyy-MM-dd HH:mm:ss}');";
                     if (cmd.ExecuteNonQuery() > 0)
                     {
                         return true;
@@ -88,7 +105,7 @@
                     conn.ConnectionString = GetConnectionStr(dbFile);
                     conn.Open();
                     cmd.CommandText =
-                        $@"UPDATE serialData SET status='{status}', time='{DateTime.Now:yyyy-MM-dd HH:mm.ss}' WHERE sn='{sn}';";
+                        $@"UPDATE serialData SET status='{status}', time='{DateTime.Now:yyyy-MM-dd HH:mm:ss}' WHERE sn='{sn}';";
                     if (cmd.ExecuteNonQuery() > 0)
                     {
                         return true;

--
Gitblit v1.9.1