Refine
This commit is contained in:
@@ -1095,7 +1095,7 @@ def query_latest_record_by_ID(ID: str, type: str, bucket: str="realtime_simulati
|
|||||||
"""
|
"""
|
||||||
查询指定ID的最新的一条记录
|
查询指定ID的最新的一条记录
|
||||||
:param ID: (str): 要查询的 ID。
|
:param ID: (str): 要查询的 ID。
|
||||||
:param type: (str): "node"或“link”
|
:param type: (str): "node"或“link”或'scada'
|
||||||
:param bucket: (str): 数据存储的 bucket 名称。
|
:param bucket: (str): 数据存储的 bucket 名称。
|
||||||
:param client: (InfluxDBClient): 已初始化的 InfluxDB 客户端实例。
|
:param client: (InfluxDBClient): 已初始化的 InfluxDB 客户端实例。
|
||||||
:return: dict: 最新记录的数据,如果没有找到则返回 None。
|
:return: dict: 最新记录的数据,如果没有找到则返回 None。
|
||||||
@@ -1166,6 +1166,30 @@ def query_latest_record_by_ID(ID: str, type: str, bucket: str="realtime_simulati
|
|||||||
"reaction": record["reaction"],
|
"reaction": record["reaction"],
|
||||||
"friction": record["friction"]
|
"friction": record["friction"]
|
||||||
}
|
}
|
||||||
|
elif type == "scada":
|
||||||
|
flux_query = f'''
|
||||||
|
from(bucket: "SCADA_data")
|
||||||
|
|> range(start: -30d) // 查找最近一月的记录
|
||||||
|
|> filter(fn: (r) => r["_measurement"] == "reservoir_liquid_level_realtime")
|
||||||
|
|> filter(fn: (r) => r["device_ID"] == "{ID}")
|
||||||
|
|> pivot(
|
||||||
|
rowKey:["_time"],
|
||||||
|
columnKey:["_field"],
|
||||||
|
valueColumn:"_value"
|
||||||
|
)
|
||||||
|
|> sort(columns: ["_time"], desc: true)
|
||||||
|
|> limit(n: 1)
|
||||||
|
'''
|
||||||
|
tables = query_api.query(flux_query)
|
||||||
|
# 解析查询结果
|
||||||
|
for table in tables:
|
||||||
|
for record in table.records:
|
||||||
|
return {
|
||||||
|
"time": record["_time"],
|
||||||
|
"device_ID": ID,
|
||||||
|
"value": record["_value"],
|
||||||
|
}
|
||||||
|
|
||||||
return None # 如果没有找到记录
|
return None # 如果没有找到记录
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user