五菱海外项目

ye-zhaojia 4ce15a9dfe fix: 增强认证异常处理和JWT过滤器健壮性,防止登录500错误 před 8 hodinami
src 4ce15a9dfe fix: 增强认证异常处理和JWT过滤器健壮性,防止登录500错误 před 8 hodinami
.gitignore 78a3651c9b feat: 完整流程审批引擎后端代码 + EmbeddedRedis自动兜底 + 构建文档 před 9 hodinami
README.md 78a3651c9b feat: 完整流程审批引擎后端代码 + EmbeddedRedis自动兜底 + 构建文档 před 9 hodinami
java编码风格.md b239d380a1 feat: videcoing 编码风格及技术栈 před 3 dny
pom.xml 78a3651c9b feat: 完整流程审批引擎后端代码 + EmbeddedRedis自动兜底 + 构建文档 před 9 hodinami
project-init.md b239d380a1 feat: videcoing 编码风格及技术栈 před 3 dny

README.md

qqflowengine-backend

通用型流程审批设计与管理系统 — 后端服务

技术栈

  • Java 17
  • Spring Boot 3.2.5
  • Spring Security 6 + JWT
  • MyBatis-Plus 3.5.7
  • H2 Database (开发模式文件数据库)
  • Redis (embedded-redis 自动兜底)
  • Spring State Machine 4.0

环境要求

  • JDK 17+
  • Maven 3.8+(或项目内嵌的 apache-maven-3.9.6)
  • 可选:本地 Redis(如未安装,启动时会自动启动 embedded Redis)

快速启动

cd qqflowengine-backend

# 方式一:使用系统 Maven
mvn spring-boot:run

# 方式二:使用项目内嵌 Maven
./apache-maven-3.9.6/bin/mvn spring-boot:run

服务启动后访问:

  • API 服务:http://localhost:8080
  • Swagger 文档:http://localhost:8080/swagger-ui.html

开发说明

数据库

开发环境使用 H2 文件数据库,数据文件保存在项目根目录 data/devdb.mv.db

spring.datasource.url: jdbc:h2:file:./data/devdb;MODE=MySQL;AUTO_SERVER=TRUE
  • spring.sql.init.mode: always — 每次启动都会重新执行 schema-dev.sqldata-dev.sql
  • 如需保留手动修改的数据,可将 mode 改为 never
  • H2 Console 未开启,如需调试可直接连接 jdbc:h2:file:./data/devdb

默认账号

启动后会自动初始化以下账号(密码均为 admin123):

账号 角色
admin 超级管理员
zhangsan 普通用户
lisi 普通用户
wangwu 普通用户

Redis

  • 优先连接本地 localhost:6379
  • 如果本地未安装 Redis,启动时会自动启动 embedded Redis(端口 6379)
  • 如果本地已有 Redis 运行,则直接使用外部 Redis

构建打包

mvn clean package

打包后的 JAR 位于 target/qqflowengine-backend-1.0.0.jar,可直接运行:

java -jar target/qqflowengine-backend-1.0.0.jar

项目结构

src/main/java/com/qqflow/engine/
├── common/          # 通用工具、异常、结果封装
├── config/          # Spring 配置类
├── domain/
│   ├── flow/        # 流程引擎模块(定义、实例、任务、审批)
│   └── system/      # 系统管理模块(用户、角色、菜单、部门)
└── QqFlowEngineApplication.java

src/main/resources/
├── application.yml       # 默认配置
├── application-dev.yml   # 开发配置
├── application-test.yml  # 测试配置
├── schema-dev.sql        # 开发环境表结构
├── data-dev.sql          # 开发环境初始数据
└── mapper/               # MyBatis XML 映射文件

注意事项

  1. data/ 目录和 target/ 目录已加入 .gitignore,不会被提交
  2. 如需切换 MySQL,修改 pom.xml 中 H2 的 scope 并配置 application.yml 即可