模块设计
2025/12/3大约 6 分钟
FlowMind 模块设计文档
模块概览
FlowMind 基于 RuoYi-Cloud 框架构建,详细架构请参考:RuoYi-Cloud 官方文档
核心业务模块
工作流服务 (ruoyi-flowable)
模块概述
工作流服务模块是 FlowMind 系统的核心业务模块,负责处理审批流程的创建、执行和管理。该模块与 Flowable 工作流引擎深度集成,实现审批流程的自动化执行。
模块路径
f:\MyProjects\flowmind\flowmind-cloud\ruoyi-modules\ruoyi-flowable技术栈
- 框架: Spring Boot
- ORM: MyBatis-Plus
- 数据库: MySQL
- 缓存: Redis
- 工作流引擎: Flowable
核心功能
- 流程管理: 创建、启动、暂停、终止审批流程
- 任务处理: 分配、处理、完成审批任务
- 状态跟踪: 实时跟踪审批状态和进度
- 审批中心: 待办任务、已办任务、待签任务、我的流程管理
- 草稿箱: 流程草稿的保存、编辑、删除和提交
- 流程设计: 可视化流程设计和部署
- 表单管理: 动态表单设计和管理
- 流程分类: 流程的分类和管理
模块结构
ruoyi-flowable/
├── src/main/java/com/ruoyi/flowable/
│ ├── common/ # 公共模块
│ │ ├── constant/ # 常量定义
│ │ ├── enums/ # 枚举类
│ │ └── validate/ # 验证规则
│ ├── config/ # 配置类
│ │ ├── FlowableConfig.java # Flowable配置
│ │ ├── GlobalEventListenerConfig.java # 全局事件监听配置
│ │ └── MybatisPlusConfig.java # MyBatis Plus配置
│ ├── core/ # 核心组件
│ │ ├── domain/ # 核心领域模型
│ │ ├── mapper/ # 基础Mapper
│ │ └── page/ # 分页组件
│ ├── factory/ # 工厂类
│ │ └── FlowServiceFactory.java # 流程服务工厂
│ ├── flow/ # 流程相关工具
│ │ ├── CustomProcessDiagramGenerator.java # 自定义流程图生成器
│ │ └── FlowableUtils.java # Flowable工具类
│ ├── listener/ # 事件监听器
│ │ ├── GlobalEventListener.java # 全局事件监听器
│ │ └── UserTaskListener.java # 用户任务监听器
│ ├── utils/ # 工具类
│ │ ├── ProcessUtils.java # 流程工具类
│ │ └── TaskUtils.java # 任务工具类
│ ├── workflow/ # 工作流业务模块
│ │ ├── controller/ # 控制器层
│ │ │ ├── WfCategoryController.java # 流程分类控制器
│ │ │ ├── WfDeployController.java # 流程部署控制器
│ │ │ ├── WfDraftController.java # 草稿箱控制器
│ │ │ ├── WfFormController.java # 表单管理控制器
│ │ │ ├── WfInstanceController.java # 流程实例控制器
│ │ │ ├── WfModelController.java # 流程模型控制器
│ │ │ ├── WfProcessController.java # 流程管理控制器
│ │ │ └── WfTaskController.java # 任务管理控制器
│ │ ├── domain/ # 领域模型
│ │ │ ├── bo/ # 业务对象
│ │ │ ├── dto/ # 数据传输对象
│ │ │ ├── vo/ # 视图对象
│ │ │ └── *.java # 实体类
│ │ ├── handler/ # 处理器
│ │ ├── mapper/ # 数据访问层
│ │ └── service/ # 服务层
│ │ ├── IWfDraftService.java # 草稿箱服务接口
│ │ ├── IWfTaskService.java # 任务服务接口
│ │ ├── IWfProcessService.java # 流程服务接口
│ │ └── impl/ # 服务实现
│ └── RuoYiFlowableApplication.java # 应用入口
└── src/main/resources/
├── application.yml # 应用配置
├── mapper/ # MyBatis 映射文件
└── bootstrap.yml # 启动配置核心服务设计
1. 流程管理服务 (IWfProcessService)
核心功能:
- 流程定义的查询和管理
- 流程实例的启动、暂停、恢复和终止
- 流程状态的查询和跟踪
- 流程历史记录的查询
主要接口:
startProcessInstance:启动流程实例suspendProcessInstance:暂停流程实例activateProcessInstance:激活流程实例terminateProcessInstance:终止流程实例getProcessInstanceDetails:获取流程实例详情
2. 任务管理服务 (IWfTaskService)
核心功能:
- 待办任务的查询和处理
- 已办任务的查询
- 任务的分配、认领和委托
- 任务的完成和驳回
主要接口:
getTodoTasks:获取待办任务列表getDoneTasks:获取已办任务列表claimTask:认领任务completeTask:完成任务rejectTask:驳回任务
3. 草稿箱服务 (IWfDraftService)
核心功能:
- 流程草稿的保存和管理
- 草稿的编辑和删除
- 草稿的提交和启动流程
主要接口:
saveDraft:保存草稿updateDraft:更新草稿deleteDraft:删除草稿submitDraft:提交草稿并启动流程getDraftList:获取草稿列表
4. 表单管理服务 (IWfFormService)
核心功能:
- 动态表单的设计和管理
- 表单字段的配置和验证
- 表单数据的存储和查询
主要接口:
saveForm:保存表单设计getFormById:根据ID获取表单getFormByKey:根据Key获取表单deleteForm:删除表单
5. 流程模型服务 (IWfModelService)
核心功能:
- BPMN模型的设计和管理
- 模型的部署和激活
- 模型的版本管理
主要接口:
saveModel:保存流程模型deployModel:部署流程模型getModelList:获取模型列表deleteModel:删除模型
核心控制器设计
1. 流程管理控制器 (WfProcessController)
主要接口:
listProcessInstances:查询流程实例列表startProcess:启动流程terminateProcess:终止流程getProcessDetails:获取流程详情
2. 任务管理控制器 (WfTaskController)
主要接口:
todoTasks:获取待办任务doneTasks:获取已办任务claimTask:认领任务completeTask:完成任务rejectTask:驳回任务
3. 草稿箱控制器 (WfDraftController)
主要接口:
saveDraft:保存草稿updateDraft:更新草稿deleteDraft:删除草稿submitDraft:提交草稿listDrafts:获取草稿列表
4. 流程设计控制器 (WfModelController)
主要接口:
saveModel:保存流程模型deployModel:部署流程模型listModels:获取模型列表
5. 表单管理控制器 (WfFormController)
主要接口:
saveForm:保存表单listForms:获取表单列表getForm:获取表单详情
流程执行流程
流程启动:
- 用户通过前端界面发起流程申请
- 系统验证用户权限和表单数据
- 调用
IWfProcessService.startProcessInstance启动流程 - Flowable 引擎创建流程实例和第一个任务
任务处理:
- 系统将任务分配给指定的审批人
- 审批人在审批中心查看待办任务
- 审批人认领任务并处理(同意/驳回)
- 系统调用
IWfTaskService.completeTask完成任务 - Flowable 引擎推进流程到下一个节点
流程结束:
- 流程执行到结束节点
- Flowable 引擎终止流程实例
- 系统记录流程结束状态和时间
- 通知相关人员流程已完成
草稿处理:
- 用户在填写流程申请时保存草稿
- 系统调用
IWfDraftService.saveDraft保存草稿数据 - 用户在草稿箱中查看和编辑草稿
- 用户提交草稿时,系统调用
IWfDraftService.submitDraft启动流程
关键技术实现
Flowable 引擎集成:
- 基于 Spring Boot 自动配置
- 自定义流程事件监听器
- 自定义流程图生成器
事件驱动设计:
- 全局事件监听器处理流程生命周期事件
- 任务监听器处理用户任务事件
- 基于事件的异步通知机制
动态表单:
- 支持多种表单控件类型
- 表单字段的动态配置
- 表单数据的JSON存储
可视化流程设计:
- 基于 BPMN 2.0 标准
- 集成 bpmn-js 流程设计器
- 在线流程部署和激活
其他模块
系统服务 (ruoyi-system)
系统服务模块提供基础的系统管理功能,包括:
- 用户管理
- 角色管理
- 菜单管理
- 部门管理
- 字典管理
- 日志管理
认证服务 (ruoyi-auth)
认证服务模块提供统一的认证和授权功能,包括:
- 用户登录和注销
- JWT 令牌生成和验证
- 权限校验
网关服务 (ruoyi-gateway)
网关服务模块提供 API 网关功能,包括:
- 路由转发
- 负载均衡
- 认证过滤
- 限流熔断
- 日志记录
模块间依赖关系
┌─────────────────────────────────────────────────────────┐
│ 前端应用 (Vue3) │
└─────────────────────────────────────┬─────────────────┘
│
┌─────────────────────────────────────▼─────────────────┐
│ 网关服务 (ruoyi-gateway) │
└─────────────────────────────────────┬─────────────────┘
│
┌─────────────────────────────────────▼─────────────────┐
│ 认证服务 (ruoyi-auth) │
└─────────────────────────────────────┬─────────────────┘
│
┌─────────────────────────────────────▼─────────────────┐
│ 工作流服务 (ruoyi-flowable) │
├─────────────────────────────────────┬─────────────────┤
│ 系统服务 (ruoyi-system) │ 其他业务服务 │
└───────────────────────────┴─────────────────────────┘