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;
-
- @RestController
- @RequestMapping("/dynamic")
- public class DynamicController {
- @Autowired
- private DynamicService dynamicService;
-
- @DeleteMapping("/batchDelDynamicById/{ids}")
- public R batchDelDynamicById(@PathVariable("ids") Integer[] ids){
- System.out.println(Arrays.toString(ids));
- dynamicService.batchDelDynamicById(ids);
- return R.success();
- }
-
-
- /**
- * 根据id删除校务公开
- * @param id
- * @return
- */
- @DeleteMapping("/delDynamicById/{id}")
- public R delDynamicById( @PathVariable(value = "id" ) Integer id){
- dynamicService.delDynamicById(id);
- return R.success();
- }
-
- @PutMapping("/updateDynamicById")
- public R updateDynamicById(@RequestBody Dynamic dynamic){
- dynamicService.updateDynamicById(dynamic);
- return R.success();
- }
- /**
- * 添加校务公开
- * @param dynamic
- * @return
- */
- @PostMapping("/addDynamic")
- public R addDynamic(@RequestBody Dynamic dynamic){
- dynamicService.addDynamic(dynamic);
-
- return R.success();
- }
-
-
- /**
- * 查询某个校务公开的详情
- * @param id
- * @return
- */
- @GetMapping("/queryDynamicById/{id}")
- public R queryDynamicById(
- @PathVariable(value = "id" ) Integer id){
- Dynamic dynamic = dynamicService.queryDynamicById(id);
-
- return R.success(dynamic);
- }
-
- /**
- * 查询所有的校务公开带分页以及条件查询
- * @param pageNo
- * @param pageSize
- * @param queryParamsVo
- * @return
- */
- @GetMapping("/queryAllDynamic/{pageNo}/{pageSize}")
- public R queryAllDynamic(
- @PathVariable(value = "pageNo" ) Integer pageNo,
- @PathVariable(value = "pageSize") Integer pageSize,
- NewsQueryParamsVo queryParamsVo){
-
- System.out.println("queryParamsVo: " + queryParamsVo);
- Page
page = new Page<>(pageNo, pageSize); - IPage
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
- */
- @RestController
- @RequestMapping("/easyExcel")
- public class EasyExcelController {
-
- @Autowired
- private StudentService studentService;
-
- @Autowired
- private TeacherService teacherService;
-
-
- /*导出学生信息列表*/
- @GetMapping("/exportStudentExcel")
- @ResponseBody
- public void exportStudentExcel(@RequestParam("ids") Integer[] ids, HttpServletResponse response) throws Exception{
- //文件名含中文需要转码
- String fileName =
- URLEncoder.encode( "学生列表.xlsx", StandardCharsets.UTF_8.toString());
- //将需要导出的数据从数据库中查出
- List
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); //写入数据
-
- }
-
-
- @PostMapping("/readStudentExcel")
- public R readStudentExcel(@RequestParam("file") MultipartFile file){
- try {
- InputStream inputStream=file.getInputStream();
- System.out.println(file.getOriginalFilename());
- EasyExcel.read(inputStream,Student.class, new EasyExcelListener
(studentService)) - // 设置sheet,默认读取第一个
- .sheet()
- .doReadSync();
- return R.success();
- }catch (Exception e){
- e.printStackTrace();
- return R.failure();
- }
- }
-
- @PostMapping("/readTeacherExcel")
- public R readTeacherExcel(@RequestParam("file") MultipartFile file){
- try {
- InputStream inputStream=file.getInputStream();
- System.out.println(file.getOriginalFilename());
- EasyExcel.read(inputStream,Teacher.class, new EasyExcelListener
(teacherService)) - // 设置sheet,默认读取第一个
- .sheet()
- .doReadSync();
- return R.success();
- }catch (Exception e){
- e.printStackTrace();
- return R.failure();
- }
- }
- /*导出老师信息列表*/
- @GetMapping("/exportTeacherExcel")
- @ResponseBody
- public void exportTeacherExcel(@RequestParam("ids") Integer[] ids, HttpServletResponse response) throws Exception{
- //文件名含中文需要转码
- String fileName =
- URLEncoder.encode( "老师列表.xlsx", StandardCharsets.UTF_8.toString());
- //将需要导出的数据从数据库中查出
- List
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;
-
- @RestController
- @RequestMapping("/health")
- public class HealthController {
- @Autowired
- private HealthService healthService;
-
- @DeleteMapping("/batchDelTeacherHealthById/{ids}")
- public R batchDelTeacherHealthById(@PathVariable("ids") Integer[] ids){
- System.out.println(Arrays.toString(ids));
- healthService.batchDelTeacherHealthById(ids);
- return R.success();
- }
-
-
- /**
- * 根据id删除teacher
- * @param id
- * @return
- */
- @DeleteMapping("/delTeacherHealthById/{id}")
- public R delTeacherHealthById( @PathVariable(value = "id" ) Integer id){
- healthService.delTeacherHealthById(id);
- return R.success();
- }
-
-
- /**
- * 上报省防疫办
- * @param id
- * @return
- */
- @PutMapping("/reportedTeacherHealthById/{id}")
- public R reportedTeacherHealthById(@PathVariable(value = "id" ) Integer id){
- System.out.println(id);
- healthService.reportedTeacherHealthById(id);
-
- return R.success();
- }
-
-
-
- /**
- * 查询所有的健康列表带分页以及条件查询
- * @param pageNo
- * @param pageSize
- * @param queryParamsVo
- * @return
- */
- @GetMapping("/queryAllTeacherHealth/{pageNo}/{pageSize}/{remark}")
- public R queryAllTeacher(
- @PathVariable(value = "pageNo" ) Integer pageNo,
- @PathVariable(value = "pageSize") Integer pageSize,
- @PathVariable(value = "remark") Integer remark,
- HealthQueryParamsVo queryParamsVo){
-
-
- Page
page = new Page<>(pageNo, pageSize); - IPage
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;
-
- @RestController
- @RequestMapping("/student")
- public class StudentController {
- @Autowired
- private StudentService studentService;
-
- @DeleteMapping("/batchDelStudentById/{ids}")
- public R batchDelStudentById(@PathVariable("ids") Integer[] ids){
- System.out.println(Arrays.toString(ids));
- studentService.batchDelStudentById(ids);
- return R.success();
- }
-
-
- /**
- * 根据id删除teacher
- * @param id
- * @return
- */
- @DeleteMapping("/delStudentById/{id}")
- public R delStudentById( @PathVariable(value = "id" ) Integer id){
- studentService.delStudentById(id);
- return R.success();
- }
-
- /**
- * 重置老师的密码
- * @param id
- * @return
- */
- @PutMapping("/updateStudentById/{id}")
- public R updateStudentById(@PathVariable(value = "id" ) Integer id){
- studentService.updateStudentById(id);
- return R.success();
- }
- /**
- * 添加teacher
- * @param student
- * @return
- */
- @PostMapping("/addStudent")
- public R addStudent(@RequestBody Student student){
- studentService.addStudent(student);
-
- return R.success();
- }
-
-
-
- /**
- * 查询所有的teacher带分页以及条件查询
- * @param pageNo
- * @param pageSize
- * @param queryParamsVo
- * @return
- */
- @GetMapping("/queryAllStudent/{pageNo}/{pageSize}")
- public R queryAllTeacher(
- @PathVariable(value = "pageNo" ) Integer pageNo,
- @PathVariable(value = "pageSize") Integer pageSize,
- UserQueryParamsVo queryParamsVo){
-
- System.out.println("queryParamsVo: " + queryParamsVo);
- Page
page = new Page<>(pageNo, pageSize); - IPage
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;
-
- @RestController
- @RequestMapping("/teacher")
- public class TeacherController {
- @Autowired
- private TeacherService teacherService;
-
- @DeleteMapping("/batchDelTeacherById/{ids}")
- public R batchDelTeacherById(@PathVariable("ids") Integer[] ids){
- System.out.println(Arrays.toString(ids));
- teacherService.batchDelTeacherById(ids);
- return R.success();
- }
-
-
- /**
- * 根据id删除teacher
- * @param id
- * @return
- */
- @DeleteMapping("/delTeacherById/{id}")
- public R delTeacherById( @PathVariable(value = "id" ) Integer id){
- teacherService.delTeacherById(id);
- return R.success();
- }
-
- /**
- * 重置老师的密码
- * @param id
- * @return
- */
- @PutMapping("/updateTeacherById/{id}")
- public R updateTeacherById(@PathVariable(value = "id" ) Integer id){
- teacherService.updateTeacherById(id);
- return R.success();
- }
- /**
- * 添加teacher
- * @param teacher
- * @return
- */
- @PostMapping("/addTeacher")
- public R addTeacher(@RequestBody Teacher teacher){
- teacherService.addTeacher(teacher);
-
- return R.success();
- }
-
-
-
- /**
- * 查询所有的teacher带分页以及条件查询
- * @param pageNo
- * @param pageSize
- * @param queryParamsVo
- * @return
- */
- @GetMapping("/queryAllTeacher/{pageNo}/{pageSize}")
- public R queryAllTeacher(
- @PathVariable(value = "pageNo" ) Integer pageNo,
- @PathVariable(value = "pageSize") Integer pageSize,
- UserQueryParamsVo queryParamsVo){
-
- System.out.println("queryParamsVo: " + queryParamsVo);
- Page
page = new Page<>(pageNo, pageSize); - IPage
Teacher = teacherService.queryAllTeacher(page,queryParamsVo); -
- return R.success(Teacher);
- }
- }
基于Springboot实现疫情数据管理系统主要基于Springboot框架开发实现,。前端采用了Bootstrap框架技术实现了较为友好的用户体验和交互效果,整体采用B/S架构、三层结构,并使用了MYSQL数据库进行了数据存储。这些技术在学校都有接触和学习,为了进一步的掌握这些技术。为此我也进行了基于Springboot实现疫情数据管理系统相关知识学习和巩固,在开发技术进行了相应储备,应该来讲从技术方面来看,本系统的开发技术的可行性是没有问题的。