目录

  1. 系统概述 3
  2. 系统框架 4
    2.1. 网络架构 4
    2.2. 系统架构 5
    2.3. 模块功能说明 5
    2.3.1. 学生打卡模块 5
    2.3.2. 打卡情况统计模块 6
    2.3.3. 健康码管理模块 6
    2.3.4. 数据导入导出模块 7
  3. 系统需求分析 8
    3.1. 学生打卡&健康码申领 8
    3.1.1. 功能描述 8
    3.1.2. 业务处理流程及要求 8
    3.1.3. 输入信息 8
    3.1.4. 输出信息 8
    3.2. 管理员导入导出与查看 8
    3.2.1. 功能描述 8
    3.2.2. 业务处理流程及要求 9
    3.2.3. 输入信息 10
    3.2.4. 输出信息 10
    3.3. 健康码的使用与核销 10
    3.3.1. 功能描述 10
    3.3.2. 业务处理流程及要求 11
    3.3.3. 输入信息 11
    3.3.4. 输出信息 11
  4. 系统详细设计 11
    4.1. login.jsp 11
    4.2. check_health_code.jsp 12
    4.3. admin_punchview.jsp 12
    4.4. Controller.kt 12
    4.5. SQL.kt 13
    4.6. Admin.java 15
  5. 数据库设计 16
    5.1. 数据库表概念结构设计 16
    5.1.1. 学院 16
    5.1.2. 专业 16
    5.1.3. 班级 16
    5.1.4. 管理员 17
    5.1.5. 教师 17
    5.1.6. 学生 17
    5.1.7. 健康信息 17
    5.1.8. 打卡记录 18
    5.2. 数据库表概念关系模型 18
  6. 系统实现功能 19
    6.1. 学生打卡与健康码申领 19
    6.2. 管理员查看打卡信息 21
    6.3. 系统管理员上传数据 24
    6.4. 健康码的使用与核销 25
    6.5. 使用NFC完成一碰登陆 27
  7. 程序清单 28
    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方便统计,点击学院概览可以对各学院内的专业、班级、教师、学生列表进行查看。

<%@ page import="model.Person" %>
<%@ page import="model.Admin" %><%--
  Created by IntelliJ IDEA.
  User: HHR
  Date: 2020/5/18
  Time: 16:14
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0,maximum-scale=1.0, user-scalable=no"/>
    <meta name="theme-color" content="#3f51b5">
    <title>大学</title>
    <link rel="stylesheet" type="text/css" href="../../css/mdui.min.css">
    <link rel="stylesheet" type="text/css" href="../../css/style.css">
    <script src="../../js/md5.min.js"></script>
    <script src="../../js/mdui.min.js"></script>
</head>
<jsp:useBean id="person" class="model.Person" scope="session"/>
<jsp:useBean id="admin" class="model.Admin" scope="session"/>
<body class="mdui-appbar-with-toolbar  mdui-loaded mdui-theme-primary-indigo   mdui-theme-accent-deep-purple">
<header class="mdui-appbar mdui-appbar-fixed" id="header">
    <div class="mdui-toolbar mdui-color-theme">
       <span class="mdui-btn mdui-btn-icon mdui-ripple mdui-ripple-white"
             onclick="window.location.assign('main')">
            <i class="mdui-icon material-icons">home</i>
        </span>
        <a href="" class="mdui-typo-headline mdui-hidden-xs"
           style="font-weight: inherit">浙江工业大学</a>
        <a href="" class="mdui-typo-title " style="font-weight: inherit">学生健康信息管理系统</a>
        <div class="mdui-toolbar-spacer"></div>
        <p class="mdui-typo-title mdui-hidden-xs clickable" onclick="logout()">退出登陆</p>
        <span class="mdui-btn mdui-btn-icon mdui-ripple mdui-ripple-white mdui-hidden-sm-up"
              mdui-tooltip="{content: '退出登陆'}" onclick="logout()">
           <i class="mdui-icon material-icons">exit_to_app</i>
        </span>
    </div>
</header>
<script type="text/javascript">
    function logout() {
        document.getElementById("logout").submit();
    }
