毕业设计实战:基于Spring Boot+MySQL的疫情期间高校人员管理系统,从需求分析到测试的避坑全指南!
家人们谁懂啊!当初做疫情期间高校人员管理系统毕设时,光“教师打卡信息表”和“学生请假表”的审核状态逻辑就卡了一周——一开始没考虑多角色审核流程,教师提交的返校申请管理员和操作人员都能修改,数据权限直接乱套,导师看了直摇头说“权限设计有问题”😫 后来踩遍所有坑才总结出这套高效落地流程,今天把疫情特殊场景下的需求分析、技术选型、多角色功能实现到测试的核心细节说透,学弟学妹们不用再熬夜调权限,轻松搞定毕设!
一、先搞懂“疫情期间高校人员管理系统要啥”!需求分析别跑偏
刚开始我以为就是普通的人员管理系统,花两周加了“人脸识别打卡”,结果导师一句“核心是健康状态追踪、行程管理、返校审批,不是生物识别”直接打回重改!后来才明白,疫情系统需求分析得先抓准“特殊时期管理需求”,这步做对,少走80%弯路。
1. 核心用户&功能拆解(踩坑后总结版)
系统有四类核心用户:管理员、操作人员、教师、学生(别漏“操作人员”角色!我当初只设管理员和师生,结果所有日常审核都压给管理员,系统崩溃后才补了操作人员角色),功能必须按角色严格区分:
-
管理员端(系统管理核心):
- 人员管理:管理操作人员账号(新增、重置密码)、审核教师/学生基本信息、逻辑删除离职人员
- 资讯管理:发布疫情资讯(新增/编辑/删除)、设置资讯类型(通知/政策/提醒)、管理资讯图片
- 审批监督:查看教师/学生返校申请记录、监督操作人员审核工作、导出全校健康统计报表
- 系统监控:查看登录日志、监控异常操作、备份系统数据
-
操作人员端(日常审核核心):
- 信息审核:审核教师/学生返校申请(同意/拒绝)、审批请假信息、确认居家隔离状态
- 留言处理:查看并回复学生留言、分类处理咨询问题、标记已解决事项
- 健康监测:查看全校打卡记录、筛选异常健康状态、跟踪风险地区人员
- 数据维护:维护教师/学生基本信息、更新联系方式、修正错误数据
-
教师端(健康上报核心):
- 健康打卡:每日上报健康状态(是否健康)、填写打卡地点、添加备注信息
- 行程管理:提交居家信息(地点/是否隔离/风险等级)、更新同住人员状况
- 申请服务:提交返校申请(预计时间/原因)、提交请假申请(起止时间/原因)
- 信息查看:查看个人打卡历史、查询审批进度、浏览疫情资讯
-
学生端(信息上报核心):
- 健康打卡:每日上报健康状态、填写当前位置、上传健康码截图(我当初漏了这功能,导师让补上)
- 行程报备:提交居家信息(地点/隔离状态/风险等级)、更新家庭人员健康状况
- 申请服务:提交返校申请、提交请假申请(支持事假/病假类型)
- 互动服务:留言咨询问题、查看回复、查看个人所有申请记录
2. 疫情特殊需求分析(血泪教训!)
- 别照搬普通系统!疫情系统核心是“健康追踪”和“行程管控”,我当初按普通考勤系统设计,漏了“风险等级”字段,导师问“怎么区分中高风险地区人员”时直接懵了
- 一定要画多角色用例图!用DrawIO画“管理员-发布疫情资讯”“操作人员-审核返校申请”“教师-健康打卡”“学生-留言咨询”,四个角色功能清晰展示,汇报时导师一眼就看懂系统架构(当初只画了管理员和学生的,被说考虑不周全)
- 写“疫情场景约束文档”!把特殊要求写清楚(如“隔离人员每日必须打卡”“返校申请需提前3天提交”“风险地区人员返校需特殊审批”),编码时对着做,不跑偏
3. 可行性分析要突出“疫情适用性”
导师必问“为什么疫情期间需要这个系统”,从3个角度写,显专业:
- 技术可行性:Spring Boot + Vue + MySQL组合成熟稳定,疫情数据实时性要求高,Spring Boot的快速响应特性完全满足;Redis缓存健康状态数据,提高查询效率(别用MongoDB!我当初试了,疫情数据结构规整,用MySQL更合适)
- 社会可行性:疫情常态化管理需要信息化工具,系统能减少人工统计错误,提高疫情响应速度,符合高校疫情防控要求
- 操作可行性:界面参考“健康码”小程序,简化操作流程,教师学生10秒完成打卡,操作人员批量审核,管理员一键导出报表,上手快
二、技术选型要稳!这套组合经过疫情检验
刚开始我想炫技用Spring Cloud微服务+Elasticsearch,结果“全校健康数据统计”接口响应要8秒——微服务调用链太长😫 后来换成Java 8 + Spring Boot 2.7 + MySQL 8.0 + Vue 2 + Element UI + Redis,疫情数据高频访问场景下,响应速度提升3倍!
1. 技术栈核心选择(附疫情场景适配理由)
| 技术工具 | 为什么选它 | 疫情场景适配点 | 避坑提醒! |
|---|---|---|---|
| Java 8 | 稳定成熟,企业级应用验证 | 疫情系统要求7×24小时稳定运行,Java 8长期支持版最可靠 | 别用Java 17!部分疫情上报插件兼容性差 |
| Spring Boot 2.7 | 快速开发,内置健康检查端点 | 可快速开发疫情打卡、返校审批等核心接口,健康检查便于监控系统状态 | 配置文件中必须设server.shutdown=graceful,避免疫情数据提交时系统重启导致数据丢失 |
| MySQL 8.0 | 事务支持完善,数据一致性要求高 | 疫情数据不容出错,MySQL的ACID特性保证打卡、审批等操作原子性 | 必须开启binlog,便于疫情数据追溯和恢复 |
| Vue 2 + Element UI | 组件丰富,开发效率高 | Element UI的表格、表单、弹窗组件适合疫情数据展示和填报 | 别用Vue 3 + Element Plus!我当初试了,部分组件不稳定,疫情紧急时出问题难排查 |
| Redis 6.x | 缓存热点数据,减轻数据库压力 | 缓存全校今日健康状态、风险地区列表等高频访问数据 | 配置持久化策略,避免服务器重启疫情缓存数据丢失 |
| Nginx | 负载均衡,静态资源加速 | 疫情资讯图片、健康码截图等静态资源快速加载 | 配置gzip压缩,减少疫情页面加载时间 |
2. 疫情系统开发环境搭建(关键步骤)
- 疫情数据模拟准备:用Python脚本生成测试数据(1000个学生+200个教师的30天打卡记录、返校申请、请假记录),编码前先验证表结构是否合理
- Spring Boot项目初始化:用Spring Initializr创建项目,必须引入:
<!-- 疫情系统核心依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <!-- 缓存健康状态 --> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <!-- 疫情报表导出 --> </dependency> - 疫情专用配置:application.yml中配置:
pandemic: settings: daily-report-required: true # 每日打卡必填 return-school-advance-days: 3 # 返校提前申请天数 risk-area-update-cron: "0 0 6 * * ?" # 每天6点更新风险地区
三、数据库设计:疫情数据关联复杂,关系理清
这是疫情系统“最易出错点”,我当初“学生表”和“打卡表”没建索引,查“某班级今日未打卡学生”要15秒,被导师批评“不考虑性能”😫 后来按“疫情数据流”重新设计,查询优化到0.2秒。
1. 核心疫情实体&关联(附ER图技巧)
疫情系统核心是“人员健康轨迹”,8张核心表,关联必须清晰:
- 人员基础表:学生表(xuesheng)、教师表(laoshi)、操作人员表(caozuorenyuan)
- 疫情业务表:打卡信息表(daka)、居家信息表(jujia)、返校申请表(fanxiao)、请假表(qingjia)
- 辅助表:留言板表(liuyanban)、疫情资讯表(zixun)
关键关联设计:
- 学生→打卡:一对多,一个学生每天可打卡一次(需加
UNIQUE(xuesheng_id, insert_date)约束,避免重复打卡) - 教师→返校申请:一对多,一个教师可提交多次返校申请(每次需操作人员审核)
- 操作人员→留言回复:一对多,一个操作人员可回复多条留言
ER图绘制要点:
- 用Visio或draw.io,实体用矩形,疫情专用字段用特殊颜色(如红色标健康状态字段)
- 关系线标注多重性(1:1、1:N、M:N)
- 必加备注:如“隔离人员打卡频率=每日2次”
2. 疫情数据表关键字段设计(易错点!)
-- 学生打卡表 - 疫情特殊字段
CREATE TABLE `xuesheng_daka` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`xuesheng_id` int(11) NOT NULL COMMENT '关联学生',
`daka_name` varchar(200) DEFAULT NULL COMMENT '打卡地点(疫情要求精确定位)',
`daka_content` text COMMENT '备注(症状描述等)',
`jiankang_types` int(11) NOT NULL COMMENT '是否健康:1健康,2发热,3咳嗽(别用0/1,要细分)',
`tiwen` decimal(3,1) DEFAULT NULL COMMENT '体温(疫情新增字段,我当初漏了)',
`is_isolate` tinyint(1) DEFAULT '0' COMMENT '是否隔离中',
`insert_time` date NOT NULL COMMENT '打卡日期(按日期分区,提高查询效率)',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_student_date` (`xuesheng_id`,`insert_time`), -- 防止重复打卡
KEY `idx_health_date` (`jiankang_types`,`insert_time`) -- 按健康状态快速查询
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学生打卡表-疫情核心表';
3. 疫情数据关联测试SQL(必做!)
建表后立即测试复杂疫情查询:
-- 查询“高风险地区且未打卡的学生”
SELECT s.xuesheng_name, s.xuesheng_phone, j.jujia_name, j.jujiafengxiandengji_types
FROM xuesheng s
LEFT JOIN xuesheng_jujia j ON s.id = j.xuesheng_id
AND j.insert_time = CURDATE() -- 今日居家信息
LEFT JOIN xuesheng_daka d ON s.id = d.xuesheng_id
AND d.insert_time = CURDATE() -- 今日打卡
WHERE j.jujiafengxiandengji_types = 3 -- 高风险地区
AND d.id IS NULL -- 未打卡
AND s.xuesheng_delete = 0;
能正确查出数据说明关联正确,否则赶紧检查外键。
四、功能实现:疫情场景下的核心模块
不用做所有功能!先搞定4个核心疫情模块,答辩足够出彩:
1. 管理员端:疫情资讯管理模块(疫情特色!)
疫情资讯要实时更新,重点“资讯类型分类”和“发布时效控制”:
- 操作逻辑:
- 发布资讯前校验:标题必填、类型必选(通知/政策/提醒)、发布时间≤当前时间
- 紧急资讯可置顶,普通资讯按时间倒序,疫情政策类资讯永久保存
- 资讯支持富文本编辑,可插入风险地区地图、防疫指南图片
- 页面设计(Vue + Element UI):
- 资讯列表:卡片式布局,紧急资讯红色边框,显示标题、类型、发布时间、阅读数
- 发布页面:标题输入框、类型选择器(通知/政策/提醒)、富文本编辑器、封面图上传、定时发布开关
- 数据统计:资讯阅读量趋势图、类型分布饼图
2. 操作人员端:返校申请审核模块(疫情核心!)
这是疫情系统最复杂模块,我当初漏了“审核历史追溯”,导师问“谁拒绝了某个申请”时查不到记录:
- 操作逻辑:
- 待审核列表按提交时间排序,高风险地区申请标红预警
- 审核时必填审核意见(同意/拒绝原因),系统自动记录审核人和时间
- 批量审核功能:勾选多个同类型申请一键通过(如“全部低风险地区申请”)
- 审核后自动通知申请人(站内信+邮件,我当初只做了站内信,导师让补邮件通知)
- 页面设计:
- 筛选区:申请人姓名、风险等级、申请时间范围、审核状态(待审/已审)
- 申请详情弹窗:显示申请人基本信息、行程轨迹、健康打卡历史、同住人员状况
- 审核操作区:同意/拒绝按钮、审核意见文本框、附件上传(如核酸报告)
3. 教师端:健康打卡模块(高频使用!)
教师每日必用,重点“极简操作”和“异常提醒”:
- 操作逻辑:
- 进入页面自动定位(需用户授权),显示上次打卡记录供参考
- 健康状态选择后,如选“发热”或“咳嗽”,必须填写症状详情和体温
- 提交时校验:是否已打卡(防止重复)、必填项是否完整
- 异常状态自动触发预警,通知操作人员跟进
- 页面设计(移动端优先):
- 打卡表单:大按钮选择健康状态(绿色健康/黄色异常/红色发热)、滑动输入体温、地理位置显示
- 历史记录:日历视图,绿色圆点=已打卡,红色=异常打卡,点击查看详情
- 疫情提醒:显示今日风险地区列表、最新防疫政策摘要
4. 学生端:留言咨询模块(沟通桥梁!)
疫情政策多变,学生常有疑问,重点“快速响应”:
- 操作逻辑:
- 留言分类选择(返校政策/隔离要求/打卡问题),便于操作人员分类处理
- 支持上传图片附件(如健康码异常截图)
- 操作人员回复后,系统标记“已回复”并通知学生
- 常见问题自动推荐(基于留言内容匹配)
- 页面设计:
- 留言列表:我的留言(按状态分组)、常见问题(固定展示)
- 留言表单:问题类型下拉框、问题描述文本框、图片上传组件、紧急程度选择
- 对话界面:类似聊天框,左侧学生问题,右侧操作人员回复,显示回复时间
五、疫情系统测试要更严格!
疫情数据不能出错,测试要覆盖所有异常场景:
1. 功能测试(疫情特殊场景)
| 测试场景 | 操作步骤 | 预期结果 | 疫情重要性 |
|---|---|---|---|
| 高风险地区学生提交返校申请 | 学生居家信息设为高风险→提交返校申请→操作人员审核 | 申请列表中标红预警,操作人员需查看核酸报告等附加材料 | 高风险地区必须严格审核 |
| 教师发热状态打卡 | 教师打卡选择“发热”状态→体温填38.5→提交 | 系统记录异常打卡,自动通知操作人员,生成待处理任务 | 发热人员必须及时追踪 |
| 学生连续3天未打卡 | 模拟学生3天未打卡→操作人员查看未打卡报表 | 显示该学生姓名、联系方式,标记为“重点跟进” | 防止漏报瞒报 |
| 疫情资讯紧急发布 | 管理员发布类型为“紧急通知”的资讯 | 资讯列表置顶显示,所有用户登录时弹窗提醒 | 重要政策及时传达 |
2. 压力测试(疫情数据爆发场景)
疫情可能突然严重,系统要能承受:
- 并发打卡测试:模拟5000名学生同时打卡,响应时间<2秒
- 大数据量查询:查询全校30天打卡记录(约15万条),加载时间<5秒
- 报表导出压力:导出全校月度健康报表(含图片),文件生成时间<30秒
3. 兼容性测试(多终端覆盖)
疫情期间用户可能用各种设备:
- 手机浏览器:Chrome、Safari、微信内置浏览器(重点测!很多学生用微信打卡)
- 平板设备:iPad、安卓平板,测横竖屏适配
- 老旧电脑:IE11(学校机房可能还有),用polyfill兼容
六、答辩准备:突出疫情应对特色
- 演示流程要有故事性:按“疫情突发→学校紧急通知→学生健康打卡→异常人员追踪→返校审核→数据报表”流程演示,体现系统完整应对链条
- 讲“疫情场景解决方案”:比如“传统手工统计易出错→系统自动汇总;政策传达不及时→资讯模块实时推送;返校审批慢→线上流程加速”,突出信息化优势
- 准备疫情相关问题:
- Q:系统如何保证疫情数据真实? A:多重校验(定位验证、时间戳防篡改)、操作留痕、异常数据人工复核
- Q:突发疫情时系统能承受吗? A:已做压力测试,支持5000并发;数据库读写分离方案已设计,可快速扩容
最后:疫情系统毕设通关要点
以上就是疫情期间高校人员管理系统的避坑全指南!疫情系统毕设要抓住“健康追踪”和“流程管控”两个核心,把打卡、居家、返校、请假四个主线功能做扎实,权限设计一定要细致(四角色权限分离),数据关联必须清晰。
需要疫情系统核心源码(带健康打卡、返校审批完整流程)、疫情测试数据集(模拟1000学生30天数据)、多角色权限设计文档的学弟学妹,评论区扣“疫情系统”,我私发你;卡在某个疫情场景(如风险地区判断、异常状态预警),也可以留言,看到必回!
点赞收藏,疫情系统毕设不迷茫~祝大家顺利毕业,健康平安!😷➡️😊