|
|
@@ -272,27 +272,40 @@ 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 and item.get("val") == '26':
|
|
|
- time = item.get("htime_at")
|
|
|
- # 如果在第一次数据中找到了对应的跨膜压差值
|
|
|
- if time in item_values:
|
|
|
- control_26_values.append(item_values[time])
|
|
|
+ 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}")
|
|
|
|
|
|
if control_26_values:
|
|
|
- logger.info(f"找到控制字为26的数据点,合并跨膜压差数据")
|
|
|
+ logger.info(f"找到控制字为22-26范围的数据点,合并跨膜压差数据")
|
|
|
max_val = max(control_26_values)
|
|
|
min_val = min(control_26_values)
|
|
|
# 增加最小跨膜压差的下限值
|
|
|
if min_val < 0.01:
|
|
|
min_val = 0.01
|
|
|
- logger.info(f"控制字为26时的最大跨膜压差值={max_val},最小跨膜压差值={min_val}")
|
|
|
+ logger.info(f"控制字为22-26时的最大跨膜压差值={max_val},最小跨膜压差值={min_val}")
|
|
|
|
|
|
if max_val is not None and min_val is not None:
|
|
|
logger.info(f"API查询成功 最大跨膜压差值={max_val} 最小跨膜压差值={min_val}")
|
|
|
return max_val, min_val
|
|
|
else:
|
|
|
- logger.warning("未找到有效的控制字为26时的跨膜压差数据")
|
|
|
+ logger.warning(f"未找到有效的控制字为22-26时的跨膜压差数据 (跨膜压差数据点:{len(item_values)}, 控制字数据点:{control_data_count if 'control_data_count' in locals() else 0}, 匹配数量:{matched_count if 'matched_count' in locals() else 0})")
|
|
|
return None, None
|
|
|
|
|
|
except requests.exceptions.RequestException as e:
|