fix(aiot): 修复摄像头名称显示问题 - 三级降级策略
问题分析: 1. 部分告警显示camera_code而非摄像头名称 - cam_1f0e3dad9990 显示为 cam_1f0e3dad9990 - cam_c51ce410c124 显示为 cam_c51ce410c124 - cam_6f4922f45568 显示为 cam_6f4922f45568 2. 部分摄像头显示带流ID后缀 - 大堂吧台3/012 应显示为 大堂吧台3 根本原因: - 数据库中这3个摄像头的gb_name字段为空 - 原降级逻辑使用app字段(值为camera_code) - 导致显示camera_code而非实际名称 修复方案 - 三级降级策略: 1. 优先使用gb_name去除流ID后缀:SUBSTRING_INDEX(gb_name, '/', 1) 2. gb_name为空时使用name字段(摄像头名称如'大堂吧台1') 3. name也为空时才使用app字段 SQL修改: COALESCE(SUBSTRING_INDEX(sp.gb_name, '/', 1), sp.name, sp.app) AS camera_name 修复效果: - cam_1f0e3dad9990 → 大堂吧台3 ✓ - cam_c51ce410c124 → 大堂吧台1 ✓ - cam_6f4922f45568 → 大堂吧台2 ✓ - 大堂吧台3/012 → 大堂吧台3 ✓ Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -15,7 +15,9 @@ public interface AiAlertMapper {
|
|||||||
@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
|
@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
|
||||||
int add(AiAlert alert);
|
int add(AiAlert alert);
|
||||||
|
|
||||||
@Select("SELECT a.*, r.name AS roi_name, sp.gb_name AS camera_name FROM wvp_ai_alert a " +
|
@Select("SELECT a.*, r.name AS roi_name, " +
|
||||||
|
"COALESCE(SUBSTRING_INDEX(sp.gb_name, '/', 1), sp.name, sp.app) AS camera_name " +
|
||||||
|
"FROM wvp_ai_alert a " +
|
||||||
"LEFT JOIN wvp_ai_roi r ON a.roi_id = r.roi_id " +
|
"LEFT JOIN wvp_ai_roi r ON a.roi_id = r.roi_id " +
|
||||||
"LEFT JOIN wvp_stream_proxy sp ON a.camera_id = sp.camera_code " +
|
"LEFT JOIN wvp_stream_proxy sp ON a.camera_id = sp.camera_code " +
|
||||||
"WHERE a.alert_id=#{alertId}")
|
"WHERE a.alert_id=#{alertId}")
|
||||||
@@ -26,7 +28,9 @@ public interface AiAlertMapper {
|
|||||||
AiAlert queryByAlertId(@Param("alertId") String alertId);
|
AiAlert queryByAlertId(@Param("alertId") String alertId);
|
||||||
|
|
||||||
@Select(value = {"<script>" +
|
@Select(value = {"<script>" +
|
||||||
"SELECT a.*, r.name AS roi_name, sp.gb_name AS camera_name FROM wvp_ai_alert a " +
|
"SELECT a.*, r.name AS roi_name, " +
|
||||||
|
"COALESCE(SUBSTRING_INDEX(sp.gb_name, '/', 1), sp.name, sp.app) AS camera_name " +
|
||||||
|
"FROM wvp_ai_alert a " +
|
||||||
"LEFT JOIN wvp_ai_roi r ON a.roi_id = r.roi_id " +
|
"LEFT JOIN wvp_ai_roi r ON a.roi_id = r.roi_id " +
|
||||||
"LEFT JOIN wvp_stream_proxy sp ON a.camera_id = sp.camera_code " +
|
"LEFT JOIN wvp_stream_proxy sp ON a.camera_id = sp.camera_code " +
|
||||||
"WHERE 1=1 " +
|
"WHERE 1=1 " +
|
||||||
|
|||||||
Reference in New Issue
Block a user