再不选好毕设题目?你的设备保修系统可能要拖到答辩前

51 阅读4分钟

💖💖作者:计算机毕业设计小途 💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长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 原型。

设备保修一站式系统演示视频

演示视频

设备保修一站式系统演示图片

登陆界面.png

故障报修.png

设备档案.png

设备信息.png

维修记录.png

维修排班.png

养护计划.png

运行记录.png

设备保修一站式系统代码展示

// 代码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()

设备保修一站式系统文档展示

文档.png

💖💖作者:计算机毕业设计小途 💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 深度学习实战项目