parent
968147ab72
commit
0c48741f6c
|
@ -18,6 +18,7 @@ using System.Data;
|
|||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
|
@ -512,7 +513,7 @@ namespace MECF.Framework.UI.Client.CenterViews.DataLogs.DataHistory
|
|||
}
|
||||
else
|
||||
{
|
||||
// 如果节点名是IO,则数据库使用IO.[二级节点名]作为表名,例如IO.PM1\IO.PM2\IO.TM\IO.System
|
||||
// 如果节点名是IO,则使用其下一级节点查询,因为数据具体保存在哪个表中需要用下一级节点判断。
|
||||
var subNodes = module.ChildNodes;
|
||||
|
||||
foreach (var subNode in subNodes)
|
||||
|
@ -552,27 +553,53 @@ namespace MECF.Framework.UI.Client.CenterViews.DataLogs.DataHistory
|
|||
var ts = dateRange.Diff;
|
||||
for (var day = 0; day <= ts.Days; day++)
|
||||
{
|
||||
var tblName = $"{dateRange.Start.AddDays(day):yyyyMMdd}.{module}";
|
||||
var tblNameDatePart = $"{dateRange.Start.AddDays(day):yyyyMMdd}";
|
||||
var tblName = "";
|
||||
var m = Regex.Match(module.FullName, @"^IO.(\S+)$");
|
||||
|
||||
// 如果节点名称以IO起头,先检查有没有"IO."开头的表,
|
||||
// 如果没有,则使用PMx表查询。
|
||||
if (m.Success)
|
||||
{
|
||||
tblName = $"{tblNameDatePart}.{module}";
|
||||
if (CheckTableExists(tblName) == false) // 检查数据表是否存在,不存在则换名字查询
|
||||
{
|
||||
LOG.Error($"{tblName} does not exist in database.");
|
||||
|
||||
// 更换表名尝试。
|
||||
tblName = $"{tblNameDatePart}.{m.Groups[1].Value}";
|
||||
if (CheckTableExists(tblName) == false)
|
||||
{
|
||||
LOG.Error($"{tblName} does not exist in database.");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
tblName = $"{tblNameDatePart}.{module}";
|
||||
if (CheckTableExists(tblName) == false)
|
||||
{
|
||||
LOG.Error($"{tblName} does not exist in database.");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// 检查表名是否存在,否则SQL执行出错。
|
||||
if (CheckTableExists(tblName))
|
||||
sql.Append("select \"time\" AS InternalTimeStamp");
|
||||
var selectedParams = module.Flatten(true)
|
||||
.Where(x => x.IsSelected == true);
|
||||
|
||||
// 添加待查询的列
|
||||
foreach (var item in selectedParams)
|
||||
{
|
||||
|
||||
sql.Append("select \"time\" AS InternalTimeStamp");
|
||||
var selectedParams = module.Flatten(true)
|
||||
.Where(x => x.IsSelected == true);
|
||||
|
||||
// 添加待查询的列
|
||||
foreach (var item in selectedParams)
|
||||
{
|
||||
sql.Append("," + $"\"{item}\"");
|
||||
}
|
||||
|
||||
sql.Append($" from \"{tblName}\" ");
|
||||
|
||||
if (day < ts.Days)
|
||||
sql.Append(" UNION ");
|
||||
sql.Append("," + $"\"{item}\"");
|
||||
}
|
||||
|
||||
sql.Append($" from \"{tblName}\" ");
|
||||
|
||||
if (day < ts.Days)
|
||||
sql.Append(" UNION ");
|
||||
}
|
||||
|
||||
// 所有表名不可用,可能是日期范围错误
|
||||
|
@ -598,7 +625,7 @@ namespace MECF.Framework.UI.Client.CenterViews.DataLogs.DataHistory
|
|||
if (dataTable == null)
|
||||
return null;
|
||||
|
||||
dataTable.TableName = module.Name;
|
||||
dataTable.TableName = module.FullName;
|
||||
return dataTable;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue