This commit is contained in:
dev01 2022-12-31 18:03:21 +08:00
commit dd8dfc4fe9
8 changed files with 120 additions and 58 deletions

View File

@ -95,6 +95,7 @@ namespace Backend.Controllers
{ "@created_by", myUserInfo.Userinfo_guid} { "@created_by", myUserInfo.Userinfo_guid}
}; };
if (actionName != "CompareData" && controllerName != "NiagaraDataSynchronize") //skip the log
backendRepository.InsertOperatorLog(operatorLog, "operation_back_log"); backendRepository.InsertOperatorLog(operatorLog, "operation_back_log");
//operatorLogRepository.Add(operatorLog, properties); //operatorLogRepository.Add(operatorLog, properties);

View File

@ -8,6 +8,7 @@ using Microsoft.Extensions.Logging;
using Backend.Services; using Backend.Services;
using Backend.Services.Implement; using Backend.Services.Implement;
using Repository.Models; using Repository.Models;
using System.Linq;
namespace Backend.Controllers namespace Backend.Controllers
{ {
@ -69,13 +70,14 @@ namespace Backend.Controllers
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
public async Task<ApiResult<bool>> CompareData(List<Device_value> ds, string building) public async Task<ApiResult<bool>> CompareData([FromBody] List<Device_value> ds)
{ {
bool result = false; bool result = false;
ApiResult<bool> apiResult = new ApiResult<bool>(); ApiResult<bool> apiResult = new ApiResult<bool>();
try try
{ {
var building = ds.FirstOrDefault().building;
await niagaraDataSynchronizeRepository.InsertNiagaraTagList(ds, building); await niagaraDataSynchronizeRepository.InsertNiagaraTagList(ds, building);
await niagaraDataSynchronizeRepository.InsertItemFromNiagara(ds, building); await niagaraDataSynchronizeRepository.InsertItemFromNiagara(ds, building);
await niagaraDataSynchronizeRepository.DeviceComparison(); await niagaraDataSynchronizeRepository.DeviceComparison();

View File

@ -144,11 +144,19 @@
//比對資料有差異的話再同步到device等資料表 //比對資料有差異的話再同步到device等資料表
var url_synchronize_data = "/NiagaraDataSynchronize/CompareData/"; var url_synchronize_data = "/NiagaraDataSynchronize/CompareData/";
var send_data = { $.each(ds, function (i, v) {
ds: ds, v.building = building;
building: building })
}
$.post(url_synchronize_data, send_data, function (rel) { $.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") { if (rel.code != "0000") {
toast_error(rel.msg); toast_error(rel.msg);
document.getElementById('loadDataText').innerText = "比對資料出錯了!"; document.getElementById('loadDataText').innerText = "比對資料出錯了!";
@ -157,7 +165,8 @@
var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds(); var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();
var dateTime = date + ' ' + time; var dateTime = date + ' ' + time;
document.getElementById('loadDataText').innerText = "比對完成 \n" + dateTime; document.getElementById('loadDataText').innerText = "比對完成 \n" + dateTime;
}, 'json'); },
});
} }
else { else {
document.getElementById('loadDataText').innerText = "查無資料 無法比對!"; document.getElementById('loadDataText').innerText = "查無資料 無法比對!";

View File

@ -10,7 +10,6 @@ using System.Threading.Tasks;
using System.Transactions; using System.Transactions;
using Repository.Models; using Repository.Models;
namespace Repository.BackendRepository.Implement namespace Repository.BackendRepository.Implement
{ {
public class NiagaraDataSynchronizeRepository : BackendRepository, INiagaraDataSynchronizeRepository public class NiagaraDataSynchronizeRepository : BackendRepository, INiagaraDataSynchronizeRepository
@ -230,6 +229,18 @@ namespace Repository.BackendRepository.Implement
//新增至device, is_link = 1 //新增至device, is_link = 1
if (result.Count > 0) 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) foreach (var data in result)
{ {
sb.Append($@" insert device(device_guid, deleted, status, priority, is_link, device_area_tag, 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.device_serial_tag + "', '" +
data.niagara_tags + "', '" + data.niagara_tags + "', '" +
data.device_system_tag + "', now(), now() );"); 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, 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, device_normal_flashing, device_close_flashing, device_error_flashing, device_error_independent,
created_by, created_at) 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());"); "', 0, 0, 1, 0, 'B43E3CA7-96DD-4FC7-B6E6-974ACC3B0878', now());");
} }
if (sb.Length > 0) if (sb.Length > 0)
{ {
await conn.ExecuteAsync(sb.ToString()); await conn.ExecuteAsync(sb.ToString());
@ -389,7 +404,13 @@ namespace Repository.BackendRepository.Implement
{ {
foreach (var data in result) 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<building_menu>(sqlString.ToString())).ToList<building_menu>();
#region insert building_menu #region insert building_menu
if (bm.Count == 0)
{
sb.Append(@"insert building_menu(building_tag, main_system_tag, sub_system_tag, device_building_tag, device_system_tag, 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) is_link, created_by, created_at, updated_by, updated_at)
VALUES ('" + data.device_building_tag + "', '" + VALUES ('" + data.device_building_tag + "', '" +
@ -398,6 +419,7 @@ namespace Repository.BackendRepository.Implement
data.device_building_tag + "', '" + data.device_building_tag + "', '" +
data.device_system_tag + "', " + data.device_system_tag + "', " +
"1, 'B43E3CA7-96DD-4FC7-B6E6-974ACC3B0878', now(), 'B43E3CA7-96DD-4FC7-B6E6-974ACC3B0878', now() );"); "1, 'B43E3CA7-96DD-4FC7-B6E6-974ACC3B0878', now(), 'B43E3CA7-96DD-4FC7-B6E6-974ACC3B0878', now() );");
}
#endregion #endregion
} }
if (sb.Length > 0) if (sb.Length > 0)

View File

@ -47,6 +47,7 @@ namespace Repository.Models
public string value { get; set; } public string value { get; set; }
public string tag_name { get; set; } public string tag_name { get; set; }
public string point_name { get; set; } public string point_name { get; set; }
public string building { get; set; }
} }
public class Device_item8 public class Device_item8
@ -93,4 +94,10 @@ namespace Repository.Models
public string device_point_name { get; set; } 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; }
}
} }

