(附源码)springboot校园疫情管理系统 毕业设计021506

校园疫情管理系统

系 院 XXXX

学科门类 XXX

专 业 XXX

班级 XXX

学 号 XXX

姓 名 XXX

指导教师 XXX

教师职称XXX

2022年5月1日

摘 要

信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对校园疫情管理系统等问题,对校园疫情管理系统进行研究分析,然后开发设计出校园疫情管理系统以解决问题。

校园疫情管理系统主要功能模块包括用户管理、全国疫情地区、活动轨迹、旅居史记录、每日健康填报、请假信息,采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采取Mysql作为后台数据的主要存储单元,采用springboot框架、Java技术、Ajax技术进行业务系统的编码及其开发,实现了本系统的全部功能。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。针对校园疫情管理系统的各项需求以及技术问题进行分析,证明了系统的必要性和技术可行性,然后对设计系统需要使用的技术软件以及设计思想做了基本的介绍,最后来实现校园疫情管理系统和部署运行使用它。

关键词:校园疫情管理系统;Eclipse;java;springboot

Abstract

In the information society, there is a need for targeted information access, but the expansion of access is basically the direction of people's efforts. Due to the deviation of the perspective, people can often obtain different types of information, which is also the most difficult subject for technology to overcome. Aiming at the problems of campus epidemic management system, this paper studies and analyzes the campus epidemic management system, and then develops and designs the campus epidemic management system to solve the problems.

The main functional modules of the campus epidemic management system include user management, epidemic areas across the country, activity track, residence history records, daily health filling and leave information. The object-oriented development mode is adopted for software development and hardware erection, which can well meet the actual needs, improve the corresponding software erection and program coding, and adopt MySQL as the main storage unit of background data, Using springboot framework, Java technology and Ajax technology to code and develop the business system, all the functions of the system are realized. This report first analyzes the background, function and significance of the research, which lays a foundation for the rationality of the research work. Based on the analysis of the various requirements and technical problems of the campus epidemic management system, this paper proves the necessity and technical feasibility of the system, then makes a basic introduction to the technical software and design idea needed to design the system, and finally realizes the campus epidemic management system and deployment and operation.

Key words:Campus epidemic management system; Eclipse; java; springboot

目录

1 绪论 1

1.1 研究背景与意义 1

1.2开发现状 1

1.3相关技术介绍 1

2 校园疫情管理系统分析 3

2.1 可行性分析 3

2.1.1 技术可行性分析 3

2.1.2 经济可行性分析 3

2.2 系统需求分析 4

2.2.1 功能性需求分析 4

2.2.2 非功能性分析 5

2.3 系统用例分析 5

3 校园疫情管理系统总体设计 8

3.1 系统模块设计 8

3.2 数据库设计 8

3.3.1 数据库概念结构设计 8

3.2.2 数据库逻辑结构设计 9

4 校园疫情管理系统设计与实现 11

4.1 系统首页页面 11

4.2 登录页面 11

4.3 全国疫情地区页面 15

4.4 活动轨迹页面 15

4.5旅居史记录页面 16

4.6 请假信息页面 16

4.7 用户管理页面 18

4.8 更多管理页面 19

4.9 每日健康填报管理页面 20

5校园疫情管理系统测试 22

5.1 系统测试的目的 22

5.2 系统测试用例 22

5.3 系统测试结果 23

结论 24

参考文献 25

致 谢 27

1 绪论

1.1 研究背景与意义

在学校的日常管理过程中,疫情管理是日常管理中必不可少的组成部分,其管理水平的高低体现了一个学校管理水平的整体状况。一直以来学校使用传统人工的方式管理疫情数据,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,为操作人员带来不少麻烦。

面对信息化时代的来临与学校的发展改革和转型升级,疫情管理越来越正规化、科学化。使用计算机对一些信息管理,具有众多优点,可靠性高、存储量大、保密性好、寿命长、成本低等。因此开发一套校园疫情管理系统是很有必要的事情,它将成为学校单位不可缺少的一部分。在日常使用过程中,计算机系统提供的方便,使得操作人员提高工作效率,并使学校资源得以更有效配置,从而提高学校日常管理水平,也让学校内部更好的为使用者服务和提供的便利。

1.2开发现状

在《SARS事件与中国危机管理体系建设》提到目前国内市场出现了很多利用互联网监测流感疫情的研究者,其中包括利用互联网搜索引擎数据、社交网络数据、医疗网站数据、药物销售数据等进行流感监测的方法。

