feat: 添加离岗时长记录

- alert_records 添加 duration_minutes 字段
- AlgorithmManager 输出 duration_minutes
- AlertRecord 添加 duration_minutes 字段
This commit is contained in:
2026-01-30 17:26:12 +08:00
parent f570245589
commit f90ff60f6c
2 changed files with 10 additions and 5 deletions

View File

@@ -155,9 +155,9 @@ class LeavePostAlgorithm:
"track_id": roi_id,
"camera_id": camera_id,
"bbox": bbox,
"off_duty_duration": elapsed,
"duration_minutes": elapsed_minutes,
"alert_type": "leave_post",
"message": f"离岗超过 {elapsed_minutes} 分钟",
"message": f"离岗 {elapsed_minutes} 分钟",
})
self.alert_cooldowns[cooldown_key] = now

View File

@@ -48,6 +48,7 @@ class AlertRecord:
status: str = "pending"
created_at: datetime = field(default_factory=datetime.now)
processed_at: Optional[datetime] = None
duration_minutes: Optional[float] = None
class SQLiteManager:
@@ -121,7 +122,8 @@ class SQLiteManager:
image_path TEXT,
status TEXT DEFAULT 'pending',
created_at TEXT NOT NULL,
processed_at TEXT
processed_at TEXT,
duration_minutes REAL
)
""")
@@ -242,8 +244,9 @@ class SQLiteManager:
INSERT OR REPLACE INTO alert_records (
alert_id, camera_id, roi_id, alert_type,
target_class, confidence, bbox, message,
image_path, status, created_at, processed_at
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
image_path, status, created_at, processed_at,
duration_minutes
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
""", (
record['alert_id'],
record['camera_id'],
@@ -257,6 +260,7 @@ class SQLiteManager:
record.get('status', 'pending'),
record['created_at'],
record.get('processed_at'),
record.get('duration_minutes'),
))
self._conn.commit()
@@ -290,6 +294,7 @@ class SQLiteManager:
'status': alert.status,
'created_at': alert.created_at.isoformat(),
'processed_at': alert.processed_at.isoformat() if alert.processed_at else None,
'duration_minutes': alert.duration_minutes,
}
self._write_queue.put(record)