【原创唯一】基于微信小程序+uni-app+AI大模型的高校校园报修与后勤工单小程序
摘要:高校后勤报修长期存在电话/纸质登记分散、进度不透明、派单依赖人工经验、超时难追溯等问题。本文设计并实现高校校园报修与后勤工单系统,面向管理员、维修工与师生用户三类角色,构建“小程序报修—管理端派单—维修处理—确认评价—绩效统计”的闭环。系统采用 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
更多推荐

所有评论(0)