# SpringbootFlowableVuePro **Repository Path**: GuoSIC77/SpringbootFlowableVuePro ## Basic Information - **Project Name**: SpringbootFlowableVuePro - **Description**: Spring Boot + Vue + Flowable 工作流平台 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 10 - **Created**: 2026-10-07 - **Last Updated**: 2026-10-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Spring Boot + Vue + Flowable 工作流平台 独立重写的中文协同审批项目。 **Gitee 仓库:** ```bash git clone https://gitee.com/spring2020/SpringbootFlowableVuePro.git ``` ![输入图片说明](198f4302c7957d2ee5293481043e26a0.png) ## 技术版本 | 组件 | 固定版本 | | --- | --- | | Spring Boot | **4.1.1** | | Flowable | **8.0.0** | | Vue | **3.5.43** | | Vite / Element Plus / bpmn-js | 8.3.1 / 2.14.7 / 18.30.1 | | Java / Maven | 编译目标 Java 21;Maven Wrapper 3.9.12 | | 数据库 | MySQL 8;本地演示 H2 | 以上为 2026-09-30 核验的稳定版本,未选择 milestone/RC。后续升级请重新核验兼容性。 ## 本地运行 安装 JDK 21 或更新版本、Node.js 24、本地 MySQL 8。设置 `JAVA_HOME`。首次启动会下载 Maven/npm 依赖。 项目默认使用本地 MySQL:`127.0.0.1:3306/workflow`。先创建 `workflow` 数据库(字符集 `utf8mb4`),复制 `backend/config/application-local.example.yml` 为 `backend/config/application-local.yml`,填写数据库账号与密码;实际配置文件已被 Git 忽略。也可使用 `DB_URL`、`DB_USER`、`DB_PASSWORD` 环境变量。启动脚本从 `backend` 目录运行,自动加载该本机配置。 默认依次启用 `demo,mysql`,数据库使用 MySQL,同时保留本地演示账号和示例流程。只启用 `mysql` 可关闭演示初始化,空库首次启动须设置至少 12 位 `ADMIN_INITIAL_PASSWORD`。本地首次启动自动创建 Flowable 引擎表并执行 Flyway 迁移;部署环境初始化完成后设置 `ENGINE_SCHEMA_UPDATE=false`。 Windows,在两个终端分别运行: ```powershell ./scripts/start-demo.ps1 backend ./scripts/start-demo.ps1 frontend ``` Linux/macOS: ```sh sh scripts/start-demo.sh backend sh scripts/start-demo.sh frontend ``` 前端:;后端:。Vite 代理 `/api`,认证采用同源 HttpOnly Session Cookie + CSRF。 ![输入图片说明](task.png) 演示账号:`admin`(管理员)、`alice`、`bob`、`carol`、`dave`,密码均为 `Demo@2026`。仅 `demo/test` profile 初始化这些账号。自动创建“请假申请、费用报销、联合评审”及表单;重启保留已有数据。原 H2 文件仍保留在 `backend/data`,不会自动搬迁其中的申请、表单或流程;需临时使用旧 H2 时设置 `SPRING_PROFILES_ACTIVE=demo`。 ## 核心功能 - 会签:并行全员通过、比例通过、串行依次审批。 - 或签:多实例首个有效决定取消剩余任务;也支持候选人认领单任务。 - 加签:前加签、后加签、并行增员、移除尚未办理的新增人员。 - 转办:永久移交;委托:保留 owner,受托人归还后原办理人提交。 - 传阅、抄送:独立阅读记录,默认不影响流程推进;另有显式等待全员阅毕节点。 - 退回、取回、撤回、重新提交、挂起、恢复、取消、管理员终止。 - BPMN 画布、版本发布停用、表单设计、节点字段权限、受控附件下载。 - 用户、多角色授权、部门树、岗位、菜单与按钮权限、数据范围、个人资料、会话撤销。 - 操作审计、站内通知、持久化回调发件箱、到期提醒、失败作业重试、业务 CRUD 代码 ZIP 生成。 ## 流程维护 流程设计卡片提供“修改信息”“删除流程”入口;打开设计器可调整审批路径、节点策略和绑定表单。修改名称、说明或流程设计后保存为草稿,重新发布生成新的流程版本,已有申请继续使用发起时的版本。流程标识创建后固定且不可重复使用。 ![输入图片说明](0cd87fc3feb599a0b95ab141d9b5d6a5.png) ![输入图片说明](f59af6ae925825c867dfd38db157cbc1.png) 删除需二次确认,并校验最新草稿修订号。已删除流程从设计列表移除,所有发布版本停止接收新申请;在办审批继续处理,发布历史与审批记录保留且不能重新启用。后端采用逻辑删除保留关联数据。更新代码后需重启后端服务以加载删除接口。 ## 表单设计 进入“表单中心”,创建表单或编辑草稿。设计器采用组件库、设计画布、属性设置三栏布局,支持 21 种组件,包括单选框、多选框、开关、评分、滑块、日期时间、文件与图片上传,以及分组标题、静态说明和分隔线。 表单预览、流程申请和审批详情统一使用 [form-create](https://github.com/xaboy/form-create) 动态渲染(`@form-create/element-ui` 3.3.4,Vue 3 / Element Plus)。现有表单格式与历史流程快照通过适配层兼容,附件继续使用项目的鉴权上传下载接口。集成范围与使用说明见 [操作手册](docs/user-guide.md#动态表单与导航)。 ![输入图片说明](fcf4581b734ffb21808537d0f7066187.png) 点击或拖拽组件添加字段,选中字段后配置名称、唯一标识、选项、默认值、必填与数值范围。可设置单双列栅格、字段宽度、标签位置与对齐、组件大小,也可从请假、报销、采购模板开始。工具栏支持撤销重做、清空、PC / Pad / H5 预览及 JSON 导入导出;JSON 使用本项目的 `name / fields / settings` 格式,导入会先验证设计。预览填写不提交业务数据,附件在正式申请时上传。 保存草稿后可继续编辑;发布后可在流程设计器中绑定,已发布的表单通过“复制为新版本”调整。新发布的流程快照会保留表单布局;更新后端代码后需重启后端服务,已有流程快照仍保留发布时的设置。 ## 组织与权限 进入“组织与权限”维护用户、角色、部门、岗位和菜单。用户支持多个角色与岗位、联系方式、启停、密码重置及删除;角色可通过权限树分别授权页面和操作按钮,再分配给用户。部门与菜单采用树形维护,菜单可以配置目录、页面或按钮、路由、排序及显示状态。 ![输入图片说明](d288ad8f61c095779632f152dfe316cb.png) 角色数据范围包括全部数据、自定义部门、本部门、本部门及下级、仅本人;多个有效角色取并集。内置 USER 默认仅本人,ADMIN 管理全部数据。后端同时校验操作权限和用户数据范围,授权者不能授予自己未拥有的权限或扩大接收人的数据范围。菜单隐藏只影响导航,停用菜单或角色会撤销相关权限,前端在页面切换和重新聚焦时刷新授权。 用户删除保留历史身份,已使用的账号不能重新创建;停用账号和重置密码会使其原会话失效。内置角色、内置管理员及最后一个有效管理员受保护;存在用户、子部门或角色授权引用的记录需先解除关联才能删除。编辑与删除校验版本号,避免覆盖其他管理者的更新。部门改名保留服务端历史名称,兼容已有流程中的部门配置;审批实例仍使用发起时的参与人快照。 首次加载新版后端会自动执行 V4 用户资料迁移,并补齐角色与菜单。**更新后需重启后端服务**;已有业务数据和此前页面优化保留。字典、参数、公告及扩展配置继续由管理员维护。 ![输入图片说明](a928b18ff39d9a1eea6b9a2c2b0c95ed.png) ![输入图片说明](2301f2fd0f85e21c4027202552f2d9c8.png) ![输入图片说明](f94fb9f93cd08663b46283a60cf8da55.png) ## 验证 ```powershell ./scripts/backend.ps1 -Task test npm --prefix frontend test -- --run npm --prefix frontend run build ``` 也可执行 `cd backend; ./mvnw.cmd test`。MySQL 集成验证、实际结果和浏览器检查见 [验证记录](docs/verification.md)。容器部署见 [部署指南](docs/deployment.md)。 ## 文档 - [使用手册](docs/user-guide.md) - [会签、或签与审批协作详细帮助](docs/workflow-approval-guide.md) - [接口说明](docs/api.md) - [数据库与事务](docs/database.md) - [功能对照及边界](docs/feature-matrix.md) - [设计与原文档核查](docs/superpowers/specs/2026-09-30-workflow-platform-design.md) - [实施计划](docs/superpowers/plans/2026-09-30-workflow-platform.md) 退回/取回限制在没有并行分支、子流程或自动副作用的线性路径。业务命令使用数据库互斥锁保证顺序,适合单组织中小规模部署;大规模使用需增加查询投影和更细粒度的锁。外部回调为至少一次投递,接收方按事件 ID 去重。详细边界均在功能对照中列明。 开源不易,感谢赞赏 微信收款码 支付宝收款码 如果对您有帮助,点击右上角⭐Star⭐关注 ,感谢支持开源! ## 接口管理与精细角色授权 使用 springdoc-openapi 3.1.1 + Swagger UI。登录后从“接口管理”访问自动生成的全部 Controller 文档;新增接口自动收录,新增业务方法的 `@ApiPermission` 声明自动进入角色授权树。文档查看、在线调试及实际业务调用独立授权,继续使用 Session 和 CSRF。 角色树涵盖全部业务菜单与按钮,旧库升级采用快照与幂等补齐。前端新增交互必须通过 `cd frontend; npm run audit:permissions`,后端文档覆盖由 `ApiDocumentationTest` 校验。详见 [接口说明](docs/api.md)、[操作手册](docs/user-guide.md)与 [检查报告](docs/audits/2026-10-06-api-rbac-verification.md)。