基于SSM的疫情管控系统

news2025/1/12 22:52:18

博主主页:猫头鹰源码

 

博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战

主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询

文末联系获取

项目介绍:

随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对疫情管控管理当然也不能排除在外,随着网络技术的不断成熟,带动了疫情管控系统的发展,它彻底改变了过去传统的管理方式,不仅使服务管理难度变低了,还提升了管理的灵活性。这种个性化的平台特别注重交互协调与管理的相互配合,激发了管理人员的创造性与主动性,对疫情管控系统而言非常有利。

平台选用SSM框架完成程序的主体架构设计,其中JDBC封装在了MyBatis中,MyBatis在使用的时候不会给程序和数据库造成任何影响,使用非常方便。SpringMVC作为表现层也是目前使用频率非常高的框架,系统安全性极高, 前后端的语言搭配分别使用JSP和JAVA语言,设计工具Eclipse,运行的环境Tomcat8服务器,Mysql数据库的访问技术使用JDBC,实现B/S结构疫情管控系统。

适合选题:疫情、管控、疫情防控、防控等。 

项目功能:

架构设计的目的是反映一个结构和其他元素之间的关系,抽象,通常用于指导大型软件系统。将一个巨大的任务细分为多个小任务的过程是系统架构的总体设计。完成小任务后,整个任务就可以完成了。具体的实现过程是分解系统,分析各部分的功能、接口和逻辑关系。页面是一个一个模块组建而成的,层次结构分明,思想运用的是面向对象,一个实体对应一个数据类型,还要对每个数据类添加一个实施类。

疫情管控系统的实现主要包括超级管理员、管理员、保安和学生四个用户角色,由于系统用户角色不同所使用的功能模块相应不同,管理员根据需求对系统功能模块进行维护管理操作。

超级管理员,可以对系统的用户管理、紧急联系管理、健康管理、进出管理、来访登记管理、留言管理、新闻公告管理等模块的管理维护。

管理员,查看我的健康管理、学生健康管理、进出管理、留言管理等模块的管理维护。

保安,我的健康管理、登记管理、留言管理等功能模块的管理维护。

教师,我的健康管理、我的进出管理、留言管理等模块的管理维护。

学生,我的健康管理、我的进出管理、留言管理等模块的管理维护。

这些功能可以充分满足疫情管控系统的需求。此系统功能较为全面如下图系统功能结构。​​​​​​​

系统包含技术:

后端:spring,springmvc,mybatis-plus (ssm整合)
前端:bootstrap、js、css等
开发工具:eclipse
数据库:mysql 5.7
JDK版本:jdk1.8
服务器:tomcat8

部分截图说明: 

下面是系统的登录页面,可以选择不同角色登录

管理员登录首页

管理员对用户进行维护

管理员对紧急联系人维护

管理员对进出管理

管理员对来访人员登记管理

管理员查看健康信息

保安登记管理

保安修改密码

学生填报健康信息

部分代码:

健康信息操作

