From f5d08d9fa992e1bfddf73a565d521fd1415f3432 Mon Sep 17 00:00:00 2001 From: "jay.chang" Date: Fri, 4 Oct 2024 18:14:14 +0800 Subject: [PATCH] =?UTF-8?q?[Backend]=E6=94=B9=E5=96=84=E5=90=8C=E6=AD=A5ti?= =?UTF-8?q?meout=E3=80=81=E6=98=AF=E5=90=A6=E9=A1=AF=E7=A4=BA=E6=AD=B7?= =?UTF-8?q?=E5=8F=B2=E8=B3=87=E6=96=99=E5=95=8F=E9=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../NiagaraDataSynchronizeRepository.cs | 154 +++++++++++------- 1 file changed, 94 insertions(+), 60 deletions(-) diff --git a/Repository/BackendRepository/Implement/NiagaraDataSynchronizeRepository.cs b/Repository/BackendRepository/Implement/NiagaraDataSynchronizeRepository.cs index 4ee1e47..b740160 100644 --- a/Repository/BackendRepository/Implement/NiagaraDataSynchronizeRepository.cs +++ b/Repository/BackendRepository/Implement/NiagaraDataSynchronizeRepository.cs @@ -254,7 +254,8 @@ CREATE TABLE `import_niagara_item` ( row.device_point_name + "', '" + row.parent_path + "', '" + row.full_name + "'," + - row.isHistory + ", now() " + + "true" + ", now() " + + //row.isHistory + ", now() " + ");"; sb.Append(ss); } @@ -293,12 +294,11 @@ CREATE TABLE `import_niagara_item` ( using (IDbConnection conn = GetDbConnection()) { conn.Open(); - using (TransactionScope scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled)) + try { - try - { - //改成每次都新增 - string sql = @"SET NAMES utf8mb4; + + //改成每次都新增 + string sql = @"SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- @@ -306,74 +306,108 @@ SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- DROP TABLE IF EXISTS `import_niagara_item_history`; CREATE TABLE `import_niagara_item_history` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `device_area_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, - `device_building_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, - `device_system_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, - `device_name_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, - `device_floor_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, - `device_master_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, - `device_last_name_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, - `device_serial_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, - `device_point_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, - `parent_path` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, - `is_history` bit(1) NULL DEFAULT b'0', - `full_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, - `check_status` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, - `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 271 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; +`id` int(11) NOT NULL AUTO_INCREMENT, +`device_number` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '完整 TagName 設備編號', +`device_area_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, +`device_building_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, +`device_system_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, +`device_name_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, +`device_floor_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, +`device_master_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, +`device_last_name_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, +`device_serial_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, +`device_point_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, +`parent_path` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, +`is_history` bit(1) NULL DEFAULT b'0', +`full_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, +`check_status` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, +`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, +PRIMARY KEY (`id`) USING BTREE, +KEY `idx_device_number` (`device_number`) +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; SET FOREIGN_KEY_CHECKS = 1;"; + using (TransactionScope scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled)) + { await conn.ExecuteAsync(sql); + } - #region 刪除 import_niagara_item資料表中選取的棟別 - //foreach (var b in building) - //{ + #region 刪除 import_niagara_item資料表中選取的棟別 + //foreach (var b in building) + //{ - // sql = "delete from import_niagara_item_history where device_building_tag = '" + b + "'"; - // await conn.ExecuteAsync(sql); - //} - #endregion + // sql = "delete from import_niagara_item_history where device_building_tag = '" + b + "'"; + // await conn.ExecuteAsync(sql); + //} + #endregion + StringBuilder sb = new StringBuilder(); + int count = 0; + #region 放入import_niagara_item資料表 - StringBuilder sb = new StringBuilder(); - #region 放入import_niagara_item資料表 - foreach (var row in ds) + string ss = string.Empty; + foreach (var row in ds) + { + if (count == 0) { - string ss = $@" insert import_niagara_item_history(device_area_tag, device_building_tag, device_system_tag, device_name_tag, -device_floor_tag, device_master_tag, device_last_name_tag, device_serial_tag, device_point_name, parent_path, full_name, is_history, created_at) - values('" + - row.device_area_tag + "', '" + - row.device_building_tag + "', '" + - row.device_system_tag + "', '" + - row.device_name_tag + "', '" + - row.device_floor_tag + "', '" + - row.device_master_tag + "', '" + - row.device_last_name_tag + "', '" + - row.device_serial_tag + "', '" + - row.device_point_name + "', '" + - row.parent_path + "', '" + - row.full_name + "'," + - row.isHistory + ", now() " + - ");"; + ss = @"insert import_niagara_item_history(device_area_tag, device_building_tag, device_system_tag, device_name_tag, device_floor_tag, device_master_tag, + device_last_name_tag, device_serial_tag, device_point_name, parent_path, full_name, is_history, created_at) values"; + } + + ss += $@" ('" + + row.device_area_tag + "', '" + + row.device_building_tag + "', '" + + row.device_system_tag + "', '" + + row.device_name_tag + "', '" + + row.device_floor_tag + "', '" + + row.device_master_tag + "', '" + + row.device_last_name_tag + "', '" + + row.device_serial_tag + "', '" + + row.device_point_name + "', '" + + row.parent_path + "', '" + + row.full_name + "'," + + "true" + ", now() " + + ")"; + + count++; + if (count == 100) + { + ss += ";"; sb.Append(ss); - } - if (sb.Length > 0) - { - await conn.ExecuteAsync(sb.ToString()); + using (TransactionScope scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled)) + { + await conn.ExecuteAsync(sb.ToString()); + } sb.Clear(); + ss = string.Empty; + count = 0; } - #endregion + else + ss += ","; } - catch (Exception exception) + + sb.Append(ss); + if (sb.Length > 0) { - throw exception; - } - finally - { - conn.Close(); + sb.Clear(); + ss = ss.Remove(ss.Length - 1); + ss += ";"; + sb.Append(ss); + using (TransactionScope scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled)) + { + await conn.ExecuteAsync(sb.ToString()); + } + sb.Clear(); } + #endregion + } + catch (Exception exception) + { + throw exception; + } + finally + { + conn.Close(); } } }