生产执行中心 MES 实施方案
一、现状分析
已有能力
- SCSAI 客户端: 双写模式(本地优先+异步PLM),已验证 QP_JG_PRODUCE_TASK 读写
- 质量体系: NCR/CAPA/SPC/检验闭环已实现,quality-inspection.js 可直接对接
- 库存体系: inventory.js 有 SCSAI 库存主数据+出入库事务
- 变更管理: ECR/ECO/ECN 全生命周期
- 数字员工: 8 个生产相关员工已定义(YAML),但未接入真实业务
- 事件总线: event-bus.js 支持事件触发+订阅
- LLM 大脑: llm-brain.js 支持任务分解
当前问题
- 工单只是"一张表",没有工序、没有 BOM 展开、没有排产
- 报工是整单报一个数,不是工序级
- 设备是 5 条硬编码种子数据
- 前端是静态展示,没有实时数据
二、MES 最小可用集(MVP)
核心原则
- 工序驱动 — 一个工单 = 多个工序,每个工序独立报工
- BOM 展开 — 创建工单时自动展开物料需求
- 设备绑定 — 工序绑定设备,设备状态影响排产
- 质量内嵌 — 工序间检验,不合格品自动触发 NCR
- 异常联动 — 设备故障/质量异常自动通知数字员工
数据模型(新增表)
prod_operations -- 工序(工单拆分为工序)
id, work_order_id, operation_name, sequence,
work_center, equipment_id, planned_time, actual_time,
status (pending/in_progress/completed/skipped),
operator, standard_qty_per_hour
prod_material_requirements -- 物料需求(BOM展开)
id, work_order_id, part_id, part_name, required_qty,
issued_qty, unit, status (pending/partial/issued/short)
prod_operation_reports -- 工序级报工(替代原来的整单报工)
id, operation_id, work_order_id, operator,
complete_qty, reject_qty, scrap_qty, work_hours,
defect_code, note, created_at
prod_quality_checks -- 工序间质量检验
id, operation_id, work_order_id, check_type,
characteristic, spec_min, spec_max, measured_value,
result (pass/fail), ncr_id, inspector, created_at
prod_downtime_records -- 设备停机记录
id, equipment_id, start_time, end_time, duration_min,
reason_type (breakdown/maintenance/changeover/idle),
reason_desc, work_order_id
prod_shifts -- 班次
id, shift_name, start_time, end_time, date
API 端点(新增/改造)
| 端点 | 方法 | 功能 |
|------|------|------|
| POST /work-orders | 改造 | 创建工单时自动展开 BOM + 生成工序 |
| GET /work-orders/:id/operations | 新增 | 查工单的工序列表 |
| POST /operations/:id/start | 新增 | 开始工序(绑定操作工+设备) |
| POST /operations/:id/report | 新增 | 工序级报工 |
| POST /operations/:id/complete | 新增 | 完工(触发下道工序或关闭工单) |
| POST /operations/:id/quality-check | 新增 | 工序间质量检验 |
| GET /material-requirements/:workOrderId | 新增 | 查工单物料需求 |
| POST /material-requirements/:id/issue | 新增 | 发料 |
| GET /equipment/:id/status | 新增 | 设备实时状态 |
| POST /equipment/:id/downtime | 新增 | 记录停机 |
| GET /schedule | 新增 | 排产视图(按日期/产线) |
| POST /schedule/dispatch | 新增 | 派工(分配工序到设备+操作工) |
| GET /dashboard/realtime | 新增 | 实时看板数据 |
工单生命周期
Created → Planned → Released → In Progress → Completed → Closed
↓ ↓ ↓
BOM检查 工序开始 质量检验
物料齐套 设备绑定 NCR触发
报工累计 完工入库
工序生命周期
Pending → Ready → In Progress → Completed → [Quality Check] → Passed/Failed
↓
NCR → Rework/Scrap
数字员工联动
| 事件 | 触发 | 动作 |
|------|------|------|
| 设备故障 | downtime 记录 | DS-EQUIP-001 通知维修 |
| 工序不合格 | quality_check fail | DS-QUAL-001 创建 NCR |
| 物料短缺 | material requirement short | DS-KITTER-001 补料 |
| 工单超期 | schedule 过期 | DS-PROD-001 告警 |
| 产量达标 | operation completed | DS-LINELEADER-001 统计 |
三、实施步骤
Phase 1: 数据模型 + 工序引擎(本次实施)
- 建表:operations/material_requirements/operation_reports/quality_checks/downtime_records
- 实现工序 CRUD + 生命周期状态机
- 实现 BOM 展开(从 Part BOM 自动算物料需求)
- 实现工序级报工
- 前端改造:工单详情展示工序列表+报工
Phase 2: 排产 + 物料 + 设备(后续)
- 有限产能排产算法
- 物料齐套检查+发料
- 设备 OEE 计算
- 班次管理
Phase 3: 实时 + 智能(后续)
- WebSocket 实时推送
- 数字员工自动调度
- AI 排产优化
- SPC 实时监控
四、验证标准
端到端跑通一个完整场景:
- 创建工单 → 自动展开 BOM → 生成 3 道工序
- 派工 → 操作工开始第 1 道工序
- 报工 → 完成 80% → 触发工序间检验
- 检验不合格 → 自动创建 NCR → 触发数字员工
- 返工完成 → 第 2 道工序开始
- 全部工序完成 → 工单关闭 → 统计更新
- 实时看板显示进度
BossAgents