生产执行中心系统性修复总结

生产执行中心系统性修复总结

一、问题诊断

1.1 原始状态

生产执行中心(ProductionCenter.vue)是一个 262 行的 UI 壳子,存在以下严重问题:

| 问题 | 现状 |

|------|------|

| 无后端路由 | 没有 server/routes/production.js,前端调用错误 API |

| 数据源错误 | 调用 /api/order-management/list(销售订单),不是生产工单 |

| 无本地数据库 | 没有生产相关的 SQLite 表 |

| 指标全为硬编码 | 所有 metric cards 显示 "--"、0、"正常" |

| 无关联关系 | 未与 Part/BOM/Process/Quality/Equipment 关联 |

| 种子数据 | 仅 6 条演示工单,且未被使用 |

1.2 后端 Worker 现状

已有 13 个生产相关 Worker 文件,但未被前端调用:

| Worker | 角色 | SCSAI ItemType | 状态 |

|--------|------|----------------|------|

| production.js | 生产排程师 | Production Order | 实现 |

| operator-worker.js | 操作工 | Work Order | 实现 |

| lineleader-worker.js | 班组长 | Work Order | 实现 |

| kitter-worker.js | 物料员 | Work Order + Part BOM | 实现 |

| prod-tracker-worker.js | 生产跟单员 | Work Order | 实现 |

| prod-stat-worker.js | 生产统计员 | Work Order | 实现 |

| workreport-worker.js | 生产报工 | Work Order | 实现 |

| ipqc-worker.js | 过程检验员 | Work Order + Characteristic | 实现 |

| equip-worker.js | 设备运维员 | Equipment + Work Order | 实现 |

| planner-worker.js | 生产计划员 | QP_JG_PRODUCE_TASK | 实现 |

| dispatch-worker.js | 车间主任 | QP_JG_PRODUCE_TASK + QP_JG_DISPATCH | 实现 |

| report-worker.js | 操作工报工 | QP_JG_PRODUCE_TASK + QP_JG_DISPATCH | 实现 |

| process-worker.js | 工艺数据修复员 | process_specs + SCCAPP 表 | 实现 |


二、修复方案

2.1 架构设计

ProductionCenter.vue (前端)
    ↓ API 调用
server/routes/production.js (后端路由)
    ↓ 数据访问
server/core/process-db.js (统一 DB 模块)
    ↓ 表操作
sccapp_process_data.db (prod_* 表)
    ↓ 同步
SCSAI (Work Order / Equipment / Characteristic)

2.2 关联关系模型

Work Order ←→ Part (物料)
    ↓
Work Order ←→ Part BOM (物料齐套性)
    ↓
Work Order ←→ Process Spec (工艺规程)
    ↓
Work Order ←→ Characteristic (质量特性)
    ↓
Work Order ←→ Equipment (设备)
    ↓
Work Order ←→ Project (项目来源)
    ↓
Work Order ←→ ECR/ECO (变更管理)

三、实施内容

3.1 新建文件

server/routes/production.js (531 行)

| API 端点 | 方法 | 功能 |

|----------|------|------|

| /api/production/overview | GET | 生产概览(Dashboard) |

| /api/production/work-orders | GET | 工单列表(支持分页/筛选) |

| /api/production/work-orders/:id | GET | 工单详情(含报工/异常记录) |

| /api/production/equipment | GET | 设备列表 |

| /api/production/stats | GET | 生产统计(按产线/状态/报工) |

| /api/production/issues | GET | 异常列表 |

| /api/production/quality | GET | 生产质量关联查询 |

| /api/production/relations | GET | 关联关系查询(工单→Part/工艺/质量) |

| /api/production/sync-scsai | POST | 从 SCSAI 同步工单(需认证) |

数据库表

  • prod_work_orders — 生产工单(SCSAI Work Order 镜像 + 本地扩展)
  • prod_work_reports — 报工记录
  • prod_issues — 异常记录
  • prod_daily_stats — 每日统计快照
  • prod_equipment — 设备状态快照

3.2 修改文件

server.js — 注册生产路由

  • 添加 const productionRoutes = safeRequire('./server/routes/production', '生产执行路由');
  • 在请求处理中添加 /api/production/ 路由分发

src/views/ProductionCenter.vue — 完全重写

  • 从 262 行 UI 壳子重写为 350+ 行真实数据集成
  • 调用 /api/production/overview 获取真实数据
  • 添加 "从PLM同步工单" 按钮
  • 添加工单详情弹窗(含报工记录、异常记录、关联关系)
  • 6 个 Tab 全部使用真实数据

四、关联关系实现

4.1 工单 ↔ Part

  • prod_work_orders.part_id 存储 Part ID
  • prod_work_orders.part_name 存储 Part 名称
  • 关联查询通过 SELECT * FROM prod_work_orders WHERE id = ?

4.2 工单 ↔ 工艺规程

  • 通过 Part 名称匹配 llm_process_specs.product_name
  • API: GET /api/production/relations?work_order_id=xxx&type=work_order

4.3 工单 ↔ 质量

  • 通过 SCSAI Characteristic 查询
  • 本地统计 prod_work_reports.reject_qty

4.4 工单 ↔ 设备

  • prod_work_orders.work_center 关联 prod_equipment.work_center
  • 设备列表 GET /api/production/equipment

4.5 工单 ↔ 物料(BOM)

  • 通过 SCSAI Part BOM 查询
  • GET /api/production/work-orders/:id 返回 bomItems

五、构建验证

node --check server/routes/production.js  # 通过
node --check server.js                    # 通过
npm run build                             # 35s 通过

六、待解决问题

6.1 高优先级

| 问题 | 现状 | 需要解决 |

|------|------|----------|

| SCSAI Work Order 数据 | 未验证 SCSAI 是否有 Work Order 类型 | 需实测 SCSAI AML 查询 |

| 工单状态流转 | 本地只读,未实现状态变更 | 需添加 promote/edit 端点 |

| 报工写入 SCSAI | 本地记录,未同步回 SCSAI | 需实现双向同步 |

6.2 中优先级

问题现状
**QP_JG_* 类型支持planner/dispatch/report worker 使用磷化工自定义类型,未集成
设备 OEE 计算需实时采集设备运行数据
工艺指导书集成需在工单详情中嵌入工艺规程内容

6.3 低优先级

问题现状
生产排程算法需实现 AI 排产逻辑
物料齐套性需实时查询库存
移动端适配**需响应式设计

七、文件变更清单

新建文件

  • server/routes/production.js — 生产执行中心后端路由 (531 行)

修改文件

  • server.js — 注册生产路由
  • src/views/ProductionCenter.vue — 完全重写 (350+ 行)
← 返回案例列表
分享:
🤖 Try Now →
🤖
🎁