namespace IStation.DAL.SQLite
{
///
///
///
public partial class AnalysisConclusion : Yw.DAL.SQLite.BaseDAL, IAnalysisConclusion
{
///
///
///
public override ConnectionConfig ConnectionConfig
{
get { return ConfigHelper.AnalysisConnectionConfig; }
}
///
///
///
private string TableNamePrefix
{
get { return "AnalysisConclusion_Cl_"; }
}
///
///
///
///
///
private string GetTableName(string runFlag)
{
return $"{this.TableNamePrefix}{runFlag}";
}
///
///
///
///
///
private string GetCreateTableSql(string tableName)
{
var sql = $"CREATE TABLE {tableName} ( ID BIGINT NOT NULL PRIMARY KEY, CombineID BIGINT, Pump1 REAL, Pump2 REAL, Head REAL, Flow REAL, Power REAL, WP REAL, UWP REAL ); ";
return sql;
}
///
///
///
///
///
private string GetExistTableSql(string tableName)
{
return ConfigHelper.GetExistTableSql(tableName);
}
///
/// 获取全部表名
///
public List GetAllTableName()
{
using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig))
{
var list = new List();
var sql = $"select name from sqlite_master where type='table' and name like '%{this.TableNamePrefix}%';";
using (var reader = db.Ado.GetDataReader(sql))
{
while (reader.Read())
{
var tableName = reader["name"].ToString();
list.Add(tableName);
}
}
return list;
}
}
///
/// 通过表名获取未分析组合
///
public List GetNoAnalysisByTableName(string tableName)
{
using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig))
{
var sql = $"select * from {tableName} where AnaStatus=False";
var list = db.Ado.SqlQuery(sql);
return list;
}
}
///
/// 大批量插入(表不存在就新建)
///
public bool BulkInsertsEx(string runFlag, List list)
{
if (list == null || list.Count < 1)
return default;
var tableName = GetTableName(runFlag);
using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig))
{
var exist_sql = GetExistTableSql(tableName);
if (db.Ado.GetInt(exist_sql) < 1)
{
var sql_create_table = GetCreateTableSql(tableName);
db.Ado.ExecuteCommand(sql_create_table);
}
//大数据写入
return db.Fastest().AS(tableName).BulkCopy(list) > 0;
}
}
///
/// 判断数据库是否存在表
///
public bool ExistTable(string runFlag)
{
using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig))
{
var tableName = GetTableName(runFlag);
var sql = GetExistTableSql(tableName);
var bol = db.Ado.ExecuteCommand(sql) > 0;
return bol;
}
}
///
/// 删除所有表
///
public bool DeleteAllTable()
{
var tables = GetAllTableName();
if (tables == null || !tables.Any())
return false;
using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig))
{
db.BeginTran();
foreach (var table in tables)
{
var sql = $"drop table {table};";
db.Ado.ExecuteCommand(sql);
}
db.CommitTran();
}
return true;
}
///
/// 查询
///
public List GetList(string runFlag, double targetHead)
{
var tableName = GetTableName(runFlag);
using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig))
{
var sql = GetExistTableSql(tableName);
if (db.Ado.GetInt(sql) < 1)
{
return default;
}
var list = db.Queryable().AS(tableName)
.Where(x => x.Head == targetHead)
.OrderBy(x => x.Power)
.ToList();
return list;
}
}
}
}