refactor(video): P2 应用层时间字段 varchar → datetime / String → LocalDateTime

SQL 类型优化(应用层生成的业务时间改为标准 datetime):
- video_ai_edge_device: last_heartbeat / updated_at
- video_ai_config_log: updated_at
- video_ai_config_snapshot: created_at
- video_ai_algorithm: sync_time
- video_ai_alert: received_at
- video_media_server: last_keepalive_time

DO 字段 String → LocalDateTime 对齐:AiEdgeDevice / AiConfigLog /
AiConfigSnapshot / AiAlgorithm / AiAlert / MediaServer

调用点适配:
- Service 层 new Date() 字符串格式化赋值统一改为 LocalDateTime.now()
- AiAlertController.edgeReport / MqttService.handleAlert 新增
  parseEventTime / parseTimestamp 私有方法,外部字符串防御性解析

保留 varchar(本批次暂不动,SIP 协议原生字符串,改动涉及 72+ 处
Mapper 与 SIP 处理器,单独迭代):
- video_device.register_time / keepalive_time
- video_device_channel.end_time / gps_time
- video_device_mobile_position.time
- video_stream_push.push_time

编译通过(mvn compile BUILD SUCCESS)。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
lzh
2026-04-21 12:32:23 +08:00
parent 64dcdd8d4c
commit 0ca1adf2a4
16 changed files with 78 additions and 42 deletions

View File

@@ -533,7 +533,7 @@ CREATE TABLE `video_media_server` (
`transcode_suffix` varchar(255) NULL COMMENT '转码指令后缀',
`server_id` varchar(50) NULL COMMENT '对应信令服务器ID',
`status` tinyint(1) NOT NULL DEFAULT 0 COMMENT '媒体服务器在线状态0离线,1在线',
`last_keepalive_time` varchar(50) NULL COMMENT '最近心跳时间',
`last_keepalive_time` datetime NULL COMMENT '最近心跳时间',
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
@@ -708,7 +708,7 @@ CREATE TABLE `video_ai_alert` (
`image_path` varchar(255) NULL COMMENT '告警图片路径',
`duration_minutes` double NULL COMMENT '持续时长(分钟)',
`extra_data` text NULL COMMENT 'JSON 扩展',
`received_at` varchar(50) NOT NULL COMMENT '接收时间',
`received_at` datetime NULL COMMENT '接收时间',
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
@@ -731,14 +731,14 @@ CREATE TABLE `video_ai_edge_device` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`device_id` varchar(64) NOT NULL COMMENT '设备唯一ID',
`status` varchar(20) NOT NULL DEFAULT 'offline' COMMENT '状态online/offline',
`last_heartbeat` varchar(50) NULL COMMENT '最后心跳时间',
`last_heartbeat` datetime NULL COMMENT '最后心跳时间',
`uptime_seconds` bigint NULL COMMENT '运行时长(秒)',
`frames_processed` bigint NULL COMMENT '已处理帧数',
`alerts_generated` bigint NULL COMMENT '已生成告警数',
`stream_stats` text NULL COMMENT '流统计 JSON',
`stream_count` int NULL COMMENT '活跃视频流数量',
`config_version` varchar(64) NULL COMMENT '当前配置版本',
`updated_at` varchar(50) NULL COMMENT '更新时间',
`updated_at` datetime NULL COMMENT '更新时间',
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
@@ -819,7 +819,7 @@ CREATE TABLE `video_ai_config_log` (
`old_value` text NULL COMMENT '变更前 JSON',
`new_value` text NULL COMMENT '变更后 JSON',
`updated_by` varchar(100) NULL COMMENT '操作人',
`updated_at` varchar(50) NULL COMMENT '操作时间',
`updated_at` datetime NULL COMMENT '操作时间',
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
@@ -846,7 +846,7 @@ CREATE TABLE `video_ai_config_snapshot` (
`change_type` varchar(20) NOT NULL COMMENT 'CREATE | UPDATE | DELETE | ROLLBACK | PUSH',
`change_desc` varchar(255) NULL COMMENT '变更描述',
`created_by` varchar(64) NULL COMMENT '操作人',
`created_at` varchar(50) NOT NULL COMMENT '创建时间',
`created_at` datetime NULL COMMENT '创建时间',
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
@@ -897,7 +897,7 @@ CREATE TABLE `video_ai_algorithm` (
`global_params` text NULL COMMENT '用户自定义的全局默认参数 JSON',
`description` varchar(500) NULL COMMENT '描述',
`is_active` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否可用',
`sync_time` varchar(50) NULL COMMENT '最后同步时间',
`sync_time` datetime NULL COMMENT '最后同步时间',
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',