# mars-admin-saas-workflow **Repository Path**: _liweijian/mars-admin-saas-workflow ## Basic Information - **Project Name**: mars-admin-saas-workflow - **Description**: 🔥 官方推荐 🔥 Mars-Admin是一套开源的精美快速开发平台,毫无保留给个人及企业免费使用,项目前后台分离, 高效率开发,一键生成前后台代码和菜单权限,中小企业快速开发脚手架。 前端采用Vue3、Naive-UI、 后端采用Spring Boot3、Mysql、Redis。 权限认证使用SaToken,支持多终端认证系统。 支持加载动态权限菜单,多方式轻松权限控制。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2026-09-08 - **Last Updated**: 2026-09-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
# Mars Admin SaaS Workflow ![Java](https://img.shields.io/badge/Java-17-orange?style=flat-square&logo=openjdk) ![Spring%20Boot](https://img.shields.io/badge/Spring%20Boot-3.2.2-green?style=flat-square&logo=springboot) ![Flowable](https://img.shields.io/badge/Flowable-7.1.0-blue?style=flat-square) ![Vue](https://img.shields.io/badge/Vue-3.4-brightgreen?style=flat-square&logo=vue.js) ![Naive%20UI](https://img.shields.io/badge/Naive%20UI-2.37-blue?style=flat-square) **多租户后台管理系统(RBAC + Flowable 工作流)**
## 项目简介 本仓库是 Mars Admin 的 **SaaS 多租户 + 工作流** 版本。在原有系统管理、组织、消息、文件、监控能力之上,接入 **Flowable 7.1.0** 流程引擎,前端用 **bpmn-js** 设计 BPMN,支持业务表单发起、待办审批、已办查看和流程监控。 前后端分离:后端 Spring Boot 3.2.2,管理端 Vue 3 + Naive UI,另含 UniApp 移动端。 ## 技术栈 ### 后端 | 技术 | 版本 | 说明 | |------|------|------| | Spring Boot | 3.2.2 | 基础框架 | | Java | 17 | 语言版本 | | MyBatis-Plus | 3.5.5 | ORM | | Sa-Token | 1.37.0 | 认证鉴权 | | Flowable | 7.1.0 | 流程引擎(仅 Process,已关闭 IDM / Event Registry) | | MySQL | 8.0+ | 业务库 + Flowable `ACT_*` 表 | | Redis | 7.0+ | 会话 / 缓存 | | Quartz | 2.3.2 | 定时任务 | | Hutool | 5.8.25 | 工具库 | ### 前端(管理后台 `mars-ui`) | 技术 | 版本 | 说明 | |------|------|------| | Vue | 3.4.15 | 框架 | | Vite | 5.0.11 | 构建,开发端口 `3000`,代理 `/api` → `8080` | | TypeScript | 5.3.3 | 类型 | | Naive UI | 2.37.3 | 组件库 | | Pinia | 2.1.7 | 状态 | | bpmn-js | 18.6.2 | 流程设计器 | ### 移动端 `mars-uniapp` UniApp + uView Plus,覆盖登录、聊天、通讯录等办公能力。 ## 项目结构 ``` mars-admin-saas-workflow ├── mars-common # 公共:实体基类、异常、统一响应 ├── mars-infra # 基础设施 │ ├── mars-db # 数据源 / MyBatis-Plus │ ├── mars-redis │ ├── mars-oss # 本地 / MinIO / 阿里云 OSS │ ├── mars-sms / mars-pay / mars-push / mars-mail │ ├── mars-social / mars-wechat │ ├── mars-websocket │ └── mars-crypto ├── mars-core # 业务 │ ├── mars-system # 用户、角色、菜单、字典、配置 │ ├── mars-tenant # 租户隔离、租户上下文 │ ├── mars-auth # 登录策略(密码 / 短信 / 社交) │ ├── mars-workflow # Flowable 封装:模型、表单、待办、实例 │ ├── mars-file / mars-gen / mars-message / mars-biz ├── mars-api │ ├── mars-admin-api # 管理端接口(含 /workflow/**) │ ├── mars-app-api │ └── mars-web-api ├── mars-job # Quartz ├── mars-starter # 启动入口,默认 profile=dev,端口 8080 ├── mars-ui # 管理端前端 ├── mars-uniapp # 小程序 └── sql ├── mars-admin-saas-workflow.sql # 当前库完整脚本(推荐) └── mars-system.sql # 历史库脚本 ``` ## 功能特性 ### 多租户 - 登录时选择租户,数据按 `tenant_id` 隔离 - 租户开通、切换、平台侧租户管理 - 后台登录要求用户类型为 `admin`(`pc` / `app` 账号无法进管理端) ### 流程管理(Flowable) | 菜单 | 说明 | |------|------| | 流程定义 | 新建 / 编辑名称编码分类 / 复制 / 发布 / 删除 | | 流程设计 | bpmn-js 画布,办理人可选用户、角色、部门、岗位 | | 发起流程 | 选择已发布流程,填写业务表单后启动实例 | | 我的待办 | 审批通过 / 驳回,侧栏红点显示待办数量 | | 我的已办 | 已处理任务 | | 流程监控 | 实例列表、查看表单、终止运行中实例 | 办理链路: 1. 设计并发布流程(BPMN 存 `wf_process_model`,发布后写入 Flowable) 2. 在流程定义中配置业务表单字段(JSON schema) 3. 发起时提交表单,数据写入 `wf_form_data`,`businessKey` 为表单记录 ID 4. 待办办理时只读展示表单 + 填写意见 5. 顶栏通知增加「待审批」页签,可跳转待办 引擎说明: - `ACT_*` 表由 Flowable 首次启动自动创建(`database-schema-update: true`) - 已关闭 Event Registry、IDM,避免 utf8mb4 下 `FLW_EVENT_DEPLOYMENT` 主键超长 - 异步执行器默认关闭 ### 系统与其它模块 - **系统管理**:用户、角色、菜单、字典、参数、租户 - **组织管理**:部门、岗位 - **日志**:登录日志、操作日志(`@Log`) - **监控**:在线用户、定时任务、服务器、缓存、接口访问 - **文件**:本地 / MinIO / OSS - **消息中心**:站内通知、WebSocket 私聊 / 群聊 - **代码生成**:按表生成前后端代码 - **安全**:验证码、登录失败锁定、RBAC、RSA 传输加密 ## 快速开始 ### 环境 - JDK 17+ - Maven 3.8+ - MySQL 8.0+ - Redis 7.0+ - Node.js 18+ ### 1. 初始化数据库 ```sql CREATE DATABASE `mars-admin-saas-workflow` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; ``` 导入完整脚本(按实际账号执行): ```bash mysql -u root -p mars-admin-saas-workflow < sql/mars-admin-saas-workflow.sql ``` 工作流草稿表、业务表单表若脚本中尚未包含,启动前需保证存在: - `wf_process_model`:流程模型草稿(含 `bpmn_xml`、`form_schema`) - `wf_form_data`:发起时提交的业务表单数据 `ACT_*` 不必手工建,启动后端时由引擎创建。 ### 2. 修改配置 编辑 `mars-starter/src/main/resources/application-dev.yml`: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/mars-admin-saas-workflow?... username: root password: root data: redis: host: localhost port: 6379 password: 123456 database: 10 ``` 生产环境使用 `application-prod.yml`,并在 `application.yml` 中切换 `spring.profiles.active`。 ### 3. 启动后端 ```bash mvn clean install -DskipTests cd mars-starter mvn spring-boot:run ``` 接口地址:`http://localhost:8080` 管理端 API 前缀:`/api` ### 4. 启动前端 ```bash cd mars-ui npm install npm run dev ``` 浏览器访问:`http://localhost:3000` Vite 将 `/api`、`/ws` 代理到后端。 打包产物输出到 `mars-starter/src/main/resources/static`,可由后端一并托管。 ### 5. 登录 登录页选择租户后,使用管理端账号: | 账号 | 密码 | 说明 | |------|------|------| | admin | admin123 | 超级管理员(用户类型需为 `admin`) | ## 工作流接口(管理端) | 能力 | 路径 | |------|------| | 流程定义 CRUD / 发布 | `/workflow/definition/**` | | 业务表单 schema | `/workflow/definition/{id}/form`、`/workflow/form/schema` | | 发起 / 监控 / 终止 | `/workflow/instance/**` | | 待办 / 已办 / 审批 | `/workflow/task/**` | | 待办数量(角标) | `GET /workflow/task/todo/count` | | 办理人选择 | `/workflow/handler/**` | 办理人类型:用户、角色、部门、岗位。运行时按当前用户 ID 及角色 / 部门 / 岗位候选组领取任务。 ## 开发说明 ### 新增业务模块 1. 实体放在对应 `mars-core` 子模块 2. Mapper / Service 同模块实现 3. Controller 放在 `mars-admin-api` 4. 前端页面放在 `mars-ui/src/views`,菜单由「菜单管理」配置 ### 操作日志 ```java @Log(title = "流程定义", businessType = BusinessType.UPDATE) ``` ### 权限 ```java @SaCheckPermission("workflow:definition:list") ``` 后台登录额外校验 `userType == admin`,见 `PasswordLoginStrategy`。 ### 流程设计注意点 - 流程编码需字母开头,仅含字母、数字、下划线(对应 Flowable process key) - 已发布流程不能改编码,需先取消发布 - 已发布流程设计页只读,取消发布后可改 BPMN - 存在运行中实例时不允许删除定义 ## 配置要点 | 项 | 位置 | 说明 | |----|------|------| | 演示模式 | `mars.demo-mode` | `true` 时禁止增删改 | | Flowable 建表 | `flowable.database-schema-update` | 开发环境 `true` | | 验证码 / 存储 / 短信 | 系统配置分组 | 运行时切换,无需改代码 | ## 开源协议 [MIT License](LICENSE) ## 联系 微信:mars8377 / mars3570