Merge branch 'dingsu/shadell2' into TencentServer2

This commit is contained in:
DingZQ
2025-03-08 23:15:08 +08:00
2 changed files with 15 additions and 3 deletions

View File

@@ -1754,6 +1754,7 @@ def query_all_record_by_time_property(query_time: str, type: str, property: str,
# 执行查询
tables = query_api.query(flux_query)
result_records = []
# 解析查询结果
for table in tables:
for record in table.records:
@@ -1833,10 +1834,13 @@ def query_all_record_by_date(query_date: str, bucket: str="realtime_simulation_r
})
return node_records, link_records
influxdb_cache = {}
# 2025/02/21 WMH
def query_all_record_by_date_property(query_date: str, type: str, property: str,
bucket: str="realtime_simulation_result", client: InfluxDBClient=client) -> list:
global influxdb_cache
"""
查询指定日期的nodelink的某一属性值的所有记录以指定的格式返回
:param query_date: 输入的日期格式为2025-02-14
@@ -1857,11 +1861,15 @@ def query_all_record_by_date_property(query_date: str, type: str, property: str,
measurement = "link"
else:
raise ValueError(f"不支持的类型: {type}")
# 将 start_date 的北京时间转换为 UTC 时间
# start_time = (datetime.strptime(query_date, "%Y-%m-%d") - timedelta(days=1)).replace(hour=16, minute=0, second=0, tzinfo=timezone.utc).isoformat()
cache_key = f"{query_date}_{type}_{property}"
if influxdb_cache.get(cache_key) is not None:
return influxdb_cache.get(cache_key)
# 将 start_date 的北京时间转换为 UTC 时间
bg_start_time, bg_end_time = time_api.parse_beijing_date_range(query_date)
bg_end_time = bg_start_time + timedelta(hours=2) # 服务器性能不行暂时返回2个小时的数据
# bg_end_time = bg_start_time + timedelta(hours=2) # 服务器性能不行暂时返回2个小时的数据
utc_start_time = time_api.to_utc_time(bg_start_time)
utc_end_time = time_api.to_utc_time(bg_end_time)
@@ -1896,6 +1904,9 @@ def query_all_record_by_date_property(query_date: str, type: str, property: str,
"ID": record["ID"],
property: record["_value"]
})
influxdb_cache[cache_key] = result_records
return result_records

View File

@@ -2182,6 +2182,7 @@ async def fastapi_query_scada_data_by_device_id_and_date(ids: str, querydate: st
return influxdb_api.query_SCADA_data_by_device_ID_and_date(query_ids_list=query_ids, query_date=querydate, client=influx_client)
# DingZQ, 2025-03-08
# 返回所有SCADA设备在指定日期的所有记录
@app.get("/queryallscadarecordsbydate/")
async def fastapi_query_all_scada_records_by_date(querydate: str):
return influxdb_api.query_all_SCADA_records_by_date(query_date=querydate, client=influx_client)