项目背景
自治区学生体质测试信息管理系统是面向全疆各级学校体育教师的专业体测成绩上报平台。该系统不仅支持体育教师高效完成学生体测数据的采集与上报工作,还具备多维度数据统计分析功能,可实时生成区县、地州等不同行政层级辖区内学校学生各体测项目的优良率、合格率等关键指标。通过对全疆学生体质健康数据的精准汇聚与深度挖掘,系统为自治区教育行政部门制定科学的体育教育政策、优化体育教学资源配置、提升学生体质健康水平提供了全面、客观、可靠的核心数据支撑,助力构建全疆学生体质健康监测与提升的长效机制。
软件功能介绍
1. 数据安全管理与系统工具
用户权限管理(教育用户、体育教师用户)
体测项目与教师登记
体测环境登记与查询
学生体测编码统一查看
2. 信息管理
学校、年级、班级基础信息维护
学生信息管理
学校基础信息
3. 体测数据管理
免测、录入、查询、历史数据、异常数据、漏项数据管理
体测数据分析报告生成
4. 学校体育工作评估
体育设施填报与查看
自评结果填报、审核、上报
评估项目管理与汇总查看
5. 综合统计报表
上报信息统计与详情
可疑数据统计
分项体测指标统计报表(BMI、肺活量、50米跑、跳绳、仰卧起坐、往返跑、立定跳远、引体向上、1000/800米、坐位体前屈等)
核心功能模块
1、学生体测数据全流程管理:支持体测数据录入、免测登记、异常/漏项检测、历史数据追溯
2、体测数据自动评分与分析:根据国家体质健康标准自动评分,生成体测数据分析报告
3、多维度统计报表:提供BMI、肺活量、跑步、跳绳、仰卧起坐等单项统计报表,支持可疑数据筛查
4、学校体育工作评估:支持学校自评、设施填报、教育主管部门审核与汇总查看
5、基础信息统一管理:统一维护学校、年级、班级、学生、教师、体测项目及环境信息
6、用户分级权限管理:区分教育用户与体育教师用户,保障数据安全与操作边界
整体架构:采用基于 Spring Boot (2.1.x) 的分布式多模块架构。按端拆分:分为后台管理端(DC-admin / ehimsys-physique-admin,前后端不完全分离或混用)和移动端/对外 API 层(DC-API / physique-API,前后端分离)。
设计思路:按业务领域驱动(DDD雏形)拆分模块(如 system 系统管理、business 体测业务、quartz 定时任务)。应对教育系统“平时流量低,期末/体测季流量极高”的潮汐特性,采用“异步生成报表”、“定时聚合统计”、“分级缓存”的思路设计。
技术栈:
核心框架:Spring Boot 2.1.1、Spring Context、MyBatis/MyBatis-Plus。
数据库体系:MySQL 8.0 (配合 Druid 连接池与 PageHelper) 负责核心业务关系;MongoDB (spring-boot-starter-data-mongodb) 辅助存储复杂的非结构化档案和体测记录。
安全与鉴权:PC 管理端采用 Apache Shiro + EhCache + Thymeleaf 体系;API 接口层采用 Spring Security + JWT 实现无状态 Token 认证。
缓存与性能:Redis 分布式缓存 + Guava 进程内缓存。
文件与报表:EasyPOI、poi-tl 解决海量体测成绩 Excel 导入导出及复杂 Word 报告渲染;FastDFS 与阿里云 OSS 负责海量报告及静态资源的对象存储。
任务与工具:Quartz (分布式定时任务)、Hutool、百度 Uid-generator (分布式ID生成)。
- 负责模块 :核心负责学生体测数据录入/导入、体测成绩动态计算(根据国家标准测算得分与等级,如 PhyResultsRule )、以及省/市/校多维度的统计分析与 Word 报表生成( StatisticalReportController 、 PhyPoiWordSchService 等)。
- 量化结果 :
- 导入性能飞跃 :重构了全校/全区体测成绩批量 Excel 导入功能,弃用原生 POI,采用 EasyPOI 流式读取 + MyBatis 批量插入,将单次 5 万条记录的导入耗时从 3 分钟缩短至 15 秒左右 ,彻底解决了高峰期 OOM (内存溢出) 问题。
报告并发生成 :基于 poi-tl 和模板引擎,重构了学生“个人体质健康报告 (Word/PDF)”的生成逻辑。由同步生成改为 MQ/线程池异步生成,生成后直接推送至 FastDFS/OSS,支持并发生成 千份/分钟 ,大大提升了家长端查询体验。