# 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 的企业级标准作业程序管理平台

[![RuoYi-Vue-Plus](https://img.shields.io/badge/RuoYi_Vue_Plus-5.5.1-success.svg)](https://gitee.com/dromara/RuoYi-Vue-Plus) [![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.5-blue.svg)]() [![JDK-17](https://img.shields.io/badge/JDK-17+-green.svg)]() [![License](https://img.shields.io/badge/License-MIT-blue.svg)](./LICENSE) [![MyBatis-Plus](https://img.shields.io/badge/MyBatis--Plus-3.5.14-orange.svg)]() [![Sa-Token](https://img.shields.io/badge/Sa--Token-1.44.0-red.svg)]()
--- ## 📖 项目简介 **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) 开源协议。