@RequestMapping("add")
	@ResponseBody
	public ServerResponse add(Health health, HttpSession session) {
		Integer role = (Integer) session.getAttribute("role");
		if(role!=null && role==0){//超级管理员自己
			Users u = (Users) session.getAttribute("users");
			health.setUid(u.getId());
			health.setNo(u.getNo());
			health.setName(u.getName());
			health.setRole(u.getRole());
		}
		if(role!=null && role==3){//学生自己
			Users u = (Users) session.getAttribute("users");
			health.setUid(u.getId());
			health.setNo(u.getNo());
			health.setName(u.getName());
			health.setRole(u.getRole());
		}
		if(role!=null && role==4){//老师自己
			Users u = (Users) session.getAttribute("users");
			health.setUid(u.getId());
			health.setNo(u.getNo());
			health.setName(u.getName());
			health.setRole(u.getRole());
		}
		if(role!=null && role==2){//保安自己
			Users u = (Users) session.getAttribute("users");
			health.setUid(u.getId());
			health.setNo(u.getNo());
			health.setName(u.getName());
			health.setRole(u.getRole());
		}
		if(role!=null && role==1){//管理员
			if(health.getUid()!=null){//管理员加别人
				Users u = usersService.getById(health.getUid());
				health.setUid(u.getId());
				health.setNo(u.getNo());
				health.setName(u.getName());
				health.setRole(u.getRole());
			}else{//管理员加自己
				Users u = (Users) session.getAttribute("users");
				health.setUid(u.getId());
				health.setNo(u.getNo());
				health.setName(u.getName());
				health.setRole(u.getRole());
			}
			
			
		}
		health.setOptime(Const.getTime());
		boolean flag = healthService.save(health);
		if (flag) {
			return new ServerResponse("0", "添加成功!");
		} else {
			return new ServerResponse("1", "添加失败!");
		}
	}

	@RequestMapping("add2")
	@ResponseBody
	public ServerResponse add2(Health health, HttpSession session) {

		Users u = usersService.getById(health.getUid());
		health.setUid(u.getId());
		health.setNo(u.getNo());
		health.setName(u.getName());
		health.setRole(u.getRole());
		health.setOptime(Const.getTime());
		boolean flag = healthService.save(health);
		if (flag) {
			return new ServerResponse("0", "添加成功!");
		} else {
			return new ServerResponse("1", "添加失败!");
		}
	}

	@RequestMapping("update")
	@ResponseBody
	public ServerResponse update(Health health) {
		boolean flag = healthService.updateById(health);
		if (flag) {
			return new ServerResponse("0", "修改成功!");
		} else {
			return new ServerResponse("1", "修改失败!");
		}
	}

	@RequestMapping("json")
	@ResponseBody
	public Health json(Integer id) {
		return healthService.getById(id);
	}

首页操作

@RequestMapping("/index")
	public String index(String username, String password, Integer role,
			HttpServletRequest request) {

		QueryWrapper<Notice> gwapper = new QueryWrapper<Notice>();
		gwapper.eq("isdel", 0);
		gwapper.orderByDesc("optime");
		List<Notice> notices = noticeService.list(gwapper);
		request.getSession().setAttribute("notices", notices);

		QueryWrapper<Lianxi> lwapper = new QueryWrapper<Lianxi>();
		List<Lianxi> lianxis = lianxiService.list(lwapper);
		request.getSession().setAttribute("lianxis", lianxis);
		return "index";
	}

	@RequestMapping("/login")
	@ResponseBody
	public String login(String username, String password, Integer role,
			HttpSession session) {
		String code = "error";
		QueryWrapper<Users> wrapper = new QueryWrapper<Users>();
		wrapper.eq("username", username);
		wrapper.eq("password", password);
		wrapper.eq("role", role);
		wrapper.eq("isdel", 0);
		List<Users> list = usersService.list(wrapper);
		if (list != null && list.size() > 0) {
			Users users = list.get(0);
			session.setAttribute("role", role);
			session.setAttribute("users", users);
			code = "ok";
		}
		return code;
	}

	@RequestMapping("/uppwd")
	@ResponseBody
	public ServerResponse uppwd(Integer id, String oldPass, String password,
			Integer role) {
		boolean flag = false;
		Users users = usersService.getById(id);
		if (oldPass.equals(users.getPassword())) {
			users.setPassword(password);
			flag = usersService.updateById(users);
		} else {
			return new ServerResponse("1", "原密码不正确!");
		}
		if (flag) {
			return new ServerResponse("0", "修改成功,请重新登录");
		}
		return new ServerResponse("1", "修改失败");

	}

	@RequestMapping("/getbyid")
	@ResponseBody
	public ServerResponse getbyid(Integer id, Integer role) {
		Users users = usersService.getById(id);
		return new ServerResponse("0", users);
	}

	@RequestMapping("/logout")
	public String logout(HttpSession session) {
		session.invalidate();
		return "login";
	}