在地址http://www.who.int/mediacentre/factsheets/fs211/en/提到国外的Ginsberg等人利用Google流感趋势监测流感疫情,其监测时效比CDC(Centers for Disease Control)监测提前了1~2周。

在《国内外流感监测系统的综合调查研究》提到在国内,李秀婷等人应用Google搜索引擎数据研究基于互联网搜索数据的中国流感监测。

在《流感监测的发展历史及思考》提到流感疫情预测中,采用互联网搜索数据结合流感中心公布的每周的流感疫情数据。首先研究搜索引擎数据对流感样病例ILI数据的解释能力,其次研究ILI历史趋势的解释能力,最后验证搜索数据和历史ILI数据的互补性。然后通过搜索数据和历史ILI数据最流感疫情做出预测。而本文中则通过实时的获取流感中心每天的数据疫情和好搜指数,实时地对流感疫情做出预测,在使用好搜指数数据对流感疫情作出预测的基础上,整合与本省历史ILI数据对流感疫情做出预测,并且取得了较好了的预测结果。

在《全国流感监测方案》提到但是这种监测的方式都是根据公众的在互联网上的行为操作记录进行监测。并没有让公众主动的参与到流感的监测中来。应用互联网数据对流感流行强度的预测,并没有充分地,利用已有的流感疫情数据,同时其他流感数据的预测只是研究性的内容,并未公布在普通公众面前,对公众的流感防治措施的采取意义不大。

在地址http://www.cnic.org.cn/chn/down/showdown.php?downid=850提到国外的Google推出的Flu Trends,Google Flu Trends中的数据主要包含用户的搜索信息和美国CDC公布的流感疫情数据,其团队通过研究用户搜索关键词的频率和流感疫情的相关性,然后从搜索关键词中选取一定数量的关键词对历史流感疫情数据进行计算,并与CDC公布的流感疫情数据进行对比,从中选取效果最好的搜索关键词集合用以作出对流感疫情的预测。

在《流感周报》提到Google Flu Trends对2017~2018疫情趋势预测和实际疫情趋势之间的相关性高达0.97,这与美国流感中心公布的流感疫情趋势几乎完全吻合。在2017~2018年间对流感疫情的预测比CDC监测网络提前了1~2周,而且可以判断流感的初始暴发地点。Flu Trends现在对全球多个国家的流感疫情都做出了预测,并且直观地展示在地图上面。然而,Flu Trends只对美国进行了不同地区的流感预测,针对其他国家则以全国范围做预测。本工作中按照省份对流感疫情做出预测,预测范围更加详细。Flu Trends预测提前的时间与流感中心监控网络的延迟时间相同,相当于计算当前的流感疫情,而本工作中则是对未来的流感疫情趋势做出了预测。Flu Trends在中国是不可访问的,并且未对中国的流感疫情做出预测,不能为我国公众服务。

在《Flu Near You》提到此外,国外已经出现公众可以直接参与的流感监测软件和网站,例如美国公共健康协会推出的Flu Near You 和Germ Tracker。在这两个网站上面用户可以上报自己的症状和其他的信息,Flu Near You社区每周已经有数千人上报健康报告。

1.3相关技术介绍

(1)校园疫情管理系统中的web后台管理中的后端不再使用古老的jsp+javabean+servlet[5]技术,而是使用当前主流的springboot框架,它减少java配置代码,简化编程代码,目前springboot框架也是很多企业选择的框架之一。

(2)校园疫情管理系统中的web后台管理中的前端使用的是bootstrap[7]框架,它配合ajax和jquery可以美化页面设计。

(3)流行vue框架结合jQuery技术,在jQuery基础上扩展一些插件,通过自己定义插件更好的实现前端的设计。

(4)校园疫情管理系统中数据库用的mysql5.7,它执行效率高。

2 校园疫情管理系统分析

2.1 可行性分析

2.1.1 技术可行性分析

通过了解对校园疫情管理系统的真实需求后,将校园疫情管理系统所需要的角色划分整理成了下图2-1,图2-2和图2-3。

从开发工具来看,由于校园疫情管理系统是基于JAVA的,因此有很多开发工具都可以进行开发,这些功能强大的开发工具可以给我来设计校园疫情管理系统带来非常大的方便。

