基于Springboot+Vue实现高校疫情防控系统
项目编号:BS-GX-040
2020年初发生的这场全球性新冠病毒,如今已经伴随我们2年有余了。回想两年来经过的这些事儿,历历在目。为了对抗这个让人谈之色变的病毒,全国上下一心,众志成城的共同抗疫,渡过了最危险的时候。但是病毒并没有消失,危险也时刻存在,我们并不能放松防疫的心弦,否则有可能功亏一溃,前功尽弃。
而对于这种新冠病毒,防大于治。所以最关键的就是及时发现疫情信息,在初期尽快的做好控制,以防止它的快速蔓延。因为现在这个病毒的变种传染性越来越强,国内采用动态清零的方式很快、很好的控制住了国内疫情的发展。并且目前正在帮助香港进行疫情防控。而如何有效的高效快速的管理疫情患者信息,是我们打赢这场战役的关键。信息化技术的应用,可以帮助我们构建疫情信息管理系统,帮助我们提升工作效率,管理效能,提升疫情信息的共享能力。
一,项目简介
最近根据客户需要新研发了一个项目,本项目基于Springboot+Vue开发实现了一个前后台均有的校园疫情防控管理系统,整个系统设计界面美观,功能全面,适合做毕业设计使用。
前端主要的功能:
用户注册登陆
疫情新闻查看
校务公开信息查看
系统通知通告查看
校园动态查看
媒体校园查看
个人中心管理:
老师:个人信息管理、健康信息上报、离校申请、我的请假查看
学生:个人信息管理、健康信息上报、请假审批
后台管理功能:
校内新闻管理
疫情新闻管理
首页公告管理
校务公开管理
用户管理:老师管理、学生管理
健康管理:老师健康管理、学生健康管理、确诊信息管理
请假管理
二,环境介绍
语言环境:Java: jdk1.8
数据库:Mysql: mysql5.7
应用服务器:Tomcat: tomcat8.5.31
开发工具:IDEA或eclipse
后台开发技术:Springboot+Mybatis-plus
前台开发技术:Vue+ElementUI+Bootstrap+Jquery+Ajax
三,系统展示
前端页面展示

新闻查看

详情查看

学生登陆系统:个人中心---个人信息查看

健康信息上报

请假管理之我的请假

请假管理之离校申请

老师登陆

请假审批

系统后台管理

统计信息

系统管理之新闻管理

系统管理之疫情新闻

系统管理之公告管理
系统管理之校务公开管理

用户管理之老师管理

用户管理之学生管理

健康管理之老师健康管理

健康管理之学生健康管理

健康管理之确诊信息管理

