新增活动电子档案模块;
This commit is contained in:
@@ -0,0 +1,192 @@
|
||||
-- 活动电子档案模块初始化脚本(MySQL 8)。
|
||||
-- 表结构、索引和菜单均可独立部署,不包含数据库名限定。
|
||||
|
||||
CREATE TABLE IF NOT EXISTS act_archive_doc_type (
|
||||
id VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
name VARCHAR(150) NOT NULL COMMENT '类型名称',
|
||||
projectStage VARCHAR(32) NOT NULL COMMENT '项目阶段:PREPARE/PROCESS/SUMMARY',
|
||||
sortNo INT NOT NULL DEFAULT 0 COMMENT '排序编号',
|
||||
requiredFlag TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否必选',
|
||||
remark VARCHAR(600) NULL COMMENT '备注',
|
||||
createdBy VARCHAR(32) NULL COMMENT '创建人',
|
||||
createdAt BIGINT NULL COMMENT '创建时间',
|
||||
updatedBy VARCHAR(32) NULL COMMENT '修改人',
|
||||
updatedAt BIGINT NULL COMMENT '修改时间',
|
||||
delFlag TINYINT(1) NOT NULL DEFAULT 0 COMMENT '删除标记',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_archive_doc_type_stage_name (projectStage, name),
|
||||
KEY idx_archive_doc_type_stage_sort (projectStage, sortNo, createdAt)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='活动电子档案文档类型';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS act_archive_project (
|
||||
id VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
year INT NOT NULL COMMENT '年度',
|
||||
projectName VARCHAR(300) NOT NULL COMMENT '项目名称',
|
||||
status TINYINT NOT NULL DEFAULT 0 COMMENT '状态:0草稿、1归档中、2已完成',
|
||||
unionId VARCHAR(32) NOT NULL COMMENT '所属工会ID',
|
||||
unionName VARCHAR(150) NOT NULL COMMENT '所属工会名称',
|
||||
createdBy VARCHAR(32) NULL COMMENT '创建人',
|
||||
createdAt BIGINT NULL COMMENT '创建时间',
|
||||
updatedBy VARCHAR(32) NULL COMMENT '修改人',
|
||||
updatedAt BIGINT NULL COMMENT '修改时间',
|
||||
delFlag TINYINT(1) NOT NULL DEFAULT 0 COMMENT '删除标记',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_archive_project_year_name_union (year, projectName, unionId),
|
||||
KEY idx_archive_project_year_created (year, createdAt),
|
||||
KEY idx_archive_project_union (unionId)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='活动电子档案项目';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS act_archive_document (
|
||||
id VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
projectId VARCHAR(32) NOT NULL COMMENT '归档项目ID',
|
||||
documentName VARCHAR(300) NOT NULL COMMENT '文档名称',
|
||||
projectStage VARCHAR(32) NOT NULL COMMENT '项目阶段:PREPARE/PROCESS/SUMMARY',
|
||||
docTypeId VARCHAR(32) NULL COMMENT '文档类型ID',
|
||||
status TINYINT NOT NULL DEFAULT 0 COMMENT '状态:0草稿、1已提交归档',
|
||||
uploader VARCHAR(100) NULL COMMENT '上传人',
|
||||
uploadTime BIGINT NULL COMMENT '上传时间',
|
||||
files JSON NULL COMMENT '附件上传结果',
|
||||
remark VARCHAR(600) NULL COMMENT '备注',
|
||||
createdBy VARCHAR(32) NULL COMMENT '创建人',
|
||||
createdAt BIGINT NULL COMMENT '创建时间',
|
||||
updatedBy VARCHAR(32) NULL COMMENT '修改人',
|
||||
updatedAt BIGINT NULL COMMENT '修改时间',
|
||||
delFlag TINYINT(1) NOT NULL DEFAULT 0 COMMENT '删除标记',
|
||||
PRIMARY KEY (id),
|
||||
KEY idx_archive_document_query (projectId, projectStage, docTypeId, uploadTime),
|
||||
KEY idx_archive_document_project_status (projectId, status),
|
||||
CONSTRAINT fk_archive_document_project
|
||||
FOREIGN KEY (projectId) REFERENCES act_archive_project (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='活动电子档案归档文档';
|
||||
|
||||
-- 一级菜单。
|
||||
INSERT INTO sys_menu (
|
||||
id, parentId, path, name, aliasName, type, href, target, icon, showit,
|
||||
disabled, permission, note, location, hasChildren, createdBy, createdAt,
|
||||
updatedBy, updatedAt, delFlag, platform, moduleId, picIcon,
|
||||
initialPinyinName, isRecommendApp, isRecommendService
|
||||
)
|
||||
SELECT
|
||||
'9a7d8d84b14f4d6e8ab2000000000001',
|
||||
'',
|
||||
LPAD(IFNULL(MAX(CAST(path AS UNSIGNED)), 0) + 1, 4, '0'),
|
||||
'活动电子档案',
|
||||
'Archive',
|
||||
'menu',
|
||||
'',
|
||||
'',
|
||||
'ti-folder',
|
||||
1,
|
||||
0,
|
||||
'archive',
|
||||
NULL,
|
||||
992,
|
||||
1,
|
||||
'',
|
||||
UNIX_TIMESTAMP(NOW()) * 1000,
|
||||
'',
|
||||
UNIX_TIMESTAMP(NOW()) * 1000,
|
||||
0,
|
||||
'PC',
|
||||
NULL,
|
||||
NULL,
|
||||
'h',
|
||||
0,
|
||||
0
|
||||
FROM sys_menu
|
||||
WHERE (parentId = '' OR parentId IS NULL)
|
||||
AND CHAR_LENGTH(path) = 4
|
||||
HAVING NOT EXISTS (
|
||||
SELECT 1 FROM (SELECT id FROM sys_menu WHERE permission = 'archive') t
|
||||
);
|
||||
|
||||
-- 文档类型设置。
|
||||
INSERT INTO sys_menu (
|
||||
id, parentId, path, name, aliasName, type, href, target, icon, showit,
|
||||
disabled, permission, note, location, hasChildren, createdBy, createdAt,
|
||||
updatedBy, updatedAt, delFlag, platform, moduleId, picIcon,
|
||||
initialPinyinName, isRecommendApp, isRecommendService
|
||||
)
|
||||
SELECT
|
||||
'9a7d8d84b14f4d6e8ab2000000000002', p.id, CONCAT(p.path, '0001'),
|
||||
'文档类型设置', 'Archive Doc Type', 'menu', '/platform/archive/docType',
|
||||
'data-pjax', '', 1, 0, 'archive.docType', NULL, 1, 0, '',
|
||||
UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0,
|
||||
'PC', NULL, NULL, 'w', 0, 0
|
||||
FROM sys_menu p
|
||||
WHERE p.permission = 'archive'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM (SELECT id FROM sys_menu WHERE permission = 'archive.docType') t
|
||||
);
|
||||
|
||||
-- 创建项目。
|
||||
INSERT INTO sys_menu (
|
||||
id, parentId, path, name, aliasName, type, href, target, icon, showit,
|
||||
disabled, permission, note, location, hasChildren, createdBy, createdAt,
|
||||
updatedBy, updatedAt, delFlag, platform, moduleId, picIcon,
|
||||
initialPinyinName, isRecommendApp, isRecommendService
|
||||
)
|
||||
SELECT
|
||||
'9a7d8d84b14f4d6e8ab2000000000003', p.id, CONCAT(p.path, '0002'),
|
||||
'创建项目', 'Archive Project', 'menu', '/platform/archive/project',
|
||||
'data-pjax', '', 1, 0, 'archive.project', NULL, 2, 0, '',
|
||||
UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0,
|
||||
'PC', NULL, NULL, 'c', 0, 0
|
||||
FROM sys_menu p
|
||||
WHERE p.permission = 'archive'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM (SELECT id FROM sys_menu WHERE permission = 'archive.project') t
|
||||
);
|
||||
|
||||
-- 资料归档。
|
||||
INSERT INTO sys_menu (
|
||||
id, parentId, path, name, aliasName, type, href, target, icon, showit,
|
||||
disabled, permission, note, location, hasChildren, createdBy, createdAt,
|
||||
updatedBy, updatedAt, delFlag, platform, moduleId, picIcon,
|
||||
initialPinyinName, isRecommendApp, isRecommendService
|
||||
)
|
||||
SELECT
|
||||
'9a7d8d84b14f4d6e8ab2000000000004', p.id, CONCAT(p.path, '0003'),
|
||||
'资料归档', 'Archive Filing', 'menu', '/platform/archive/filing',
|
||||
'data-pjax', '', 1, 0, 'archive.filing', NULL, 3, 0, '',
|
||||
UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0,
|
||||
'PC', NULL, NULL, 'z', 0, 0
|
||||
FROM sys_menu p
|
||||
WHERE p.permission = 'archive'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM (SELECT id FROM sys_menu WHERE permission = 'archive.filing') t
|
||||
);
|
||||
|
||||
-- 档案台账。
|
||||
INSERT INTO sys_menu (
|
||||
id, parentId, path, name, aliasName, type, href, target, icon, showit,
|
||||
disabled, permission, note, location, hasChildren, createdBy, createdAt,
|
||||
updatedBy, updatedAt, delFlag, platform, moduleId, picIcon,
|
||||
initialPinyinName, isRecommendApp, isRecommendService
|
||||
)
|
||||
SELECT
|
||||
'9a7d8d84b14f4d6e8ab2000000000005', p.id, CONCAT(p.path, '0004'),
|
||||
'档案台账', 'Archive Ledger', 'menu', '/platform/archive/ledger',
|
||||
'data-pjax', '', 1, 0, 'archive.ledger', NULL, 4, 0, '',
|
||||
UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0,
|
||||
'PC', NULL, NULL, 'd', 0, 0
|
||||
FROM sys_menu p
|
||||
WHERE p.permission = 'archive'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM (SELECT id FROM sys_menu WHERE permission = 'archive.ledger') t
|
||||
);
|
||||
|
||||
-- 系统管理员默认授权,其他角色可在角色管理中按需分配。
|
||||
INSERT INTO sys_role_menu (roleId, menuId)
|
||||
SELECT r.id, m.id
|
||||
FROM sys_role r
|
||||
JOIN sys_menu m ON m.permission IN (
|
||||
'archive',
|
||||
'archive.docType',
|
||||
'archive.project',
|
||||
'archive.filing',
|
||||
'archive.ledger'
|
||||
)
|
||||
LEFT JOIN sys_role_menu rm ON rm.roleId = r.id AND rm.menuId = m.id
|
||||
WHERE r.code = 'SYSADMIN'
|
||||
AND rm.roleId IS NULL;
|
||||
Reference in New Issue
Block a user