Files
MES/sql/upgrade_20260712_document_manage.sql
2026-08-08 18:28:49 +08:00

65 lines
3.6 KiB
SQL

-- @SAFE
-- ============================================================
-- MES2 文件管理工位升级补丁
-- 日期:2026-07-12
--
-- 新增 document_manage 工位:
-- - 管理员可以上传/删除文件、打开文件
-- - 操作员只能查看和打开文件
-- ============================================================
-- ============================================================
-- 第1步:确保 document 表存在
-- ============================================================
CREATE TABLE IF NOT EXISTS `DGZXY_document` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`title` VARCHAR(200) NOT NULL COMMENT '文档标题',
`doc_no` VARCHAR(100) DEFAULT NULL COMMENT '文档编号',
`category` VARCHAR(100) DEFAULT '' COMMENT '分类',
`version` VARCHAR(50) DEFAULT '1.0' COMMENT '版本号',
`author` VARCHAR(100) DEFAULT '' COMMENT '作者',
`department` VARCHAR(100) DEFAULT '' COMMENT '部门',
`status` VARCHAR(50) DEFAULT 'active' COMMENT '状态(active/archived)',
`keywords` VARCHAR(500) DEFAULT '' COMMENT '关键词',
`description` TEXT COMMENT '描述',
`file_name` VARCHAR(255) DEFAULT NULL COMMENT '原始文件名',
`file_path` VARCHAR(500) DEFAULT NULL COMMENT '文件存储路径',
`file_size` BIGINT DEFAULT 0 COMMENT '文件大小(字节)',
`file_type` VARCHAR(20) DEFAULT NULL COMMENT '文件扩展名',
`operator` VARCHAR(100) DEFAULT '' COMMENT '上传人',
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX `idx_category` (`category`),
INDEX `idx_status` (`status`),
INDEX `idx_created_at` (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='文档管理表';
-- ============================================================
-- 第2步:在 station_definitions 注册 document_manage 工位
-- ============================================================
INSERT INTO `DGZXY_station_definitions` (`station_type`, `db_table`, `time_column`, `has_product_type`, `has_product_model`, `filter_enabled`, `show_today_count`, `show_total_count`, `extra_config`)
VALUES ('document_manage', 'document', 'created_at', 0, 0, 0, 0, 0, '{"is_document_station":true}')
ON DUPLICATE KEY UPDATE `db_table`=VALUES(`db_table`), `time_column`=VALUES(`time_column`), `extra_config`=VALUES(`extra_config`);
-- ============================================================
-- 第3步:在 workstation 表注册工位(如果尚未存在)
-- ============================================================
-- 确保 workstation 表存在
CREATE TABLE IF NOT EXISTS `DGZXY_workstation` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`station_name` VARCHAR(100) NOT NULL COMMENT '工位名称',
`station_code` VARCHAR(50) NOT NULL COMMENT '工位编码',
`station_type` VARCHAR(50) NOT NULL UNIQUE COMMENT '工位类型标识',
`sort_order` INT DEFAULT 0 COMMENT '排序',
`status` TINYINT(1) DEFAULT 1 COMMENT '状态(1启用/0禁用)',
`fields_config` TEXT COMMENT '字段配置(JSON)',
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX `idx_station_type` (`station_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='工位表';
-- 插入 document_manage 工位
INSERT INTO `DGZXY_workstation` (`station_name`, `station_code`, `station_type`, `sort_order`, `status`, `fields_config`)
VALUES ('文件管理', 'DOC', 'document_manage', 8, 1, '[]')
ON DUPLICATE KEY UPDATE `station_name`=VALUES(`station_name`), `station_code`=VALUES(`station_code`), `sort_order`=VALUES(`sort_order`);