feat:浦发项目模块迁移-重大事项初始化

This commit is contained in:
2026-07-28 10:54:28 +08:00
parent 785b9a4b80
commit 5df36acc22
14 changed files with 1520 additions and 0 deletions
+37
View File
@@ -0,0 +1,37 @@
CREATE TABLE IF NOT EXISTS `material_type` (
`id` varchar(64) NOT NULL COMMENT '主键ID',
`name` varchar(255) DEFAULT NULL COMMENT '类型名称',
`sort` int DEFAULT 0 COMMENT '排序',
`createdBy` varchar(32) DEFAULT NULL COMMENT '创建人',
`createdAt` bigint DEFAULT NULL COMMENT '创建时间',
`updatedBy` varchar(32) DEFAULT NULL COMMENT '修改人',
`updatedAt` bigint DEFAULT NULL COMMENT '修改时间',
`delFlag` tinyint(1) DEFAULT 0 COMMENT '删除标记',
PRIMARY KEY (`id`),
KEY `idx_material_type_sort` (`sort`, `createdAt`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='重大事项-事项类型';
CREATE TABLE IF NOT EXISTS `material_item` (
`id` varchar(64) NOT NULL COMMENT '主键ID',
`typeId` varchar(64) DEFAULT NULL COMMENT '重大事项类型ID',
`title` varchar(255) DEFAULT NULL COMMENT '标题',
`content` text COMMENT '内容',
`remark` varchar(255) DEFAULT NULL COMMENT '备注',
`visible` tinyint(1) DEFAULT 1 COMMENT '是否公开',
`createdBy` varchar(32) DEFAULT NULL COMMENT '创建人',
`createdAt` bigint DEFAULT NULL COMMENT '创建时间',
`updatedBy` varchar(32) DEFAULT NULL COMMENT '修改人',
`updatedAt` bigint DEFAULT NULL COMMENT '修改时间',
`delFlag` tinyint(1) DEFAULT 0 COMMENT '删除标记',
PRIMARY KEY (`id`),
KEY `idx_material_item_type` (`typeId`),
KEY `idx_material_item_visible` (`visible`, `delFlag`, `updatedAt`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='重大事项-事项';
-- 浦发 PostgreSQL 数据迁移到本项目 MySQL 时的字段映射:
-- material_type: id -> id, name -> name, sort -> sort,
-- create_time/update_time 转 13 位时间戳写入 createdAt/updatedAt,
-- deleted=0/1 转 delFlag=0/1。
-- material_item: type_id -> typeId, visible=0/1 可直接写入 visible,
-- create_time/update_time 转 13 位时间戳写入 createdAt/updatedAt,
-- deleted=0/1 转 delFlag=0/1。
@@ -0,0 +1,66 @@
-- 重大事项电脑端菜单。
-- 使用 permission 做幂等判断,避免同一环境重复执行时插入重复菜单。
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
'f6d70b1a40b64d0f98684426a6200001',
'',
LPAD(IFNULL(MAX(CAST(path AS UNSIGNED)), 0) + 1, 4, '0'),
'重大事项',
'Material',
'menu',
'',
'',
'ti-announcement',
1,
0,
'material',
NULL,
992,
1,
'',
UNIX_TIMESTAMP(NOW()) * 1000,
'',
UNIX_TIMESTAMP(NOW()) * 1000,
0,
'PC',
NULL,
NULL,
'z',
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 = 'material') 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 'f6d70b1a40b64d0f98684426a6200002', p.id, CONCAT(p.path, '0001'), '类型管理', 'Material Type', 'menu', '/platform/material/type', 'data-pjax', '', 1, 0, 'material.type', NULL, 1, 0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0, 'PC', NULL, NULL, 'l', 0, 0
FROM sys_menu p
WHERE p.permission = 'material'
AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM sys_menu WHERE permission = 'material.type') 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 'f6d70b1a40b64d0f98684426a6200003', p.id, CONCAT(p.path, '0002'), '事项管理', 'Material Item', 'menu', '/platform/material/item', 'data-pjax', '', 1, 0, 'material.item', NULL, 2, 0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0, 'PC', NULL, NULL, 's', 0, 0
FROM sys_menu p
WHERE p.permission = 'material'
AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM sys_menu WHERE permission = 'material.item') 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 'f6d70b1a40b64d0f98684426a6200004', p.id, CONCAT(p.path, '0003'), '事项展示', 'Material Display', 'menu', '/platform/material/item/displayIndex', 'data-pjax', '', 1, 0, 'material.display', NULL, 3, 0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0, 'PC', NULL, NULL, 's', 0, 0
FROM sys_menu p
WHERE p.permission = 'material'
AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM sys_menu WHERE permission = 'material.display') 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 (
'material',
'material.type',
'material.item',
'material.display'
)
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;