Files
jcgl-dev/dev/sql/apt_rev01/31_duty_permissions.sql
T
2026-11-14 13:01:21 +08:00

62 lines
3.6 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- =============================================================================
-- R1 值班台权限点(可重放)。执行顺序:30_realtime.sql → 本文件。
-- 口径(应用端/02 表 2-9、应用端/12 表 12-1、应用端/11 表 11-7):
-- 1) 本端前缀统一 duty:,不复用 apt:;不注册 apt:jcxx:lockMatch 等管理端点。
-- 2) R1 只登记「只读 + 状态命令」共 7 个 F 点:值班台列表/详情读取与 5 个状态命令。
-- 语音(duty:call:voice/broadcast/hangup)、审计/交接/房态等点随对应批次再登记。
-- 3) **不建 C 页面菜单**:R1 的 /duty/login 与 /duty/jcxx 走前端静态路由,
-- 若此处再插同名动态路由会出现两条 /duty/jcxx(Layout 版与整屏版)冲突。
-- C 菜单在 R2 与 entry-duty 动态路由(sys_menu 双载体)一起落。
-- 4) 不写任何业务表(仅 sys_menu / sys_role_menu)。
-- =============================================================================
SET NAMES utf8mb4;
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
(3260, '值班台盯控列表', 3000, 60, '', '', '', '', 1, 0, 'F', '0', '0',
'duty:jcxx:list', '#', 'R1', NOW(3),
'R1 GET /duty/jcxx 与 /duty/jcxx/counts;同时是登录准入闸门 2 的判据'),
(3261, '值班台任务详情', 3000, 61, '', '', '', '', 1, 0, 'F', '0', '0',
'duty:jcxx:query', '#', 'R1', NOW(3),
'R1 预留(详情抽屉随 T-BE-03 在 R2 启用),用于与列表权限分离'),
(3262, '停止叫乘', 3000, 62, '', '', '', '', 1, 0, 'F', '0', '0',
'duty:call:stop', '#', 'R1', NOW(3),
'commands{STOP};前置 ryzt in (1,2) 且 finish_ly=0,reason 必填'),
(3263, '复叫', 3000, 63, '', '', '', '', 1, 0, 'F', '0', '0',
'duty:call:recall', '#', 'R1', NOW(3),
'commands{RE_CALL};前置 stoped=1 或 ryzt=2'),
(3264, '取消叫乘', 3000, 64, '', '', '', '', 1, 0, 'F', '0', '0',
'duty:call:cancel', '#', 'R1', NOW(3),
'commands{CANCEL};前置 ryzt=0,仅置 stoped=1 不删行'),
(3265, '强制结束', 3000, 65, '', '', '', '', 1, 0, 'F', '0', '0',
'duty:call:forceFinish', '#', 'R1', NOW(3),
'commands{FORCE_FINISH};前置 finish_ly=0'),
(3266, '登记离寓', 3000, 66, '', '', '', '', 1, 0, 'F', '0', '0',
'duty:call:markLeave', '#', 'R1', NOW(3),
'commands{MARK_LEAVE};写 gygl_ly_event(leave_type=MANUAL) + finish_ly=1')
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);
-- 超管绑定(其余角色由公寓管理员按岗位授权)
INSERT INTO sys_role_menu (role_id, menu_id)
SELECT 1, m.menu_id
FROM sys_menu m
WHERE m.menu_id IN (3260, 3261, 3262, 3263, 3264, 3265, 3266)
AND NOT EXISTS (SELECT 1 FROM sys_role_menu rm WHERE rm.role_id = 1 AND rm.menu_id = m.menu_id);
-- 校验
SELECT '=== 68. 值班台权限点(应 7)===' AS section;
SELECT menu_id, perms, menu_name, status FROM sys_menu
WHERE perms LIKE 'duty:%' AND menu_id BETWEEN 3260 AND 3266
ORDER BY menu_id;
SELECT '=== 69. 超管绑定(应 7)===' AS section;
SELECT COUNT(*) AS admin_bound FROM sys_role_menu
WHERE role_id = 1 AND menu_id BETWEEN 3260 AND 3266;
SELECT '=== 70. 不得出现 duty C 菜单(应 0)===' AS section;
SELECT COUNT(*) AS duty_c_menu FROM sys_menu WHERE perms LIKE 'duty:%' AND menu_type = 'C';