zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

基于Java+MySQL实现(Web)师生健康码管理系统【100010204】

mysqlJAVA管理系统Web 实现 基于 健康
2023-09-11 14:17:50 时间

师生健康码管理系统

1) 系统概述

健康码是以个人健康数据为基础,由居民自主通过健康登记系统网上申报,结合新冠肺炎疫情相关数据进行比对核验,生成个人专属二维码。杭州市于 2020 年 2 月 11 日率先在全国推出绿色、黄色和红色的健康码,绿码可以直接进入杭州,红码集中隔离 14 天,黄码隔离 7 天以内。

某大学为确保开学安全,要求所有师生申领健康码并每天打卡。请您为该大学设计并开发一套师生健康码管理系统,包括学院管理、专业管理、班级管理、教师管理、学生管理、健康码查询与统计、打卡情况统计等功能。具体功能如下:

(1)系统管理员可设置学院、专业、班级等信息并进行管理,可在后台导入教师数据和学生数据并进行管理,教师数据包括姓名、身份证号、工号、学院、角色(系统管理员、校级管理员、院级管理员、普通教师),学生数据包括姓名、身份证号、学号、学院、专业、班级等信息。也可查询统计师生的健康码和每天的打卡情况。

(2)校级管理员通过工号、密码(密码由系统管理员设置)登录系统,可以查看整个学校的学院信息、专业信息、班级信息、教师信息、学生信息、查询统计师生的健康码和每天的打卡情况。

(3)院级管理员通过工号、密码(密码由系统管理员或校级管理员设置)登录系统,可以查看本学院的专业信息、班级信息、学生信息、查询统计本学院师生的健康码和每天的打卡情况。

(4)学生和教师通过申领学校健康码页面填报信息,系统根据师生填报的信息自动生成每个人唯一的健康码(二维码信息包括姓名、身份(老师或同学)、工号或学号、学院),师生可以查看自己的专属二维码作为进出校园的凭证,绿码可以进出校园,黄码需居家观察 7 天不得进入校园,红码需居家医学观察或集中隔离 14 天不得进入校园。所有教师和学生根据姓名、学号和身份证后 8 位登录系统进行申领健康码和每日打卡。

申领学校健康码填报的信息如下:

个人信息,包括姓名、身份证号、工号或学号、手机号,其中(其中姓名、身份证号、工号或学号为系统默认值,不可修改)。

本人近期(14 天内)是否去过湖北省或重点疫区?

本人近期(14 天内)是否去过国外?

本人近期(14 天内)是否接触过新冠确诊病人或疑似病人?

本人是否被卫生部门确认为新冠肺炎确诊病例或疑似病例?

当前健康状况?无异常、发烧(≥37.3℃)、乏力、干咳、鼻塞、流涕、咽痛、腹泻等。

本人郑重承诺:填报信息真实,愿意承担相应的法律责任。

如果有下列任意一种情况的为黄色健康码

本人近期(14 天内)去过湖北省或重点疫区

本人近期(14 天内)去过国外

当前健康状况有且仅有发烧(≥37.3℃)、乏力、干咳、鼻塞、流涕、咽痛、腹泻中的一种

如果有下列任意一种情况的为红色健康码

本人近期(14 天内)接触过新冠确诊病人或疑似病人

本人被卫生部门确认为新冠肺炎确诊病例或疑似病例

当前健康状况有发烧(≥37.3℃)、乏力、干咳、鼻塞、流涕、咽痛、腹泻等中两种症状及以上

除黄色健康码和红色健康码以外的情形为绿色健康码。

红色健康码的师生需连续打卡 7 天满足绿色健康码条件才可转为黄码;黄色健康码的师生需连续打卡 7 天满足绿色健康码条件才可转为绿码。

2) 系统框架

2.1. 网络架构

2.2. 系统架构

2.3. 模块功能说明

2.3.1. 学生打卡模块

2.3.1.1. 功能描述

负责学生打卡的有关操作。从数据库中读取信息,校验学生是否可以打卡,并且将学生打卡的记录重新存放至数据库中。

2.3.1.2. 业务处理流程及要求
  1. 从数据库中读取这个学生的打卡记录,判断这个学生是否需要打卡
  2. 跳转至打卡界面,让学生输入健康信息
  3. 判断信息是否合法,并且进行上传
  4. 后端进行校验,完成打卡

