debug 後台同步 niagara 資料

This commit is contained in:
GiteaAdmin 2023-03-07 15:02:29 +08:00
parent b146283d13
commit e3700b63b8
5 changed files with 3957 additions and 26 deletions

View File

@ -820,11 +820,10 @@ namespace Backend.Controllers
//更新device資料表 room_dbid 欄位
string sql = @"
SET SQL_SAFE_UPDATES = 0;
UPDATE
device AS de,
UPDATE device AS de,
(
select f.room_id, f.room_name from forge_room f
join device d ON f.room_name = d.room_name
select f.room_id, f.room_name from forge_room f
join device d ON f.room_name = d.room_name
) AS re
SET de.room_dbid = re.room_id
WHERE de.room_name = re.room_name;";

View File

@ -15,6 +15,8 @@ using Ubiety.Dns.Core;
using System.Diagnostics;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using Repository.Models.CodeBeautify;
using NPOI.SS.Formula.Functions;
namespace Backend.Services.Implement
{
@ -163,12 +165,11 @@ namespace Backend.Services.Implement
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(responseString);
string jsonText = JsonConvert.SerializeXmlNode(xmlDoc);
var data = Welcome.FromJson(jsonText);
foreach (var item in data.Obj.Ref)
//ref https://stackoverflow.com/questions/642293/how-do-i-read-and-parse-an-xml-file-in-c
foreach (XmlNode node in xmlDoc.DocumentElement.ChildNodes)
{
String API_Url2 = urlString + "/" + item.Name;
string stationName = node.Attributes["name"].InnerText; // WSP_Supervisor
String API_Url2 = urlString + "/" + stationName; // http://192.168.0.136:8081/obix/histories/WSP_Supervisor
HttpWebRequest Postrequest2 = (HttpWebRequest)WebRequest.Create(API_Url2);
Postrequest2.Method = "GET";
@ -181,32 +182,117 @@ namespace Backend.Services.Implement
XmlDocument xmlDoc2 = new XmlDocument();
xmlDoc2.LoadXml(responseString2);
string jsonText2 = JsonConvert.SerializeXmlNode(xmlDoc2);
var data2 = Welcome.FromJson(jsonText2);
foreach (var item2 in data2.Obj.Ref)
foreach (XmlNode node2 in xmlDoc2.DocumentElement.ChildNodes)
{
if (item2.Name.Split('_').Length == 9)
string tagName = node2.Attributes["name"].InnerText;
if (tagName.Split('_').Length == 9)
{
ImpNiaItem row = new ImpNiaItem();
row.device_area_tag = item2.Name.Split('_')[0];
row.device_building_tag = item2.Name.Split('_')[1];
row.device_system_tag = item2.Name.Split('_')[2];
row.device_name_tag = item2.Name.Split('_')[3];
row.device_point_name = item2.Name.Split('_')[8];
row.parent_path = item.Name;
row.device_area_tag = tagName.Split('_')[0];
row.device_building_tag = tagName.Split('_')[1];
row.device_system_tag = tagName.Split('_')[2];
row.device_name_tag = tagName.Split('_')[3];
row.device_point_name = tagName.Split('_')[8];
row.parent_path = stationName;
//full_name 其實是點位名稱 point_name
row.full_name = conPoint.Where(x => x.name == item2.Name).Select(x => x.displayName).FirstOrDefault();
row.full_name = conPoint.Where(x => x.name == tagName).Select(x => x.displayName).FirstOrDefault();
result.Add(row);
} else if (tagName.Split('_').Length == 6)
{ //巨蛋 tag 5 段版本
}
}
}
}
#endregion
return result;
}
//private static void getRefData(string urlString, string encoded, List<control_point> conPoint, List<ImpNiaItem> result, Welcome data ) //obixHistory data
//{
// foreach (var item in data.Obj.Ref)
// {
// //var item = data.Obj.Ref;
// String API_Url2 = urlString + "/" + item.Name;
// HttpWebRequest Postrequest2 = (HttpWebRequest)WebRequest.Create(API_Url2);
// Postrequest2.Method = "GET";
// Postrequest2.Headers.Add("Authorization", "Basic " + encoded);
// Postrequest2.PreAuthenticate = true;
// HttpWebResponse response2 = (HttpWebResponse)Postrequest2.GetResponse();
// var responseString2 = new StreamReader(response2.GetResponseStream()).ReadToEnd();
// XmlDocument xmlDoc2 = new XmlDocument();
// xmlDoc2.LoadXml(responseString2);
// string jsonText2 = JsonConvert.SerializeXmlNode(xmlDoc2);
// var data2 = Welcome.FromJson(jsonText2);
// foreach (var item2 in data2.Obj.Ref)
// {
// if (item2.Name.Split('_').Length == 9)
// {
// ImpNiaItem row = new ImpNiaItem();
// row.device_area_tag = item2.Name.Split('_')[0];
// row.device_building_tag = item2.Name.Split('_')[1];
// row.device_system_tag = item2.Name.Split('_')[2];
// row.device_name_tag = item2.Name.Split('_')[3];
// row.device_point_name = item2.Name.Split('_')[8];
// row.parent_path = item.Name;
// //full_name 其實是點位名稱 point_name
// row.full_name = conPoint.Where(x => x.name == item2.Name).Select(x => x.displayName).FirstOrDefault();
// result.Add(row);
// }
// }
// }
//}
//private static void getRefData(string urlString, string encoded, List<control_point> conPoint, List<ImpNiaItem> result, Welcome4 data)
//{
// foreach (var item in data.Obj.Ref)
// {
// String API_Url2 = urlString + "/" + item.Name;
// HttpWebRequest Postrequest2 = (HttpWebRequest)WebRequest.Create(API_Url2);
// Postrequest2.Method = "GET";
// Postrequest2.Headers.Add("Authorization", "Basic " + encoded);
// Postrequest2.PreAuthenticate = true;
// HttpWebResponse response2 = (HttpWebResponse)Postrequest2.GetResponse();
// var responseString2 = new StreamReader(response2.GetResponseStream()).ReadToEnd();
// XmlDocument xmlDoc2 = new XmlDocument();
// xmlDoc2.LoadXml(responseString2);
// string jsonText2 = JsonConvert.SerializeXmlNode(xmlDoc2);
// var data2 = Welcome.FromJson(jsonText2);
// foreach (var item2 in data2.Obj.Ref)
// {
// if (item2.Name.Split('_').Length == 9)
// {
// ImpNiaItem row = new ImpNiaItem();
// row.device_area_tag = item2.Name.Split('_')[0];
// row.device_building_tag = item2.Name.Split('_')[1];
// row.device_system_tag = item2.Name.Split('_')[2];
// row.device_name_tag = item2.Name.Split('_')[3];
// row.device_point_name = item2.Name.Split('_')[8];
// row.parent_path = item.Name;
// //full_name 其實是點位名稱 point_name
// row.full_name = conPoint.Where(x => x.name == item2.Name).Select(x => x.displayName).FirstOrDefault();
// result.Add(row);
// }
// }
// }
//}
//public void getObix()
//{

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 222 KiB

