mirror of
https://github.com/SyncrowIOT/backend.git
synced 2025-11-26 07:24:55 +00:00
Merge pull request #356 from SyncrowIOT/DATA-energy-consummed-space=procedure
DATA-space_energy_consumed_procedure
This commit is contained in:
@ -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<void> {
|
||||
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,
|
||||
);
|
||||
|
||||
@ -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;
|
||||
@ -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;
|
||||
Reference in New Issue
Block a user