-- ============================================= -- 保养计划优化 - 频率改为计划执行时间 -- 作者: Cascade -- 日期: 2026-01-20 -- 描述: -- 1. 添加计划执行时间字段(planned_time)替代频率 -- 2. 修改状态字段含义:0待执行/1已执行/2已取消 -- 3. 执行一次计划就结束,不再循环 -- ============================================= -- ============================================= -- 一、扩展表结构 -- ============================================= SET @dbname = DATABASE(); SET @tablename = 'dm_inspection_plan'; -- 1.1 添加 planned_time 字段(计划执行时间) SET @columnname = 'planned_time'; SET @preparedStatement = (SELECT IF( (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = @dbname AND TABLE_NAME = @tablename AND COLUMN_NAME = @columnname) > 0, 'SELECT 1', CONCAT('ALTER TABLE ', @tablename, ' ADD COLUMN ', @columnname, ' DATETIME DEFAULT NULL COMMENT ''计划执行时间'' AFTER `end_date`') )); PREPARE alterIfNotExists FROM @preparedStatement; EXECUTE alterIfNotExists; DEALLOCATE PREPARE alterIfNotExists; -- ============================================= -- 二、更新字典数据 -- ============================================= -- 2.1 新增保养计划状态字典类型 INSERT IGNORE INTO `sys_dict_type` (`dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `remark`) VALUES ('保养计划状态', 'maintenance_plan_status', '0', 'admin', NOW(), '保养计划状态:待执行/已执行/已取消'); -- 2.2 保养计划状态字典数据 INSERT IGNORE INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`) VALUES (0, '待执行', '0', 'maintenance_plan_status', NULL, 'warning', 'Y', '0', 'admin', NOW(), '待执行'); INSERT IGNORE INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`) VALUES (1, '已执行', '1', 'maintenance_plan_status', NULL, 'success', 'N', '0', 'admin', NOW(), '已执行'); INSERT IGNORE INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`) VALUES (2, '已取消', '2', 'maintenance_plan_status', NULL, 'info', 'N', '0', 'admin', NOW(), '已取消'); -- ============================================= -- 三、回退SQL -- ============================================= /* -- 删除字典数据 DELETE FROM `sys_dict_data` WHERE `dict_type` = 'maintenance_plan_status'; DELETE FROM `sys_dict_type` WHERE `dict_type` = 'maintenance_plan_status'; -- 删除扩展字段 ALTER TABLE `dm_inspection_plan` DROP COLUMN `planned_time`; */