从校园疫情管理系统的本身技术来说,对于我来开发一个校园疫情管理系统这个毕设是不费事的。校园疫情管理系统的开发可以简单的分为前台端、后台端开发以及数据库开发。其中的大部分技术难点在我上学时已经使用过了,同时网络上很多技术点可以让我来借鉴。Web后台管理使用JAVA的springboot架构开发,数据库使用mysql,页面上使用javascript脚本,因此为我在开发校园疫情管理系统这个毕设上省去了很多多余代码,这给我的毕设项目编写带来了极大的便利。综上所述,从技术层面来看开发校园疫情管理系统是可行的。

从用户体验来看,市面上很多被广泛使用的系统案例可以让我来参考,因此我可以综合它们的页面交互设计的优点,基于我的毕设项目特点来进行改版,最后达到令用户满意的页面交互体验。综上所述,从技术层面来看开发校园疫情管理系统是可行的。

2.1.2 经济可行性分析

从校园疫情管理系统的开发成本来看,校园疫情管理系统的设计和开发都是我自己完成的,没有其他成本上的开销。

从校园疫情管理系统的维护成本来看,校园疫情管理系统的开发遵循一套完整的代码编写规范,并且校园疫情管理系统的结构设计非常灵活,遵循高内聚低耦合的原则,因此易于维护和迭代开发。

在校园疫情管理系统上线之后,上线前期我会根据真实需求来调查,对使用我开发的校园疫情管理系统来制定一套符合的使用费。系统运行稳定后我会将推广范围到其他的校园当中,其他校园可以使用我的校园疫情管理系统,只需要缴纳一点点的定金,我会给他们引入广告投资和自营业务。

综合以上的分析,校园疫情管理系统所带来的经济效益将会带来极大的收益。并且随着我的推广,来使用我开发的校园疫情管理系统的市场将越来越大,校园疫情管理系统带来的利润也就越来越多。因此,从经济层面来看开发校园疫情管理系统的是可行的。

2.2 系统需求分析

2.2.1 功能性需求分析

校园疫情管理系统从角色上划分为了教师用户、学生用户和管理员三种角色。

管理员用户角色:

(1)登录:管理员的账号是在数据表表中直接设置生成的,不需要进行注册;

(2)用户管理:当点击“用户管理”这一菜单的时候,会出现管理员+教师+学生三个子菜单,可以对这三个模块进行增删改查操作;

(3)更多管理:当点击“更多”这一菜单的时候,会出现全国疫情地区+活动轨迹+旅居史记录+每日健康填报+请假信息这五个子菜单,能够对请假信息进行增删改查操作,对教师/学生提交的旅居史记录+每日健康填报+活动轨迹进行管控,以及实现对教师/学生提交的全国疫情地区进行审核管理;

学生/教师用户角色:

  1. 登录模块:当教师想要进入本校园疫情管理系统中对信息进行全国疫情地区+活动轨迹+旅居史记录+每日健康填报+请假信息等操作的时候,就必须要登录到系统当中。

(2)活动轨迹:学生在后台的“活动轨迹”界面中可以提交活动信息,教师在“活动轨迹”界面可以进行查看;

(3)旅居史记录:学生在后台的“旅居史记录”界面中可以提交旅居史记录信息,教师在“旅居史记录”界面可以进行查看;

(4)每日健康填报:学生在后台的“每日健康填报”界面中可以提交出行每日健康信息,教师在“每日健康填报”界面可以进行查看;

(5)全国疫情地区:学生在后台的“全国疫情地区”界面中可以提交疫情地区信息,教师在“全国疫情地区”界面可以进行查看;

(6)请假信息:学生在后台的“请假信息”界面中可以提交请假信息,教师在“请假信息”界面可以进行查看、审核;

2.2.2 非功能性分析

校园疫情管理系统的非功能性需求比如校园疫情管理系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下2-1表格中:

表2-1校园疫情管理系统非功能需求表

安全性

主要指校园疫情管理系统数据库的安装,数据库的使用和密码的设定必须合乎规范。

可靠性

可靠性是指校园疫情管理系统能够安装用户的指示进行操作,经过测试,可靠性90%以上。

性能

性能是影响校园疫情管理系统占据市场的必要条件,所以性能最好要佳才好。

可扩展性

比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。

易用性

用户只要跟着校园疫情管理系统的页面展示内容进行操作,就可以了。

可维护性

校园疫情管理系统开发的可维护性是非常重要的,经过测试,可维护性没有问题

2.3 系统用例分析

教师角色用例如图2.1所示。

图2.2 校园疫情管理系统教师角色用例图

