Compare commits

...

2 Commits

Author SHA1 Message Date
3bac8be70e fix(alarm): 添加intrusion_cleared自动关闭处理
- resolve_alarm方法支持intrusion_cleared类型
- 自动标记为CLOSED状态,备注"入侵消失自动关闭(持续无人180秒)"
- 与person_returned和non_work_time保持一致
2026-02-25 09:26:52 +08:00
a927388388 fix(alarm): 修复告警详情接口500错误
- 更新 get_alert 接口调用 _alarm_to_camel 的参数
- 使用 camera_info_map 替代 name_map
- 正确传递 camera_service 参数
2026-02-24 16:24:42 +08:00
2 changed files with 11 additions and 3 deletions

View File

@@ -203,12 +203,15 @@ async def get_alert(
if not alarm_dict:
raise HTTPException(status_code=404, detail="告警不存在")
# 查询单个摄像头名称
# 查询单个摄像头信息
device_id = alarm_dict.get("device_id")
camera_service = get_camera_name_service()
name_map = {device_id: await camera_service.get_display_name(device_id)} if device_id else {}
camera_info_map = {}
if device_id:
camera_info = await camera_service.get_camera_info(device_id)
camera_info_map[device_id] = camera_info
return YudaoResponse.success(await _alarm_to_camel(alarm_dict, name_map))
return YudaoResponse.success(await _alarm_to_camel(alarm_dict, camera_info_map, camera_service))
@router.put("/alert/handle")

View File

@@ -570,6 +570,11 @@ class AlarmEventService:
alarm.handle_status = "DONE"
alarm.handle_remark = "非工作时间自动关闭"
alarm.handled_at = datetime.now(timezone.utc)
elif resolve_type == "intrusion_cleared":
alarm.alarm_status = "CLOSED"
alarm.handle_status = "DONE"
alarm.handle_remark = "入侵消失自动关闭持续无人180秒"
alarm.handled_at = datetime.now(timezone.utc)
alarm.updated_at = datetime.now(timezone.utc)
db.commit()