基于SpringBoot2+Vue2的常规应急物资管理系统
温馨提示:
本文最后更新于 2026年05月31日,已超过 10 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
1. 资源
浏览全文可获取
2. 项目简介
“常规应急物资管理系统”,是一个面向企事业单位、应急管理部门的物资管理平台。系统旨在实现应急物资的信息化管理,包括物资库存、物资申请、物资运输跟踪、部门管理、用户健康打卡等功能。系统采用前后端分离架构,提供管理员和普通用户两种角色,支持物资的全流程管控与数据可视化统计。
3. 技术栈
| 技术 | 版本/说明 |
|---|---|
| 后端框架 | Spring Boot 2.2.2.RELEASE |
| 持久层框架 | MyBatis-Plus 2.3 |
| 安全框架 | Apache Shiro 1.3.2 |
| 数据库 | MySQL 5.7.32-log |
| 前端框架 | Vue.js (基于 Vue CLI) |
| UI组件库 | Element UI |
| 数据可视化 | ECharts |
| 其他工具 | Fastjson, Hutool, Apache POI (Excel导入导出) |
| 构建工具 | Maven |
4. 详细介绍
4.1 功能模块
系统分为两大角色:管理员 和 用户。
4.1.1 管理员功能
- 部门管理:维护部门信息(部门名称、职责、人数、介绍)。
- 物资管理:管理物资基本信息(物资名称、类型、库存、单位、介绍),支持增删改查、逻辑删除。
- 物资类型管理(基础数据管理):维护物资类型的字典值。
- 物资申请管理:查看用户的物资申请单,审核(同意/拒绝)并填写审核意见。
- 物资运输管理:创建运输单,记录运输唯一编号、去向、数量、运输状态(装车/已装车/发车/到达/卸载),支持运输状态更新。
- 健康打卡管理:查看所有用户的健康打卡记录。
- 用户管理:管理系统用户(普通用户),支持重置密码。
- 报表统计:通过 ECharts 展示物资库存、申请、运输等统计图表(根据
CommonController中的图表接口实现)。
4.1.2 用户功能
- 健康打卡:每日打卡,填写备注,日期不可重复。
- 物资查看:浏览物资列表,查看库存及详情。
- 物资申请:提交物资申请单,填写申请数量、详情,等待管理员审核。
- 物资运输查看:查看运输中的物资状态(去向、数量、当前状态)。
- 个人中心:修改个人信息、修改密码。
4.2 数据库设计
| 表名 | 说明 |
|---|---|
bumen |
部门表 |
yonghu |
用户表(账号、密码、所属部门等) |
wuzi |
物资表(含逻辑删除字段) |
wuzishenqing |
物资申请表(关联用户和物资,审核状态) |
wuziyunshu |
物资运输表(关联物资,运输状态) |
daka |
健康打卡表 |
dictionary |
字典表(存储枚举值的中文映射,如性别、物资类型、申请状态、运输状态) |
users |
管理员表 |
token |
登录 token 表 |
config |
配置表(如百度地图AK等) |
4.3 核心业务逻辑
- 物资库存变化:当物资申请审核通过后,系统应减少对应物资的库存(需代码补充,当前文件中未完全实现自动扣减,需管理员手动调整库存或通过运输管理)。
- 运输状态流转:运输单支持状态更新(在装车 → 已装车 → 已发车 → 已到达 → 已卸载)。
- 打卡限制:同一用户同一天只能打卡一次(通过
insert_time日期唯一性校验)。 - 用户唯一性:用户名、手机号、身份证号均不可重复。
- 权限控制:基于 Shiro 和自定义
AuthorizationInterceptor,使用 Token 进行身份验证,未登录返回 401。
4.4 项目结构
changguiyingji/
├── src/main/java/com/
│ ├── changguiyingjiApplication.java # 启动类
│ ├── annotation/ # 自定义注解 (@IgnoreAuth, @LoginUser)
│ ├── config/ # 配置类 (拦截器, MyBatis-Plus, 静态资源)
│ ├── controller/ # 控制器 (Bumen, Wuzi, Daka, Users, Common等)
│ ├── dao/ # MyBatis DAO接口
│ ├── entity/ # 实体类及VO/View/Model
│ ├── interceptor/ # 权限拦截器
│ ├── service/ # 服务接口及实现
│ ├── thread/ # 后台线程(预留自动任务)
│ └── utils/ # 工具类 (R, PageUtils, SQLFilter, PoiUtil等)
├── src/main/resources/
│ ├── application.yml # 配置文件 (数据库连接, mybatis-plus)
│ ├── mapper/ # MyBatis XML映射文件
│ └── admin/admin/ # Vue前端源码 (src目录)
│ ├── src/views/modules/ # 各模块页面
│ └── src/router/router-static.js # 静态路由配置
└── pom.xml # Maven依赖
5. 部分代码
5.1 后端 - 物资申请保存接口(WuzishenqingController.save)
@RequestMapping("/save")
public R save(@RequestBody WuzishenqingEntity wuzishenqing, HttpServletRequest request){
logger.debug("save方法:,,Controller:{},,wuzishenqing:{}", this.getClass().getName(), wuzishenqing.toString());
String role = String.valueOf(request.getSession().getAttribute("role"));
if(false) return R.error(511,"永远不会进入");
else if("用户".equals(role))
wuzishenqing.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
wuzishenqing.setInsertTime(new Date());
wuzishenqing.setWuzishenqingYesnoTypes(1); // 默认待审核
wuzishenqing.setCreateTime(new Date());
wuzishenqingService.insert(wuzishenqing);
return R.ok();
}
5.2 前端 - 路由配置片段(router-static.js)
import users from '@/views/modules/users/list'
import bumen from '@/views/modules/bumen/list'
import daka from '@/views/modules/daka/list'
import wuzi from '@/views/modules/wuzi/list'
import wuzishenqing from '@/views/modules/wuzishenqing/list'
import wuziyunshu from '@/views/modules/wuziyunshu/list'
import yonghu from '@/views/modules/yonghu/list'
// ... 省略
const routes = [{
path: '/index',
name: '首页',
component: Index,
children: [ ... ]
}]
5.3 数据库建表示例(部门表)
CREATE TABLE `bumen` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`bumen_name` varchar(200) DEFAULT NULL COMMENT '部门名称',
`bumen_zhize` varchar(200) DEFAULT NULL COMMENT '部门职责',
`bumen_number` int(11) DEFAULT NULL COMMENT '部门人数',
`bumen_content` text COMMENT '部门介绍',
`insert_time` timestamp NULL DEFAULT NULL COMMENT '添加时间',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='部门';
5. 部分截图
















7. 项目总结
本系统实现了常规应急物资管理所需的完整业务流程,覆盖物资信息管理、物资申请审批、物资运输跟踪、部门管理及健康打卡等实用功能。系统采用 Spring Boot + MyBatis-Plus 构建高效的后端 API,前端使用 Vue + Element UI 提供友好的管理界面,通过 Token 机制保障接口安全。
整体而言,该系统可稳定运行,适合作为常规应急物资管理的初期解决方案,并具备良好的扩展性。
正文到此结束
- 本文标签: Spring Spring Boot 毕业设计
- 本文链接: https://blog.xiaobias.com/article/40
- 版权声明: 本文由十五喵原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