校园疫情管理系统的管理员是维护整个校园疫情管理系统中一系列数据流程,管理员角色用例如图2.2所示。

图2.2 校园疫情管理系统中管理员角色用例图

3 校园疫情管理系统总体设计

3.1 系统模块设计

根据第二章中校园疫情管理系统的功能分析可知,校园疫情管理系统中整体功能模块图如图3.1所示,

图3.1 校园疫情管理系统功能模块图

3.2 数据库设计

3.3.1 数据库概念结构设计

下面是整个校园疫情管理系统中主要的数据库表总E-R实体关系图。

图3.2 校园疫情管理系统总E-R关系图

3.2.2 数据库逻辑结构设计

通过上一小节中校园疫情管理系统中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。

teacher_user表:

名称

类型

长度

不是null

主键

注释

teacher_user_id

int

11

教师用户ID

job_number

varchar

64

工号

teacher_name

varchar

64

教师姓名

gender

varchar

64

性别

post

varchar

64

职务

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

user_id

int

11

用户ID

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

student_user表:

名称

类型

长度

不是null

主键

注释

student_user_id

int

11

学生用户ID

student_number

varchar

64

学号

full_name

varchar

64

姓名

gender

varchar

64

性别

class_name

varchar

64

班级名称

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

user_id

int

11

用户ID

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

sojourn_history_record表:

名称

类型

长度

不是null

主键

注释

sojourn_history_record_id

int

11

旅居史记录ID

teacher

int

11

教师

teacher_name

varchar

64

教师姓名

job_number

varchar

64

工号

student

int

11

学生

student_number

varchar

64

学号

full_name

varchar

64

姓名

reporting_date

date

0

上报日期

sojourn_record

text

0

旅居记录

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

epidemic_areas_nationwide表

名称

类型

长度

不是null

主键

注释

epidemic_areas_nationwide_id

int

11

全国疫情地区ID

region_name

varchar

64

地区名称

risk_level

varchar

64

风险等级

release_time

datetime

0

发布时间

publisher

varchar

64

发布人

control_measures

text

0

管制措施

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

daily_health_report表:

名称

类型

长度

不是null

主键

注释

daily_health_report_id

int

11

每日健康填报ID

teacher

int

11

教师

teacher_name

varchar

64

教师姓名

job_number

varchar

64

工号

student

int

11

学生

student_number

varchar

64

学号

full_name

varchar

64

姓名

reporting_date

date

0

上报日期

health_information_

text

0

健康信息

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

activity_track表:

名称

类型

长度

不是null

主键

注释

activity_track_id

int

11

活动轨迹ID

teacher

int

11

教师

teacher_name

varchar

64

教师姓名

job_number

varchar

64

工号

student

int

11

学生

student_number

varchar

64

学号

full_name

varchar

64

姓名

date

date

0

日期

activity_track

text

0

活动轨迹

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

4 校园疫情管理系统设计与实现

校园疫情管理系统的详细设计与实现主要是根据前面的校园疫情管理系统的需求分析和校园疫情管理系统的总体设计来设计页面并实现业务逻辑。主要从校园疫情管理系统界面实现、业务逻辑实现这两部分进行介绍。

4.1 系统首页页面

当进入校园疫情管理系统的时候,首先映入眼帘的是系统的导航栏,下面是轮播图以及系统内容,其主界面展示如下图4.1所示。

图4.1 教师首页界面图

4.2 登录页面

校园疫情管理系统中的前台上注册后的会员是可以通过自己的账户名和密码进行登录的,当管理员输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到校园疫情管理系统的首页中;否则将会提示相应错误信息,用户登录界面如下图4.3所示。

图4.3 登录界面图

登录关键代码如下所示。

/**

* 登录

* @param data

* @param httpServletRequest

* @return

*/

@PostMapping("login")

public Map login(@RequestBody Map data, HttpServletRequest httpServletRequest) {

log.info("[执行登录接口]");

String username = data.get("username");

String email = data.get("email");

String phone = data.get("phone");

String password = data.get("password");

List resultList = null;

QueryWrapper wrapper = new QueryWrapper();

Map map = new HashMap<>();

if(username != null && "".equals(username) == false){

map.put("username", username);

resultList = service.selectBaseList(service.select(map, new HashMap<>()));

}

else if(email != null && "".equals(email) == false){

map.put("email", email);

resultList = service.selectBaseList(service.select(map, new HashMap<>()));

}

else if(phone != null && "".equals(phone) == false){

map.put("phone", phone);

resultList = service.selectBaseList(service.select(map, new HashMap<>()));

}else{

return error(30000, "账号或密码不能为空");

}

if (resultList == null || password == null) {

return error(30000, "账号或密码不能为空");

}

//判断是否有这个用户

if (resultList.size()<=0){

return error(30000,"用户不存在");

}

User byUsername = (User) resultList.get(0);

Map groupMap = new HashMap<>();

groupMap.put("name",byUsername.getUserGroup());

List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));