2.3.1.3. 输入信息

学生的健康信息

2.3.1.4. 输出信息

是否需要打卡,打卡是否成功

2.3.2. 打卡情况统计模块

2.3.2.1. 功能描述

复制管理员查看学生的打卡信息,支持按照学院,专业和班级进行筛选

2.3.2.2. 业务处理流程及要求
  1. 判断管理员是否具有管理权限
  2. 管理员选择学院,返回学院的专业信息
  3. 管理员选择专业,返回专业内的班级信息
  4. 管理员选择班级,返回班级学生的健康信息
2.3.2.3. 输入信息

需要查询的学院,专业,班级

2.3.2.4. 输出信息

查询对象的健康状况

2.3.3. 健康码管理模块

2.3.3.1. 功能描述

在管理员扫描健康码后,显示该生的健康信息,并且可以进行入校核销操作。

2.3.3.2. 业务处理流程及要求
  1. 管理员扫描健康码,显示健康码信息
  2. 若管理员没有健康码访问权限,仅显示部分身份信息
  3. 具有权限的管理员完成健康码的校验与核销工作
2.3.3.3. 输入信息

健康码对应的学号与令牌

2.3.3.4. 输出信息

该健康码的具体信息,学生的身份信息

2.3.4. 数据导入导出模块

2.3.4.1. 功能描述

提供导入用户信息数据库,导出师生健康状况的功能

2.3.4.2. 业务处理流程及要求
  1. 管理员选择要上传的数据库文件
  2. 管理员校验密码
  3. 管理员校验邮件验证码
  4. 完成上传工作
  5. 管理员选择要导出的内容
  6. 后端服务器生成电子表格文件
2.3.4.3. 输入信息

要上传的数据库文件,密码,邮件验证码

要导出的内容

2.3.4.4. 输出信息

成功与失败的提示

导出的内容

3) 系统需求分析

3.1. 学生打卡&健康码申领

3.1.1. 功能描述

学生和教师登录系统后可以进行健康打卡(申报),并申领或查看自己的健康码,如果不是绿码,需要连续 7 天(黄码)或 14 天(红码)的正常打卡才能转绿码,可以对历史打卡记录进行查看

3.1.2. 业务处理流程及要求

学生和教师登录成功进入健康码系统时,可以进行健康申报,填写自己的健康状况信息并勾选真实性承诺后即可申报成功,申报完成后可以进行健康码领取,系统会根据用户填报的信息生成对应的健康码,如果是红码或黄码则需要进行连续 14 天或 7 天的健康打卡才可以恢复,恢复绿码时提示用户欢迎回校的信息,用户可以点击打卡历史查看最近的打卡状况,同一用户一天只能打一次卡

3.1.3. 输入信息

用户身份信息,健康信息,健康码申领请求

3.1.4. 输出信息

打卡状态,健康码状态,打卡历史记录

3.2. 管理员导入导出与查看

3.2.1. 功能描述

该功能提供系统管理员对健康码管理系统的数据进行导入导出,包括以一个 Excel 表格完成对所有管理员、学院、专业、班级、教师学生进行设置并检查数据是否合法,如果不合法则提示用户错误信息,否则对数据库进行数据导入,导入前会进行密码和邮箱二次校验来确保用户操作安全。导出功能支持导出和查看学生和教师的健康码信息以及每天的打卡记录,支持分学院导出和查看

3.2.2. 业务处理流程及要求

导入功能:

系统管理员登录系统,选择导入信息,进入导入信息页面,下载导入 Excel 模板,按照导入模板输入管理员、学院、专业、班级、教师、学生信息并检查是否有重复或引用不合法的情况,保存后点击选择文件,选择编辑好的 Excel 文件并点击导入,系统会提示再次输入密码,密码会交由服务器验证后将结果返回给用户,如果密码正确,进入邮箱验证,系统会给事先绑定的邮箱发送一个验证码,当系统管理员输入正确的验证码后将 Excel 文件上传到服务器进行导入,服务器端通过将文件输入流传入 Import 类进行验证和导入,先验证数据是否符合要求,并且教师和学生的学院班级都存在,工号或学号没有重复等错误则进行导入操作,将数据进行组织并存入内存对象中,将所有的数据表清空后插入数据,中途如果出现错误则会进行提示,成功后会进入登陆界面进行后续操作

