[Backend]改善同步timeout、是否顯示歷史資料問題

This commit is contained in:
張家睿 2024-10-04 18:14:14 +08:00
parent 5766931a1f
commit f5d08d9fa9

View File

@ -254,7 +254,8 @@ CREATE TABLE `import_niagara_item` (
row.device_point_name + "', '" + row.device_point_name + "', '" +
row.parent_path + "', '" + row.parent_path + "', '" +
row.full_name + "'," + row.full_name + "'," +
row.isHistory + ", now() " + "true" + ", now() " +
//row.isHistory + ", now() " +
");"; ");";
sb.Append(ss); sb.Append(ss);
} }
@ -293,12 +294,11 @@ CREATE TABLE `import_niagara_item` (
using (IDbConnection conn = GetDbConnection()) using (IDbConnection conn = GetDbConnection())
{ {
conn.Open(); 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; SET FOREIGN_KEY_CHECKS = 0;
-- ---------------------------- -- ----------------------------
@ -306,74 +306,108 @@ SET FOREIGN_KEY_CHECKS = 0;
-- ---------------------------- -- ----------------------------
DROP TABLE IF EXISTS `import_niagara_item_history`; DROP TABLE IF EXISTS `import_niagara_item_history`;
CREATE TABLE `import_niagara_item_history` ( CREATE TABLE `import_niagara_item_history` (
`id` int(11) NOT NULL AUTO_INCREMENT, `id` int(11) NOT NULL AUTO_INCREMENT,
`device_area_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, `device_number` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT ' TagName ',
`device_building_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, `device_area_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_building_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_system_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_name_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_floor_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_master_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_last_name_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, `device_serial_tag` 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, `device_point_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`is_history` bit(1) NULL DEFAULT b'0', `parent_path` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`full_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, `is_history` bit(1) NULL DEFAULT b'0',
`check_status` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, `full_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `check_status` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
) ENGINE = InnoDB AUTO_INCREMENT = 271 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; 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;"; SET FOREIGN_KEY_CHECKS = 1;";
using (TransactionScope scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
{
await conn.ExecuteAsync(sql); await conn.ExecuteAsync(sql);
}
#region import_niagara_item資料表中選取的棟別 #region import_niagara_item資料表中選取的棟別
//foreach (var b in building) //foreach (var b in building)
//{ //{
// sql = "delete from import_niagara_item_history where device_building_tag = '" + b + "'"; // sql = "delete from import_niagara_item_history where device_building_tag = '" + b + "'";
// await conn.ExecuteAsync(sql); // await conn.ExecuteAsync(sql);
//} //}
#endregion #endregion
StringBuilder sb = new StringBuilder();
int count = 0;
#region import_niagara_item資料表
StringBuilder sb = new StringBuilder(); string ss = string.Empty;
#region import_niagara_item資料表 foreach (var row in ds)
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, 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_floor_tag, device_master_tag, device_last_name_tag, device_serial_tag, device_point_name, parent_path, full_name, is_history, created_at) device_last_name_tag, device_serial_tag, device_point_name, parent_path, full_name, is_history, created_at) values";
values('" + }
row.device_area_tag + "', '" +
row.device_building_tag + "', '" + ss += $@" ('" +
row.device_system_tag + "', '" + row.device_area_tag + "', '" +
row.device_name_tag + "', '" + row.device_building_tag + "', '" +
row.device_floor_tag + "', '" + row.device_system_tag + "', '" +
row.device_master_tag + "', '" + row.device_name_tag + "', '" +
row.device_last_name_tag + "', '" + row.device_floor_tag + "', '" +
row.device_serial_tag + "', '" + row.device_master_tag + "', '" +
row.device_point_name + "', '" + row.device_last_name_tag + "', '" +
row.parent_path + "', '" + row.device_serial_tag + "', '" +
row.full_name + "'," + row.device_point_name + "', '" +
row.isHistory + ", now() " + row.parent_path + "', '" +
");"; row.full_name + "'," +
"true" + ", now() " +
")";
count++;
if (count == 100)
{
ss += ";";
sb.Append(ss); sb.Append(ss);
} using (TransactionScope scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
if (sb.Length > 0) {
{ await conn.ExecuteAsync(sb.ToString());
await conn.ExecuteAsync(sb.ToString()); }
sb.Clear(); sb.Clear();
ss = string.Empty;
count = 0;
} }
#endregion else
ss += ",";
} }
catch (Exception exception)
sb.Append(ss);
if (sb.Length > 0)
{ {
throw exception; sb.Clear();
} ss = ss.Remove(ss.Length - 1);
finally ss += ";";
{ sb.Append(ss);
conn.Close(); using (TransactionScope scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
{
await conn.ExecuteAsync(sb.ToString());
}
sb.Clear();
} }
#endregion
}
catch (Exception exception)
{
throw exception;
}
finally
{
conn.Close();
} }
} }
} }