# qqflowengine-backend 通用型流程审批设计与管理系统 — 后端服务 ## 技术栈 - Java 17 - Spring Boot 3.2.5 + Spring Security 6 + JWT - MyBatis-Plus 3.5.7 - MySQL 5.7(生产/测试) / H2(本地开发) - Redis + Redisson(分布式锁) - EasyExcel 3.3(导入导出) - SpringDoc OpenAPI(Swagger) ## 快速启动 ```bash cd qqflowengine-backend mvn spring-boot:run ``` - API 服务:`http://localhost:8080` - Swagger 文档:`http://localhost:8080/swagger-ui/index.html` ## Profile 说明 | Profile | 数据库 | 用途 | |---------|--------|------| | `dev`(默认) | H2 文件数据库 | 本地开发,每次启动重建表和数据 | | `test` | MySQL | 测试环境,连接 `192.168.1.139` | 切换 Profile:修改 `application.yml` 中的 `spring.profiles.active`。 ## 默认账号 密码均为 `123456a`: | 账号 | 类型 | 说明 | |------|------|------| | admin | super_admin | 超级管理员 | | zhangsan | common_user | 普通用户 | | lisi | dept_manager | 部门管理员 | | wangwu | flow_manager | 流程管理员 | 角色账号(审批使用,不登录):`role_super_admin`、`role_flow_admin`、`role_normal_user`、`role_dept_manager` ## 账户体系 - **sys_user** — 个人账号,登录时用用户名或手机号 + 密码 - **sys_role** — 审批角色(纯权限,不登录),通过 `sys_user_role` 关联到用户 - 菜单和接口权限由 `sys_user.employeeType` 控制 ## 构建部署 ```bash mvn clean package -DskipTests java -jar target/qqflowengine-backend-1.0.0.jar ``` ## 项目结构 ``` src/main/java/com/qqflow/engine/ ├── common/ # 公共组件(Result、RedisCache、RedissonService、ExcelParseService、PageRequest) ├── config/ # Spring 配置 + Security(JWT、CORS) ├── domain/ │ ├── flow/ # 流程引擎(定义、实例、任务、审批记录、分析、导入) │ ├── system/ # 用户、角色、部门、认证 │ └── ewechat/ # 企业微信回调集成 └── QqFlowEngineApplication.java src/main/resources/ ├── application.yml / application-dev.yml / application-test.yml ├── schema-mysql.sql / data-mysql.sql # MySQL 初始化 ├── schema-dev.sql / data-dev.sql # H2 开发初始化 ├── mapper/ # MyBatis XML └── migration-*.sql # 增量迁移脚本 ```