基于springboot+vue实现高校疫情防控系统(代码片段)

编程指南针 编程指南针     2022-12-01     618

关键词:

作者主页:编程指南针

作者简介:Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师

主要内容:Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助

文末获取源码 

项目编号: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

三,系统展示

前端页面展示

新闻查看

详情查看

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

健康信息上报

请假管理之我的请假

请假管理之离校申请

老师登陆

请假审批

系统后台管理

统计信息

系统管理之新闻管理

系统管理之疫情新闻

系统管理之公告管理

系统管理之校务公开管理

用户管理之老师管理

用户管理之学生管理

健康管理之老师健康管理

健康管理之学生健康管理

健康管理之确诊信息管理

请假管理

四,核心代码展示

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<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
 */
@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<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); //写入数据

  


    @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<Student>(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<Teacher>(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<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;

@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<Health> page = 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;

@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<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;

@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<Teacher> page = new Page<>(pageNo, pageSize);
        IPage<Teacher> Teacher = teacherService.queryAllTeacher(page,queryParamsVo);

        return R.success(Teacher);
    

五,项目总结

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

基于java+springboot+vue+element实现校园疫情防控系统详细设计和实现

🍅作者简介:CSDN特邀作者✌、博客专家✌、java领域优质创作者💪🍅关注公众号【java李杨勇】 简历模板、学习资料、面试题库等都给你💪🍅文末获取源码联系🍅🍅新星计划·第三季【Java】赛... 查看详情

基于java+springboot+vue+elememt社区疫情防控系统设计和实现(代码片段)

博主介绍:✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌🍅文末获取联系🍅精彩专栏推... 查看详情

基于java+springboot+vue+elememt社区疫情防控系统设计和实现(代码片段)

博主介绍:✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌🍅文末获取联系🍅精彩专栏推... 查看详情

基于java+springboot+vue+elementui社区疫情防控系统详细设计实现(代码片段)

博主介绍:✌公司项目主程、全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,CSDN博客之星TOP100、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业设计✌🍅文末获取联... 查看详情

基于java+springboot+vue+elementui社区疫情防控系统详细设计实现(代码片段)

博主介绍:✌公司项目主程、全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,CSDN博客之星TOP100、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业设计✌🍅文末获取联... 查看详情

基于springboot的校园疫情防控系统设计与实现(代码片段)

1.概述校园疫情防控系统的开发运用java技术、springboot框架,MIS的总体思想,以及Mysql等技术的支持下共同完成了该系统的开发,实现了校园疫情防控管理的信息化,使用户体验到校园疫情防控管理,管理员管... 查看详情

计算机毕业设计springboot+vue基本微信小程序的疫情防控平台系统(代码片段)

项目介绍当今社会疫情防控平台是必不可少的,大家都在听从政府的号召在居家隔离,不管是在城市还是在乡镇、农村,这引起我的注目,设计一套社区疫情防控系统,疫情防控需要大家共同努力、团结对社... 查看详情

计算机毕业设计之java+springboot基于vue的校园疫情防控系统

项目介绍随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继... 查看详情

基于vue+nodejs实现的前后端分离疫情防控系统(代码片段)

作者主页:编程指南针作者简介:Java领域优质创作者、CSDN博客专家、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师主要内容:Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助文末获取源码... 查看详情

基于springboot社区疫情防控管理系统毕业设计-附源码164621

Springboot社区疫情防控管理系统摘要信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻... 查看详情

计算机毕业设计springboot+vue+elementui校园疫情防控系统

项目介绍基本实现了校园疫情防控系统应有的主要功能模块,本系统有管理员、学生。管理员:首页、个人中心、核酸检测管理、体温状态管理、学生管理、学生状态管理、休假申请管理、出入登记管理、疫情知识管理... 查看详情

疫情防控|springboot+小程序+校园疫情防控系统设计与实现(代码片段)

作者主页:编程指南针作者简介:Java领域优质创作者、CSDN博客专家、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师主要内容:Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助收藏点赞不迷... 查看详情

疫情防控|springboot+小程序+校园疫情防控系统设计与实现(代码片段)

...校申请审批、校园通知、疫情地区可视化图表。本文利用SpringBoot与uniapp技术,设计开发出的一个基于C/S架构的校园疫情防控微信小程序。在整个系统的开发周期中,系统后端选用SpringBoot框架,前端选用uniapp框架,... 查看详情

毕业设计:基于springboot+vue+elementui实现疫情社区管理系统(代码片段)

作者主页:编程指南针作者简介:Java领域优质创作者、CSDN博客专家、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师主要内容:Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助文末获取源码... 查看详情

javaweb社区疫情防控系统前后端分类项目(springboot+vue+mysql)项目源码

idea开发工具,可直接打开运行项目,MySQL数据库8.0实现功能:系统管理、用户管理、角色管理、菜单管理、外出申请管理、楼栋管理、举报管理、体温上报管理、疫苗管理、疫苗接种管理、守护者计划管理项目源码下... 查看详情

计算机毕业设计之java+springboot基于vue的疫情防控期间某村外出务工人员信息管理系统

项目介绍开发环境开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3 查看详情

基于vue+nodejs实现的前后端分离疫情防控系统

本项目主要实现校园/公司/各类组织疫情防控管理,个人健康上报功能,分为三个角色:管理员:主要管理学生、教师、班级、通知信息教师:主要管理学生的健康上报信息,通知信息,请假审批信息... 查看详情

计算机毕业设计springboot+vue基本微信小程序的社区疫情防控系统

项目介绍首先,论文一开始便是清楚的论述了小程序的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了小程序的需求基础上需要进... 查看详情