编辑 | blame | 历史 | 原始文档

MES_Test_Project 快速参考指南

🚀 快速开始

后端启动

# 启动网关
cd gateway
mvn spring-boot:run

# 启动PLC服务(端口10018)
cd mes-processes/mes-plcSend
mvn spring-boot:run

前端启动

cd mes-web
npm install
npm run dev

📁 核心目录速查

后端核心目录

路径 说明
mes-processes/mes-plcSend/src/main/java/com/mes/task/service/TaskExecutionEngine.java 任务执行引擎(核心)
mes-processes/mes-plcSend/src/main/java/com/mes/interaction/vehicle/handler/LoadVehicleLogicHandler.java 大车设备逻辑处理器
mes-processes/mes-plcSend/src/main/java/com/mes/device/service/DeviceCoordinationService.java 设备协调服务
mes-common/serverBase/src/main/java/com/mes/exception/GlobalExceptionHandler.java 全局异常处理

前端核心目录

路径 说明
mes-web/src/main.js 应用入口
mes-web/src/router/index.js 路由配置
mes-web/src/utils/request.js HTTP请求封装
mes-web/public/config.js 服务器地址配置

🔧 常用操作

添加新设备类型

  1. 定义设备类型常量
    java // DeviceConfig.DeviceType public static final String NEW_DEVICE = "新设备类型";

  2. 创建设备逻辑处理器
    ```java
    @Component
    public class NewDeviceLogicHandler extends BaseDeviceLogicHandler {
    @Override
    public String getDeviceType() {
    return DeviceConfig.DeviceType.NEW_DEVICE;
    }

    @Override
    protected DevicePlcVO.OperationResult doExecute(...) {
    // 实现逻辑
    }
    }
    ```

  3. 配置设备逻辑参数(前端)
    json { "deviceLogic": { "timeout": 5000, "customParam": "value" } }

添加新页面

  1. 创建Vue组件
    vue <!-- mes-web/src/views/newModule/NewPage.vue --> <template> <div>新页面</div> </template>

  2. 添加路由
    javascript // mes-web/src/router/index.js { path: '/newModule/newPage', name: 'newPage', component: () => import('../views/newModule/NewPage.vue') }

  3. 添加API接口
    javascript // mes-web/src/api/newModule.js export function getNewData() { return request.get('/api/newModule/data') }


📊 设备类型速查

设备类型 常量 处理器 说明
大车设备 LOAD_VEHICLE LoadVehicleLogicHandler 多实例协调,MES任务处理
大理片笼 LARGE_GLASS LargeGlassLogicHandler 格子范围配置
卧转立扫码 WORKSTATION_SCANNER HorizontalScannerLogicHandler 定时扫描,数据落库
卧转立 WORKSTATION_TRANSFER HorizontalTransferLogicHandler 30s缓冲,批量处理
卧式缓存 GLASS_STORAGE GlassStorageLogicHandler 已实现,当前不使用

🔄 执行流程速查

任务执行流程

Controller → Service → TaskExecutionEngine → DeviceInteraction/Handler → PLC

设备协调流程

设备A完成 → 数据传递 → 设备B读取 → 设备B执行 → 状态同步

📝 API端点速查

设备管理

  • GET /device/config/list - 设备列表
  • POST /device/config/create - 创建设备
  • PUT /device/config/update - 更新设备
  • DELETE /device/config/delete/{id} - 删除设备

设备组管理

  • GET /device/group/list - 设备组列表
  • POST /device/group/create - 创建设备组
  • POST /device/group/{groupId}/devices - 添加设备到组

任务管理

  • POST /device/task/start - 启动任务
  • GET /device/task/list - 任务列表
  • GET /device/task/{taskId} - 任务详情
  • POST /device/task/{taskId}/cancel - 取消任务

实时监控(SSE)

  • GET /task/notification/sse?taskId=xxx - 监听指定任务
  • GET /task/notification/sse/all - 监听所有任务

🐛 常见问题

1. 设备状态丢失

原因:大车设备状态存储在内存中,服务重启后丢失
解决:扩展支持数据库持久化

2. 任务执行失败

检查
- 设备状态(在线/离线)
- PLC连接状态
- 设备协调检查
- 查看任务步骤详情

3. SSE连接断开

原因:连接超时(30分钟)
解决:前端重新连接

4. 设备逻辑不生效

检查
- 设备类型是否正确
- extraParams.deviceLogic 配置是否正确
- Handler是否已注册(查看日志)


🔍 调试技巧

查看注册的设备处理器

@Autowired
private DeviceLogicHandlerFactory factory;
Set<String> types = factory.getSupportedDeviceTypes();

查看日志

  • 任务执行:TaskExecutionEngine 日志
  • 设备执行:具体 Handler 日志
  • 协调服务:DeviceCoordinationService 日志

前端调试

  • 打开浏览器开发者工具
  • 查看 Network 标签(API请求)
  • 查看 Console 标签(错误信息)

📦 模块依赖关系

mes-parent (父模块)
├── mes-common (公共模块)
│   ├── springSecurity (安全)
│   ├── serverBase (基础服务)
│   ├── communication (通信)
│   └── model (数据模型)
├── mes-processes (业务流程)
│   └── mes-plcSend (PLC服务)
└── gateway (API网关)

依赖关系
- mes-plcSend 依赖 springSecurityserverBase
- serverBase 依赖 model
- gateway 独立运行


⚙️ 配置文件位置

配置文件 位置 说明
后端主配置 mes-processes/mes-plcSend/src/main/resources/application.yml PLC服务配置
前端配置 mes-web/public/config.js 服务器地址
路由配置 mes-web/src/router/index.js 前端路由
数据库迁移 mes-processes/mes-plcSend/src/main/resources/db/migration/ 数据库脚本

🎯 开发规范

命名规范

  • 类名:大驼峰(PascalCase)
  • 方法名:小驼峰(camelCase)
  • 常量:全大写下划线(UPPER_SNAKE_CASE)
  • 包名:全小写

代码组织

  • 简单设备:放在 interaction/impl/
  • 复杂设备:创建独立包(如 interaction/vehicle/
  • 需要协调的设备:创建 coordination/ 子包

注释规范

  • 类和方法必须有JavaDoc注释
  • 复杂逻辑需要行内注释
  • TODO标记待完成功能

📚 相关文档

  • 详细报告项目详细报告.md
  • PLC服务READMEmes-processes/mes-plcSend/README.md
  • 架构文档mes-processes/mes-plcSend/ARCHITECTURE.md

最后更新:2025年