|
|
@@ -217,7 +217,7 @@ def get_tmp_extremes(item_name, start_time, end_time, word_control):
|
|
|
|
|
|
# API基础URL
|
|
|
api_base_url = "http://120.55.44.4:8900/api/v1/jinke-cloud/db/device/history-data"
|
|
|
-
|
|
|
+
|
|
|
try:
|
|
|
# 第一次调用:查询item_name的极值
|
|
|
params1 = {
|
|
|
@@ -230,7 +230,7 @@ def get_tmp_extremes(item_name, start_time, end_time, word_control):
|
|
|
"interval": "minute",
|
|
|
"aggregator": "new"
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
logger.info(f"第一次API调用: {api_base_url} 参数: {params1}")
|
|
|
response1 = requests.get(api_base_url, params=params1, headers=HEADERS, timeout=30)
|
|
|
response1.raise_for_status()
|
|
|
@@ -263,7 +263,7 @@ def get_tmp_extremes(item_name, start_time, end_time, word_control):
|
|
|
item_values = {}
|
|
|
if data1.get("code") == 200 and data1.get("data"):
|
|
|
for item in data1["data"]:
|
|
|
- if item.get("name") == item_name and item.get("val") is not None:
|
|
|
+ if item.get("val") is not None:
|
|
|
time = item.get("htime_at")
|
|
|
item_values[time] = float(item.get("val"))
|
|
|
if item_values:
|
|
|
@@ -272,25 +272,22 @@ def get_tmp_extremes(item_name, start_time, end_time, word_control):
|
|
|
# 从第二次调用结果中提取'UF1控制字'为26的数据点,并进行时间匹配
|
|
|
if data2.get("code") == 200 and data2.get("data"):
|
|
|
control_26_values = []
|
|
|
- control_data_count = 0
|
|
|
matched_count = 0
|
|
|
for item in data2["data"]:
|
|
|
- if item.get("name") == word_control:
|
|
|
- control_data_count += 1
|
|
|
- val = item.get("val")
|
|
|
- # 兼容字符串和数字类型,支持22-26范围
|
|
|
- try:
|
|
|
- val_int = int(float(val)) if val is not None else None
|
|
|
- if val_int is not None and 22 <= val_int <= 26:
|
|
|
- time = item.get("htime_at")
|
|
|
- # 如果在第一次数据中找到了对应的跨膜压差值
|
|
|
- if time in item_values:
|
|
|
- control_26_values.append(item_values[time])
|
|
|
- matched_count += 1
|
|
|
- except (ValueError, TypeError):
|
|
|
- pass
|
|
|
-
|
|
|
- logger.info(f"第二次API查询成功,控制字数据点数量:{control_data_count},22-26范围内匹配数量:{matched_count}")
|
|
|
+ val = item.get("val")
|
|
|
+ # 兼容字符串和数字类型,支持22-26范围
|
|
|
+ try:
|
|
|
+ val_int = int(float(val)) if val is not None else None
|
|
|
+ if val_int is not None and 22 <= val_int <= 26:
|
|
|
+ time = item.get("htime_at")
|
|
|
+ # 如果在第一次数据中找到了对应的跨膜压差值
|
|
|
+ if time in item_values:
|
|
|
+ control_26_values.append(item_values[time])
|
|
|
+ matched_count += 1
|
|
|
+ except (ValueError, TypeError):
|
|
|
+ pass
|
|
|
+
|
|
|
+ logger.info(f"第二次API查询成功,22-26范围内匹配数量:{matched_count}")
|
|
|
|
|
|
if control_26_values:
|
|
|
logger.info(f"找到控制字为22-26范围的数据点,合并跨膜压差数据")
|