5.5 KiB
5.5 KiB
道路救援企业培训系统
版本:V1.0.1 | 基于 Spring Boot 3.1.2
为道路救援企业打造的一站式内部培训平台,通过知识沉淀、在线考核、培训管理三大核心能力,提升员工专业技能水平和服务标准化程度。
技术栈
| 类别 | 技术 | 版本 |
|---|---|---|
| 语言 | Java | 17 |
| 构建 | Maven | 3.6+ |
| 框架 | Spring Boot | 3.1.2 |
| ORM | MyBatis Plus | 3.5.3.1 |
| 数据库 | MySQL | 8.0+ |
| 认证 | JWT (java-jwt) | 4.4.0 |
| API文档 | Springdoc OpenAPI | 2.2.0 |
| 工具库 | Lombok、Hutool | - |
| 文档预览 | kkFileView | 4.3.0 |
功能模块
| 模块 | 功能说明 |
|---|---|
| 人员管理 | 组织架构(中心→部门→小组)、员工管理、角色权限 |
| 知识库 | 文档/视频上传、在线预览、分类管理、状态流转 |
| 考题管理 | 单选/多选/判断题、题目解析、题库分类 |
| 试卷管理 | 手动组卷、自动组卷、试卷预览 |
| 考试管理 | 发布考试、指定对象、在线答题、自动阅卷 |
| 培训计划 | 关联多个知识+多个考试、分配学员、进度跟踪 |
快速开始
环境要求
- JDK 17+
- Maven 3.6+
- MySQL 8.0+
- Docker(用于 kkFileView 文档预览服务)
1. 克隆项目
git clone <repository-url>
cd training-system
2. 初始化数据库
CREATE DATABASE training_system DEFAULT CHARACTER SET utf8mb4;
USE training_system;
SOURCE sql/init.sql;
3. 修改配置
编辑 src/main/resources/application.yml,配置数据库连接:
spring:
datasource:
url: jdbc:mysql://localhost:3306/training_system
username: root
password: 你的密码
4. 启动 kkFileView(文档预览服务)
cd docker
docker-compose up -d
5. 启动应用
mvn spring-boot:run
6. 访问系统
- 系统地址:http://localhost:5173
- API文档:http://localhost:8080/swagger-ui.html
- 默认账号:
admin/admin123
生产部署
打包
mvn clean package -DskipTests
生成文件:target/training-system-1.0.0.jar
Linux部署
# 上传JAR包和SQL脚本到服务器
scp target/training-system-1.0.0.jar user@server:/opt/training/
scp sql/init.sql user@server:/opt/training/
# 创建生产配置 /opt/training/application-prod.yml
# 启动应用
java -jar training-system-1.0.0.jar --spring.profiles.active=prod
详细部署指南见 部署文档
kkFileView 文档预览服务
kkFileView 用于在线预览 Word、Excel、PPT 等 Office 文档。
功能说明
| 文件类型 | 预览方式 |
|---|---|
| 浏览器原生渲染 | |
| JPG/PNG/GIF | 直接显示 |
| DOC/DOCX/XLS/XLSX/PPT/PPTX | kkFileView 转换预览 |
| 其他格式 | 提供下载 |
安装部署
方式一:Docker Compose(推荐)
cd docker
docker-compose up -d
方式二:Docker 命令
docker run -d \
--name kkfileview \
-p 8012:8012 \
-v /opt/kkfileview/files:/opt/kkFileView-4.0.0/file \
--restart unless-stopped \
keking/kkfileview:4.3.0
配置说明
application.yml 相关配置:
training:
upload:
path: ./uploads/ # 文件存储目录
preview:
enabled: true # 是否启用预览
server-url: http://localhost:8012 # kkFileView 服务地址
file-base-url: http://localhost:8080/uploads # 文件访问基础URL
生产环境配置
application-prod.yml:
training:
upload:
path: /data/training-system/uploads/
preview:
enabled: true
server-url: http://kkfileview:8012
file-base-url: http://your-domain.com/uploads
常用命令
# 查看服务状态
docker ps | grep kkfileview
# 查看日志
docker logs -f kkfileview
# 重启服务
docker restart kkfileview
# 停止服务
docker stop kkfileview
降级方案
如需禁用文档预览功能,设置 training.preview.enabled=false,前端将自动降级为下载模式。
项目结构
training-system/
├── src/main/java/com/sino/training/
│ ├── common/ # 公共模块(配置、异常、工具类)
│ ├── module/
│ │ ├── system/ # 系统模块(用户、部门、小组)
│ │ ├── knowledge/ # 知识库模块
│ │ ├── exam/ # 考试模块(题目、试卷、考试)
│ │ └── training/ # 培训计划模块
│ └── TrainingApplication.java
├── src/main/resources/
│ ├── static/ # 前端静态资源
│ ├── application.yml # 配置文件
│ └── mapper/ # MyBatis XML
├── sql/
│ └── init.sql # 数据库初始化脚本
├── docs/ # 项目文档
└── pom.xml
编码规范
- 遵循《阿里 Java 开发规范》
- Controller 层不写业务逻辑
- Service + Impl 负责业务处理
- Mapper 只做数据访问
- 必须使用 Lombok 简化代码
相关文档
版本记录
| 版本 | 日期 | 更新内容 |
|---|---|---|
| V1.0.2 | 2026-01-21 | 新增 kkFileView 文档预览功能,修复静态资源路径配置 |
| V1.0.1 | 2026-01-13 | 培训计划支持多考试任务 |
| V1.0.0 | 2026-01-08 | 初始版本发布 |