[BackendWorkerService]修改水電月歸檔最後一天沒紀錄的問題
This commit is contained in:
parent
6c50bdb071
commit
0929c6f21a
@ -799,6 +799,8 @@ namespace BackendWorkerService.Quartz.Jobs
|
|||||||
{
|
{
|
||||||
var sql = $@"
|
var sql = $@"
|
||||||
UPDATE archive_electric_meter_month SET
|
UPDATE archive_electric_meter_month SET
|
||||||
|
start_timestamp = @start_timestamp,
|
||||||
|
end_timestamp = @end_timestamp,
|
||||||
count_rawdata = @count_rawdata,
|
count_rawdata = @count_rawdata,
|
||||||
min_rawdata = round(@min_rawdata, 2),
|
min_rawdata = round(@min_rawdata, 2),
|
||||||
max_rawdata = round(@max_rawdata, 2),
|
max_rawdata = round(@max_rawdata, 2),
|
||||||
@ -846,6 +848,8 @@ namespace BackendWorkerService.Quartz.Jobs
|
|||||||
var mySql = $@"BEGIN TRANSACTION;
|
var mySql = $@"BEGIN TRANSACTION;
|
||||||
|
|
||||||
UPDATE archive_electric_meter_month SET
|
UPDATE archive_electric_meter_month SET
|
||||||
|
start_timestamp = @start_timestamp,
|
||||||
|
end_timestamp = @end_timestamp,
|
||||||
count_rawdata = @count_rawdata,
|
count_rawdata = @count_rawdata,
|
||||||
min_rawdata = round(@min_rawdata, 2),
|
min_rawdata = round(@min_rawdata, 2),
|
||||||
max_rawdata = round(@max_rawdata, 2),
|
max_rawdata = round(@max_rawdata, 2),
|
||||||
@ -906,6 +910,8 @@ namespace BackendWorkerService.Quartz.Jobs
|
|||||||
{
|
{
|
||||||
var sql = $@"
|
var sql = $@"
|
||||||
UPDATE archive_water_meter_month SET
|
UPDATE archive_water_meter_month SET
|
||||||
|
start_timestamp = @start_timestamp,
|
||||||
|
end_timestamp = @end_timestamp,
|
||||||
count_rawdata = @count_rawdata,
|
count_rawdata = @count_rawdata,
|
||||||
min_rawdata = round(@min_rawdata, 2),
|
min_rawdata = round(@min_rawdata, 2),
|
||||||
max_rawdata = round(@max_rawdata, 2),
|
max_rawdata = round(@max_rawdata, 2),
|
||||||
@ -952,6 +958,8 @@ namespace BackendWorkerService.Quartz.Jobs
|
|||||||
var mySql = $@"BEGIN TRANSACTION;
|
var mySql = $@"BEGIN TRANSACTION;
|
||||||
|
|
||||||
UPDATE archive_water_meter_month SET
|
UPDATE archive_water_meter_month SET
|
||||||
|
start_timestamp = @start_timestamp,
|
||||||
|
end_timestamp = @end_timestamp,
|
||||||
count_rawdata = @count_rawdata,
|
count_rawdata = @count_rawdata,
|
||||||
min_rawdata = round(@min_rawdata, 2),
|
min_rawdata = round(@min_rawdata, 2),
|
||||||
max_rawdata = round(@max_rawdata, 2),
|
max_rawdata = round(@max_rawdata, 2),
|
||||||
@ -1330,6 +1338,10 @@ namespace BackendWorkerService.Quartz.Jobs
|
|||||||
}
|
}
|
||||||
if (waterArchiveDayRawDatas.Count() > 0)
|
if (waterArchiveDayRawDatas.Count() > 0)
|
||||||
{
|
{
|
||||||
|
foreach (var row in waterArchiveDayRawDatas)
|
||||||
|
{
|
||||||
|
row.TryGetValue("@start_timestamp", out var yyyymmData);
|
||||||
|
dbDateName = System.DateTime.Parse(yyyymmData.ToString()).ToString("yyyyMM");
|
||||||
var sql = $@" UPDATE archive_water_meter_day_{dbDateName} SET
|
var sql = $@" UPDATE archive_water_meter_day_{dbDateName} SET
|
||||||
count_rawdata = @count_rawdata,
|
count_rawdata = @count_rawdata,
|
||||||
min_rawdata = round(@min_rawdata, 2),
|
min_rawdata = round(@min_rawdata, 2),
|
||||||
@ -1470,6 +1482,7 @@ namespace BackendWorkerService.Quartz.Jobs
|
|||||||
await backgroundServiceMsSqlRepository.ExecuteSql(mySql, waterArchiveDayRawDatas);
|
await backgroundServiceMsSqlRepository.ExecuteSql(mySql, waterArchiveDayRawDatas);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,6 +23,7 @@ using BackendWorkerService.Quartz.Jobs;
|
|||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Org.BouncyCastle.Asn1.Pkcs;
|
using Org.BouncyCastle.Asn1.Pkcs;
|
||||||
using NPOI.SS.Formula.Functions;
|
using NPOI.SS.Formula.Functions;
|
||||||
|
using MySqlX.XDevAPI.Relational;
|
||||||
|
|
||||||
namespace BackendWorkerService.Services.Implement
|
namespace BackendWorkerService.Services.Implement
|
||||||
{
|
{
|
||||||
@ -995,7 +996,7 @@ namespace BackendWorkerService.Services.Implement
|
|||||||
//logger.LogInformation(@$"obix query for {deviceNumberPoint.DeviceNumber} day = {day.ToString("yyyy-MM-dd")}");
|
//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 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"));
|
var eDay = string.Format("{0}T00:01:00.000+08:00", day.AddDays(1).ToString("yyyy-MM-dd").Replace(" ", "T"));
|
||||||
|
|
||||||
|
|
||||||
string historyQueryFilter = $@"<obj is='obix: HistoryFilter'>
|
string historyQueryFilter = $@"<obj is='obix: HistoryFilter'>
|
||||||
@ -1133,18 +1134,27 @@ namespace BackendWorkerService.Services.Implement
|
|||||||
// 需要比原定日期增加 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;
|
DateTime today = DateTime.Now;
|
||||||
var dayInMonth = (DateTime.Now - DateTime.Parse(today.ToString("yyyy-MM-") + "01")).Days + 1;
|
|
||||||
|
var preDay = today.AddDays(-1); //取得前一天
|
||||||
|
|
||||||
|
var dayInMonth = DateTime.DaysInMonth(preDay.Year, preDay.Month);
|
||||||
|
var FirstDay = new DateTime(preDay.Year, preDay.Month, 1);
|
||||||
|
var LastDay = today;
|
||||||
|
var 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"));
|
||||||
|
|
||||||
|
//var dayInMonth = (DateTime.Now - DateTime.Parse(today.ToString("yyyy-MM-") + "01")).Days + 1;
|
||||||
|
|
||||||
|
|
||||||
var startTimestamp = string.Format("{0}T00:00:00.000+08:00", today.ToString("yyyy-MM-") + "01");
|
//var startTimestamp = string.Format("{0}T00:00:00.000+08:00", today.ToString("yyyy-MM-") + "01");
|
||||||
//var endTimestamp = string.Format("{0}T23:59:59.000+08:00", LastDay.ToString("yyyy-MM-dd"));
|
////var endTimestamp = string.Format("{0}T23:59:59.000+08:00", LastDay.ToString("yyyy-MM-dd"));
|
||||||
//var endTimestamp = string.Format("{0}T00:00:10.000+08:00", day.AddMonths(1).ToString("yyyy-MM-") + "01"); // by jiahao @2023-09-26
|
////var endTimestamp = string.Format("{0}T00:00:10.000+08:00", day.AddMonths(1).ToString("yyyy-MM-") + "01"); // by jiahao @2023-09-26
|
||||||
var endTimestamp = string.Format("{0}T00:00:10.000+08:00", DateTime.Now.ToString("yyyy-MM-dd")); // by jiahao @2023-10-03
|
//var endTimestamp = string.Format("{0}T00:00:10.000+08:00", DateTime.Now.ToString("yyyy-MM-dd")); // by jiahao @2023-10-03
|
||||||
|
|
||||||
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.ToString()}D' />
|
<reltime name='interval' val = 'PT{(dayInMonth+1).ToString()}D' />
|
||||||
</obj>";
|
</obj>";
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user