View File

@ -0,0 +1,167 @@
using Newtonsoft.Json.Converters;
using Newtonsoft.Json;
using System.Globalization;
using System;
using System.Collections.Generic;
namespace Repository.Models.CodeBeautify
{
//public class obixHistory
//{
//}
public partial class obixHistory
{
[JsonProperty("obj")]
public Objs Obj { get; set; }
}
public class Objs
{
[JsonProperty("ref")]
public Refs Ref { get; set; }
[JsonProperty("_xmlns")]
public Uri Xmlns { get; set; }
[JsonProperty("_xmlns:xsi")]
public Uri XmlnsXsi { get; set; }
[JsonProperty("_href")]
public Uri Href { get; set; }
[JsonProperty("_display")]
public string Display { get; set; }
[JsonProperty("_icon")]
public string Icon { get; set; }
[JsonProperty("_xsi:schemaLocation")]
public Uri XsiSchemaLocation { get; set; }
}
public class Refs
{
[JsonProperty("_name")]
public string Name { get; set; }
[JsonProperty("_href")]
public string Href { get; set; }
[JsonProperty("_display")]
public string Display { get; set; }
[JsonProperty("_icon")]
public string Icon { get; set; }
}
public partial class obixHistory
{
public static obixHistory FromJson(string json) => JsonConvert.DeserializeObject<obixHistory>(json, CodeBeautify.Converter.Settings);
}
public static class Serialize
{
public static string ToJson(this obixHistory self) => JsonConvert.SerializeObject(self, CodeBeautify.Converter.Settings);
}
internal static class Converter
{
public static readonly JsonSerializerSettings Settings = new JsonSerializerSettings
{
MetadataPropertyHandling = MetadataPropertyHandling.Ignore,
DateParseHandling = DateParseHandling.None,
Converters =
{
new IsoDateTimeConverter { DateTimeStyles = DateTimeStyles.AssumeUniversal }
},
};
}
}
// <auto-generated />
//
// To parse this JSON data, add NuGet 'Newtonsoft.Json' then do:
//
// using CodeBeautify;
//
// var welcome4 = Welcome4.FromJson(jsonString);
//namespace CodeBeautify
//{
// using System;
// using System.Collections.Generic;
// using System.Globalization;
// using Newtonsoft.Json;
// using Newtonsoft.Json.Converters;
// public partial class Welcome4
// {
// [JsonProperty("obj")]
// public Obj Obj { get; set; }
// }
// public partial class Obj
// {
// [JsonProperty("ref")]
// public Ref Ref { get; set; }
// [JsonProperty("_xmlns")]
// public Uri Xmlns { get; set; }
// [JsonProperty("_xmlns:xsi")]
// public Uri XmlnsXsi { get; set; }
// [JsonProperty("_href")]
// public Uri Href { get; set; }
// [JsonProperty("_display")]
// public string Display { get; set; }
// [JsonProperty("_icon")]
// public string Icon { get; set; }
// [JsonProperty("_xsi:schemaLocation")]
// public Uri XsiSchemaLocation { get; set; }
// }
// public partial class Ref
// {
// [JsonProperty("_name")]
// public string Name { get; set; }
// [JsonProperty("_href")]
// public string Href { get; set; }
// [JsonProperty("_display")]
// public string Display { get; set; }
// [JsonProperty("_icon")]
// public string Icon { get; set; }
// }
// public partial class Welcome4
// {
// public static Welcome4 FromJson(string json) => JsonConvert.DeserializeObject<Welcome4>(json, CodeBeautify.Converter.Settings);
// }
// public static class Serialize
// {
// public static string ToJson(this Welcome4 self) => JsonConvert.SerializeObject(self, CodeBeautify.Converter.Settings);
// }
// internal static class Converter
// {
// public static readonly JsonSerializerSettings Settings = new JsonSerializerSettings
// {
// MetadataPropertyHandling = MetadataPropertyHandling.Ignore,
// DateParseHandling = DateParseHandling.None,
// Converters =
// {
// new IsoDateTimeConverter { DateTimeStyles = DateTimeStyles.AssumeUniversal }
// },
// };
// }
//}

View File

@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
@ -19,6 +20,11 @@ namespace Repository.Models
public partial class Obj
{
[JsonProperty("@href")]
public string? href { get; set; }
[JsonProperty("@icon")]
public string? icon { get; set; }
[JsonProperty("@display")]
public string Display { get; set; }
@ -36,6 +42,7 @@ namespace Repository.Models
[JsonProperty("ref")]
public Str[] Ref { get; set; }
//public Ref Ref { get; set; }
}
public partial class Str
@ -48,15 +55,25 @@ namespace Repository.Models
[JsonProperty("@href")]
public string Href { get; set; }
[JsonProperty("@display")]
public string display { get; set; }
[JsonProperty("@_icon")]
public string _icon { get; set; }
}
public partial class Ref
public class Ref
{
[JsonProperty("@name")]
[JsonProperty("_name")]
public string Name { get; set; }
[JsonProperty("@href")]
[JsonProperty("_href")]
public string Href { get; set; }
[JsonProperty("_display")]
public string Display { get; set; }
[JsonProperty("_icon")]
public string Icon { get; set; }
}
public partial class Xml