以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。

好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/133.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据Hadoop之——Apache Hudi 数据湖实战操作(Spark,Flink与Hudi整合)

文章目录一、概述二、Hudi CLI三、Spark 与 Hudi 整合使用1&#xff09;Spark 测试2&#xff09;Spark 与 Hudi 整合使用1、启动spark-shell2、导入park及Hudi相关包3、定义变量4、模拟生成Trip乘车数据5、将模拟数据List转换为DataFrame数据集6、将数据写入到hudi四、Flink 与…

前端ES6相关的面试题

前端ES6相关的面试题 文章目录前端ES6相关的面试题一. var let constvarletconst二 . 函数的扩展reset参数箭头函数三 . 数组的扩展四.Set和map数据结构Setmap五. Promise六. 模块化一. var let const var var存在声明提升 >先上车,后买票 var声明的变量会挂载到window下面…

Java实操避坑指南四、spring中的坑

文章目录1. 项目搭建过程1. pom 依赖2. 在没有配置数据库相关时不要引入依赖包&#xff0c;如spring-boot-starter-data-jpa2. spring bean 默认生成策略的正确使用1. 代码示例2. 单元测试3. 工具类 [参考](#test2)4. 报错信息5. 分析6. 使用说明2. 使用了Autowired 注解&#…

【5G RAN】5G gNB间的N2/NGAP切换(handover)那点事儿

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…

@Import注解详解

Import这个注解非常重要&#xff0c;而且在springboot项目当中随处可见&#xff0c;就拿springboot启动类来说&#xff0c;我们经常会遇到一些Enable相关的注解&#xff0c;例如开启异步EnableAsync、开启缓存支持EnableCaching、开启定时任务EnableScheduling等等… 目录一、I…

Oracle通过DBLINK访问达梦数据库

环境需求 需要安装配置以下相关软件&#xff1a; 1、Oracle Gateways 2、ODBC数据源&#xff08;gateway机器&#xff09; 3、达梦数据库软件&#xff08;gateway机器&#xff09; 安装配置 Windows环境 安装达梦数据库软件 安装步骤省略&#xff0c;可以参考DM 数据库…

【嵌入式Linux开发一路清障-连载02】Ubuntu22.04安装Shutter进行截图和标注

Ubuntu22.04安装Shutter进行截图和标注障碍 05&#xff0d;Ubuntu22.04中不会给截图做标注&#xff0c;写Bolg举步维艰命令行方式安装Shuttershutter中的常用命令为截取活动窗口设置快捷键安装gnome-web-photo截取长图--失败--未完待续小结下节预告障碍 05&#xff0d;Ubuntu22…

一起来部署项目-采购一台云服务器

前言 不会运维的程序员不是一个好程序员&#xff0c;你是这样认为吗&#xff1f;不&#xff0c;不重要&#xff0c;关键是很多小企业是让后端程序员去干运维的&#xff0c;省钱~~~o(╥﹏╥)o。特别是在YQ严重的当下&#xff0c;所以为了提高自己的竞争力&#xff0c;从今天起&…

万字爽文一篇带你掌握Java8新特性

陈老老老板说明&#xff1a;新的专栏&#xff0c;本专栏专门讲Java8新特性&#xff0c;把平时遇到的问题与Java8的写法进行总结&#xff0c;需要注意的地方都标红了&#xff0c;一起加油。本文是介绍Java8新特性与常用方法&#xff08;此篇只做大体介绍了解&#xff0c;之后会把…

Java8中LocalDate详解Date线程不安全的原因

LocalDate 分类分工 java.time.LocalDate ->只对年月日做出处理 java.time.LocalTime ->只对时分秒纳秒做出处理 java.time.LocalDateTime ->同时可以处理年月日和时分秒优点 除了使用起来更加简单和灵活&#xff0c;主要是传统的时期处理类Date、Calendar不是多线…