if (groupList.size()<1){

return error(30000,"用户组不存在");

}

UserGroup userGroup = (UserGroup) groupList.get(0);

//查询用户审核状态

if (!StringUtils.isEmpty(userGroup.getSourceTable())){

String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());

if (res==null){

return error(30000,"用户不存在");

}

if (!res.equals("已通过")){

return error(30000,"该用户审核未通过");

}

}

//查询用户状态

if (byUsername.getState()!=1){

return error(30000,"用户非可用状态,不能登录");

}

String md5password = service.encryption(password);

if (byUsername.getPassword().equals(md5password)) {

// 存储Token到数据库

AccessToken accessToken = new AccessToken();

accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

accessToken.setUser_id(byUsername.getUserId());

tokenService.save(accessToken);

// 返回用户信息

JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

user.put("token", accessToken.getToken());

JSONObject ret = new JSONObject();

ret.put("obj",user);

return success(ret);

} else {

return error(30000, "账号或密码不正确");

}

}

public String select(Map query,Map config){

StringBuffer sql = new StringBuffer("select ");

sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");

sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));

if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){

sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");

}

if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){

sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");

}

if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){

int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;

int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;

sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);

}

log.info("[{}] - 查询操作,sql: {}",table,sql);

return sql.toString();

}

public List selectBaseList(String select) {

List> mapList = baseMapper.selectBaseList(select);

List list = new ArrayList<>();

for (Map map:mapList) {

list.add(JSON.parseObject(JSON.toJSONString(map),eClass));

}

return list;

}

4.3 全国疫情地区页面

学生用户进入后台后点击“全国疫情地区”,能够看到管理员发布的全国疫情地区信息,对全国疫情地区进行管控。界面如下图4-3所示。

图4.3 全国疫情地区界面图

4.4活动轨迹页面

学生用户进入后台后点击“活动轨迹”,能够看到学生可以查询活动轨迹信息。界面如下图4-4所示。

图4.4 活动轨迹界面图

4.5旅居史记录页面

学生用户进入后台后点击“旅居史记录”,能够看到管理员/教师查询学生旅居史记录信息。旅居史记录界面如下图4-5所示。

图4.5旅居史记录界面图

4.6 请假信息页面

教师点击“请假信息”,选择“添加”按钮后就会进入到请假信息添加这个界面,系统会自动填写号学生、班级名称、学号、教师、姓名,然后输入请假开始日期、请假结束日期、请假天数、请假原因,点击“提交”就添加成功了;其界面展示如下图4.6所示。

图4.6添加请假申请界面图

教师点击“请假申请”这个按钮后就会跳转到本班学生提交的请假申请的信息,教师任选一条没有审核过的请假申请点击“编辑”这一按钮,可以选择审核状态下拉菜单中的未审核、已通过、未通过进行提交审核,其界面展示如下图4.7所示。

图4.7请假审核界面图

请假申请管理关键代码如下所示。

@PostMapping("/add")

@Transactional

public Map add(HttpServletRequest request) throws IOException {

service.insert(service.readBody(request.getReader()));

return success(1);

}

@Transactional

public Map addMap(Map map){

service.insert(map);

return success(1);

}

public Map readBody(BufferedReader reader){

BufferedReader br = null;

StringBuilder sb = new StringBuilder("");

try{

br = reader;

String str;

while ((str = br.readLine()) != null){

sb.append(str);

}

br.close();

String json = sb.toString();

return JSONObject.parseObject(json, Map.class);

}catch (IOException e){

e.printStackTrace();

}finally{

if (null != br){

try{

br.close();

}catch (IOException e){

e.printStackTrace();

}

}

}

return null;

}

