Kilometrage : niveau de fin saisi par le proprietaire (table niveau_fin), niveaux VW du 10/10
This commit is contained in:
@@ -93,6 +93,17 @@ export async function creerSchemaKm(client) {
|
||||
// de la borne n'etait pas encore historise, la reference peut manquer.
|
||||
await client.query('ALTER TABLE niveau_saisi ALTER COLUMN ref_kwh DROP NOT NULL');
|
||||
await client.query('ALTER TABLE niveau_saisi ADD COLUMN IF NOT EXISTS source text');
|
||||
// NIVEAU A LA FIN (10/10/2026) : le proprietaire donne l'autonomie au
|
||||
// debranchement (VW 22 km au branchement, 39 km au debranchement, pour 42 km
|
||||
// pleine). Sans releve kilometrique, ce niveau n'avait nulle part ou aller ;
|
||||
// il prime sur le « plein » du controleur, peu fiable pour la VW (§11.5).
|
||||
await client.query(`
|
||||
CREATE TABLE IF NOT EXISTS niveau_fin (
|
||||
saisi_a timestamptz PRIMARY KEY,
|
||||
niveau_pct integer NOT NULL,
|
||||
source text,
|
||||
pose_a timestamptz NOT NULL DEFAULT now()
|
||||
)`);
|
||||
await client.query(SQL_VUE_INTERVALLES);
|
||||
await client.query(SQL_VUE_CAPACITE);
|
||||
}
|
||||
@@ -188,10 +199,13 @@ WITH tr AS (
|
||||
(SELECT r.niveau_pct FROM releve_km r
|
||||
WHERE r.vehicule = v.vehicule AND r.niveau_pct IS NOT NULL
|
||||
AND r.ts >= v.debranche AND r.ts <= v.debranche + interval '1 hour'
|
||||
ORDER BY r.ts LIMIT 1) AS niveau_releve_apres
|
||||
ORDER BY r.ts LIMIT 1) AS niveau_releve_apres,
|
||||
(SELECT nf.niveau_pct FROM niveau_fin nf
|
||||
WHERE nf.saisi_a >= v.debranche - interval '15 minutes' AND nf.saisi_a <= v.debranche + interval '1 hour'
|
||||
ORDER BY nf.saisi_a LIMIT 1) AS niveau_fin_saisi
|
||||
FROM v
|
||||
), f AS (
|
||||
SELECT k.*, CASE WHEN plein THEN 100 ELSE niveau_releve_apres END AS niveau_fin FROM k
|
||||
SELECT k.*, coalesce(niveau_fin_saisi, CASE WHEN plein THEN 100 ELSE niveau_releve_apres END) AS niveau_fin FROM k
|
||||
)
|
||||
SELECT branche, debranche, coalesce(vehicule, '?') AS vehicule, niveau_pct, niveau_fin,
|
||||
kwh_livres, plein,
|
||||
|
||||
Reference in New Issue
Block a user