• 基于Springboot+Vue实现高校疫情防控系统


    项目编号:BS-GX-040

        2020年初发生的这场全球性新冠病毒,如今已经伴随我们2年有余了。回想两年来经过的这些事儿,历历在目。为了对抗这个让人谈之色变的病毒,全国上下一心,众志成城的共同抗疫,渡过了最危险的时候。但是病毒并没有消失,危险也时刻存在,我们并不能放松防疫的心弦,否则有可能功亏一溃,前功尽弃。

        而对于这种新冠病毒,防大于治。所以最关键的就是及时发现疫情信息,在初期尽快的做好控制,以防止它的快速蔓延。因为现在这个病毒的变种传染性越来越强,国内采用动态清零的方式很快、很好的控制住了国内疫情的发展。并且目前正在帮助香港进行疫情防控。而如何有效的高效快速的管理疫情患者信息,是我们打赢这场战役的关键。信息化技术的应用,可以帮助我们构建疫情信息管理系统,帮助我们提升工作效率,管理效能,提升疫情信息的共享能力。

    一,项目简介

      最近根据客户需要新研发了一个项目,本项目基于Springboot+Vue开发实现了一个前后台均有的校园疫情防控管理系统,整个系统设计界面美观,功能全面,适合做毕业设计使用。

    前端主要的功能:

    1. 用户注册登陆
    2. 疫情新闻查看
    3. 校务公开信息查看
    4. 系统通知通告查看
    5. 校园动态查看
    6. 媒体校园查看
    7. 个人中心管理:

            老师:个人信息管理、健康信息上报、离校申请、我的请假查看

            学生:个人信息管理、健康信息上报、请假审批

       后台管理功能:

    1. 校内新闻管理
    2. 疫情新闻管理
    3. 首页公告管理
    4. 校务公开管理
    5. 用户管理:老师管理、学生管理
    6. 健康管理:老师健康管理、学生健康管理、确诊信息管理
    7. 请假管理

    二,环境介绍

    语言环境:Java:  jdk1.8

    数据库:Mysql: mysql5.7

    应用服务器:Tomcat:  tomcat8.5.31

    开发工具:IDEA或eclipse

    后台开发技术:Springboot+Mybatis-plus

    前台开发技术:Vue+ElementUI+Bootstrap+Jquery+Ajax

    三,系统展示

    前端页面展示

    新闻查看

    详情查看

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

    健康信息上报

    请假管理之我的请假

    请假管理之离校申请

    老师登陆

    请假审批

    系统后台管理

    统计信息

    系统管理之新闻管理

    系统管理之疫情新闻

    系统管理之公告管理

    系统管理之校务公开管理

    用户管理之老师管理

    用户管理之学生管理

    健康管理之老师健康管理

    健康管理之学生健康管理

    健康管理之确诊信息管理

    请假管理

    四,核心代码展示

    1. package com.zhiku.yiqing.web.admin;
    2. import com.baomidou.mybatisplus.core.metadata.IPage;
    3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
    4. import com.zhiku.yiqing.common.R;
    5. import com.zhiku.yiqing.pojo.Dynamic;
    6. import com.zhiku.yiqing.service.DynamicService;
    7. import com.zhiku.yiqing.vo.NewsQueryParamsVo;
    8. import org.springframework.beans.factory.annotation.Autowired;
    9. import org.springframework.web.bind.annotation.*;
    10. import java.util.Arrays;
    11. @RestController
    12. @RequestMapping("/dynamic")
    13. public class DynamicController {
    14. @Autowired
    15. private DynamicService dynamicService;
    16. @DeleteMapping("/batchDelDynamicById/{ids}")
    17. public R batchDelDynamicById(@PathVariable("ids") Integer[] ids){
    18. System.out.println(Arrays.toString(ids));
    19. dynamicService.batchDelDynamicById(ids);
    20. return R.success();
    21. }
    22. /**
    23. * 根据id删除校务公开
    24. * @param id
    25. * @return
    26. */
    27. @DeleteMapping("/delDynamicById/{id}")
    28. public R delDynamicById( @PathVariable(value = "id" ) Integer id){
    29. dynamicService.delDynamicById(id);
    30. return R.success();
    31. }
    32. @PutMapping("/updateDynamicById")
    33. public R updateDynamicById(@RequestBody Dynamic dynamic){
    34. dynamicService.updateDynamicById(dynamic);
    35. return R.success();
    36. }
    37. /**
    38. * 添加校务公开
    39. * @param dynamic
    40. * @return
    41. */
    42. @PostMapping("/addDynamic")
    43. public R addDynamic(@RequestBody Dynamic dynamic){
    44. dynamicService.addDynamic(dynamic);
    45. return R.success();
    46. }
    47. /**
    48. * 查询某个校务公开的详情
    49. * @param id
    50. * @return
    51. */
    52. @GetMapping("/queryDynamicById/{id}")
    53. public R queryDynamicById(
    54. @PathVariable(value = "id" ) Integer id){
    55. Dynamic dynamic = dynamicService.queryDynamicById(id);
    56. return R.success(dynamic);
    57. }
    58. /**
    59. * 查询所有的校务公开带分页以及条件查询
    60. * @param pageNo
    61. * @param pageSize
    62. * @param queryParamsVo
    63. * @return
    64. */
    65. @GetMapping("/queryAllDynamic/{pageNo}/{pageSize}")
    66. public R queryAllDynamic(
    67. @PathVariable(value = "pageNo" ) Integer pageNo,
    68. @PathVariable(value = "pageSize") Integer pageSize,
    69. NewsQueryParamsVo queryParamsVo){
    70. System.out.println("queryParamsVo: " + queryParamsVo);
    71. Page page = new Page<>(pageNo, pageSize);
    72. IPage Dynamic = dynamicService.dynamicService(page,queryParamsVo);
    73. return R.success(Dynamic);
    74. }
    75. }
    1. package com.zhiku.yiqing.web.admin;
    2. import com.alibaba.excel.EasyExcel;
    3. import com.alibaba.excel.support.ExcelTypeEnum;
    4. import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
    5. import com.zhiku.yiqing.common.R;
    6. import com.zhiku.yiqing.listener.EasyExcelListener;
    7. import com.zhiku.yiqing.listener.ImportTradingListener;
    8. import com.zhiku.yiqing.pojo.Student;
    9. import com.zhiku.yiqing.pojo.Teacher;
    10. import com.zhiku.yiqing.service.StudentService;
    11. import com.zhiku.yiqing.service.TeacherService;
    12. import com.zhiku.yiqing.util.ContentStyle;
    13. import org.springframework.beans.factory.annotation.Autowired;
    14. import org.springframework.stereotype.Controller;
    15. import org.springframework.web.bind.annotation.*;
    16. import org.springframework.web.multipart.MultipartFile;
    17. import javax.servlet.http.HttpServletResponse;
    18. import java.io.InputStream;
    19. import java.net.URLEncoder;
    20. import java.nio.charset.StandardCharsets;
    21. import java.util.List;
    22. /**
    23. * EasyExcel导入导出测试Controller
    24. */
    25. @RestController
    26. @RequestMapping("/easyExcel")
    27. public class EasyExcelController {
    28. @Autowired
    29. private StudentService studentService;
    30. @Autowired
    31. private TeacherService teacherService;
    32. /*导出学生信息列表*/
    33. @GetMapping("/exportStudentExcel")
    34. @ResponseBody
    35. public void exportStudentExcel(@RequestParam("ids") Integer[] ids, HttpServletResponse response) throws Exception{
    36. //文件名含中文需要转码
    37. String fileName =
    38. URLEncoder.encode( "学生列表.xlsx", StandardCharsets.UTF_8.toString());
    39. //将需要导出的数据从数据库中查出
    40. List list = studentService.getAllStudents(ids);
    41. //设置响应格式
    42. response.setContentType("application/vnd.ms-excel;chartset=utf-8"); //文件扩展名为excel格式
    43. response.setHeader("Content-Disposition", "attachment;filename=" + fileName); //触发文件名为filename的“另存为”对话框
    44. // 内容样式
    45. HorizontalCellStyleStrategy horizontalCellStyleStrategy = ContentStyle.getContentStyle();
    46. //将OutputStream对象附着到EasyExcel的ExcelWriter实例
    47. EasyExcel.write(response.getOutputStream(), Student.class) //(输出流, 文件头)
    48. .excelType(ExcelTypeEnum.XLSX)
    49. .autoCloseStream(true)
    50. .sheet("学生名单") //第一个sheet的名
    51. .doWrite(list); //写入数据
    52. }
    53. @PostMapping("/readStudentExcel")
    54. public R readStudentExcel(@RequestParam("file") MultipartFile file){
    55. try {
    56. InputStream inputStream=file.getInputStream();
    57. System.out.println(file.getOriginalFilename());
    58. EasyExcel.read(inputStream,Student.class, new EasyExcelListener(studentService))
    59. // 设置sheet,默认读取第一个
    60. .sheet()
    61. .doReadSync();
    62. return R.success();
    63. }catch (Exception e){
    64. e.printStackTrace();
    65. return R.failure();
    66. }
    67. }
    68. @PostMapping("/readTeacherExcel")
    69. public R readTeacherExcel(@RequestParam("file") MultipartFile file){
    70. try {
    71. InputStream inputStream=file.getInputStream();
    72. System.out.println(file.getOriginalFilename());
    73. EasyExcel.read(inputStream,Teacher.class, new EasyExcelListener(teacherService))
    74. // 设置sheet,默认读取第一个
    75. .sheet()
    76. .doReadSync();
    77. return R.success();
    78. }catch (Exception e){
    79. e.printStackTrace();
    80. return R.failure();
    81. }
    82. }
    83. /*导出老师信息列表*/
    84. @GetMapping("/exportTeacherExcel")
    85. @ResponseBody
    86. public void exportTeacherExcel(@RequestParam("ids") Integer[] ids, HttpServletResponse response) throws Exception{
    87. //文件名含中文需要转码
    88. String fileName =
    89. URLEncoder.encode( "老师列表.xlsx", StandardCharsets.UTF_8.toString());
    90. //将需要导出的数据从数据库中查出
    91. List list = teacherService.getAllTeachers(ids);
    92. //设置响应格式
    93. response.setContentType("application/vnd.ms-excel;chartset=utf-8"); //文件扩展名为excel格式
    94. response.setHeader("Content-Disposition", "attachment;filename=" + fileName); //触发文件名为filename的“另存为”对话框
    95. // 内容样式
    96. HorizontalCellStyleStrategy horizontalCellStyleStrategy = ContentStyle.getContentStyle();
    97. //将OutputStream对象附着到EasyExcel的ExcelWriter实例
    98. EasyExcel.write(response.getOutputStream(), Teacher.class) //(输出流, 文件头)
    99. .excelType(ExcelTypeEnum.XLSX)
    100. .autoCloseStream(true)
    101. .sheet("老师名单") //第一个sheet的名
    102. .doWrite(list); //写入数据
    103. }
    104. }

    1. package com.zhiku.yiqing.web.admin;
    2. import com.baomidou.mybatisplus.core.metadata.IPage;
    3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
    4. import com.zhiku.yiqing.common.R;
    5. import com.zhiku.yiqing.pojo.Health;
    6. import com.zhiku.yiqing.pojo.Teacher;
    7. import com.zhiku.yiqing.service.HealthService;
    8. import com.zhiku.yiqing.service.TeacherService;
    9. import com.zhiku.yiqing.vo.HealthQueryParamsVo;
    10. import com.zhiku.yiqing.vo.UserQueryParamsVo;
    11. import org.springframework.beans.factory.annotation.Autowired;
    12. import org.springframework.web.bind.annotation.*;
    13. import java.util.Arrays;
    14. @RestController
    15. @RequestMapping("/health")
    16. public class HealthController {
    17. @Autowired
    18. private HealthService healthService;
    19. @DeleteMapping("/batchDelTeacherHealthById/{ids}")
    20. public R batchDelTeacherHealthById(@PathVariable("ids") Integer[] ids){
    21. System.out.println(Arrays.toString(ids));
    22. healthService.batchDelTeacherHealthById(ids);
    23. return R.success();
    24. }
    25. /**
    26. * 根据id删除teacher
    27. * @param id
    28. * @return
    29. */
    30. @DeleteMapping("/delTeacherHealthById/{id}")
    31. public R delTeacherHealthById( @PathVariable(value = "id" ) Integer id){
    32. healthService.delTeacherHealthById(id);
    33. return R.success();
    34. }
    35. /**
    36. * 上报省防疫办
    37. * @param id
    38. * @return
    39. */
    40. @PutMapping("/reportedTeacherHealthById/{id}")
    41. public R reportedTeacherHealthById(@PathVariable(value = "id" ) Integer id){
    42. System.out.println(id);
    43. healthService.reportedTeacherHealthById(id);
    44. return R.success();
    45. }
    46. /**
    47. * 查询所有的健康列表带分页以及条件查询
    48. * @param pageNo
    49. * @param pageSize
    50. * @param queryParamsVo
    51. * @return
    52. */
    53. @GetMapping("/queryAllTeacherHealth/{pageNo}/{pageSize}/{remark}")
    54. public R queryAllTeacher(
    55. @PathVariable(value = "pageNo" ) Integer pageNo,
    56. @PathVariable(value = "pageSize") Integer pageSize,
    57. @PathVariable(value = "remark") Integer remark,
    58. HealthQueryParamsVo queryParamsVo){
    59. Page page = new Page<>(pageNo, pageSize);
    60. IPage healthIPage = healthService.queryAllTeacherHealth(page,queryParamsVo,remark);
    61. return R.success(healthIPage);
    62. }
    63. }
    1. package com.zhiku.yiqing.web.admin;
    2. import com.baomidou.mybatisplus.core.metadata.IPage;
    3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
    4. import com.zhiku.yiqing.common.R;
    5. import com.zhiku.yiqing.pojo.Student;
    6. import com.zhiku.yiqing.service.StudentService;
    7. import com.zhiku.yiqing.vo.UserQueryParamsVo;
    8. import org.springframework.beans.factory.annotation.Autowired;
    9. import org.springframework.web.bind.annotation.*;
    10. import java.util.Arrays;
    11. @RestController
    12. @RequestMapping("/student")
    13. public class StudentController {
    14. @Autowired
    15. private StudentService studentService;
    16. @DeleteMapping("/batchDelStudentById/{ids}")
    17. public R batchDelStudentById(@PathVariable("ids") Integer[] ids){
    18. System.out.println(Arrays.toString(ids));
    19. studentService.batchDelStudentById(ids);
    20. return R.success();
    21. }
    22. /**
    23. * 根据id删除teacher
    24. * @param id
    25. * @return
    26. */
    27. @DeleteMapping("/delStudentById/{id}")
    28. public R delStudentById( @PathVariable(value = "id" ) Integer id){
    29. studentService.delStudentById(id);
    30. return R.success();
    31. }
    32. /**
    33. * 重置老师的密码
    34. * @param id
    35. * @return
    36. */
    37. @PutMapping("/updateStudentById/{id}")
    38. public R updateStudentById(@PathVariable(value = "id" ) Integer id){
    39. studentService.updateStudentById(id);
    40. return R.success();
    41. }
    42. /**
    43. * 添加teacher
    44. * @param student
    45. * @return
    46. */
    47. @PostMapping("/addStudent")
    48. public R addStudent(@RequestBody Student student){
    49. studentService.addStudent(student);
    50. return R.success();
    51. }
    52. /**
    53. * 查询所有的teacher带分页以及条件查询
    54. * @param pageNo
    55. * @param pageSize
    56. * @param queryParamsVo
    57. * @return
    58. */
    59. @GetMapping("/queryAllStudent/{pageNo}/{pageSize}")
    60. public R queryAllTeacher(
    61. @PathVariable(value = "pageNo" ) Integer pageNo,
    62. @PathVariable(value = "pageSize") Integer pageSize,
    63. UserQueryParamsVo queryParamsVo){
    64. System.out.println("queryParamsVo: " + queryParamsVo);
    65. Page page = new Page<>(pageNo, pageSize);
    66. IPage Teacher = studentService.queryAllTeacher(page,queryParamsVo);
    67. return R.success(Teacher);
    68. }
    69. }

    1. package com.zhiku.yiqing.web.admin;
    2. import com.baomidou.mybatisplus.core.metadata.IPage;
    3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
    4. import com.zhiku.yiqing.common.R;
    5. import com.zhiku.yiqing.pojo.Teacher;
    6. import com.zhiku.yiqing.service.TeacherService;
    7. import com.zhiku.yiqing.vo.NewsQueryParamsVo;
    8. import com.zhiku.yiqing.vo.UserQueryParamsVo;
    9. import org.springframework.beans.factory.annotation.Autowired;
    10. import org.springframework.web.bind.annotation.*;
    11. import java.util.Arrays;
    12. @RestController
    13. @RequestMapping("/teacher")
    14. public class TeacherController {
    15. @Autowired
    16. private TeacherService teacherService;
    17. @DeleteMapping("/batchDelTeacherById/{ids}")
    18. public R batchDelTeacherById(@PathVariable("ids") Integer[] ids){
    19. System.out.println(Arrays.toString(ids));
    20. teacherService.batchDelTeacherById(ids);
    21. return R.success();
    22. }
    23. /**
    24. * 根据id删除teacher
    25. * @param id
    26. * @return
    27. */
    28. @DeleteMapping("/delTeacherById/{id}")
    29. public R delTeacherById( @PathVariable(value = "id" ) Integer id){
    30. teacherService.delTeacherById(id);
    31. return R.success();
    32. }
    33. /**
    34. * 重置老师的密码
    35. * @param id
    36. * @return
    37. */
    38. @PutMapping("/updateTeacherById/{id}")
    39. public R updateTeacherById(@PathVariable(value = "id" ) Integer id){
    40. teacherService.updateTeacherById(id);
    41. return R.success();
    42. }
    43. /**
    44. * 添加teacher
    45. * @param teacher
    46. * @return
    47. */
    48. @PostMapping("/addTeacher")
    49. public R addTeacher(@RequestBody Teacher teacher){
    50. teacherService.addTeacher(teacher);
    51. return R.success();
    52. }
    53. /**
    54. * 查询所有的teacher带分页以及条件查询
    55. * @param pageNo
    56. * @param pageSize
    57. * @param queryParamsVo
    58. * @return
    59. */
    60. @GetMapping("/queryAllTeacher/{pageNo}/{pageSize}")
    61. public R queryAllTeacher(
    62. @PathVariable(value = "pageNo" ) Integer pageNo,
    63. @PathVariable(value = "pageSize") Integer pageSize,
    64. UserQueryParamsVo queryParamsVo){
    65. System.out.println("queryParamsVo: " + queryParamsVo);
    66. Page page = new Page<>(pageNo, pageSize);
    67. IPage Teacher = teacherService.queryAllTeacher(page,queryParamsVo);
    68. return R.success(Teacher);
    69. }
    70. }

    五,项目总结

    基于Springboot实现疫情数据管理系统主要基于Springboot框架开发实现,。前端采用了Bootstrap框架技术实现了较为友好的用户体验和交互效果,整体采用B/S架构、三层结构,并使用了MYSQL数据库进行了数据存储。这些技术在学校都有接触和学习,为了进一步的掌握这些技术。为此我也进行了基于Springboot实现疫情数据管理系统相关知识学习和巩固,在开发技术进行了相应储备,应该来讲从技术方面来看,本系统的开发技术的可行性是没有问题的。

  • 相关阅读:
    全新升级的AOP框架Dora.Interception[3]: 基于特性标注的拦截器注册方式
    windows10系统镜像安装含驱动补丁
    基于安卓平台的校园社交app设计
    由浅入深理解latent diffusion/stable diffusion(3):一步一步搭建自己的stable diffusion models
    Linux基础01
    Jetpack:012-Jetpack中的弹出菜单
    python忽略警告信息
    5-羧基四甲基罗丹明,CAS号: 91809-66-4
    R语言基于ARMA-GARCH过程的VaR拟合和预测
    知道策略模式!但不会在项目里使用?
  • 原文地址:https://blog.csdn.net/znzbs/article/details/126209415