查看功能:

支持各级管理员对其管理范围内的教师和学生进行查看信息,点击信息概览,可以查看所有教师和学生的健康码颜色、学院、工号、身份证号及备注信息,并且可以进行筛选,支持按学院、健康码颜色进行筛选,点击打卡情况,可以按日期查看每天的学生和教师的打卡情况,可以对学院、日期、打卡状态进行筛选,信息概览和打卡情况可以导出为 Excel 方便统计,点击学院概览可以对各学院内的专业、班级、教师、学生列表进行查看

3.2.3. 输入信息

导入功能:

输入密码、邮箱验证码、Excel 数据

查看和导出功能:

筛选条件

3.2.4. 输出信息

导入功能:

导入成功信息或错误信息

查看和导出功能:

健康码列表、打卡信息列表、学生和教师列表

3.3. 健康码的使用与核销

3.3.1. 功能描述

扫描屏幕上的二维码或者使用带有 NFC 的设备刷健康卡可以进入健康码的核销 ,当没有健康码权限的人扫码时,为了保护个人信息,只会显示隐藏部分敏感信息之后的健康码和个人数据,健康码本身不包含个人信息,而是生成一个唯一的 token 来映射,可以防止伪造的同时确保信息安全,健康码管理员可以查看健康码以及核销健康绿码

3.3.2. 业务处理流程及要求

带健康码权限的管理员可以登录管理员系统后扫描屏幕上的二维码或者使用带有 NFC 的设备刷健康卡,跳转到对应学生或教师的健康信息界面,该界面通过检测登录的人员权限分情况展示,如果是无权限的用户则显示部分信息确保安全,并点击管理员登录按钮可以提供管理员登录来进行查看更多信息以及健康码核销操作,管理员可以查看学生和教师的详细信息,点击确认入校并确认后即可完成学生入校流程,确认入校后该健康码作废不可再次使用,显示为健康码已被使用

3.3.3. 输入信息

学生或教师带有健康码信息的二维码或 NFC 健康卡

管理员的健康码核销请求

3.3.4. 输出信息

学生或教师的个人健康信息以及健康码使用情况

管理员核销健康码结果

4) 系统详细设计

4.1. login.jsp

描述课程管理页面
所在工程目录srcmainwebapplogin.jsp
加载的文件文件名描述
mdui.min.cssMaterial Design 的 UX 设计
style.css自定义的页面 CSS
md5.min.jsMD5 方法的 JavaScript 实现
mdui.min.jsMaterial Design 的 JavaScript 代码
主要的 JavaScript 函数名称属性描述
md5获取输入串的 MD5 特征值
login校验表单合法性,在合法时提交表单

4.2. check_health_code.jsp

描述校验健康码页面
所在工程目录srcmainwebappcheck_health_code.jsp
加载的文件文件名描述
mdui.min.cssMaterial Design 的 UX 设计
style.css自定义的页面 CSS
mdui.min.jsMaterial Design 的 JavaScript 代码
主要的 JavaScript 函数名称属性描述
check发出警告信息,确定是否要核销健康码

4.3. admin_punchview.jsp

描述课程管理页面
所在工程目录srcmainwebappadmin_punchview.jsp
加载的文件文件名描述
mdui.min.cssMaterial Design 的 UX 设计
style.css自定义的页面 CSS
mdui.min.jsMaterial Design 的 JavaScript 代码
table.js一个表格类
jquery-3.5.1.jsjQuery
主要的 JavaScript 函数名称属性描述
update使用 AJAX 技术动态获得服务器上的打卡记录信息,然后使用 table.js 处理,显示

4.4. Controller.kt

名称Controller
继承或实现HttpServlet, Router
描述MVC 设计模式的 Controller
类别
cn.edu.zjut.health.code.servlet
与其它类的调用关系
属性名称类型描述
contextString上下文
getHashMap<>get 方法的路由表
postHashMap<>post 方法的路由表
sexint性别
主要方法名称属性描述
initvoid初始化路由表,提供转发
方法名称init
描述初始化路由表,提供转发
输入参数
步骤将路由表有关信息放至到该方法中,即可将路由信息存储至路由表中
输出参数void
注释

