From c75696c6449d68e1abc2c6dc6c2ac21416e0a081 Mon Sep 17 00:00:00 2001 From: lzh Date: Wed, 21 Jan 2026 18:44:30 +0800 Subject: [PATCH] =?UTF-8?q?feat(ops):=20=E6=96=B0=E5=A2=9E=E4=B8=9A?= =?UTF-8?q?=E5=8A=A1=E6=97=A5=E5=BF=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 ops_business_event_log 表结构 Co-Authored-By: Claude Opus 4.5 --- sql/mysql/aiot_ops_work_order.sql | 85 ++++++++++++++++++++----------- 1 file changed, 54 insertions(+), 31 deletions(-) diff --git a/sql/mysql/aiot_ops_work_order.sql b/sql/mysql/aiot_ops_work_order.sql index 56975da..59ce86d 100644 --- a/sql/mysql/aiot_ops_work_order.sql +++ b/sql/mysql/aiot_ops_work_order.sql @@ -196,37 +196,6 @@ CREATE TABLE `ops_cleaner_status` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='保洁员实时状态'; - --- ---------------------------- --- Table structure for ops_order_clean_log --- 保洁业务日志表 --- ---------------------------- -DROP TABLE IF EXISTS `ops_order_clean_log`; -CREATE TABLE `ops_order_clean_log` ( - `id` bigint NOT NULL COMMENT '日志ID', - `event_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '事件发生时间', - `event_level` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'INFO' COMMENT '日志级别(INFO=信息/WARN=警告/ERROR=错误)', - `event_domain` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '领域(RULE=规则引擎/DISPATCH=调度/BADGE=工牌/BEACON=信标/SYSTEM=系统)', - `event_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '事件类型', - `ops_order_id` bigint COMMENT '关联工单ID', - `area_id` bigint COMMENT '区域ID', - `cleaner_id` bigint COMMENT '保洁员ID', - `device_id` bigint COMMENT '设备ID(工牌/信标)', - `event_message` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '可读日志内容', - `event_payload` json COMMENT '结构化上下文', - `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '创建者', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '更新者', - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', - `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', - PRIMARY KEY (`id`), - KEY `idx_event_time` (`event_time`), - KEY `idx_ops_order_id` (`ops_order_id`), - KEY `idx_cleaner_id` (`cleaner_id`), - KEY `idx_event_domain_type` (`event_domain`, `event_type`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='保洁业务日志'; - -- ---------------------------- -- Table structure for ops_bus_area -- 业务区域表(园区/楼栋/楼层/功能区域) @@ -292,4 +261,58 @@ CREATE TABLE `ops_cleaner_performance_monthly` ( KEY `idx_year_month` (`year_month`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='保洁员绩效月度汇总'; +-- ---------------------------- +-- Table structure for ops_business_event_log +-- 通用业务事件日志表(支持多模块日志记录) +-- ---------------------------- +DROP TABLE IF EXISTS `ops_business_event_log`; +CREATE TABLE `ops_business_event_log` ( + `id` bigint NOT NULL COMMENT '主键ID', + + -- 时间与级别 + `event_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '事件时间', + `event_level` varchar(16) NOT NULL DEFAULT 'INFO' COMMENT '级别:INFO/WARN/ERROR', + + -- 业务分类 + `module` varchar(32) NOT NULL COMMENT '模块:clean/repair/patrol', + `event_domain` varchar(32) NOT NULL COMMENT '领域:DISPATCH/BEACON/TRAFFIC/DEVICE/SYSTEM/AUDIT', + `event_type` varchar(64) NOT NULL COMMENT '事件类型', + + -- 设备关联(方案A:冗余存储名称) + `device_id` bigint DEFAULT NULL COMMENT '设备ID', + `device_name` varchar(128) DEFAULT NULL COMMENT '设备名称(冗余)', + `device_code` varchar(64) DEFAULT NULL COMMENT '设备编码(冗余)', + `device_type` varchar(32) DEFAULT NULL COMMENT '设备类型(冗余)', + + -- 人员关联(方案A:冗余存储名称) + `person_id` bigint DEFAULT NULL COMMENT '人员ID', + `person_name` varchar(64) DEFAULT NULL COMMENT '人员姓名(冗余)', + `person_type` varchar(32) DEFAULT NULL COMMENT '人员类型(冗余)', + + -- 业务实体关联 + `target_id` bigint DEFAULT NULL COMMENT '业务实体ID(工单ID/区域ID)', + `target_type` varchar(32) DEFAULT NULL COMMENT '业务类型:order/area/task', + + -- 日志内容 + `event_message` varchar(500) NOT NULL COMMENT '事件描述', + `event_summary` varchar(200) DEFAULT NULL COMMENT '简要摘要', + + -- 扩展数据 + `event_payload` json DEFAULT NULL COMMENT '扩展数据', + + -- 标准字段 + `creator` varchar(64) DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户ID', + + PRIMARY KEY (`id`), + KEY `idx_event_time` (`event_time`), + KEY `idx_module_domain_type` (`module`, `event_domain`, `event_type`), + KEY `idx_device_person` (`device_id`, `person_id`), + KEY `idx_target` (`target_type`, `target_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='通用业务事件日志'; + SET FOREIGN_KEY_CHECKS = 1;