public void insert(Map body){

StringBuffer sql = new StringBuffer("INSERT INTO ");

sql.append("`").append(table).append("`").append(" (");

for (Map.Entry entry:body.entrySet()){

sql.append("`"+humpToLine(entry.getKey())+"`").append(",");

}

sql.deleteCharAt(sql.length()-1);

sql.append(") VALUES (");

for (Map.Entry entry:body.entrySet()){

Object value = entry.getValue();

if (value instanceof String){

sql.append("'").append(entry.getValue()).append("'").append(",");

}else {

sql.append(entry.getValue()).append(",");

}

}

sql.deleteCharAt(sql.length() - 1);

sql.append(")");

log.info("[{}] - 插入操作:{}",table,sql);

Query query = runCountSql(sql.toString());

query.executeUpdate();

}

4.7 用户管理页面

此功能为管理员的功能,管理员点击“用户管理”菜单后,会展示出管理员+教师用户+学生用户三个子菜单,任何可以对其进行增删改查操作;其界面展示如下图4.8所示。

图4.8用户管理界面图

用户管理关键代码如下所示。

public String encryption(String plainText) {

String re_md5 = new String();

try {

MessageDigest md = MessageDigest.getInstance("MD5");

md.update(plainText.getBytes());

byte b[] = md.digest();

int i;

StringBuffer buf = new StringBuffer("");

for (int offset = 0; offset < b.length; offset++) {

i = b[offset];

if (i < 0)

i += 256;

if (i < 16)

buf.append("0");

buf.append(Integer.toHexString(i));

}

re_md5 = buf.toString();

} catch (Exception e) {

e.printStackTrace();

}

return re_md5;

}

4.8更多管理页面

此功能为管理员的功能,管理员点击“更多管理”菜单后,会展示出全国疫情地区+活动轨迹+旅居史记录+每日健康填报+请假信息五个子菜单,可以对其进行增删改查操作,这里以全国疫情地区管理为例;其界面展示如下图4.9所示。

图4.9 更多管理界面图

更多管理关键代码为:

@PostMapping("/add")

@Transactional

public Map add(HttpServletRequest request) throws IOException {

service.insert(service.readBody(request.getReader()));

return success(1);

}

@Transactional

public Map addMap(Map map){

service.insert(map);

return success(1);

}

public Map readBody(BufferedReader reader){

BufferedReader br = null;

StringBuilder sb = new StringBuilder("");

try{

br = reader;

String str;

while ((str = br.readLine()) != null){

sb.append(str);

}

br.close();

String json = sb.toString();

return JSONObject.parseObject(json, Map.class);

}catch (IOException e){

e.printStackTrace();

}finally{

if (null != br){

try{

br.close();

}catch (IOException e){

e.printStackTrace();

}

}

}

return null;

}

public void insert(Map body){

StringBuffer sql = new StringBuffer("INSERT INTO ");

sql.append("`").append(table).append("`").append(" (");

for (Map.Entry entry:body.entrySet()){

sql.append("`"+humpToLine(entry.getKey())+"`").append(",");

}

sql.deleteCharAt(sql.length()-1);

sql.append(") VALUES (");

for (Map.Entry entry:body.entrySet()){

Object value = entry.getValue();

if (value instanceof String){

sql.append("'").append(entry.getValue()).append("'").append(",");

}else {

sql.append(entry.getValue()).append(",");

}

}

sql.deleteCharAt(sql.length() - 1);

sql.append(")");

log.info("[{}] - 插入操作:{}",table,sql);

Query query = runCountSql(sql.toString());

query.executeUpdate();

}

4.9 每日健康填报管理页面

此功能为管理员的功能,管理员点击“更多管理”菜单后能够对每日健康填报进行管控,包括了添加+编辑+删除+查询,同时可以对教师/学生对每日健康填报提交的信息进行管控;其界面展示如下图4.10所示。

图4.10 每日健康填报界面图

每日健康填报管理关键代码如下所示。

@RequestMapping(value = "/del")

@Transactional

public Map del(HttpServletRequest request) {

service.delete(service.readQuery(request), service.readConfig(request));

return success(1);

}

@Transactional

public void delete(Map query,Map config){

StringBuffer sql = new StringBuffer("DELETE FROM ").append("`").append(table).append("`").append(" ");

sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.GROUP_BY))));

log.info("[{}] - 删除操作:{}",table,sql);

Query query1 = runCountSql(sql.toString());

query1.executeUpdate();

}

5校园疫情管理系统测试

5.1系统测试的目的

系统开发到了最后一个阶段那就是系统测试,系统测试对软件的开发其实是非常有必要的。因为没什么系统一经开发出来就可能会尽善尽美,再厉害的系统开发工程师也会在系统开发的时候出现纰漏,系统测试能够较好的改正一些bug,为后期系统的维护性提供很好的支持。通过系统测试,开发人员也可以建立自己对系统的信心,为后期的系统版本的跟新提供支持。

