档案管理系统对接电子签章系统纯技术落地全流程实操指南
一、前期准备清单
本指南以国内通用开源/低代码档案原型(使用Spring Boot+Vue3)和自研轻量级电子签章API为对接对象,需提前准备:
- 本地开发环境:JDK17、Node.js 18.17 LTS、Maven 3.8.8、MySQL 8.0
- 基础系统源码:Spring Boot档案后端(https://github.com/ruoyi-vue-pro/ruoyi-vue-pro 分支3.8.5)、自研轻量级电子签章服务(https://github.com/weiliangy/esign-api-demo 分支v1.0.0)
- 测试环境:两台可互访的虚拟机/本地端口映射后的设备
二、基础系统部署与测试
2.1 部署开源档案后端
1. 克隆源码:git clone -b 3.8.5 https://github.com/ruoyi-vue-pro/ruoyi-vue-pro.git
2. 配置application-dev.yml:修改数据库连接信息为本地/虚拟机MySQL,账号root,密码自定义
3. 初始化数据库:执行SQL目录下的ry-vue-pro.sql和ry_20240501.sql(最新更新SQL)
4. 启动后端:运行RuoYiApplication.java,访问http://localhost:8080/doc.html验证接口文档是否正常
2.2 部署轻量级电子签章服务
1. 克隆源码:git clone -b v1.0.0 https://github.com/weiliangy/esign-api-demo.git
2. 配置application.yml:无需修改,默认端口9090,使用内置H2数据库

3. 启动服务:运行EsignApplication.java,访问http://localhost:9090/esign/doc.html验证接口
4. 生成测试印章:调用POST /esign/seal/create接口,参数{"name":"测试单位","width":200,"height":200,"type":"CIRCLE"},保存返回的sealId(示例:1001)
三、核心集成逻辑设计
采用RESTful API单向回调架构,无状态通信,降低耦合:
- 档案系统上传归档文件(PDF)→ 生成临时文件链接
- 档案系统调用电子签章服务的“位置标注-自动签章”接口,传入PDF链接、sealId、签章位置(页号、XY坐标)
- 电子签章服务下载PDF→完成自动签章→返回签章后PDF的永久链接
- 档案系统替换归档文件为签章后PDF,更新归档状态为“已签章归档”
四、档案后端集成代码开发
4.1 新增电子签章服务配置类
在ruoyi-system模块下创建com.ruoyi.system.config.EsignConfig.java,内容如下:
```java package com.ruoyi.system.config; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @Component @ConfigurationProperties(prefix = "esign") @Data public class EsignConfig { // 电子签章服务地址 private String serverUrl = "http://localhost:9090"; // 测试印章ID(可改为配置数据库) private String defaultSealId = "1001"; // PDF签章位置:第1页,左上角X200,Y300 private Integer pageNum = 1; private Integer sealX = 200; private Integer sealY = 300; } ```4.2 新增电子签章调用工具类
在ruoyi-common模块下创建com.ruoyi.common.utils.EsignUtils.java,使用RestTemplate:
```java package com.ruoyi.common.utils; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.ruoyi.system.config.EsignConfig; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.; import org.springframework.stereotype.Component; import org.springframework.web.client.RestTemplate; import javax.annotation.PostConstruct; import java.util.HashMap; import java.util.Map; @Component public class EsignUtils { @Autowired private EsignConfig esignConfig; @Autowired private RestTemplate restTemplate; private static EsignUtils esignUtils; @PostConstruct public void init() { esignUtils = this; } / 自动签章PDF @param pdfUrl 待签章PDF临时链接 @return 签章后PDF永久链接 / public static String autoSign(String pdfUrl) { String url = esignUtils.esignConfig.getServerUrl() + "/esign/document/sign"; Map