基于SSM+JSP的新冠患者统计系统
一、系统截图
二、系统架构
系统架构:本系统使用Java作为主要的编程语言编程开发,后台以SSM框架作为主要的技术支撑,数据库采用采用MySQL,前端采用JSP同时配合JavaScript语言,同时引入百度的Ueditor编辑器丰富页面的内容。
开发环境:JDK8+IDEA+MySQL8.0
功能需求:
患者
1 注册 注册时带上患者的所在的省份,姓名,联系方式,身份证号等 登录
2个人中心 修改个人信息,修改密码
3查看公告 查看管理员发布的公告信息
4留言管理 可以向选择护士,然后留言等待护士的回复
5体温管理 可以查看自己每日的体温信息,包括体温度数,测量时间,测量备注
6患者状态管理 查看管理员更新的自己的目前状态包括(姓名,接种疫苗次数(0,1,2,3),感染的状态(无症状感染无症状、 出现肺炎,治愈隔离,死亡)) 可以显示两个统计(一个是所有患者接种率与未接种率,一个是所有患者的各个感染状态所占的比例)
护士
1 注册 注册时带上护士的所在的省份,姓名,联系方式,身份证号等 登录
2个人中心 修改个人信息,修改密码
3查看公告 查看管理员发布的公告信息
4留言管理 查看患者的留言并且进行回复
5体温管理 新增患者每日的体温数据,选择患者填写体温度数,测量时间,测量备注
6患者状态管理 新增不同患者现在的状态(选择患者后填写接种疫苗次数(0,1,2,3),感染的状态(无症状感染无症状、 出现肺炎,治愈隔离,死亡)) 可以显示两个统计(一个是所有患者接种率与未接种率,一个是所有患者的各个感染状态所占的比例)
管理员
1 个人信息修改
2 公告管理
3 患者信息管理
4 护士信息管理
5 留言管理
6 体温管理
7 患者状态的管理 可以显示两个统计(一个是所有患者接种率与未接种率,一个是所有患者的各个感染状态所占的比例)
三、下载链接
更多关于项目的描述可以点击基于SSM+VUE的新冠患者统计系统
四、核心代码
package com.ServletContextListener;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.DictionaryEntity;
import com.service.DictionaryService;
import com.thread.MyThreadMethod;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletContextEvent;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 字典初始化监视器 用的是服务器监听,每次项目启动,都会调用这个类
*/
public class DictionaryServletContextListener implements ServletContextListener {
private static final Logger logger = LoggerFactory.getLogger(DictionaryServletContextListener.class);
private MyThreadMethod myThreadMethod;
@Override
public void contextDestroyed(ServletContextEvent sce) {
logger.info("----------服务器停止----------");
}
@Override
public void contextInitialized(ServletContextEvent sce) {
ApplicationContext appContext = WebApplicationContextUtils.getWebApplicationContext(sce.getServletContext());
logger.info("----------字典表初始化开始----------");
DictionaryService dictionaryService = (DictionaryService)appContext.getBean("dictionaryService");
List<DictionaryEntity> dictionaryEntities = dictionaryService.selectList(new EntityWrapper<DictionaryEntity>());
Map<String, Map<Integer,String>> map = new HashMap<>();
for(DictionaryEntity d :dictionaryEntities){
Map<Integer, String> m = map.get(d.getDicCode());
if(m ==null || m.isEmpty()){
m = new HashMap<>();
}
m.put(d.getCodeIndex(),d.getIndexName());
map.put(d.getDicCode(),m);
}
sce.getServletContext().setAttribute("dictionaryMap", map);
logger.info("----------字典表初始化完成----------");
logger.info("----------线程执行开始----------");
if (myThreadMethod == null) {
myThreadMethod = new MyThreadMethod();
myThreadMethod.start(); // servlet 上下文初始化时启动线程myThreadMethod
}
logger.info("----------线程执行结束----------");
}
}
数据库SQL:
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for config
-- ----------------------------
DROP TABLE IF EXISTS `config`;
CREATE TABLE `config` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(100) NOT NULL COMMENT '配置参数名称',
`value` varchar(100) DEFAULT NULL COMMENT '配置参数值',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='配置文件';
-- ----------------------------
-- Records of config
-- ----------------------------
BEGIN;
COMMIT;
-- ----------------------------
-- Table structure for dictionary
-- ----------------------------
DROP TABLE IF EXISTS `dictionary`;
CREATE TABLE `dictionary` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`dic_code` varchar(200) DEFAULT NULL COMMENT '字段',
`dic_name` varchar(200) DEFAULT NULL COMMENT '字段名',
`code_index` int(11) DEFAULT NULL COMMENT '编码',
`index_name` varchar(200) DEFAULT NULL COMMENT '编码名字 Search111 ',
`super_id` int(11) DEFAULT NULL COMMENT '父字段id',
`beizhu` varchar(200) DEFAULT NULL COMMENT '备注',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=50 DEFAULT CHARSET=utf8 COMMENT='字典';
-- ----------------------------
-- Records of dictionary
-- ----------------------------
BEGIN;
INSERT INTO `dictionary` (`id`, `dic_code`, `dic_name`, `code_index`, `index_name`, `super_id`, `beizhu`, `create_time`) VALUES (33, 'sex_types', '性别类型', 1, '男', NULL, NULL, '2022-05-07 16:18:14');
INSERT INTO `dictionary` (`id`, `dic_code`, `dic_name`, `code_index`, `index_name`, `super_id`, `beizhu`, `create_time`) VALUES (34, 'sex_types', '性别类型', 2, '女', NULL, NULL, '2022-05-07 16:18:14');
INSERT INTO `dictionary` (`id`, `dic_code`, `dic_name`, `code_index`, `index_name`, `super_id`, `beizhu`, `create_time`) VALUES (35, 'shengfen_types', '省份', 1, '河南省', NULL, NULL, '2022-05-07 16:18:14');
INSERT INTO `dictionary` (`id`, `dic_code`, `dic_name`, `code_index`, `index_name`, `super_id`, `beizhu`, `create_time`) VALUES (36, 'shengfen_types', '省份', 2, '河北省', NULL, NULL, '2022-05-07 16:18:14');
INSERT INTO `dictionary` (`id`, `dic_code`, `dic_name`, `code_index`, `index_name`, `super_id`, `beizhu`, `create_time`) VALUES (37, 'gonggao_types', '公告类型', 1, '公告类型1', NULL, NULL, '2022-05-07 16:18:14');
INSERT INTO `dictionary` (`id`, `dic_code`, `dic_name`, `code_index`, `index_name`, `super_id`, `beizhu`, `create_time`) VALUES (38, 'gonggao_types', '公告类型', 2, '公告类型2', NULL, NULL, '2022-05-07 16:18:14');
INSERT INTO `dictionary` (`id`, `dic_code`, `dic_name`, `code_index`, `index_name`, `super_id`, `beizhu`, `create_time`) VALUES (39, 'jiezhong_types', '是否接种疫苗', 1, '已接种疫苗', NULL, NULL, '2022-05-07 16:18:14');
INSERT INTO `dictionary` (`id`, `dic_code`, `dic_name`, `code_index`, `index_name`, `super_id`, `beizhu`, `create_time`) VALUES (40, 'jiezhong_types', '是否接种疫苗', 2, '未接种疫苗', NULL, NULL, '2022-05-07 16:18:14');
INSERT INTO `dictionary` (`id`, `dic_code`, `dic_name`, `code_index`, `index_name`, `super_id`, `beizhu`, `create_time`) VALUES (41, 'ganran_types', '感染状态', 1, '无症状', NULL, NULL, '2022-05-07 16:18:14');
INSERT INTO `dictionary` (`id`, `dic_code`, `dic_name`, `code_index`, `index_name`, `super_id`, `beizhu`, `create_time`) VALUES (42, 'ganran_types', '感染状态', 2, '无症状感染', NULL, NULL, '2022-05-07 16:18:14');
INSERT INTO `dictionary` (`id`, `dic_code`, `dic_name`, `code_index`, `index_name`, `super_id`, `beizhu`, `create_time`) VALUES (43, 'ganran_types', '感染状态', 3, '出现肺炎', NULL, NULL, '2022-05-07 16:18:14');
INSERT INTO `dictionary` (`id`, `dic_code`, `dic_name`, `code_index`, `index_name`, `super_id`, `beizhu`, `create_time`) VALUES (44, 'ganran_types', '感染状态', 4, '治愈隔离', NULL, NULL, '2022-05-07 16:18:14');
INSERT INTO `dictionary` (`id`, `dic_code`, `dic_name`, `code_index`, `index_name`, `super_id`, `beizhu`, `create_time`) VALUES (45, 'ganran_types', '感染状态', 5, '死亡', NULL, NULL, '2022-05-07 16:18:14');
INSERT INTO `dictionary` (`id`, `dic_code`, `dic_name`, `code_index`, `index_name`, `super_id`, `beizhu`, `create_time`) VALUES (46, 'zhen_types', '第几针', 1, '第一针', NULL, NULL, '2022-05-07 16:18:14');
INSERT INTO `dictionary` (`id`, `dic_code`, `dic_name`, `code_index`, `index_name`, `super_id`, `beizhu`, `create_time`) VALUES (47, 'zhen_types', '第几针', 2, '第二针', NULL, NULL, '2022-05-07 16:18:14');
INSERT INTO `dictionary` (`id`, `dic_code`, `dic_name`, `code_index`, `index_name`, `super_id`, `beizhu`, `create_time`) VALUES (48, 'zhen_types', '第几针', 3, '第三针', NULL, NULL, '2022-05-07 16:18:14');
INSERT INTO `dictionary` (`id`, `dic_code`, `dic_name`, `code_index`, `index_name`, `super_id`, `beizhu`, `create_time`) VALUES (49, 'zhen_types', '第几针', 4, '第四针', NULL, NULL, '2022-05-07 04:44:27');
COMMIT;
-- ----------------------------
-- Table structure for gonggao
-- ----------------------------
DROP TABLE IF EXISTS `gonggao`;
CREATE TABLE `gonggao` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
`gonggao_name` varchar(200) DEFAULT NULL COMMENT '公告名称 Search111 ',
`gonggao_types` int(11) NOT NULL COMMENT '公告类型 Search111 ',
`insert_time` timestamp NULL DEFAULT NULL COMMENT '公告发布时间 ',
`gonggao_content` text COMMENT '公告详情 ',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='公告';
-- ----------------------------
-- Records of gonggao
-- ----------------------------
BEGIN;
INSERT INTO `gonggao` (`id`, `gonggao_name`, `gonggao_types`, `insert_time`, `gonggao_content`, `create_time`) VALUES (1, '公告名称1', 1, '2022-05-07 16:20:30', '公告详情1', '2022-05-07 16:20:30');
INSERT INTO `gonggao` (`id`, `gonggao_name`, `gonggao_types`, `insert_time`, `gonggao_content`, `create_time`) VALUES (2, '公告名称2', 2, '2022-05-07 16:20:30', '公告详情2', '2022-05-07 16:20:30');
INSERT INTO `gonggao` (`id`, `gonggao_name`, `gonggao_types`, `insert_time`, `gonggao_content`, `create_time`) VALUES (3, '公告名称3', 2, '2022-05-07 16:20:30', '公告详情3', '2022-05-07 16:20:30');
INSERT INTO `gonggao` (`id`, `gonggao_name`, `gonggao_types`, `insert_time`, `gonggao_content`, `create_time`) VALUES (4, '公告名称4', 1, '2022-05-07 16:20:30', '公告详情4', '2022-05-07 16:20:30');
INSERT INTO `gonggao` (`id`, `gonggao_name`, `gonggao_types`, `insert_time`, `gonggao_content`, `create_time`) VALUES (5, '公告名称5', 1, '2022-05-07 16:20:30', '<p>公告详情5所得到的</p>', '2022-05-07 16:20:30');
COMMIT;
-- ----------------------------
-- Table structure for huanzhe
-- ----------------------------
DROP TABLE IF EXISTS `huanzhe`;
CREATE TABLE `huanzhe` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`username` varchar(200) DEFAULT NULL COMMENT '账户',
`password` varchar(200) DEFAULT NULL COMMENT '密码',
`huanzhe_uuid_number` varchar(200) DEFAULT NULL COMMENT '患者唯一编号 Search111 ',
`huanzhe_name` varchar(200) DEFAULT NULL COMMENT '患者姓名 Search111 ',
`huanzhe_phone` varchar(200) DEFAULT NULL COMMENT '患者手机号',
`huanzhe_id_number` varchar(200) DEFAULT NULL COMMENT '患者身份证号',
`huanzhe_photo` varchar(200) DEFAULT NULL COMMENT '患者头像',
`sex_types` int(11) DEFAULT NULL COMMENT '性别',
`shengfen_types` int(11) DEFAULT NULL COMMENT '省份 Search111 ',
`huanzhe_email` varchar(200) DEFAULT NULL COMMENT '电子邮箱',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='患者';
-- ----------------------------
-- Records of huanzhe
-- ----------------------------
BEGIN;
INSERT INTO `huanzhe` (`id`, `username`, `password`, `huanzhe_uuid_number`, `huanzhe_name`, `huanzhe_phone`, `huanzhe_id_number`, `huanzhe_photo`, `sex_types`, `shengfen_types`, `huanzhe_email`, `create_time`) VALUES (1, 'a1', '123456', '165191163095531', '患者姓名1', '17703786901', '410224199610232001', 'http://localhost:8080/huanzheguanlixitong/upload/huanzhe1.jpg', 2, 2, '1@qq.com', '2022-05-07 16:20:30');
INSERT INTO `huanzhe` (`id`, `username`, `password`, `huanzhe_uuid_number`, `huanzhe_name`, `huanzhe_phone`, `huanzhe_id_number`, `huanzhe_photo`, `sex_types`, `shengfen_types`, `huanzhe_email`, `create_time`) VALUES (2, 'a2', '123456', '165191163095591', '患者姓名2', '17703786902', '410224199610232002', 'http://localhost:8080/huanzheguanlixitong/upload/huanzhe2.jpg', 2, 2, '2@qq.com', '2022-05-07 16:20:30');
INSERT INTO `huanzhe` (`id`, `username`, `password`, `huanzhe_uuid_number`, `huanzhe_name`, `huanzhe_phone`, `huanzhe_id_number`, `huanzhe_photo`, `sex_types`, `shengfen_types`, `huanzhe_email`, `create_time`) VALUES (3, 'a3', '123456', '165191163095520', '患者姓名3', '17703786903', '410224199610232003', 'http://localhost:8080/huanzheguanlixitong/upload/huanzhe3.jpg', 2, 1, '3@qq.com', '2022-05-07 16:20:30');
COMMIT;