刷爆leetcode第十二期 0026 数组中数字出现的次数

编号0026 数组中数字出现的次数 一个整型数组 nums 里除两个数字之外&#xff0c;其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n)&#xff0c;空间复杂度是O(1)。 题目示例如下 这里其实是一道我一个月之前做的题目 在学弟的博客里刚好看…

【数据结构与算法】Java实现七大排序算法汇总

✨哈喽&#xff0c;进来的小伙伴们&#xff0c;你们好耶&#xff01;✨ &#x1f6f0;️&#x1f6f0;️系列专栏:【数据结构与算法】 ✈️✈️本篇内容: Java实现七大排序算法汇总&#xff01; &#x1f680;&#x1f680;由于本篇博客涉及代码较多&#xff0c;博主把代码都提…

刷爆leetcode第十一期 0023~0025

刷爆leetcode第十一期 编号0023 相同的树编号0024 对称二叉树编号0025 另一个树的子树编号0023 相同的树 给你两棵二叉树的根节点 p 和 q &#xff0c;编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同&#xff0c;并且节点具有相同的值&#xff0c;则认为它们是…

多旋翼无人机仿真 rotors_simulator:用键盘控制无人机飞行

多旋翼无人机仿真 rotors_simulator&#xff1a;用键盘控制无人机飞行前言书接上文接口测试键盘指令发布指令转换与发布修改 rotors_simulator 的控制接口节点测试前言 RotorS 是一个MAV gazebo 仿真系统。 提供了几种多旋翼仿真模型&#xff0c;例如 AscTec HummingbirdAsc…

PHP反序列化

序列化与反序列化 序列化 反序列是指把对象转换为字符串的过程&#xff0c;便于在内存、文件、数据库中保存、传输&#xff0c;PHP中使用serialize函数进行序列化。 <?phpclass Person{public $name"php";protected $id;private $age;}$a new Person();$a_se…

全排列笔记

14天阅读挑战赛 全排列 题目 给定一个 没有重复 数字的序列&#xff0c;返回其所有可能的全排列。 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] 解答 方法一&#xff1a;回溯 思路 从高中的数学知识我们可以知道 从[1,2,3…

如何在Linux上优雅地写代码-Linux生存指南

初入Linux&#xff0c;发现老是要面对一个命令行&#xff0c;大黑框&#xff0c;看不懂各种手册&#xff0c;写代码也是用vi/vim&#xff0c;难受的捉急。其实Linux下的各种工具&#xff0c;强大得超出你的想象&#xff0c;如果你初入Linux&#xff0c;那么你急需阅读这篇文章&…

操作系统的主要功能

目录 一. 处理机管理功能 1.1 进程控制 1.2 进程同步 1.3 进程通信 1.4 进程调度 二. 存储器管理功能 2.1 内存分配 2.2 内存保护 2.3 地址映射 2.4 内存扩充 三. 设备管理功能 3.1 缓冲管理 3.2 设备分配 3.3 设备处理 3.4 设备独立性和虚拟设备 四…

关于Python爬虫兼职,这里有一条高效路径

前言 昨天&#xff0c;一位00后前来报喜&#xff0c;也表达感谢。 他说&#xff0c;当初刚毕业啥也不会也找不到工作&#xff0c;最后听了我的&#xff0c;边学爬虫边做兼职项目&#xff0c;积极主动求职投简历&#xff0c;既可以兼职获得收益&#xff0c;也能积累项目经验谋求…

Linux:以K、M、G查看文件大小;

简介&#xff1a;灵活多变的查看文件的大小 历史攻略&#xff1a; Linux&#xff1a;sudo免密 python&#xff1a;执行dos命令、Linux命令 案例源码&#xff1a; # 以适当方式显示文件大小&#xff1a; ls -lh# 以byte显示文件大小&#xff1a; ls -l# 以M显示文件大小&am…