Merge branch 'master' of https://gitea.mjm-staging.developers-homelab.net/BIMS/BIMS
This commit is contained in:
		
						commit
						ed35146547
					
				@ -322,7 +322,7 @@ namespace BackendWorkerService.Quartz.Jobs
 | 
			
		||||
                                            WHERE ROW_COUNT() = 0;";
 | 
			
		||||
 | 
			
		||||
                                var mySql = $@"BEGIN TRANSACTION;
 | 
			
		||||
                                            IF OBJECT_ID(N'dbo.archive_water_meter_day_{dbDateName}', N'U') is null
 | 
			
		||||
                                            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,
 | 
			
		||||
@ -414,7 +414,25 @@ namespace BackendWorkerService.Quartz.Jobs
 | 
			
		||||
                            if (waterArchiveDayRawDatas.Count() > 0)
 | 
			
		||||
                            {
 | 
			
		||||
                                var sql = $@"
 | 
			
		||||
                                            UPDATE archive_water_meter_day SET 
 | 
			
		||||
                                            CREATE TABLE IF NOT EXISTS `archive_water_meter_day_{dbDateName}`  (
 | 
			
		||||
                                              `device_number` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
 | 
			
		||||
                                              `point` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
 | 
			
		||||
                                              `start_timestamp` datetime(6) NOT NULL,
 | 
			
		||||
                                              `end_timestamp` datetime(6) NULL DEFAULT NULL,
 | 
			
		||||
                                              `count_rawdata` int(11) NULL DEFAULT NULL,
 | 
			
		||||
                                              `min_rawdata` decimal(15, 3) NULL DEFAULT NULL,
 | 
			
		||||
                                              `max_rawdata` decimal(15, 3) NULL DEFAULT NULL,
 | 
			
		||||
                                              `avg_rawdata` decimal(15, 3) NULL DEFAULT NULL,
 | 
			
		||||
                                              `sum_rawdata` decimal(15, 3) NULL DEFAULT NULL,
 | 
			
		||||
                                              `is_complete` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '是否完成,0:未完成 1:完成',
 | 
			
		||||
                                              `repeat_times` int(11) NULL DEFAULT 0 COMMENT '重複次數',
 | 
			
		||||
                                              `fail_reason` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '失敗原因',
 | 
			
		||||
                                              `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
 | 
			
		||||
                                              `updated_at` datetime(6) NULL DEFAULT NULL,
 | 
			
		||||
                                              PRIMARY KEY (`device_number`, `point`, `start_timestamp`) USING BTREE
 | 
			
		||||
                                            ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
 | 
			
		||||
 | 
			
		||||
                                            UPDATE archive_water_meter_day_{dbDateName} SET 
 | 
			
		||||
                                                    count_rawdata = @count_rawdata,
 | 
			
		||||
                                                    min_rawdata = @min_rawdata,
 | 
			
		||||
                                                    max_rawdata = @max_rawdata,
 | 
			
		||||
@ -429,7 +447,7 @@ namespace BackendWorkerService.Quartz.Jobs
 | 
			
		||||
                                                    AND start_timestamp = @start_timestamp;
 | 
			
		||||
 | 
			
		||||
                                            
 | 
			
		||||
                                            INSERT INTO archive_water_meter_day (
 | 
			
		||||
                                            INSERT INTO archive_water_meter_day_{dbDateName} (
 | 
			
		||||
                                                device_number,
 | 
			
		||||
                                                point,
 | 
			
		||||
                                                start_timestamp,
 | 
			
		||||
@ -496,7 +514,7 @@ namespace BackendWorkerService.Quartz.Jobs
 | 
			
		||||
                                                EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'失敗原因' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'archive_water_meter_day_{dbDateName}', @level2type=N'COLUMN',@level2name=N'fail_reason'
 | 
			
		||||
                                            END
 | 
			
		||||
 | 
			
		||||
                                            UPDATE archive_water_meter_day SET 
 | 
			
		||||
                                            UPDATE archive_water_meter_day_{dbDateName} SET 
 | 
			
		||||
                                                    count_rawdata = @count_rawdata,
 | 
			
		||||
                                                    min_rawdata = @min_rawdata,
 | 
			
		||||
                                                    max_rawdata = @max_rawdata,
 | 
			
		||||
@ -512,7 +530,7 @@ namespace BackendWorkerService.Quartz.Jobs
 | 
			
		||||
 | 
			
		||||
                                            IF @@ROWCOUNT = 0
 | 
			
		||||
                                            BEGIN
 | 
			
		||||
                                                INSERT INTO archive_water_meter_day (
 | 
			
		||||
                                                INSERT INTO archive_water_meter_day_{dbDateName} (
 | 
			
		||||
                                                    device_number,
 | 
			
		||||
                                                    point,
 | 
			
		||||
                                                    start_timestamp,
 | 
			
		||||
 | 
			
		||||
@ -74,6 +74,8 @@ namespace FrontendWebApi.ApiControllers
 | 
			
		||||
                string sqlWhere = "";
 | 
			
		||||
                string sqlGroup = "";
 | 
			
		||||
                string sqlAvgRawData = "";
 | 
			
		||||
                string dbDateName = startTime.Split("-")[0].ToString().PadLeft(4, '0') + startTime.Split("-")[1].ToString().PadLeft(2, '0');
 | 
			
		||||
 | 
			
		||||
                if (input.floor_tag.Count > 0)
 | 
			
		||||
                    sqlWhere = $@" and substring_index(substring_index(device_number, '_', 3), '_', -1) in @floor_tag ";
 | 
			
		||||
 | 
			
		||||
@ -85,7 +87,7 @@ namespace FrontendWebApi.ApiControllers
 | 
			
		||||
                else
 | 
			
		||||
                    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 table = input.tableType == "year" ? "archive_electric_meter_month" : "archive_electric_meter_" + input.tableType + (input.tableType == "day" ? "_" + dbDateName : "");
 | 
			
		||||
                var dateFormat = input.tableType == "day" || input.tableType == "week" ? "%Y-%m-%d" : input.tableType == "month" ? "%Y-%m" : input.tableType == "year" ? "%Y" : null;
 | 
			
		||||
                var aemmEndDate = input.tableType == "year" ? $"year(DATE_ADD(fd.date, INTERVAL +1 {input.tableType}))" : $"DATE_ADD(fd.date, INTERVAL +1 {input.tableType})";
 | 
			
		||||
                var aemmStaDate = input.tableType == "year" ? "year(fd.date)" : "fd.date";
 | 
			
		||||
@ -198,6 +200,7 @@ namespace FrontendWebApi.ApiControllers
 | 
			
		||||
                                : input.tableType == "month" ? (Int32.Parse(input.startTime.Split("-")[0]) + 1) + "-01-01"
 | 
			
		||||
                                : input.tableType == "year" ? (Int32.Parse(input.endTime) + 1).ToString() + "-01-01"
 | 
			
		||||
                                : null;
 | 
			
		||||
                string dbDateName = startTime.Split("-")[0].ToString().PadLeft(4, '0') + startTime.Split("-")[1].ToString().PadLeft(2, '0');
 | 
			
		||||
                string sqlWhere = "";
 | 
			
		||||
                string sqlGroup = "";
 | 
			
		||||
                string sqlAvgRawData = "";
 | 
			
		||||
@ -212,7 +215,7 @@ namespace FrontendWebApi.ApiControllers
 | 
			
		||||
                else
 | 
			
		||||
                    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 table = input.tableType == "year" ? "archive_electric_meter_month" : "archive_electric_meter_" + input.tableType + (input.tableType == "day" ? "_" + dbDateName : "");
 | 
			
		||||
                var dateFormat = input.tableType == "day" || input.tableType == "week" ? "%Y-%m-%d" : input.tableType == "month" ? "%Y-%m" : input.tableType == "year" ? "%Y" : null;
 | 
			
		||||
                var sql = $@"set @i = -1;
 | 
			
		||||
                            select fd.device_number, aemm.avg_rawdata, DATE_FORMAT(fd.date, @dateFormat) as timestamp
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user