Files
training-system/training/codes/training-system/README.md
2026-05-12 12:20:25 +08:00

5.5 KiB
Raw Blame History

道路救援企业培训系统

版本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. 访问系统


生产部署

打包

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 文档。

功能说明

文件类型 预览方式
PDF 浏览器原生渲染
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 初始版本发布