Add api fastapi_query_scada_data_by_device_id_and_date

This commit is contained in:
DingZQ
2025-03-02 17:25:21 +08:00
parent 7892f8ac20
commit 83826aa85a
2 changed files with 24 additions and 3 deletions

View File

@@ -1048,9 +1048,11 @@ def query_SCADA_data_by_device_ID_and_time_range(query_ids_list: List[str], star
query_api = client.query_api()
# 将北京时间转换为 UTC 时间
utc_start_time = time_api.to_utc_time(start_time)
utc_end_time = time_api.to_utc_time(end_time)
bj_start_time = time_api.parse_beijing_time(start_time)
utc_start_time = time_api.to_utc_time(bj_start_time)
bj_end_time = time_api.parse_beijing_time(end_time)
utc_end_time = time_api.to_utc_time(bj_end_time)
# 构建查询字典
SCADA_results = []
@@ -1087,6 +1089,20 @@ def query_SCADA_data_by_device_ID_and_time_range(query_ids_list: List[str], star
return SCADA_results
# DingZQ, 2025-02-15
def query_SCADA_data_by_device_ID_and_date(query_ids_list: List[str], query_date: str, bucket: str="SCADA_data", client: InfluxDBClient=client) -> list[dict[str, float]]:
"""
根据SCADA设备的ID和日期查询值
:param query_ids_list: SCADA设备ID的列表
:param query_date: 输入的日期,格式为 '2024-11-24', 日期是北京时间的日期
:param bucket: InfluxDB 的 bucket 名称,默认值为 "SCADA_data"
:param client: 已初始化的 InfluxDBClient 实例。
:return:
"""
start_time, end_time = time_api.parse_date_range(query_date)
return query_SCADA_data_by_device_ID_and_time_range(query_ids_list, str(start_time), str(end_time), bucket, client)
# 2025/02/01
def store_realtime_simulation_result_to_influxdb(node_result_list: List[Dict[str, any]], link_result_list: List[Dict[str, any]],
result_start_time: str,

View File

@@ -2169,6 +2169,11 @@ async def fastapi_query_scada_data_by_device_id_and_time_range(ids: str, startti
query_ids = ids.split(',')
return influxdb_api.query_SCADA_data_by_device_ID_and_time_range(query_ids_list=query_ids, start_time=starttime, end_time=endtime, client=influx_client)
@app.get("/queryscadadatabydeviceidanddate/")
async def fastapi_query_scada_data_by_device_id_and_date(ids: str, querydate: str):
query_ids = ids.split(',')
return influxdb_api.query_SCADA_data_by_device_ID_and_date(query_ids_list=query_ids, query_date=querydate, client=influx_client)
@app.get("/queryinfluxdbbuckets/")