From ccba81ef1f5fe6adb80cd2d8c69d0a583c484425 Mon Sep 17 00:00:00 2001 From: Dona Maria Absi <49731027+DonaAbsi@users.noreply.github.com> Date: Thu, 1 May 2025 12:21:40 +0300 Subject: [PATCH 1/7] space_energy_consumed_procedure --- ...aily_device_energy_consumed_procedure.sql} | 0 ...urly_device_energy_consumed_procedure.sql} | 0 ...thly_device_energy_consumed_procedure.sql} | 0 ...onthly_space_energy_consumed_procedure.sql | 22 +++++++++++++++++++ .../fact_daily_device_energy_consumed.sql} | 0 .../fact_daily_space_energy_consumed.sql | 11 ++++++++++ .../fact_hourly_device_active_energy.sql} | 0 7 files changed, 33 insertions(+) rename libs/common/src/sql/procedures/{fact_energy_consumed/fact_daily_energy_consumed_procedure.sql => fact_device_energy_consumed/fact_daily_device_energy_consumed_procedure.sql} (100%) rename libs/common/src/sql/procedures/{fact_energy_consumed/fact_hourly_energy_consumed_procedure.sql => fact_device_energy_consumed/fact_hourly_device_energy_consumed_procedure.sql} (100%) rename libs/common/src/sql/procedures/{fact_energy_consumed/fact_monthly_energy_consumed_procedure.sql => fact_device_energy_consumed/fact_monthly_device_energy_consumed_procedure.sql} (100%) create mode 100644 libs/common/src/sql/procedures/fact_space_energy_consumed/fact_monthly_space_energy_consumed_procedure.sql rename libs/common/src/sql/queries/{fact_daily_energy_consumed/fact_daily_energy_consumed.sql => fact_daily_device_energy_consumed/fact_daily_device_energy_consumed.sql} (100%) create mode 100644 libs/common/src/sql/queries/fact_daily_space_energy_consumed/fact_daily_space_energy_consumed.sql rename libs/common/src/sql/queries/{fact_hourly_active_energy/fact_hourly_active_energy.sql => fact_hourly_device_active_energy/fact_hourly_device_active_energy.sql} (100%) diff --git a/libs/common/src/sql/procedures/fact_energy_consumed/fact_daily_energy_consumed_procedure.sql b/libs/common/src/sql/procedures/fact_device_energy_consumed/fact_daily_device_energy_consumed_procedure.sql similarity index 100% rename from libs/common/src/sql/procedures/fact_energy_consumed/fact_daily_energy_consumed_procedure.sql rename to libs/common/src/sql/procedures/fact_device_energy_consumed/fact_daily_device_energy_consumed_procedure.sql diff --git a/libs/common/src/sql/procedures/fact_energy_consumed/fact_hourly_energy_consumed_procedure.sql b/libs/common/src/sql/procedures/fact_device_energy_consumed/fact_hourly_device_energy_consumed_procedure.sql similarity index 100% rename from libs/common/src/sql/procedures/fact_energy_consumed/fact_hourly_energy_consumed_procedure.sql rename to libs/common/src/sql/procedures/fact_device_energy_consumed/fact_hourly_device_energy_consumed_procedure.sql diff --git a/libs/common/src/sql/procedures/fact_energy_consumed/fact_monthly_energy_consumed_procedure.sql b/libs/common/src/sql/procedures/fact_device_energy_consumed/fact_monthly_device_energy_consumed_procedure.sql similarity index 100% rename from libs/common/src/sql/procedures/fact_energy_consumed/fact_monthly_energy_consumed_procedure.sql rename to libs/common/src/sql/procedures/fact_device_energy_consumed/fact_monthly_device_energy_consumed_procedure.sql diff --git a/libs/common/src/sql/procedures/fact_space_energy_consumed/fact_monthly_space_energy_consumed_procedure.sql b/libs/common/src/sql/procedures/fact_space_energy_consumed/fact_monthly_space_energy_consumed_procedure.sql new file mode 100644 index 0000000..b695fe2 --- /dev/null +++ b/libs/common/src/sql/procedures/fact_space_energy_consumed/fact_monthly_space_energy_consumed_procedure.sql @@ -0,0 +1,22 @@ +WITH params AS ( + SELECT + NULLIF($1, '')::uuid AS space_id, + NULLIF($2, '')::text AS start_month, -- Format: 'MM-YYYY' + NULLIF($3, '')::text AS end_month +) + +SELECT + B.space_device_uuid AS space_id, + A.month, + SUM(A.energy_consumed_kW::numeric) AS total_energy_consumed_KW, + SUM(A.energy_consumed_A::numeric) AS total_energy_consumed_A, + SUM(A.energy_consumed_B::numeric) AS total_energy_consumed_B, + SUM(A.energy_consumed_C::numeric) AS total_energy_consumed_C +FROM public."power-clamp-energy-consumed-monthly" AS A +JOIN public.device AS B + ON A.device_uuid::TEXT = B."uuid"::TEXT +JOIN params P ON TRUE +WHERE B.space_device_uuid = P.space_id + AND (P.start_month IS NULL OR TO_DATE(A.month, 'MM-YYYY') >= TO_DATE(P.start_month, 'MM-YYYY')) + AND (P.end_month IS NULL OR TO_DATE(A.month, 'MM-YYYY') <= TO_DATE(P.end_month, 'MM-YYYY')) +GROUP BY 1, 2; diff --git a/libs/common/src/sql/queries/fact_daily_energy_consumed/fact_daily_energy_consumed.sql b/libs/common/src/sql/queries/fact_daily_device_energy_consumed/fact_daily_device_energy_consumed.sql similarity index 100% rename from libs/common/src/sql/queries/fact_daily_energy_consumed/fact_daily_energy_consumed.sql rename to libs/common/src/sql/queries/fact_daily_device_energy_consumed/fact_daily_device_energy_consumed.sql diff --git a/libs/common/src/sql/queries/fact_daily_space_energy_consumed/fact_daily_space_energy_consumed.sql b/libs/common/src/sql/queries/fact_daily_space_energy_consumed/fact_daily_space_energy_consumed.sql new file mode 100644 index 0000000..d5a9910 --- /dev/null +++ b/libs/common/src/sql/queries/fact_daily_space_energy_consumed/fact_daily_space_energy_consumed.sql @@ -0,0 +1,11 @@ +SELECT + B.space_device_uuid AS space_id, + A."date", + SUM(A.energy_consumed_kW::numeric) AS total_energy_consumed_KW, + SUM(A.energy_consumed_A::numeric) AS total_energy_consumed_A, + SUM(A.energy_consumed_B::numeric) AS total_energy_consumed_B, + SUM(A.energy_consumed_C::numeric) AS total_energy_consumed_C +FROM public."power-clamp-energy-consumed-daily" AS A -- I want to change the source table in the future. +JOIN public.device AS B + ON A.device_uuid::TEXT = B."uuid"::TEXT +GROUP BY 1, 2; \ No newline at end of file diff --git a/libs/common/src/sql/queries/fact_hourly_active_energy/fact_hourly_active_energy.sql b/libs/common/src/sql/queries/fact_hourly_device_active_energy/fact_hourly_device_active_energy.sql similarity index 100% rename from libs/common/src/sql/queries/fact_hourly_active_energy/fact_hourly_active_energy.sql rename to libs/common/src/sql/queries/fact_hourly_device_active_energy/fact_hourly_device_active_energy.sql From cc755e5640ca75b6f60835acdb9199fc92d93baf Mon Sep 17 00:00:00 2001 From: Dona Maria Absi <49731027+DonaAbsi@users.noreply.github.com> Date: Thu, 1 May 2025 14:25:09 +0300 Subject: [PATCH 2/7] adjusted date param --- .../fact_monthly_space_energy_consumed_procedure.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/common/src/sql/procedures/fact_space_energy_consumed/fact_monthly_space_energy_consumed_procedure.sql b/libs/common/src/sql/procedures/fact_space_energy_consumed/fact_monthly_space_energy_consumed_procedure.sql index b695fe2..6349b12 100644 --- a/libs/common/src/sql/procedures/fact_space_energy_consumed/fact_monthly_space_energy_consumed_procedure.sql +++ b/libs/common/src/sql/procedures/fact_space_energy_consumed/fact_monthly_space_energy_consumed_procedure.sql @@ -1,8 +1,8 @@ WITH params AS ( SELECT NULLIF($1, '')::uuid AS space_id, - NULLIF($2, '')::text AS start_month, -- Format: 'MM-YYYY' - NULLIF($3, '')::text AS end_month + TO_CHAR(TO_DATE(NULLIF($2, ''), 'DD-MM-YYYY'), 'MM-YYYY') AS start_month, + TO_CHAR(TO_DATE(NULLIF($3, ''), 'DD-MM-YYYY'), 'MM-YYYY') AS end_month ) SELECT From e365cb0b5064a2d71eba6b492b589bd98b1b99f0 Mon Sep 17 00:00:00 2001 From: Dona Maria Absi <49731027+DonaAbsi@users.noreply.github.com> Date: Thu, 1 May 2025 14:54:27 +0300 Subject: [PATCH 3/7] params fixes --- ...t_monthly_space_energy_consumed_procedure.sql | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/libs/common/src/sql/procedures/fact_space_energy_consumed/fact_monthly_space_energy_consumed_procedure.sql b/libs/common/src/sql/procedures/fact_space_energy_consumed/fact_monthly_space_energy_consumed_procedure.sql index 6349b12..4b5591f 100644 --- a/libs/common/src/sql/procedures/fact_space_energy_consumed/fact_monthly_space_energy_consumed_procedure.sql +++ b/libs/common/src/sql/procedures/fact_space_energy_consumed/fact_monthly_space_energy_consumed_procedure.sql @@ -1,22 +1,22 @@ WITH params AS ( SELECT - NULLIF($1, '')::uuid AS space_id, - TO_CHAR(TO_DATE(NULLIF($2, ''), 'DD-MM-YYYY'), 'MM-YYYY') AS start_month, - TO_CHAR(TO_DATE(NULLIF($3, ''), 'DD-MM-YYYY'), 'MM-YYYY') AS end_month + TO_DATE(NULLIF($2, ''), 'DD-MM-YYYY') AS start_date, + TO_DATE(NULLIF($3, ''), 'DD-MM-YYYY') AS end_date, + string_to_array(NULLIF($4, ''), ',') AS device_ids ) SELECT B.space_device_uuid AS space_id, - A.month, + TO_CHAR(A.date, 'MM-YYYY') AS month, SUM(A.energy_consumed_kW::numeric) AS total_energy_consumed_KW, SUM(A.energy_consumed_A::numeric) AS total_energy_consumed_A, SUM(A.energy_consumed_B::numeric) AS total_energy_consumed_B, SUM(A.energy_consumed_C::numeric) AS total_energy_consumed_C -FROM public."power-clamp-energy-consumed-monthly" AS A +FROM public."power-clamp-energy-consumed-daily" AS A JOIN public.device AS B ON A.device_uuid::TEXT = B."uuid"::TEXT JOIN params P ON TRUE -WHERE B.space_device_uuid = P.space_id - AND (P.start_month IS NULL OR TO_DATE(A.month, 'MM-YYYY') >= TO_DATE(P.start_month, 'MM-YYYY')) - AND (P.end_month IS NULL OR TO_DATE(A.month, 'MM-YYYY') <= TO_DATE(P.end_month, 'MM-YYYY')) +WHERE B.device_id = ANY(P.device_ids) + AND (P.start_date IS NULL OR A.date >= P.start_date) + AND (P.end_date IS NULL OR A.date <= P.end_date) GROUP BY 1, 2; From 796f5c6c08d5211d1410acf65da4d04f8f53db37 Mon Sep 17 00:00:00 2001 From: Dona Maria Absi <49731027+DonaAbsi@users.noreply.github.com> Date: Thu, 1 May 2025 15:02:35 +0300 Subject: [PATCH 4/7] remove space_id --- .../fact_monthly_space_energy_consumed_procedure.sql | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libs/common/src/sql/procedures/fact_space_energy_consumed/fact_monthly_space_energy_consumed_procedure.sql b/libs/common/src/sql/procedures/fact_space_energy_consumed/fact_monthly_space_energy_consumed_procedure.sql index 4b5591f..1793d63 100644 --- a/libs/common/src/sql/procedures/fact_space_energy_consumed/fact_monthly_space_energy_consumed_procedure.sql +++ b/libs/common/src/sql/procedures/fact_space_energy_consumed/fact_monthly_space_energy_consumed_procedure.sql @@ -5,9 +5,7 @@ WITH params AS ( string_to_array(NULLIF($4, ''), ',') AS device_ids ) -SELECT - B.space_device_uuid AS space_id, - TO_CHAR(A.date, 'MM-YYYY') AS month, +SELECT TO_CHAR(A.date, 'MM-YYYY') AS month, SUM(A.energy_consumed_kW::numeric) AS total_energy_consumed_KW, SUM(A.energy_consumed_A::numeric) AS total_energy_consumed_A, SUM(A.energy_consumed_B::numeric) AS total_energy_consumed_B, From 46325def06a79bf71e6102e4cdb38fa9d02eb13f Mon Sep 17 00:00:00 2001 From: Dona Maria Absi <49731027+DonaAbsi@users.noreply.github.com> Date: Thu, 1 May 2025 15:16:11 +0300 Subject: [PATCH 5/7] fixed device_id --- .../fact_monthly_space_energy_consumed_procedure.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/common/src/sql/procedures/fact_space_energy_consumed/fact_monthly_space_energy_consumed_procedure.sql b/libs/common/src/sql/procedures/fact_space_energy_consumed/fact_monthly_space_energy_consumed_procedure.sql index 1793d63..f83e471 100644 --- a/libs/common/src/sql/procedures/fact_space_energy_consumed/fact_monthly_space_energy_consumed_procedure.sql +++ b/libs/common/src/sql/procedures/fact_space_energy_consumed/fact_monthly_space_energy_consumed_procedure.sql @@ -14,7 +14,7 @@ FROM public."power-clamp-energy-consumed-daily" AS A JOIN public.device AS B ON A.device_uuid::TEXT = B."uuid"::TEXT JOIN params P ON TRUE -WHERE B.device_id = ANY(P.device_ids) +WHERE B."uuid"::TEXT = ANY(P.device_ids) AND (P.start_date IS NULL OR A.date >= P.start_date) AND (P.end_date IS NULL OR A.date <= P.end_date) GROUP BY 1, 2; From a12046eee2ab5019e3f68205c42bf11670d27d9a Mon Sep 17 00:00:00 2001 From: Dona Maria Absi <49731027+DonaAbsi@users.noreply.github.com> Date: Thu, 1 May 2025 15:19:24 +0300 Subject: [PATCH 6/7] grouping --- .../fact_monthly_space_energy_consumed_procedure.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/common/src/sql/procedures/fact_space_energy_consumed/fact_monthly_space_energy_consumed_procedure.sql b/libs/common/src/sql/procedures/fact_space_energy_consumed/fact_monthly_space_energy_consumed_procedure.sql index f83e471..8002de6 100644 --- a/libs/common/src/sql/procedures/fact_space_energy_consumed/fact_monthly_space_energy_consumed_procedure.sql +++ b/libs/common/src/sql/procedures/fact_space_energy_consumed/fact_monthly_space_energy_consumed_procedure.sql @@ -17,4 +17,4 @@ JOIN params P ON TRUE WHERE B."uuid"::TEXT = ANY(P.device_ids) AND (P.start_date IS NULL OR A.date >= P.start_date) AND (P.end_date IS NULL OR A.date <= P.end_date) -GROUP BY 1, 2; +GROUP BY 1; From aee6b8df696f702dab3bbf9131a78de47a0df354 Mon Sep 17 00:00:00 2001 From: faris Aljohari <83524184+farisaljohari@users.noreply.github.com> Date: Fri, 2 May 2025 01:57:12 +0300 Subject: [PATCH 7/7] refactor: update procedure names in PowerClampService for clarity --- .../helper/services/power.clamp.service.ts | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/libs/common/src/helper/services/power.clamp.service.ts b/libs/common/src/helper/services/power.clamp.service.ts index b0e852f..b61b804 100644 --- a/libs/common/src/helper/services/power.clamp.service.ts +++ b/libs/common/src/helper/services/power.clamp.service.ts @@ -22,21 +22,20 @@ export class PowerClampService { }) .replace('/', '-'); // MM-YYYY - await this.executeProcedure('fact_hourly_energy_consumed_procedure', [ - deviceUuid, - dateStr, - hour, - ]); + await this.executeProcedure( + 'fact_hourly_device_energy_consumed_procedure', + [deviceUuid, dateStr, hour], + ); - await this.executeProcedure('fact_daily_energy_consumed_procedure', [ - deviceUuid, - dateStr, - ]); + await this.executeProcedure( + 'fact_daily_device_energy_consumed_procedure', + [deviceUuid, dateStr], + ); - await this.executeProcedure('fact_monthly_energy_consumed_procedure', [ - deviceUuid, - monthYear, - ]); + await this.executeProcedure( + 'fact_monthly_device_energy_consumed_procedure', + [deviceUuid, monthYear], + ); } catch (err) { console.error('Failed to insert or update energy data:', err); throw err; @@ -49,11 +48,12 @@ export class PowerClampService { ): Promise { const query = this.loadQuery(procedureFileName); await this.dataSource.query(query, params); + console.log(`Procedure ${procedureFileName} executed successfully.`); } private loadQuery(fileName: string): string { return this.sqlLoader.loadQuery( - 'fact_energy_consumed', + 'fact_device_energy_consumed', fileName, SQL_PROCEDURES_PATH, );