namespace IStation.DAL
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public class ScheduleConclusion
|
{
|
public SqlSugarClient Connection
|
{
|
get { return ConfigHelper.GetSqlSugarClient(); }
|
}
|
|
private readonly string _tableNamePrefix = "ScheduleConclusion_Cl_";
|
|
private string GetTableName(string runFlag)
|
{
|
return $"{_tableNamePrefix}{runFlag}";
|
}
|
|
#region Table
|
|
///// <summary>
|
///// 获取全部表名
|
///// </summary>
|
//public List<string> GetAllTableName()
|
//{
|
// var tables = new List<string>();
|
// using (var connection = new SQLiteConnection(ConfigHelper.ConnectionString))
|
// {
|
// connection.Open();
|
// var sql = $"select name from sqlite_master where type='table' and name like '%{_tableNamePrefix}%';";
|
// using (var command = new SQLiteCommand(sql, connection))
|
// {
|
// using (var reader = command.ExecuteReader())
|
// {
|
// while (reader.Read())
|
// {
|
// var tableName = reader["name"].ToString();
|
// tables.Add(tableName);
|
// }
|
// }
|
// }
|
// }
|
// return tables;
|
//}
|
|
/// <summary>
|
/// 判断数据库是否存在表
|
/// </summary>
|
public bool ExistTable(string runFlag)
|
{
|
using (SqlSugarClient db = Connection)
|
{
|
var sql = $"select count(*) from sqlite_master where type = 'table' and name = '{GetTableName(runFlag)}';";
|
var bol = db.Ado.GetInt(sql) > 0;
|
return bol;
|
}
|
}
|
|
|
///// <summary>
|
//// 删除所有表
|
///// </summary>
|
//public bool DeleteAllTable()
|
//{
|
// var tables = GetAllTableName();
|
// if (tables == null || !tables.Any())
|
// return false;
|
|
// using (SqlSugarClient db = Connection)
|
// {
|
// db.BeginTran();
|
|
// foreach (var table in tables)
|
// {
|
// var sql = $"drop table {table};";
|
// db.Ado.ExecuteCommand(sql);
|
// }
|
// db.CommitTran();
|
// }
|
// return true;
|
//}
|
|
|
#endregion
|
|
|
/// <summary>
|
/// 大批量插入
|
/// </summary>
|
public bool BulkInserts_Create(string runFlag, List<Entity.ScheduleConclusion> list)
|
{
|
if (list == null || list.Count < 1)
|
return default;
|
var tableName = GetTableName(runFlag);
|
using (SqlSugarClient db = Connection)
|
{
|
var exist_sql = $"SELECT COUNT(*) FROM system.tables WHERE database = 'default' AND name = '{tableName}'";
|
if (db.Ado.GetInt(exist_sql) < 1)
|
{
|
var sql_create_table = $"CREATE TABLE default.{tableName}\r\n(\r\n\r\n `ID` Int64,\r\n\r\n `ScheduleCombineID` Int64,\r\n\r\n `RunFlag` String,\r\n\r\n `Pump1` Float64,\r\n\r\n `Pump2` Float64,\r\n\r\n `Pump3` Float64,\r\n\r\n `Head` Float64,\r\n\r\n `Flow` Float64,\r\n\r\n `Power` Float64,\r\n\r\n `WP` Float64,\r\n\r\n `UWP` Float64\r\n)\r\nENGINE = MergeTree\r\nPRIMARY KEY ID\r\nORDER BY ID\r\nSETTINGS index_granularity = 8192;";
|
db.Ado.ExecuteCommand(sql_create_table);
|
}
|
//大数据写入
|
return db.Fastest<Entity.ScheduleConclusion>().AS(tableName).BulkCopy(list) > 0;
|
}
|
}
|
|
|
/// <summary>
|
/// 查询
|
/// </summary>
|
public List<Entity.ScheduleConclusion> GetList(string runFlag, double targetHead)
|
{
|
var tableName = GetTableName(runFlag);
|
using (SqlSugarClient db = Connection)
|
{
|
var exist_sql = $"SELECT COUNT(*) FROM system.tables WHERE database = 'default' AND name = '{tableName}'";
|
if (db.Ado.GetInt(exist_sql) < 1)
|
{
|
return default;
|
}
|
var list = db.Queryable<Entity.ScheduleConclusion>().AS(tableName)
|
.Where(x => x.Head == targetHead)
|
.OrderBy(x => x.Power)
|
.ToList();
|
return list;
|
}
|
|
}
|
|
}
|
}
|