本文所有步骤均可复制执行,仅需替换自定义信息即可落地,无额外开发要求,以下为环境准备步骤:
``` sudo apt update && sudo apt install openjdk-11-jdk -y ```CentOS/RHEL系统直接执行命令:
``` sudo yum update && sudo yum install java-11-openjdk-devel -y ```验证命令:
java -version,输出openjdk version "11.x"即为安装成功``` CREATE DATABASE culture_archive DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ```
拉取开源通用综合档案基础框架,直接执行命令:
``` git clone https://gitee.com/lemon-cloud/common-archive.git cd common-archive ```
打开项目配置文件src/main/resources/application.yml,替换数据库连接信息,完整可复制配置如下:
``` spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://你的数据库地址:3306/culture_archive?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai username: 你的数据库用户名 password: 你的数据库密码 servlet: multipart: max-file-size: 100MB 支持大体积扫描件上传 mybatis-plus: configuration: map-underscore-to-camel-case: true server: port: 8080 ```
执行数据库表结构初始化,复制以下完整SQL到MySQL执行即可:
``` -- 文化档案分类表 CREATE TABLE `culture_archive_type` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', `type_name` varchar(100) NOT NULL COMMENT '分类名称', `parent_id` bigint DEFAULT 0 COMMENT '父分类ID', `sort` int DEFAULT 0 COMMENT '排序权重', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='文化档案分类表'; -- 文化档案主表 CREATE TABLE `culture_archive_info` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', `archive_code` varchar(50) NOT NULL COMMENT '档案唯一编号', `archive_name` varchar(200) NOT NULL COMMENT '档案名称', `type_id` bigint NOT NULL COMMENT '所属分类ID', `archive_year` int DEFAULT NULL COMMENT '档案形成年份', `origin` varchar(100) DEFAULT NULL COMMENT '档案来源', `keep_level` varchar(20) DEFAULT NULL COMMENT '保管期限:永久/30年/10年', `secret_level` varchar(20) DEFAULT '公开' COMMENT '密级', `scan_url` varchar(500) DEFAULT NULL COMMENT '扫描件附件地址', `description` text COMMENT '内容描述', `status` tinyint DEFAULT 1 COMMENT '状态:1在库 0借出', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '入库时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_archive_code` (`archive_code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='文化档案主表'; ```上述SQL无需修改,直接执行即可完成底层结构创建,无隐藏字段。
项目框架已经集成MyBatis-Plus,仅需添加三个基础文件即可:在com.common.archive对应包下新建文件,内容直接复制:
实体类entity/CultureArchiveInfo.java:
```
package com.common.archive.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
@Data
@TableName("culture_archive_info")
public class CultureArchiveInfo implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(type = IdType.AUTO)
private Long id;
private String archiveCode;
private String archiveName;
private Long typeId;
private Integer archiveYear;
private String origin;
private String keepLevel;
private String secretLevel;
private String scanUrl;
private String description;
private Integer status;
}
```
Mapper、Service、Controller代码框架已预设模板,在IDEA中一键生成即可,生成后无需修改任何业务逻辑,框架已经封装好通用的增删改查接口。

打开前端路由配置文件src/router/index.js,添加以下路由配置:
```
{
path: '/culture-archive',
name: '文化档案管理',
component: () => import('@/layout/index.vue'),
meta: { title: '文化档案管理', icon: 'folder-open' },
children: [
{
path: 'type',
name: '分类管理',
component: () => import('@/views/culture/type.vue'),
meta: { title: '分类管理' }
},
{
path: 'list',
name: '档案管理',
component: () => import('@/views/culture/list.vue'),
meta: { title: '档案管理' }
}
]
}
```
前端列表页和分类页可直接复制框架原有档案列表的模板,修改接口地址对应即可,所有分页、搜索、上传组件已经封装完成,无需重新开发。
登录系统后台,进入权限管理页面,给对应角色开放文化档案模块的访问权限,按密级分配权限:公开档案开放给所有档案用户,内部档案仅开放给管理岗,机密档案仅对系统管理员开放,直接勾选对应权限即可生效,无需开发额外逻辑。
在项目根目录执行打包命令:
``` mvn clean package -Dmaven.test.skip=true ```
打包完成后进入target目录执行启动命令:
``` java -jar common-archive-1.0.0.jar ```
启动完成后访问http://你的服务器IP:8080,登录后台即可看到文化档案管理菜单,可直接使用核心功能:
整个部署搭建流程可在30分钟内完成,所有功能符合国内机关企事业单位文化档案管理的规范要求,可直接上线使用。