# platform
**Repository Path**: zhanglei082319/platform
## Basic Information
- **Project Name**: platform
- **Description**: Platform是一个开源的通用后台管理平台,提供用户管理、权限管理、通知管理、配置管理、工作流管理等核心功能。系统采用前后端分离架构,后端基于Spring Boot框架,前端基于Vue 2.0框架开发。
- **Primary Language**: Java
- **License**: AFL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2021-09-04
- **Last Updated**: 2026-02-06
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Platform 通用后台管理平台 - 开发设计文档
## 文档信息
| 项目名称 | Platform 通用后台管理平台 |
|---------|-------------------------|
| 版本 | V1.0 |
| 文档日期 | 2026-02-02 |
---
## 目录
- [1. 项目概述](#1-项目概述)
- [2. 技术架构](#2-技术架构)
- [3. 模块设计](#3-模块设计)
- [3.1 platform-parent 父工程模块](#31-platform-parent-父工程模块)
- [3.2 platform-common 公共模块](#32-platform-common-公共模块)
- [3.3 platform-core 核心业务模块](#33-platform-core-核心业务模块)
- [3.4 platform-workflow 工作流模块](#34-platform-workflow-工作流模块)
- [3.5 platform-web 前端模块](#35-platform-web-前端模块)
- [3.6 crm-manager CRM管理模块](#36-crm-manager-crm管理模块)
- [4. 功能模块详细设计](#4-功能模块详细设计)
- [4.1 用户管理模块](#41-用户管理模块)
- [4.2 角色管理模块](#42-角色管理模块)
- [4.3 组织管理模块](#43-组织管理模块)
- [4.4 资源管理模块](#44-资源管理模块)
- [4.5 数据字典模块](#45-数据字典模块)
- [4.6 系统参数模块](#46-系统参数模块)
- [4.7 通知管理模块](#47-通知管理模块)
- [4.8 系统监控模块](#48-系统监控模块)
- [4.9 定时任务模块](#49-定时任务模块)
- [4.10 日志管理模块](#410-日志管理模块)
- [4.11 工作流模块](#411-工作流模块)
- [5. 数据库设计](#5-数据库设计)
- [6. 部署说明](#6-部署说明)
---
## 1. 项目概述
### 1.1 项目介绍
Platform是一个开源的通用后台管理平台,提供用户管理、权限管理、通知管理、配置管理、工作流管理等核心功能。系统采用前后端分离架构,后端基于Spring Boot框架,前端基于Vue 2.0框架开发。
### 1.2 项目结构
```
platform/
├── platform-parent/ # Maven父工程,统一依赖版本管理
├── platform-common/ # 公共模块,提供通用工具类和基础组件
├── platform-core/ # 核心业务模块,包含主要业务逻辑
├── platform-workflow/ # 工作流模块,流程引擎实现
├── platform-web/ # 前端模块,Vue 2.0 + Element UI
├── crm-manager/ # CRM管理模块,客户关系管理扩展
└── image/ # 项目截图资源
```
### 1.3 功能概述
| 功能模块 | 功能描述 |
|---------|---------|
| 用户管理 | 支持用户的增删改查、密码重置、用户导入导出等功能 |
| 组织管理 | 支持组织架构的树形管理、部门岗位关联 |
| 角色管理 | 支持角色分类管理、角色资源权限配置、数据权限配置 |
| 资源管理 | 支持多系统资源管理、菜单树配置 |
| 数据字典 | 支持系统字典的统一管理 |
| 系统参数 | 支持系统参数的动态配置 |
| 通知管理 | 支持系统通知的推送和管理,支持SSE实时推送 |
| 系统监控 | 支持CPU、内存、线程、缓存等系统监控 |
| 定时任务 | 基于Quartz的定时任务管理 |
| 日志管理 | 支持登录日志和操作日志的记录查询 |
| 工作流管理 | 支持流程设计、流程实例管理、流程审批等 |
---
## 2. 技术架构
### 2.1 技术栈
| 技术组件 | 版本/说明 |
|---------|----------|
| 后端框架 | Spring Boot 2.5.6 |
| ORM框架 | MyBatis Plus 3.4.3 |
| 数据库 | MySQL 8.0+ |
| 缓存 | Redis + Redisson 3.17.6 |
| 消息队列 | RabbitMQ (AMQP) |
| 定时任务 | Quartz |
| API文档 | Swagger 2.9.2 |
| 前端框架 | Vue 2.0 |
| UI组件库 | Element UI |
| 工具库 | Hutool 5.8.18, Lombok 1.18.12 |
| Excel处理 | EasyExcel 3.0.0-beta2 |
### 2.2 系统架构图
```
┌─────────────────────────────────────────────────────────────┐
│ 前端层 (Vue 2.0) │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ 路由 │ │ 状态 │ │ 组件 │ │ API │ │
│ │ Router │ │ Store │ │ Views │ │ Service │ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 后端层 (Spring Boot) │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │Controller│ │ Service │ │ Mapper │ │ AOP │ │
│ │ API │ │ 业务层 │ │ 数据层 │ │ 切面 │ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 数据层 │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ MySQL │ │ Redis │ │ RabbitMQ│ │
│ │ 关系库 │ │ 缓存 │ │ 消息队列│ │
│ └─────────┘ └─────────┘ └─────────┘ │
└─────────────────────────────────────────────────────────────┘
```
---
## 3. 模块设计
### 3.1 platform-parent 父工程模块
#### 系统作用
platform-parent是整个项目的Maven父工程,主要负责统一管理所有子模块的依赖版本,定义通用的构建配置和插件管理。
#### 功能设计
| 功能 | 说明 |
|-----|------|
| 版本管理 | 统一定义Spring Boot版本(2.5.6)及所有第三方依赖版本 |
| 依赖管理 | 通过dependencyManagement统一管理MyBatis Plus、Redis、Swagger等依赖 |
| 插件配置 | 配置spring-boot-maven-plugin、maven-jar-plugin等通用插件 |
| 资源过滤 | 定义资源文件(yml、xml、json等)的过滤规则 |
#### 使用方式
其他子模块通过在pom.xml中声明parent继承该模块:
```xml
platform-parent
com.zlc
1.0-SNAPSHOT
```
---
### 3.2 platform-common 公共模块
#### 系统作用
platform-common是公共基础模块,提供整个系统通用的工具类、基础实体、配置类、异常处理、AOP切面等公共组件,被其他所有业务模块依赖。
#### 功能设计
| 组件类型 | 主要内容 |
|---------|---------|
| 通用实体 | `BaseEntity`基础实体、`PageVo`分页对象、`BusinessResult`业务响应 |
| 自定义注解 | `@LogSaveAnnotation`日志记录、`@FunctionPoint`功能点、`@DicItem`字典注解 |
| 异常处理 | `BusinessException`业务异常、`InvalidTokenException`令牌异常 |
| 工具类 | `JsonHelper`、`LocalDateUtils`、`Md5Utils`、`SnowflakeUtils`雪花ID生成 |
| 配置类 | `MybatisPlusConfig`、`RedissonConfig`、`QuartzConfig`、`SwaggerConfig` |
| AOP切面 | `LogSaveAnnotationAop`日志切面、`PersistenceAop`持久化切面 |
| 核心服务 | `BaseService`基础服务、`ContextHolder`上下文持有者 |
#### 使用方式
1. **Maven依赖引入**
```xml
com.zlc
platform-common
1.0-SNAPSHOT
```
2. **使用工具类示例**
```java
// 雪花ID生成
String id = SnowflakeUtils.nextId();
// JSON处理
String json = JsonHelper.toJson(object);
// 日期工具
LocalDateTime now = LocalDateUtils.now();
```
3. **使用日志注解**
```java
@LogSaveAnnotation(module = "用户模块", title = "新增用户", catalog = "用户管理")
public void addUser(UserVo userVo) {
// 业务逻辑
}
```
---
### 3.3 platform-core 核心业务模块
#### 系统作用
platform-core是系统的核心业务模块,包含用户管理、角色管理、组织管理、资源管理、系统监控等核心业务功能的实现,同时也是Spring Boot应用的启动入口。
#### 功能设计
| 控制器 | 主要功能 |
|-------|---------|
| `UserController` | 用户登录登出、用户CRUD、密码管理、用户导入 |
| `RoleController` | 角色CRUD、角色分类、角色用户关联、角色资源权限 |
| `DeptController` | 组织CRUD、组织树、部门岗位关联、岗位人员管理 |
| `ResourceController` | 系统管理、资源树管理、菜单隐藏控制 |
| `DicController` | 数据字典CRUD、地区信息管理 |
| `SysParameterController` | 系统参数查询和修改 |
| `NotificationController` | 通知列表、通知已读、SSE实时推送 |
| `ControlController` | 在线用户管理、系统监控、缓存管理 |
| `SysQuartzController` | 定时任务CRUD、任务执行控制 |
| `SysLogController` | 登录日志和操作日志查询 |
#### 使用方式
1. **配置数据库连接** (`application.yml`)
```yaml
spring:
datasource:
url: jdbc:mysql://localhost:3306/platform?useUnicode=true&characterEncoding=utf-8
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
```
2. **初始化数据库**
```bash
# 执行db目录下的SQL文件
mysql -u root -p platform < platform-core/db/db.sql
```
3. **启动服务**
```bash
# 方式一:IDE启动
运行 PlatformApplication 主类
# 方式二:命令行启动
mvn spring-boot:run
# 方式三:jar包启动
java -jar platform-core.jar
```
4. **访问地址**
- 服务地址: `http://localhost:8080`
- Swagger文档: `http://localhost:8080/swagger-ui.html`
- 默认账号: `admin / 1234567`
---
### 3.4 platform-workflow 工作流模块
#### 系统作用
platform-workflow是自研的轻量级工作流引擎模块,提供流程定义、流程实例管理、任务处理等完整的工作流功能,支持可视化流程设计。
#### 功能设计
| 功能类别 | 主要内容 |
|---------|---------|
| 流程定义 | 流程设计、流程节点配置、流程发布、流程状态管理 |
| 流程实例 | 流程创建、流程提交、流程退回、流程终止 |
| 任务处理 | 待办查询、任务审批、任务转办、任务加签 |
| 流程节点 | 开始节点、任务节点、分支节点、会签节点、结束节点 |
| 审批配置 | 审批人配置、审批权限配置、表单配置、事件配置 |
| 流程日志 | 流程轨迹记录、审批意见记录 |
**核心组件说明:**
| 组件 | 说明 |
|-----|------|
| `ProcessController` | 流程定义管理API |
| `InstanceController` | 流程实例处理API |
| `ProcessModel` | 流程模型解析 |
| `NodeModel` | 节点模型定义(StartNode、TaskNode、EndNode等) |
| `WorkflowService` | 工作流核心服务 |
#### 使用方式
1. **创建流程定义**
```java
// 通过API创建流程
ProcessDeployEntity entity = new ProcessDeployEntity();
entity.setProcessName("请假流程");
entity.setProcessContent(jsonContent);
processService.saveProcess(entity);
```
2. **发起流程实例**
```java
BuildFlowParam param = new BuildFlowParam();
param.setProcessId("流程定义ID");
param.setBusinessKey("业务主键");
param.setAccount("发起人账号");
instanceService.buildFLow(param);
```
3. **审批流程**
```java
SubmitFlowParam param = new SubmitFlowParam();
param.setTaskId("任务ID");
param.setProcessInstanceId("流程实例ID");
param.setOpinion("同意");
instanceService.submit(param);
```
4. **查询待办**
```java
// 前端调用待办列表API
GET /api/process/instance/workflowDetail
```
---
### 3.5 platform-web 前端模块
#### 系统作用
platform-web是系统的前端模块,基于Vue 2.0和Element UI开发,提供完整的后台管理界面,包括PC端和移动端适配。
#### 功能设计
| 目录/组件 | 功能说明 |
|----------|---------|
| `views/user` | 用户管理页面、用户新增编辑 |
| `views/role` | 角色管理页面、角色权限配置 |
| `views/dept` | 组织管理页面、组织树 |
| `views/resource` | 资源管理页面、菜单树 |
| `views/dic` | 数据字典管理、地区信息 |
| `views/parameter` | 系统参数配置 |
| `views/process` | 流程设计器、流程实例管理 |
| `views/todo` | 我的待办、我的已办、我发起的 |
| `views/control` | 系统监控、缓存监控、定时任务 |
| `views/syslog` | 登录日志、操作日志 |
| `views/layout` | 系统布局框架、标签页导航 |
| `views/mobile` | 移动端页面(工作台、待办、个人中心) |
**项目结构:**
```
platform-web/src/
├── api/ # API接口定义
├── assets/ # 静态资源
├── components/ # 公共组件
├── config/ # 配置文件
├── plugins/ # 插件
├── router/ # 路由配置
├── store/ # Vuex状态管理
├── styles/ # 样式文件
├── utils/ # 工具函数
└── views/ # 页面组件
```
#### 使用方式
1. **安装依赖**
```bash
cd platform-web
npm install
```
2. **开发环境启动**
```bash
npm run serve
# 访问 http://localhost:8081
```
3. **生产环境构建**
```bash
npm run build
# 构建产物在 dist/ 目录
```
4. **配置后端地址** (`vue.config.js`)
```javascript
module.exports = {
devServer: {
proxy: {
'/api': {
target: 'http://localhost:8080',
changeOrigin: true
}
}
}
}
```
---
### 3.6 crm-manager CRM管理模块
#### 系统作用
crm-manager是CRM客户关系管理的扩展模块,用于演示如何在平台基础上扩展业务功能,可作为开发新业务模块的参考模板。
#### 功能设计
| 组件 | 说明 |
|-----|------|
| `CrmApplication` | CRM模块启动配置 |
| `CrmSystemResourceConstant` | CRM系统资源常量定义 |
| `CrmInitUtil` | CRM模块初始化工具 |
#### 使用方式
1. **作为依赖引入**
```xml
com.zlc
crm-manager
1.0-SNAPSHOT
```
2. **创建新业务模块参考步骤**
```
1. 创建Maven子模块,继承platform-parent
2. 引入platform-common依赖
3. 定义业务实体、Mapper、Service、Controller
4. 在platform-core中引入该模块依赖
5. 配置菜单资源
```
---
## 4. 功能模块详细设计
### 4.1 用户管理模块
#### 系统作用
用户管理模块提供系统用户的完整生命周期管理,包括用户创建、信息维护、密码管理、用户导入等功能,是系统权限管理的基础。
#### 功能设计
| 功能名称 | 接口地址 | 功能说明 |
|---------|---------|---------|
| 用户登录 | `POST /api/user/login` | 用户账号密码登录,支持验证码 |
| 用户登出 | `GET /api/user/outLogin` | 退出登录,清除令牌 |
| 获取当前用户 | `GET /api/user/get` | 获取当前登录用户信息 |
| 获取菜单权限 | `GET /api/user/getMenu` | 获取用户系统菜单权限 |
| 新增用户 | `POST /api/user/add` | 新增系统用户 |
| 更新用户 | `POST /api/user/update` | 更新用户信息 |
| 用户列表 | `POST /api/user/userList` | 分页查询用户列表 |
| 导入用户 | `POST /api/user/importUserList` | Excel批量导入用户 |
| 重置密码 | `POST /api/user/resetPassword` | 重置用户密码 |
| 修改密码 | `POST /api/user/changePassword` | 用户修改自己密码 |
| 禁用用户 | `POST /api/user/disabled` | 禁用用户账号 |
#### 使用方式
```javascript
// 前端登录示例
const loginParam = {
account: 'admin',
password: '1234567'
};
const result = await axios.post('/api/user/login', loginParam);
// 保存token
localStorage.setItem('token', result.data.token);
```
---
### 4.2 角色管理模块
#### 系统作用
角色管理模块提供基于RBAC模型的权限管理,支持角色分类、角色与用户关联、角色与资源权限关联、数据权限配置等功能。
#### 功能设计
| 功能名称 | 接口地址 | 功能说明 |
|---------|---------|---------|
| 角色类别管理 | `addRoleClass/updateRoleClass/deleteRoleClass` | 角色分类的增删改 |
| 角色列表 | `POST /api/role/getRoleList` | 分页查询角色 |
| 新增角色 | `POST /api/role/addRole` | 新增角色 |
| 更新角色 | `POST /api/role/updateRole` | 更新角色信息 |
| 删除角色 | `POST /api/role/removeRole` | 删除角色 |
| 角色用户关联 | `POST /api/role/relateUser` | 将用户关联到角色 |
| 查询角色用户 | `POST /api/role/getUserListByRoleCode` | 查询角色下的用户 |
| 角色资源配置 | `POST /api/role/relateResource` | 配置角色的菜单资源权限 |
| 数据权限配置 | `POST /api/role/saveRoleDataConfig` | 配置角色的数据权限范围 |
#### 使用方式
```java
// 数据权限类型说明
ALL - 查看全部数据
DEPT - 查看本部门数据
SELF - 仅查看本人数据
CUSTOM - 自定义部门数据
```
---
### 4.3 组织管理模块
#### 系统作用
组织管理模块提供企业组织架构的管理功能,支持树形组织结构、部门岗位关联、岗位人员管理等。
#### 功能设计
| 功能名称 | 接口地址 | 功能说明 |
|---------|---------|---------|
| 新增组织 | `POST /api/dept/addDept` | 新增部门/公司组织 |
| 修改组织 | `POST /api/dept/updateDept` | 修改组织信息 |
| 导入组织 | `POST /api/dept/importDept` | Excel批量导入组织 |
| 组织树 | `GET /api/dept/queryDeptVo` | 获取完整组织树 |
| 部门岗位管理 | `addDeptPosition/removeDeptPosition` | 部门岗位关联管理 |
| 岗位人员管理 | `addDeptPositionUser/removeDeptPositionUser` | 岗位下人员管理 |
| 查询部门人员 | `GET /api/dept/queryDeptUsers` | 查询部门下所有员工 |
#### 使用方式
```
组织类型说明:
- COMPANY: 公司
- DEPT: 部门
- GROUP: 组/团队
```
---
### 4.4 资源管理模块
#### 系统作用
资源管理模块提供多系统的菜单资源管理功能,支持系统管理、菜单树配置、菜单隐藏控制等。
#### 功能设计
| 功能名称 | 接口地址 | 功能说明 |
|---------|---------|---------|
| 系统列表 | `GET /api/resource/queryAllSystem` | 查询所有系统 |
| 新增系统 | `POST /api/resource/addSystem` | 新增业务系统 |
| 修改系统 | `POST /api/resource/updateSystem` | 修改系统信息 |
| 删除系统 | `POST /api/resource/removeSystem` | 删除系统 |
| 资源树 | `GET /api/resource/queryResource` | 查询系统资源树 |
| 新增资源 | `POST /api/resource/addResource` | 新增菜单资源 |
| 修改资源 | `POST /api/resource/updateResource` | 修改资源信息 |
| 删除资源 | `POST /api/resource/removeResource` | 删除资源 |
| 隐藏菜单 | `POST /api/resource/hidden` | 隐藏指定菜单 |
| 取消隐藏 | `POST /api/resource/cancelHidden` | 取消隐藏菜单 |
#### 使用方式
```
资源类型说明:
- MENU: 菜单
- GROUP: 菜单组
- SUBMENU: 子菜单
- BUTTON: 按钮
资源类别说明:
- WEB: PC端资源
- APP: 移动端资源
```
---
### 4.5 数据字典模块
#### 系统作用
数据字典模块提供系统字典数据的统一管理,支持字典分类、字典项管理、字典状态控制等功能。
#### 功能设计
| 功能名称 | 接口地址 | 功能说明 |
|---------|---------|---------|
| 字典列表 | `POST /api/dic/queryDicList` | 分页查询字典 |
| 批量查询 | `POST /api/dic/queryDics` | 批量查询字典项 |
| 新增字典 | `POST /api/dic/addDic` | 新增字典 |
| 修改字典 | `POST /api/dic/updateDic` | 修改字典 |
| 删除字典 | `POST /api/dic/removeDic` | 删除字典 |
| 状态变更 | `POST /api/dic/changeDicStatus` | 启用/禁用字典 |
| 地区树 | `POST /api/dic/getCityAreaTree` | 获取地区信息树 |
| 保存地区 | `POST /api/dic/saveCityArea` | 保存地区信息 |
#### 使用方式
```java
// 使用@DicItem注解自动转换字典值
@DicItem(code = "USER_STATUS")
private String status;
// 前端获取字典
const dicList = await axios.post('/api/dic/queryDics', ['USER_STATUS', 'GENDER']);
```
---
### 4.6 系统参数模块
#### 系统作用
系统参数模块提供系统运行参数的动态配置功能,支持参数分类展示和批量修改,无需重启服务即可生效。
#### 功能设计
| 功能名称 | 接口地址 | 功能说明 |
|---------|---------|---------|
| 参数列表 | `POST /api/parameter/queryParameterList` | 查询系统参数列表 |
| 修改参数 | `POST /api/parameter/changeParameters` | 批量修改系统参数 |
#### 使用方式
```java
// 使用@Parameter注解定义系统参数
@Parameter(key = "LOGIN_CHECK_CODE", defaultValue = "false", description = "登录是否需要验证码")
public static final String LOGIN_CHECK_CODE = "LOGIN_CHECK_CODE";
// 获取参数值
String value = sysParameterService.getParameterValue("LOGIN_CHECK_CODE");
```
---
### 4.7 通知管理模块
#### 系统作用
通知管理模块提供系统通知的推送和管理功能,支持实时通知推送(SSE)、通知已读标记、通知列表查询等。
#### 功能设计
| 功能名称 | 接口地址 | 功能说明 |
|---------|---------|---------|
| 通知列表 | `GET /api/notification/findList` | 查询最新20条通知 |
| 分页查询 | `POST /api/notification/findPage` | 分页查询通知 |
| 未读数量 | `POST /api/notification/findNoReadCount` | 查询未读通知数量 |
| 实时推送 | `GET /api/notification/findNoReadCountSSE` | SSE方式获取未读数 |
| 已读标记 | `POST /api/notification/read` | 批量标记通知已读 |
| 全部已读 | `POST /api/notification/readAll` | 标记全部已读 |
| 删除通知 | `POST /api/notification/remove` | 删除通知 |
#### 使用方式
```java
// 发送通知
notificationService.sendNotification(
"admin", // 接收人账号
"系统通知", // 标题
"您有一条新的审批待处理" // 内容
);
// 前端SSE订阅
const eventSource = new EventSource('/api/notification/findNoReadCountSSE');
eventSource.onmessage = (event) => {
console.log('未读数量:', event.data);
};
```
---
### 4.8 系统监控模块
#### 系统作用
系统监控模块提供服务器运行状态监控功能,包括CPU、内存、线程、缓存等系统指标监控,以及在线用户管理和Redis缓存管理。
#### 功能设计
| 功能名称 | 接口地址 | 功能说明 |
|---------|---------|---------|
| 在线用户 | `POST /api/control/online` | 查询在线用户列表 |
| 踢出用户 | `POST /api/control/kickOut` | 强制踢出用户 |
| 系统监控 | `POST /api/control/queryAdminControlEntity` | 查询CPU/内存/线程等 |
| 实时监控 | `GET /api/control/getAdminControl` | SSE实时获取监控数据 |
| 缓存系统 | `GET /api/control/queryCacheSystemList` | 查询缓存系统列表 |
| Redis键查询 | `GET /api/control/queryRedisKeys` | 查询Redis键列表 |
| Redis值查询 | `GET /api/control/getRedisValue` | 获取Redis键值 |
| 删除缓存 | `POST /api/control/removeKey` | 删除Redis缓存 |
#### 使用方式
```javascript
// 前端实时监控订阅
const eventSource = new EventSource('/api/control/getAdminControl');
eventSource.onmessage = (event) => {
const data = JSON.parse(event.data);
// 更新CPU、内存、线程图表
updateCharts(data);
};
```
---
### 4.9 定时任务模块
#### 系统作用
定时任务模块基于Quartz实现,提供定时任务的动态管理功能,支持任务的增删改查、执行控制、日志查询等。
#### 功能设计
| 功能名称 | 接口地址 | 功能说明 |
|---------|---------|---------|
| 任务列表 | `POST /api/quartz/queryList` | 分页查询定时任务 |
| 任务日志 | `POST /api/quartz/queryLogList` | 查询任务执行日志 |
| 新增任务 | `POST /api/quartz/add` | 新增定时任务 |
| 修改任务 | `POST /api/quartz/update` | 修改任务配置 |
| 删除任务 | `POST /api/quartz/delete` | 删除定时任务 |
| 立即执行 | `POST /api/quartz/run` | 立即执行任务 |
| 暂停任务 | `POST /api/quartz/pause` | 暂停任务运行 |
| 停用任务 | `POST /api/quartz/disable` | 停用定时任务 |
| 恢复任务 | `POST /api/quartz/resume` | 恢复任务运行 |
#### 使用方式
```java
// 创建定时任务类
@Component
public class TestJob implements Job {
@Override
public void execute(JobExecutionContext context) {
// 定时任务逻辑
System.out.println("定时任务执行: " + LocalDateTime.now());
}
}
// Cron表达式示例
// 每天凌晨2点执行: 0 0 2 * * ?
// 每5分钟执行一次: 0 */5 * * * ?
```
---
### 4.10 日志管理模块
#### 系统作用
日志管理模块提供系统日志的查询功能,包括用户登录日志和业务操作日志的记录和查询。
#### 功能设计
| 功能名称 | 接口地址 | 功能说明 |
|---------|---------|---------|
| 登录日志 | `POST /api/syslog/findLoginLog` | 查询用户登录日志 |
| 操作日志 | `POST /api/syslog/findOperateLog` | 查询业务操作日志 |
#### 使用方式
```java
// 使用@LogSaveAnnotation注解自动记录操作日志
@LogSaveAnnotation(
module = "用户模块",
title = "新增用户",
catalog = "权限管理/用户管理",
recordRequestParam = true // 是否记录请求参数
)
@PostMapping("/add")
public void add(@RequestBody UserVo userVo) {
userService.add(userVo);
}
```
---
### 4.11 工作流模块
#### 系统作用
工作流模块是系统自研的轻量级工作流引擎,支持可视化流程设计、流程审批、流程监控等完整的工作流功能。
#### 功能设计
**流程设计API:**
| 功能名称 | 接口地址 | 功能说明 |
|---------|---------|---------|
| 流程列表 | `GET /api/process/queryList` | 查询流程定义列表 |
| 保存流程 | `POST /api/process/saveProcess` | 保存流程设计 |
| 流程详情 | `GET /api/process/getByProcessId` | 查询流程设计详情 |
| 可发起流程 | `GET /api/process/queryWorkProcessList` | 查询可发起的流程 |
| 状态变更 | `POST /api/process/changeStatus` | 修改流程状态 |
| 流程节点 | `GET /api/process/getAllTaskNodes` | 查询流程所有任务节点 |
| 类别管理 | `addClass/saveClass/removeClass` | 流程类别管理 |
**流程实例API:**
| 功能名称 | 接口地址 | 功能说明 |
|---------|---------|---------|
| 流程详情 | `POST /api/process/instance/workflowDetail` | 查询流程任务详情 |
| 后续节点 | `POST /api/process/instance/nextTask` | 查询后续任务节点 |
| 创建流程 | `POST /api/process/instance/buildFLow` | 创建流程实例 |
| 创建并提交 | `POST /api/process/instance/buildAndSubmit` | 创建并提交流程 |
| 提交流程 | `POST /api/process/instance/submit` | 提交流程 |
| 退回节点 | `POST /api/process/instance/getRejectNodeList` | 查询可退回节点 |
| 退回流程 | `POST /api/process/instance/reject` | 退回流程 |
| 终止流程 | `POST /api/process/instance/termination` | 终止流程 |
| 流程日志 | `GET /api/process/instance/queryProcessLog` | 查询流程日志 |
#### 使用方式
```java
// 1. 业务系统集成工作流 - 实现回调接口
@WorkflowCallback(processCode = "REIMBURSEMENT")
public class ReimbursementCallback implements WorkflowCallbackFunction {
@Override
public void onSubmit(EventParam param) {
// 流程提交时的业务处理
}
@Override
public void onComplete(EventParam param) {
// 流程完成时的业务处理
}
@Override
public void onReject(EventParam param) {
// 流程退回时的业务处理
}
}
// 2. 发起流程
BuildFlowParam param = new BuildFlowParam();
param.setProcessId("流程定义ID");
param.setBusinessKey("业务单据ID");
instanceService.buildAndSubmit(param);
```
---
## 5. 数据库设计
### 5.1 核心表结构
| 表名 | 中文名 | 说明 |
|-----|-------|------|
| `mayan_plat_user` | 用户表 | 存储系统用户基本信息 |
| `mayan_plat_role` | 角色表 | 存储角色信息 |
| `mayan_plat_role_class` | 角色类别表 | 角色分类管理 |
| `mayan_plat_role_user` | 角色用户关联表 | 角色与用户多对多关联 |
| `mayan_plat_dept` | 组织表 | 存储组织架构信息 |
| `mayan_plat_position` | 岗位表 | 存储岗位信息 |
| `mayan_plat_dept_position` | 部门岗位关联表 | 部门与岗位关联 |
| `mayan_plat_position_user` | 岗位用户关联表 | 岗位与用户关联 |
| `mayan_plat_system` | 系统表 | 存储业务系统信息 |
| `mayan_plat_system_resource` | 系统资源表 | 存储菜单资源 |
| `mayan_plat_resource_role` | 资源角色关联表 | 资源与角色多对多关联 |
| `mayan_plat_dic` | 数据字典表 | 存储字典数据 |
| `mayan_plat_parameter` | 系统参数表 | 存储系统参数 |
| `mayan_plat_login_user` | 登录用户表 | 记录用户登录信息 |
| `mayan_plat_data_role_config` | 数据权限配置表 | 角色数据权限配置 |
| `mayan_plat_function_point` | 功能点表 | 业务功能点管理 |
| `mayan_plat_function_point_role` | 功能点角色关联表 | 功能点与角色关联 |
### 5.2 表字段公共约定
所有表都包含以下公共字段:
| 字段名 | 类型 | 说明 |
|-------|------|------|
| `version_` | int | 版本号,用于乐观锁 |
| `create_user_` | varchar(64) | 创建人 |
| `create_time_` | datetime | 创建时间 |
| `update_user_` | varchar(64) | 更新人 |
| `update_time_` | datetime | 更新时间 |
| `delete_flag_` | varchar(1) | 删除标记,逻辑删除 |
| `id_` | varchar(64) | 主键ID,使用雪花算法生成 |
---
## 6. 部署说明
### 6.1 环境要求
| 组件 | 版本要求 |
|-----|---------|
| JDK | 1.8+ |
| Maven | 3.6+ |
| Node.js | 14.x+ |
| MySQL | 8.0+ |
| Redis | 6.0+ |
| RabbitMQ | 3.8+ (可选) |
### 6.2 后端部署
```bash
# 1. 克隆项目代码
git clone
# 2. 配置数据库
# 创建数据库并执行初始化脚本
mysql -u root -p platform < platform-core/db/db.sql
# 3. 修改配置文件
# 编辑 platform-core/src/main/resources/application.yml
# 配置数据库连接、Redis连接等
# 4. 编译打包
mvn clean package -DskipTests
# 5. 启动服务
java -jar platform-core/target/platform-core.jar
```
### 6.3 前端部署
```bash
# 1. 进入前端目录
cd platform-web
# 2. 安装依赖
npm install
# 3. 开发环境启动
npm run serve
# 4. 生产环境构建
npm run build
# 5. 部署dist目录到Nginx或其他Web服务器
```
### 6.4 Nginx配置示例
```nginx
server {
listen 80;
server_name your-domain.com;
location / {
root /path/to/platform-web/dist;
index index.html;
try_files $uri $uri/ /index.html;
}
location /api {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
```
### 6.5 默认账号
| 账号 | 密码 | 说明 |
|-----|------|------|
| admin | 123456 | 系统管理员 |
| admin | 1234567 | 系统管理员 |
---
## 附录
### A. 接口规范
- 请求方式:GET用于查询,POST用于新增/修改/删除
- 请求格式:`application/json`
- 认证方式:Token认证,通过Header传递`token`
### B. 统一响应格式
```json
// 成功响应
{
"code": 200,
"message": "success",
"data": { ... }
}
// 失败响应
{
"code": 500,
"message": "错误信息",
"data": null
}
```
### C. API文档地址
- Swagger UI: `http://localhost:8080/swagger-ui.html`
- Swagger Bootstrap UI: `http://localhost:8080/doc.html`
#### 使用说明
项目测试地址: http://106.54.54.254/platform-web/
用户名密码: admin/123456 或 admin/1234567
系统原图参考














#### 参与贡献
#### 特技