5.2 系统测试用例

系统测试包括:用户登录功能测试、请假信息展示功能测试、请假信息添加、请假信息搜索、密码修改功能测试,如表5-1、5-2、5-3、5-4、5-5所示:

用户登录功能测试:

表5-1 用户登录功能测试表

用例名称

用户登录系统

目的

测试用户通过正确的用户名和密码可否登录功能

前提

未登录的情况下

测试流程

1) 进入登录页面

2) 输入正确的用户名和密码

预期结果

用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入

实际结果

实际结果与预期结果一致

请假信息查看功能测试:

表5-2 请假信息查看功能测试表

用例名称

请假信息查看

目的

测试请假信息查看功能

前提

用户登录

测试流程

点击请假信息列表

预期结果

可以查看到所有请假信息信息

实际结果

实际结果与预期结果一致

管理员添加请假信息界面测试:

表5-3 管理员添加请假信息界面测试表

用例名称

请假信息发布测试用例

目的

测试请假信息发布功能

前提

用户正常登录情况下

测试流程

1)点击请假信息信息管理就,然后点击添加后并填写信息。

2)点击进行提交。

预期结果

提交以后,页面首页会显示新的请假信息信息

实际结果

实际结果与预期结果一致

请假信息搜索功能测试:

表5-4请假信息搜索功能测试表

用例名称

请假信息搜索测试

目的

测试请假信息搜索功能

前提

测试流程

1)在搜索框填入搜索关键字。

2)点击搜索按钮。

预期结果

页面显示包含有搜索关键字的请假信息

实际结果

实际结果与预期结果一致

密码修改功能测试:

表5-5 密码修改功能测试表

用例名称

密码修改测试用例

目的

测试管理员密码修改功能

前提

管理员用户正常登录情况下

测试流程

1)管理员密码修改并完成填写。

2)点击进行提交。

预期结果

使用新的密码可以登录

实际结果

实际结果与预期结果一致

5.3 系统测试结果

通过编写校园疫情管理系统的测试用例,已经检测完毕用户登录模块、请假信息查看模块、请假信息添加模块、请假信息搜索模块、密码修改功能测试,通过这5大模块为校园疫情管理系统的后期推广运营提供了强力的技术支撑。

结论

至此,校园疫情管理系统已经结束,在开发前做了许多的准备,在本系统的设计和开发过程中阅览和学习了许多文献资料,从中我也收获了很多宝贵的方法和设计思路,对系统的开发也起到了很重要的作用,系统的开发技术选用的都是自己比较熟悉的,比如springboot、JAVA技术、MYSQL,这些技术都是在以前的学习中学到了,其中许多的设计思路和方法都是在以前不断地学习中摸索出来的经验,其实对于我们来说工作量还是比较大的,但是正是由于之前的积累与准备,才能顺利的完成这个项目,由此看来,积累经验跟做好准备是十分重要的事情。

当然在该系统的设计与实现的过程中也离不开老师以及同学们的帮助,正是因为他们的指导与帮助,我才能够成功的在预期内完成了这个系统。同时在这个过程当中我也收获了很多东西,此系统也有需要改进的地方,但是由于专业知识的浅薄,并不能做到十分完美,希望以后有机会可以让其真正的投入到使用之中。

参考文献

[1]李节.基于区块链技术的疫情管理系统[J].软件导刊,2022,21(04):57-61.

[2]李斌, 成果转化 苍穹疫情信息共享及人员管理系统推出. 梁胜 主编,北京经济技术开发区年鉴,中国商务出版社,2021,270,年鉴.DOI:10.40160/y.cnki.yjjkn.2022.000591.

[3]王诗悦,戴劲. 疫情防控常态化背景下线上比赛管理系统对羽毛球赛事的应用研究[C]//.第十二届全国体育科学大会论文摘要汇编——专题报告(体育管理分会).,2022:320.DOI:10.26914/c.cnkihy.2022.003086.

[4]李志涵,伯磊,王雪蓓,路原野,马一然.基于物联网的校园疫情监控系统设计与实现[J].物联网技术,2022,12(02):76-79.DOI:10.16667/j.issn.2095-1302.2022.02.020.

[5]姚东永.物联网技术在校园防疫平台建设中的应用[J].电子世界,2022(01):195-197.DOI:10.19353/j.cnki.dzsj.2022.01.091.

