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, ); 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..8002de6 --- /dev/null +++ b/libs/common/src/sql/procedures/fact_space_energy_consumed/fact_monthly_space_energy_consumed_procedure.sql @@ -0,0 +1,20 @@ +WITH params AS ( + SELECT + 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 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-daily" AS A +JOIN public.device AS B + ON A.device_uuid::TEXT = B."uuid"::TEXT +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; 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