4.5. SQL.kt

名称SQL
继承或实现
描述一种工具化的读取数据库数据的方式
类别工具类
model
与其它类的调用关系
主要方法名称属性描述
Class.model()Pair<String, List<Pair< Field, String?>>>?扩展方法,返回类的数据类对应的表名和字段
Field.hasFK()Boolean扩展方法,判断是否有 ForeignKey 注解
instance(Class, List<Pair<java.lang.reflect.Field, String?>>, ResultSet)T通过类型和 ResultSet 构造对象
queryList(Class, Pair<String, K>)ArrayList从数据库查询符合条件的所有对象
query(Class, Pair<String, K>?)T?从数据库查询符合条件的单个对象
方法名称Class.model()
描述扩展方法,返回类的数据类对应的表名和字段
输入参数Class
步骤获取输入类的 Model 注解判断其是否为一个合法的数据类,对其成员带有 Field 的注解进行收集整理并返回
输出参数Pair<String, List<Pair< Field, String?>>>?
注释
方法名称Field.hasFK()
描述扩展方法,判断是否有 ForeignKey 注解
输入参数Field
步骤直接获取注解列表并判断
输出参数Boolean
注释
方法名称instance(Class, List<Pair<java.lang.reflect.Field, String?>>, ResultSet)
描述通过类型和 ResultSet 构造对象
输入参数Class, List<Pair<java.lang.reflect.Field, String?>>, ResultSet
步骤判断传入的 Class 类型,属性列表以及数据库查询结果,通过反射的方式来构造对象,读取属性在数据库中的字段名后进行赋值
输出参数T
注释

4.6. Admin.java

名称Admin
继承或实现
描述管理员类
类别模型类
model
与其它类的调用关系
属性名称类型描述
IdString工号
levelint管理员类型
targetInteger管理对象
passwordString密码
emailString邮箱
主要方法名称属性描述
saltMD5String返回加盐的 MD5
getFullTarget()FullTarget返回详细的管理员权限和管理对象
equalsObject判断管理员类是否值相等

5) 数据库设计

5.1. 数据库表概念结构设计

5.1.1. 学院

标识符意义类型
id编号int(11)
name学院名称varchar(32)

5.1.2. 专业

标识符意义类型
id编号int(11)
collage所属学院号int(11)
name专业名称varchar(32)

5.1.3. 班级

标识符意义类型
id编号int(11)
major所属专业int(11)
name专业名称varchar(32)

5.1.4. 管理员

标识符意义类型
id编号varchar(16)
level管理员等级int(11)
target管理对象int(11)
password管理员密码varchar(32)
email电子邮件varchar(64)

5.1.5. 教师

标识符意义类型
id编号varchar(16)
name姓名varchar(64)
person_id身份证号varchar(32)
collage所属学院int(11)

5.1.6. 学生

标识符意义类型
id编号varchar(16)
class所属班级int(11)
name姓名varchar(64)
person_id身份证号varchar(32)

5.1.7. 健康信息

标识符意义类型
uid学号/工号varchar(12)
tel电话号码varchar(16)
if_danger_14十四日内是否去过武汉int(11)
if_abroad_14十四日内是否出国int(11)
if_touch_illness十四日内是否接触过患者int(11)
if_ill十四日内是否的得病int(11)
status健康状况int(11)
color健康码颜色varchar(8)

5.1.8. 打卡记录

标识符意义类型
uid学号/工号varchar(16)
date打卡日期date
time打卡时间time
status健康状况int(11)
color健康码颜色varchar(8)

5.2. 数据库表概念关系模型

6) 系统实现功能

6.1. 学生打卡与健康码申领

6.2. 管理员查看打卡信息

6.3. 系统管理员上传数据

6.4. 健康码的使用与核销

6.5. 使用 NFC 完成一碰登陆

通过将登陆有关的数据存入 NFC 卡中,手机可以实现刷卡登陆功能。样图如下:

♻️ 资源

在这里插入图片描述

大小: 5.93MB
➡️ 资源下载:https://download.csdn.net/download/s1t16/87347700