请假管理
四,核心代码展示
package com.zhiku.yiqing.web.admin;import com.baomidou.mybatisplus.core.metadata.IPage;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import com.zhiku.yiqing.common.R;import com.zhiku.yiqing.pojo.Dynamic;import com.zhiku.yiqing.service.DynamicService;import com.zhiku.yiqing.vo.NewsQueryParamsVo;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.*;import java.util.Arrays;public class DynamicController {
private DynamicService dynamicService;
public R batchDelDynamicById({
System.out.println(Arrays.toString(ids));
dynamicService.batchDelDynamicById(ids); Integer[] ids)return R.success();
} /**
* 根据id删除校务公开
* @param id
* @return
*/
public R delDynamicById( {
dynamicService.delDynamicById(id); Integer id)return R.success();
}
public R updateDynamicById({
dynamicService.updateDynamicById(dynamic); Dynamic dynamic)return R.success();
} /**
* 添加校务公开
* @param dynamic
* @return
*/
public R addDynamic({
dynamicService.addDynamic(dynamic); Dynamic dynamic)return R.success();
} /**
* 查询某个校务公开的详情
* @param id
* @return
*/
public R queryDynamicById( { Integer id)Dynamic dynamic = dynamicService.queryDynamicById(id); return R.success(dynamic);
} /**
* 查询所有的校务公开带分页以及条件查询
* @param pageNo
* @param pageSize
* @param queryParamsVo
* @return
*/
public R queryAllDynamic( {
System.out.println( Integer pageNo, Integer pageSize,
NewsQueryParamsVo queryParamsVo)"queryParamsVo: " + queryParamsVo);
Page<Dynamic> page = new Page<>(pageNo, pageSize);
IPage<Dynamic> Dynamic = dynamicService.dynamicService(page,queryParamsVo); return R.success(Dynamic);
}
}
package com.zhiku.yiqing.web.admin;import com.alibaba.excel.EasyExcel;import com.alibaba.excel.support.ExcelTypeEnum;import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;import com.zhiku.yiqing.common.R;import com.zhiku.yiqing.listener.EasyExcelListener;import com.zhiku.yiqing.listener.ImportTradingListener;import com.zhiku.yiqing.pojo.Student;import com.zhiku.yiqing.pojo.Teacher;import com.zhiku.yiqing.service.StudentService;import com.zhiku.yiqing.service.TeacherService;import com.zhiku.yiqing.util.ContentStyle;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.*;import org.springframework.web.multipart.MultipartFile;import javax.servlet.http.HttpServletResponse;import java.io.InputStream;import java.net.URLEncoder;import java.nio.charset.StandardCharsets;import java.util.List;/**
* EasyExcel导入导出测试Controller
*/public class EasyExcelController {
private StudentService studentService;
private TeacherService teacherService; /*导出学生信息列表*/
public void exportStudentExcel( Integer[] ids, HttpServletResponse response)throws Exception{ //文件名含中文需要转码
String fileName =
URLEncoder.encode( "学生列表.xlsx", StandardCharsets.UTF_8.toString()); //将需要导出的数据从数据库中查出
List<Student> list = studentService.getAllStudents(ids); //设置响应格式
response.setContentType("application/vnd.ms-excel;chartset=utf-8"); //文件扩展名为excel格式
response.setHeader("Content-Disposition", "attachment;filename=" + fileName); //触发文件名为filename的“另存为”对话框
// 内容样式
HorizontalCellStyleStrategy horizontalCellStyleStrategy = ContentStyle.getContentStyle(); //将OutputStream对象附着到EasyExcel的ExcelWriter实例
EasyExcel.write(response.getOutputStream(), Student.class) //(输出流, 文件头)
.excelType(ExcelTypeEnum.XLSX)
.autoCloseStream(true)
.sheet("学生名单") //第一个sheet的名
.doWrite(list); //写入数据
}
public R readStudentExcel({ MultipartFile file)try {
InputStream inputStream=file.getInputStream();
System.out.println(file.getOriginalFilename());
EasyExcel.read(inputStream,Student.class, new EasyExcelListener<Student>(studentService)) // 设置sheet,默认读取第一个
.sheet()
.doReadSync(); return R.success();
}catch (Exception e){
e.printStackTrace(); return R.failure();
}
}
public R readTeacherExcel({ MultipartFile file)try {
InputStream inputStream=file.getInputStream();
System.out.println(file.getOriginalFilename());
EasyExcel.read(inputStream,Teacher.class, new EasyExcelListener<Teacher>(teacherService)) // 设置sheet,默认读取第一个
.sheet()
.doReadSync(); return R.success();
}catch (Exception e){
e.printStackTrace(); return R.failure();
}
} /*导出老师信息列表*/
public void exportTeacherExcel( Integer[] ids, HttpServletResponse response)throws Exception{ //文件名含中文需要转码
String fileName =
URLEncoder.encode( "老师列表.xlsx", StandardCharsets.UTF_8.toString()); //将需要导出的数据从数据库中查出
List<Teacher> list = teacherService.getAllTeachers(ids); //设置响应格式
response.setContentType("application/vnd.ms-excel;chartset=utf-8"); //文件扩展名为excel格式
response.setHeader("Content-Disposition", "attachment;filename=" + fileName); //触发文件名为filename的“另存为”对话框
// 内容样式
HorizontalCellStyleStrategy horizontalCellStyleStrategy = ContentStyle.getContentStyle(); //将OutputStream对象附着到EasyExcel的ExcelWriter实例
EasyExcel.write(response.getOutputStream(), Teacher.class) //(输出流, 文件头)
.excelType(ExcelTypeEnum.XLSX)
.autoCloseStream(true)
.sheet("老师名单") //第一个sheet的名
.doWrite(list); //写入数据
}
}
package com.zhiku.yiqing.web.admin;import com.baomidou.mybatisplus.core.metadata.IPage;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import com.zhiku.yiqing.common.R;import com.zhiku.yiqing.pojo.Health;import com.zhiku.yiqing.pojo.Teacher;import com.zhiku.yiqing.service.HealthService;import com.zhiku.yiqing.service.TeacherService;import com.zhiku.yiqing.vo.HealthQueryParamsVo;import com.zhiku.yiqing.vo.UserQueryParamsVo;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.*;import java.util.Arrays;public class HealthController {
private HealthService healthService;
public R batchDelTeacherHealthById({
System.out.println(Arrays.toString(ids));
healthService.batchDelTeacherHealthById(ids); Integer[] ids)return R.success();
} /**
* 根据id删除teacher
* @param id
* @return
*/
public R delTeacherHealthById( {
healthService.delTeacherHealthById(id); Integer id)return R.success();
} /**
* 上报省防疫办
* @param id
* @return
*/
public R reportedTeacherHealthById({
System.out.println(id);
healthService.reportedTeacherHealthById(id); Integer id)return R.success();
} /**
* 查询所有的健康列表带分页以及条件查询
* @param pageNo
* @param pageSize
* @param queryParamsVo
* @return
*/
public R queryAllTeacher( {
Page<Health> page = Integer pageNo, Integer pageSize, Integer remark,
HealthQueryParamsVo queryParamsVo)new Page<>(pageNo, pageSize);
IPage<Health> healthIPage = healthService.queryAllTeacherHealth(page,queryParamsVo,remark); return R.success(healthIPage);
}
}
package com.zhiku.yiqing.web.admin;import com.baomidou.mybatisplus.core.metadata.IPage;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import com.zhiku.yiqing.common.R;import com.zhiku.yiqing.pojo.Student;import com.zhiku.yiqing.service.StudentService;import com.zhiku.yiqing.vo.UserQueryParamsVo;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.*;import java.util.Arrays;public class StudentController {
private StudentService studentService;
public R batchDelStudentById({
System.out.println(Arrays.toString(ids));
studentService.batchDelStudentById(ids); Integer[] ids)return R.success();
} /**
* 根据id删除teacher
* @param id
* @return
*/
public R delStudentById( {
studentService.delStudentById(id); Integer id)return R.success();
} /**
* 重置老师的密码
* @param id
* @return
*/
public R updateStudentById({
studentService.updateStudentById(id); Integer id)return R.success();
} /**
* 添加teacher
* @param student
* @return
*/
public R addStudent({
studentService.addStudent(student); Student student)return R.success();
} /**
* 查询所有的teacher带分页以及条件查询
* @param pageNo
* @param pageSize
* @param queryParamsVo
* @return
*/
public R queryAllTeacher( {
System.out.println( Integer pageNo, Integer pageSize,
UserQueryParamsVo queryParamsVo)"queryParamsVo: " + queryParamsVo);
Page<Student> page = new Page<>(pageNo, pageSize);
IPage<Student> Teacher = studentService.queryAllTeacher(page,queryParamsVo); return R.success(Teacher);
}
}
package com.zhiku.yiqing.web.admin;import com.baomidou.mybatisplus.core.metadata.IPage;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import com.zhiku.yiqing.common.R;import com.zhiku.yiqing.pojo.Teacher;import com.zhiku.yiqing.service.TeacherService;import com.zhiku.yiqing.vo.NewsQueryParamsVo;import com.zhiku.yiqing.vo.UserQueryParamsVo;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.*;import java.util.Arrays;public class TeacherController {
private TeacherService teacherService;
public R batchDelTeacherById({
System.out.println(Arrays.toString(ids));
teacherService.batchDelTeacherById(ids); Integer[] ids)return R.success();
} /**
* 根据id删除teacher
* @param id
* @return
*/
public R delTeacherById( {
teacherService.delTeacherById(id); Integer id)return R.success();
} /**
* 重置老师的密码
* @param id
* @return
*/
public R updateTeacherById({
teacherService.updateTeacherById(id); Integer id)return R.success();
} /**
* 添加teacher
* @param teacher
* @return
*/
public R addTeacher({
teacherService.addTeacher(teacher); Teacher teacher)return R.success();
} /**
* 查询所有的teacher带分页以及条件查询
* @param pageNo
* @param pageSize
* @param queryParamsVo
* @return
*/
public R queryAllTeacher( {
System.out.println( Integer pageNo, Integer pageSize,
UserQueryParamsVo queryParamsVo)"queryParamsVo: " + queryParamsVo);
Page<Teacher> page = new Page<>(pageNo, pageSize);
IPage<Teacher> Teacher = teacherService.queryAllTeacher(page,queryParamsVo); return R.success(Teacher);
}
}
五,项目总结
基于Springboot实现疫情数据管理系统主要基于Springboot框架开发实现,。前端采用了Bootstrap框架技术实现了较为友好的用户体验和交互效果,整体采用B/S架构、三层结构,并使用了MYSQL数据库进行了数据存储。这些技术在学校都有接触和学习,为了进一步的掌握这些技术。为此我也进行了基于Springboot实现疫情数据管理系统相关知识学习和巩固,在开发技术进行了相应储备,应该来讲从技术方面来看,本系统的开发技术的可行性是没有问题的。