Files
fad_oa/sql/fad_rm_migration_layer1.sql

67 lines
4.0 KiB
MySQL
Raw Normal View History

2026-06-17 09:34:06 +08:00
-- ==========================================================
-- 轧机模块 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 覆盖,不再添加额外索引