From 93fb080c0155a89856da36dca07f9fc942c248fa Mon Sep 17 00:00:00 2001 From: dev02 Date: Mon, 15 May 2023 13:27:13 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=BE=8C=E7=AB=AF]=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=B0=B4=E9=9B=BB=E8=A1=A8=E5=88=97=E8=A1=A8=E5=B9=B4=E4=BB=BD?= =?UTF-8?q?=E5=95=8F=E9=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ApiControllers/HydroMeterController.cs | 16 ++++++++-------- FrontendWebApi/Models/HydroMeter.cs | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/FrontendWebApi/ApiControllers/HydroMeterController.cs b/FrontendWebApi/ApiControllers/HydroMeterController.cs index 1bb4bc3..898b491 100644 --- a/FrontendWebApi/ApiControllers/HydroMeterController.cs +++ b/FrontendWebApi/ApiControllers/HydroMeterController.cs @@ -73,11 +73,11 @@ namespace FrontendWebApi.ApiControllers if (input.tableType == "year") { - sqlGroup = $@" group by DATE_FORMAT(start_timestamp, @dateFormat), DATE_FORMAT(end_timestamp, @dateFormat), device_number "; - sqlAvgRawData = " round(avg(avg_rawdata), 2) as avg_rawdata"; + sqlGroup = $@" group by year(start_timestamp), year(end_timestamp), device_number "; + sqlAvgRawData = " round(avg(avg_rawdata), 2) as avg_rawdata, year(start_timestamp) as start_timestamp, year(end_timestamp) as end_timestamp "; } else - sqlAvgRawData = " round(avg_rawdata, 2) as avg_rawdata"; + sqlAvgRawData = " round(avg_rawdata, 2) as avg_rawdata, start_timestamp, end_timestamp "; var table = input.tableType == "year" ? "archive_electric_meter_day" : "archive_electric_meter_" + input.tableType; var dateFormat = input.tableType == "day" || input.tableType == "week" ? "%Y-%m-%d" : input.tableType == "month" ? "%Y-%m" : input.tableType == "year" ? "%Y" : null; @@ -101,7 +101,7 @@ namespace FrontendWebApi.ApiControllers ) ) fd left join ( - select device_number, {sqlAvgRawData}, start_timestamp, end_timestamp + select device_number, {sqlAvgRawData} from {table} where start_timestamp >= @startTime and end_timestamp < @endTime and point = 'KWH' and SUBSTRING_INDEX(device_number, '_', 1) = @building_tag {sqlWhere} {sqlGroup} @@ -192,11 +192,11 @@ namespace FrontendWebApi.ApiControllers if (input.tableType == "year") { - sqlGroup = $@" group by DATE_FORMAT(start_timestamp, @dateFormat), DATE_FORMAT(end_timestamp, @dateFormat), device_number "; - sqlAvgRawData = " round(avg(avg_rawdata), 2) as avg_rawdata"; + sqlGroup = $@" group by year(start_timestamp), year(end_timestamp), device_number "; + sqlAvgRawData = " round(avg(avg_rawdata), 2) as avg_rawdata, year(start_timestamp) as start_timestamp, year(end_timestamp) as end_timestamp "; } else - sqlAvgRawData = " round(avg_rawdata, 2) as avg_rawdata"; + sqlAvgRawData = " round(avg_rawdata, 2) as avg_rawdata, start_timestamp, end_timestamp "; var table = input.tableType == "year" ? "archive_water_meter_day" : "archive_water_meter_" + input.tableType; var dateFormat = input.tableType == "day" || input.tableType == "week" ? "%Y-%m-%d" : input.tableType == "month" ? "%Y-%m" : input.tableType == "year" ? "%Y" : null; @@ -220,7 +220,7 @@ namespace FrontendWebApi.ApiControllers ) ) fd left join ( - select device_number, {sqlAvgRawData}, start_timestamp, end_timestamp + select device_number, {sqlAvgRawData} from {table} where start_timestamp >= @startTime and end_timestamp < @endTime and point = 'RCV' and SUBSTRING_INDEX(device_number, '_', 1) = @building_tag {sqlWhere} {sqlGroup} diff --git a/FrontendWebApi/Models/HydroMeter.cs b/FrontendWebApi/Models/HydroMeter.cs index 774d0c9..7d9a582 100644 --- a/FrontendWebApi/Models/HydroMeter.cs +++ b/FrontendWebApi/Models/HydroMeter.cs @@ -10,7 +10,7 @@ namespace FrontendWebApi.Models public class HydroMeterInput { - public string tableType { get; set; } //day, week, month + public string tableType { get; set; } //day, week, month, year public string building_tag { get; set; } public List floor_tag { get; set; } public string startTime { get; set; }