-- 通行区域(两层:pid=0 为一级;pid=一级 id 为子区域),备注字段与海康地点管理命名一致 CREATE TABLE IF NOT EXISTS pass_access_area ( id BIGINT PRIMARY KEY AUTO_INCREMENT, uuid VARCHAR(64) NOT NULL, version BIGINT NOT NULL DEFAULT 0, create_id BIGINT NULL, create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, update_id BIGINT NULL, update_time DATETIME NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, del_flag INT NOT NULL DEFAULT 0, pid BIGINT NOT NULL DEFAULT 0 COMMENT '0 一级区域;否则为父区域 id(父须为一级)', area_name VARCHAR(128) NOT NULL COMMENT '区域名称', remark VARCHAR(512) NULL COMMENT '备注(与海康地点管理一致)', area_desc TEXT NULL COMMENT '区域说明', UNIQUE KEY uk_pass_access_area_uuid (uuid), KEY idx_pass_access_area_pid (pid), KEY idx_pass_access_area_name (area_name) ); -- 区域管理(板块)→ 通行区域管理 / 属地单位管理(页面);ADMIN 绑定 INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) VALUES (REPLACE(UUID(), '-', ''), 1, 0, 1, '区域管理', NULL, 85, NULL, 0); SET @menu_region_root = LAST_INSERT_ID(); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) VALUES (REPLACE(UUID(), '-', ''), 1, @menu_region_root, 2, '通行区域管理', 'sys:pass-areas:page', 10, '/region/pass-areas', 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) VALUES (REPLACE(UUID(), '-', ''), 1, @menu_region_root, 2, '属地单位管理', 'sys:local-units:page', 20, '/region/local-units', 0); INSERT INTO sys_role_menu (uuid, version, role_id, menu_id, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, r.id, m.id, 0 FROM sys_role r JOIN sys_menu m ON m.del_flag = 0 AND (m.id = @menu_region_root OR m.pid = @menu_region_root) WHERE r.role_code = 'ADMIN' AND r.del_flag = 0;