View File

@ -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" 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" />--> providerName="MySql.Data.MySqlClient" />-->
<add name="dbConStr" connectionString="server=192.168.0.201;user=bims;Database=bims_wsp;Port=33306;password=mjmdev_BIMS2022;charset='utf8';pooling=true;sslmode=none;;Connection Timeout=6000" providerName="MySql.Data.MySqlClient" /> <add name="dbConStr" connectionString="server=192.168.0.201;user=bims;Database=bims_mitsubishi;Port=33306;password=mjmdev_BIMS2022;charset='utf8';pooling=true;sslmode=none;;Connection Timeout=6000" providerName="MySql.Data.MySqlClient" />
</connectionStrings> </connectionStrings>
</configuration> </configuration>

View File

@ -81,6 +81,8 @@ namespace tpDomeWinAPP.Service
{ {
if (string.IsNullOrEmpty(row.tag_name)) continue; if (string.IsNullOrEmpty(row.tag_name)) continue;
string[] arrTag = row.tag_name.Split('_'); 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('" + device_name_tag, device_floor_tag, device_master_tag, device_last_name_tag, device_serial_tag, atDateTime) values('" +
@ -95,6 +97,7 @@ namespace tpDomeWinAPP.Service
arrTag[7] + "', " + arrTag[7] + "', " +
"now());"); "now());");
} }
}
try try
{ {
if (sb.Length > 0) if (sb.Length > 0)
@ -137,7 +140,8 @@ namespace tpDomeWinAPP.Service
{ {
if (string.IsNullOrEmpty(row.tag_name)) continue; if (string.IsNullOrEmpty(row.tag_name)) continue;
string[] arrTag = row.tag_name.Split('_'); string[] arrTag = row.tag_name.Split('_');
if (arrTag.Length == 8)
{
#region for item #region for item
device_item8 row_item = new device_item8(); device_item8 row_item = new device_item8();
row_item.tag_name = row.tag_name; row_item.tag_name = row.tag_name;
@ -153,6 +157,7 @@ namespace tpDomeWinAPP.Service
dt_item.Add(row_item); dt_item.Add(row_item);
#endregion #endregion
} }
}
//device_item //device_item
var ds2_item = dt_item.GroupBy(x => new var ds2_item = dt_item.GroupBy(x => new
@ -221,6 +226,18 @@ namespace tpDomeWinAPP.Service
//新增至device, is_link = 1 //新增至device, is_link = 1
if (result.Count > 0) 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) foreach (var data in result)
{ {
sb.Append($@" insert device(device_guid, deleted, status, priority, is_link, device_area_tag, sb.Append($@" insert device(device_guid, deleted, status, priority, is_link, device_area_tag,
@ -238,13 +255,17 @@ namespace tpDomeWinAPP.Service
data.device_serial_tag + "', '" + data.device_serial_tag + "', '" +
data.niagara_tags + "', '" + data.niagara_tags + "', '" +
data.device_system_tag + "', now(), now() );"); 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, 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, device_normal_flashing, device_close_flashing, device_error_flashing, device_error_independent,
created_by, created_at) 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());"); "', 0, 0, 1, 0, 'B43E3CA7-96DD-4FC7-B6E6-974ACC3B0878', now());");
} }
if (sb.Length > 0) if (sb.Length > 0)
{ {
conn.Execute(sb.ToString()); conn.Execute(sb.ToString());

View File

@ -167,10 +167,10 @@ namespace tpDomeWinAPP
{ {
webRequestSvc svc = new webRequestSvc(); webRequestSvc svc = new webRequestSvc();
string url_slot2 = "slot:/NTPC/B1|";//wsp 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://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: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:8081/obix/config/Program/ObixQuery/query/", bql);//wsp
//ds = svc.obixQuery("http://localhost:8080/obix/config/Program/ObixQuery/query/", bql); //ds = svc.obixQuery("http://localhost:8080/obix/config/Program/ObixQuery/query/", bql);
dataGridView1.DataSource = ds; dataGridView1.DataSource = ds;
dataGridView1.Columns[0].Visible = false; dataGridView1.Columns[0].Visible = false;