Sic.Framework/MECF.Framework.RT.Equipment.../HardwareUnits/MfcCalculation/MfcSqlHelp.cs

109 lines
3.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Aitex.Core.RT.DBCore;
using MECF.Framework.Common.DataCenter;
using Sicentury.Core.EventArgs;
using Sicentury.Core.Tree;
using Sicentury.Core;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using MECF.Framework.Common.Equipment;
namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.MfcCalculation
{
public class MfcSqlHelp
{
public static void Query(string module,string tabName, string name)
{
var daySlices =DateRangeHelper.SplitInToHours(new DateRangeHelper(DateTime.Now.Date, DateTime.Now.Date.AddDays(1).AddTicks(-1)), 12);
List<string> cmdList = new List<string>();
foreach (var range in daySlices)
{
string tableName = module;
var ts = range.Diff;
for (var day = 0; day <= ts.Days; day++)
{
var tblName = $"{range.Start.AddDays(day):yyyyMMdd}.{tableName}";
var sql = new StringBuilder();
// 检查表名是否存在否则SQL执行出错。
bool b = CheckTableExists(tblName);
if (true)
{
sql.Append("select \"time\" AS InternalTimeStamp");
// 添加待查询的列
sql.Append("," + $"\"{module}.{tabName}.{name}.FeedBack\"");
sql.Append($" from \"{tblName}\" ");
if (day < ts.Days)
sql.Append(" UNION ");
}
string st = sql.ToString();
sql.Append(
$" where \"time\" between {range.Start.Ticks} and {range.End.Ticks} order by InternalTimeStamp asc");
cmdList.Add(sql.ToString());
}
}
//string tableName = module;
//var ts = dateRange.Diff;
//for (var day = 0; day <= ts.Days; day++)
//{
// var tblName = $"{dateRange.Start.AddDays(day):yyyyMMdd}.{tableName}";
// // 检查表名是否存在否则SQL执行出错。
// bool b = CheckTableExists(tblName);
// if (true)
// {
// sql.Append("select \"time\" AS InternalTimeStamp");
// // 添加待查询的列
// sql.Append("," + $"\"{module}.{tabName}.{name}.FeedBack\"");
// sql.Append($" from \"{tblName}\" ");
// if (day < ts.Days)
// sql.Append(" UNION ");
// }
//}
//string st=sql.ToString();
//sql.Append(
//$" where \"time\" between {dateRange.Start.Ticks} and {dateRange.End.Ticks} order by InternalTimeStamp asc");
//string cmdID = $"select * from tray_thickness_data where wafer_guid = '{name}'";
//DataSet dataSet = DB.ExecuteDataset(cmdID);
//var dt = SearchSingleDbTable("PM1", "PM1", new DateRangeHelper(DateTime.Now.AddMinutes(-60), DateTime.Now.AddMinutes(60)));
}
private static bool CheckTableExists(string tableName)
{
var sql =
$"SELECT EXISTS ( SELECT FROM pg_tables WHERE schemaname = 'public' AND tablename = '{tableName}' );";
var table = DB.ExecuteDataset(sql);
if (table == null)
return false;
if (table.Tables[0].Rows.Count <= 0)
return false;
var value = table.Tables[0].Rows.ToString();
if (value.ToLower() == "true")
return true;
return false;
}
}
}