fix(event-time): event_end_time/frame_timestamp NOT NULL 列兜底
- Edge push 模式: event_end_time 未提供时用 start+视频时长推算 - fam-core db_layer: insert_event 空值兜底(end→start→NOW) - insert_event_detail: frame_timestamp 空值兜底 NOW 解决 1048 Column cannot be null 落库失败
This commit is contained in:
@@ -14,6 +14,7 @@ import time
|
||||
import json
|
||||
import base64
|
||||
import requests
|
||||
from datetime import datetime, timedelta
|
||||
from concurrent.futures import ThreadPoolExecutor, as_completed, TimeoutError as FuturesTimeout
|
||||
from typing import Dict, List, Optional
|
||||
|
||||
@@ -366,6 +367,17 @@ class AIOrchestrator:
|
||||
video_path, len(compressed_frames), event_start_time
|
||||
)
|
||||
|
||||
# event_end_time 未提供时,用 start + 视频时长推算(DB 列 NOT NULL)
|
||||
event_end_time = task_data.get('event_end_time', '')
|
||||
if not event_end_time and event_start_time and preprocessor.video_duration > 0:
|
||||
try:
|
||||
start_dt = datetime.strptime(event_start_time, '%Y-%m-%d %H:%M:%S')
|
||||
event_end_time = (
|
||||
start_dt + timedelta(seconds=int(preprocessor.video_duration))
|
||||
).strftime('%Y-%m-%d %H:%M:%S')
|
||||
except ValueError:
|
||||
pass
|
||||
|
||||
# 3. 并行视觉分析
|
||||
model_outputs = self.run_visual_analysis(
|
||||
healthy_adapters, compressed_frames, frame_timestamps, known_members
|
||||
@@ -383,7 +395,7 @@ class AIOrchestrator:
|
||||
"task_id": task_id,
|
||||
"status": "success",
|
||||
"event_start_time": event_start_time,
|
||||
"event_end_time": task_data.get('event_end_time', ''),
|
||||
"event_end_time": event_end_time,
|
||||
"camera_name": task_data.get('camera_name', ''),
|
||||
"global_summary": fusion_result.get('global_summary', ''),
|
||||
"entities_json": fusion_result.get('entities_json', []),
|
||||
|
||||
Reference in New Issue
Block a user