💖💖作者:计算机毕业设计小途 💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 深度学习实战项目
@TOC
设备保修一站式系统介绍
《设备保修一站式系统》面向即将完成毕设的大四计算机专业学生,以“零门槛”思路完整复现企业级设备运维流程:前端采用 Vue3+ElementPlus 构建单页面应用,提供登录、首页仪表盘、个人中心、用户管理、维修人员管理、维修排班、设备信息、故障报修、设备档案、维修工单、维修任务、维修记录、养护计划共十三个功能模块,所有交互均通过 RESTful 接口与后端对接;后端同时给出两条技术栈——Java 方向使用 SpringBoot 整合 Spring+SpringMVC+MyBatis 三板斧,Python 方向使用 Django 3.x 原生 ORM,二者共用一套 MySQL8 数据库,表设计遵循设备、报修、工单、任务、养护五大实体关系,字段与页面表单一一映射,支持级联查询与分页;系统采用经典 B/S 架构,开发环境仅需 JDK11/Python3.9、Node18 与 MySQL,前后端分离部署,前端 npm run build 后生成静态资源,后端 jar 或 manage.py runserver 一键启动,浏览器即可访问;功能闭环从用户扫码报修到维修人员接单、现场签到、填写耗材与工时、上传照片、关闭工单、生成养护计划,全程留痕,既满足毕设“增删改查+业务流程”评审要求,又可直接作为中小企业设备维保 SaaS 原型。
设备保修一站式系统演示视频
设备保修一站式系统演示图片
设备保修一站式系统代码展示
// 代码1:故障报修提交(SpringBoot版)
public Long submitRepair(RepairDTO dto) {
Device device = deviceMapper.selectBySn(dto.getSn());
if(device == null) throw new BizException("设备不存在");
Repair repair = new Repair();
repair.setDeviceId(device.getId());
repair.setFaultDesc(dto.getDesc());
repair.setReporterId(SecurityUtil.userId());
repair.setStatus("待派单");
repair.setCreateTime(LocalDateTime.now());
repairMapper.insert(repair);
return repair.getId();
}
// 代码2:维修工单分派算法(SpringBoot版)
public void dispatch(Long repairId) {
List<Staff> staffList = staffMapper.selectByRole("维修");
Map<Long, Long> loadMap = staffList.stream()
.collect(Collectors.toMap(Staff::getId, s -> taskMapper.countPending(s.getId())));
Long targetId = loadMap.entrySet().stream()
.min(Map.Entry.comparingByValue())
.get().getKey();
Task task = new Task();
task.setRepairId(repairId);
task.setStaffId(targetId);
task.setStatus("待接单");
task.setAssignTime(LocalDateTime.now());
taskMapper.insert(task);
repairMapper.updateStatus(repairId, "已派单");
}
// 代码3:维修记录归档(SpringBoot版)
public void finishTask(Long taskId, FinishDTO dto) {
Task task = taskMapper.selectById(taskId);
Repair repair = repairMapper.selectById(task.getRepairId());
Record record = new Record();
record.setRepairId(repair.getId());
record.setStaffId(task.getStaffId());
record.setFaultType(dto.getFaultType());
record.setSolution(dto.getSolution());
record.setPartsCost(dto.getPartsCost());
record.setWorkHours(dto.getHours());
record.setFinishTime(LocalDateTime.now());
recordMapper.insert(record);
repair.setStatus("已完成");
repair.setCloseTime(LocalDateTime.now());
repairMapper.updateById(repair);
task.setStatus("已完结");
taskMapper.updateById(task);
}
// 代码4:故障报修提交(Django版)
def submit_repair(sn, desc, user_id):
device = Device.objects.get(sn=sn)
repair = Repair.objects.create(
device=device,
fault_desc=desc,
reporter_id=user_id,
status='待派单',
create_time=timezone.now()
)
return repair.id
// 代码5:维修工单分派算法(Django版)
def dispatch(repair_id):
staffs = Staff.objects.filter(role='维修')
loads = {s.id: Task.objects.filter(staff=s, status='待接单').count() for s in staffs}
target_id = min(loads, key=loads.get)
Task.objects.create(
repair_id=repair_id,
staff_id=target_id,
status='待接单',
assign_time=timezone.now()
)
Repair.objects.filter(id=repair_id).update(status='已派单')
// 代码6:维修记录归档(Django版)
def finish_task(task_id, fault_type, solution, parts_cost, hours):
task = Task.objects.get(id=task_id)
repair = task.repair
Record.objects.create(
repair=repair,
staff=task.staff,
fault_type=fault_type,
solution=solution,
parts_cost=parts_cost,
work_hours=hours,
finish_time=timezone.now()
)
repair.status = '已完成'
repair.close_time = timezone.now()
repair.save()
task.status = '已完结'
task.save()
设备保修一站式系统文档展示
💖💖作者:计算机毕业设计小途 💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 深度学习实战项目