[BGService]月歸檔加入跨月補檔機制
This commit is contained in:
parent
635a940d25
commit
5766931a1f
@ -1082,7 +1082,8 @@ namespace BackendWorkerService.Services.Implement
|
|||||||
//logger.LogInformation(@$"obix result {deviceNumberPoint.DeviceNumber} day = {day.ToString("yyyy-MM-dd")} ArrangeRawDatas.count() = {ArrangeRawDatas.Count().ToString()}");
|
//logger.LogInformation(@$"obix result {deviceNumberPoint.DeviceNumber} day = {day.ToString("yyyy-MM-dd")} ArrangeRawDatas.count() = {ArrangeRawDatas.Count().ToString()}");
|
||||||
resultArchiveDayRawDatas.AddRange(ArrangeRawDatas);
|
resultArchiveDayRawDatas.AddRange(ArrangeRawDatas);
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
|
{
|
||||||
if (!dicError.ContainsKey(deviceNumberPoint.DeviceNumber))
|
if (!dicError.ContainsKey(deviceNumberPoint.DeviceNumber))
|
||||||
{
|
{
|
||||||
dicError.Add(deviceNumberPoint.DeviceNumber, day.ToString("yyyy-MM-dd")); //記錄異常設備與日期
|
dicError.Add(deviceNumberPoint.DeviceNumber, day.ToString("yyyy-MM-dd")); //記錄異常設備與日期
|
||||||
@ -1125,24 +1126,40 @@ namespace BackendWorkerService.Services.Implement
|
|||||||
|
|
||||||
var startDay = deviceNumberPoint.archive_lastDate.ToString("yyyy-MM-dd");
|
var startDay = deviceNumberPoint.archive_lastDate.ToString("yyyy-MM-dd");
|
||||||
var endDay = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd");
|
var endDay = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd");
|
||||||
|
DateTime today = DateTime.Now;
|
||||||
|
|
||||||
logger.LogInformation($@"before startDay = {startDay} endDay={endDay}"); // ----------- log
|
logger.LogInformation($@"before startDay = {startDay} endDay={endDay}"); // ----------- log
|
||||||
|
|
||||||
#region
|
#region
|
||||||
//foreach (DateTime day in EachMonth(startDay , endDay))
|
foreach (DateTime month in EachMonth(startDay, endDay))
|
||||||
//{
|
{
|
||||||
// 需要比原定日期增加 1天:因 Niagara 內部判斷為 < lastData, 並未包含結束當天 add by jiahao @2023-09-16
|
// 需要比原定日期增加 1天:因 Niagara 內部判斷為 < lastData, 並未包含結束當天 add by jiahao @2023-09-16
|
||||||
//var dayInMonth = DateTime.DaysInMonth(day.Year, day.Month) +1; 、、(DateTime.Now - DateTime.Parse(startDay)).Days
|
//var dayInMonth = DateTime.DaysInMonth(day.Year, day.Month) +1; 、、(DateTime.Now - DateTime.Parse(startDay)).Days
|
||||||
DateTime today = DateTime.Now;
|
var startTimestamp = "";
|
||||||
|
var endTimestamp = "";
|
||||||
|
var dayInMonth = 0;
|
||||||
|
// 區分當月與其他月份
|
||||||
|
if (month.ToString("yyyy-MM") == System.DateTime.Now.AddDays(-1).ToString("yyyy-MM"))
|
||||||
|
{
|
||||||
var preDay = today.AddDays(-1); //取得前一天
|
var preDay = today.AddDays(-1); //取得前一天
|
||||||
|
|
||||||
var dayInMonth = DateTime.DaysInMonth(preDay.Year, preDay.Month);
|
dayInMonth = DateTime.DaysInMonth(preDay.Year, preDay.Month);
|
||||||
var FirstDay = new DateTime(preDay.Year, preDay.Month, 1);
|
var FirstDay = new DateTime(preDay.Year, preDay.Month, 1);
|
||||||
var LastDay = today;
|
var LastDay = today;
|
||||||
var startTimestamp = string.Format("{0}T00:00:00.000+08:00", FirstDay.ToString("yyyy-MM-dd"));
|
startTimestamp = string.Format("{0}T00:00:00.000+08:00", FirstDay.ToString("yyyy-MM-dd"));
|
||||||
var endTimestamp = string.Format("{0}T00:01:00.000+08:00", LastDay.ToString("yyyy-MM-dd"));
|
endTimestamp = string.Format("{0}T00:01:00.000+08:00", LastDay.ToString("yyyy-MM-dd"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dayInMonth = DateTime.DaysInMonth(month.Year, month.Month);
|
||||||
|
var FirstDay = new DateTime(month.Year, month.Month, 1);
|
||||||
|
var LastDay = new DateTime(month.Year, month.Month, dayInMonth).AddDays(1);
|
||||||
|
|
||||||
|
startTimestamp = string.Format("{0}T00:00:00.000+08:00", FirstDay.ToString("yyyy-MM-dd"));
|
||||||
|
|
||||||
|
endTimestamp = string.Format("{0}T00:01:00.000+08:00", LastDay.ToString("yyyy-MM-dd"));
|
||||||
|
|
||||||
|
}
|
||||||
//var dayInMonth = (DateTime.Now - DateTime.Parse(today.ToString("yyyy-MM-") + "01")).Days + 1;
|
//var dayInMonth = (DateTime.Now - DateTime.Parse(today.ToString("yyyy-MM-") + "01")).Days + 1;
|
||||||
|
|
||||||
|
|
||||||
@ -1154,7 +1171,7 @@ namespace BackendWorkerService.Services.Implement
|
|||||||
var historyQueryFilter = $@"<obj is='obix: HistoryFilter'>
|
var historyQueryFilter = $@"<obj is='obix: HistoryFilter'>
|
||||||
<abstime name='start' val='{startTimestamp}' />
|
<abstime name='start' val='{startTimestamp}' />
|
||||||
<abstime name='end' val='{endTimestamp}' />
|
<abstime name='end' val='{endTimestamp}' />
|
||||||
<reltime name='interval' val = 'PT{(dayInMonth+1).ToString()}D' />
|
<reltime name='interval' val = 'PT{(dayInMonth + 1)}D' />
|
||||||
</obj>";
|
</obj>";
|
||||||
|
|
||||||
|
|
||||||
@ -1226,7 +1243,7 @@ namespace BackendWorkerService.Services.Implement
|
|||||||
resultArchiveDayRawDatas.AddRange(ArrangeRawDatas);
|
resultArchiveDayRawDatas.AddRange(ArrangeRawDatas);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1423,14 +1440,15 @@ namespace BackendWorkerService.Services.Implement
|
|||||||
for (var day = strtday.Date; day.Date <= endday.Date; day = day.AddDays(1))
|
for (var day = strtday.Date; day.Date <= endday.Date; day = day.AddDays(1))
|
||||||
yield return day;
|
yield return day;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerable<DateTime> EachMonth(string from, string thru)
|
public IEnumerable<DateTime> EachMonth(string from, string thru)
|
||||||
{
|
{
|
||||||
var strtday = DateTime.Parse(from);
|
var strtday = DateTime.Parse(from);
|
||||||
var endday = DateTime.Parse(thru);
|
var endday = DateTime.Parse(thru);
|
||||||
for (var _month = strtday.Date; _month.Month <= endday.Month; _month = _month.AddDays(1))
|
|
||||||
|
for (var _month = strtday.Date; _month <= endday; _month = _month.AddMonths(1))
|
||||||
|
{
|
||||||
yield return _month;
|
yield return _month;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user