diff --git a/algorithms.py b/algorithms.py index fc70e03..48d8686 100644 --- a/algorithms.py +++ b/algorithms.py @@ -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 diff --git a/config/database.py b/config/database.py index f8ace3a..3fca865 100644 --- a/config/database.py +++ b/config/database.py @@ -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)