技术篇-技术架构的设计
# 一、技术栈选型
在开发合同管理系统的过程中,许多核心功能必须依赖第三方组件来实现,以确保系统的高效性、准确性和用户体验。例如:
文档的在线编辑与修订能力:合同管理过程中,文档的在线编辑和多人协作修订是必不可少的。通过集成第三方文档编辑组件(如OnlyOffice、WPS等),用户可以在线实时编辑合同文档,支持多人协同工作、版本对比、格式保留等功能,避免传统邮件往来导致的版本混乱问题,大幅提升合同修订的效率。
合作方信用状态查询:为了降低合同风险,系统需要实时查询合作方的信用状态。通过对接天眼查、企查查等信用查询平台,系统能够自动核验合作方的工商信息、风险扫描等关键数据,确保合作方资质合规,避免因合作方失信或存在法律风险而导致的合同纠纷。
合同文本内容抽取:合同文本中包含了大量结构化信息(如甲方、乙方、金额、签约日期等),手动提取这些信息不仅耗时,还容易出错。通过集成自然语言处理(NLP)技术和大模型抽取能力,系统能够自动从合同文本中提取关键字段,协助用户快速发起合同,并为后续的合同数据分析提供基础支持。
合同文本比对工具:法务人员日常工作中需要处理大量的合同修订和审核工作,传统的人工比对方式效率低下且容易遗漏关键细节。通过引入专业的文档比对工具(如diff-match-patch算法或合合信息的智能比对引擎),系统能够高亮显示合同版本之间的差异,帮助法务人员快速定位问题条款,提升工作效率,减少人为错误。
这些第三方组件的集成,不仅解决了合同管理中的核心痛点,还大幅提升了系统的智能化水平和用户体验,为合同的全生命周期管理提供了强有力的技术支持。
技术组件 | 选型方案 | 核心作用 |
---|---|---|
文档在线编辑 | OnlyOffice/永中Office/wps | 支持多人协作编辑、版本对比、格式保留(兼容WPS/Office) |
信用查询对接 | 天眼查、企查查等 | 自动校验合作方资质(工商信息、风险扫描) |
流程引擎 | Activiti/Flowable | 支持多级审批(串行/并行/加签)、退回修改、审批超时自动提醒 |
文档比对 | diff-match-patch算法、合合信息、杭州某公司 | 合同版本差异高亮显示(文字/条款/金额变更) |
合同信息抽取 | 正则表达式、NLP模型(HanLP)、大模型抽取 | 关键字段自动提取(甲方/乙方/金额/签约日期) |
# 二、架构选择:为什么选择了单体架构
业务规模:高校合同类型分教学、科研、基建、采购、校企合作,年合同量低于3000,所以无需分布式扩展
团队能力:我司参与该项目的开发团队(5-10人),微服务运维成本高
部署成本:该项目需要私有化本地部署,需要支持国产化的数据库等组件
数据一致性:合同状态变更需强一致性(避免跨服务事务)
维度 | 单体架构 | 微服务架构 |
---|---|---|
开发效率 | ✅ 代码集中管理,调试方便 ✅ IDE全量索引,跳转快速 | ❌ 跨服务联调复杂 ⭕ 可并行开发不同服务 |
部署复杂度 | ✅ 单包部署,运维简单 ✅ 版本回滚快速 | ❌ 需容器编排 ⭕ 独立服务独立伸缩 |
性能表现 | ✅ 本地调用无网络开销 ⭕ 高并发时资源竞争 | ❌ 服务间通信有延迟 ✅ 可针对性优化热点服务 |
数据一致性 | ✅ ACID事务保障 ✅ 单库操作原子性 | ❌ 需引入Saga/TCC等复杂方案 ⭕ 最终一致性适用于部分场景 |
技术栈灵活性 | ❌ 全系统技术栈统一 | ✅ 各服务可选不同语言/框架 |
容错能力 | ❌ 单点故障影响全局 | ✅ 故障隔离,熔断降级 |
团队要求 | ✅ 3-5人全栈团队即可 | ❌ 需专职DevOps、SRE团队 |
硬件成本 | ✅ 单服务器(4核8G)可支撑日均5万次操作 | ❌ 至少3节点集群(16核32G起步) |
# 三、关键技术实现方案
# 3.1 多级审批流的支持
该学校的审批流程如下:
该流程为跨部门协作审批工作流,核心流程包含7类角色、11个节点,覆盖申请、多级审核、动态修订、意见归纳与归档全流程。流程特点如下:
- 多层级审核机制:需经过部门负责人、法专岗(法务/审计)、职能处室(国资/财务)、校领导四级审批,每个学院有不同的院长、副院长与分管领导。
- 动态分支逻辑: • 法务审核不通过时触发修订环节 • 产教融合类申请需增加专项负责人节点 • 审计审核作为独立分支与国资/财务审核并行
- 数据聚合节点:审批意见需在(归纳审批意见)汇总后进入领导终审
- 建立分级提醒机制:(内部OA/短信/邮件三通道)
# 3.2 国产化适配
层级 | 国产组件 | 实现的操作 |
---|---|---|
操作系统 | 麒麟V10 | 适配龙芯/飞腾CPU |
数据库 | 达梦DM8 | 兼容Oracle语法(80%以上) |
VPN | 深信服 | 支持全内网部署 |
在线文档编辑 | 永中Office | 支持国产组件 |
# 3.3 系统对接方案

