[後端] 修改log記錄

This commit is contained in:
dev02 2023-07-17 14:18:57 +08:00
parent 2cf387f8f2
commit db97f5d1c8

View File

@ -592,7 +592,7 @@ namespace BackendWorkerService.Quartz.Jobs
{ {
await task_Detail.WorkFail("ArchiveElectricMeterDayJob", "Day", exception.ToString()); await task_Detail.WorkFail("ArchiveElectricMeterDayJob", "Day", exception.ToString());
logger.LogError("【ArchiveElectricMeterDayJob】【天歸檔】【任務失敗】"); logger.LogError("【ArchiveElectricMeterDayJob】【天歸檔】【任務失敗】");
logger.LogError("【ArchiveElectricMeterDayJob】【天歸檔】【任務失敗】[Exception]{0}", exception.ToString()); logger.LogError("【ArchiveElectricMeterDayJob】【天歸檔】【任務失敗】[Exception]{0} {1}", exception.ToString(), "device_number : " + device_number);
} }
finally finally
{ {
@ -959,7 +959,7 @@ namespace BackendWorkerService.Quartz.Jobs
{ {
await task_Detail.WorkFail("ArchiveElectricMeterDayJob", "Week", exception.ToString()); await task_Detail.WorkFail("ArchiveElectricMeterDayJob", "Week", exception.ToString());
logger.LogError("【ArchiveElectricMeterDayJob】【週歸檔】【任務失敗】"); logger.LogError("【ArchiveElectricMeterDayJob】【週歸檔】【任務失敗】");
logger.LogError("【ArchiveElectricMeterDayJob】【週歸檔】【任務失敗】[Exception]{0}", exception.ToString()); logger.LogError("【ArchiveElectricMeterDayJob】【週歸檔】【任務失敗】[Exception]{0} {1}", exception.ToString(), "device_number : " + device_number);
} }
finally finally
{ {
@ -1321,7 +1321,7 @@ namespace BackendWorkerService.Quartz.Jobs
{ {
await task_Detail.WorkFail("ArchiveElectricMeterDayJob", "Month", exception.ToString()); await task_Detail.WorkFail("ArchiveElectricMeterDayJob", "Month", exception.ToString());
logger.LogError("【ArchiveElectricMeterDayJob】【月歸檔】【任務失敗】"); logger.LogError("【ArchiveElectricMeterDayJob】【月歸檔】【任務失敗】");
logger.LogError("【ArchiveElectricMeterDayJob】【月歸檔】【任務失敗】[Exception]{0}", exception.ToString()); logger.LogError("【ArchiveElectricMeterDayJob】【月歸檔】【任務失敗】[Exception]{0} {1}", exception.ToString(), "device_number : " + device_number);
} }
finally finally
{ {
@ -1361,35 +1361,105 @@ namespace BackendWorkerService.Quartz.Jobs
{ {
await task_Detail.WorkFail("ArchiveElectricMeterDayJob", "All", exception.ToString()); await task_Detail.WorkFail("ArchiveElectricMeterDayJob", "All", exception.ToString());
logger.LogError("【ArchiveElectricMeterDayJob】【任務失敗】"); logger.LogError("【ArchiveElectricMeterDayJob】【任務失敗】");
logger.LogError("【ArchiveElectricMeterDayJob】【任務失敗】[Exception]{0} {1}", exception.ToString(), "device_number : " + device_number); logger.LogError("【ArchiveElectricMeterDayJob】【任務失敗】[Exception]{0} {1}", exception.ToString());
} }
} }
private List<Dictionary<string, object>> ArrangeRawData(DeviceNumberPoint deviceNumberPoint, JObject jsonResult) private List<Dictionary<string, object>> ArrangeRawData(DeviceNumberPoint deviceNumberPoint, JObject jsonResult)
{ {
List<Dictionary<string, object>> arrangeRawDatas = new List<Dictionary<string, object>>(); List<Dictionary<string, object>> arrangeRawDatas = new List<Dictionary<string, object>>();
var histories = jsonResult["obj"]["list"]; try
var rawdateCount = Convert.ToInt32(jsonResult["obj"]["int"]["@val"].ToString());
if(rawdateCount == 0)
{ {
return null; var histories = jsonResult["obj"]["list"];
} var rawdateCount = Convert.ToInt32(jsonResult["obj"]["int"]["@val"].ToString());
if (histories != null && histories.HasValues) if (rawdateCount == 0)
{ {
if (rawdateCount > 1) return null;
{ //多筆資料 }
foreach (var history in histories)
{ if (histories != null && histories.HasValues)
{
if (rawdateCount > 1)
{ //多筆資料
foreach (var history in histories)
{
Dictionary<string, object> arrangeRawData = new Dictionary<string, object>();
arrangeRawData.Add("@device_number", deviceNumberPoint.DeviceNumber);
arrangeRawData.Add("@point", deviceNumberPoint.Point);
//時間
if (history["abstime"] != null && history["abstime"].HasValues)
{
foreach (var abstime in history["abstime"])
{
var name = abstime["@name"].ToString();
switch (name)
{
case "start":
var startTimstamp = Convert.ToDateTime(abstime["@val"].ToString()).ToString("yyyy-MM-dd HH:mm:ss");
arrangeRawData.Add("@start_timestamp", startTimstamp);
break;
case "end":
var endTimstamp = Convert.ToDateTime(abstime["@val"].ToString()).ToString("yyyy-MM-dd HH:mm:ss");
arrangeRawData.Add("@end_timestamp", endTimstamp);
break;
}
}
}
//區間內資料筆數
if (history["int"] != null && history["int"].HasValues)
{
var count = Convert.ToInt32(histories["obj"]["int"]["@val"].ToString());
arrangeRawData.Add("@count_rawdata", count);
}
//整合數值(最大、最小、平均、總和)
if (history["real"] != null && history["real"].HasValues)
{
foreach (var real in history["real"])
{
var name = real["@name"].ToString();
switch (name)
{
case "min":
var min = Convert.ToDecimal(real["@val"].ToString());
arrangeRawData.Add("@min_rawdata", min);
break;
case "max":
var max = Convert.ToDecimal(real["@val"].ToString());
arrangeRawData.Add("@max_rawdata", max);
break;
case "avg":
var avg = Convert.ToDecimal(real["@val"].ToString());
arrangeRawData.Add("@avg_rawdata", avg);
break;
case "sum":
var sum = Decimal.Parse(real["@val"].ToString(), System.Globalization.NumberStyles.Float);
arrangeRawData.Add("@sum_rawdata", sum);
break;
}
}
}
arrangeRawData.Add("@is_complete", 1);
arrangeRawData.Add("@repeat_times", 0);
arrangeRawData.Add("@fail_reason", null);
arrangeRawData.Add("@updated_at", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
arrangeRawDatas.Add(arrangeRawData);
}
}
else
{ //單筆資料
Dictionary<string, object> arrangeRawData = new Dictionary<string, object>(); Dictionary<string, object> arrangeRawData = new Dictionary<string, object>();
arrangeRawData.Add("@device_number", deviceNumberPoint.DeviceNumber); arrangeRawData.Add("@device_number", deviceNumberPoint.DeviceNumber);
arrangeRawData.Add("@point", deviceNumberPoint.Point); arrangeRawData.Add("@point", deviceNumberPoint.Point);
//時間 //時間
if (history["abstime"] != null && history["abstime"].HasValues) if (histories["obj"]["abstime"] != null && histories["obj"]["abstime"].HasValues)
{ {
foreach (var abstime in history["abstime"]) foreach (var abstime in histories["obj"]["abstime"])
{ {
var name = abstime["@name"].ToString(); var name = abstime["@name"].ToString();
switch (name) switch (name)
@ -1407,16 +1477,16 @@ namespace BackendWorkerService.Quartz.Jobs
} }
//區間內資料筆數 //區間內資料筆數
if (history["int"] != null && history["int"].HasValues) if (histories["obj"]["int"] != null && histories["obj"]["int"].HasValues)
{ {
var count = Convert.ToInt32(histories["obj"]["int"]["@val"].ToString()); var count = Convert.ToInt32(histories["obj"]["int"]["@val"].ToString());
arrangeRawData.Add("@count_rawdata", count); arrangeRawData.Add("@count_rawdata", count);
} }
//整合數值(最大、最小、平均、總和) //整合數值(最大、最小、平均、總和)
if (history["real"] != null && history["real"].HasValues) if (histories["obj"]["real"] != null && histories["obj"]["real"].HasValues)
{ {
foreach (var real in history["real"]) foreach (var real in histories["obj"]["real"])
{ {
var name = real["@name"].ToString(); var name = real["@name"].ToString();
switch (name) switch (name)
@ -1448,76 +1518,15 @@ namespace BackendWorkerService.Quartz.Jobs
arrangeRawDatas.Add(arrangeRawData); arrangeRawDatas.Add(arrangeRawData);
} }
} }
else
{ //單筆資料
Dictionary<string, object> arrangeRawData = new Dictionary<string, object>();
arrangeRawData.Add("@device_number", deviceNumberPoint.DeviceNumber);
arrangeRawData.Add("@point", deviceNumberPoint.Point);
//時間 return arrangeRawDatas;
if (histories["obj"]["abstime"] != null && histories["obj"]["abstime"].HasValues) }
{ catch (Exception exception)
foreach (var abstime in histories["obj"]["abstime"]) {
{ logger.LogError("【ArchiveElectricMeterDayJob】【任務失敗】");
var name = abstime["@name"].ToString(); logger.LogError("【ArchiveElectricMeterDayJob】【任務失敗】[Exception]{0} {1}", exception.ToString(), "device_number : " + deviceNumberPoint.FullDeviceNumberPoint);
switch (name) return arrangeRawDatas;
{
case "start":
var startTimstamp = Convert.ToDateTime(abstime["@val"].ToString()).ToString("yyyy-MM-dd HH:mm:ss");
arrangeRawData.Add("@start_timestamp", startTimstamp);
break;
case "end":
var endTimstamp = Convert.ToDateTime(abstime["@val"].ToString()).ToString("yyyy-MM-dd HH:mm:ss");
arrangeRawData.Add("@end_timestamp", endTimstamp);
break;
}
}
}
//區間內資料筆數
if (histories["obj"]["int"] != null && histories["obj"]["int"].HasValues)
{
var count = Convert.ToInt32(histories["obj"]["int"]["@val"].ToString());
arrangeRawData.Add("@count_rawdata", count);
}
//整合數值(最大、最小、平均、總和)
if (histories["obj"]["real"] != null && histories["obj"]["real"].HasValues)
{
foreach (var real in histories["obj"]["real"])
{
var name = real["@name"].ToString();
switch (name)
{
case "min":
var min = Convert.ToDecimal(real["@val"].ToString());
arrangeRawData.Add("@min_rawdata", min);
break;
case "max":
var max = Convert.ToDecimal(real["@val"].ToString());
arrangeRawData.Add("@max_rawdata", max);
break;
case "avg":
var avg = Convert.ToDecimal(real["@val"].ToString());
arrangeRawData.Add("@avg_rawdata", avg);
break;
case "sum":
var sum = Decimal.Parse(real["@val"].ToString(), System.Globalization.NumberStyles.Float);
arrangeRawData.Add("@sum_rawdata", sum);
break;
}
}
}
arrangeRawData.Add("@is_complete", 1);
arrangeRawData.Add("@repeat_times", 0);
arrangeRawData.Add("@fail_reason", null);
arrangeRawData.Add("@updated_at", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
arrangeRawDatas.Add(arrangeRawData);
}
} }
return arrangeRawDatas;
} }
} }
} }