</script>
<%
    if (!admin.equals(new Admin())) {
        response.sendRedirect("../admin/router");
        return;
    }
    if (person.equals(new Person())) {
        response.sendRedirect("../login/student");
        return;
    }
    if (request.getParameter("error") != null && request.getParameter("error").equals("punched")) {
%>
<script type="text/javascript">
    window.onload = function () {
        mdui.dialog({
            title: '你已经完成申报了',
            buttons: [
                {
                    text: '确认',
                }
            ],
            history: false,
        });
    }
</script>
<%
} else if (request.getParameter("error") != null && request.getParameter("error").equals("noPunched")) {
%>
<script type="text/javascript">
    window.onload = function () {
        mdui.dialog({
            title: '请先完成健康打卡',
            buttons: [
                {
                    text: '确认',
                }
            ],
            history: false,
        });
    }
</script>
<%
} else if (request.getParameter("error") != null && request.getParameter("error").equals("got")) {
%>
<script type="text/javascript">
    window.onload = function () {
        mdui.dialog({
            title: '你已经拥有健康码了',
            buttons: [
                {
                    text: '确认',
                    onClick: function (inst) {
                        window.location.assign("../healthcode/view")
                    }
                }
            ],
            history: false,
        });
    }
</script>
<%
} else if (request.getParameter("ok") != null && request.getParameter("ok").equals("punch")) {
%>
<script type="text/javascript">
    window.onload = function () {
        mdui.dialog({
            title: '信息填报成功',
            buttons: [
                {
                    text: '确认',
                }
            ],
            history: false,
        });
    }
</script>
<%
} else if (request.getParameter("error") != null && request.getParameter("error").equals("used")) {
%>
<script type="text/javascript">
    window.onload = function () {
        mdui.dialog({
            title: '你的健康码已被使用',
            buttons: [
                {
                    text: '确认',
                }
            ],
            history: false,
        });
    }
</script>
<%
} else {
%>
<script type="text/javascript">
    window.onload = function () {
        mdui.snackbar({
            message: "欢迎你, <jsp:getProperty name="person" property="name"/>"
        });
    }
</script>
<%
    }
%>
<div class="mdui-container">

    <div style="height: 24px"></div>
    <div class="mdui-row">
        <div class="mdui-col-md-6 mdui-col-sm-12 ">
            <div class="mdui-card" onclick="window.location.assign('punch')">
                <div class="mdui-card-media">
                    <img src="../../image/card.jpg"/>
                    <div class="mdui-card-media-covered">
                        <div class="mdui-card-primary">
                            <div class="mdui-card-primary-title">健康打卡</div>
                            <div class="mdui-card-primary-subtitle">Health Punch</div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <div class="mdui-hidden-sm-up" style="height: 16px"></div>

        <div class="mdui-col-md-6 mdui-col-sm-12">
            <div class="mdui-card" onclick="window.location.assign('../healthcode/get')">
                <div class="mdui-card-media">
                    <img src="../../image/card.jpg"/>
                    <div class="mdui-card-media-covered">
                        <div class="mdui-card-primary">
                            <div class="mdui-card-primary-title">健康码申领</div>
                            <div class="mdui-card-primary-subtitle">Get health code</div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div style="height: 16px"></div>
    <div class="mdui-row">
        <div class="mdui-col-md-6 mdui-col-sm-12">
            <div class="mdui-card" onclick="window.location.assign('../healthcode/view')">
                <div class="mdui-card-media">
                    <img src="../../image/card.jpg"/>
                    <div class="mdui-card-media-covered">
                        <div class="mdui-card-primary">
                            <div class="mdui-card-primary-title">健康码查看</div>
                            <div class="mdui-card-primary-subtitle">View health code</div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <div class="mdui-hidden-sm-up" style="height: 16px"></div>

        <div class="mdui-col-md-6 mdui-col-sm-12">
            <div class="mdui-card" onclick="window.location.assign('history')">
                <div class="mdui-card-media">
                    <img src="../../image/card.jpg"/>
                    <div class="mdui-card-media-covered">
                        <div class="mdui-card-primary">
                            <div class="mdui-card-primary-title">打卡历史</div>
                            <div class="mdui-card-primary-subtitle">Punch history</div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
<form id="logout" method="post" action="../logout">
</form>
</body>
<script>const $$ = mdui.JQ;</script>
<script src="../../js/script.js"></script>
</html>

java创建健康登记表 java健康码开发_java


java创建健康登记表 java健康码开发_健康码管理_02


java创建健康登记表 java健康码开发_java创建健康登记表_03


java创建健康登记表 java健康码开发_java创建健康登记表_04


java创建健康登记表 java健康码开发_java_05


java创建健康登记表 java健康码开发_java创建健康登记表_06


java创建健康登记表 java健康码开发_java创建健康登记表_07


java创建健康登记表 java健康码开发_java_08


java创建健康登记表 java健康码开发_java创建健康登记表_09


java创建健康登记表 java健康码开发_java_10


java创建健康登记表 java健康码开发_健康码管理_11


java创建健康登记表 java健康码开发_java_12


java创建健康登记表 java健康码开发_java_13


java创建健康登记表 java健康码开发_健康码管理系统_14


java创建健康登记表 java健康码开发_java_15


java创建健康登记表 java健康码开发_健康码管理系统_16



java创建健康登记表 java健康码开发_健康码管理系统_17