1. 项目背景与核心需求
高校学生体质健康管理正从传统的纸质记录向数字化、智能化转型。过去,体质测试数据分散在各类Excel表格和纸质档案中,难以进行长期追踪和综合分析。每年一次的体测往往沦为形式主义,数据价值无法充分挖掘。
这套基于SpringBoot的大学生体质测试管理系统,正是为了解决以下痛点而设计:
- 数据孤岛问题:传统模式下,身高体重、肺活量、50米跑等各项指标数据分散存储,无法形成学生四年完整的健康画像
- 流程低效:从测试安排、成绩录入到数据分析,大量依赖人工操作,容易出错且效率低下
- 反馈滞后:学生难以及时获取个人体质变化趋势,教师无法快速识别问题学生
- 管理粗放:校级管理者缺乏实时数据支持,难以为体育教学改革提供依据
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 系统架构设计
2.1 技术选型与架构
系统采用前后端分离的B/S架构:
后端技术栈:
- 核心框架:Spring Boot 2.7.5(兼顾稳定性和新特性)
- 持久层:MyBatis-Plus 3.5.3(简化CRUD操作)
- 数据库:MySQL 8.0(支持JSON字段存储动态配置)
- 缓存:Redis 6.2(用于高频访问的评分规则缓存)
- 安全框架:Spring Security + JWT(实现RBAC权限控制)
前端技术栈:
- 基础框架:Vue 3.2 + Element Plus
- 图表库:ECharts 5.4(数据可视化)
- PDF生成:jsPDF 2.5(个人报告生成)
- Excel导出:xlsx 0.18(批量数据导出)
技术选型考量:SpringBoot提供了快速开发能力,Vue3的Composition API更适合复杂前端状态管理,MySQL 8.0的窗口函数便于年级排名等统计计算。
2.2 数据库设计关键点
系统包含28张核心表,以下是几个关键设计:
学生体测成绩表(t_score)
sql复制CREATE TABLE `t_score` (
`id` bigint NOT NULL AUTO_INCREMENT,
`student_id` varchar(20) NOT NULL COMMENT '学号',
`project_id` int NOT NULL COMMENT '项目ID',
`test_time` datetime NOT NULL COMMENT '测试时间',
`raw_score` decimal(5,2) COMMENT '原始成绩',
`final_score` int COMMENT '换算后分数(0-100)',
`grade_level` varchar(10) COMMENT '等级(优秀/良好/及格)',
`is_retest` tinyint DEFAULT 0 COMMENT '是否补测',
`operator_id` bigint COMMENT '操作员ID',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
INDEX `idx_student` (`student_id`),
INDEX `idx_project` (`project_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
评分规则表(t_score_rule)
sql复制CREATE TABLE `t_score_rule` (
`id` int NOT NULL AUTO_INCREMENT,
`project_type` v
