From 1afe548ac40cc7f975917ef9bf2e156595cf81f3 Mon Sep 17 00:00:00 2001
From: alielie <alielie@git.com>
Date: 星期四, 16 四月 2026 08:58:04 +0800
Subject: [PATCH] 优化;
---
Plugin.DataBoard/DataBoard.xaml.cs | 130 +++++++++++++++++++++++++++++++++++++++----
1 files changed, 117 insertions(+), 13 deletions(-)
diff --git a/Plugin.DataBoard/DataBoard.xaml.cs b/Plugin.DataBoard/DataBoard.xaml.cs
index 7e66211..ad70928 100644
--- a/Plugin.DataBoard/DataBoard.xaml.cs
+++ b/Plugin.DataBoard/DataBoard.xaml.cs
@@ -1,4 +1,7 @@
锘縰sing HMI.Base;
+using HMI.Core.Entity;
+using HMI.Core.Manager;
+using HMI.Core.Setting;
using HMI.Core.Util;
using HMI.UI.Util;
using HMI.Util;
@@ -41,9 +44,81 @@
set { Set(ref _options, value); }
}
+
+ private string iniFile;
+ private string DataFolder;
+ public override void InitFinish()
+ {
+ iniFile = Path.Combine(BaseFolder, "Config.ini");
+ if (!File.Exists(iniFile))
+ {
+ File.Create(iniFile);
+ }
+ DataFolder = ParamSetting.DataLogFolder;
+ LoadProduct();
+ }
+
private void PluginControl_Loaded(object sender, RoutedEventArgs e)
{
+ }
+
+ private void LoadProduct()
+ {
+ List<ProductData> products = ProductManager.GetProducts<List<ProductData>>()
+ ?? new List<ProductData>();
+ this.modelSelect.Items.Clear();
+ List<string> productSource = new List<string>();
+ foreach (var prd in products)
+ {
+ this.modelSelect.Items.Add(prd.Name);
+ productSource.Add(prd.Name);
+ }
+
+ string model = IniFileHelper.ReadIniData("Config", "Model", "", iniFile);
+ if (!string.IsNullOrEmpty(model))
+ {
+ this.modelSelect.SelectedItem = model;
+ }
+ else if (products.Count > 0)
+ {
+ this.modelSelect.SelectedIndex = 0;
+ }
+ }
+
+ private void RefreshAll()
+ {
+ try
+ {
+ var start0 = dtp00.SelectedDateTime ?? DateTime.Now;
+ var end0 = dtp01.SelectedDateTime ?? DateTime.Now;
+ RefreshChart0(start0, end0);
+ }
+ catch { }
+
+ try
+ {
+ var start1 = dtp10.SelectedDateTime ?? DateTime.Now;
+ var end1 = dtp11.SelectedDateTime ?? DateTime.Now;
+ RefreshChart1(start1, end1);
+ }
+ catch { }
+
+ try
+ {
+ var start2 = dtp20.SelectedDateTime ?? DateTime.Now;
+ var end2 = dtp21.SelectedDateTime ?? DateTime.Now;
+ RefreshChart2(start2, end2);
+ }
+ catch { }
+
+ try
+ {
+ var start3 = dtp30.SelectedDateTime ?? DateTime.Now;
+ var end3 = dtp31.SelectedDateTime ?? DateTime.Now;
+ RefreshChart3(start3, end3);
+ }
+ catch { }
}
private void Button_Click(object sender, RoutedEventArgs e)
@@ -52,6 +127,9 @@
DateTime start, end;
switch (btn.Name)
{
+ case "btnAll":
+ RefreshAll();
+ break;
case "btn0":
start = dtp00.SelectedDateTime ?? DateTime.Now;
end = dtp01.SelectedDateTime ?? DateTime.Now;
@@ -77,15 +155,15 @@
}
}
- public static string[] GetDbFiles(string folderPath, DateTime startTime, DateTime endTime)
+ public string[] GetDbFiles(DateTime startTime, DateTime endTime)
{
- if (!Directory.Exists(folderPath))
+ if (!Directory.Exists(DataFolder))
{
return new string[0];
}
string startName = $"Data_{startTime.ToString("yyyyMMdd")}";
string endName = $"Data_{endTime.ToString("yyyyMMdd")}";
- var oldFiles = Directory.GetFiles(folderPath, "Data_*.db");
+ var oldFiles = Directory.GetFiles(DataFolder, "Data_*.db");
oldFiles = oldFiles.Where(file =>
{
var fileName = Path.GetFileNameWithoutExtension(file);
@@ -99,15 +177,22 @@
}
- private List<SerialData> SelectSerialDataByTime(DateTime start, DateTime end)
+ private List<SerialData> SelectSerialDataByTime(string model, DateTime start, DateTime end)
{
var s1 = DateTime.Now;
- string[] files = GetDbFiles(BaseFolder, start, end);
+ string[] files = GetDbFiles(start, end);
if (files == null || files.Length <= 0)
{
return new List<SerialData>();
}
- string sql = $"SELECT * FROM serialData WHERE time BETWEEN '{start:yyyy-MM-dd HH:mm:ss}' AND '{end:yyyy-MM-dd HH:mm:ss}' ORDER BY time DESC;";
+ string segment = string.Empty;
+ if (!string.IsNullOrEmpty(model))
+ {
+ segment = $"AND model = '{model}'";
+ }
+
+ string sql = $@"SELECT * FROM serialData WHERE time BETWEEN '{start:yyyy-MM-dd HH:mm:ss}' AND '{end:yyyy-MM-dd HH:mm:ss}'
+{segment} ORDER BY time DESC;";
DataTable dt = new DataTable();
foreach (string file in files)
@@ -124,14 +209,21 @@
return data;
}
- private List<SerialData> SelectResultDataByTime(DateTime start, DateTime end)
+ private List<SerialData> SelectResultDataByTime(string model, DateTime start, DateTime end)
{
- string[] files = GetDbFiles(BaseFolder, start, end);
+ string[] files = GetDbFiles(start, end);
if (files == null || files.Length <= 0)
{
return new List<SerialData>();
}
- string sql = $"SELECT * FROM testResult WHERE time BETWEEN '{start:yyyy-MM-dd HH:mm:ss}' AND '{end:yyyy-MM-dd HH:mm:ss}';";
+
+ string segment = string.Empty;
+ if (!string.IsNullOrEmpty(model))
+ {
+ segment = $"AND model = '{model}'";
+ }
+
+ string sql = $@"SELECT * FROM testResult WHERE time BETWEEN '{start:yyyy-MM-dd HH:mm:ss}' AND '{end:yyyy-MM-dd HH:mm:ss}' {segment};";
DataTable dt = new DataTable();
foreach (string file in files)
@@ -206,6 +298,7 @@
{
dtp00.SelectedDateTime = start;
dtp01.SelectedDateTime = end;
+ string model = modelSelect.SelectedItem?.ToString();
Task.Run(() =>
{
try
@@ -214,7 +307,7 @@
{
webview2.CoreWebView2?.ExecuteScriptAsync($"loading0('鍔犺浇涓紝璇风◢鍚�...')");
}));
- List<SerialData> datas = SelectResultDataByTime(start, end);
+ List<SerialData> datas = SelectResultDataByTime(model, start, end);
datas.OrderByDescending(e => e.time);
int all = 0, output = 0;
HashSet<string> snCache = new HashSet<string>();
@@ -243,6 +336,7 @@
{
dtp10.SelectedDateTime = start;
dtp11.SelectedDateTime = end;
+ string model = modelSelect.SelectedItem?.ToString();
Task.Run(() =>
{
try
@@ -251,7 +345,7 @@
{
webview2.CoreWebView2?.ExecuteScriptAsync($"loading1('鍔犺浇涓紝璇风◢鍚�...')");
}));
- List<SerialData> datas = SelectResultDataByTime(start, end);
+ List<SerialData> datas = SelectResultDataByTime(model, start, end);
datas = datas.OrderByDescending(e => e.time).ToList();
Dictionary<string, int?> pieData = new Dictionary<string, int?> {
@@ -367,6 +461,7 @@
{
dtp20.SelectedDateTime = start;
dtp21.SelectedDateTime = end;
+ string model = modelSelect.SelectedItem?.ToString();
Task.Run(() =>
{
try
@@ -375,7 +470,7 @@
{
webview2.CoreWebView2?.ExecuteScriptAsync($"loading2('鍔犺浇涓紝璇风◢鍚�...')");
}));
- List<SerialData> datas = SelectResultDataByTime(start, end);
+ List<SerialData> datas = SelectResultDataByTime(model, start, end);
var groups =
datas.GroupBy(d => d.time.ToString("yyyy-MM-dd"));
@@ -446,6 +541,7 @@
{
dtp30.SelectedDateTime = start;
dtp31.SelectedDateTime = end;
+ string model = modelSelect.SelectedItem?.ToString();
Task.Run(() =>
{
try
@@ -455,7 +551,7 @@
webview2.CoreWebView2?.ExecuteScriptAsync($"loading3('鍔犺浇涓紝璇风◢鍚�...')");
}));
var st = DateTime.Now;
- List<SerialData> datas = SelectSerialDataByTime(start, end);
+ List<SerialData> datas = SelectSerialDataByTime(model, start, end);
var s2 = DateTime.Now;
log.Info($"RefreshChart3 Data Cast {(s2 - st).TotalMilliseconds}");
@@ -544,5 +640,13 @@
break;
}
}
+
+ private void modelSelect_SelectionChanged(object sender, SelectionChangedEventArgs e)
+ {
+ if (e.AddedItems.Count > 0)
+ {
+ IniFileHelper.WriteIniData("Config", "Model", e.AddedItems[0].ToString(), iniFile);
+ }
+ }
}
}
--
Gitblit v1.9.1