1. 新增在线协同文档功能 v 1

(cherry picked from commit 1ed31a4f49)
This commit is contained in:
chenbowen
2025-09-01 10:01:35 +08:00
committed by chenbowen
parent 2cd864f63f
commit 3ff84e6f5f
43 changed files with 2734 additions and 3 deletions

144
sql/dm/doc_management.sql Normal file
View File

@@ -0,0 +1,144 @@
/*
Yudao Database Transfer Tool
Source Server Type : MySQL
Target Server Type : DM8
Date: 2025-08-29 10:32:27
*/
-- ----------------------------
-- Table structure for infra_doc_file
-- ----------------------------
CREATE TABLE infra_doc_file (
id bigint NOT NULL PRIMARY KEY,
title varchar(255) NOT NULL,
file_id bigint DEFAULT NULL NULL,
file_type varchar(10) NOT NULL,
space_type smallint DEFAULT '1' NOT NULL,
description varchar(500) DEFAULT NULL NULL,
latest_version_id bigint DEFAULT NULL NULL,
owner_user_id bigint NOT NULL,
status smallint DEFAULT '1' NOT NULL,
creator varchar(64) DEFAULT '' NULL,
create_time datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
updater varchar(64) DEFAULT '' NULL,
update_time datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
deleted bit DEFAULT '0' NOT NULL,
tenant_id bigint DEFAULT '0' NOT NULL
);
CREATE INDEX idx_infra_doc_file_01 ON infra_doc_file (owner_user_id);
CREATE INDEX idx_infra_doc_file_02 ON infra_doc_file (space_type);
CREATE INDEX idx_infra_doc_file_03 ON infra_doc_file (file_type);
COMMENT ON COLUMN infra_doc_file.id IS '文档编号';
COMMENT ON COLUMN infra_doc_file.title IS '文档标题';
COMMENT ON COLUMN infra_doc_file.file_id IS '文件编号';
COMMENT ON COLUMN infra_doc_file.file_type IS '文件类型(docx/xlsx/pptx/pdf)';
COMMENT ON COLUMN infra_doc_file.space_type IS '空间类型(1-个人空间 2-团队空间)';
COMMENT ON COLUMN infra_doc_file.description IS '文档描述';
COMMENT ON COLUMN infra_doc_file.latest_version_id IS '最新版本编号';
COMMENT ON COLUMN infra_doc_file.owner_user_id IS '所有者用户编号';
COMMENT ON COLUMN infra_doc_file.status IS '状态(0-禁用 1-启用)';
COMMENT ON COLUMN infra_doc_file.creator IS '创建者';
COMMENT ON COLUMN infra_doc_file.create_time IS '创建时间';
COMMENT ON COLUMN infra_doc_file.updater IS '更新者';
COMMENT ON COLUMN infra_doc_file.update_time IS '更新时间';
COMMENT ON COLUMN infra_doc_file.deleted IS '是否删除';
COMMENT ON COLUMN infra_doc_file.tenant_id IS '租户编号';
COMMENT ON TABLE infra_doc_file IS '在线文档表';
-- ----------------------------
-- Table structure for infra_doc_file_version
-- ----------------------------
CREATE TABLE infra_doc_file_version (
id bigint NOT NULL PRIMARY KEY,
doc_file_id bigint NOT NULL,
version_no varchar(50) NOT NULL,
file_id bigint NOT NULL,
change_description varchar(500) DEFAULT NULL NULL,
creator varchar(64) DEFAULT '' NULL,
create_time datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
updater varchar(64) DEFAULT '' NULL,
update_time datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
deleted bit DEFAULT '0' NOT NULL,
tenant_id bigint DEFAULT '0' NOT NULL
);
CREATE INDEX idx_infra_doc_file_version_01 ON infra_doc_file_version (doc_file_id);
CREATE INDEX idx_infra_doc_file_version_02 ON infra_doc_file_version (version_no);
COMMENT ON COLUMN infra_doc_file_version.id IS '版本编号';
COMMENT ON COLUMN infra_doc_file_version.doc_file_id IS '文档编号';
COMMENT ON COLUMN infra_doc_file_version.version_no IS '版本号';
COMMENT ON COLUMN infra_doc_file_version.file_id IS '文件编号';
COMMENT ON COLUMN infra_doc_file_version.change_description IS '变更说明';
COMMENT ON COLUMN infra_doc_file_version.creator IS '创建者';
COMMENT ON COLUMN infra_doc_file_version.create_time IS '创建时间';
COMMENT ON COLUMN infra_doc_file_version.updater IS '更新者';
COMMENT ON COLUMN infra_doc_file_version.update_time IS '更新时间';
COMMENT ON COLUMN infra_doc_file_version.deleted IS '是否删除';
COMMENT ON COLUMN infra_doc_file_version.tenant_id IS '租户编号';
COMMENT ON TABLE infra_doc_file_version IS '文档版本表';
-- ----------------------------
-- Table structure for infra_doc_file_permission
-- ----------------------------
CREATE TABLE infra_doc_file_permission (
id bigint NOT NULL PRIMARY KEY,
doc_file_id bigint NOT NULL,
role_id bigint NOT NULL,
permission_type smallint DEFAULT '1' NOT NULL,
expire_time datetime DEFAULT NULL NULL,
creator varchar(64) DEFAULT '' NULL,
create_time datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
updater varchar(64) DEFAULT '' NULL,
update_time datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
deleted bit DEFAULT '0' NOT NULL,
tenant_id bigint DEFAULT '0' NOT NULL
);
CREATE INDEX idx_infra_doc_file_permission_01 ON infra_doc_file_permission (role_id);
COMMENT ON COLUMN infra_doc_file_permission.id IS '权限编号';
COMMENT ON COLUMN infra_doc_file_permission.doc_file_id IS '文档编号';
COMMENT ON COLUMN infra_doc_file_permission.role_id IS '角色编号';
COMMENT ON COLUMN infra_doc_file_permission.permission_type IS '权限类型(1-只读 2-编辑 3-管理)';
COMMENT ON COLUMN infra_doc_file_permission.expire_time IS '过期时间';
COMMENT ON COLUMN infra_doc_file_permission.creator IS '创建者';
COMMENT ON COLUMN infra_doc_file_permission.create_time IS '创建时间';
COMMENT ON COLUMN infra_doc_file_permission.updater IS '更新者';
COMMENT ON COLUMN infra_doc_file_permission.update_time IS '更新时间';
COMMENT ON COLUMN infra_doc_file_permission.deleted IS '是否删除';
COMMENT ON COLUMN infra_doc_file_permission.tenant_id IS '租户编号';
COMMENT ON TABLE infra_doc_file_permission IS '文档权限表';
-- ----------------------------
-- Table structure for infra_doc_edit_history
-- ----------------------------
CREATE TABLE infra_doc_edit_history (
id bigint NOT NULL PRIMARY KEY,
doc_file_id bigint NOT NULL,
user_id bigint NOT NULL,
user_name varchar(100) NOT NULL,
edit_type smallint DEFAULT '1' NOT NULL,
description varchar(500) DEFAULT NULL NULL,
create_time datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
tenant_id bigint DEFAULT '0' NOT NULL
);
CREATE INDEX idx_infra_doc_edit_history_01 ON infra_doc_edit_history (doc_file_id);
CREATE INDEX idx_infra_doc_edit_history_02 ON infra_doc_edit_history (user_id);
COMMENT ON COLUMN infra_doc_edit_history.id IS '历史编号';
COMMENT ON COLUMN infra_doc_edit_history.doc_file_id IS '文档编号';
COMMENT ON COLUMN infra_doc_edit_history.user_id IS '编辑用户编号';
COMMENT ON COLUMN infra_doc_edit_history.user_name IS '编辑用户名称';
COMMENT ON COLUMN infra_doc_edit_history.edit_type IS '编辑类型(1-创建 2-编辑 3-删除 4-重命名)';
COMMENT ON COLUMN infra_doc_edit_history.description IS '操作描述';
COMMENT ON COLUMN infra_doc_edit_history.create_time IS '创建时间';
COMMENT ON COLUMN infra_doc_edit_history.tenant_id IS '租户编号';
COMMENT ON TABLE infra_doc_edit_history IS '文档编辑历史表';

