# 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 系统原图参考 ![输入图片说明](image/image1.png) ![输入图片说明](image/image2.png) ![输入图片说明](image/image3.png) ![输入图片说明](image/image4.png) ![输入图片说明](image/image5.png) ![输入图片说明](image/image6.png) ![输入图片说明](image/image15.png) ![输入图片说明](image/image16.png) ![输入图片说明](image/image9.png) ![输入图片说明](image/image10.png) ![输入图片说明](image/image17.png) ![输入图片说明](image/image12.png) ![输入图片说明](image/image14.png) ![image18.png](image/image18.png) #### 参与贡献 #### 特技