# sop-manager-server
**Repository Path**: rorop/sop
## Basic Information
- **Project Name**: sop-manager-server
- **Description**: SOP Manager是一套基于 Spring Boot 3.5 + MyBatis-Plus + Sa-Token + JDK21 构建的现代化企业级SOP管理平台。
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 0
- **Created**: 2025-12-23
- **Last Updated**: 2026-02-13
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
🏢 SOP 流程管理系统
基于 Spring Boot 3.5 + MyBatis-Plus + JDK21 的企业级标准作业程序管理平台
[](https://gitee.com/dromara/RuoYi-Vue-Plus)
[]()
[]()
[](./LICENSE)
[]()
[]()
---
## 📖 项目简介
**SOP Manager**是一套基于 **Spring Boot 3.5 + MyBatis-Plus + Sa-Token + Warm-Flow** 构建的企业级标准作业程序管理平台。
### 🎯 项目背景
**标准作业程序(Standard Operating Procedure,SOP)** 是企业实现流程标准化、提升运营效率、保障产品质量的核心工具。随着企业规模扩大和业务复杂度提升,传统的Word/Excel文档式SOP管理已无法满足现代企业需求:
- 📄 **管理分散**:流程文档分散在各部门,缺乏统一管控
- 🔄 **更新滞后**:流程变更后文档更新不及时,执行标准不统一
- 📉 **追溯困难**:无法追踪流程版本变更历史,问题定位困难
- ⏳ **发布低效**:流程发布审批流程繁琐,响应速度慢
- 📊 **评估缺失**:缺乏流程执行效果的量化评估机制
### 🎯 项目目标
本系统致力于为企业提供专业的SOP全生命周期管理能力:
1. **架构化管理**:支持多层级流程架构分类,实现流程资产的体系化管理
2. **可视化设计**:前后端配合的泳道流程图设计,让复杂业务流程直观呈现
3. **版本化控制**:完整的版本管理机制,每次发布自动归档,支持历史回溯
4. **流程化审批**:集成工作流引擎,支持流程发布的多级审批
5. **指标化评估**:KPI指标配置与追踪,量化评估流程执行效果
### 🌟 核心亮点
- **🏗️ 流程架构管理**:树形结构分类管理,支持无限层级,实现流程资产体系化
- **📊 完整数据模型**:流程定义、角色、活动、输入输出、文件、KPI等10张核心表,覆盖SOP全要素
- **🔄 版本管理机制**:流程发布自动创建版本快照,支持版本对比和历史回溯
- **✅ 审批工作流**:集成 Warm-Flow 工作流引擎,支持流程发布的审批流转
- **🏢 多租户架构**:SaaS多租户设计,租户数据隔离,适合集团化企业部署
- **🔐 权限安全**:基于 Sa-Token 的RBAC权限模型,支持菜单和按钮级权限控制
- **📈 门户统计**:SOP门户提供流程统计、收藏管理、访问记录等便捷功能
- **📄 文档生成**:支持生成标准化流程文档,便于培训和执行
---
## 🏗️ 系统架构
```
sop/
├── ruoyi-admin/ # 启动模块 (Web服务入口)
├── ruoyi-common/ # 通用模块
│ ├── ruoyi-common-bom/ # 依赖版本管理
│ ├── ruoyi-common-core/ # 核心工具类
│ ├── ruoyi-common-doc/ # 接口文档
│ ├── ruoyi-common-encrypt/ # 加密模块
│ ├── ruoyi-common-excel/ # Excel导入导出
│ ├── ruoyi-common-idempotent/ # 幂等处理
│ ├── ruoyi-common-job/ # 定时任务
│ ├── ruoyi-common-json/ # JSON处理
│ ├── ruoyi-common-log/ # 日志记录
│ ├── ruoyi-common-mail/ # 邮件服务
│ ├── ruoyi-common-mybatis/ # MyBatis增强
│ ├── ruoyi-common-oss/ # 对象存储
│ ├── ruoyi-common-ratelimiter/ # 限流处理
│ ├── ruoyi-common-redis/ # Redis缓存
│ ├── ruoyi-common-satoken/ # Sa-Token认证
│ ├── ruoyi-common-security/ # 安全模块
│ ├── ruoyi-common-sensitive/ # 数据脱敏
│ ├── ruoyi-common-sms/ # 短信服务
│ ├── ruoyi-common-social/ # 社交登录
│ ├── ruoyi-common-sse/ # SSE推送
│ ├── ruoyi-common-tenant/ # 多租户
│ ├── ruoyi-common-translation/ # 数据翻译
│ ├── ruoyi-common-web/ # Web通用
│ └── ruoyi-common-websocket/ # WebSocket
├── ruoyi-extend/ # 扩展模块
│ ├── ruoyi-monitor-admin/ # 监控中心
│ └── ruoyi-snailjob-server/ # 任务调度中心
├── ruoyi-modules/ # 业务模块
│ ├── ruoyi-demo/ # 演示模块
│ ├── ruoyi-generator/ # 代码生成
│ ├── ruoyi-job/ # 任务客户端
│ ├── ruoyi-sop/ # ⭐ SOP核心模块
│ ├── ruoyi-system/ # 系统管理
│ └── ruoyi-workflow/ # 工作流模块
└── script/ # 脚本文件
├── bin/ # 启动脚本
├── docker/ # Docker配置
└── sql/ # 数据库脚本
```
---
## ⭐ SOP核心模块
### 📋 功能架构
| 模块 | 功能说明 | 接口路径 |
|------|----------|----------|
| 流程架构管理 | 树形架构分类、支持无限层级 | `/sop/architecture` |
| 流程定义管理 | 流程CRUD、复制、状态变更 | `/sop/process` |
| 流程活动管理 | 活动节点、输入输出、KCP标识 | `/sop/activity` |
| 流程角色管理 | 角色定义、岗位映射、泳道配置 | `/sop/role` |
| 流程文件管理 | 模板/指导/记录文件 | `/sop/file` |
| 流程KPI管理 | KPI指标定义与配置 | `/sop/kpi` |
| 流程审批管理 | 发布审批、撤销、直接发布 | `/sop/approval` |
| SOP门户 | 统计、收藏、最近访问 | `/sop/portal` |
| 流程文档 | 生成流程文档数据 | `/sop/document` |
### 💾 数据库设计
系统包含10张核心表:
| 表名 | 说明 | 关键字段 |
|------|------|----------|
| `sop_architecture` | 流程架构表 | 树形结构、支持多租户 |
| `sop_process` | 流程定义表 | 基本信息、驱动规则、流程图数据 |
| `sop_process_role` | 流程角色表 | 角色类型、岗位映射、泳道样式 |
| `sop_process_activity` | 流程活动表 | 活动类型、KCP标识、节点位置 |
| `sop_activity_io` | 活动输入输出表 | IO类型、关联文件 |
| `sop_process_file` | 流程文件表 | 文件类型、OSS关联 |
| `sop_process_kpi` | 流程KPI表 | KPI定义、计算公式、目标值 |
| `sop_process_version` | 版本历史表 | 版本快照、发布记录 |
| `sop_user_favorite` | 用户收藏表 | 用户收藏流程 |
| `sop_user_access_log` | 访问记录表 | 访问历史追踪 |
### 📊 字典配置
| 字典类型 | 说明 | 可选值 |
|----------|------|--------|
| `sop_process_status` | 流程状态 | draft/pending/published/archived |
| `sop_drive_type` | 驱动类型 | event/time/both |
| `sop_activity_type` | 活动类型 | task/decision/review/system |
| `sop_role_type` | 角色类型 | normal/virtual/public/customer |
| `sop_file_type` | 文件类型 | template/guide/record/spec |
---
## 🛠️ 技术栈
### 核心框架
- **Spring Boot 3.5.x** - 应用框架
- **MyBatis-Plus 3.5.14** - ORM框架
- **Sa-Token 1.44.0** - 权限认证
- **Warm-Flow 1.8.4** - 工作流引擎
### 中间件
- **MySQL 8.0+** - 关系数据库(支持Oracle/PostgreSQL/SQLServer)
- **Redis 7.x** - 缓存数据库
- **MinIO** - 对象存储(支持AWS S3协议)
### 开发工具
- **Lombok** - 代码简化
- **MapStruct-Plus** - 对象映射
- **Hutool** - 工具类库
- **SpringDoc** - API文档
---
## 🚀 快速开始
### 环境要求
- JDK 17+ (推荐 JDK 21)
- Maven 3.8+
- MySQL 8.0+
- Redis 7.x
- Node.js 20+ (前端)
### 安装步骤
1. **克隆项目**
```bash
git clone
cd sop
```
2. **导入数据库**
```bash
# 导入基础表
mysql -u root -p < script/sql/ry_vue_5.X.sql
mysql -u root -p < script/sql/ry_workflow.sql
mysql -u root -p < script/sql/ry_job.sql
# 导入SOP表
mysql -u root -p < script/sql/sop_mysql.sql
```
3. **修改配置**
编辑 `ruoyi-admin/src/main/resources/application-dev.yml`:
```yaml
spring:
datasource:
url: jdbc:mysql://localhost:3306/your_database
username: your_username
password: your_password
data:
redis:
host: localhost
port: 6379
```
4. **启动项目**
```bash
# 方式一:Maven命令
mvn spring-boot:run -pl ruoyi-admin
# 方式二:IDE启动
# 运行 RuoYiApplication.java
```
5. **访问服务**
- 后端接口: http://localhost:8080
- API文档: http://localhost:8080/doc.html
---
## 📝 开发规范
### 代码规范
- 遵循阿里巴巴Java开发规范
- 使用统一代码格式化配置
- 注释完整,支持JavaDoc文档生成
### 分层架构
```
Controller → Service → Mapper → Database
↓ ↓ ↓
Bo/Vo Domain Entity
```
### 命名规范
- 包名:`org.dromara.sop.*`
- 类名:`Sop*` 前缀
- 表名:`sop_*` 前缀
---
## 🐳 Docker部署
```bash
# 构建镜像
docker build -t sop-admin:latest -f ruoyi-admin/Dockerfile .
# 运行容器
docker run -d \
--name sop-admin \
-p 8080:8080 \
-e SPRING_PROFILES_ACTIVE=prod \
sop-admin:latest
```
详细Docker编排配置请参考 `script/docker/` 目录。
---
## 📋 API接口
### SOP流程接口示例
```bash
# 获取流程列表
GET /sop/process/list?pageNum=1&pageSize=10
# 获取流程详情
GET /sop/process/{processId}
# 获取流程完整信息(含角色、活动、文件、KPI)
GET /sop/process/{processId}/full
# 新增流程
POST /sop/process
Content-Type: application/json
{
"processName": "采购流程",
"processCode": "PUR-001",
"architectureId": 1,
"processStatus": "draft"
}
# 保存流程图
PUT /sop/process/{processId}/graph
{
"graphData": "{\"nodes\":[...],\"edges\":[...]}"
}
# 提交审批
POST /sop/approval/submit/{processId}
# 直接发布
POST /sop/approval/publish/{processId}
```
---
## 📚 相关文档
- [Sa-Token 权限认证](https://sa-token.dev33.cn/)
- [MyBatis-Plus 文档](https://baomidou.com/)
- [Warm-Flow 工作流](http://warm-flow.cn/)
- [Spring Boot](https://spring.io/projects/spring-boot)
---
## 🙏 致谢
本项目的开发离不开以下优秀开源项目的支持:
| 项目 | 说明 |
|------|------|
| [RuoYi-Vue-Plus](https://gitee.com/dromara/RuoYi-Vue-Plus) | 后端基础框架,提供了完善的企业级开发能力 |
| [Dromara 开源社区](https://dromara.org/) | 优秀的国产开源社区 |
感谢所有开源贡献者的无私奉献!🎉
---
## 🤝 贡献指南
1. Fork 本仓库
2. 创建功能分支 (`git checkout -b feature/amazing-feature`)
3. 提交更改 (`git commit -m 'feat: add amazing feature'`)
4. 推送到分支 (`git push origin feature/amazing-feature`)
5. 提交 Pull Request
### 提交规范
- `feat`: 新功能
- `fix`: Bug修复
- `docs`: 文档更新
- `style`: 代码格式
- `refactor`: 代码重构
- `perf`: 性能优化
- `test`: 测试相关
- `chore`: 构建/工具
---
## 📄 开源协议
本项目基于 [MIT License](./LICENSE) 开源协议。