From 903fefd71ef453c29b19506705fd16640809cd34 Mon Sep 17 00:00:00 2001 From: 16337 <1633794139@qq.com> Date: Tue, 24 Feb 2026 09:34:04 +0800 Subject: [PATCH] =?UTF-8?q?fix(aiot):=20=E4=BF=AE=E5=A4=8D=E5=91=8A?= =?UTF-8?q?=E8=AD=A6=E6=B1=87=E6=80=BB=E6=91=84=E5=83=8F=E5=A4=B4=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98=20-=20=E4=B8=89?= =?UTF-8?q?=E7=BA=A7fallback=E7=AD=96=E7=95=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题:告警汇总页面显示camera_code(cam_1f0e3dad9990)而非中文名称 根因:从WVP查询摄像头信息后,使用了错误的fallback顺序 - 旧逻辑:优先app → name → device_id - app字段通常等于camera_code,导致显示技术编号 修复:采用与WVP AiAlertMapper相同的三级fallback策略 1. gb_name去除"/"后缀(如果有) 2. name字段 3. app字段(最后才用) 影响文件: - app/routers/yudao_aiot_alarm.py:247-268 --- app/routers/yudao_aiot_alarm.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app/routers/yudao_aiot_alarm.py b/app/routers/yudao_aiot_alarm.py index bc344df..bdf9f37 100644 --- a/app/routers/yudao_aiot_alarm.py +++ b/app/routers/yudao_aiot_alarm.py @@ -250,11 +250,20 @@ async def get_device_summary_page( device_id = item.get("deviceId") device_name = device_id # 默认使用 device_id - # 尝试从 WVP 查询摄像头名称 + # 尝试从 WVP 查询摄像头名称(三级 fallback 策略) try: camera_info = await _get_camera_info(device_id, current_user) if camera_info: - device_name = camera_info.get("app") or camera_info.get("name") or device_id + # 1. 优先使用 gb_name(去除 "/" 后缀) + gb_name = camera_info.get("gbName") or camera_info.get("gb_name") + if gb_name: + device_name = gb_name.split("/")[0] + # 2. 其次使用 name 字段 + elif camera_info.get("name"): + device_name = camera_info.get("name") + # 3. 最后才使用 app 字段(通常等于 camera_code) + elif camera_info.get("app"): + device_name = camera_info.get("app") except Exception as e: logger.warning(f"查询摄像头信息失败: device_id={device_id}, error={e}")