☰
SpringBoot+Vue车间管理系统设计与实践
2026/10/14 10:58:36 网站建设 项目流程

1. 项目背景与核心价值

车间管理系统是制造业数字化转型的关键基础设施。传统工厂普遍面临生产数据分散、设备状态不透明、人工排产效率低等痛点。我们团队为某中型机械加工厂设计的这套系统,实现了从原料入库到成品出库的全流程数字化管控。系统上线后,该工厂订单交付周期缩短27%,设备利用率提升35%,纸质单据减少90%。

这套系统采用前后端分离架构,后端基于SpringBoot 2.7 + MyBatis-Plus 3.5,前端使用Vue 3 + Element Plus,数据库选用MySQL 8.0。特别设计了工单优先级动态算法和可视化看板,解决了该厂紧急插单频繁导致的产线混乱问题。

2. 技术架构设计解析

2.1 后端技术栈选型

选择SpringBoot而非传统SSM框架的三大理由:

  1. 内置Tomcat简化部署,适合工厂IT人员技术水平
  2. Starter依赖自动配置,快速集成Redis缓存、Quartz定时任务
  3. Actuator端点监控特别适合7×24小时运行的车间环境

数据库设计中的关键优化:

CREATE TABLE `work_order` ( `id` bigint NOT NULL AUTO_INCREMENT, `order_no` varchar(32) NOT NULL COMMENT '工单号规则:年月日+流水号', `priority` tinyint NOT NULL DEFAULT 2 COMMENT '0-紧急 1-高 2-普通', `machine_group` varchar(20) NOT NULL COMMENT '设备组别', `estimated_time` int NOT NULL COMMENT '预计耗时(分钟)', `actual_start` datetime DEFAULT NULL, `actual_end` datetime DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `idx_order_no` (`order_no`), KEY `idx_machine_group` (`machine_group`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

2.2 前端技术方案

采用Vue3+TypeScript的组合带来两大优势:

  1. Composition API更好封装设备状态看板组件
  2. TypeScript接口定义确保与后端DTO严格一致

可视化看板实现技巧:

<template> <el-row :gutter="20"> <el-col :span="8" v-for="(machine, index) in machineList" :key="index"> <machine-card :status="machine.status" :current-order="machine.currentOrder" @click="handleMachineSelect(machine.id)" /> </el-col> </el-row> </template> <script setup lang="ts"> // 使用WebSocket实时更新设备状态 const ws = new WebSocket(`wss://${location.host}/api/ws/machine-status`) </script>

3. 核心功能实现细节

3.1 动态工单排产算法

优先级计算模型考虑因素:

  • 订单交期紧急程度(剩余时间占比)
  • 物料齐套状态(BOM满足率)
  • 设备负载均衡度(当前班组空闲率)

核心算法片段:

public class OrderScheduler { public List<WorkOrder> schedule(List<WorkOrder> orders) { return orders.stream() .sorted(Comparator .comparingDouble(this::calculateUrgencyScore) .thenComparingInt(WorkOrder::getPriority) .reversed()) .collect(Collectors.toList()); } private double calculateUrgencyScore(WorkOrder order) { double timeFactor = 1 - (dueDate - now) / totalDays; double materialFactor = bomCheckService.getReadyRate(order.getId()); return 0.6 * timeFactor + 0.3 * materialFactor + 0.1 * getMachineLoadFactor(); } }

3.2 设备状态实时监控

采用三种状态同步机制:

  1. 设备PLC定时上报(30秒间隔)
  2. 扫码枪触发事件驱动更新
  3. 人工强制状态覆盖按钮

状态流转设计:

[待机] --开始加工--> [运行中] [运行中] --正常完成--> [待机] [运行中] --异常停机--> [故障] [故障] --维修完成--> [待机]

4. 典型问题排查实录

4.1 工单状态不同步问题

现象:前端显示工单已完成,但看板仍显示设备运行中 排查步骤:

  1. 检查WebSocket连接状态(Network面板)
  2. 验证后端事件发布逻辑
  3. 查看MySQL事务隔离级别(应为READ_COMMITTED)

根本原因:设备状态更新未触发Hibernate二级缓存清除 解决方案:

@Transactional public void completeOrder(Long orderId) { // 先更新工单状态 workOrderMapper.updateStatus(orderId, "COMPLETED"); // 手动清除缓存 cacheManager.getCache("machineCache").evict( machineService.getByOrderId(orderId).getId()); // 发送领域事件 applicationContext.publishEvent( new OrderCompletedEvent(this, orderId)); }

4.2 高并发下的数据冲突

场景:多个终端同时报工导致产量统计异常 解决策略:

  1. 在报工接口添加@Version乐观锁控制
  2. 关键操作增加分布式锁(Redisson实现)
  3. 采用最终一致性补偿机制

分布式锁实现示例:

public void reportProduction(ReportDTO dto) { String lockKey = "lock:order:" + dto.getOrderId(); RLock lock = redissonClient.getLock(lockKey); try { if (lock.tryLock(3, 10, TimeUnit.SECONDS)) { // 核心业务逻辑 productionService.handleReport(dto); } } finally { lock.unlock(); } }

5. 部署优化实践

5.1 性能调优参数

生产环境JVM配置建议:

-Xms2g -Xmx2g -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=35

MySQL关键配置:

[mysqld] innodb_buffer_pool_size=4G innodb_log_file_size=512M sync_binlog=1 innodb_flush_log_at_trx_commit=2

5.2 高可用部署方案

采用Nginx+Keepalived双机热备:

[VIP:192.168.1.100] | +------------------+------------------+ | | [NGINX Master] [NGINX Backup] 192.168.1.101 192.168.1.102 | | +-------+-------+ +-------+-------+ | SpringBoot | | SpringBoot | | Node1 | | Node2 | +---------------+ +---------------+

6. 扩展功能建议

  1. 设备预测性维护

    • 通过振动传感器数据训练LSTM模型
    • 提前3天预警轴承磨损风险
  2. 质量追溯看板

    • 扫描成品二维码反查生产批次
    • 展示关键工序的质检数据
  3. 移动端小程序

    • 微信小程序扫码快速报工
    • 异常状态推送提醒

这套系统在实际运行中最大的收获是:永远要为现场操作留出容错空间。我们最初设计的严格流程控制,在实际车间环境中反而导致工人频繁绕过系统。后来增加了"应急通道"机制,允许班组长在特殊情况下手动覆盖系统状态,才真正实现了数字化与人性化的平衡。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询