ningshuxia
2024-05-24 7a89858cd237c4fc5d0c952804d35fcaa62be57d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
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;
            }
 
        }
 
    }
}