debug: 跨月計算問題
This commit is contained in:
parent
9e991688f7
commit
2ef31fc7ea
@ -5,6 +5,7 @@ using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Options;
|
||||
using MySqlX.XDevAPI.Relational;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using NPOI.SS.Formula.Functions;
|
||||
@ -1165,144 +1166,11 @@ namespace BackendWorkerService.Quartz.Jobs
|
||||
|
||||
if (electericArchiveDayRawDatas.Count() > 0)
|
||||
{
|
||||
var sql = $@" SET FOREIGN_KEY_CHECKS = 1;
|
||||
UPDATE archive_electric_meter_day_{dbDateName} SET
|
||||
count_rawdata = @count_rawdata,
|
||||
min_rawdata = round(@min_rawdata, 2),
|
||||
max_rawdata = round(@max_rawdata, 2),
|
||||
kwh_result = round(@max_rawdata, 2) - round(@min_rawdata, 2),
|
||||
avg_rawdata = @avg_rawdata,
|
||||
sum_rawdata = @sum_rawdata,
|
||||
is_complete = @is_complete,
|
||||
repeat_times = @repeat_times,
|
||||
fail_reason = @fail_reason,
|
||||
updated_at = @updated_at
|
||||
WHERE device_number = @device_number
|
||||
AND point = @point
|
||||
AND start_timestamp = @start_timestamp;
|
||||
object vv = null;
|
||||
electericArchiveDayRawDatas.Where(x => x.TryGetValue("@start_timestamp", out vv)).ToString();
|
||||
|
||||
INSERT INTO archive_electric_meter_day_{dbDateName} (
|
||||
device_number,
|
||||
point,
|
||||
start_timestamp,
|
||||
end_timestamp,
|
||||
count_rawdata,
|
||||
min_rawdata,
|
||||
max_rawdata,
|
||||
kwh_result,
|
||||
avg_rawdata,
|
||||
sum_rawdata,
|
||||
is_complete,
|
||||
repeat_times,
|
||||
fail_reason, updated_at)
|
||||
SELECT
|
||||
@device_number,
|
||||
@point,
|
||||
@start_timestamp,
|
||||
@end_timestamp,
|
||||
@count_rawdata,
|
||||
round(@min_rawdata, 2),
|
||||
round(@max_rawdata, 2) ,
|
||||
round(@max_rawdata, 2) - round(@min_rawdata, 2),
|
||||
@avg_rawdata,
|
||||
@sum_rawdata,
|
||||
@is_complete,
|
||||
@repeat_times,
|
||||
@fail_reason,
|
||||
@updated_at
|
||||
WHERE ROW_COUNT() = 0;
|
||||
// var lastMonth = electericArchiveDayRawDatas.Where( x => x.Where(z => z.))
|
||||
|
||||
update device set archive_lastDate = @start_timestamp, archive_lastActionDate = @updated_at
|
||||
where device_number = @device_number;"; //archive_lastDate 前次完成時間 ,archive_lastActionDate 本次作業時間
|
||||
|
||||
var mySql = $@"BEGIN TRANSACTION;
|
||||
IF OBJECT_ID(N'dbo.archive_electric_meter_day_{dbDateName}', N'U') is null
|
||||
BEGIN
|
||||
CREATE TABLE [dbo].[archive_electric_meter_day_{dbDateName}](
|
||||
[device_number] [varchar](50) NOT NULL,
|
||||
[point] [varchar](20) NOT NULL,
|
||||
[start_timestamp] [datetime] NOT NULL,
|
||||
[end_timestamp] [datetime] NULL,
|
||||
[count_rawdata] [int] NULL,
|
||||
[min_rawdata] [decimal](15, 3) NULL,
|
||||
[max_rawdata] [decimal](15, 3) NULL,
|
||||
[kwh_result] [decimal](15, 3) NULL,
|
||||
[avg_rawdata] [decimal](15, 3) NULL,
|
||||
[sum_rawdata] [decimal](15, 3) NULL,
|
||||
[is_complete] [tinyint] NULL,
|
||||
[repeat_times] [int] NULL,
|
||||
[fail_reason] [nvarchar](max) NULL,
|
||||
[created_at] [datetime] NULL,
|
||||
[updated_at] [datetime] NULL,
|
||||
CONSTRAINT [PK_archive_electric_meter_day_{dbDateName}] PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[device_number] ASC,
|
||||
[point] ASC,
|
||||
[start_timestamp] ASC
|
||||
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
|
||||
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
|
||||
|
||||
ALTER TABLE [dbo].[archive_electric_meter_day_{dbDateName}] ADD CONSTRAINT [DF_archive_electric_meter_day_{dbDateName}_repeat_times] DEFAULT ((0)) FOR [repeat_times]
|
||||
|
||||
ALTER TABLE [dbo].[archive_electric_meter_day_{dbDateName}] ADD CONSTRAINT [DF_archive_electric_meter_day_{dbDateName}_created_at] DEFAULT (getdate()) FOR [created_at]
|
||||
|
||||
ALTER TABLE [dbo].[archive_electric_meter_day_{dbDateName}] ADD CONSTRAINT [DF_archive_electric_meter_day_{dbDateName}_updated_at] DEFAULT (NULL) FOR [updated_at]
|
||||
|
||||
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否完成,0:未完成 1:完成' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'archive_electric_meter_day_{dbDateName}', @level2type=N'COLUMN',@level2name=N'is_complete'
|
||||
|
||||
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'重複次數' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'archive_electric_meter_day_{dbDateName}', @level2type=N'COLUMN',@level2name=N'repeat_times'
|
||||
|
||||
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'失敗原因' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'archive_electric_meter_day_{dbDateName}', @level2type=N'COLUMN',@level2name=N'fail_reason'
|
||||
END
|
||||
|
||||
UPDATE archive_electric_meter_day_{dbDateName} SET
|
||||
count_rawdata = @count_rawdata,
|
||||
min_rawdata = round(@min_rawdata, 2),
|
||||
max_rawdata = round(@max_rawdata, 2) ,
|
||||
kwh_result = round(@max_rawdata, 2) - round(@min_rawdata, 2),
|
||||
avg_rawdata = @avg_rawdata,
|
||||
sum_rawdata = @sum_rawdata,
|
||||
is_complete = @is_complete,
|
||||
repeat_times = @repeat_times,
|
||||
fail_reason = @fail_reason,
|
||||
updated_at = @updated_at
|
||||
WHERE device_number = @device_number
|
||||
AND point = @point
|
||||
AND start_timestamp = @start_timestamp;
|
||||
|
||||
IF @@ROWCOUNT = 0
|
||||
BEGIN
|
||||
INSERT INTO archive_electric_meter_day_{dbDateName} (
|
||||
device_number,
|
||||
point,
|
||||
start_timestamp,
|
||||
end_timestamp,
|
||||
count_rawdata,
|
||||
min_rawdata,
|
||||
max_rawdata,
|
||||
kwh_result,
|
||||
avg_rawdata,
|
||||
sum_rawdata,
|
||||
is_complete,
|
||||
repeat_times,
|
||||
fail_reason)
|
||||
VALUES (
|
||||
@device_number,
|
||||
@point,
|
||||
@start_timestamp,
|
||||
@end_timestamp,
|
||||
@count_rawdata,
|
||||
round(@min_rawdata, 2),
|
||||
round(@max_rawdata, 2) ,
|
||||
round(@max_rawdata, 2) - round(@min_rawdata, 2),
|
||||
@avg_rawdata,
|
||||
@sum_rawdata,
|
||||
@is_complete,
|
||||
@repeat_times,
|
||||
@fail_reason)
|
||||
END
|
||||
|
||||
COMMIT TRANSACTION;";
|
||||
|
||||
// logger.LogInformation($@"putint value NTPC_G6_EE_E4_B1F_CB3_WHT_N1 ={electricMeter.archive_lastDate} archive_lastActionDate={electricMeter.archive_lastActionDate}");
|
||||
|
||||
@ -1319,13 +1187,146 @@ namespace BackendWorkerService.Quartz.Jobs
|
||||
}
|
||||
|
||||
logger.LogInformation("run sql electericArchiveDayRawDatas.Count() = " + electericArchiveDayRawDatas.Count());
|
||||
await backgroundServiceRepository.ExecuteSql(sql, electericArchiveDayRawDatas);
|
||||
//明志 沒有mssql
|
||||
|
||||
|
||||
foreach (var row in electericArchiveDayRawDatas)
|
||||
{
|
||||
row.TryGetValue("@start_timestamp", out var yyyymmData);
|
||||
dbDateName = System.DateTime.Parse(yyyymmData.ToString()).ToString("yyyyMM");
|
||||
var mySql = $@" SET FOREIGN_KEY_CHECKS = 1;
|
||||
UPDATE archive_electric_meter_day_{dbDateName} SET
|
||||
count_rawdata = @count_rawdata,
|
||||
min_rawdata = round(@min_rawdata, 2),
|
||||
max_rawdata = round(@max_rawdata, 2),
|
||||
kwh_result = round(@max_rawdata, 2) - round(@min_rawdata, 2),
|
||||
avg_rawdata = @avg_rawdata,
|
||||
sum_rawdata = @sum_rawdata,
|
||||
is_complete = @is_complete,
|
||||
repeat_times = @repeat_times,
|
||||
fail_reason = @fail_reason,
|
||||
updated_at = @updated_at
|
||||
WHERE device_number = @device_number
|
||||
AND point = @point
|
||||
AND start_timestamp = @start_timestamp;
|
||||
|
||||
INSERT INTO archive_electric_meter_day_{dbDateName} (
|
||||
device_number, point,
|
||||
start_timestamp, end_timestamp,
|
||||
count_rawdata, min_rawdata,
|
||||
max_rawdata, kwh_result,
|
||||
avg_rawdata, sum_rawdata,
|
||||
is_complete, repeat_times,
|
||||
fail_reason, updated_at)
|
||||
SELECT
|
||||
@device_number, @point,
|
||||
@start_timestamp, @end_timestamp,
|
||||
@count_rawdata,
|
||||
round(@min_rawdata, 2),
|
||||
round(@max_rawdata, 2) ,
|
||||
round(@max_rawdata, 2) - round(@min_rawdata, 2),
|
||||
@avg_rawdata, @sum_rawdata,
|
||||
@is_complete, @repeat_times,
|
||||
@fail_reason, @updated_at
|
||||
WHERE ROW_COUNT() = 0;
|
||||
|
||||
update device set archive_lastDate = @start_timestamp, archive_lastActionDate = @updated_at
|
||||
where device_number = @device_number;"; //archive_lastDate 前次完成時間 ,archive_lastActionDate 本次作業時間
|
||||
await backgroundServiceRepository.ExecuteSql(mySql, electericArchiveDayRawDatas);
|
||||
}
|
||||
#region 明志 沒有mssql
|
||||
//if (!string.IsNullOrEmpty(saveToMSDB) && saveToMSDB == "1")
|
||||
//{
|
||||
// await backgroundServiceMsSqlRepository.ExecuteSql(mySql, electericArchiveDayRawDatas);
|
||||
//}
|
||||
//var msSql = $@"BEGIN TRANSACTION;
|
||||
// IF OBJECT_ID(N'dbo.archive_electric_meter_day_{dbDateName}', N'U') is null
|
||||
// BEGIN
|
||||
// CREATE TABLE [dbo].[archive_electric_meter_day_{dbDateName}](
|
||||
// [device_number] [varchar](50) NOT NULL,
|
||||
// [point] [varchar](20) NOT NULL,
|
||||
// [start_timestamp] [datetime] NOT NULL,
|
||||
// [end_timestamp] [datetime] NULL,
|
||||
// [count_rawdata] [int] NULL,
|
||||
// [min_rawdata] [decimal](15, 3) NULL,
|
||||
// [max_rawdata] [decimal](15, 3) NULL,
|
||||
// [kwh_result] [decimal](15, 3) NULL,
|
||||
// [avg_rawdata] [decimal](15, 3) NULL,
|
||||
// [sum_rawdata] [decimal](15, 3) NULL,
|
||||
// [is_complete] [tinyint] NULL,
|
||||
// [repeat_times] [int] NULL,
|
||||
// [fail_reason] [nvarchar](max) NULL,
|
||||
// [created_at] [datetime] NULL,
|
||||
// [updated_at] [datetime] NULL,
|
||||
// CONSTRAINT [PK_archive_electric_meter_day_{dbDateName}] PRIMARY KEY CLUSTERED
|
||||
// (
|
||||
// [device_number] ASC,
|
||||
// [point] ASC,
|
||||
// [start_timestamp] ASC
|
||||
// )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
|
||||
// ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
|
||||
|
||||
// ALTER TABLE [dbo].[archive_electric_meter_day_{dbDateName}] ADD CONSTRAINT [DF_archive_electric_meter_day_{dbDateName}_repeat_times] DEFAULT ((0)) FOR [repeat_times]
|
||||
|
||||
// ALTER TABLE [dbo].[archive_electric_meter_day_{dbDateName}] ADD CONSTRAINT [DF_archive_electric_meter_day_{dbDateName}_created_at] DEFAULT (getdate()) FOR [created_at]
|
||||
|
||||
// ALTER TABLE [dbo].[archive_electric_meter_day_{dbDateName}] ADD CONSTRAINT [DF_archive_electric_meter_day_{dbDateName}_updated_at] DEFAULT (NULL) FOR [updated_at]
|
||||
|
||||
// EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否完成,0:未完成 1:完成' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'archive_electric_meter_day_{dbDateName}', @level2type=N'COLUMN',@level2name=N'is_complete'
|
||||
|
||||
// EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'重複次數' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'archive_electric_meter_day_{dbDateName}', @level2type=N'COLUMN',@level2name=N'repeat_times'
|
||||
|
||||
// EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'失敗原因' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'archive_electric_meter_day_{dbDateName}', @level2type=N'COLUMN',@level2name=N'fail_reason'
|
||||
// END
|
||||
|
||||
// UPDATE archive_electric_meter_day_{dbDateName} SET
|
||||
// count_rawdata = @count_rawdata,
|
||||
// min_rawdata = round(@min_rawdata, 2),
|
||||
// max_rawdata = round(@max_rawdata, 2) ,
|
||||
// kwh_result = round(@max_rawdata, 2) - round(@min_rawdata, 2),
|
||||
// avg_rawdata = @avg_rawdata,
|
||||
// sum_rawdata = @sum_rawdata,
|
||||
// is_complete = @is_complete,
|
||||
// repeat_times = @repeat_times,
|
||||
// fail_reason = @fail_reason,
|
||||
// updated_at = @updated_at
|
||||
// WHERE device_number = @device_number
|
||||
// AND point = @point
|
||||
// AND start_timestamp = @start_timestamp;
|
||||
|
||||
// IF @@ROWCOUNT = 0
|
||||
// BEGIN
|
||||
// INSERT INTO archive_electric_meter_day_{dbDateName} (
|
||||
// device_number,
|
||||
// point,
|
||||
// start_timestamp,
|
||||
// end_timestamp,
|
||||
// count_rawdata,
|
||||
// min_rawdata,
|
||||
// max_rawdata,
|
||||
// kwh_result,
|
||||
// avg_rawdata,
|
||||
// sum_rawdata,
|
||||
// is_complete,
|
||||
// repeat_times,
|
||||
// fail_reason)
|
||||
// VALUES (
|
||||
// @device_number,
|
||||
// @point,
|
||||
// @start_timestamp,
|
||||
// @end_timestamp,
|
||||
// @count_rawdata,
|
||||
// round(@min_rawdata, 2),
|
||||
// round(@max_rawdata, 2) ,
|
||||
// round(@max_rawdata, 2) - round(@min_rawdata, 2),
|
||||
// @avg_rawdata,
|
||||
// @sum_rawdata,
|
||||
// @is_complete,
|
||||
// @repeat_times,
|
||||
// @fail_reason)
|
||||
// END
|
||||
|
||||
// COMMIT TRANSACTION;";
|
||||
#endregion
|
||||
}
|
||||
if (waterArchiveDayRawDatas.Count() > 0)
|
||||
{
|
||||
|
@ -1057,6 +1057,10 @@ namespace BackendWorkerService.Services.Implement
|
||||
archiveDayRawData.Add("@sum_rawdata", 0);
|
||||
archiveDayRawData.Add("@updated_at", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
||||
|
||||
//object vv = null;
|
||||
//archiveDayRawData.TryGetValue("@start_timestamp",out vv).ToString();
|
||||
//var cc = vv.ToString();
|
||||
|
||||
resultArchiveDayRawDatas.Add(archiveDayRawData);
|
||||
if (!dicError.ContainsKey(deviceNumberPoint.DeviceNumber))
|
||||
{
|
||||
|
@ -21,14 +21,14 @@
|
||||
},
|
||||
"DBConfig": {
|
||||
"MySqlDBConfig": {
|
||||
"Server": "FYlY+w0XDIz+jmF2rlZWJw==", //0.201
|
||||
"Port": "js2LutKe+rdjzdxMPQUrvQ==",
|
||||
"Server": "CYGthbCeGtAXT4s1NOSJHQ==", //0.132
|
||||
"Port": "mkF51jVbg40V5K5eTh2Ckw==",
|
||||
//"Database": "VJB2XC+lAtzuHObDGMVOAA==", //30
|
||||
//"Database": "IgYBsgG2VLKKxFb64j7LOA==", //wsp
|
||||
//"Database": "7gWfmZ28HGIJZbxEbK+0yg==", //tpe_dome_dome
|
||||
//"Database": "siTUcDaC/g2yGTMFWD72Kg==", //tpe_dome_hotel
|
||||
//"Database": "Rq7Gn4x6LwBvVtl7GY8LbA==", //mcut
|
||||
"Database": "j9LOmjFh2/9PpuwnVB8ugqnKdBDJHx1AAT7aTWeh37E=", //ibms_mcut_online
|
||||
"Database": "XZ2fOBnta9kdVGEb7y92cg==", //ibms_mcut
|
||||
"Root": "SzdxEgaJJ7tcTCrUl2zKsA==",
|
||||
"Password": "FVAPxztxpY4gJJKQ/se4bQ=="
|
||||
},
|
||||
|
@ -9,7 +9,7 @@
|
||||
connectionString="Data Source=192.168.0.201:33306;Initial Catalog=bims_mitsubishi;Persist Security Info=True;User ID=bims;Password=mjmdev_BIMS2022"
|
||||
providerName="MySql.Data.MySqlClient" />-->
|
||||
|
||||
<add name="dbConStr" connectionString="server=192.168.0.201;user=bims;Database=bims_mitsubishi;Port=33306;password=mjmdev_BIMS2022;charset='utf8';pooling=true;sslmode=none;;Connection Timeout=6000" providerName="MySql.Data.MySqlClient" />
|
||||
<add name="dbConStr" connectionString="server=192.168.0.132;user=bims;Database=bimsibms;Port=3306;password=mjmdev_BIMS2022;charset='utf8';pooling=true;sslmode=none;;Connection Timeout=6000" providerName="MySql.Data.MySqlClient" />
|
||||
|
||||
</connectionStrings>
|
||||
</configuration>
|
Loading…
Reference in New Issue
Block a user