文末获取联系
开发语言:Java
使用框架:spring boot
前端技术:Vue 、css、element-ui、js
开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code
数据库:MySQL 5.7/8.0
数据库管理工具:phpstudy/Navicat
JDK版本:jdk1.8
Maven:apache-maven 3.8.1-bin
项目介绍:
国家及社会对高等教育的支持度在近年来呈直线上升,人民也了解到教育的重要性,因此我国的高校数量及在校生数量也逐年递增,人数的增加本就加大了高校的管理工作难度,加之2019年底新型冠状肺炎疫情的爆发,使高校的管理工作难度再上一层楼。为了在疫情期间能更好的维护教学秩序,同时保证在校用户的健康与安全、提高工作的效率、确保每位用户都能得到有效的保护,在进行全面调研、探求实际情况之后本人设计并实现了校园疫情防控系统。校园疫情防控系统是在实际应用和软件工程的开发原理之上,运用Java技术开发的一个疫情防控的管理系统。在开发过程中首先要对系统进行需求分析,分析出校园疫情防控系统的主要功能,再对系统结构进行整体设计和详细设计。整体设计主要有系统功能、系统总体结构、系统数据结构和系统安全等设计;过程的最后再对系统进行测试,并对测试结果进行分析和总结,为今后的系统维护提供了方便,同时也为今后类似系统的开发提供了参考和帮助。这种个性化的在线系统管理特别注重相互协调和管理合作,它激发了管理者的创造力和主动性,这对校园疫情防控系统来说非常有益。
功能介绍:
管理员模块属于是网站的后台,进入之后有大量的管理员功能,管理员也可以使用普通用户模块的功能,为了维护网站的稳定与页面的布局,将管理员模块的功能详细化后可以使用系统管理对页面进行布局修改,可以发布公告提示用户规范,用户功能模块可以对健康上报、到校确认、核酸上报、确诊上报、药品申请等功能进行操作,校园疫情防控系统主页结构图如图4-2所示。
部分截图说明:
前台界面图
药品详情界面图
立即申请界面图
个人中心界面图
系统登录界面图
老师管理界面图
健康上报管理界面图
到校确认管理界面图
核酸上报管理界面图
部分代码:
/**
* 上传文件映射表
*/
@RestController
@RequestMapping("file")
@SuppressWarnings({"unchecked","rawtypes"})
public class FileController{
@Autowired
private ConfigService configService;
/**
* 上传文件
*/
@RequestMapping("/upload")
public R upload(@RequestParam("file") MultipartFile file,String type) throws Exception {
if (file.isEmpty()) {
throw new EIException("上传文件不能为空");
}
String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1);
File path = new File(ResourceUtils.getURL("classpath:static").getPath());
if(!path.exists()) {
path = new File("");
}
File upload = new File(path.getAbsolutePath(),"/upload/");
if(!upload.exists()) {
upload.mkdirs();
}
String fileName = new Date().getTime()+"."+fileExt;
File dest = new File(upload.getAbsolutePath()+"/"+fileName);
file.transferTo(dest);
if(StringUtils.isNotBlank(type) && type.equals("1")) {
ConfigEntity configEntity = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "faceFile"));
if(configEntity==null) {
configEntity = new ConfigEntity();
configEntity.setName("faceFile");
configEntity.setValue(fileName);
} else {
configEntity.setValue(fileName);
}
configService.insertOrUpdate(configEntity);
}
return R.ok().put("file", fileName);
}
/**
* 下载文件
*/
@IgnoreAuth
@RequestMapping("/download")
public ResponseEntity<byte[]> download(@RequestParam String fileName) {
try {
File path = new File(ResourceUtils.getURL("classpath:static").getPath());
if(!path.exists()) {
path = new File("");
}
File upload = new File(path.getAbsolutePath(),"/upload/");
if(!upload.exists()) {
upload.mkdirs();
}
File file = new File(upload.getAbsolutePath()+"/"+fileName);
if(file.exists()){
/*if(!fileService.canRead(file, SessionManager.getSessionUser())){
getResponse().sendError(403);
}*/
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
headers.setContentDispositionFormData("attachment", fileName);
return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED);
}
} catch (IOException e) {
e.printStackTrace();
}
return new ResponseEntity<byte[]>(HttpStatus.INTERNAL_SERVER_ERROR);
}
}