基于Springboot+Vue實(shí)現(xiàn)高校疫情防控系統(tǒng)
項(xiàng)目編號:BS-GX-040
? ? 2020年初發(fā)生的這場全球性新冠病毒,如今已經(jīng)伴隨我們2年有余了?;叵雰赡陙斫?jīng)過的這些事兒,歷歷在目。為了對抗這個(gè)讓人談之色變的病毒,全國上下一心,眾志成城的共同抗疫,渡過了最危險(xiǎn)的時(shí)候。但是病毒并沒有消失,危險(xiǎn)也時(shí)刻存在,我們并不能放松防疫的心弦,否則有可能功虧一潰,前功盡棄。
??? 而對于這種新冠病毒,防大于治。所以最關(guān)鍵的就是及時(shí)發(fā)現(xiàn)疫情信息,在初期盡快的做好控制,以防止它的快速蔓延。因?yàn)楝F(xiàn)在這個(gè)病毒的變種傳染性越來越強(qiáng),國內(nèi)采用動(dòng)態(tài)清零的方式很快、很好的控制住了國內(nèi)疫情的發(fā)展。并且目前正在幫助香港進(jìn)行疫情防控。而如何有效的高效快速的管理疫情患者信息,是我們打贏這場戰(zhàn)役的關(guān)鍵。信息化技術(shù)的應(yīng)用,可以幫助我們構(gòu)建疫情信息管理系統(tǒng),幫助我們提升工作效率,管理效能,提升疫情信息的共享能力。
一,項(xiàng)目簡介
? 最近根據(jù)客戶需要新研發(fā)了一個(gè)項(xiàng)目,本項(xiàng)目基于Springboot+Vue開發(fā)實(shí)現(xiàn)了一個(gè)前后臺均有的校園疫情防控管理系統(tǒng),整個(gè)系統(tǒng)設(shè)計(jì)界面美觀,功能全面,適合做畢業(yè)設(shè)計(jì)使用。
前端主要的功能:
用戶注冊登陸
疫情新聞查看
校務(wù)公開信息查看
系統(tǒng)通知通告查看
校園動(dòng)態(tài)查看
媒體校園查看
個(gè)人中心管理:
??????? 老師:個(gè)人信息管理、健康信息上報(bào)、離校申請、我的請假查看
??????? 學(xué)生:個(gè)人信息管理、健康信息上報(bào)、請假審批
?? 后臺管理功能:
校內(nèi)新聞管理
疫情新聞管理
首頁公告管理
校務(wù)公開管理
用戶管理:老師管理、學(xué)生管理
健康管理:老師健康管理、學(xué)生健康管理、確診信息管理
請假管理
二,環(huán)境介紹
語言環(huán)境:Java:? jdk1.8
數(shù)據(jù)庫:Mysql: mysql5.7
應(yīng)用服務(wù)器:Tomcat:? tomcat8.5.31
開發(fā)工具:IDEA或eclipse
后臺開發(fā)技術(shù):Springboot+Mybatis-plus
前臺開發(fā)技術(shù):Vue+ElementUI+Bootstrap+Jquery+Ajax
三,系統(tǒng)展示
前端頁面展示

新聞查看

詳情查看

學(xué)生登陸系統(tǒng):個(gè)人中心---個(gè)人信息查看

健康信息上報(bào)

請假管理之我的請假

請假管理之離校申請

老師登陸

請假審批

系統(tǒng)后臺管理

統(tǒng)計(jì)信息

系統(tǒng)管理之新聞管理

系統(tǒng)管理之疫情新聞

系統(tǒng)管理之公告管理
系統(tǒng)管理之校務(wù)公開管理

用戶管理之老師管理

用戶管理之學(xué)生管理

健康管理之老師健康管理

健康管理之學(xué)生健康管理

健康管理之確診信息管理

