项目场景:
在项目中,有一个报表功能多版本的需求,觉得非常有意思,做一次分享给大家:
报表多版本要求:
- 一个报表分为未发布(编辑版本)版本和发布(查看版本)版本,编辑版本操作过程中不影响别人查看当前版本
- 报表支持版本回退,比如当前报表版本已经是V3了,可以回退到V1版本
- 报表支持多版本预览,比如报表可以分享当前指定版本给用户查看
实体图
数据库表设计
新增报表信息表report_info
CREATE TABLE `report_info` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键id',
`group_id` bigint DEFAULT NULL COMMENT '文件组ID',
`tenant_id` bigint DEFAULT '0' COMMENT '租户id',
`report_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '报表编码',
`name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '名称',
`update_model_relation` varchar(64) DEFAULT NULL COMMENT '更新数据联动的模块',
`issue_flag` int DEFAULT '0' COMMENT '是否发布 0=未发布 1=已发布',
`run_env` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '项目运行环境',
`bg_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '背景图链接',
`version` bigint DEFAULT '0' COMMENT '版本号',
`create_by` bigint DEFAULT NULL COMMENT '创建人',
`update_by` bigint DEFAULT NULL COMMENT '更新人',
`creator` varchar(50) DEFAULT NULL COMMENT '创建人',
`updater` varchar(50) DEFAULT NULL COMMENT '更新人',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
`update_time` timestamp NULL DEFAULT NULL COMMENT '更新时间',
`publisher