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; } } } }