parent
40ba482d70
commit
7f010ddb97
@ -18,10 +18,10 @@
|
|||||||
"Port": "js2LutKe+rdjzdxMPQUrvQ==",
|
"Port": "js2LutKe+rdjzdxMPQUrvQ==",
|
||||||
//"Database": "VJB2XC+lAtzuHObDGMVOAA==", //30
|
//"Database": "VJB2XC+lAtzuHObDGMVOAA==", //30
|
||||||
//"Database": "IgYBsgG2VLKKxFb64j7LOA==", //wsp
|
//"Database": "IgYBsgG2VLKKxFb64j7LOA==", //wsp
|
||||||
//"Database": "7gWfmZ28HGIJZbxEbK+0yg==", //tpe_dome_dome
|
"Database": "7gWfmZ28HGIJZbxEbK+0yg==", //tpe_dome_dome
|
||||||
//"Database": "siTUcDaC/g2yGTMFWD72Kg==", //tpe_dome_hotel
|
//"Database": "siTUcDaC/g2yGTMFWD72Kg==", //tpe_dome_hotel
|
||||||
//"Database": "iuaY0h0+TWkir44/eZLDqw==", //tpe_dome_office
|
//"Database": "iuaY0h0+TWkir44/eZLDqw==", //tpe_dome_office
|
||||||
"Database": "Rq7Gn4x6LwBvVtl7GY8LbA==", //mcut
|
//"Database": "Rq7Gn4x6LwBvVtl7GY8LbA==", //mcut
|
||||||
"Root": "SzdxEgaJJ7tcTCrUl2zKsA==",
|
"Root": "SzdxEgaJJ7tcTCrUl2zKsA==",
|
||||||
"Password": "FVAPxztxpY4gJJKQ/se4bQ=="
|
"Password": "FVAPxztxpY4gJJKQ/se4bQ=="
|
||||||
},
|
},
|
||||||
|
@ -55,20 +55,13 @@ namespace BackendWorkerService.Quartz.Jobs
|
|||||||
EDFunction ed = new EDFunction();
|
EDFunction ed = new EDFunction();
|
||||||
XmlDocument xmlDocument = new XmlDocument();
|
XmlDocument xmlDocument = new XmlDocument();
|
||||||
|
|
||||||
ServicePointManager.DefaultConnectionLimit = 10;
|
|
||||||
var sqlArchive = $@"SELECT system_value as Value, system_key as Name FROM variable WHERE deleted = 0 AND system_type = 'archiveConfig'";
|
var sqlArchive = $@"SELECT system_value as Value, system_key as Name FROM variable WHERE deleted = 0 AND system_type = 'archiveConfig'";
|
||||||
var saveToMSDB = await backgroundServiceRepository.GetOneAsync<string>("select system_value from variable where system_type = 'save_to_ms_db' and deleted = 0");
|
var saveToMSDB = await backgroundServiceRepository.GetOneAsync<string>("select system_value from variable where system_type = 'save_to_ms_db' and deleted = 0");
|
||||||
|
|
||||||
var variableArchive = await backgroundServiceRepository.GetAllAsync<KeyValue>(sqlArchive);
|
var variableArchive = await backgroundServiceRepository.GetAllAsync<KeyValue>(sqlArchive);
|
||||||
var electricMeterGuid = variableArchive.Where(x => x.Name == "ElectricMeterGuid").Select(x => x.Value).FirstOrDefault();
|
var electricMeterGuid = variableArchive.Where(x => x.Name == "ElectricMeterGuid").Select(x => x.Value).FirstOrDefault();
|
||||||
var waterMeterGuid = variableArchive.Where(x => x.Name == "WaterMeterGuid").Select(x => x.Value).FirstOrDefault();
|
var waterMeterGuid = variableArchive.Where(x => x.Name == "WaterMeterGuid").Select(x => x.Value).FirstOrDefault();
|
||||||
|
|
||||||
#region http variable
|
|
||||||
HttpWebRequest archiveRequest = null;
|
|
||||||
HttpWebResponse archiveResponse = null;
|
|
||||||
string archiveResponseContent = null;
|
|
||||||
string archiveJson = null;
|
|
||||||
JObject archiveJsonResult = new JObject();
|
|
||||||
#endregion
|
|
||||||
#region 找出所有電錶設備
|
#region 找出所有電錶設備
|
||||||
var sWhere = "deleted = 0 AND device_name_tag = @sub_system_guid";
|
var sWhere = "deleted = 0 AND device_name_tag = @sub_system_guid";
|
||||||
var electricMeters = await backgroundServiceRepository.GetAllAsync<Device>("device", sWhere, new { sub_system_guid = electricMeterGuid });
|
var electricMeters = await backgroundServiceRepository.GetAllAsync<Device>("device", sWhere, new { sub_system_guid = electricMeterGuid });
|
||||||
@ -154,29 +147,26 @@ namespace BackendWorkerService.Quartz.Jobs
|
|||||||
foreach (var deviceNumberPoint in electricDeviceNumberPoints)
|
foreach (var deviceNumberPoint in electricDeviceNumberPoints)
|
||||||
{
|
{
|
||||||
|
|
||||||
archiveRequest = (HttpWebRequest)WebRequest.Create($"{obixApiConfig.ApiBase}obix/histories/FIC_Center/{deviceNumberPoint.FullDeviceNumberPoint}/~historyRollup/");
|
HttpWebRequest archiveDayRequest = (HttpWebRequest)WebRequest.Create($"{obixApiConfig.ApiBase}obix/histories/FIC_Center/{deviceNumberPoint.FullDeviceNumberPoint}/~historyRollup/");
|
||||||
//HttpWebRequest archiveDayRequest = (HttpWebRequest)WebRequest.Create($"{obixApiConfig.ApiBase}obix/histories/FIC_Center/H_E1_B1F_MVCB_MVCBH_V1/~historyRollup/");
|
//HttpWebRequest archiveDayRequest = (HttpWebRequest)WebRequest.Create($"{obixApiConfig.ApiBase}obix/histories/FIC_Center/H_E1_B1F_MVCB_MVCBH_V1/~historyRollup/");
|
||||||
archiveRequest.Method = "POST";
|
archiveDayRequest.Method = "POST";
|
||||||
archiveRequest.Headers.Add("Authorization", "Basic " + encoded);
|
archiveDayRequest.Headers.Add("Authorization", "Basic " + encoded);
|
||||||
archiveRequest.PreAuthenticate = true;
|
archiveDayRequest.PreAuthenticate = true;
|
||||||
archiveRequest.Timeout = 3000;
|
|
||||||
|
|
||||||
byte[] byteArray = Encoding.UTF8.GetBytes(historyQueryFilter);
|
byte[] byteArray = Encoding.UTF8.GetBytes(historyQueryFilter);
|
||||||
using (Stream reqStream = archiveRequest.GetRequestStream())
|
using (Stream reqStream = archiveDayRequest.GetRequestStream())
|
||||||
{
|
{
|
||||||
reqStream.Write(byteArray, 0, byteArray.Length);
|
reqStream.Write(byteArray, 0, byteArray.Length);
|
||||||
}
|
}
|
||||||
|
|
||||||
archiveResponse = (HttpWebResponse)archiveRequest.GetResponse();
|
HttpWebResponse archiveDayResponse = (HttpWebResponse)archiveDayRequest.GetResponse();
|
||||||
archiveResponseContent = new StreamReader(archiveResponse.GetResponseStream()).ReadToEnd();
|
var archiveDayResponseContent = new StreamReader(archiveDayResponse.GetResponseStream()).ReadToEnd();
|
||||||
archiveResponse.Dispose();
|
|
||||||
archiveResponse.Close();
|
|
||||||
|
|
||||||
xmlDocument.LoadXml(archiveResponseContent);
|
xmlDocument.LoadXml(archiveDayResponseContent);
|
||||||
archiveJson = JsonConvert.SerializeXmlNode(xmlDocument);
|
string archiveDayJson = JsonConvert.SerializeXmlNode(xmlDocument);
|
||||||
archiveJsonResult = (JObject)JsonConvert.DeserializeObject(archiveJson);
|
JObject archiveDayJsonResult = (JObject)JsonConvert.DeserializeObject(archiveDayJson);
|
||||||
|
|
||||||
if (archiveJsonResult.ContainsKey("err")) //抓取錯誤
|
if (archiveDayJsonResult.ContainsKey("err")) //抓取錯誤
|
||||||
{
|
{
|
||||||
//logger.LogError("【ArchiveElectricMeterDayJob】【天歸檔】【取得資料失敗】");
|
//logger.LogError("【ArchiveElectricMeterDayJob】【天歸檔】【取得資料失敗】");
|
||||||
//logger.LogError("【ArchiveElectricMeterDayJob】【天歸檔】【取得資料失敗】[錯誤內容]:{0}", archiveDayJsonResult);
|
//logger.LogError("【ArchiveElectricMeterDayJob】【天歸檔】【取得資料失敗】[錯誤內容]:{0}", archiveDayJsonResult);
|
||||||
@ -188,7 +178,7 @@ namespace BackendWorkerService.Quartz.Jobs
|
|||||||
archiveDayRawData.Add("@end_timestamp", endTimestamp.Replace("T", " ").Substring(0, 19));
|
archiveDayRawData.Add("@end_timestamp", endTimestamp.Replace("T", " ").Substring(0, 19));
|
||||||
archiveDayRawData.Add("@is_complete", 0);
|
archiveDayRawData.Add("@is_complete", 0);
|
||||||
archiveDayRawData.Add("@repeat_times", 0);
|
archiveDayRawData.Add("@repeat_times", 0);
|
||||||
archiveDayRawData.Add("@fail_reason", archiveJson);
|
archiveDayRawData.Add("@fail_reason", archiveDayJson);
|
||||||
|
|
||||||
archiveDayRawData.Add("@count_rawdata", 0);
|
archiveDayRawData.Add("@count_rawdata", 0);
|
||||||
archiveDayRawData.Add("@min_rawdata", 0);
|
archiveDayRawData.Add("@min_rawdata", 0);
|
||||||
@ -200,9 +190,9 @@ namespace BackendWorkerService.Quartz.Jobs
|
|||||||
electericArchiveDayRawDatas.Add(archiveDayRawData);
|
electericArchiveDayRawDatas.Add(archiveDayRawData);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (archiveJsonResult.ContainsKey("obj")) //表示可以讀取到內容
|
if (archiveDayJsonResult.ContainsKey("obj")) //表示可以讀取到內容
|
||||||
{
|
{
|
||||||
var ArrangeRawDatas = ArrangeRawData(deviceNumberPoint, archiveJsonResult);
|
var ArrangeRawDatas = ArrangeRawData(deviceNumberPoint, archiveDayJsonResult);
|
||||||
if (ArrangeRawDatas != null && ArrangeRawDatas.Count() > 0)
|
if (ArrangeRawDatas != null && ArrangeRawDatas.Count() > 0)
|
||||||
{
|
{
|
||||||
electericArchiveDayRawDatas.AddRange(ArrangeRawDatas);
|
electericArchiveDayRawDatas.AddRange(ArrangeRawDatas);
|
||||||
@ -212,29 +202,26 @@ namespace BackendWorkerService.Quartz.Jobs
|
|||||||
foreach (var deviceNumberPoint in waterDeviceNumberPoints)
|
foreach (var deviceNumberPoint in waterDeviceNumberPoints)
|
||||||
{
|
{
|
||||||
|
|
||||||
archiveRequest = (HttpWebRequest)WebRequest.Create($"{obixApiConfig.ApiBase}obix/histories/FIC_Center/{deviceNumberPoint.FullDeviceNumberPoint}/~historyRollup/");
|
HttpWebRequest archiveDayRequest = (HttpWebRequest)WebRequest.Create($"{obixApiConfig.ApiBase}obix/histories/FIC_Center/{deviceNumberPoint.FullDeviceNumberPoint}/~historyRollup/");
|
||||||
//HttpWebRequest archiveDayRequest = (HttpWebRequest)WebRequest.Create($"{obixApiConfig.ApiBase}obix/histories/FIC_Center/H_E1_B1F_MVCB_MVCBH_V1/~historyRollup/");
|
//HttpWebRequest archiveDayRequest = (HttpWebRequest)WebRequest.Create($"{obixApiConfig.ApiBase}obix/histories/FIC_Center/H_E1_B1F_MVCB_MVCBH_V1/~historyRollup/");
|
||||||
archiveRequest.Method = "POST";
|
archiveDayRequest.Method = "POST";
|
||||||
archiveRequest.Headers.Add("Authorization", "Basic " + encoded);
|
archiveDayRequest.Headers.Add("Authorization", "Basic " + encoded);
|
||||||
archiveRequest.PreAuthenticate = true;
|
archiveDayRequest.PreAuthenticate = true;
|
||||||
archiveRequest.Timeout = 3000;
|
|
||||||
|
|
||||||
byte[] byteArray = Encoding.UTF8.GetBytes(historyQueryFilter);
|
byte[] byteArray = Encoding.UTF8.GetBytes(historyQueryFilter);
|
||||||
using (Stream reqStream = archiveRequest.GetRequestStream())
|
using (Stream reqStream = archiveDayRequest.GetRequestStream())
|
||||||
{
|
{
|
||||||
reqStream.Write(byteArray, 0, byteArray.Length);
|
reqStream.Write(byteArray, 0, byteArray.Length);
|
||||||
}
|
}
|
||||||
|
|
||||||
archiveResponse = (HttpWebResponse)archiveRequest.GetResponse();
|
HttpWebResponse archiveDayResponse = (HttpWebResponse)archiveDayRequest.GetResponse();
|
||||||
archiveResponseContent = new StreamReader(archiveResponse.GetResponseStream()).ReadToEnd();
|
var archiveDayResponseContent = new StreamReader(archiveDayResponse.GetResponseStream()).ReadToEnd();
|
||||||
archiveResponse.Dispose();
|
|
||||||
archiveResponse.Close();
|
|
||||||
|
|
||||||
xmlDocument.LoadXml(archiveResponseContent);
|
xmlDocument.LoadXml(archiveDayResponseContent);
|
||||||
archiveJson = JsonConvert.SerializeXmlNode(xmlDocument);
|
string archiveDayJson = JsonConvert.SerializeXmlNode(xmlDocument);
|
||||||
archiveJsonResult = (JObject)JsonConvert.DeserializeObject(archiveJson);
|
JObject archiveDayJsonResult = (JObject)JsonConvert.DeserializeObject(archiveDayJson);
|
||||||
|
|
||||||
if (archiveJsonResult.ContainsKey("err")) //抓取錯誤
|
if (archiveDayJsonResult.ContainsKey("err")) //抓取錯誤
|
||||||
{
|
{
|
||||||
//logger.LogError("【ArchiveElectricMeterDayJob】【天歸檔】【取得資料失敗】");
|
//logger.LogError("【ArchiveElectricMeterDayJob】【天歸檔】【取得資料失敗】");
|
||||||
//logger.LogError("【ArchiveElectricMeterDayJob】【天歸檔】【取得資料失敗】[錯誤內容]:{0}", archiveDayJsonResult);
|
//logger.LogError("【ArchiveElectricMeterDayJob】【天歸檔】【取得資料失敗】[錯誤內容]:{0}", archiveDayJsonResult);
|
||||||
@ -246,7 +233,7 @@ namespace BackendWorkerService.Quartz.Jobs
|
|||||||
archiveDayRawData.Add("@end_timestamp", endTimestamp.Replace("T", " ").Substring(0, 19));
|
archiveDayRawData.Add("@end_timestamp", endTimestamp.Replace("T", " ").Substring(0, 19));
|
||||||
archiveDayRawData.Add("@is_complete", 0);
|
archiveDayRawData.Add("@is_complete", 0);
|
||||||
archiveDayRawData.Add("@repeat_times", 0);
|
archiveDayRawData.Add("@repeat_times", 0);
|
||||||
archiveDayRawData.Add("@fail_reason", archiveJson);
|
archiveDayRawData.Add("@fail_reason", archiveDayJson);
|
||||||
|
|
||||||
archiveDayRawData.Add("@count_rawdata", 0);
|
archiveDayRawData.Add("@count_rawdata", 0);
|
||||||
archiveDayRawData.Add("@min_rawdata", 0);
|
archiveDayRawData.Add("@min_rawdata", 0);
|
||||||
@ -258,9 +245,9 @@ namespace BackendWorkerService.Quartz.Jobs
|
|||||||
waterArchiveDayRawDatas.Add(archiveDayRawData);
|
waterArchiveDayRawDatas.Add(archiveDayRawData);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (archiveJsonResult.ContainsKey("obj")) //表示可以讀取到內容
|
if (archiveDayJsonResult.ContainsKey("obj")) //表示可以讀取到內容
|
||||||
{
|
{
|
||||||
var ArrangeRawDatas = ArrangeRawData(deviceNumberPoint, archiveJsonResult);
|
var ArrangeRawDatas = ArrangeRawData(deviceNumberPoint, archiveDayJsonResult);
|
||||||
if (ArrangeRawDatas != null && ArrangeRawDatas.Count() > 0)
|
if (ArrangeRawDatas != null && ArrangeRawDatas.Count() > 0)
|
||||||
{
|
{
|
||||||
waterArchiveDayRawDatas.AddRange(ArrangeRawDatas);
|
waterArchiveDayRawDatas.AddRange(ArrangeRawDatas);
|
||||||
@ -586,14 +573,6 @@ namespace BackendWorkerService.Quartz.Jobs
|
|||||||
logger.LogError("【ArchiveElectricMeterDayJob】【天歸檔】【任務失敗】");
|
logger.LogError("【ArchiveElectricMeterDayJob】【天歸檔】【任務失敗】");
|
||||||
logger.LogError("【ArchiveElectricMeterDayJob】【天歸檔】【任務失敗】[Exception]:{0}", exception.ToString());
|
logger.LogError("【ArchiveElectricMeterDayJob】【天歸檔】【任務失敗】[Exception]:{0}", exception.ToString());
|
||||||
}
|
}
|
||||||
finally
|
|
||||||
{
|
|
||||||
if (archiveResponse != null)
|
|
||||||
{
|
|
||||||
archiveResponse.Dispose();
|
|
||||||
archiveResponse.Close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
#endregion 天歸檔
|
#endregion 天歸檔
|
||||||
|
|
||||||
@ -623,29 +602,26 @@ namespace BackendWorkerService.Quartz.Jobs
|
|||||||
List<Dictionary<string, object>> waterArchiveWeekRawDatas = new List<Dictionary<string, object>>();
|
List<Dictionary<string, object>> waterArchiveWeekRawDatas = new List<Dictionary<string, object>>();
|
||||||
foreach (var deviceNumberPoint in electricDeviceNumberPoints)
|
foreach (var deviceNumberPoint in electricDeviceNumberPoints)
|
||||||
{
|
{
|
||||||
archiveRequest = (HttpWebRequest)WebRequest.Create($"{obixApiConfig.ApiBase}obix/histories/FIC_Center/{deviceNumberPoint.FullDeviceNumberPoint}/~historyRollup/");
|
HttpWebRequest archiveWeekRequest = (HttpWebRequest)WebRequest.Create($"{obixApiConfig.ApiBase}obix/histories/FIC_Center/{deviceNumberPoint.FullDeviceNumberPoint}/~historyRollup/");
|
||||||
//HttpWebRequest archiveWeekRequest = (HttpWebRequest)WebRequest.Create($"{obixApiConfig.ApiBase}obix/histories/FIC_Center/H_E1_B1F_MVCB_MVCBH_V1/~historyRollup/");
|
//HttpWebRequest archiveWeekRequest = (HttpWebRequest)WebRequest.Create($"{obixApiConfig.ApiBase}obix/histories/FIC_Center/H_E1_B1F_MVCB_MVCBH_V1/~historyRollup/");
|
||||||
archiveRequest.Method = "POST";
|
archiveWeekRequest.Method = "POST";
|
||||||
archiveRequest.Headers.Add("Authorization", "Basic " + encoded);
|
archiveWeekRequest.Headers.Add("Authorization", "Basic " + encoded);
|
||||||
archiveRequest.PreAuthenticate = true;
|
archiveWeekRequest.PreAuthenticate = true;
|
||||||
archiveRequest.Timeout = 3000;
|
|
||||||
|
|
||||||
byte[] byteArray = Encoding.UTF8.GetBytes(historyQueryFilter);
|
byte[] byteArray = Encoding.UTF8.GetBytes(historyQueryFilter);
|
||||||
using (Stream reqStream = archiveRequest.GetRequestStream())
|
using (Stream reqStream = archiveWeekRequest.GetRequestStream())
|
||||||
{
|
{
|
||||||
reqStream.Write(byteArray, 0, byteArray.Length);
|
reqStream.Write(byteArray, 0, byteArray.Length);
|
||||||
}
|
}
|
||||||
|
|
||||||
archiveResponse = (HttpWebResponse)archiveRequest.GetResponse();
|
HttpWebResponse archiveWeekResponse = (HttpWebResponse)archiveWeekRequest.GetResponse();
|
||||||
archiveResponseContent = new StreamReader(archiveResponse.GetResponseStream()).ReadToEnd();
|
var archiveWeekResponseContent = new StreamReader(archiveWeekResponse.GetResponseStream()).ReadToEnd();
|
||||||
archiveResponse.Dispose();
|
|
||||||
archiveResponse.Close();
|
|
||||||
|
|
||||||
xmlDocument.LoadXml(archiveResponseContent);
|
xmlDocument.LoadXml(archiveWeekResponseContent);
|
||||||
archiveJson = JsonConvert.SerializeXmlNode(xmlDocument);
|
string archiveWeekJson = JsonConvert.SerializeXmlNode(xmlDocument);
|
||||||
archiveJsonResult = (JObject)JsonConvert.DeserializeObject(archiveJson);
|
JObject archiveWeekJsonResult = (JObject)JsonConvert.DeserializeObject(archiveWeekJson);
|
||||||
|
|
||||||
if (archiveJsonResult.ContainsKey("err")) //抓取錯誤
|
if (archiveWeekJsonResult.ContainsKey("err")) //抓取錯誤
|
||||||
{
|
{
|
||||||
//logger.LogError("【ArchiveElectricMeterDayJob】【週歸檔】【取得資料失敗】");
|
//logger.LogError("【ArchiveElectricMeterDayJob】【週歸檔】【取得資料失敗】");
|
||||||
//logger.LogError("【ArchiveElectricMeterDayJob】【週歸檔】【取得資料失敗】[錯誤內容]:{0}", archiveWeekJsonResult);
|
//logger.LogError("【ArchiveElectricMeterDayJob】【週歸檔】【取得資料失敗】[錯誤內容]:{0}", archiveWeekJsonResult);
|
||||||
@ -657,7 +633,7 @@ namespace BackendWorkerService.Quartz.Jobs
|
|||||||
archiveWeekRawData.Add("@end_timestamp", endTimestamp.Replace("T", " ").Substring(0, 19));
|
archiveWeekRawData.Add("@end_timestamp", endTimestamp.Replace("T", " ").Substring(0, 19));
|
||||||
archiveWeekRawData.Add("@is_complete", 0);
|
archiveWeekRawData.Add("@is_complete", 0);
|
||||||
archiveWeekRawData.Add("@repeat_times", 0);
|
archiveWeekRawData.Add("@repeat_times", 0);
|
||||||
archiveWeekRawData.Add("@fail_reason", archiveJson);
|
archiveWeekRawData.Add("@fail_reason", archiveWeekJson);
|
||||||
|
|
||||||
archiveWeekRawData.Add("@count_rawdata", 0);
|
archiveWeekRawData.Add("@count_rawdata", 0);
|
||||||
archiveWeekRawData.Add("@min_rawdata", 0);
|
archiveWeekRawData.Add("@min_rawdata", 0);
|
||||||
@ -669,9 +645,9 @@ namespace BackendWorkerService.Quartz.Jobs
|
|||||||
electricArchiveWeekRawDatas.Add(archiveWeekRawData);
|
electricArchiveWeekRawDatas.Add(archiveWeekRawData);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (archiveJsonResult.ContainsKey("obj")) //表示可以讀取到內容
|
if (archiveWeekJsonResult.ContainsKey("obj")) //表示可以讀取到內容
|
||||||
{
|
{
|
||||||
var ArrangeRawDatas = ArrangeRawData(deviceNumberPoint, archiveJsonResult);
|
var ArrangeRawDatas = ArrangeRawData(deviceNumberPoint, archiveWeekJsonResult);
|
||||||
if (ArrangeRawDatas != null && ArrangeRawDatas.Count() > 0)
|
if (ArrangeRawDatas != null && ArrangeRawDatas.Count() > 0)
|
||||||
{
|
{
|
||||||
electricArchiveWeekRawDatas.AddRange(ArrangeRawDatas);
|
electricArchiveWeekRawDatas.AddRange(ArrangeRawDatas);
|
||||||
@ -680,29 +656,26 @@ namespace BackendWorkerService.Quartz.Jobs
|
|||||||
}
|
}
|
||||||
foreach (var deviceNumberPoint in waterDeviceNumberPoints)
|
foreach (var deviceNumberPoint in waterDeviceNumberPoints)
|
||||||
{
|
{
|
||||||
archiveRequest = (HttpWebRequest)WebRequest.Create($"{obixApiConfig.ApiBase}obix/histories/FIC_Center/{deviceNumberPoint.FullDeviceNumberPoint}/~historyRollup/");
|
HttpWebRequest archiveWeekRequest = (HttpWebRequest)WebRequest.Create($"{obixApiConfig.ApiBase}obix/histories/FIC_Center/{deviceNumberPoint.FullDeviceNumberPoint}/~historyRollup/");
|
||||||
//HttpWebRequest archiveWeekRequest = (HttpWebRequest)WebRequest.Create($"{obixApiConfig.ApiBase}obix/histories/FIC_Center/H_E1_B1F_MVCB_MVCBH_V1/~historyRollup/");
|
//HttpWebRequest archiveWeekRequest = (HttpWebRequest)WebRequest.Create($"{obixApiConfig.ApiBase}obix/histories/FIC_Center/H_E1_B1F_MVCB_MVCBH_V1/~historyRollup/");
|
||||||
archiveRequest.Method = "POST";
|
archiveWeekRequest.Method = "POST";
|
||||||
archiveRequest.Headers.Add("Authorization", "Basic " + encoded);
|
archiveWeekRequest.Headers.Add("Authorization", "Basic " + encoded);
|
||||||
archiveRequest.PreAuthenticate = true;
|
archiveWeekRequest.PreAuthenticate = true;
|
||||||
archiveRequest.Timeout = 3000;
|
|
||||||
|
|
||||||
byte[] byteArray = Encoding.UTF8.GetBytes(historyQueryFilter);
|
byte[] byteArray = Encoding.UTF8.GetBytes(historyQueryFilter);
|
||||||
using (Stream reqStream = archiveRequest.GetRequestStream())
|
using (Stream reqStream = archiveWeekRequest.GetRequestStream())
|
||||||
{
|
{
|
||||||
reqStream.Write(byteArray, 0, byteArray.Length);
|
reqStream.Write(byteArray, 0, byteArray.Length);
|
||||||
}
|
}
|
||||||
|
|
||||||
archiveResponse = (HttpWebResponse)archiveRequest.GetResponse();
|
HttpWebResponse archiveWeekResponse = (HttpWebResponse)archiveWeekRequest.GetResponse();
|
||||||
archiveResponseContent = new StreamReader(archiveResponse.GetResponseStream()).ReadToEnd();
|
var archiveWeekResponseContent = new StreamReader(archiveWeekResponse.GetResponseStream()).ReadToEnd();
|
||||||
archiveResponse.Dispose();
|
|
||||||
archiveResponse.Close();
|
|
||||||
|
|
||||||
xmlDocument.LoadXml(archiveResponseContent);
|
xmlDocument.LoadXml(archiveWeekResponseContent);
|
||||||
archiveJson = JsonConvert.SerializeXmlNode(xmlDocument);
|
string archiveWeekJson = JsonConvert.SerializeXmlNode(xmlDocument);
|
||||||
archiveJsonResult = (JObject)JsonConvert.DeserializeObject(archiveJson);
|
JObject archiveWeekJsonResult = (JObject)JsonConvert.DeserializeObject(archiveWeekJson);
|
||||||
|
|
||||||
if (archiveJsonResult.ContainsKey("err")) //抓取錯誤
|
if (archiveWeekJsonResult.ContainsKey("err")) //抓取錯誤
|
||||||
{
|
{
|
||||||
//logger.LogError("【ArchiveElectricMeterDayJob】【週歸檔】【取得資料失敗】");
|
//logger.LogError("【ArchiveElectricMeterDayJob】【週歸檔】【取得資料失敗】");
|
||||||
//logger.LogError("【ArchiveElectricMeterDayJob】【週歸檔】【取得資料失敗】[錯誤內容]:{0}", archiveWeekJsonResult);
|
//logger.LogError("【ArchiveElectricMeterDayJob】【週歸檔】【取得資料失敗】[錯誤內容]:{0}", archiveWeekJsonResult);
|
||||||
@ -714,7 +687,7 @@ namespace BackendWorkerService.Quartz.Jobs
|
|||||||
archiveWeekRawData.Add("@end_timestamp", endTimestamp.Replace("T", " ").Substring(0, 19));
|
archiveWeekRawData.Add("@end_timestamp", endTimestamp.Replace("T", " ").Substring(0, 19));
|
||||||
archiveWeekRawData.Add("@is_complete", 0);
|
archiveWeekRawData.Add("@is_complete", 0);
|
||||||
archiveWeekRawData.Add("@repeat_times", 0);
|
archiveWeekRawData.Add("@repeat_times", 0);
|
||||||
archiveWeekRawData.Add("@fail_reason", archiveJson);
|
archiveWeekRawData.Add("@fail_reason", archiveWeekJson);
|
||||||
|
|
||||||
archiveWeekRawData.Add("@count_rawdata", 0);
|
archiveWeekRawData.Add("@count_rawdata", 0);
|
||||||
archiveWeekRawData.Add("@min_rawdata", 0);
|
archiveWeekRawData.Add("@min_rawdata", 0);
|
||||||
@ -726,9 +699,9 @@ namespace BackendWorkerService.Quartz.Jobs
|
|||||||
waterArchiveWeekRawDatas.Add(archiveWeekRawData);
|
waterArchiveWeekRawDatas.Add(archiveWeekRawData);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (archiveJsonResult.ContainsKey("obj")) //表示可以讀取到內容
|
if (archiveWeekJsonResult.ContainsKey("obj")) //表示可以讀取到內容
|
||||||
{
|
{
|
||||||
var ArrangeRawDatas = ArrangeRawData(deviceNumberPoint, archiveJsonResult);
|
var ArrangeRawDatas = ArrangeRawData(deviceNumberPoint, archiveWeekJsonResult);
|
||||||
if (ArrangeRawDatas != null && ArrangeRawDatas.Count() > 0)
|
if (ArrangeRawDatas != null && ArrangeRawDatas.Count() > 0)
|
||||||
{
|
{
|
||||||
waterArchiveWeekRawDatas.AddRange(ArrangeRawDatas);
|
waterArchiveWeekRawDatas.AddRange(ArrangeRawDatas);
|
||||||
@ -950,14 +923,6 @@ namespace BackendWorkerService.Quartz.Jobs
|
|||||||
logger.LogError("【ArchiveElectricMeterDayJob】【週歸檔】【任務失敗】");
|
logger.LogError("【ArchiveElectricMeterDayJob】【週歸檔】【任務失敗】");
|
||||||
logger.LogError("【ArchiveElectricMeterDayJob】【週歸檔】【任務失敗】[Exception]:{0}", exception.ToString());
|
logger.LogError("【ArchiveElectricMeterDayJob】【週歸檔】【任務失敗】[Exception]:{0}", exception.ToString());
|
||||||
}
|
}
|
||||||
finally
|
|
||||||
{
|
|
||||||
if (archiveResponse != null)
|
|
||||||
{
|
|
||||||
archiveResponse.Dispose();
|
|
||||||
archiveResponse.Close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
#endregion 週歸檔
|
#endregion 週歸檔
|
||||||
|
|
||||||
@ -989,29 +954,26 @@ namespace BackendWorkerService.Quartz.Jobs
|
|||||||
List<Dictionary<string, object>> waterArchiveMonthRawDatas = new List<Dictionary<string, object>>();
|
List<Dictionary<string, object>> waterArchiveMonthRawDatas = new List<Dictionary<string, object>>();
|
||||||
foreach (var deviceNumberPoint in electricDeviceNumberPoints)
|
foreach (var deviceNumberPoint in electricDeviceNumberPoints)
|
||||||
{
|
{
|
||||||
archiveRequest = (HttpWebRequest)WebRequest.Create($"{obixApiConfig.ApiBase}obix/histories/FIC_Center/{deviceNumberPoint.FullDeviceNumberPoint}/~historyRollup/");
|
HttpWebRequest archiveMonthRequest = (HttpWebRequest)WebRequest.Create($"{obixApiConfig.ApiBase}obix/histories/FIC_Center/{deviceNumberPoint.FullDeviceNumberPoint}/~historyRollup/");
|
||||||
//HttpWebRequest archiveMonthRequest = (HttpWebRequest)WebRequest.Create($"{obixApiConfig.ApiBase}obix/histories/FIC_Center/H_E1_B1F_MVCB_MVCBH_V1/~historyRollup/");
|
//HttpWebRequest archiveMonthRequest = (HttpWebRequest)WebRequest.Create($"{obixApiConfig.ApiBase}obix/histories/FIC_Center/H_E1_B1F_MVCB_MVCBH_V1/~historyRollup/");
|
||||||
archiveRequest.Method = "POST";
|
archiveMonthRequest.Method = "POST";
|
||||||
archiveRequest.Headers.Add("Authorization", "Basic " + encoded);
|
archiveMonthRequest.Headers.Add("Authorization", "Basic " + encoded);
|
||||||
archiveRequest.PreAuthenticate = true;
|
archiveMonthRequest.PreAuthenticate = true;
|
||||||
archiveRequest.Timeout = 3000;
|
|
||||||
|
|
||||||
byte[] byteArray = Encoding.UTF8.GetBytes(historyQueryFilter);
|
byte[] byteArray = Encoding.UTF8.GetBytes(historyQueryFilter);
|
||||||
using (Stream reqStream = archiveRequest.GetRequestStream())
|
using (Stream reqStream = archiveMonthRequest.GetRequestStream())
|
||||||
{
|
{
|
||||||
reqStream.Write(byteArray, 0, byteArray.Length);
|
reqStream.Write(byteArray, 0, byteArray.Length);
|
||||||
}
|
}
|
||||||
|
|
||||||
archiveResponse = (HttpWebResponse)archiveRequest.GetResponse();
|
HttpWebResponse archiveMonthResponse = (HttpWebResponse)archiveMonthRequest.GetResponse();
|
||||||
archiveResponseContent = new StreamReader(archiveResponse.GetResponseStream()).ReadToEnd();
|
var archiveMonthResponseContent = new StreamReader(archiveMonthResponse.GetResponseStream()).ReadToEnd();
|
||||||
archiveResponse.Dispose();
|
|
||||||
archiveResponse.Close();
|
|
||||||
|
|
||||||
xmlDocument.LoadXml(archiveResponseContent);
|
xmlDocument.LoadXml(archiveMonthResponseContent);
|
||||||
archiveJson = JsonConvert.SerializeXmlNode(xmlDocument);
|
string archiveMonthJson = JsonConvert.SerializeXmlNode(xmlDocument);
|
||||||
archiveJsonResult = (JObject)JsonConvert.DeserializeObject(archiveJson);
|
JObject archiveMonthJsonResult = (JObject)JsonConvert.DeserializeObject(archiveMonthJson);
|
||||||
|
|
||||||
if (archiveJsonResult.ContainsKey("err")) //抓取錯誤
|
if (archiveMonthJsonResult.ContainsKey("err")) //抓取錯誤
|
||||||
{
|
{
|
||||||
//logger.LogError("【ArchiveElectricMeterDayJob】【月歸檔】【取得資料失敗】");
|
//logger.LogError("【ArchiveElectricMeterDayJob】【月歸檔】【取得資料失敗】");
|
||||||
//logger.LogError("【ArchiveElectricMeterDayJob】【月歸檔】【取得資料失敗】[錯誤內容]:{0}", archiveMonthJsonResult);
|
//logger.LogError("【ArchiveElectricMeterDayJob】【月歸檔】【取得資料失敗】[錯誤內容]:{0}", archiveMonthJsonResult);
|
||||||
@ -1023,7 +985,7 @@ namespace BackendWorkerService.Quartz.Jobs
|
|||||||
archiveMonthRawData.Add("@end_timestamp", endTimestamp.Replace("T", " ").Substring(0, 19));
|
archiveMonthRawData.Add("@end_timestamp", endTimestamp.Replace("T", " ").Substring(0, 19));
|
||||||
archiveMonthRawData.Add("@is_complete", 0);
|
archiveMonthRawData.Add("@is_complete", 0);
|
||||||
archiveMonthRawData.Add("@repeat_times", 0);
|
archiveMonthRawData.Add("@repeat_times", 0);
|
||||||
archiveMonthRawData.Add("@fail_reason", archiveJson);
|
archiveMonthRawData.Add("@fail_reason", archiveMonthJson);
|
||||||
|
|
||||||
archiveMonthRawData.Add("@count_rawdata", 0);
|
archiveMonthRawData.Add("@count_rawdata", 0);
|
||||||
archiveMonthRawData.Add("@min_rawdata", 0);
|
archiveMonthRawData.Add("@min_rawdata", 0);
|
||||||
@ -1035,9 +997,9 @@ namespace BackendWorkerService.Quartz.Jobs
|
|||||||
electricArchiveMonthRawDatas.Add(archiveMonthRawData);
|
electricArchiveMonthRawDatas.Add(archiveMonthRawData);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (archiveJsonResult.ContainsKey("obj")) //表示可以讀取到內容
|
if (archiveMonthJsonResult.ContainsKey("obj")) //表示可以讀取到內容
|
||||||
{
|
{
|
||||||
var ArrangeRawDatas = ArrangeRawData(deviceNumberPoint, archiveJsonResult);
|
var ArrangeRawDatas = ArrangeRawData(deviceNumberPoint, archiveMonthJsonResult);
|
||||||
if (ArrangeRawDatas != null && ArrangeRawDatas.Count() > 0)
|
if (ArrangeRawDatas != null && ArrangeRawDatas.Count() > 0)
|
||||||
{
|
{
|
||||||
electricArchiveMonthRawDatas.AddRange(ArrangeRawDatas);
|
electricArchiveMonthRawDatas.AddRange(ArrangeRawDatas);
|
||||||
@ -1046,29 +1008,26 @@ namespace BackendWorkerService.Quartz.Jobs
|
|||||||
}
|
}
|
||||||
foreach (var deviceNumberPoint in waterDeviceNumberPoints)
|
foreach (var deviceNumberPoint in waterDeviceNumberPoints)
|
||||||
{
|
{
|
||||||
archiveRequest = (HttpWebRequest)WebRequest.Create($"{obixApiConfig.ApiBase}obix/histories/FIC_Center/{deviceNumberPoint.FullDeviceNumberPoint}/~historyRollup/");
|
HttpWebRequest archiveMonthRequest = (HttpWebRequest)WebRequest.Create($"{obixApiConfig.ApiBase}obix/histories/FIC_Center/{deviceNumberPoint.FullDeviceNumberPoint}/~historyRollup/");
|
||||||
//HttpWebRequest archiveMonthRequest = (HttpWebRequest)WebRequest.Create($"{obixApiConfig.ApiBase}obix/histories/FIC_Center/H_E1_B1F_MVCB_MVCBH_V1/~historyRollup/");
|
//HttpWebRequest archiveMonthRequest = (HttpWebRequest)WebRequest.Create($"{obixApiConfig.ApiBase}obix/histories/FIC_Center/H_E1_B1F_MVCB_MVCBH_V1/~historyRollup/");
|
||||||
archiveRequest.Method = "POST";
|
archiveMonthRequest.Method = "POST";
|
||||||
archiveRequest.Headers.Add("Authorization", "Basic " + encoded);
|
archiveMonthRequest.Headers.Add("Authorization", "Basic " + encoded);
|
||||||
archiveRequest.PreAuthenticate = true;
|
archiveMonthRequest.PreAuthenticate = true;
|
||||||
archiveRequest.Timeout = 3000;
|
|
||||||
|
|
||||||
byte[] byteArray = Encoding.UTF8.GetBytes(historyQueryFilter);
|
byte[] byteArray = Encoding.UTF8.GetBytes(historyQueryFilter);
|
||||||
using (Stream reqStream = archiveRequest.GetRequestStream())
|
using (Stream reqStream = archiveMonthRequest.GetRequestStream())
|
||||||
{
|
{
|
||||||
reqStream.Write(byteArray, 0, byteArray.Length);
|
reqStream.Write(byteArray, 0, byteArray.Length);
|
||||||
}
|
}
|
||||||
|
|
||||||
archiveResponse = (HttpWebResponse)archiveRequest.GetResponse();
|
HttpWebResponse archiveMonthResponse = (HttpWebResponse)archiveMonthRequest.GetResponse();
|
||||||
archiveResponseContent = new StreamReader(archiveResponse.GetResponseStream()).ReadToEnd();
|
var archiveMonthResponseContent = new StreamReader(archiveMonthResponse.GetResponseStream()).ReadToEnd();
|
||||||
archiveResponse.Dispose();
|
|
||||||
archiveResponse.Close();
|
|
||||||
|
|
||||||
xmlDocument.LoadXml(archiveResponseContent);
|
xmlDocument.LoadXml(archiveMonthResponseContent);
|
||||||
archiveJson = JsonConvert.SerializeXmlNode(xmlDocument);
|
string archiveMonthJson = JsonConvert.SerializeXmlNode(xmlDocument);
|
||||||
archiveJsonResult = (JObject)JsonConvert.DeserializeObject(archiveJson);
|
JObject archiveMonthJsonResult = (JObject)JsonConvert.DeserializeObject(archiveMonthJson);
|
||||||
|
|
||||||
if (archiveJsonResult.ContainsKey("err")) //抓取錯誤
|
if (archiveMonthJsonResult.ContainsKey("err")) //抓取錯誤
|
||||||
{
|
{
|
||||||
//logger.LogError("【ArchiveElectricMeterDayJob】【月歸檔】【取得資料失敗】");
|
//logger.LogError("【ArchiveElectricMeterDayJob】【月歸檔】【取得資料失敗】");
|
||||||
//logger.LogError("【ArchiveElectricMeterDayJob】【月歸檔】【取得資料失敗】[錯誤內容]:{0}", archiveMonthJsonResult);
|
//logger.LogError("【ArchiveElectricMeterDayJob】【月歸檔】【取得資料失敗】[錯誤內容]:{0}", archiveMonthJsonResult);
|
||||||
@ -1080,7 +1039,7 @@ namespace BackendWorkerService.Quartz.Jobs
|
|||||||
archiveMonthRawData.Add("@end_timestamp", endTimestamp.Replace("T", " ").Substring(0, 19));
|
archiveMonthRawData.Add("@end_timestamp", endTimestamp.Replace("T", " ").Substring(0, 19));
|
||||||
archiveMonthRawData.Add("@is_complete", 0);
|
archiveMonthRawData.Add("@is_complete", 0);
|
||||||
archiveMonthRawData.Add("@repeat_times", 0);
|
archiveMonthRawData.Add("@repeat_times", 0);
|
||||||
archiveMonthRawData.Add("@fail_reason", archiveJson);
|
archiveMonthRawData.Add("@fail_reason", archiveMonthJson);
|
||||||
|
|
||||||
archiveMonthRawData.Add("@count_rawdata", 0);
|
archiveMonthRawData.Add("@count_rawdata", 0);
|
||||||
archiveMonthRawData.Add("@min_rawdata", 0);
|
archiveMonthRawData.Add("@min_rawdata", 0);
|
||||||
@ -1092,9 +1051,9 @@ namespace BackendWorkerService.Quartz.Jobs
|
|||||||
waterArchiveMonthRawDatas.Add(archiveMonthRawData);
|
waterArchiveMonthRawDatas.Add(archiveMonthRawData);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (archiveJsonResult.ContainsKey("obj")) //表示可以讀取到內容
|
if (archiveMonthJsonResult.ContainsKey("obj")) //表示可以讀取到內容
|
||||||
{
|
{
|
||||||
var ArrangeRawDatas = ArrangeRawData(deviceNumberPoint, archiveJsonResult);
|
var ArrangeRawDatas = ArrangeRawData(deviceNumberPoint, archiveMonthJsonResult);
|
||||||
if (ArrangeRawDatas != null && ArrangeRawDatas.Count() > 0)
|
if (ArrangeRawDatas != null && ArrangeRawDatas.Count() > 0)
|
||||||
{
|
{
|
||||||
waterArchiveMonthRawDatas.AddRange(ArrangeRawDatas);
|
waterArchiveMonthRawDatas.AddRange(ArrangeRawDatas);
|
||||||
@ -1309,14 +1268,6 @@ namespace BackendWorkerService.Quartz.Jobs
|
|||||||
logger.LogError("【ArchiveElectricMeterDayJob】【月歸檔】【任務失敗】");
|
logger.LogError("【ArchiveElectricMeterDayJob】【月歸檔】【任務失敗】");
|
||||||
logger.LogError("【ArchiveElectricMeterDayJob】【月歸檔】【任務失敗】[Exception]:{0}", exception.ToString());
|
logger.LogError("【ArchiveElectricMeterDayJob】【月歸檔】【任務失敗】[Exception]:{0}", exception.ToString());
|
||||||
}
|
}
|
||||||
finally
|
|
||||||
{
|
|
||||||
if (archiveResponse != null)
|
|
||||||
{
|
|
||||||
archiveResponse.Dispose();
|
|
||||||
archiveResponse.Close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
#endregion 月歸檔
|
#endregion 月歸檔
|
||||||
|
|
||||||
@ -1326,7 +1277,7 @@ namespace BackendWorkerService.Quartz.Jobs
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
await task_Detail.InsertWorkTime("ArchiveElectricMeterDayJob", "Compensate", "補償機制任務開始");
|
await task_Detail.InsertWorkTime("ArchiveElectricMeterDayJob", "Compensate", "任務開始");
|
||||||
ProcEletricMeterService procEletricMeterService = new ProcEletricMeterService(backgroundServiceRepository, backgroundServiceMsSqlRepository);
|
ProcEletricMeterService procEletricMeterService = new ProcEletricMeterService(backgroundServiceRepository, backgroundServiceMsSqlRepository);
|
||||||
await procEletricMeterService.ArchiveData();
|
await procEletricMeterService.ArchiveData();
|
||||||
await task_Detail.InsertWorkTime_End("ArchiveElectricMeterDayJob", "Compensate", "任務完成");
|
await task_Detail.InsertWorkTime_End("ArchiveElectricMeterDayJob", "Compensate", "任務完成");
|
||||||
|
@ -875,7 +875,7 @@
|
|||||||
{
|
{
|
||||||
"title": "設備名稱",
|
"title": "設備名稱",
|
||||||
"data": "sourceName_zh",
|
"data": "sourceName_zh",
|
||||||
"render" : function (data) {
|
render: (data) => {
|
||||||
return allDevices.find(d => d.device_number === data)?.full_name || ""
|
return allDevices.find(d => d.device_number === data)?.full_name || ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user