1 parent
417c076465
commit
35751b4f00
144 files changed
+13905
-342
No files matched your search
@@ -0,0 +1,97 @@
|
||||
-- =============================================================================
|
||||
-- IT-5 权限点与页面菜单种子(可重放)。执行顺序:19_it5_columns.sql → 本文件。
|
||||
-- 依据:公寓端/04 表 4-9(叫乘 6 接口)、表 4-10(叫乘域映射)、13 表 13-15
|
||||
-- 口径:
|
||||
-- 1) `apt:jcxx:list` 在 IT-1 已登记并置灰(menu_id 3004),本期**启用**,
|
||||
-- 不新增重复点。
|
||||
-- 2) 新增 3 个 F 点:详情/时间线(query)、非状态修正(correct)、
|
||||
-- 状态机命令(changeStatus)。
|
||||
-- 3) 新增 1 个 C 页面菜单 3203「叫乘台账」,路由 /apt/jcxx。
|
||||
-- 4) 设备侧 `/open/v1/tablet/**`(N-03/N-04/N-05)走设备四要素鉴权,
|
||||
-- 无权限点字符串,本脚本不为其建点。
|
||||
-- 5) 本脚本不引入 role_id 300 的任何 apt 权限。
|
||||
-- =============================================================================
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
-- 1. 启用 IT-1 预置的叫乘列表权限点(3004)
|
||||
UPDATE sys_menu
|
||||
SET visible = '0', status = '0',
|
||||
remark = 'IT-5 启用:/apt/jcxx/list 与 /apt/jcxx/statistics(IT-1 预置并置灰)'
|
||||
WHERE menu_id = 3004 AND perms = 'apt:jcxx:list';
|
||||
|
||||
-- 2. 新增 F 权限点(parent 3000)
|
||||
INSERT INTO sys_menu
|
||||
(menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
|
||||
is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
|
||||
VALUES
|
||||
(3220, '叫乘详情', 3000, 20, '', '', '', '', 1, 0, 'F', '0', '0',
|
||||
'apt:jcxx:query', '#', 'IT-5', NOW(),
|
||||
'IT-5 详情与时间线:状态迁移 + AMI 事件 + 人工命令按 at 升序,只读'),
|
||||
(3221, '叫乘修正', 3000, 21, '', '', '', '', 1, 0, 'F', '0', '0',
|
||||
'apt:jcxx:correct', '#', 'IT-5', NOW(),
|
||||
'IT-5 非状态字段白名单修正(fjh/jlid/cc/jch/leaveRemark/is_temp_call);ryzt 等一律 40001'),
|
||||
(3222, '叫乘命令', 3000, 22, '', '', '', '', 1, 0, 'F', '0', '0',
|
||||
'apt:jcxx:changeStatus', '#', 'IT-5', NOW(),
|
||||
'IT-5 STOP/RE_CALL/FORCE_FINISH/MARK_LEAVE/CANCEL,commandId 幂等,非法状态 40902')
|
||||
ON DUPLICATE KEY UPDATE menu_name = VALUES(menu_name), parent_id = VALUES(parent_id),
|
||||
order_num = VALUES(order_num), menu_type = VALUES(menu_type), visible = VALUES(visible),
|
||||
status = VALUES(status), perms = VALUES(perms), remark = VALUES(remark);
|
||||
|
||||
-- 3. C 页面菜单(父目录 3000)
|
||||
INSERT INTO sys_menu
|
||||
(menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
|
||||
is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
|
||||
VALUES
|
||||
(3203, '叫乘台账', 3000, 7, 'jcxx', 'apt/jcxx/index', '', '', 1, 0, 'C', '0', '0',
|
||||
'', 'phone', 'IT-5', NOW(),
|
||||
'IT-5 / M3 叫乘台账:只读 + 提交命令;无「编辑状态」入口(PUT /apt/jcxx/{id} 不存在)')
|
||||
ON DUPLICATE KEY UPDATE menu_name = VALUES(menu_name), parent_id = VALUES(parent_id),
|
||||
order_num = VALUES(order_num), path = VALUES(path), component = VALUES(component),
|
||||
menu_type = VALUES(menu_type), visible = VALUES(visible), status = VALUES(status),
|
||||
icon = VALUES(icon), remark = VALUES(remark);
|
||||
|
||||
-- 4. 超管关联(本期全部可用)
|
||||
INSERT INTO sys_role_menu (role_id, menu_id)
|
||||
SELECT 1, m.menu_id FROM sys_menu m
|
||||
WHERE m.menu_id IN (3203, 3004, 3220, 3221, 3222)
|
||||
AND NOT EXISTS (SELECT 1 FROM sys_role_menu rm WHERE rm.role_id = 1 AND rm.menu_id = m.menu_id);
|
||||
|
||||
-- 5. 叫乘扫描任务(默认停用,试点时手工启用)
|
||||
-- 说明:invoke_target 必须是 com.ruoyi.quartz.task 包内的 bean,
|
||||
-- 故 Job 类放在 ruoyi-apt 模块的 com.ruoyi.quartz.task.AptDispatchTask,
|
||||
-- 委托 AptDispatchScanService;不扩若依白名单。
|
||||
INSERT INTO sys_job
|
||||
(job_id, job_name, job_group, invoke_target, cron_expression, misfire_policy,
|
||||
concurrent, status, create_by, create_time, remark)
|
||||
VALUES
|
||||
(103, '叫乘扫描(平板派发/过期/SIP 超时)', 'SYSTEM', 'aptDispatchTask.scan()', '0 * * * * ?',
|
||||
'1', '1', '1', 'IT-5', NOW(),
|
||||
'IT-5 每分钟:回收过期平板任务、补生成任务、SIP 30s 无入会转叫乘报警;默认停用')
|
||||
ON DUPLICATE KEY UPDATE job_name = VALUES(job_name), invoke_target = VALUES(invoke_target),
|
||||
cron_expression = VALUES(cron_expression), remark = VALUES(remark);
|
||||
|
||||
-- 6. 校验
|
||||
SELECT '=== IT-5 权限点与页面菜单(应 5 行:3004 + 3220~3222 + 3203)===' AS section;
|
||||
SELECT menu_id, menu_name, menu_type, visible, status, perms, component
|
||||
FROM sys_menu WHERE menu_id IN (3004, 3220, 3221, 3222, 3203) ORDER BY menu_id;
|
||||
|
||||
SELECT '=== C 菜单组件路径(须与 src/views/apt/jcxx/index.vue 一致)===' AS section;
|
||||
SELECT menu_id, CONCAT('src/views/', component, '.vue') AS vue_file
|
||||
FROM sys_menu WHERE menu_id = 3203;
|
||||
|
||||
SELECT '=== 超管关联(应 5)===' AS section;
|
||||
SELECT COUNT(*) AS admin_bound
|
||||
FROM sys_role_menu rm JOIN sys_menu m ON m.menu_id = rm.menu_id
|
||||
WHERE rm.role_id = 1 AND m.menu_id IN (3203, 3004, 3220, 3221, 3222);
|
||||
|
||||
SELECT '=== 公寓端菜单树构成(M=1 / C=7 / F=27)===' AS section;
|
||||
SELECT menu_type, COUNT(*) AS cnt
|
||||
FROM sys_menu
|
||||
WHERE menu_id = 3000 OR parent_id = 3000
|
||||
GROUP BY menu_type ORDER BY menu_type;
|
||||
|
||||
SELECT '=== 无遗留置灰的叫乘权限点(应为 0)===' AS section;
|
||||
SELECT COUNT(*) AS still_grey
|
||||
FROM sys_menu
|
||||
WHERE perms IN ('apt:jcxx:list','apt:jcxx:query','apt:jcxx:correct','apt:jcxx:changeStatus')
|
||||
AND (visible <> '0' OR status <> '0');
|
||||
Reference in new issue
Block a user