diff --git a/Backend/Controllers/MybaseController.cs b/Backend/Controllers/MybaseController.cs
index 4cb7fb4..6db4590 100644
--- a/Backend/Controllers/MybaseController.cs
+++ b/Backend/Controllers/MybaseController.cs
@@ -95,7 +95,8 @@ namespace Backend.Controllers
{ "@created_by", myUserInfo.Userinfo_guid}
};
- backendRepository.InsertOperatorLog(operatorLog, "operation_back_log");
+ if (actionName != "CompareData" && controllerName != "NiagaraDataSynchronize") //skip the log
+ backendRepository.InsertOperatorLog(operatorLog, "operation_back_log");
//operatorLogRepository.Add(operatorLog, properties);
#endregion
diff --git a/Backend/Controllers/NiagaraDataSynchronizeController.cs b/Backend/Controllers/NiagaraDataSynchronizeController.cs
index 8209ed9..692f525 100644
--- a/Backend/Controllers/NiagaraDataSynchronizeController.cs
+++ b/Backend/Controllers/NiagaraDataSynchronizeController.cs
@@ -8,6 +8,7 @@ using Microsoft.Extensions.Logging;
using Backend.Services;
using Backend.Services.Implement;
using Repository.Models;
+using System.Linq;
namespace Backend.Controllers
{
@@ -69,13 +70,14 @@ namespace Backend.Controllers
///
///
[HttpPost]
- public async Task> CompareData(List ds, string building)
+ public async Task> CompareData([FromBody] List ds)
{
bool result = false;
+
ApiResult apiResult = new ApiResult();
try
{
-
+ var building = ds.FirstOrDefault().building;
await niagaraDataSynchronizeRepository.InsertNiagaraTagList(ds, building);
await niagaraDataSynchronizeRepository.InsertItemFromNiagara(ds, building);
await niagaraDataSynchronizeRepository.DeviceComparison();
diff --git a/Backend/Views/NiagaraDataSynchronize/Index.cshtml b/Backend/Views/NiagaraDataSynchronize/Index.cshtml
index ac25e57..75ccf70 100644
--- a/Backend/Views/NiagaraDataSynchronize/Index.cshtml
+++ b/Backend/Views/NiagaraDataSynchronize/Index.cshtml
@@ -144,20 +144,29 @@
//比對資料,有差異的話,再同步到device等資料表
var url_synchronize_data = "/NiagaraDataSynchronize/CompareData/";
- var send_data = {
- ds: ds,
- building: building
- }
- $.post(url_synchronize_data, send_data, function (rel) {
- if (rel.code != "0000") {
- toast_error(rel.msg);
- document.getElementById('loadDataText').innerText = "比對資料出錯了!";
- return;
- }
- var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();
- var dateTime = date + ' ' + time;
- document.getElementById('loadDataText').innerText = "比對完成 \n" + dateTime;
- }, 'json');
+ $.each(ds, function (i, v) {
+ v.building = building;
+ })
+
+ $.ajax({
+ method: "POST",
+ url: url_synchronize_data,
+ data: JSON.stringify(ds),
+ cache: false,
+ async: false,
+ contentType: "application/json; charset=UTF-8",
+ dataType: 'json',
+ success: function (rel) {
+ if (rel.code != "0000") {
+ toast_error(rel.msg);
+ document.getElementById('loadDataText').innerText = "比對資料出錯了!";
+ return;
+ }
+ var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();
+ var dateTime = date + ' ' + time;
+ document.getElementById('loadDataText').innerText = "比對完成 \n" + dateTime;
+ },
+ });
}
else {
document.getElementById('loadDataText').innerText = "查無資料 無法比對!";
diff --git a/Repository/BackendRepository/Implement/NiagaraDataSynchronizeRepository.cs b/Repository/BackendRepository/Implement/NiagaraDataSynchronizeRepository.cs
index 18e2e45..804cc30 100644
--- a/Repository/BackendRepository/Implement/NiagaraDataSynchronizeRepository.cs
+++ b/Repository/BackendRepository/Implement/NiagaraDataSynchronizeRepository.cs
@@ -10,7 +10,6 @@ using System.Threading.Tasks;
using System.Transactions;
using Repository.Models;
-
namespace Repository.BackendRepository.Implement
{
public class NiagaraDataSynchronizeRepository : BackendRepository, INiagaraDataSynchronizeRepository
@@ -230,6 +229,18 @@ namespace Repository.BackendRepository.Implement
//新增至device, is_link = 1
if (result.Count > 0)
{
+ var result2 = result.GroupBy(x => new
+ {
+ device_building_tag2 = x.device_building_tag,
+ device_system_tag2 = x.device_system_tag,
+ device_name_tag2 = x.device_name_tag
+ }).Select(x => new Device_item8
+ {
+ device_building_tag = x.Key.device_building_tag2,
+ device_system_tag = x.Key.device_system_tag2,
+ device_name_tag = x.Key.device_name_tag2
+ });
+
foreach (var data in result)
{
sb.Append($@" insert device(device_guid, deleted, status, priority, is_link, device_area_tag,
@@ -247,13 +258,17 @@ namespace Repository.BackendRepository.Implement
data.device_serial_tag + "', '" +
data.niagara_tags + "', '" +
data.device_system_tag + "', now(), now() );");
+ }
+ foreach (var data in result2)
+ {
sb2.Append($@"INSERT device_kind (device_kind_guid, device_building_tag, device_system_tag, device_name_tag,
device_normal_flashing, device_close_flashing, device_error_flashing, device_error_independent,
created_by, created_at)
VALUES (uuid(), '" + data.device_building_tag + "', '" + data.device_system_tag + "', '" + data.device_name_tag +
"', 0, 0, 1, 0, 'B43E3CA7-96DD-4FC7-B6E6-974ACC3B0878', now());");
}
+
if (sb.Length > 0)
{
await conn.ExecuteAsync(sb.ToString());
@@ -389,15 +404,22 @@ namespace Repository.BackendRepository.Implement
{
foreach (var data in result)
{
+ StringBuilder sqlString = new StringBuilder();
+ sqlString.Append(@"select * from building_menu where building_tag = '" + data.device_building_tag + "' and main_system_tag = '" + data.device_system_tag + "' and sub_system_tag = '" + data.device_name_tag + "'");
+ var bm = (await conn.QueryAsync(sqlString.ToString())).ToList();
+
#region insert building_menu
- sb.Append(@"insert building_menu(building_tag, main_system_tag, sub_system_tag, device_building_tag, device_system_tag,
- is_link, created_by, created_at, updated_by, updated_at)
- VALUES ('" + data.device_building_tag + "', '" +
- data.device_system_tag + "', '" +
- data.device_name_tag + "', '" +
- data.device_building_tag + "', '" +
- data.device_system_tag + "', " +
- "1, 'B43E3CA7-96DD-4FC7-B6E6-974ACC3B0878', now(), 'B43E3CA7-96DD-4FC7-B6E6-974ACC3B0878', now() );");
+ if (bm.Count == 0)
+ {
+ sb.Append(@"insert building_menu(building_tag, main_system_tag, sub_system_tag, device_building_tag, device_system_tag,
+ is_link, created_by, created_at, updated_by, updated_at)
+ VALUES ('" + data.device_building_tag + "', '" +
+ data.device_system_tag + "', '" +
+ data.device_name_tag + "', '" +
+ data.device_building_tag + "', '" +
+ data.device_system_tag + "', " +
+ "1, 'B43E3CA7-96DD-4FC7-B6E6-974ACC3B0878', now(), 'B43E3CA7-96DD-4FC7-B6E6-974ACC3B0878', now() );");
+ }
#endregion
}
if (sb.Length > 0)
diff --git a/Repository/Models/BackgroundServiceTask.cs b/Repository/Models/BackgroundServiceTask.cs
index fafd4d4..d81f8d6 100644
--- a/Repository/Models/BackgroundServiceTask.cs
+++ b/Repository/Models/BackgroundServiceTask.cs
@@ -47,6 +47,7 @@ namespace Repository.Models
public string value { get; set; }
public string tag_name { get; set; }
public string point_name { get; set; }
+ public string building { get; set; }
}
public class Device_item8
@@ -93,4 +94,10 @@ namespace Repository.Models
public string device_point_name { get; set; }
}
+ public class building_menu
+ {
+ public string building_tag { get; set; }
+ public string device_system_tag { get; set; }
+ public string device_name_tag { get; set; }
+ }
}
diff --git a/z01_WinAPP/App.config b/z01_WinAPP/App.config
index 499124a..0d579f1 100644
--- a/z01_WinAPP/App.config
+++ b/z01_WinAPP/App.config
@@ -9,7 +9,7 @@
connectionString="Data Source=192.168.0.201:33306;Initial Catalog=bims_mitsubishi;Persist Security Info=True;User ID=bims;Password=mjmdev_BIMS2022"
providerName="MySql.Data.MySqlClient" />-->
-
+
\ No newline at end of file
diff --git a/z01_WinAPP/Service/procCompare.cs b/z01_WinAPP/Service/procCompare.cs
index d61efd2..59f9843 100644
--- a/z01_WinAPP/Service/procCompare.cs
+++ b/z01_WinAPP/Service/procCompare.cs
@@ -81,19 +81,22 @@ namespace tpDomeWinAPP.Service
{
if (string.IsNullOrEmpty(row.tag_name)) continue;
string[] arrTag = row.tag_name.Split('_');
+ if (arrTag.Length == 8)
+ {
- sb.Append($@" insert import_niagara_tag(niagara_tags, device_area_tag, device_building_tag, device_system_tag,
+ sb.Append($@" insert import_niagara_tag(niagara_tags, 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, atDateTime) values('" +
- row.tag_name + "', '" +
- arrTag[0] + "', '" +
- arrTag[1] + "', '" +
- arrTag[2] + "', '" +
- arrTag[3] + "', '" +
- arrTag[4] + "', '" +
- arrTag[5] + "', '" +
- arrTag[6] + "', '" +
- arrTag[7] + "', " +
- "now());");
+ row.tag_name + "', '" +
+ arrTag[0] + "', '" +
+ arrTag[1] + "', '" +
+ arrTag[2] + "', '" +
+ arrTag[3] + "', '" +
+ arrTag[4] + "', '" +
+ arrTag[5] + "', '" +
+ arrTag[6] + "', '" +
+ arrTag[7] + "', " +
+ "now());");
+ }
}
try
{
@@ -137,21 +140,23 @@ namespace tpDomeWinAPP.Service
{
if (string.IsNullOrEmpty(row.tag_name)) continue;
string[] arrTag = row.tag_name.Split('_');
-
- #region for item
- device_item8 row_item = new device_item8();
- row_item.tag_name = row.tag_name;
- row_item.device_area_tag = arrTag[0];
- row_item.device_building_tag = arrTag[1];
- row_item.device_system_tag = arrTag[2];
- row_item.device_name_tag = arrTag[3];
- row_item.device_floor_tag = arrTag[4];
- row_item.device_master_tag = arrTag[5];
- row_item.device_last_name_tag = arrTag[6];
- row_item.device_serial_tag = arrTag[7];
- row_item.point_name = row.point_name;
- dt_item.Add(row_item);
- #endregion
+ if (arrTag.Length == 8)
+ {
+ #region for item
+ device_item8 row_item = new device_item8();
+ row_item.tag_name = row.tag_name;
+ row_item.device_area_tag = arrTag[0];
+ row_item.device_building_tag = arrTag[1];
+ row_item.device_system_tag = arrTag[2];
+ row_item.device_name_tag = arrTag[3];
+ row_item.device_floor_tag = arrTag[4];
+ row_item.device_master_tag = arrTag[5];
+ row_item.device_last_name_tag = arrTag[6];
+ row_item.device_serial_tag = arrTag[7];
+ row_item.point_name = row.point_name;
+ dt_item.Add(row_item);
+ #endregion
+ }
}
//device_item
@@ -221,6 +226,18 @@ namespace tpDomeWinAPP.Service
//新增至device, is_link = 1
if (result.Count > 0)
{
+ var result2 = result.GroupBy(x => new
+ {
+ device_building_tag2 = x.device_building_tag,
+ device_system_tag2 = x.device_system_tag,
+ device_name_tag2 = x.device_name_tag
+ }).Select(x => new device_item8
+ {
+ device_building_tag = x.Key.device_building_tag2,
+ device_system_tag = x.Key.device_system_tag2,
+ device_name_tag = x.Key.device_name_tag2
+ });
+
foreach (var data in result)
{
sb.Append($@" insert device(device_guid, deleted, status, priority, is_link, device_area_tag,
@@ -238,14 +255,18 @@ namespace tpDomeWinAPP.Service
data.device_serial_tag + "', '" +
data.niagara_tags + "', '" +
data.device_system_tag + "', now(), now() );");
+ }
+ foreach (var data in result2)
+ {
sb2.Append($@"INSERT device_kind (device_kind_guid, device_building_tag, device_system_tag, device_name_tag,
device_normal_flashing, device_close_flashing, device_error_flashing, device_error_independent,
created_by, created_at)
- VALUES (uuid(), '" + data.device_building_tag + "', '" + data.device_system_tag + "', '" + data.device_name_tag +
+ VALUES (uuid(), '" + data.device_building_tag + "', '" + data.device_system_tag + "', '" + data.device_name_tag +
"', 0, 0, 1, 0, 'B43E3CA7-96DD-4FC7-B6E6-974ACC3B0878', now());");
}
- if(sb.Length > 0)
+
+ if (sb.Length > 0)
{
conn.Execute(sb.ToString());
conn.Execute(sb2.ToString());
diff --git a/z01_WinAPP/fmCheckTagName.cs b/z01_WinAPP/fmCheckTagName.cs
index 0f9778d..18b31b8 100644
--- a/z01_WinAPP/fmCheckTagName.cs
+++ b/z01_WinAPP/fmCheckTagName.cs
@@ -167,10 +167,10 @@ namespace tpDomeWinAPP
{
webRequestSvc svc = new webRequestSvc();
string url_slot2 = "slot:/NTPC/B1|";//wsp
- string bql = url_slot2 + "bql:select " + top100 + " * from control:ControlPoint ";//三菱: url_slot; wsp: url_slot2
+ string bql = url_slot + "bql:select " + top100 + " * from control:ControlPoint ";//三菱: url_slot; wsp: url_slot2
//ds = svc.obixQuery("http://60.251.164.125:8080/obix/config/Arena/Program/ObixQuery/query/", bql);
- //ds = svc.obixQuery("http://192.168.0.136:8080/obix/config/Program/ObixQuery/query/", bql);//三菱
- ds = svc.obixQuery("http://192.168.0.136:8081/obix/config/Program/ObixQuery/query/", bql);//wsp
+ ds = svc.obixQuery("http://192.168.0.136:8080/obix/config/Program/ObixQuery/query/", bql);//三菱
+ //ds = svc.obixQuery("http://192.168.0.136:8081/obix/config/Program/ObixQuery/query/", bql);//wsp
//ds = svc.obixQuery("http://localhost:8080/obix/config/Program/ObixQuery/query/", bql);
dataGridView1.DataSource = ds;
dataGridView1.Columns[0].Visible = false;