View File

@@ -0,0 +1,39 @@
-- 在线文档管理功能菜单数据DM 格式)
-- 说明:达梦脚本使用与 patch.sql 相同的精简列形式,省略布尔列与时间列,使用默认值。
-- 清理旧数据,保持可重复执行
DELETE FROM system_menu WHERE id IN (6000,6001,6002,600101,600102,600103,600104,600105,600106,600107,600108,600109,600110);
-- 顶级目录(父级假定已存在 id=2 的“基础设施/Infra”或同级目录
INSERT INTO system_menu (
id, name, permission, type, sort, parent_id,
path, icon, component, status, component_name
) VALUES (
6000, '在线文档', '', 1, 15, 2,
'doc', 'fa:file-text-o', '', 0, NULL
);
-- 文档管理主页面
INSERT INTO system_menu (
id, name, permission, type, sort, parent_id,
path, icon, component, status, component_name
) VALUES (
6001, '文档管理', 'infra:doc:query', 2, 1, 6000,
'doc-file', 'fa:file-text', 'infra/doc/index', 0, 'DocFile'
);
-- 按钮权限(操作项)
INSERT INTO system_menu (
id, name, permission, type, sort, parent_id,
path, icon, component, status
) VALUES
(600101,'文档查询','infra:doc:query',3,1,6001,'','','',0),
(600102,'文档创建','infra:doc:create',3,2,6001,'','','',0),
(600103,'文档更新','infra:doc:update',3,3,6001,'','','',0),
(600104,'文档删除','infra:doc:delete',3,4,6001,'','','',0),
(600105,'文档导出','infra:doc:export',3,5,6001,'','','',0),
(600106,'文档上传','infra:doc:upload',3,6,6001,'','','',0),
(600107,'文档编辑','infra:doc:edit',3,7,6001,'','','',0),
(600108,'文档预览','infra:doc:preview',3,8,6001,'','','',0),
(600109,'文档下载','infra:doc:download',3,9,6001,'','','',0),
(600110,'权限管理','infra:doc:permission',3,10,6001,'','','',0);

View File

@@ -155,7 +155,7 @@ INSERT INTO system_menu(
path, icon, component, status, component_name
)
VALUES (
'1953701540574969857', '系统序列号管理', '', 2, 0, ${table.parentMenuId},
'1953701540574969857', '系统序列号管理', '', 2, 0, 1,
'sequence', '', 'system/sequence/index', 0, 'Sequence'
);
@@ -259,4 +259,4 @@ VALUES
(5021, 1, '固定值', 'FIXED', 'system_sequence_detail_rule_type', 0, 'primary', '', '固定字符串值', 'admin', SYSDATE, 'admin', SYSDATE, 0),
(5022, 2, '日期格式', 'DATE', 'system_sequence_detail_rule_type', 0, 'success', '', '日期格式规则', 'admin', SYSDATE, 'admin', SYSDATE, 0),
(5023, 3, '数字格式', 'NUMBER', 'system_sequence_detail_rule_type', 0, 'info', '', '数字格式规则', 'admin', SYSDATE, 'admin', SYSDATE, 0),
(5024, 4, '自定义格式', 'CUSTOM', 'system_sequence_detail_rule_type', 0, 'warning', '', '自定义格式规则', 'admin', SYSDATE, 'admin', SYSDATE, 0); (5024, 4, '自定义格式', 'CUSTOM', 'system_sequence_detail_rule_type', 0, 'warning', '', '自定义格式规则', 'admin', NOW(), 'admin', NOW(), b'0');
(5024, 4, '自定义格式', 'CUSTOM', 'system_sequence_detail_rule_type', 0, 'warning', '', '自定义格式规则', 'admin', SYSDATE, 'admin', SYSDATE, 0);

View File

@@ -0,0 +1,75 @@
-- 在线文档管理功能相关表结构
-- 在线文档表
CREATE TABLE `infra_doc_file` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '文档编号',
`title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文档标题',
`file_id` bigint DEFAULT NULL COMMENT '文件编号',
`file_type` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文件类型(docx/xlsx/pptx)',
`space_type` tinyint NOT NULL DEFAULT '1' COMMENT '空间类型(1-个人空间 2-团队空间)',
`description` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '文档描述',
`latest_version_id` bigint DEFAULT NULL COMMENT '最新版本编号',
`owner_user_id` bigint NOT NULL COMMENT '所有者用户编号',
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态(0-禁用 1-启用)',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
`tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号',
PRIMARY KEY (`id`) USING BTREE,
KEY `idx_owner_user_id` (`owner_user_id`) USING BTREE,
KEY `idx_space_type` (`space_type`) USING BTREE,
KEY `idx_file_type` (`file_type`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='在线文档表';
-- 文档版本表
CREATE TABLE `infra_doc_file_version` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '版本编号',
`doc_file_id` bigint NOT NULL COMMENT '文档编号',
`version_no` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '版本号',
`file_id` bigint NOT NULL COMMENT '文件编号',
`change_description` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '变更说明',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
`tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号',
PRIMARY KEY (`id`) USING BTREE,
KEY `idx_doc_file_id` (`doc_file_id`) USING BTREE,
KEY `idx_version_no` (`version_no`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='文档版本表';
-- 文档权限表
CREATE TABLE `infra_doc_file_permission` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '权限编号',
`doc_file_id` bigint NOT NULL COMMENT '文档编号',
`role_id` bigint NOT NULL COMMENT '角色编号',
`permission_type` tinyint NOT NULL DEFAULT '1' COMMENT '权限类型(1-只读 2-编辑 3-管理)',
`expire_time` datetime DEFAULT NULL COMMENT '过期时间',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
`tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_doc_role` (`doc_file_id`,`role_id`,`deleted`) USING BTREE,
KEY `idx_role_id` (`role_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='文档权限表';
-- 文档编辑历史表
CREATE TABLE `infra_doc_edit_history` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '历史编号',
`doc_file_id` bigint NOT NULL COMMENT '文档编号',
`user_id` bigint NOT NULL COMMENT '编辑用户编号',
`user_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '编辑用户名称',
`edit_type` tinyint NOT NULL DEFAULT '1' COMMENT '编辑类型(1-创建 2-编辑 3-删除 4-重命名)',
`description` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作描述',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号',
PRIMARY KEY (`id`) USING BTREE,
KEY `idx_doc_file_id` (`doc_file_id`) USING BTREE,
KEY `idx_user_id` (`user_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='文档编辑历史表';

View File

@@ -0,0 +1,24 @@
-- 在线文档管理功能菜单数据
-- 菜单 SQL
-- 约定6000 顶级目录6001 子菜单60010x 按钮6002 编辑器隐藏子页面
DELETE FROM system_menu WHERE id IN (6000,6001,6002,600101,600102,600103,600104,600105,600106,600107,600108,600109,600110);
INSERT INTO system_menu (id, name, permission, type, sort, parent_id, path, icon, component, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
VALUES (6000, '在线文档', '', 1, 15, 2, 'doc', 'fa:file-text-o', '', 0, true, true, true, 'admin', NOW(), '', NOW(), false);
INSERT INTO system_menu (id, name, permission, type, sort, parent_id, path, icon, component, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
VALUES (6001, '文档管理', 'infra:doc:query', 2, 1, 6000, 'doc-file', 'fa:file-text', 'infra/doc/index', 0, true, true, true, 'admin', NOW(), '', NOW(), false);
-- 文档管理的操作权限
INSERT INTO system_menu (id,name, permission, type, sort, parent_id, path, icon, component, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted) VALUES
(600101,'文档查询','infra:doc:query',3,1,6001,'','','',0,true,true,true,'admin',NOW(),'admin',NOW(),false),
(600102,'文档创建','infra:doc:create',3,2,6001,'','','',0,true,true,true,'admin',NOW(),'admin',NOW(),false),
(600103,'文档更新','infra:doc:update',3,3,6001,'','','',0,true,true,true,'admin',NOW(),'admin',NOW(),false),
(600104,'文档删除','infra:doc:delete',3,4,6001,'','','',0,true,true,true,'admin',NOW(),'admin',NOW(),false),
(600105,'文档导出','infra:doc:export',3,5,6001,'','','',0,true,true,true,'admin',NOW(),'admin',NOW(),false),
(600106,'文档上传','infra:doc:upload',3,6,6001,'','','',0,true,true,true,'admin',NOW(),'admin',NOW(),false),
(600107,'文档编辑','infra:doc:edit',3,7,6001,'','','',0,true,true,true,'admin',NOW(),'admin',NOW(),false),
(600108,'文档预览','infra:doc:preview',3,8,6001,'','','',0,true,true,true,'admin',NOW(),'admin',NOW(),false),
(600109,'文档下载','infra:doc:download',3,9,6001,'','','',0,true,true,true,'admin',NOW(),'admin',NOW(),false),
(600110,'权限管理','infra:doc:permission',3,10,6001,'','','',0,true,true,true,'admin',NOW(),'admin',NOW(),false);