請假管理
四,核心代碼展示
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();
? ?} ? ?/**
? ? * 根據(jù)id刪除校務(wù)公開
? ? * @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();
? ?} ? ?/**
? ? * 添加校務(wù)公開
? ? * @param dynamic
? ? * @return
? ? */
? ?
? ?public R addDynamic({
? ? ? ?dynamicService.addDynamic(dynamic); ? ? ? ? Dynamic dynamic)return R.success();
? ?} ? ?/**
? ? * 查詢某個(gè)校務(wù)公開的詳情
? ? * @param id
? ? * @return
? ? */
? ?
? ?public R queryDynamicById( ? ? ? ? ? ?{ ? ? ? ? Integer id)Dynamic dynamic = dynamicService.queryDynamicById(id); ? ? ? ?return R.success(dynamic);
? ?} ? ?/**
? ? * 查詢所有的校務(wù)公開帶分頁以及條件查詢
? ? * @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導(dǎo)入導(dǎo)出測試Controller
*/public class EasyExcelController { ? ?
? ?private StudentService studentService; ? ?
? ?private TeacherService teacherService; ? ?/*導(dǎo)出學(xué)生信息列表*/
? ?
? ?
? ?public void exportStudentExcel( Integer[] ids, HttpServletResponse response)throws Exception{ ? ? ? ?//文件名含中文需要轉(zhuǎn)碼
? ? ? ?String fileName =
? ? ? ? ? ? ? ?URLEncoder.encode( "學(xué)生列表.xlsx", StandardCharsets.UTF_8.toString()); ? ? ? ?//將需要導(dǎo)出的數(shù)據(jù)從數(shù)據(jù)庫中查出
? ? ? ?List<Student> list = studentService.getAllStudents(ids); ? ? ? ?//設(shè)置響應(yīng)格式
? ? ? ?response.setContentType("application/vnd.ms-excel;chartset=utf-8"); //文件擴(kuò)展名為excel格式
? ? ? ?response.setHeader("Content-Disposition", "attachment;filename=" + fileName); //觸發(fā)文件名為filename的“另存為”對話框
? ? ? ?// 內(nèi)容樣式
? ? ? ?HorizontalCellStyleStrategy horizontalCellStyleStrategy = ContentStyle.getContentStyle(); ? ? ? ?//將OutputStream對象附著到EasyExcel的ExcelWriter實(shí)例
? ? ? ?EasyExcel.write(response.getOutputStream(), Student.class) //(輸出流, 文件頭)
? ? ? ? ? ? ? ?.excelType(ExcelTypeEnum.XLSX)
? ? ? ? ? ? ? ?.autoCloseStream(true)
? ? ? ? ? ? ? ?.sheet("學(xué)生名單") //第一個(gè)sheet的名
? ? ? ? ? ? ? ?.doWrite(list); //寫入數(shù)據(jù)
?} ? ?
? ?public R readStudentExcel({ ? ? ? ? MultipartFile file)try {
? ? ? ? ? ?InputStream inputStream=file.getInputStream();
? ? ? ? ? ?System.out.println(file.getOriginalFilename());
? ? ? ? ? ?EasyExcel.read(inputStream,Student.class, new EasyExcelListener<Student>(studentService)) ? ? ? ? ? ? ? ? ? ?// 設(shè)置sheet,默認(rèn)讀取第一個(gè)
? ? ? ? ? ? ? ? ? ?.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)) ? ? ? ? ? ? ? ? ? ?// 設(shè)置sheet,默認(rèn)讀取第一個(gè)
? ? ? ? ? ? ? ? ? ?.sheet()
? ? ? ? ? ? ? ? ? ?.doReadSync(); ? ? ? ? ? ?return R.success();
? ? ? ?}catch (Exception e){
? ? ? ? ? ?e.printStackTrace(); ? ? ? ? ? ?return R.failure();
? ? ? ?}
? ?} ? ?/*導(dǎo)出老師信息列表*/
? ?
? ?
? ?public void exportTeacherExcel( Integer[] ids, HttpServletResponse response)throws Exception{ ? ? ? ?//文件名含中文需要轉(zhuǎn)碼
? ? ? ?String fileName =
? ? ? ? ? ? ? ?URLEncoder.encode( "老師列表.xlsx", StandardCharsets.UTF_8.toString()); ? ? ? ?//將需要導(dǎo)出的數(shù)據(jù)從數(shù)據(jù)庫中查出
? ? ? ?List<Teacher> list = teacherService.getAllTeachers(ids); ? ? ? ?//設(shè)置響應(yīng)格式
? ? ? ?response.setContentType("application/vnd.ms-excel;chartset=utf-8"); //文件擴(kuò)展名為excel格式
? ? ? ?response.setHeader("Content-Disposition", "attachment;filename=" + fileName); //觸發(fā)文件名為filename的“另存為”對話框
? ? ? ?// 內(nèi)容樣式
? ? ? ?HorizontalCellStyleStrategy horizontalCellStyleStrategy = ContentStyle.getContentStyle(); ? ? ? ?//將OutputStream對象附著到EasyExcel的ExcelWriter實(shí)例
? ? ? ?EasyExcel.write(response.getOutputStream(), Teacher.class) //(輸出流, 文件頭)
? ? ? ? ? ? ? ?.excelType(ExcelTypeEnum.XLSX)
? ? ? ? ? ? ? ?.autoCloseStream(true)
? ? ? ? ? ? ? ?.sheet("老師名單") //第一個(gè)sheet的名
? ? ? ? ? ? ? ?.doWrite(list); //寫入數(shù)據(jù)
? ?}
}
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();
? ?} ? ?/**
? ? * 根據(jù)id刪除teacher
? ? * @param id
? ? * @return
? ? */
? ?
? ?public R delTeacherHealthById( {
? ? ? ?healthService.delTeacherHealthById(id); ? ? ? ? Integer id)return R.success();
? ?} ? ?/**
? ? * 上報(bào)省防疫辦
? ? * @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();
? ?} ? ?/**
? ? * 根據(jù)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();
? ?} ? ?/**
? ? * 根據(jù)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);
? ?}
}
五,項(xiàng)目總結(jié)
基于Springboot實(shí)現(xiàn)疫情數(shù)據(jù)管理系統(tǒng)主要基于Springboot框架開發(fā)實(shí)現(xiàn),。前端采用了Bootstrap框架技術(shù)實(shí)現(xiàn)了較為友好的用戶體驗(yàn)和交互效果,整體采用B/S架構(gòu)、三層結(jié)構(gòu),并使用了MYSQL數(shù)據(jù)庫進(jìn)行了數(shù)據(jù)存儲。這些技術(shù)在學(xué)校都有接觸和學(xué)習(xí),為了進(jìn)一步的掌握這些技術(shù)。為此我也進(jìn)行了基于Springboot實(shí)現(xiàn)疫情數(shù)據(jù)管理系統(tǒng)相關(guān)知識學(xué)習(xí)和鞏固,在開發(fā)技術(shù)進(jìn)行了相應(yīng)儲備,應(yīng)該來講從技術(shù)方面來看,本系統(tǒng)的開發(fā)技術(shù)的可行性是沒有問題的。