mirror of
https://github.com/SyncrowIOT/backend.git
synced 2025-11-26 10:04:54 +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
|
.replace('/', '-'); // MM-YYYY
|
||||||
|
|
||||||
await this.executeProcedure('fact_hourly_energy_consumed_procedure', [
|
await this.executeProcedure(
|
||||||
deviceUuid,
|
'fact_hourly_device_energy_consumed_procedure',
|
||||||
dateStr,
|
[deviceUuid, dateStr, hour],
|
||||||
hour,
|
);
|
||||||
]);
|
|
||||||
|
|
||||||
await this.executeProcedure('fact_daily_energy_consumed_procedure', [
|
await this.executeProcedure(
|
||||||
deviceUuid,
|
'fact_daily_device_energy_consumed_procedure',
|
||||||
dateStr,
|
[deviceUuid, dateStr],
|
||||||
]);
|
);
|
||||||
|
|
||||||
await this.executeProcedure('fact_monthly_energy_consumed_procedure', [
|
await this.executeProcedure(
|
||||||
deviceUuid,
|
'fact_monthly_device_energy_consumed_procedure',
|
||||||
monthYear,
|
[deviceUuid, monthYear],
|
||||||
]);
|
);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error('Failed to insert or update energy data:', err);
|
console.error('Failed to insert or update energy data:', err);
|
||||||
throw err;
|
throw err;
|
||||||
@ -49,11 +48,12 @@ export class PowerClampService {
|
|||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
const query = this.loadQuery(procedureFileName);
|
const query = this.loadQuery(procedureFileName);
|
||||||
await this.dataSource.query(query, params);
|
await this.dataSource.query(query, params);
|
||||||
|
console.log(`Procedure ${procedureFileName} executed successfully.`);
|
||||||
}
|
}
|
||||||
|
|
||||||
private loadQuery(fileName: string): string {
|
private loadQuery(fileName: string): string {
|
||||||
return this.sqlLoader.loadQuery(
|
return this.sqlLoader.loadQuery(
|
||||||
'fact_energy_consumed',
|
'fact_device_energy_consumed',
|
||||||
fileName,
|
fileName,
|
||||||
SQL_PROCEDURES_PATH,
|
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