[6]米小燕.校园疫情防控下大学生体育锻炼对情绪和睡眠质量的影响[J].福建体育科技,2021,40(06):73-76.

[7]曹春华,彭春起,黄瑞鹏,武家宇.后疫情时代基于人工智能的校园检测管理系统设计[J].无线互联科技,2021,18(18):68-70.

[8]李志鸿,李金忠,肖延龙,钟鸣山,周先亮,邹聪波.校园疫情防控平台的设计与实现[J].井冈山大学学报(自然科学版),2021,42(05):70-77.

[9]王锦徽,宋久存.后疫情时代校园冰雪运动开展策略的初步探究[J].当代体育科技,2021,11(21):201-203.DOI:10.16655/j.cnki.2095-2813.2011-1579-5902.

[10]郑菲,陈晓凤,齐世玲,刘文军.校园疫情防控可视化平台设计与实现[J].电脑知识与技术,2021,17(20):69-71+77.DOI:10.14004/j.cnki.ckt.2021.1973.

[11]龙淑珍,罗凌,李超乾.突出五大关键措施,开展常态化校园疫情防控[J].中国校医,2021,35(06):446-448.

[12]赵一鸣,李祺,苏莎莎,韩耀廷,李图雅,郭烨红,杨浒昀,张茹.新冠肺炎疫情下项目管理系统的设计与实践[J].内蒙古科技与经济,2021(10):89-91.

[13]Fuyuan Cheng. Talent Recruitment Management System for Small and Micro Enterprises Based on Springboot Framework[J]. Advances in Educational Technology and Psychology,2021,5(2).

[14]李美坤,吴海琪.后疫情时代下医院招聘考核管理系统的分析与设计[J].人力资源,2020(20):130-132.

[15]Jian Chen,Chen Jian,Pan Hailan. Design of Man Hour Management Information System on SpringBoot Framework[J]. Journal of Physics: Conference Series,2020,1646(1).

[16]自治区应急管理厅. 自治区应急管理系统强化疫情防控服务保障企业安全复工复产工作措施[N]. 新疆日报(汉),2020-03-10(006).

[17]肖永平.疫情监测与上报管理系统的设计与实现[J].中国医疗设备,2019,34(02):103-106+115.

[18]王海旺,丁建云,李令蕊,孙东晖,崔建臣,靳昌霖,李国利.植物疫情管理系统在天津市重大植物疫情阻截带中的应用[J].天津农林科技,2018(01):30-31.DOI:10.16013/j.cnki.1002-0659.2018.0013.

[19]丁建云,王海旺,阚青松,赵朔,孙东晖,李令蕊.植物疫情管理系统的研发与应用[J].植物检疫,2016,30(06):30-34.

致 谢

时间过的很快,不知不觉,在中北大学的学习生活即将结束。毕业之际,我真诚地向帮助过我的老师、家人、同学、朋友们表达感谢。首先要感谢的是我的母校。感谢母校给了我美好的生活和优越的学习环境,使我能学到了很多知识,也不断的变得优秀;感谢家人在这四年期间一直给与我的爱和无条件的支持,让我没有后顾之忧地完成学业;感谢软件学院的任课老师们给我鼓励和认可,让我有信心去做好每一件事情;感谢同学们的帮助,让我的大学生活更有意义。在此次毕业设计的实现过程中,我得到了老师们的耐心指导让我顺利完成了该设计。从最初的选题和开题开始,老师就给予我很多帮助,他们认真负责的态度、丰富的教学经验让我学到了很多。

同时也要感谢我敬爱的班主任和实训课程的老师,他们在各个方面都教给了我丰富的经验,在面对各种困难时如何处理。因为今年的特殊性,老师们不仅在学习中给我以精心的指导,同时还在其它方面给予我观关怀,指导老师不辞辛苦的为大家录制视频和一遍遍讲解让我心怀感激之情。在此,我真诚的感恩、感谢我的指导教师们。

还要感谢实习期间不厌其烦教导我鼓励我的技术师傅,他指导了我各个方面的技巧,尤其是编程方面,迄今我的很多技巧和编写规范都有赖于他的指导、纠正。

最后还要特别感谢身边的各位同学们,一直支持鼓励我,无论何时何种境况。我很荣幸获得同学们的帮助,也很开心能够和大家共度大学四年的时光。

最后的最后,再次发自肺腑的感谢所有帮助过我的人。

你可能感兴趣的:(php,java,spring,boot,python,html)