摘要:高校后勤报修长期存在电话/纸质登记分散、进度不透明、派单依赖人工经验、超时难追溯等问题。本文设计并实现高校校园报修与后勤工单系统,面向管理员、维修工与师生用户三类角色,构建“小程序报修—管理端派单—维修处理—确认评价—绩效统计”的闭环。系统采用 Spring Boot、MyBatis-Plus、JWT、MySQL 与 Vue、Element Plus 管理端及 uni-app 小程序实现前后端分离;支持报修类型与服务区域基础数据维护、工单全生命周期管理、区域优先与负载均衡的智能派单预览、SLA 规则配置与超时预警、配件库存管理、维修工绩效排名,以及基于大模型的智能报修助手(故障描述推荐类型与紧急程度,失败时关键词兜底)。全文从需求分析、相关技术、系统设计、数据库与接口、测试验证等方面阐述,为校园后勤数字化提供可演示、可扩展的实现方案。

技术栈:Spring Boot3+uni-app+Vue3+uViewPlus+Vite+MybatsiPlus+Echarts+微信小程序

数据库表:13张

创新点:区域优先与负载均衡的智能派单分析、AI大模型驱动的智能报修助手、可配置 SLA 与超时预警联动工单、工单全生命周期过程跟踪与消息触达

演示视频

高校校园报修与后勤工单系统

🍅文末获取联系🍅

🍅文末获取联系🍅

作者介绍:专注计算机编程,个人开发,坚持原创非工作室源码全网唯一

技术主流:SpringBoot+Vue+uni-app前后端分离,MySQL,Echarts,可本地运行

配套资料:源码 + 数据库 + 实验报告/论文 + 答辩 PPT+部署演示+远程调试+问题解答

技术范围:SpringBoot、Vue、数据可视化、小程序、HLMT、Nodejs、uni-app、MySQL数据库、ElementUi等设计与开发。

适用范围:软件工程、软件技术、计算机科学与技术、大数据、云计算、JavaWeb开发、JavaEE、Java、Web应用开发、动态网页设计、小程序的毕设参考

开发文档创新点说明、功能需求分析、数据库表结构设计、后端接口设计、创新点代码分析

功能展示

小程序

序号

菜单名称

功能描述

1

首页概览

展示快捷报修入口、报修类型入口、未读消息与公告摘要,方便师生一键发起报修。

2

提交报修

填写标题、类型、区域、位置、描述与现场图片并提交,生成待派单工单。

3

智能报修分析

在提交页选择模型对故障描述做 AI 分析,一键填入推荐报修类型并提示紧急程度。

4

我的报修

按状态筛选查看个人工单进度、SLA 提示,并进入详情跟踪。

5

工单详情与评价

查看派单与处理时间线,完工后确认并提交服务评价。

6

系统消息

接收派单、完工、超时等站内消息,支持已读与未读角标。

7

公告通知

浏览后勤发布的报修须知与通知公告。

8

个人中心

查看与修改个人资料、修改密码,并管理登录状态。

后台

序号

菜单名称

功能描述

1

数据统计

以图表与指标卡展示工单总量、各状态分布、超时预警与维修效率,为管理员调度与维修工自评提供数据依据。

2

报修类型

维护水电、门窗家具、网络设备等报修分类的启用状态与排序,作为师生提交与 AI 推荐的候选集合。

3

服务区域

维护宿舍楼、教学楼等服务区域,支撑按区域优先筛选维修工与工单归属展示。

4

工单管理

分页查询待派单与处理中工单,支持人工派单与智能派单分析确认,查看进度时间线与 SLA 状态。

5

SLA规则

按报修类型或区域配置响应时限、解决时限与预警提前量,驱动超时预警与考核依据。

6

配件库存

维护常用配件编码、库存与单位,支撑维修过程中的物料消耗管理。

7

维修工管理

维护维修工账号、所属区域与启用状态,为派单候选人池提供基础数据。

8

绩效排名

按完成量、评价均分等维度展示维修工排名,辅助后勤绩效考核。

9

师生用户

查询与维护师生账号信息、启用状态,保障小程序登录与报修主体可追溯。

10

公告管理

发布、下架校园报修相关公告,同步展示于小程序公告列表。

11

管理员账号

维护后台管理员账号与密码重置,保障管理端安全登录。

序号

菜单名称

功能描述

1

数据统计

以图表与指标卡展示工单总量、各状态分布、超时预警与维修效率,为管理员调度与维修工自评提供数据依据。

2

我的工单

