fix(timeseries): align timezone and scada updates

This commit is contained in:
2026-06-11 10:27:51 +08:00
parent 24169bd277
commit 21929b44fc
9 changed files with 249 additions and 348 deletions
@@ -89,12 +89,17 @@ class ScadaRepository:
if field not in valid_fields:
raise ValueError(f"Invalid field: {field}")
query = sql.SQL(
update_query = sql.SQL(
"UPDATE scada.scada_data SET {} = %s WHERE time = %s AND device_id = %s"
).format(sql.Identifier(field))
insert_query = sql.SQL(
"INSERT INTO scada.scada_data (time, device_id, {}) VALUES (%s, %s, %s)"
).format(sql.Identifier(field))
async with conn.cursor() as cur:
await cur.execute(query, (value, time, device_id))
await cur.execute(update_query, (value, time, device_id))
if cur.rowcount == 0:
await cur.execute(insert_query, (time, device_id, value))
@staticmethod
async def delete_scada_by_id_time_range(