完成查询犯人带出次数

This commit is contained in:
zqc
2026-01-09 17:33:50 +08:00
parent 1eb3e50d49
commit ec96e161bc
2 changed files with 57 additions and 5 deletions

View File

@@ -272,4 +272,44 @@ class SurAlertRecordService:
except Exception as e:
self.db.rollback()
logger.error(f"Failed to delete alert record: {e}")
return False
return False
def get_alert_count_by_person_and_time(
self,
person_id: int,
alert_type: int,
hours: int
) -> int:
"""
查询指定人员和时间范围内的告警记录数
Args:
person_id: 人员ID
alert_type: 告警类型
hours: 小时数(从当前时间往前推算)
Returns:
告警记录数
"""
from datetime import datetime, timedelta
# 计算时间范围
end_time = datetime.now()
start_time = end_time - timedelta(hours=hours)
try:
count = (
self.db.query(SurAlertRecord)
.filter(
SurAlertRecord.person_id == person_id,
SurAlertRecord.alert_type == alert_type,
SurAlertRecord.created_time >= start_time,
SurAlertRecord.created_time <= end_time
)
.count()
)
logger.debug(f"查询到人员 {person_id} 在最近 {hours} 小时内类型 {alert_type} 的告警记录数: {count}")
return count
except Exception as e:
logger.error(f"查询告警记录数失败: {e}")
return 0