# 肇新合同管理系统(开源版)
**Repository Path**: Gianttrees/zhaoxin-contract
## Basic Information
- **Project Name**: 肇新合同管理系统(开源版)
- **Description**: 面向企业的开源合同管理平台,覆盖合同起草、模板管理、审批流转、合同编号、在线编辑及合同台账等核心功能,支持 OnlyOffice在线编辑,可作为企业合同管理系统的技术参考与二次开发基础。
- **Primary Language**: Java
- **License**: MIT
- **Default Branch**: contract0.9.1
- **Homepage**: http://zhaoxinms.com
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 937
- **Created**: 2026-07-18
- **Last Updated**: 2026-07-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 肇新合同管理系统(开源版)
**Zhaoxin Contract Management System — Open Source Edition**
[](LICENSE)
[](https://www.oracle.com/java/)
[](https://spring.io/projects/spring-boot)
[](https://v2.vuejs.org/)
[](https://www.activiti.org/)
由 **山西肇新科技有限公司** 出品 · 官网 [zhaoxinms.com](http://zhaoxinms.com)
[功能截图](#-功能截图) · [在线体验](#-在线体验) · [快速开始](#快速开始) · [文档](#-文档)
---
## 项目简介
肇新合同管理开源版,是一套面向企业的合同管理平台,覆盖合同起草、模板管理、审批流转等核心环节。
本仓库开源的是商用产品的部分功能, **早期版本(0.9)的核心模块**,源自实际交付的商业系统,可作为企业级合同管理的技术参考与二次开发基础。
> - 公司最新版本(2026 年)已迭代至 **2.x**,内核已全面采用最新技术重写,并集成 AI 能力(详见下文)。最新版与本开源版本在架构和功能上存在较大差异。
## 🖼 功能截图
以下均为开源版实际界面,点击图片可查看原图。
| 登录页面 | 系统首页与任务工作台 |
|---|---|
| [](docs/images/login.png) | [](docs/images/index.png) |
| 合同起草 | 审批流程设计器 |
|---|---|
| [](docs/images/draft.png) | [](docs/images/workflow.png) |
| OnlyOffice 在线编辑 | 合同审批 |
|---|---|
| [](docs/images/editor.png) | [](docs/images/approval.png) |
## 🌐 在线体验
> 本开源版暂未单独部署在线演示环境。以下地址展示的是其他商业版本,界面与功能和本仓库存在差异,仅供产品体验参考。
- 演示地址:[zhaoxinms.com/demo](https://zhaoxinms.com/demo)
> 演示环境仅供功能预览,数据会定期重置,请勿录入真实数据。
## 技术栈
| 分类 | 技术选型 | 说明 |
|---|---|---|
| 后端框架 | Spring Boot 2.6.x | Java 11 |
| 权限认证 | Sa-Token + JWT | 无状态 Token |
| 数据库 | MySQL 8.x | |
| 缓存 | Redis | 会话、分布式锁、限流 |
| ORM | MyBatis-Plus 3.5.x | |
| 工作流 | Activiti 6.x | 合同审批流程 |
| 在线编辑 | OnlyOffice / WPS | 合同文档在线编辑、多人协同 |
| 文件存储 | 本地文件系统 | |
| 前端框架(PC) | Vue 2.6 + Element UI 2.15 | `zxcm-ui` 模块 |
| 企业通讯 | 钉钉开放平台 / JustAuth | 钉钉组织架构与用户同步,可选 OAuth 登录、消息推送 |
| 部署 | Docker + Compose | 容器化部署 |
> 本系统基于优秀的开源框架 [RuoYi-Vue-Plus](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus)(MIT 协议)二次开发,在此致谢。
## 🏗 系统架构
[](docs/images/architecture.png)
架构图覆盖合同生命周期、核心业务模块、平台支撑、数据运行环境及可选外部集成。开发者可进一步查看 [架构说明](ARCHITECTURE.md)。
## ✨ 核心功能
本系统相较于通用后台脚手架,重点沉淀了合同领域的专业能力:
- **📝 合同在线编辑(OnlyOffice + WPS 双引擎)**
集成 OnlyOffice 实现合同文档的在线编辑、多人协同与回调保存;同时内置 WPS 开放平台对接能力。
> ⚠️ 说明:本开源版本中的 WPS 对接基于 WPS 早期开放接口实现,WPS 官方现已切换为新版接口,**旧接口已不可用**,仅作历史参考。推荐使用 OnlyOffice 方案。
- **🧩 合同模板管理(上传式)**
支持合同模板的上传、使用范围与版本(发布/停用)管理,按合同类型组织模板库,起草时一键引用。
- **🔄 合同审批流程(基于 Activiti 工作流)**
内置自研流程引擎与设计器,支持起草 → 审批 → 用印(盖章/上传双章)的核心流转,并通过领域事件(`ContractEvent`)驱动状态扭转、记录全程节点日志。履行状态与统计仍保留在后端领域模型中,开源版不提供独立履约任务页面。
- **🔢 合同编号规则引擎**
可视化配置编号规则(前缀、日期、按主体/类型/年月维度的独立流水、自动重置),规则解释执行 + 同步事务保证并发下编号唯一,业务零代码适配任意编号规范。
- **📊 看板与台账**
合同统计看板(`DashboardController`)与合同台账,提供草拟、审批及合同状态等维度的统计和查询。
- **📄 文档处理能力**
集成 docx4j、iText、POI 等,支持 Word/Excel/PDF 解析、文档合并(`DocMergeUtil`)、模板渲染与导出。
- **📨 多渠道通知**
邮件 + 短信(sms4j)通知,覆盖审批、到期等关键节点提醒。
- **🏢 钉钉组织与用户同步**
保留 `zxcm-third/zxcm-syncData` 模块,支持从钉钉通讯录同步部门、用户和第三方账号映射到系统用户;用户管理页在开启钉钉配置后显示"同步钉钉"入口,可选配钉钉 OAuth 登录与消息推送。
## 🗺 开发计划
### 履约计划与任务中心
下一步计划补充基础履约管理功能,形成合同签订后的任务跟踪闭环。
- **履约计划管理**
在合同下新增、编辑、取消和查看履约任务。
- **履约任务类型**
支持付款、收款、开票、交付、验收和其他事项。
- **任务基本信息**
记录计划日期、计划金额、责任人和任务说明。
- **任务状态**
支持待执行、已完成、已逾期和已取消状态。
- **完成记录**
任务完成时记录实际完成日期、实际金额、办理说明和相关附件。
- **合同履约信息**
在合同详情中增加履约计划页签,展示该合同的履约任务和完成情况。
- **任务中心**
提供“我的履约任务”页面,查看本人负责的待执行、已逾期和已完成任务。
## 🚀 商业版 2.0:AI 驱动合同全生命周期协同
肇新合同管理系统 2.0 是面向企业的全新一代商业版本。系统以合同全生命周期平台为基础,将 AI 融入起草、审查、审批、签署、履约和经营分析等关键环节,使智能能力直接参与业务协同,而不是作为独立的附加工具。
- **智能业务助手**:支持自然语言查询合同与待办、合同起草与信息提取、规则化风险预审、履约任务生成、工作报表及企业知识库问答。
- **合同业务闭环**:覆盖起草、审批、用印与电子签、归档、履约、变更、借阅、中止及作废,并通过统一任务中心持续跟踪办理过程。
- **企业级支撑**:提供动态表单、可视化流程、数据权限、在线文档与多渠道通知,支持企业微信、钉钉、飞书及私有化部署。
- **灵活交付合作**:面向企业客户及软件行业合作伙伴提供产品实施、集成适配与项目交付支持;商业版 2.0 可结合项目需求协商源码交付方案。
2.0 商业版不包含在本开源仓库中。更多说明见 [肇新合同管理系统 2.0](docs/肇新合同管理系统2.0.md),如需了解或试用可访问 [zhaoxinms.com](http://zhaoxinms.com)。
## 模块结构
整体结构以 **合同业务模块** 为核心,基础框架统一收敛到 `ruoyi-base` 之下,目录更清晰:
```
ruoyi-vue-plus (root)
├── ruoyi-admin # 启动入口、Web 控制层
├── ruoyi-base # 基础框架聚合(基于 RuoYi-Vue-Plus)
│ ├── ruoyi-common # 通用工具
│ ├── ruoyi-framework # 框架核心配置
│ ├── ruoyi-system # 系统管理(用户、角色、菜单、字典等)
│ ├── ruoyi-generator # 代码生成器
│ └── ruoyi-tenant # 多租户支持
├── zxcm-contract # ★ 合同核心业务(合同、模板、在线编辑等)
├── zxcm-form # 合同类型配置
├── zxcm-workflow # 合同工作流(基于 Activiti)
├── zxcm-notify # 消息通知(邮件、短信)
├── zxcm-third # 第三方能力
│ ├── zxcm-excel # Excel/Word 导入导出
│ └── zxcm-syncData # 钉钉组织架构 / 用户同步、第三方账号映射
└── zxcm-ui # PC 前端(Vue 2 + Element UI)
```
### 基础框架模块(`ruoyi-base`,基于 RuoYi-Vue-Plus)
| 模块 | 说明 |
|---|---|
| `ruoyi-common` | 通用工具 |
| `ruoyi-framework` | 框架核心配置 |
| `ruoyi-system` | 系统管理(用户、角色、菜单、字典等) |
| `ruoyi-generator` | 代码生成器 |
| `ruoyi-tenant` | 多租户支持 |
### 合同业务模块(核心)
| 模块 | 说明 |
|---|---|
| `zxcm-contract` | 合同核心业务(合同、模板、在线编辑等) |
| `zxcm-form` | 合同类型配置 |
| `zxcm-workflow` | 合同工作流(基于 Activiti,审批/用印/变更) |
| `zxcm-notify` | 消息通知(邮件、短信) |
| `zxcm-third/zxcm-excel` | Excel / Word 导入导出 |
| `zxcm-third/zxcm-syncData` | 钉钉组织架构 / 用户同步、第三方账号映射 |
### 前端
| 目录 | 说明 |
|---|---|
| `zxcm-ui` | 本版本 PC 前端(Vue 2 + Element UI) |
## 📚 文档
完整文档位于 [`docs/`](docs/) 目录:
| 文档 | 内容 |
|---|---|
| [商业版 2.0 产品介绍](docs/肇新合同管理系统2.0.md) | AI 协同、合同全生命周期与企业级支撑能力概览 |
| [架构说明](ARCHITECTURE.md) | 模块结构、依赖、关键设计、请求链路(开发者 / AI 友好概览) |
| [核心实现逻辑](docs/核心实现.md) | 智能比对、事件驱动生命周期、工作流联动、编号引擎的实现剖析 |
| [技术文档(架构)](docs/技术文档.md) | 技术栈、模块结构、模块依赖、关键设计 |
| [开发与运行文档](docs/开发运行文档.md) | 本地环境搭建、后端/前端运行、计划任务、常见问题 |
| [服务器部署文档](docs/服务器部署文档.md) | Docker + Compose 容器化部署、上线安全清单 |
| [数据库初始化](docs/数据库初始化.md) | 初始化脚本说明与导入步骤、默认账号 |
| [系统初始化文档](docs/系统初始化文档.md) | 首次登录后的租户、组织、角色、合同类型、流程、模板、编号规则配置 |
| [流程配置说明](docs/流程配置说明.md) | 流程设计器、岗位变量、角色审批、学校/学院等复杂负责层级配置 |
| [数据库设计](docs/数据库设计.md) | 表分组、通用字段、业务域说明 |
## 🤝 参与贡献
欢迎任何形式的贡献!参与前请阅读:
| 文档 | 内容 |
|---|---|
| [贡献指南](CONTRIBUTING.md) | 如何提 Issue / PR、代码与提交规范 |
| [行为准则](CODE_OF_CONDUCT.md) | 社区行为准则 |
| [安全策略](SECURITY.md) | 如何报告安全漏洞 |
## 快速开始
### 环境要求
- JDK 11
- Maven 3.8+
- MySQL 8.x
- Redis
- Node.js(前端)
- OnlyOffice(合同在线编辑,可选)
详细步骤见 [开发与运行文档](docs/开发运行文档.md)。
### 数据库初始化
```bash
# 创建数据库(utf8mb4)后导入初始化脚本(已含字段注释补全)
mysql -u <账号> -p zxcm < script/sql/zxcm_init.sql
```
完整说明见 [数据库初始化](docs/数据库初始化.md)。本地开发时请注意 `application-dev.yml` 中的默认库名,建议统一改为 `zxcm`。
### 后端启动
```bash
# 1. 修改配置文件中的数据库、Redis 等连接信息
# ruoyi-admin/src/main/resources/application-dev.yml
# 2. 编译并启动
mvn clean package -DskipTests
java -jar ruoyi-admin/target/zxcm-admin.jar
```
后端默认端口 8080。
### 前端启动
```bash
cd zxcm-ui
npm install
npm run dev
```
前端默认端口 80,默认账号 `zxcmAdmin` / `123456`(首次登录请立即修改)。
### 系统初始化
首次登录后,请继续完成租户、部门、岗位、角色、用户、签约主体、合同类型、审批流程、编号规则、合同模板等基础配置。
完整步骤见 [系统初始化文档](docs/系统初始化文档.md)。
### Docker 部署
部署脚本与编排文件位于 `script/` 目录,完整步骤见 [服务器部署文档](docs/服务器部署文档.md)。
> 📌 部署前请务必修改 `script/docker-compose.yml` 与各 `application-*.yml` 中的默认账号、密码与密钥。
## 配置安全提示
开源版本中的数据库账号、密码、控制台账号、JWT 密钥等均为**占位/默认值**,请在实际部署前全部替换为自己的安全配置,切勿在生产环境直接使用默认值。
## 开源协议
本项目基于 [MIT 协议](LICENSE) 开源,允许商业使用、修改、分发、再许可和销售软件副本。
任何副本或实质部分必须保留 [LICENSE](LICENSE)、[NOTICE.md](NOTICE.md)、源代码/文档/界面中已有的版权与归属标记,包括“肇新合同管理系统”“山西肇新科技有限公司”版权声明以及 RuoYi-Vue-Plus 来源声明。
MIT 协议不授予商标或品牌背书权,未经书面许可,不得使用“肇新”“肇新合同管理系统”“山西肇新科技有限公司”等名称或标识暗示官方授权、认证、合作或背书。
```
Copyright (c) 2021-2026 山西肇新科技有限公司 (Shanxi Zhaoxin Technology Co., Ltd.)
本项目基于 RuoYi-Vue-Plus (MIT License) 二次开发。
```
## 关于我们
**山西肇新科技有限公司**成立于 2021 年,长期专注企业合同管理数字化建设,围绕合同全生命周期管理、业务流程协同和智能化应用持续进行产品研发与项目实践,积累了较为完整的合同业务理解与工程交付经验。
除直接服务企业客户外,我们也与软件公司、系统集成商及行业解决方案伙伴开展合作,为合同管理相关项目提供产品能力、方案支持、集成适配和交付协同,帮助合作伙伴将专业合同管理能力融入自身解决方案,更高效地完成项目建设与落地。
针对私有化部署、深度集成或持续二次开发等需求,商业版 2.0 可结合具体项目协商源码交付及配套技术服务;实际授权范围、交付内容与维护方式以双方约定为准。
- 🌐 官网:[http://zhaoxinms.com](http://zhaoxinms.com)
欢迎 Star、Issue 与 PR,一起把开源合同系统做得更好。