# 3.3.1. 统一身份认证平台
• 作用:实现全校系统的单点登录(SSO)和权限同步
• 对接方案:
• 采用CAS协议进行认证票据交换
• 同步AD域控中的组织机构数据
• 每日增量同步用户岗位变更信息
• 使用JWT令牌实现会话级细粒度权限控制
# 3.3.2. 国资处政府采购系统
• 作用:实现采购合同与政府采购项目的关联管理
• 对接方案:
• 通过RESTful API对接政府采购项目数据
• 建立合同编号与采购项目号的双向映射
• 自动获取采购系统中的供应商资质信息
• 使用XML格式进行采购合同备案数据交换
# 3.3.3. 控审一体化平台
• 作用:实现预算控制与审批流程的联动
• 对接方案:
• RESTful API对接预算控制接口
• 流程审批时实时校验预算额度
# 3.3.4. 学校数据中心
• 作用:实现主数据同步和统计分析 • 对接方案: • 通过RESTful API接口对接实时数据交换 • 建立合同主题数据库(含供应商库/项目库)
# 3.3.5. OA移动端
• 作用:实现移动审批和消息推送 • 对接方案: • 开发专用移动审批页面 • 使用HTML5技术实现审批
# 3.4 计划任务提醒实现
# 3.4.1 合同场景下主要的推送需求如下:
场景类型 | 具体场景案例 | 业务影响 | 推送时效要求 |
---|---|---|---|
时效性提醒 | 1. 合同到期前N天提醒(N=30/15/7/3) | 避免合同超期失效 | 每日9:00准时触发 |
2. 合作方资质到期提醒(营业执照/授权书) | 防止与无资质主体合作 | 到期前60天开始预警 | |
履约监控 | 3. 付款节点到期提醒 | 保障合同款项按时支付 | 按设置触发 |
4. 履约验收里程碑提醒 | 确保项目进度可控 | 按项目计划动态计算 | |
审批协同 | 5. 超时未审批任务催办(部门/校领导) | 加速审批流程 | 每日9:00准时触发 |
归档借阅管理 | 6. 借阅超期合同自动收回 | 满足保密合规要求 | 每日9:00准时触发 |
7. 合同归档核查提醒 | 符合审计存档规范 | 签订后30个自然日 |
# 3.4.2 对接的我们使用XXL-JOB来实现我们的推送

# 3.5 容灾设计
# 3.5.1 部署架构

设计目标:
- 我们当前的架构设计如下,容灾设计的目标是:
- RTO(恢复时间目标) ≤4小时
- RPO(数据丢失容忍度) ≤15分钟
- 文件完整性保障 100%可追溯
# 3.5.2 数据库容灾

# 1. 主数据库 → 备用数据库(实时同步)
设计原因:
• 最小化业务中断:通过实时同步主备数据库,确保主库故障时备用库能立即接管,避免服务中断。
• 数据零丢失:满足关键业务对数据完整性的高要求。
• 快速故障恢复:备用库始终处于“热备”状态,保障合同审批流程不中断。
核心作用:
• 主库宕机时,备用库自动接管流量,维持系统正常运作。
• 防止因硬件故障、网络中断等问题导致数据丢失。
# 2. 备用数据库 → 每日异地备份
设计原因:
• 防御逻辑错误:人为误删数据(如错误执行DELETE
)、程序缺陷等逻辑问题无法通过实时同步解决,需依赖备份恢复。
• 长期数据保留:合同文件需留存多年以满足法律审计要求,每日备份提供历史版本追溯能力。
核心作用:
• 保留30天内的任意时间点数据快照,支持精确到小时级的细粒度恢复。
• 满足等保三级对数据异地备份的强制要求。
# 3.5.2 文件容灾

高可用性:
• 主存储故障时,备用服务器5秒内自动接管,用户无感知切换。
• 实时镜像确保故障恢复后数据零差异。数据可靠性:
• 双节点存储使文件丢失风险降低99.95%。
• 支持历史版本追溯(如合同修改过程回溯)。性能优化:
• 主存储专注写入性能(SSD加速),镜像节点优化读取(内存缓存)。
• 横向扩展能力可快速增加存储节点应对数据量增长。
这一设计通过分层冗余与实时同步机制,在保障合同文件绝对安全的前提下,兼顾系统运行效率,是平衡可靠性、成本、维护复杂度的最优方案。
# 3.5.2 服务故障切换
