-- 一、为iot_modbus_job表添加execute_time字段 -- 用于记录设备上电触发任务的执行时间 ALTER TABLE `iot_modbus_job` ADD COLUMN `execute_time` datetime NULL DEFAULT NULL COMMENT '执行时间(仅设备上电触发任务使用,记录任务执行的时间)' AFTER `remark`; -- 二. 在字典表中添加"文档"类型,用于首页公告下载pdf等文档 INSERT INTO `sys_dict_data` VALUES (NULL, 3, '文档', '3', 'sys_notice_type', '', 'info', 'N', '0', 'admin', NOW(), '', NULL, '文档类型'); -- 2. 在 sys_notice 表中添加文件路径字段 ALTER TABLE `sys_notice` ADD COLUMN `file_path` VARCHAR(500) NULL COMMENT '文件路径(文档类型使用)' AFTER `notice_content`; -- 检查表结构 SELECT * FROM sys_dict_data_translate WHERE id = 738; -- 如果没有记录,插入翻译数据 INSERT INTO sys_dict_data_translate (id, zh_cn, en_us) VALUES (738, '文档', 'Document') ON DUPLICATE KEY UPDATE zh_cn = '文档', en_us = 'Document'; -- 三、物模型改造:添加纯计算物模型标识字段 -- is_calculated: 0=设备上报(默认),1=纯计算(计算公式包含{}),2=其他(预留扩展) ALTER TABLE `iot_things_model` ADD COLUMN `is_calculated` tinyint(1) NOT NULL DEFAULT 0 COMMENT '物模型来源类型(0-设备上报,1-纯计算,2-其他预留)' AFTER `formula`; -- 为已有数据设置 is_calculated:如果公式包含{},则设置为1(纯计算) UPDATE `iot_things_model` SET `is_calculated` = 1 WHERE `formula` IS NOT NULL AND `formula` != '' AND `formula` LIKE '%{%}%' AND `del_flag` = '0'; -- 1. 添加 device_id 字段(默认为0,表示产品级物模型) ALTER TABLE `iot_things_model` ADD COLUMN `device_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '设备ID,0表示产品级物模型,>0表示设备级计算物模型' AFTER `product_name`; -- 2. 添加 serial_number 字段 ALTER TABLE `iot_things_model` ADD COLUMN `serial_number` varchar(64) NULL DEFAULT NULL COMMENT '设备编号' AFTER `device_id`; -- 3. 添加索引(设备编号索引) ALTER TABLE `iot_things_model` ADD INDEX `idx_calculated_serial` (`is_calculated`, `serial_number`); -- ============================================================================== -- 日期:2026-01-30 -- 1. 添加产品ID字段 ALTER TABLE command_preferences ADD COLUMN product_id BIGINT(20) DEFAULT NULL COMMENT '产品ID' AFTER serial_number; -- 2. 为产品ID添加索引,提升查询性能 CREATE INDEX idx_command_preferences_product_id ON command_preferences(product_id); -- 说明: -- product_id 有值 → 产品指令(同类产品的所有设备通用) -- serial_number 有值 → 设备指令(仅当前设备可见) -- 查询时通过 serial_number 或 product_id 字段是否有值来区分指令类型