diff --git a/.gitignore b/.gitignore index 17b04ea..d064013 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +# ---> VisualStudio ## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. ## @@ -91,6 +92,7 @@ StyleCopReport.xml *.tmp_proj *_wpftmp.csproj *.log +*.tlog *.vspscc *.vssscc .builds @@ -294,6 +296,17 @@ node_modules/ # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) *.vbw +# Visual Studio 6 auto-generated project file (contains which files were open etc.) +*.vbp + +# Visual Studio 6 workspace and project file (working project files containing files to include in project) +*.dsw +*.dsp + +# Visual Studio 6 technical files +*.ncb +*.aps + # Visual Studio LightSwitch build output **/*.HTMLClient/GeneratedArtifacts **/*.DesktopClient/GeneratedArtifacts @@ -350,6 +363,9 @@ ASALocalRun/ # Local History for Visual Studio .localhistory/ +# Visual Studio History (VSHistory) files +.vshistory/ + # BeatPulse healthcheck temp database healthchecksdb @@ -361,5 +377,27 @@ MigrationBackup/ # Fody - auto-generated XML schema FodyWeavers.xsd + +# VS Code files for those working on multiple tools +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +*.code-workspace + +# Local History for Visual Studio Code +.history/ + +# Windows Installer files from build outputs +*.cab +*.msi +*.msix +*.msm +*.msp + +# JetBrains Rider +*.sln.iml + /Backend/wwwroot/upload/floor_map.zip *.nwd diff --git a/Backend/Controllers/NiagaraDataSynchronizeController.cs b/Backend/Controllers/NiagaraDataSynchronizeController.cs index 136d0b7..2b6f7ac 100644 --- a/Backend/Controllers/NiagaraDataSynchronizeController.cs +++ b/Backend/Controllers/NiagaraDataSynchronizeController.cs @@ -27,6 +27,7 @@ namespace Backend.Controllers private Stopwatch stopwatch = new Stopwatch(); private Stopwatch stopwatchSection = new Stopwatch(); private Stopwatch syncStopWatch = new Stopwatch(); + private static long syncWatchTime = 0; public NiagaraDataSynchronizeController(IBackendRepository backendRepository, INiagaraDataSynchronizeRepository niagaraDataSynchronizeRepository,IBackEndConfigHelper backEndConfig) { @@ -103,7 +104,9 @@ namespace Backend.Controllers [HttpPost] public async Task> CompareData([FromBody] List ds) { + syncStopWatch = new Stopwatch(); syncStopWatch.Start(); + syncWatchTime = 0; stopwatch = new Stopwatch(); stopwatch.Start(); bool result = false; @@ -199,6 +202,10 @@ namespace Backend.Controllers stopwatch.Stop(); await niagaraDataSynchronizeRepository.KeepTimeLog("CompareData", stopwatch.ElapsedMilliseconds); + + syncStopWatch.Stop(); + syncWatchTime += syncStopWatch.ElapsedMilliseconds; + return apiResult; } @@ -209,6 +216,8 @@ namespace Backend.Controllers [HttpPost] public Task>> RawDataDevItemList([FromBody] Device_value building) { + syncStopWatch = new Stopwatch(); + syncStopWatch.Start(); ApiResult> apiResult = new ApiResult>(); stopwatch = new Stopwatch(); stopwatch.Start(); @@ -260,6 +269,9 @@ namespace Backend.Controllers //return apiResult; stopwatch.Stop(); niagaraDataSynchronizeRepository.KeepTimeLog("RawDataDevItemList", stopwatch.ElapsedMilliseconds); + + syncStopWatch.Stop(); + syncWatchTime += syncStopWatch.ElapsedMilliseconds; return Task.FromResult(apiResult); } @@ -270,6 +282,8 @@ namespace Backend.Controllers [HttpPost] public async Task> DevIteComData([FromBody] List ds) { + syncStopWatch = new Stopwatch(); + syncStopWatch.Start(); stopwatch = new Stopwatch(); stopwatch.Start(); bool result = false; @@ -366,7 +380,8 @@ namespace Backend.Controllers await niagaraDataSynchronizeRepository.KeepTimeLog("DevIteComData", stopwatch.ElapsedMilliseconds); syncStopWatch.Stop(); - await niagaraDataSynchronizeRepository.KeepTimeLog("Full sync usage record", syncStopWatch.ElapsedMilliseconds); + syncWatchTime += syncStopWatch.ElapsedMilliseconds; + await niagaraDataSynchronizeRepository.KeepTimeLog("Full sync usage record", syncWatchTime); return apiResult; } diff --git a/README.md b/README.md new file mode 100644 index 0000000..db13253 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# ibms + +智慧建築, 智慧工廠 \ No newline at end of file diff --git a/Repository/BackendRepository/Implement/NiagaraDataSynchronizeRepository.cs b/Repository/BackendRepository/Implement/NiagaraDataSynchronizeRepository.cs index 049856d..5ce8b2e 100644 --- a/Repository/BackendRepository/Implement/NiagaraDataSynchronizeRepository.cs +++ b/Repository/BackendRepository/Implement/NiagaraDataSynchronizeRepository.cs @@ -1574,38 +1574,54 @@ SET FOREIGN_KEY_CHECKS = 1;"; #region 放入import_niagara_item資料表 stopwatchSection = new Stopwatch(); stopwatchSection.Start(); + string ss = string.Empty; foreach (var row in ds) { - 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() " + - ");"; - sb.Append(ss); + if (count == 0) + { + 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 + "'," + + row.isHistory + ", now() " + + ")"; + count++; if (count == 100) { + ss += ";"; + sb.Append(ss); using (TransactionScope scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled)) { await conn.ExecuteAsync(sb.ToString()); } sb.Clear(); + ss = string.Empty; count = 0; } + else + ss += ","; } + + sb.Append(ss); if (sb.Length > 0) { + sb.Clear(); + ss = ss.Remove(ss.Length - 1); + ss += ";"; + sb.Append(ss); using (TransactionScope scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled)) { await conn.ExecuteAsync(sb.ToString()); @@ -1717,23 +1733,37 @@ device_floor_tag, device_master_tag, device_last_name_tag, device_serial_tag, d stopwatchSection.Start(); StringBuilder sb = new StringBuilder(); int count = 0; + sql = string.Empty; foreach (var data in dcp) { - sql = $@" insert into import_niagara_device_control_point(name, displayName, device_area_tag, device_building_tag, device_system_tag, device_name_tag, device_floor_tag, - device_number, device_point_name) - values ('{data.name}', '{data.displayName}', '{data.device_area_tag}', '{data.device_building_tag}', '{data.device_system_tag}', '{data.device_name_tag}', - '{data.device_floor_tag}', '{data.device_number}', '{data.device_point_name}');"; - sb.Append(sql); + if (count == 0) + { + sql = @"insert into import_niagara_device_control_point(name, displayName, device_area_tag, device_building_tag, device_system_tag, device_name_tag, device_floor_tag, + device_number, device_point_name) values"; + } + sql += $@" ('{data.name}', '{data.displayName}', '{data.device_area_tag}', '{data.device_building_tag}', '{data.device_system_tag}', '{data.device_name_tag}', + '{data.device_floor_tag}', '{data.device_number}', '{data.device_point_name}')"; count++; if (count.Equals(100)) { + sql += ";"; + sb.Append(sql); await conn.ExecuteAsync(sb.ToString()); sb.Clear(); + sql = string.Empty; count = 0; } + else + sql += ","; } + + sb.Append(sql); if (sb.Length > 0) { + sb.Clear(); + sql = sql.Remove(sql.Length - 1); + sql += ";"; + sb.Append(sql); await conn.ExecuteAsync(sb.ToString()); sb.Clear(); }