-- ================================================
-- v2.0.013_周启威_三级优化 SQL变更脚本
-- 包含内容：
--   1. 新增字段：点巡检记录表-故障预测信息
--   2. 初始化班次字典时间范围（sys_dict_data.remark）
--   3. 新增菜单：班次时间配置页面（sys_menu表）
-- ================================================

-- ================================================
-- 1. 点巡检记录表新增故障预测信息字段
-- ================================================
ALTER TABLE dm_inspection_plan_record ADD COLUMN fault_forecast VARCHAR(255) COMMENT '故障预测信息' AFTER problem_desc;

-- ================================================
-- 2. 班次字典初始化时间范围（sys_dict_data.remark）
-- 格式：HH:mm-HH:mm，如 08:00-16:00
-- 说明：ShiftTimeUtil 优先读字典 remark，找不到才 fallback sys_config
-- ================================================
-- 晚班：00:00-08:00（dict_sort 最小的默认早班，但这里按实际时间范围写）
UPDATE sys_dict_data SET remark = '00:00-08:00'
WHERE dict_type = 'sys_shift_type' AND dict_value = 'C' AND (remark IS NULL OR remark = '');

-- 早班：08:00-16:00
UPDATE sys_dict_data SET remark = '08:00-16:00'
WHERE dict_type = 'sys_shift_type' AND dict_value = 'A' AND (remark IS NULL OR remark = '');

-- 中班：16:00-00:00
UPDATE sys_dict_data SET remark = '16:00-00:00'
WHERE dict_type = 'sys_shift_type' AND dict_value = 'B' AND (remark IS NULL OR remark = '');

-- 验证班次字典 remark
SELECT dict_label, dict_value, remark FROM sys_dict_data WHERE dict_type = 'sys_shift_type' ORDER BY dict_sort;

-- ================================================
-- 3. 班次时间配置菜单（sys_menu表）
-- ================================================

-- 查询生产计划菜单ID
SET @plan_menu_id = (SELECT menu_id FROM sys_menu WHERE perms = 'production:plan:list' LIMIT 1);

-- 验证是否找到生产计划菜单
SELECT CONCAT('生产计划菜单ID: ', IFNULL(@plan_menu_id, '未找到')) AS '查询结果';

-- 班次时间配置页面菜单（C=菜单）
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
SELECT '班次时间配置', @plan_menu_id, 20, 'shiftConfig', 'mes/production/shiftConfig/index', NULL, 1, 0, 'C', '0', '0', 'production:shift:config:query', 'time', 'admin', NOW(), 'admin', NOW(), '班次时间通过字典管理的班次类型备注字段配置'
WHERE @plan_menu_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = 'production:shift:config:query');

-- 查询权限按钮（F=按钮）
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
SELECT '班次配置查询', @plan_menu_id, 21, '', NULL, NULL, 1, 0, 'F', '0', '0', 'production:shift:config:query', '#', 'admin', NOW(), 'admin', NOW(), '班次时间配置查询权限'
WHERE @plan_menu_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = 'production:shift:config:query');

-- 编辑权限按钮（F=按钮）
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
SELECT '班次配置编辑', @plan_menu_id, 22, '', NULL, NULL, 1, 0, 'F', '0', '0', 'production:shift:config:edit', '#', 'admin', NOW(), 'admin', NOW(), '班次时间配置编辑权限'
WHERE @plan_menu_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = 'production:shift:config:edit');

-- 验证菜单是否添加成功
SELECT menu_id, menu_name, parent_id, perms
FROM sys_menu
WHERE perms LIKE 'production:shift:config:%'
ORDER BY parent_id, order_num;

-- ================================================
-- 4. 执行后操作
--    - 清除浏览器缓存，退出重新登录
--    - 打开"系统管理->字典管理->班次类型"，编辑备注字段即可修改班次时间范围（格式：HH:mm-HH:mm，如 08:00-16:00）
--    - 打开"系统管理->角色管理"，为需要的角色分配班次配置权限
-- ================================================
