From 8f6d2b48f22b695574bd4a6c4ac91b1ac9f780b1 Mon Sep 17 00:00:00 2001 From: ningshuxia <ningshuxia0927@outlook.com> Date: 星期一, 06 五月 2024 17:28:35 +0800 Subject: [PATCH] 调度算法 大致完成 --- Schedule/IStation.Algorithm/DAL/ScheduleConclusion.cs | 123 ----------------------------------------- 1 files changed, 0 insertions(+), 123 deletions(-) diff --git a/Schedule/IStation.Algorithm/DAL/ScheduleConclusion.cs b/Schedule/IStation.Algorithm/DAL/ScheduleConclusion.cs index f1c8372..6f4bf3f 100644 --- a/Schedule/IStation.Algorithm/DAL/ScheduleConclusion.cs +++ b/Schedule/IStation.Algorithm/DAL/ScheduleConclusion.cs @@ -100,65 +100,6 @@ #endregion - #region BulkInserts - - /// <summary> - /// 澶ф壒閲忔彃鍏� - /// </summary> - public bool BulkInserts(string runFlag, List<Entity.ScheduleConclusion> list) - { - if (list == null || list.Count < 1) - return default; - var tableName = GetTableName(runFlag); - using (SqlSugarClient db = Connection) - { - return db.Fastest<Entity.ScheduleConclusion>().AS(tableName).BulkCopy(list) > 0; - } - } - - /// <summary> - /// 澶ф壒閲忔彃鍏� - /// </summary> - public async Task<bool> BulkInserts_Create_Async(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 sqlite_master where type = 'table' and name = '{tableName}' ;"; - if (db.Ado.GetInt(exist_sql) < 1) - { - var sql_create_table = $"CREATE TABLE {tableName} (\r\n ID BIGINT NOT NULL\r\n PRIMARY KEY,\r\n ScheduleCombineID BIGINT,\r\n RunFlag VARCHAR (255),\r\n Pump1 REAL,\r\n Pump2 REAL,\r\n Pump3 REAL,\r\n Head REAL,\r\n Flow REAL,\r\n Power REAL,\r\n WP REAL,\r\n UWP REAL\r\n);"; - if (db.Ado.ExecuteCommand(sql_create_table) < 1) - { - return false; - } - } - return await db.Fastest<Entity.ScheduleConclusion>().AS(tableName).BulkCopyAsync(list) > 0; - } - } - - /// <summary> - /// 澶ф壒閲忔彃鍏� - /// </summary> - public bool BulkInserts_SplitTable(List<Entity.ScheduleConclusion> list) - { - if (list == null || list.Count < 1) - return default; - using (SqlSugarClient db = Connection) - { - ///鑷繁鏉ュ埗瀹氬畾涔夌殑瑙勫垯 - db.CurrentConnectionConfig.ConfigureExternalServices.SplitTableService = new Entity.ScheduleConclusionSubTableService(); - db.CodeFirst - .SplitTables()//鏍囪瘑鍒嗚〃 - .InitTables<Entity.ScheduleConclusion>(); //绋嬪簭鍚姩鏃跺姞杩欎竴琛�,濡傛灉涓�寮犺〃娌℃湁浼氬垵濮嬪寲涓�寮� - - //澶ф暟鎹啓鍏�+琛ㄤ笉瀛樺湪浼氬缓琛� - //鑷姩鎵捐〃澶ф暟鎹啓鍏� - return db.Fastest<Entity.ScheduleConclusion>().SplitTable().BulkCopy(list) > 0; - } - } /// <summary> /// 澶ф壒閲忔彃鍏� @@ -181,47 +122,6 @@ } } - /// <summary> - /// 澶ф壒閲忔彃鍏� - /// </summary> - public bool BulkInserts_NativeSql(string runFlag, List<Entity.ScheduleConclusion> list) - { - var tableName = GetTableName(runFlag); - var connect = ConfigHelper.ConnectionString; - SQLiteConnection connection = new SQLiteConnection(connect);//杩炴帴瀵硅薄鍒濆鍖� - connection.Open();//鎵撳紑杩炴帴 - - SQLiteCommand command = new SQLiteCommand(connection);//鍛戒护瀵硅薄鍒濆鍖� - command.CommandText = $"VACUUM;";//鎵цVACUUM鍛戒护鏀剁缉鏁版嵁搴� - command.ExecuteNonQuery(); - - SQLiteTransaction transaction = connection.BeginTransaction();//寮�濮嬩簨鍔� - - var sql_exist_table = $"select count(*) from sqlite_master where type = 'table' and name = '{tableName}';"; - command.CommandText = sql_exist_table; - if (command.ExecuteNonQuery() < 1)//娌℃湁琛ㄥ氨鍒涘缓琛� - { - var sql_create_table = $"CREATE TABLE {tableName} (\r\n ID BIGINT NOT NULL\r\n PRIMARY KEY,\r\n ScheduleCombineID BIGINT,\r\n RunFlag VARCHAR (255),\r\n Pump1 REAL,\r\n Pump2 REAL,\r\n Pump3 REAL,\r\n Head REAL,\r\n Flow REAL,\r\n Power REAL,\r\n WP REAL,\r\n UWP REAL\r\n);\r\n"; - command.CommandText = sql_create_table; - command.ExecuteNonQuery(); - } - - for (int i = 0; i < list.Count; i++) //[---浣跨敤浜嬪姟---]鎵цINSERT鍛戒护 - { - var sql_insert = $"INSERT INTO {tableName}(ID, ScheduleCombineID, RunFlag, Pump1, Pump2, Pump3, Head, Flow, Power, WP, UWP) " + - $"VALUES ('{list[i].ID}','{list[i].ScheduleCombineID}','{list[i].RunFlag}','{list[i].Pump1}','{list[i].Pump2}','{list[i].Pump3}','{list[i].Head}','{list[i].Flow}','{list[i].Power}','{list[i].WP}','{list[i].UWP}')"; - command.CommandText = sql_insert; - command.ExecuteNonQuery(); - } - command.ExecuteScalar(); - transaction.Commit();//鎻愪氦浜嬪姟 - connection.Close();//鍏抽棴杩炴帴 - return true; - } - - #endregion - - /// <summary> /// 鏌ヨ @@ -239,29 +139,6 @@ var list = db.Queryable<Entity.ScheduleConclusion>().AS(tableName) .Where(x => x.Head == targetHead) .OrderBy(x => x.Power) - .ToList(); - return list; - } - - } - - /// <summary> - /// 鏌ヨ - /// </summary> - public List<Entity.ScheduleConclusion> GetList(string runFlag, double targetFlow, double targetHead, int takeCount) - { - var tableName = GetTableName(runFlag); - using (SqlSugarClient db = Connection) - { - var sql = $"select count(*) from sqlite_master where type = 'table' and name = '{tableName}';"; - if (db.Ado.GetInt(sql) < 1) - { - return default; - } - var list = db.Queryable<Entity.ScheduleConclusion>().AS(tableName) - .Where(x => x.Head >= targetHead && x.Head <= targetHead * 1.01 && x.Flow > targetFlow) - .OrderBy(x => x.Power) - .Take(takeCount) .ToList(); return list; } -- Gitblit v1.9.3