alielie
2025-10-13 e3868d4d61ded0e76fc8fe3fdacdd9e6d9113cf1
HMI.UnitTest/MainWindow.xaml.cs
@@ -8,10 +8,10 @@
using Plugin.TestResult_WPF;
using Plugin.TsExecution;
using System;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
namespace UnitTest
{
    /// <summary>
@@ -25,6 +25,7 @@
            ProductModelHelper.GetModelBySNR("cc123", out string model, out string msg);
            LangUtil.Load();
            InitializeComponent();
            RebuildDb();
            //page.Children.Add(new UserControl1());
        }
@@ -32,6 +33,94 @@
        PipeClient2 client;
        public string Conv(object obj)
        {
            if (obj == null || obj is DBNull)
            {
                return "NULL";
            }
            if (obj is DateTime dt)
            {
                return $"'{dt.ToString("yyyy-MM-dd HH:mm:ss")}'";
            }
            return $"'{obj.ToString()}'";
        }
        public void RebuildDb()
        {
            string folder = "C:\\Workspace\\VisualStudio\\WPFProject\\WPFProject\\bin\\x64\\Debug\\Config\\DataBoard";
            var startDate = DateTime.Parse("2025-10-01");
            var endDate = startDate.AddDays(1);
            SqliteHelper sourceHelper = new SqliteHelper("C:\\Workspace\\VisualStudio\\WPFProject\\WPFProject\\bin\\x64\\Debug\\Config\\DataBoard\\DataLog.db");
            while (endDate < DateTime.Parse("2025-10-12"))
            {
                string targetFile = Path.Combine(folder, $"Data_{startDate.ToString("yyyyMMdd")}.db");
                SqliteHelper targetHelper = null;
                if (!File.Exists(targetFile))
                {
                    SqliteHelper.CreateDatabase(targetFile);
                    targetHelper = new SqliteHelper(targetFile);
                    targetHelper.ExecuteSql(@"CREATE TABLE IF NOT EXISTS serialData (
                    id INTEGER PRIMARY KEY AUTOINCREMENT,
                    sn TEXT NOT NULL,
                    model TEXT,
                    station TEXT NOT NULL,
                    step TEXT NOT NULL,
                    position TEXT,
                    limitDown TEXT,
                    limitUp TEXT,
                    unit TEXT,
                    offset TEXT,
                    value TEXT,
                    status TEXT,
                    finalStatus TEXT,
                    consumeTime TEXT,
                    totalConsumeTime TEXT,
                    time DATETIME NOT NULL);");
                    targetHelper.ExecuteSql(@"CREATE TABLE IF NOT EXISTS testResult (
                    id INTEGER PRIMARY KEY AUTOINCREMENT,
                    sn TEXT NOT NULL,
                    model TEXT,
                    station TEXT NOT NULL,
                    position TEXT,
                    status TEXT,
                    result TEXT NOT NULL,
                    time DATETIME NOT NULL);");
                    string sql = $@"SELECT sn,model,station,step,position,limitDown,limitUp,unit,offset,value,status,
finalStatus,consumeTime,totalConsumeTime,time
FROM serialData WHERE time>='{startDate.ToString("yyyy-MM-dd")}' AND time < '{endDate.ToString("yyyy-MM-dd")}';";
                    var dt = sourceHelper.GetDataTable(sql);
                    foreach (System.Data.DataRow dr in dt.Rows)
                    {
                        targetHelper.ExecuteSql($@"INSERT INTO serialData
(sn,model,station,step,position,limitDown,limitUp,unit,offset,value,status,finalStatus,consumeTime,totalConsumeTime,time) VALUES
({Conv(dr["sn"])}, {Conv(dr["model"])}, {Conv(dr["station"])}, {Conv(dr["step"])}, {Conv(dr["position"])}, {Conv(dr["limitDown"])}, {Conv(dr["limitUP"])},
{Conv(dr["unit"])}, {Conv(dr["offset"])}, {Conv(dr["value"])}, {Conv(dr["status"])}, {Conv(dr["finalStatus"])}, {Conv(dr["consumeTime"])},
{Conv(dr["totalConsumeTime"])}, {Conv(dr["time"])})");
                    }
                    sql = $@"SELECT sn,model,station,position,status,result,time FROM testResult WHERE time>='{startDate.ToString("yyyy-MM-dd")}'
AND time < '{endDate.ToString("yyyy-MM-dd")}';";
                    dt = sourceHelper.GetDataTable(sql);
                    foreach (System.Data.DataRow dr in dt.Rows)
                    {
                        targetHelper.ExecuteSql($@"INSERT INTO testResult
(sn,model,station,position,status,result,time) VALUES
({Conv(dr["sn"])}, {Conv(dr["model"])}, {Conv(dr["station"])}, {Conv(dr["position"])}, {Conv(dr["status"])}, {Conv(dr["result"])}, {Conv(dr["time"])})");
                    }
                    targetHelper.Dispose();
                    startDate = startDate.AddDays(1);
                    endDate = endDate.AddDays(1);
                }
            }
            sourceHelper.Dispose();
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            Task.Run(() =>