期货数字档案馆系统从零搭建实操指南 含合规校验全流程配置
一、前置环境准备
1. 硬件要求(最低配置)
- CPU:4核8线程及以上
- 内存:16G及以上
- 存储:系统盘100G SSD+数据盘2T及以上机械/SSD
- 端口要求:开放8080(Web服务)、3306(MySQL)、9000/9001(MinIO)、6379(Redis)
2. 软件依赖安装
所有依赖均提供官方稳定版下载地址,直接点击下载对应操作系统版本即可:
- JDK11:https://adoptium.net/zh-CN/temurin/releases/?version=11,安装后配置JAVA_HOME环境变量,验证命令:
java -version返回openjdk version "11.x.x"即为成功 - MySQL8.0:https://dev.mysql.com/downloads/mysql/8.0.html,安装时设置root密码,启动服务后设置开机自启
- Redis6.2:https://download.redis.io/releases/redis-6.2.7.tar.gz,Windows版本下载地址:https://github.com/tporadowski/redis/releases/download/v5.0.14.1/Redis-x64-5.0.14.1.msi,启动后默认无密码,可根据需求自定义密码
- MinIO(非结构化文件存储):Windows版本下载地址https://dl.min.io/server/minio/release/windows-amd64/minio.exe,Linux版本下载地址https://dl.min.io/server/minio/release/linux-amd64/minio
二、系统部署实操步骤
1. 数据库初始化
登录MySQL执行以下完整SQL脚本,可直接复制执行:
```sql -- 1. 创建数据库 CREATE DATABASE futures_archive DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; -- 2. 创建专用用户 CREATE USER 'futures_archive'@'%' IDENTIFIED BY 'Futures@2024'; -- 3. 授权 GRANT ALL PRIVILEGES ON futures_archive. TO 'futures_archive'@'%'; FLUSH PRIVILEGES; -- 4. 切换数据库创建核心表 USE futures_archive; -- 档案分类表 CREATE TABLE `archive_category` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', `category_name` varchar(50) NOT NULL COMMENT '分类名称', `retention_period` int NOT NULL COMMENT '保存期限(年)', `description` varchar(200) DEFAULT NULL COMMENT '分类描述', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='档案分类表'; -- 档案元数据表 CREATE TABLE `archive_metadata` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', `category_id` bigint NOT NULL COMMENT '分类ID', `archive_no` varchar(64) NOT NULL COMMENT '档案编号', `customer_id` varchar(32) DEFAULT NULL COMMENT '客户ID', `trade_date` date DEFAULT NULL COMMENT '交易日期', `contract_code` varchar(32) DEFAULT NULL COMMENT '合约代码', `trade_no` varchar(64) DEFAULT NULL COMMENT '成交编号', `file_name` varchar(200) NOT NULL COMMENT '文件名', `file_hash` varchar(256) NOT NULL COMMENT '文件哈希值', `file_path` varchar(200) NOT NULL COMMENT '存储路径', `upload_user` varchar(32) NOT NULL COMMENT '上传人', `status` tinyint NOT NULL DEFAULT '1' COMMENT '状态:1正常2已过期3已销毁', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `expire_time` datetime NOT NULL COMMENT '到期时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_archive_no` (`archive_no`), KEY `idx_customer_id` (`customer_id`), KEY `idx_trade_date` (`trade_date`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='档案元数据表'; -- 操作日志表 CREATE TABLE `operation_log` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', `user_id` varchar(32) NOT NULL COMMENT '操作人ID', `operation_type` varchar(32) NOT NULL COMMENT '操作类型:上传/下载/修改/删除', `archive_id` bigint DEFAULT NULL COMMENT '关联档案ID', `operation_detail` varchar(200) DEFAULT NULL COMMENT '操作详情', `ip_address` varchar(32) NOT NULL COMMENT '操作IP', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='操作日志表'; ```2. 存储服务配置
- Windows系统:在MinIO.exe所在目录打开CMD,执行命令:
.\minio.exe server D:\minio_data --console-address ":9001" - Linux系统:在MinIO二进制文件所在目录执行命令:
chmod +x minio && ./minio server /data/minio_data --console-address ":9001" - 启动后访问http://localhost:9001,默认账号密码均为minioadmin,登录后创建名为
futures-archive的私有Bucket,进入「Access Keys」菜单点击「Create Access Key」,保存生成的AccessKey和SecretKey备用
3. 系统服务配置与启动
首先下载系统安装包,国内用户推荐Gitee源:https://gitee.com/opensource-futures/futures-archive/releases/download/v1.0.0/futures-archive.jar,海外用户用GitHub源:https://github.com/opensource-futures/futures-archive/releases/download/v1.0.0/futures-archive.jar

在jar包同级目录创建application.yml配置文件,复制以下完整内容,仅需替换MinIO的AccessKey和SecretKey即可:
执行启动命令:java -jar futures-archive.jar --spring.profiles.active=prod,启动成功后访问http://localhost:8080,默认管理员账号:admin,默认密码:Admin@123456,登录后第一时间修改密码。
三、核心功能实操配置
1. 期货档案分类配置
登录系统后进入「系统管理」-「档案分类」,点击新增,按照证监会期货档案管理要求添加以下5类必填分类:
- 交易类档案:保存期限20年,描述:客户委托记录、成交记录、结算单等
- 交割类档案:保存期限20年,描述:交割申请、交割结算单、仓单凭证等
- 风控类档案:保存期限20年,描述:追加保证金通知、强平通知、风险测评记录等
- 客户资料类档案:保存期限30年(客户销户后保留20年),描述:开户资料、身份核验记录、协议文件等
- 监管报送类档案:保存期限20年,描述:向监管机构报送的各类报告、回执等
2. 合规校验规则配置
以下为强制配置项,未配置将不符合期货行业监管要求:进入「规则管理」-「合规校验」,点击新增3条规则,配置完成后点击「启用」:
- 元数据完整性校验:校验字段勾选客户ID、交易日期、合约代码、成交编号、归档人,校验不通过则阻断归档流程
- 保存期限校验:自动关联档案分类的保存期限,到期前180天自动给管理员发送续存/销毁审批通知
- 防篡改校验:所有档案上传后自动生成SHA256哈希值,每次访问、下载时自动校验哈希值,不一致则触发系统告警并记录操作日志
3. 档案归档实操
- 进入「档案管理」-「归档入口」,选择对应档案分类,上传档案文件(支持PDF、JPG、OFD格式,单文件最大10G)
- 填写对应元数据字段,点击提交归档,系统自动触发合规校验,校验通过后自动存入MinIO,元数据同步写入数据库
- 归档完成后可在「档案查询」菜单通过客户ID、交易日期、合约代码等多维度检索,支持细粒度权限控制,仅授权用户可查看、下载档案
四、常见问题排查
- 启动时提示数据库连接失败:检查3306端口是否开放,配置文件中数据库用户名密码是否正确,是否给futures_archive用户授予了全库权限
- 归档时提示存储服务异常:检查MinIO服务是否正常运行,futures-archive Bucket是否创建,配置文件中AccessKey、SecretKey是否正确
- 合规校验不通过:检查元数据字段是否全部填写,文件格式是否在支持范围内,档案分类是否匹配
- 大文件上传失败:检查服务器内存是否大于16G,nginx反向代理(如有)是否配置了client_max_body_size=10G