This commit is contained in:
DingZQ
2025-02-15 15:51:25 +08:00
parent bf4e589c4e
commit 8384f0720d

View File

@@ -1018,7 +1018,7 @@ def query_SCADA_data_by_device_ID_and_time(query_ids_list: List[str], query_time
return SCADA_result_dict return SCADA_result_dict
# DingZQ, 2025-02-15 # DingZQ, 2025-02-15
def query_SCADA_data_by_device_ID_and_time_range(query_ids_list: List[str], start_time: str, end_time: str, bucket: str="SCADA_data", client: InfluxDBClient=client) -> Dict[str, float]: def query_SCADA_data_by_device_ID_and_time_range(query_ids_list: List[str], start_time: str, end_time: str, bucket: str="SCADA_data", client: InfluxDBClient=client) -> list[dict[str, float]]:
""" """
根据SCADA设备的ID和时间查询值 根据SCADA设备的ID和时间查询值
:param query_ids_list: SCADA设备ID的列表 :param query_ids_list: SCADA设备ID的列表
@@ -1039,7 +1039,7 @@ def query_SCADA_data_by_device_ID_and_time_range(query_ids_list: List[str], star
utc_end_time = time_api.to_utc_time(end_time) utc_end_time = time_api.to_utc_time(end_time)
# 构建查询字典 # 构建查询字典
SCADA_result_dict = {} SCADA_results = []
for device_id in query_ids_list: for device_id in query_ids_list:
# 构建 Flux 查询语句 # 构建 Flux 查询语句
@@ -1048,6 +1048,7 @@ def query_SCADA_data_by_device_ID_and_time_range(query_ids_list: List[str], star
|> range(start: {utc_start_time.isoformat()}, stop: {utc_end_time.isoformat()}) |> range(start: {utc_start_time.isoformat()}, stop: {utc_end_time.isoformat()})
|> filter(fn: (r) => r["device_ID"] == "{device_id}") |> filter(fn: (r) => r["device_ID"] == "{device_id}")
|> filter(fn: (r) => r["_field"] == "monitored_value") |> filter(fn: (r) => r["_field"] == "monitored_value")
|> sort(columns: ["_time"], desc: true)
''' '''
# 执行查询 # 执行查询
@@ -1061,15 +1062,17 @@ def query_SCADA_data_by_device_ID_and_time_range(query_ids_list: List[str], star
for record in table.records: for record in table.records:
# 获取字段 "_value" 即为 monitored_value # 获取字段 "_value" 即为 monitored_value
monitored_value = record.get_value() monitored_value = record.get_value()
SCADA_result_dict[device_id] = monitored_value rec = {
else: "ID": device_id,
# 如果没有结果,默认设置为 None 或其他值 "time": record.get_time(),
SCADA_result_dict[device_id] = None "value": monitored_value
}
SCADA_results.append(rec)
except Exception as e: except Exception as e:
print(f"Error querying InfluxDB for device ID {device_id}: {e}") print(f"Error querying InfluxDB for device ID {device_id}: {e}")
SCADA_result_dict[device_id] = None
return SCADA_result_dict return SCADA_results
# 2025/02/01 # 2025/02/01
def store_realtime_simulation_result_to_influxdb(node_result_list: List[Dict[str, any]], link_result_list: List[Dict[str, any]], def store_realtime_simulation_result_to_influxdb(node_result_list: List[Dict[str, any]], link_result_list: List[Dict[str, any]],