-- ========================================================== -- 轧机模块 Layer 1:项目权限与主人制 -- 目的:添加 manager_id 外键、创建项目成员表 -- 说明:这些变更已在开发环境在线执行,本文件供新环境初始化或追溯使用 -- ========================================================== -- 前提:fad_rm_project 表已存在(基础模块表) -- ========================================================== -- ---------------------------------------------------------- -- 1. fad_rm_project — 添加 manager_id 字段 -- ---------------------------------------------------------- ALTER TABLE `fad_rm_project` ADD COLUMN `manager_id` BIGINT DEFAULT NULL COMMENT '项目经理用户ID,关联sys_user.user_id' AFTER `manager`; -- ---------------------------------------------------------- -- 2. 创建项目成员表 -- ---------------------------------------------------------- CREATE TABLE IF NOT EXISTS `fad_rm_project_member` ( `member_id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '成员ID', `project_id` BIGINT NOT NULL COMMENT '项目ID', `user_id` BIGINT NOT NULL COMMENT '用户ID', `role` VARCHAR(50) DEFAULT 'member' COMMENT '角色: manager/member/viewer', `create_by` VARCHAR(64) DEFAULT '' COMMENT '创建者', `create_time` DATETIME DEFAULT NULL COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT '' COMMENT '更新者', `update_time` DATETIME DEFAULT NULL COMMENT '更新时间', `del_flag` INT DEFAULT 0 COMMENT '删除标志', PRIMARY KEY (`member_id`), UNIQUE KEY `uk_project_user` (`project_id`, `user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='项目成员表'; -- ---------------------------------------------------------- -- 3. fad_rm_drawing_compare — 补齐缺失字段 -- ---------------------------------------------------------- ALTER TABLE `fad_rm_drawing_compare` ADD COLUMN `optimizer` VARCHAR(50) DEFAULT NULL COMMENT '优化人' AFTER `new_version`, ADD COLUMN `compare_date` DATE DEFAULT NULL COMMENT '比较日期' AFTER `optimizer`, ADD COLUMN `status` VARCHAR(20) DEFAULT 'pending' COMMENT '状态' AFTER `compare_date`, ADD COLUMN `before_desc` TEXT DEFAULT NULL COMMENT '优化前描述' AFTER `status`, ADD COLUMN `after_desc` TEXT DEFAULT NULL COMMENT '优化后描述' AFTER `before_desc`; -- ---------------------------------------------------------- -- 4. sys_menu — 添加项目预算菜单条目(路由注册) -- ---------------------------------------------------------- -- 注:menu_id 使用 MAX(menu_id)+1 生成,避免冲突 -- 新环境首次导入时需先查询 MAX(menu_id) 或使用自增主键 INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`) SELECT MAX(`menu_id`) + 1, '项目预算', 2065320360688402434, 2, 'budget', 'rm/budget/index', 1, 0, 'C', '0', '0', NULL, 'el-icon-coin', 'admin', NOW() FROM `sys_menu`; -- ---------------------------------------------------------- -- 5. 修正:采购与合同/图纸与资料/发货与安装 父菜单 component 修复 -- ---------------------------------------------------------- -- 这三个父菜单的 component 被误设为 'Layout',导致点击后内嵌整个布局造成双层侧边栏 UPDATE `sys_menu` SET `component` = 'ParentView' WHERE `menu_id` IN ( 2064586808972374030, -- 采购与合同 2064586808972374040, -- 图纸与资料 2064586808972374050 -- 发货与安装 ); -- ---------------------------------------------------------- -- 6. 索引补充(确保所有 fad_rm_* 表有 project_id 索引) -- ---------------------------------------------------------- -- fad_rm_project_member 已通过 UNIQUE KEY 覆盖,不再添加额外索引