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 cmdList = new List(); 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; } } }