维修工查看指派给自己的工单,进行接单、处理反馈、完工登记等操作。

3

收到的评价

集中查看师生对已完工单的评分与评语,支撑服务质量改进。

4

我的绩效

展示个人完成量、评价等统计指标,与管理端排名口径一致便于核对。

数据库及架构

系统数据库设计为:

数据库设计:

/*
 Navicat Premium Data Transfer

 Source Server         : 1
 Source Server Type    : MySQL
 Source Server Version : 50722
 Source Host           : localhost:3306
 Source Schema         : 1vuez_repair_system

 Target Server Type    : MySQL
 Target Server Version : 50722
 File Encoding         : 65001

 Date: 16/08/2026 20:16:34
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for admins
-- ----------------------------
DROP TABLE IF EXISTS `admins`;
CREATE TABLE `admins`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '登录账号',
  `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '登录密码(bcrypt加密)',
  `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '管理员姓名',
  `phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系手机号',
  `enabled` tinyint(4) NULL DEFAULT 1 COMMENT '账号是否启用 0禁用 1启用',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `username`(`username`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统管理员' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for messages
-- ----------------------------
DROP TABLE IF EXISTS `messages`;
CREATE TABLE `messages`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `sender_id` bigint(20) NULL DEFAULT NULL COMMENT '发送人ID,系统消息为NULL',
  `receiver_id` bigint(20) NOT NULL COMMENT '接收人ID',
  `receiver_role` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接收人角色 USER学生 REPAIR_WORKER维修工 ADMIN管理员',
  `title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '消息标题',
  `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '消息内容',
  `read_flag` tinyint(4) NULL DEFAULT 0 COMMENT '已读标记 0未读 1已读',
  `ref_type` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '关联业务类型 repair报修工单',
  `ref_id` bigint(20) NULL DEFAULT NULL COMMENT '关联业务主键ID',
  `created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '消息创建/发送时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 23 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统消息通知' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for notices
-- ----------------------------
DROP TABLE IF EXISTS `notices`;
CREATE TABLE `notices`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '公告标题',
  `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '公告正文内容',
  `status` tinyint(4) NULL DEFAULT 1 COMMENT '公告状态 0下架 1正常发布',
  `created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '公告发布时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '平台公告' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for parts
-- ----------------------------
DROP TABLE IF EXISTS `parts`;
CREATE TABLE `parts`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '配件名称',
  `code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '配件物料编码',
  `stock` int(11) NULL DEFAULT 0 COMMENT '当前库存数量',
  `unit` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '计量单位',
  `enabled` tinyint(4) NULL DEFAULT 1 COMMENT '配件是否启用 0停用 1启用',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '维修配件库存' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for repair_assigns
-- ----------------------------
DROP TABLE IF EXISTS `repair_assigns`;
CREATE TABLE `repair_assigns`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `repair_id` bigint(20) NOT NULL COMMENT '报修工单ID',
  `worker_id` bigint(20) NOT NULL COMMENT '维修工ID',
  `assign_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '派单方式 auto自动派单 manual手动派单',
  `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '派单备注信息',
  `created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '派单时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '工单派单记录' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for repair_evaluates
-- ----------------------------
DROP TABLE IF EXISTS `repair_evaluates`;
CREATE TABLE `repair_evaluates`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `repair_id` bigint(20) NOT NULL COMMENT '报修工单ID',
  `student_id` bigint(20) NOT NULL COMMENT '评价师生用户ID',
  `rating` int(11) NOT NULL COMMENT '星级评分 1~5星',
  `comment` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '文字评价内容',
  `created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '评价提交时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '维修服务评价' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for repair_process
-- ----------------------------
DROP TABLE IF EXISTS `repair_process`;
CREATE TABLE `repair_process`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `repair_id` bigint(20) NOT NULL COMMENT '报修工单ID',
  `step` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '流程步骤 submit提交 assign派单 receive接单 part申领配件 process维修跟进 complete完工 confirm确认 evaluate评价',
  `operator_id` bigint(20) NULL DEFAULT NULL COMMENT '操作人ID',
  `operator_role` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作角色 USER学生 REPAIR_WORKER维修工 ADMIN管理员',
  `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '流程备注说明',
  `created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '操作发生时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 25 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '工单处理流程日志' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for repair_types
-- ----------------------------
DROP TABLE IF EXISTS `repair_types`;
CREATE TABLE `repair_types`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '报修分类名称',
  `sort_order` int(11) NULL DEFAULT 0 COMMENT '前台排序序号',
  `enabled` tinyint(4) NULL DEFAULT 1 COMMENT '分类启用状态 0禁用 1启用',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '报修故障类型' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for repairs
-- ----------------------------
DROP TABLE IF EXISTS `repairs`;
CREATE TABLE `repairs`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键工单ID',
  `student_id` bigint(20) NOT NULL COMMENT '报修师生用户ID',
  `type_id` bigint(20) NULL DEFAULT NULL COMMENT '报修类型ID',
  `area_id` bigint(20) NULL DEFAULT NULL COMMENT '服务区域ID',
  `location` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '故障详细位置',
  `title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '工单标题',
  `description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '故障详细描述',
  `images` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '故障图片地址,本次置空',
  `status` tinyint(4) NULL DEFAULT 0 COMMENT '工单状态 0待派单 1已派单 2维修中 3待确认 4已完成',
  `worker_id` bigint(20) NULL DEFAULT NULL COMMENT '负责维修工ID',
  `sla_deadline` datetime NULL DEFAULT NULL COMMENT 'SLA处理截止时限',
  `sla_warned` tinyint(4) NULL DEFAULT 0 COMMENT '是否超时预警 0未预警 1已预警',
  `sla_overdue` tinyint(4) NULL DEFAULT 0 COMMENT '是否已经超时 0未超时 1已超时',
  `created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '工单提交时间',
  `completed_at` datetime NULL DEFAULT NULL COMMENT '维修工标记完工时间',
  `confirmed_at` datetime NULL DEFAULT NULL COMMENT '师生确认完工时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '报修工单主信息' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for service_areas
-- ----------------------------
DROP TABLE IF EXISTS `service_areas`;
CREATE TABLE `service_areas`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '区域名称',
  `building` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属楼栋信息',
  `sort_order` int(11) NULL DEFAULT 0 COMMENT '前端排序号',
  `enabled` tinyint(4) NULL DEFAULT 1 COMMENT '区域启用状态 0禁用 1启用',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '后勤服务区域' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for sla_rules
-- ----------------------------
DROP TABLE IF EXISTS `sla_rules`;
CREATE TABLE `sla_rules`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `type_id` bigint(20) NULL DEFAULT NULL COMMENT '报修类型ID,NULL代表全局通用',
  `area_id` bigint(20) NULL DEFAULT NULL COMMENT '服务区域ID,NULL代表全局通用',
  `response_hours` int(11) NOT NULL DEFAULT 2 COMMENT '接单响应时限(小时)',
  `resolve_hours` int(11) NOT NULL DEFAULT 24 COMMENT '故障解决最长时限(小时)',
  `warn_before_hours` int(11) NULL DEFAULT 1 COMMENT '超时前多久发送预警通知(小时)',
  `enabled` tinyint(4) NULL DEFAULT 1 COMMENT '规则启用状态 0禁用 1启用',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '工单SLA时效规则' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for students
-- ----------------------------
DROP TABLE IF EXISTS `students`;
CREATE TABLE `students`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '登录账号',
  `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '登录密码bcrypt密文',
  `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户姓名',
  `student_no` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '学号/教职工工号',
  `gender` tinyint(4) NULL DEFAULT NULL COMMENT '性别 1男 2女',
  `phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系手机号',
  `avatar` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '头像地址,本次置空',
  `enabled` tinyint(4) NULL DEFAULT 1 COMMENT '账号启用状态 0禁用 1启用',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `username`(`username`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '师生报修用户' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for workers
-- ----------------------------
DROP TABLE IF EXISTS `workers`;
CREATE TABLE `workers`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '登录账号',
  `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '登录密码bcrypt密文',
  `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '维修工姓名',
  `phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系手机号',
  `area_id` bigint(20) NULL DEFAULT NULL COMMENT '负责服务区域ID',
  `enabled` tinyint(4) NULL DEFAULT 1 COMMENT '账号启用状态 0禁用 1启用',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `username`(`username`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '后勤维修师傅' ROW_FORMAT = DYNAMIC;

SET FOREIGN_KEY_CHECKS = 1;

擅长功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文降重、长期答辩答疑辅导、腾讯会议一对一专业讲解辅导答辩、模拟答辩演练、和理解代码逻辑思路等。

获取联系

项目功能完整,可在本地运行,并可远程调试,确保运行顺利!

👇🏻👇🏻获取联系方式👇🏻👇🏻

毕业设计获取https://blog.csdn.net/qq_59059632/article/details/163759879?spm=1011.2415.3001.5331

更多推荐