基于SpringBoot2+vue2的中小企业设备管理系统
1. 资源
放到文章最后面
2. 项目简介
中小企业设备管理系统,基于 Spring Boot + MyBatis-Plus + Vue.js 开发。系统旨在帮助中小企业对设备及配件进行全生命周期管理,包括设备信息登记、购买、点检、润滑、改造、报修、安装、售后保养与检修,以及配件信息管理、配件购买等功能。系统设计了三种角色:管理员、用户(企业客户)、员工(企业运维人员),不同角色拥有差异化的操作权限。
3. 技术栈
| 层次 | 技术选型 |
|---|---|
| 后端框架 | Spring Boot 2.2.2.RELEASE |
| ORM 框架 | MyBatis-Plus 2.3 + MyBatis Spring Boot Starter 2.1.1 |
| 安全框架 | Apache Shiro 1.3.2(集成权限控制) |
| 数据库 | MySQL 5.7(主) / SQL Server 可选 |
| 连接池 | Spring Boot 默认 JDBC |
| 工具库 | Hutool 4.0.12、Fastjson 1.2.8、Commons Lang3、Commons IO、Protobuf、百度 AI SDK(人脸识别) |
| 前端框架 | Vue.js(基于 Vue CLI)、Element UI、ECharts、vue-amap(高德地图)、axios |
| 其他 | MD5 加密(js-md5 + 后端 MD5Util)、Token 认证、跨域支持、文件上传下载 |
4. 详细介绍
4.1 系统角色与权限
管理员
拥有全部管理权限,包括用户管理、员工管理、设备/配件信息管理、设备购买审核、配件购买审核、设备点检/润滑/改造记录查看、事务报警管理、设备类型维护等。用户(普通企业客户)
可以查看设备/配件信息并发起购买,查看自己的购买订单(支持支付),发起设备报修,查看售后检修、保养、安装的审核状态。员工(企业内部运维人员)
可以对设备进行点检、润滑、改造操作,处理设备报修单并生成售后检修/保养记录,管理设备安装记录,新增事务报警等。
4.2 核心功能模块
| 模块名称 | 功能说明 |
|---|---|
| 用户管理 | 管理企业用户账号(账号、姓名、手机、身份证等),支持登录、注册、密码重置。 |
| 员工管理 | 管理员工账号(工号、姓名、部门、手机等)。 |
| 设备信息管理 | 维护设备基础信息(编号、名称、类型、品牌、规格、生产厂家、价格、详情等),支持新增、修改、删除、查看。 |
| 配件信息管理 | 维护配件信息(编号、名称、类型、规格、作用描述、价格等)。 |
| 设备购买 | 用户发起设备购买申请(选择设备、填写数量、自动计算总价),管理员审核,用户支付(模拟)。生成购买订单,记录购买日期。 |
| 配件购买 | 类似设备购买,管理配件购买订单。 |
| 设备点检 | 员工对设备进行点检,记录点检项目、内容、日期。管理员可查看所有点检记录。 |
| 设备润滑 | 员工记录设备润滑部位、润滑油种类、加油量、润滑周期等。 |
| 设备改造 | 员工记录设备改造原因、改造内容、验收情况、日期。 |
| 设备报修 | 用户提交报修单(设备编号、损坏情况、报修内容),管理员/员工处理并反馈审核。 |
| 售后检修 | 根据报修单生成检修记录(维修内容、结果、日期),支持审核。 |
| 售后保养 | 记录设备保养内容、日期,支持审核。 |
| 设备安装 | 记录设备安装内容、调试结果、安装时间,支持审核。 |
| 事务报警 | 员工上报报警项目、时间、原因、处理情况等。 |
| 设备类型 | 管理员维护设备类型字典。 |
| 登录/注册 | 支持管理员后台登录、用户/员工登录注册,使用 Token 认证。 |
| 统计与提醒 | 提供按列统计、分组统计、值统计接口;提供提醒功能(如按日期字段提醒)。 |
| 通用接口 | 动态表单联动(/option/{table}/{column})、审核状态修改(/sh/{tableName})、数据汇总(/cal、/group、/value)等。 |
4.3 数据库设计(核心表)
yonghu– 用户表(账号、密码、姓名、性别、手机、邮箱、身份证)yuangong– 员工表(工号、密码、员工姓名、性别、部门、手机、邮箱、身份证)shebeixinxi– 设备信息表peijianxinxi– 配件信息表shebeigoumai– 设备购买订单表(含审核状态、支付状态)peijiangoumai– 配件购买订单表shebeibaoxiu– 设备报修表shouhoujianxiu– 售后检修表shouhoubaoyang– 售后保养表shebeianzhuang– 设备安装表shebeidianjian– 设备点检表shebeirunhua– 设备润滑表shebeigaizao– 设备改造表shiwubaojing– 事务报警表shebeileixing– 设备类型字典表users– 系统管理员表token– Token 认证表config– 系统配置表(如首页轮播图、百度地图 AK、人脸识别密钥等)
5. 部分代码
5.1 后端核心类示例
设备信息实体 (ShebeixinxiEntity.java)
@TableName("shebeixinxi")
public class ShebeixinxiEntity<T> implements Serializable {
@TableId
private Long id;
private String shebeibianhao; // 设备编号
private String shebeimingcheng; // 设备名称
private String shebeileixing; // 设备类型
private String pinpai; // 品牌
private String guige; // 规格
private String shengchanchangjia;// 生产厂家
private String shebeijianjie; // 设备简介
private Integer jiage; // 价格
private String xiangqing; // 详情
private Date dengjishijian; // 登记时间
// getters/setters ...
}
设备购买控制器 (ShebeigoumaiController.java)
@RestController
@RequestMapping("/shebeigoumai")
public class ShebeigoumaiController {
@Autowired
private ShebeigoumaiService shebeigoumaiService;
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,
ShebeigoumaiEntity shebeigoumai,
HttpServletRequest request) {
String tableName = request.getSession().getAttribute("tableName").toString();
if (tableName.equals("yonghu")) {
shebeigoumai.setZhanghao((String) request.getSession().getAttribute("username"));
}
EntityWrapper<ShebeigoumaiEntity> ew = new EntityWrapper<>();
PageUtils page = shebeigoumaiService.queryPage(params,
MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, shebeigoumai), params), params));
return R.ok().put("data", page);
}
// save, update, delete ...
}
Token 生成逻辑 (TokenServiceImpl.java)
@Override
public String generateToken(Long userid, String username, String tableName, String role) {
TokenEntity tokenEntity = this.selectOne(new EntityWrapper<TokenEntity>()
.eq("userid", userid).eq("role", role));
String token = CommonUtil.getRandomString(32);
Calendar cal = Calendar.getInstance();
cal.add(Calendar.HOUR_OF_DAY, 1);
if (tokenEntity != null) {
tokenEntity.setToken(token);
tokenEntity.setExpiratedtime(cal.getTime());
this.updateById(tokenEntity);
} else {
this.insert(new TokenEntity(userid, username, tableName, role, token, cal.getTime()));
}
return token;
}
5.2 前端核心代码
路由配置 (router-static.js)
const routes = [{
path: '/index',
component: Index,
children: [
{ path: '/', component: Home },
{ path: '/updatePassword', component: UpdatePassword },
{ path: '/shebeixinxi', component: shebeixinxi },
{ path: '/shebeigoumai', component: shebeigoumai },
// ... 其他模块路由
]
}, {
path: '/login', component: Login
}];
API 请求封装 (http.js)
const http = axios.create({
timeout: 1000 * 86400,
withCredentials: true,
baseURL: '/springbootu6123',
headers: { 'Content-Type': 'application/json; charset=utf-8' }
});
http.interceptors.request.use(config => {
config.headers['Token'] = storage.get('Token');
return config;
});
菜单权限控制 (menu.js 片段)
const menu = {
list() {
return [
{ roleName: "管理员", backMenu: [
{ menu: "用户管理", child: [{ menu: "用户", tableName: "yonghu", buttons: ["新增","查看","修改","删除"] }] },
{ menu: "设备信息管理", child: [{ menu: "设备信息", tableName: "shebeixinxi", buttons: ["新增","查看","修改","删除"] }] },
// ...
]},
{ roleName: "用户", backMenu: [...] },
{ roleName: "员工", backMenu: [...] }
];
}
};
6. 部分截图


























7. 项目总结
中小企业设备管理系统为一个功能完整的中小企业设备管理平台,涵盖了设备与配件的采购、维护、报修、改造等核心业务环节。通过合理的角色划分(管理员、用户、员工)和细粒度的按钮级权限控制,满足了不同用户群体的操作需求。技术选型成熟:后端使用 Spring Boot + MyBatis-Plus 快速开发,Shiro 负责认证授权;前端基于 Vue + Element UI 构建后台管理界面,并集成了 ECharts 图表、高德地图、百度人脸比对等扩展能力。项目代码结构清晰,分层合理(Controller、Service、Dao、Entity),提供了通用接口(联动、审核、统计、提醒)方便二次开发。数据库设计符合业务逻辑,支持 MySQL 和 SQL Server 双数据库配置。整体上,该系统具备较高的实用性和可维护性,适合作为中小型企业设备管理信息化解决方案的参考实现。
- 本文标签: Java Spring Boot 毕业设计
- 本文链接: https://blog.xiaobias.com/article/57
- 版权声明: 本文由十五喵原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
