-- ===================================================== -- HRM 考勤节假日配置 修复脚本 -- -- 背景:该页面(菜单 6014「节假日配置」)存在两处缺失,导致页面不可用: -- 1. 缺字典 hrm_holiday_type:前端「类型」单选与列表「类型」列取不到选项/文本, -- 且类型为必选,新增/编辑无法保存(hrm_attendance_holiday 表长期 0 行)。 -- 2. 缺按钮权限 hrm:attendance-holiday:query:后端 /page、/get 依赖该权限码, -- 非超管角色(菜单已授权)因无此权限码而全部 403。 -- -- 内容: -- ① 字典类型 hrm_holiday_type(1-休息日 / 2-工作日,对应 HrmAttendanceHolidayTypeEnum) -- ② 菜单按钮 60141「节假日配置查询」= hrm:attendance-holiday:query -- ③ 将 60141 授予已拥有「节假日配置新增」(60142) 的全部角色 -- -- 幂等:先删后插,可重复执行 -- 执行方式(避免中文乱码): -- cmd /c "mysql -uroot -p1234 --default-character-set=utf8mb4 ruoyi-vue-pro < docs\sql\hrm_holiday_config_fix.sql" -- ===================================================== SET NAMES utf8mb4; -- ------------------------------------------------------------ -- ① 字典:hrm_holiday_type -- ------------------------------------------------------------ DELETE FROM `system_dict_data` WHERE `dict_type` = 'hrm_holiday_type'; DELETE FROM `system_dict_type` WHERE `type` = 'hrm_holiday_type'; INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1065500, 'HRM 节假日类型', 'hrm_holiday_type', 0, '1', NOW(), '1', NOW(), b'0'); INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1065501, 1, '休息日', '1', 'hrm_holiday_type', 0, 'success', '', '1', NOW(), '1', NOW(), b'0'), (1065502, 2, '工作日', '2', 'hrm_holiday_type', 0, 'primary', '', '1', NOW(), '1', NOW(), b'0'); -- ------------------------------------------------------------ -- ② 菜单按钮:节假日配置查询 -- ------------------------------------------------------------ DELETE FROM `system_role_menu` WHERE `menu_id` = 60141; DELETE FROM `system_menu` WHERE `id` = 60141; INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (60141, '节假日配置查询', 'hrm:attendance-holiday:query', 3, 1, 6014, '', '', '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'); -- ------------------------------------------------------------ -- ③ 授权:跟随「节假日配置新增」(60142) 的角色 -- ------------------------------------------------------------ INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) SELECT DISTINCT rm.`role_id`, 60141, '1', NOW(), '1', NOW(), b'0' FROM `system_role_menu` rm WHERE rm.`menu_id` = 60142 AND rm.`deleted` = b'0'; -- ------------------------------------------------------------ -- 校验 -- ------------------------------------------------------------ SELECT ' dict_type ' AS item, COUNT(*) AS cnt FROM `system_dict_type` WHERE `type` = 'hrm_holiday_type' UNION ALL SELECT ' dict_data ', COUNT(*) FROM `system_dict_data` WHERE `dict_type` = 'hrm_holiday_type' UNION ALL SELECT ' menu_60141', COUNT(*) FROM `system_menu` WHERE `id` = 60141 UNION ALL SELECT ' roles ', COUNT(*) FROM `system_role_menu` WHERE `menu_id` = 60141 AND `deleted` = b'0';