
1. 项目背景与意义随着高校招生规模不断扩大大学生群体的健康管理需求日益突出。传统模式下学生体检数据、体测成绩、日常健康记录往往分散在纸质档案或不同系统中缺乏统一管理和持续跟踪导致健康数据利用率低、异常情况难以及时发现。本系统旨在通过信息化手段构建一个面向大学生、辅导员和校医院的多角色健康管理平台实现健康档案电子化、体测数据可视化、异常指标预警和健康建议推送帮助高校提升健康管理效率促进学生养成科学健康的生活习惯。2. 系统需求分析系统主要面向三类用户角色各自核心需求如下学生用户查看个人健康档案、录入日常健康数据、查看体测成绩与健康评估报告、接收健康建议。辅导员查看所带班级学生的整体健康概况关注异常预警及时跟进重点学生。校医院管理员维护体检数据、管理健康指标标准、发布健康资讯、统计全校健康数据。3. 技术栈选型系统采用前后端分离架构后端基于 SpringBoot 构建 RESTful API前端使用 Vue 配合 Element UI 实现管理界面数据存储选用 MySQL缓存层引入 Redis 提升热点数据访问性能。层次技术选型说明后端框架SpringBoot 2.7快速构建独立运行的微服务应用持久层MyBatis-Plus简化 CRUD 操作内置分页插件数据库MySQL 8.0存储用户、健康档案、体测等业务数据缓存Redis缓存热点数据提升查询性能安全认证Spring Security JWT实现登录认证与接口权限控制前端框架Vue 3 Element Plus构建交互友好的管理界面接口文档Knife4j自动生成在线接口调试文档4. 数据库设计系统核心数据表包括用户表、学生档案表、体检记录表、体测成绩表和健康预警表。下面给出学生档案表和体检记录表的核心字段设计。学生档案表student_profile字段名类型说明idbigint主键student_novarchar(20)学号namevarchar(50)姓名gendertinyint性别collegevarchar(100)学院majorvarchar(100)专业class_namevarchar(100)班级heightdecimal(5,2)身高cmweightdecimal(5,2)体重kgblood_typevarchar(10)血型create_timedatetime创建时间体检记录表health_check_record字段名类型说明idbigint主键student_idbigint学生档案IDcheck_datedate体检日期blood_pressurevarchar(20)血压heart_rateint心率vision_leftdecimal(4,2)左眼视力vision_rightdecimal(4,2)右眼视力bmidecimal(4,2)BMI指数conclusionvarchar(255)体检结论5. 核心功能实现系统后端采用分层架构Controller 层负责接收请求Service 层处理业务逻辑Mapper 层通过 MyBatis-Plus 完成数据持久化。下面给出健康档案查询和 BMI 预警判断两个核心模块的实现代码。5.1 健康档案查询接口RestController RequestMapping(/api/profile) public class StudentProfileController { Resource private StudentProfileService profileService; GetMapping(/{studentId}) public ResultStudentProfileVO getProfile(PathVariable Long studentId) { StudentProfileVO vo profileService.getProfileDetail(studentId); return Result.success(vo); } PutMapping public ResultBoolean updateProfile(RequestBody StudentProfile profile) { boolean updated profileService.updateById(profile); return updated ? Result.success(true) : Result.fail(更新失败); } }5.2 健康预警服务Service public class HealthAlertServiceImpl implements HealthAlertService { Resource private HealthCheckRecordMapper recordMapper; Resource private StudentProfileMapper profileMapper; Override public ListHealthAlertVO checkAbnormal(Long studentId) { ListHealthCheckRecord records recordMapper.selectList( new LambdaQueryWrapperHealthCheckRecord() .eq(HealthCheckRecord::getStudentId, studentId) .orderByDesc(HealthCheckRecord::getCheckDate) .last(limit 1) ); if (records.isEmpty()) { return Collections.emptyList(); } HealthCheckRecord latest records.get(0); ListHealthAlertVO alerts new ArrayList(); double bmi latest.getBmi(); if (bmi 18.5) { alerts.add(new HealthAlertVO(BMI偏低, 当前BMI为 bmi 建议加强营养摄入)); } else if (bmi 24.0) { alerts.add(new HealthAlertVO(BMI偏高, 当前BMI为 bmi 建议控制饮食并加强运动)); } if (latest.getHeartRate() 100) { alerts.add(new HealthAlertVO(心率过快, 静息心率超过100次/分建议复查)); } return alerts; } }5.3 登录认证与 JWT 签发Service public class AuthServiceImpl implements AuthService { Resource private UserMapper userMapper; Resource private JwtUtil jwtUtil; Override public LoginVO login(String username, String password) { User user userMapper.selectOne( new LambdaQueryWrapperUser() .eq(User::getUsername, username) ); if (user null || !password.equals(user.getPassword())) { throw new BusinessException(用户名或密码错误); } String token jwtUtil.generateToken(user.getId(), user.getRole()); return new LoginVO(token, user.getRole(), user.getNickname()); } }6. 系统测试与总结系统核心接口通过 Postman 和 Knife4j 完成功能测试覆盖登录认证、档案查询、体测数据录入和预警判断等主要流程接口响应正常权限控制有效。本系统实现了大学生健康档案的数字化管理通过 BMI、心率等指标的自动分析能够及时发现学生健康异常并推送预警为高校健康管理工作提供了有效支撑。后续可进一步引入体检报告 OCR 识别、健康趋势图表分析和运动打卡等功能持续提升系统的实用价值。