基于springboot2+vue2的疫情隔离管理系统
1. 参考文章
浏览全文可获取资源
2. 项目简介
疫情隔离管理系统是一套面向疫情隔离管理场景的Web应用系统,主要服务于管理员、供应商和普通用户三个角色。系统通过线上化的方式管理用户隔离信息、行程轨迹、物资申请与审批、问题反馈等核心业务,实现隔离期间人员管控与物资保障的高效协同。
系统功能覆盖:地区风险等级维护、用户行程记录、隔离状态管理、隔离结束申请审批、物品发布与库存管理、物品申请审批、用户问题及供应商问题反馈处理。系统采用前后端分离架构,后端提供RESTful API,前端基于Vue.js实现管理界面。
3. 技术栈
| 层次 | 技术选型 |
|---|---|
| 后端框架 | Spring Boot 2.2.2.RELEASE |
| ORM框架 | MyBatis-Plus 2.3 |
| 权限控制 | Apache Shiro 1.3.2 |
| 数据库 | MySQL 5.7.32 |
| 前端框架 | Vue.js + Element UI |
| 构建工具 | Maven |
4. 详细介绍
4.1 角色与权限
系统共包含三种角色,不同角色拥有不同的功能模块访问权限:
4.1.1 管理员
- 基础数据管理:供应商问题类型、用户问题类型、物品类型等字典维护
- 地区管理:地区名称、风险等级(低/中/高风险)及详情
- 用户管理:查看、新增、修改、删除用户信息
- 供应商管理:查看、新增、修改、删除供应商信息
- 行程管理:查看所有用户的行程记录
- 用户问题管理:查看、回复、删除用户问题
- 供应商问题管理:查看、回复、删除供应商问题
- 隔离管理:查看、新增、修改、删除隔离记录
- 隔离结束申请管理:查看、审核(同意/拒绝)、删除申请
- 物品管理:查看、新增、修改、删除物品
- 物品申请管理:查看、审核物品申请
4.1.2 供应商
- 供应商问题管理:提交问题、查看回复
- 物品管理:发布、修改、删除自己供应的物品
- 物品申请管理:查看用户申请,进行审核(同意/拒绝)
4.1.3 用户
- 隔离管理:查看本人的隔离记录
- 隔离结束申请管理:发起隔离结束申请,查看申请状态
- 物品管理:浏览物品列表
- 物品申请管理:申请物品,查看申请记录
- 行程管理:新增、修改、删除本人的行程记录
- 用户问题管理:提交问题、查看管理员回复
4.2 核心功能模块
4.2.1 地区与风险等级管理
管理员可维护地区信息,每个地区关联一个风险等级(低风险、中风险、高风险)。用户行程中可选择经过的地区,系统可据此进行风险研判。
4.2.2 行程管理
用户可添加行程记录,包括经过的地区、经过时间、行程备注。管理员可查看所有用户的行程。
4.2.3 隔离管理
管理员可为用户指派隔离类型(居家隔离/隔离点隔离),并记录隔离时间。系统保证同一用户只能有一条有效的隔离记录。
4.2.4 隔离结束申请
用户在隔离期间可提交隔离结束申请,填写申请内容。管理员收到申请后可选择“同意”或“拒绝”,并填写审核意见。
4.2.5 物品与库存管理
供应商可以发布物品(名称、照片、类型、库存数量、介绍)。用户可浏览物品并发起申请(填写申请数量、详情)。供应商/管理员审核申请时,若同意则会自动扣减库存,申请数量不能大于库存数量。
4.2.6 问题反馈
- 用户问题:用户选择问题类型(如问题类型1/2/3),填写问题详情;管理员可回复。
- 供应商问题:供应商同样可提交问题,管理员回复。
4.2.7 字典管理
系统通过dictionary表统一管理各类下拉选项(性别、风险等级、隔离类型、申请状态、物品类型、问题类型等),支持动态增删改。
4.3 数据库设计概要
| 表名 | 说明 |
|---|---|
yonghu |
用户表(账户、密码、姓名、手机号、身份证、头像、性别、邮箱) |
gongyingshang |
供应商表(账户、密码、名称、地址、介绍) |
diqu |
地区表(地区名称、风险等级、详情) |
xingcheng |
行程表(用户、地区、备注、经过时间) |
geli |
隔离表(用户、隔离类型、备注、隔离时间) |
gelishenqing |
隔离结束申请表(用户、申请内容、状态、审核意见、申请时间) |
wupin |
物品表(供应商、名称、照片、类型、库存、逻辑删除、介绍) |
wupin_shenqing |
物品申请表(申请流水号、用户、物品、申请数量、详情、状态、审核意见) |
yonghuwenti |
用户问题表(用户、问题名称、类型、详情、回复内容) |
gongyingshangwenti |
供应商问题表(供应商、问题名称、类型、详情、回复内容) |
dictionary |
字典表(字段编码、编码索引、索引名称等) |
users |
管理员表 |
token |
登录token表 |
5. 部分代码
5.1 物品申请审批核心逻辑(Controller层)
// WupinShenqingController.java - 审批处理方法
@RequestMapping("/shenqing")
public R shenqing(@RequestBody WupinShenqingEntity wupinShenqing, HttpServletRequest request){
// 若审批同意(状态为2)
if(wupinShenqing.getWupinShenqingYesnoTypes().intValue() == 2){
WupinShenqingEntity wupinShenqingEntity = wupinShenqingService.selectById(wupinShenqing.getId());
WupinEntity wupinEntity = wupinService.selectById(wupinShenqingEntity.getWupinId());
if(wupinEntity == null)
return R.error(511,"查不到申请物品");
int shengyu = wupinEntity.getWupinKucunNumber() - wupinShenqingEntity.getWupinShenqingNumber();
if(shengyu<0)
return R.error(511,"申请数量不能大于库存数量");
wupinEntity.setWupinKucunNumber(shengyu);
wupinService.updateById(wupinEntity);
}
wupinShenqingService.updateById(wupinShenqing);
return R.ok();
}
5.2 用户隔离唯一性校验(Service层保存方法)
// GeliController.java - 保存隔离记录时检查是否已隔离
Wrapper<GeliEntity> queryWrapper = new EntityWrapper<GeliEntity>()
.eq("yonghu_id", geli.getYonghuId());
GeliEntity geliEntity = geliService.selectOne(queryWrapper);
if(geliEntity==null){
geli.setInsertTime(new Date());
geli.setCreateTime(new Date());
geliService.insert(geli);
return R.ok();
}else {
return R.error(511,"该用户已隔离");
}
5.3 字典表值转换工具方法
// DictionaryServiceImpl.java - 将Types字段转换为Value显示名称
public void dictionaryConvert(Object obj, HttpServletRequest request) {
// 获取所有以"Types"结尾的Integer字段
// 通过ServletContext中的dictionaryMap映射为对应的index_name
// 设置到对应的"Value"字段中
}
5.4 MyBatis-Plus 分页查询XML示例
<!-- GeliDao.xml - 多表联查并支持动态条件 -->
<select id="selectListView" resultType="com.entity.view.GeliView">
SELECT ...
FROM geli a
left JOIN yonghu yonghu ON a.yonghu_id = yonghu.id
<where>
<if test="params.yonghuId != null">
and a.yonghu_id = #{params.yonghuId}
</if>
<if test="params.geliTypes != null">
and a.geli_types = #{params.geliTypes}
</if>
...
</where>
order by a.${params.orderBy} desc
</select>
6. 部分截图




















7. 项目总结
疫情隔离管理系统是一个功能较为完整、角色划分清晰的Web应用,覆盖了隔离管理中的核心业务流程:人员信息管理、行程追溯、隔离状态控制、物资申请与分发、问题反馈等。
- 业务完整性:系统从“隔离前(行程记录)→ 隔离中(隔离记录、物资申请、问题反馈)→ 隔离结束(申请解隔)”形成闭环管理。
- 权限设计合理:管理员、供应商、用户各司其职,供应商可自主管理物资,用户可自查信息并提出申请。
- 技术实现规范:采用Spring Boot + MyBatis-Plus + Vue主流技术栈,通过token实现无状态认证,字典表动态维护下拉选项,支持Excel批量导入导出。
- 可扩展性:通过dictionary表统一管理枚举值,新增选项无需修改代码;逻辑删除字段保证数据可恢复。
该项目可作为中小型社区或单位疫情隔离管理的信息化工具,也可作为学习Spring Boot + Vue前后端分离项目的参考案例。
- 本文标签: Java Spring Boot Spring
- 本文链接: https://blog.xiaobias.com/article/27
- 版权声明: 本文由十五喵原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
