67 lines
4.0 KiB
SQL
67 lines
4.0 KiB
SQL
-- ==========================================================
|
||
-- 轧机模块 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 覆盖,不再添加额外索引
|