debug add log

This commit is contained in:
jiahao 2023-09-25 11:47:19 +08:00
parent 0eed71c0a4
commit ccdc52ce62
2 changed files with 68 additions and 44 deletions

View File

@ -85,11 +85,11 @@ namespace BackendWorkerService.Quartz.Jobs
var electricMeters = await backgroundServiceRepository.GetAllAsync<Device>("device", sWhere_E4);
var waterMeters = await backgroundServiceRepository.GetAllAsync<Device>("device", sWhere_W1);
var device_test = electricMeters.Where(e => e.Device_number == "NTPC_G6_EE_E4_B1F_CB3_WHT_N1").First();
if (device_test != null)
{
logger.LogInformation($@"s1 devie_number = NTPC_G6_EE_E4_B1F_CB3_WHT_N1 archive_lastActionDate={device_test.archive_lastActionDate} archive_lastDate={device_test.archive_lastDate}");
}
//var device_test = electricMeters.Where(e => e.Device_number == "NTPC_G6_EE_E4_B1F_CB3_WHT_N1").First();
//if (device_test != null)
//{
// logger.LogInformation($@"s1 devie_number = NTPC_G6_EE_E4_B1F_CB3_WHT_N1 archive_lastActionDate={device_test.archive_lastActionDate} archive_lastDate={device_test.archive_lastDate}");
//}
#endregion
#region
@ -106,6 +106,10 @@ namespace BackendWorkerService.Quartz.Jobs
{
if (electricMeter.device_building_tag == point.device_building_tag)
{
if (electricMeter.Device_number == "NTPC_G6_EE_E4_B1F_CB3_WHT_N1")
{
logger.LogInformation($@"putin value NTPC_G6_EE_E4_B1F_CB3_WHT_N1 ={electricMeter.archive_lastDate} archive_lastActionDate={electricMeter.archive_lastActionDate}");
}
DeviceNumberPoint deviceNumberPoint = new DeviceNumberPoint();
deviceNumberPoint.DeviceNumber = electricMeter.Device_number;
deviceNumberPoint.Point = point.points;
@ -128,7 +132,7 @@ namespace BackendWorkerService.Quartz.Jobs
deviceNumberPoint.DeviceNumber = waterMeter.Device_number;
deviceNumberPoint.Point = point.points;
deviceNumberPoint.FullDeviceNumberPoint = string.Format("{0}_{1}", waterMeter.Device_number, point.points);
deviceNumberPoint.archive_lastDate = waterMeter.archive_lastDate;
waterDeviceNumberPoints.Add(deviceNumberPoint);
}
}
@ -170,17 +174,19 @@ namespace BackendWorkerService.Quartz.Jobs
{
//foreach (var electricMeter in electricMeters)
//{
// startDay = DateTime.Parse(electricMeter.archive_lastDate.ToString("yyyy-MM-dd"));// 起始日
//endDay = DateTime.Parse(DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd")); // 結束日
//foreach (DateTime day in procEletricMeterService.EachDay(startDay, endDay))
//{
// logger.LogInformation(@$"【EachDay】{electricMeter.Device_number} startDay=", startDay + " endDay=" + endDay);
// if (electricMeter.Device_number == "NTPC_G6_EE_E4_B1F_CB3_WHT_N1")
// {
// logger.LogInformation($@"EachDay devie_number = NTPC_G6_EE_E4_B1F_CB3_WHT_N1 startDay={startDay} endDay={endDay}");
// }
// 每日資料製作
await day_proc(procEletricMeterService, saveToMSDB, archiveResponse, electricDeviceNumberPoints, waterDeviceNumberPoints, obixApiConfig, encoded, startDay, endDay, dbDateName);
// startDay = DateTime.Parse(electricMeter.archive_lastDate.ToString("yyyy-MM-dd"));// 起始日
//endDay = DateTime.Parse(DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd")); // 結束日
//foreach (DateTime day in procEletricMeterService.EachDay(startDay, endDay))
//{
// logger.LogInformation(@$"【EachDay】{electricMeter.Device_number} startDay=", startDay + " endDay=" + endDay);
// if (electricMeter.Device_number == "NTPC_G6_EE_E4_B1F_CB3_WHT_N1")
// {
// logger.LogInformation($@"EachDay devie_number = NTPC_G6_EE_E4_B1F_CB3_WHT_N1 startDay={startDay} endDay={endDay}");
// }
logger.LogInformation($@"before day_proc electricDeviceNumberPoints.Count() ={electricDeviceNumberPoints.Count()} ");
// 每日資料製作
await day_proc(procEletricMeterService, saveToMSDB, archiveResponse, electricDeviceNumberPoints, waterDeviceNumberPoints, obixApiConfig, encoded, startDay, endDay, dbDateName);
//}
//}
@ -1141,7 +1147,7 @@ namespace BackendWorkerService.Quartz.Jobs
procEletricMeterService.obixData_collect(xmlDocument, waterDeviceNumberPoints, obixApiConfig, encoded, waterArchiveDayRawDatas);
stopWatch.Stop();
logger.LogInformation("【ArchiveElectricMeterDayJob】【天歸檔】【效能檢驗】[取得資料花費時間]{0} 毫秒", stopWatch.ElapsedMilliseconds);
logger.LogInformation(@$"【ArchiveElectricMeterDayJob】【天歸檔】【效能檢驗】[取得資料花費時間]{stopWatch.ElapsedMilliseconds } 毫秒 資料筆數=" + electericArchiveDayRawDatas.Count() );
if (electericArchiveDayRawDatas.Count() > 0)
{
@ -1156,9 +1162,7 @@ namespace BackendWorkerService.Quartz.Jobs
is_complete = @is_complete,
repeat_times = @repeat_times,
fail_reason = @fail_reason,
updated_at = @updated_at,
archive_lastDate = @updated_at,
archive_lastActionDate = @updated_at
updated_at = @updated_at
WHERE device_number = @device_number
AND point = @point
AND start_timestamp = @start_timestamp;
@ -1176,9 +1180,7 @@ namespace BackendWorkerService.Quartz.Jobs
sum_rawdata,
is_complete,
repeat_times,
fail_reason,
archive_lastDate,
archive_lastActionDate)
fail_reason, updated_at)
SELECT
@device_number,
@point,
@ -1192,11 +1194,10 @@ namespace BackendWorkerService.Quartz.Jobs
@sum_rawdata,
@is_complete,
@repeat_times,
@fail_reason,
@updated_at,
@updated_at,
@fail_reason,
@updated_at
WHERE ROW_COUNT() = 0;";
// update device set archive_lastDate = @updated_at, archive_lastActionDate = @updated_at where device_number = @device_number;
var mySql = $@"BEGIN TRANSACTION;
IF OBJECT_ID(N'dbo.archive_electric_meter_day_{dbDateName}', N'U') is null
BEGIN
@ -1285,12 +1286,15 @@ namespace BackendWorkerService.Quartz.Jobs
END
COMMIT TRANSACTION;";
// logger.LogInformation($@"putint value NTPC_G6_EE_E4_B1F_CB3_WHT_N1 ={electricMeter.archive_lastDate} archive_lastActionDate={electricMeter.archive_lastActionDate}");
logger.LogInformation("run sql electericArchiveDayRawDatas.Count() = " + electericArchiveDayRawDatas.Count());
await backgroundServiceRepository.ExecuteSql(sql, electericArchiveDayRawDatas);
if (!string.IsNullOrEmpty(saveToMSDB) && saveToMSDB == "1")
{
await backgroundServiceMsSqlRepository.ExecuteSql(mySql, electericArchiveDayRawDatas);
}
}
}
if (waterArchiveDayRawDatas.Count() > 0)
{

View File

@ -960,14 +960,21 @@ namespace BackendWorkerService.Services.Implement
{
#region save to DB start
logger.LogInformation($@"s0 DeviceNumberPoints.Count() = {DeviceNumberPoints.Count().ToString()}");
foreach (var deviceNumberPoint in DeviceNumberPoints)
{
if (deviceNumberPoint.archive_lastDate.ToString("yyyy-MM-dd") == DateTime.Now.ToString("yyyy-MM-dd")) break; //如果是今天 就不要用歸檔了
{
if (deviceNumberPoint.DeviceNumber == "NTPC_G6_EE_E4_B1F_CB3_WHT_N1")
{
logger.LogInformation($@"s1 devie_number = NTPC_G6_EE_E4_B1F_CB3_WHT_N1 archive_lastDate={deviceNumberPoint.archive_lastDate}");
}
if (deviceNumberPoint.archive_lastDate.ToString("yyyy-MM-dd") == DateTime.Now.ToString("yyyy-MM-dd"))
{
logger.LogInformation($@" foreach (var deviceNumberPoint in DeviceNumberPoints) 判斷為今天 不用跑 deviceNumberPoint.archive_lastDate = {deviceNumberPoint.archive_lastDate} "); // ----------- log
continue; //如果是今天 就不要用歸檔了
}
var startDay = string.Format("{0}T00:00:00.000+08:00", deviceNumberPoint.archive_lastDate.ToString("yyyy-MM-dd").Replace(" ", "T"));
var endDay = "";
var endDay = System.DateTime.Now.ToString("yyyy-MM-dd");
//var endTimestamp = string.Format("{0}+08:00", error_day.End_timestamp.Replace(" ", "T"));
//if (DateTime.Parse(startTimestamp).ToString("yyyy-MM-dd") == DateTime.Parse(endTimestamp).ToString("yyyy-MM-dd"))
//{
@ -976,18 +983,24 @@ namespace BackendWorkerService.Services.Implement
//}
//else
//{ //不同天為新格式 採用 Start_timestamp
endDay = string.Format("{0}T00:00:10.000+08:00", DateTime.Parse(endDay).AddDays(1).ToString("yyyy-MM-dd").Replace(" ", "T"));
// endDay = string.Format("{0}T00:00:10.000+08:00", DateTime.Parse(endDay).AddDays(1).ToString("yyyy-MM-dd").Replace(" ", "T"));
//}
logger.LogInformation($@"before startDay = {startDay} endDay={endDay}"); // ----------- log
#region
foreach (DateTime day in EachDay(startDay, endDay))
{
if (day.ToString("yyyy-MM-dd") == DateTime.Now.ToString("yyyy-MM-dd")) break; //如果是今天 就不要用歸檔了
if (day.ToString("yyyy-MM-dd") == DateTime.Now.ToString("yyyy-MM-dd"))
{
//logger.LogInformation($@"s2 foreach (DateTime day in EachDay(startDay, endDay)) 判斷為今天 不用跑 day = {day} "); // ----------- log
continue; //如果是今天 就不要用歸檔了
}
//logger.LogInformation(@$"obix query for {deviceNumberPoint.DeviceNumber} day = {day.ToString("yyyy-MM-dd")}");
var sDay = string.Format("{0}T00:00:00.000+08:00", day.ToString("yyyy-MM-dd").Replace(" ", "T"));
var eDay = string.Format("{0}T00:00:10.000+08:00", day.AddDays(1).ToString("yyyy-MM-dd").Replace(" ", "T"));
logger.LogInformation($@"after sDay = {sDay} eDay={eDay}"); // ----------- log
string historyQueryFilter = $@"<obj is='obix: HistoryFilter'>
<abstime name='start' val='{startDay}' />
@ -995,17 +1008,22 @@ namespace BackendWorkerService.Services.Implement
<reltime name='interval' val = 'PT2D' />
</obj>";
string device_number = deviceNumberPoint.FullDeviceNumberPoint.Replace("$3", "");
logger.LogInformation($@" {device_number} after sDay = {sDay} eDay={eDay}"); // ----------- log
var station = backgroundServiceRepository.GetOneAsync<string>($@"select parent_path from import_niagara_item_history where device_building_tag = '{device_number.Split("_")[1].Replace("$3", "")}' and
device_system_tag = '{device_number.Split("_")[2]}' and device_name_tag = '{device_number.Split("_")[3]}'
and device_floor_tag = '{device_number.Split("_")[4]}' and device_master_tag = '{device_number.Split("_")[5]}'
and device_last_name_tag = '{device_number.Split("_")[6]}' and device_serial_tag = '{device_number.Split("_")[7]}'
and device_point_name = '{device_number.Split("_")[8]}'").Result;
HttpWebRequest archiveRequest = (HttpWebRequest)WebRequest.Create($"{obixApiConfig.ApiBase}obix/histories/{station}/{deviceNumberPoint.FullDeviceNumberPoint.Replace("$3", "")}/~historyRollup/");
//HttpWebRequest archiveDayRequest = (HttpWebRequest)WebRequest.Create($"{obixApiConfig.ApiBase}obix/histories/{station}/H_E1_B1F_MVCB_MVCBH_V1/~historyRollup/");
archiveRequest.Method = "POST";
archiveRequest.Headers.Add("Authorization", "Basic " + encoded);
archiveRequest.PreAuthenticate = true;
logger.LogInformation($@" {device_number} after station = {station}"); // ----------- log
byte[] byteArray = Encoding.UTF8.GetBytes(historyQueryFilter);
using (Stream reqStream = archiveRequest.GetRequestStream())
@ -1021,15 +1039,15 @@ namespace BackendWorkerService.Services.Implement
xmlDocument.LoadXml(archiveResponseContent);
var archiveJson = JsonConvert.SerializeXmlNode(xmlDocument);
var archiveJsonResult = (JObject)JsonConvert.DeserializeObject(archiveJson);
//if (device_number == "NTPC_D8_EE_E4_RF_Total_WHT_N1")
//{
// logger.LogError("obixData_collect - NTPC_D8_EE_E4_RF_Total_WHT_N1 s=" + startTimestamp.Replace("T", " ").Substring(0, 19) + " e = " + endTimestamp.Replace("T", " ").Substring(0, 19) + " json = " + archiveJsonResult);
//}
if (device_number == "NTPC_G6_EE_E4_B1F_CB3_WHT_N1")
{
logger.LogError("obixData_collect - NTPC_G6_EE_E4_B1F_CB3_WHT_N1 json = " + archiveJsonResult);
}
if (archiveJsonResult.ContainsKey("err")) //抓取錯誤
{
//logger.LogError("【ArchiveElectricMeterDayJob】【天歸檔】【取得資料失敗】");
//logger.LogError("【ArchiveElectricMeterDayJob】【天歸檔】【取得資料失敗】[錯誤內容]{0}", archiveDayJsonResult);
//logger.LogError("【ArchiveElectricMeterDayJob】【天歸檔】【取得資料失敗】[錯誤內容]{0}", archiveDayJsonResult); archiveJsonResult
logger.LogError("【ArchiveElectricMeterDayJob】【天歸檔】【取得資料失敗】[錯誤內容]{0}", archiveJsonResult);
Dictionary<string, object> archiveDayRawData = new Dictionary<string, object>();
archiveDayRawData.Add("@device_number", deviceNumberPoint.DeviceNumber);
archiveDayRawData.Add("@point", deviceNumberPoint.Point);
@ -1051,9 +1069,11 @@ namespace BackendWorkerService.Services.Implement
if (archiveJsonResult.ContainsKey("obj")) //表示可以讀取到內容
{
logger.LogError("【ArchiveElectricMeterDayJob】【天歸檔】【OK】{0}", archiveJsonResult);
var ArrangeRawDatas = ArrangeRawData(deviceNumberPoint, archiveJsonResult);
if (ArrangeRawDatas != null && ArrangeRawDatas.Count() > 0)
{
logger.LogInformation(@$"obix result {deviceNumberPoint.DeviceNumber} day = {day.ToString("yyyy-MM-dd")} ArrangeRawDatas.count() = {ArrangeRawDatas.Count().ToString()}");
resultArchiveDayRawDatas.AddRange(ArrangeRawDatas);
}
}