diff --git a/BackendWorkerService/Quartz/Jobs/ArchiveElectricMeterDayJob.cs b/BackendWorkerService/Quartz/Jobs/ArchiveElectricMeterDayJob.cs
index a49d9f2..e76d204 100644
--- a/BackendWorkerService/Quartz/Jobs/ArchiveElectricMeterDayJob.cs
+++ b/BackendWorkerService/Quartz/Jobs/ArchiveElectricMeterDayJob.cs
@@ -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,7 +1166,34 @@ namespace BackendWorkerService.Quartz.Jobs
if (electericArchiveDayRawDatas.Count() > 0)
{
- var sql = $@" SET FOREIGN_KEY_CHECKS = 1;
+ object vv = null;
+ electericArchiveDayRawDatas.Where(x => x.TryGetValue("@start_timestamp", out vv)).ToString();
+
+ // var lastMonth = electericArchiveDayRawDatas.Where( x => x.Where(z => z.))
+
+
+ // logger.LogInformation($@"putint value NTPC_G6_EE_E4_B1F_CB3_WHT_N1 ={electricMeter.archive_lastDate} archive_lastActionDate={electricMeter.archive_lastActionDate}");
+
+
+ //異常設備 update
+ string sql2 = string.Empty;
+ foreach (var kv in dicError)
+ {
+ sql2 += $@"update device set archive_lastDate = '{kv.Value}', archive_lastActionDate = now() where device_number = '{kv.Key}' ;";
+ }
+ if (!string.IsNullOrEmpty(sql2))
+ {
+ await backgroundServiceRepository.ExecuteSql(sql2);
+ }
+
+ logger.LogInformation("run sql electericArchiveDayRawDatas.Count() = " + electericArchiveDayRawDatas.Count());
+
+
+ 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),
@@ -1182,150 +1210,123 @@ namespace BackendWorkerService.Quartz.Jobs
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,
+ 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,
+ @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
+ @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 本次作業時間
-
- 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}");
-
-
- //異常設備 update
- string sql2 = string.Empty;
- foreach (var kv in dicError)
- {
- sql2 += $@"update device set archive_lastDate = '{kv.Value}', archive_lastActionDate = now() where device_number = '{kv.Key}' ;";
+ where device_number = @device_number;"; //archive_lastDate 前次完成時間 ,archive_lastActionDate 本次作業時間
+ await backgroundServiceRepository.ExecuteSql(mySql, electericArchiveDayRawDatas);
}
- if (!string.IsNullOrEmpty(sql2))
- {
- await backgroundServiceRepository.ExecuteSql(sql2);
- }
-
- logger.LogInformation("run sql electericArchiveDayRawDatas.Count() = " + electericArchiveDayRawDatas.Count());
- await backgroundServiceRepository.ExecuteSql(sql, electericArchiveDayRawDatas);
- //明志 沒有mssql
+ #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)
{
diff --git a/BackendWorkerService/Services/Implement/ProcEletricMeterService.cs b/BackendWorkerService/Services/Implement/ProcEletricMeterService.cs
index aa43534..9971416 100644
--- a/BackendWorkerService/Services/Implement/ProcEletricMeterService.cs
+++ b/BackendWorkerService/Services/Implement/ProcEletricMeterService.cs
@@ -1057,11 +1057,15 @@ 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))
{
dicError.Add(deviceNumberPoint.DeviceNumber, day.ToString("yyyy-MM-dd")); //記錄異常設備與日期
- }
+ }
}
if (archiveJsonResult.ContainsKey("obj")) //表示可以讀取到內容
diff --git a/BackendWorkerService/appsettings.Development.json b/BackendWorkerService/appsettings.Development.json
index 8f5c0e0..398625c 100644
--- a/BackendWorkerService/appsettings.Development.json
+++ b/BackendWorkerService/appsettings.Development.json
@@ -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=="
},
diff --git a/z01_WinAPP/App.config b/z01_WinAPP/App.config
index 0d579f1..825cc94 100644
--- a/z01_WinAPP/App.config
+++ b/z01_WinAPP/App.config
@@ -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" />-->
-
+
\ No newline at end of file