# yqmm-boot **Repository Path**: SongXianYang/yqmm-boot ## Basic Information - **Project Name**: yqmm-boot - **Description**: 后端工作流二次封装 其他研发组件整合使用案例 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 49 - **Forks**: 36 - **Created**: 2022-01-20 - **Last Updated**: 2026-04-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

logo

yqmm-flowable 2.0-SNAPSHOT

工作流程管理平台

Fork 数量

# 🚀 yqmm-flowable 工作流模块 ## 📋 项目简介 yqmm-flowable 是基于 Flowable 6.8.0 构建的企业级工作流管理模块,作为 yqmm-boot 项目的核心组成部分,提供了完整的工作流生命周期管理功能。该模块支持可视化流程设计、流程实例管理、任务处理、会签/或签、定时任务、邮件通知等企业级工作流特性,适用于各类业务流程自动化场景。 ## 🛠️ 技术栈 ### 🔧 后端 - Java 8 - Spring Boot - Flowable 6.8.0 - MyBatis Plus - MySQL ### 🎨 前端 - Vue 2.x - Element UI - BPMN 2.0 流程设计器 - Vue Router - Axios ## 📁 项目结构 ``` yqmm-flowable/ ├── doc/ # 项目文档目录 │ ├── 6.8.0/ # Flowable 6.8.0 相关文档 │ ├── Apifox/ # API 接口文档 │ ├── mail/ # 邮件服务相关文档 │ ├── 业务系统整合/ # 业务系统整合示例 │ ├── 会签/ # 会签功能文档 │ ├── 定时边界事件/ # 定时边界事件文档 │ ├── 总结/ # 技术总结文档 │ └── 退回/ # 流程退回功能文档 ├── flow-ui/ # 前端项目目录 │ ├── src/ # 前端源码 │ ├── dist/ # 前端构建产物 │ ├── package.json # 前端依赖配置 │ └── webpack.config.js # Webpack 配置 ├── sql/ # 数据库脚本 ├── src/ # 后端源码 │ ├── main/java/com/song/flowable/ │ │ ├── aop/ # AOP 切面 │ │ ├── config/ # 配置类 │ │ ├── convert/ # 实体转换 │ │ ├── dto/ # 数据传输对象 │ │ ├── entity/ # 实体类 │ │ ├── listener/ # 监听器 │ │ ├── mapper/ # Mapper 接口 │ │ ├── service/ # 业务服务 │ │ ├── util/ # 工具类 │ │ ├── vo/ # 视图对象 │ │ ├── web/ # 控制器 │ │ └── YqmmFlowableApplication.java # 应用入口 │ └── main/resources/ # 资源文件 ├── .gitignore # Git 忽略配置 ├── README.md # 项目说明文档 └── pom.xml # Maven 依赖配置 ``` ## ✨ 功能特性 ### 🎯 核心功能 - ✅ 可视化流程设计(基于 BPMN 2.0 标准) - ✅ 流程部署与版本管理 - ✅ 流程实例创建与跟踪 - ✅ 任务分配与处理 - ✅ 候选人/候选组支持 - ✅ 会签/或签功能 - ✅ 流程加签/转签 - ✅ 流程挂起/激活 - ✅ 流程退回与撤回 - ✅ 定时边界事件 - ✅ 邮件通知集成 - ✅ 表单管理 ### 🌟 高级特性 - ✅ 多实例任务支持 - ✅ 流程监听器 - ✅ 任务监听器 - ✅ 表达式支持 - ✅ 动态分配任务 - ✅ 流程变量管理 - ✅ 历史流程查询 - ✅ 流程统计与分析 ## 🚀 快速开始 ### 💻 环境要求 - JDK 8+ - Maven 3.6+ - MySQL 5.7+ - Node.js 14+ - npm 6+ ### 🖥️ 后端启动 1. **数据库准备** - 创建 MySQL 数据库:`yqmm_flowable` - 执行 SQL 脚本:`sql/flowable_new.sql` 2. **配置修改** - 修改 `src/main/resources/application-local.yml` 中的数据库配置 3. **启动项目** ```bash mvn clean install mvn spring-boot:run ``` ### 📱 前端启动 1. 📦 **安装依赖** ```bash cd flow-ui npm install ``` 2. 🚀 **启动开发服务器** ```bash npm run dev ``` 3. 🌐 **访问前端** 浏览器打开:`http://localhost:8080` ## ⚙️ 配置说明 ### 🔑 核心配置 ```yaml flowable: # 开启异步执行器 async-executor-activate: true # 自动更新数据库表结构 database-schema-update: true # 邮件服务器配置 mail: server: default-charset: UTF-8 default-from: your-email@example.com host: smtp.example.com username: your-email@example.com password: your-password use-ssl: true s-s-l-port: 465 ``` ### 🎨 自定义配置 | 配置项 | 说明 | 默认值 | |--------|------|--------| | flowable.async-executor-activate | 开启异步执行器 | true | | flowable.database-schema-update | 数据库表结构更新策略 | true | | flowable.mail.server.default-from | 默认发件人邮箱 | s15738993185@163.com | | flowable.mail.server.host | 邮件服务器地址 | smtp.163.com | | flowable.mail.server.username | 邮件服务器用户名 | s15738993185@163.com | | flowable.mail.server.password | 邮件服务器密码 | - | ## 📖 功能模块详解 ### 🎨 1. 流程设计器 基于 BPMN 2.0 标准的可视化流程设计器,支持拖拽式流程建模: - 📋 支持各类任务节点(用户任务、服务任务、脚本任务等) - 🔀 支持网关(排他网关、并行网关、包容性网关) - ⏰ 支持事件(开始事件、结束事件、边界事件等) - 🔗 支持序列流、消息流配置 - 💾 支持流程变量、表达式配置 ### 📊 2. 流程管理 - 🚀 **流程部署**:支持上传 BPMN 文件或通过设计器直接部署 - 🔄 **版本管理**:自动维护流程定义版本 - ⏸️ **流程激活/挂起**:支持全局或单个流程实例的挂起与激活 - 📈 **流程监控**:实时监控流程实例运行状态 ### 📋 3. 任务管理 - 🔔 **待办任务**:查询分配给自己的待处理任务 - ✅ **已办任务**:查询已处理的历史任务 - 🎯 **任务认领**:从候选任务中认领任务 - 👥 **任务委托**:将任务委托给其他用户 - 🔄 **任务转签**:将任务转交给其他用户处理 - ➕ **任务加签**:在当前任务节点增加审批人 ### 👥 4. 会签功能 支持多种会签模式: - 🚀 **并行会签**:多个审批人同时审批 - 🔄 **串行会签**:审批人按顺序依次审批 - 📊 **百分比会签**:达到指定比例的审批通过即可 - 🔢 **数量会签**:达到指定数量的审批通过即可 ### ⏰ 5. 定时边界事件 支持在任务节点上配置定时边界事件: - 🔔 超时提醒:任务超过指定时间未处理时发送提醒 - ⚙️ 超时自动处理:任务超过指定时间自动执行预设操作 - 💬 灵活的时间表达式配置 ### 📧 6. 邮件通知 集成邮件服务,支持: - 🎯 任务分配通知 - ✅ 任务审批结果通知 - ⏰ 流程超时提醒 - 🎨 自定义邮件模板 ### 📝 7. 表单管理 支持流程表单的设计与管理: - 🎨 在线表单设计器 - 🔗 表单与流程关联 - 💾 表单数据存储与查询 - 🔄 动态表单渲染 ### 🔄 8. 流程退回 支持灵活的流程退回策略: - ↩️ 退回至上一步 - 🎯 退回至指定节点 - 👤 退回至流程发起者 - 💾 支持退回时的数据处理 ## 📚 API 文档 项目集成了 Swagger API 文档,启动项目后可访问: ``` 🔗 http://localhost:8089/doc.html ``` 同时提供了 Apifox 格式的 API 文档,位于: ``` 📁 doc/Apifox/本地.apifox.json ``` ## 🧩 业务整合示例 项目提供了完整的业务系统整合示例,如请假流程: - 📄 文档位置:`doc/业务系统整合/biz_leave请假.md` - 📊 流程图:`doc/业务系统整合/请假业务整合.png` ### 📋 整合步骤 1. **定义业务表单**:创建请假申请表单 2. **设计流程模型**:使用流程设计器创建请假流程 3. **配置流程变量**:定义流程所需的业务变量 4. **实现业务接口**:集成业务系统与工作流模块 5. **处理流程事件**:通过监听器处理流程事件 ## 📖 开发指南 ### 📝 代码规范 - 遵循 Java 8 编码规范 - 使用 Lombok 简化实体类 - 服务层接口使用 `Service` 后缀 - 实现类使用 `ServiceImpl` 后缀 - 控制器使用 `Web` 或 `Controller` 后缀 ### 📐 流程设计规范 - 流程 ID 使用英文小写+下划线 - 任务节点名称清晰描述审批环节 - 网关名称明确审批条件 - 为关键节点添加监听器 - 合理使用流程变量 ### 🔌 监听器开发 项目支持多种监听器: - **流程监听器**:监听流程的开始、结束等事件 - **任务监听器**:监听任务的创建、分配、完成等事件 - **执行监听器**:监听流程执行的各个阶段 示例监听器位于:`src/main/java/com/song/flowable/listener/` ## ❓ 常见问题 ### 1. 流程设计器无法加载 **解决方案**:确保前端依赖已正确安装,检查浏览器控制台是否有错误信息 ### 2. 任务无法分配给用户 **解决方案**:检查用户是否已正确配置,确保用户与候选组的关联关系正确 ### 3. 邮件通知不发送 **解决方案**:检查邮件服务器配置是否正确,确保网络连接正常 ### 4. 流程实例启动失败 **解决方案**:检查流程定义是否正确,确保所有必填参数已提供 ## 📚 文档目录 项目提供了详细的功能文档,位于 `doc/` 目录: | 📄 文档名称 | 📁 路径 | 💡 说明 | |------------|---------|--------| | 版本更新说明 | doc/6.8.0/更新说明.md | Flowable 6.8.0 版本更新内容 | | 表结构文档 | doc/6.8.0/表结构以及字段注释.md | 数据库表结构说明 | | 邮件服务文档 | doc/mail/doc.md | 邮件服务配置与使用 | | 会签功能文档 | doc/会签/会签1.2功能说明.md | 会签功能详细说明 | | 定时事件文档 | doc/定时边界事件/说明.md | 定时边界事件配置 | | 流程退回文档 | doc/退回/Return.md | 流程退回功能说明 | | 监听器文档 | doc/总结/Flowable监听器.md | 监听器开发指南 | ## 🤝 贡献指南 1. 🍴 Fork 项目 2. 🌿 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 💾 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 🚀 推送到分支 (`git push origin feature/AmazingFeature`) 5. 🎯 开启 Pull Request ## 📄 许可证 本项目采用 MIT 许可证,详情请查看 [LICENSE](https://gitee.com/SongXianYang/yqmm-boot/blob/master/LICENSE) 文件。 ## 📞 联系方式 如有问题或建议,请通过以下方式联系: - 🔗 项目地址:[yqmm-boot/yqmm-flowable](https://gitee.com/SongXianYang/yqmm-boot) - 📧 邮箱:s15738993185@163.com --- **yqmm-flowable** - 让工作流更简单、更高效! 🚀 img_3