7-final_architecture_report.md 8.57 KB

✍️ 技术文档工程师 | 步骤 7/7 | 52.0s


Robot装配测试工单工序级管理追溯系统前后端分离架构方案

1. 项目目标与系统边界

本系统面向内网部署的 Robot 装配、测试、异常、返修、完工入库全过程管理,目标是在工序级记录“谁、何时、用什么设备/物料、对哪台机器人、在哪道工序、产生什么结果”,支撑质量追溯、交付验收、异常复盘和采购方授权查询。

MVP 边界:工单管理、SN 管理、工艺路线、工序流转、扫码开工、测试结果录入、异常/返修闭环、基础追溯查询、RBAC 权限、报表导出。暂不实现 MES/ERP/WMS 深度集成、设备自动采集、SPC、AI 分析和完整移动端。

2. 总体架构设计

采用前后端分离架构:

  • 前端:Vue 3 单页应用,包含管理后台、工位操作端、追溯查询和看板。
  • 后端:.NET 8 Web API,承载状态机、权限、事务、审计、追溯查询。
  • 数据库:PostgreSQL 存储业务数据、测试数据和事件日志。
  • Redis:用于权限缓存、扫码幂等锁、设备状态缓存。
  • 文件服务/MinIO:保存测试附件、日志、图片,数据库仅保存 URL 与 hash。
  • 可选实时通道:SignalR/WebSocket 推送设备状态、异常告警、工单进度。

核心原则:前端不推断业务状态,所有状态流转由后端状态机判定;关键动作与事件日志同事务提交。

3. 前端实现思路

前端分为 PC 管理后台、车间工位操作端、看板和采购方只读查询页。工位端强调扫码优先、大按钮、低延迟、强提示,避免复杂输入。

主要页面包括:登录、工单列表、工单详情、工序执行台、扫码录入、测试结果录入、异常处理、返修闭环、追溯查询、报表看板、权限配置。

状态管理使用 Pinia,拆分 authStorepermissionStoreworkOrderStoreoperationStoretraceStore。Axios 统一处理 Token、错误码、加载态和幂等键。关键提交接口根据后端返回的 success、state、nextAction、errorCode 驱动 UI。

4. 后端实现思路

后端采用分层架构:

  • Controller:REST API、参数校验、鉴权、统一响应。
  • Application Service:编排扫码开工、测试提交、异常关闭、质检通过等用例。
  • Domain:工单、SN、工序任务、异常、返修聚合与状态机。
  • Repository:封装 PostgreSQL 访问。
  • Infrastructure:认证、审计、缓存、文件、日志、定时任务。
  • Integration:隔离 MES、ERP、PLC、测试设备等外部系统。

工单状态:草稿、待派工、执行中、暂停、异常中、部分完成、待质检、已完成、已关闭、已取消。
工序状态:待开始、进行中、待测试、测试失败、返修中、待复测、测试通过、已完成、已跳过、已取消。

5. 推荐技术栈

  • 前端:Vue 3 + TypeScript + Vite + Pinia + Vue Router + Element Plus/Naive UI + Axios + ECharts。
  • 后端:.NET 8 + ASP.NET Core Web API + EF Core + Dapper。
  • 数据库:PostgreSQL。
  • 缓存:Redis。
  • 文件:MinIO 或内网文件服务器。
  • 任务:Hangfire 或 Quartz.NET。
  • 实时:SignalR/WebSocket。
  • API 契约:OpenAPI,前端生成 TypeScript 类型。

6. 前端目录结构示例

src/
  api/
  components/
  layouts/
  router/
  stores/
  views/
    login/
    work-orders/
    operations/
    exceptions/
    trace/
    reports/
    system/
  composables/
  utils/
  types/

7. 后端目录结构示例

src/
  RobotTrace.Api/
    Controllers/
    Middlewares/
  RobotTrace.Application/
    WorkOrders/
    Operations/
    Scan/
    Tests/
    Exceptions/
    Trace/
  RobotTrace.Domain/
    Entities/
    Events/
    StateMachines/
  RobotTrace.Infrastructure/
    Persistence/
    Repositories/
    Auth/
    Audit/
    Files/
    Jobs/
  RobotTrace.Integration/
    Mes/
    Erp/
    Plc/
  RobotTrace.Contracts/
    Requests/
    Responses/
    ErrorCodes/

8. 数据库核心表结构

表名 作用 关键字段
work_order 工单主表 id, order_no, product_model, batch_no, qty, route_id, status, plan_start, plan_end
work_order_item 单机 SN id, work_order_id, sn, status, current_step_id, frozen, completed_at
process_route 工艺路线 id, code, name, version, status, effective_from
process_step 工序定义 id, route_id, seq_no, code, name, type, required_role_id, need_test, is_qc
operation_task SN 工序任务 id, work_order_id, item_id, step_id, status, operator_id, workstation_id, device_id, started_at, finished_at, result, locked
test_record 测试记录 id, task_id, item_id, test_item, standard, lower_limit, upper_limit, value, result, raw_data, attachment_hash
material_binding 物料绑定 id, task_id, item_id, material_id, material_batch_id, supplier_id, qty, bound_by, bound_at
exception_record 异常记录 id, work_order_id, item_id, task_id, type, level, status, reason, decision, owner_id
repair_record 返修记录 id, exception_id, item_id, action, repaired_by, repaired_at, retest_task_id, result
trace_event 追溯事件 id, entity_type, entity_id, sn, work_order_id, task_id, action, before_state, after_state, actor_id, device_id, material_batch_id, occurred_at, previous_hash, current_hash
app_user/role/permission 权限模型 用户、角色、权限及关联表

关键索引:snorder_nooperation_task(item_id,step_id)trace_event(sn,occurred_at)trace_event(work_order_id,occurred_at)exception_record(item_id,status)。事件表和测试表按月或季度分区。

9. 工序级追溯链路设计

系统必须支持以下链路:

  • 工单 → SN → 工序任务 → 测试结果。
  • SN → 人员 → 工位 → 设备 → 时间。
  • SN → 物料批次 → 供应商/领用记录。
  • SN → 异常 → 返修 → 复测 → 最终判定。
  • 批次 → 涉及 SN → 异常率/测试通过率。
  • 设备/人员 → 参与过的 SN 与异常记录。

所有扫码、开工、绑定物料、测试提交、异常创建、返修关闭、质检通过、入库关闭都写入 trace_event。业务表可更新,事件日志只追加;管理员修正生成“更正事件”,不得覆盖原记录。

10. 权限、安全与审计设计

认证采用账号密码 + JWT,可选 MFA。密码使用 BCrypt/Argon2。权限采用 RBAC,区分菜单、按钮、接口、工序角色和数据范围。前端权限仅控制展示,后端必须二次校验。

关键安全规则:

  • 扫码开工校验 SN、工序顺序、人员权限、设备状态、物料批次和冻结状态。
  • 提交类接口支持 Idempotency-Key,并使用唯一约束和乐观锁防重复。
  • 测试附件限制类型、大小和魔数,保存 hash。
  • 工单完工前校验所有 SN、工序、异常、返修、测试均闭环。
  • 403、越权尝试、管理员更正、异常关闭均记录审计。
  • 事件使用 previous_hash + current_hash 形成链式防篡改。

11. 部署与集成建议

系统部署在内网,建议使用 Nginx 反向代理前端静态资源和后端 API,启用 HTTPS。后端、数据库、Redis、MinIO 独立部署,生产环境启用备份、日志留存、慢查询监控和健康检查。

集成策略:MVP 阶段先通过文件/API 导入工单、物料和测试数据;后续通过 Integration 层接入 MES/ERP/WMS、PLC、OPC UA、MQTT 或测试设备接口。外部系统失败不阻断核心生产流程,采用异步任务、重试和补偿机制。

12. MVP开发里程碑

  1. 阶段一:基础框架

    • 搭建 Vue、.NET、PostgreSQL 项目骨架。
    • 完成登录、JWT、RBAC、基础字典、用户角色权限。
  2. 阶段二:工单与工艺

    • 实现工单、SN、工艺路线、工序任务生成。
    • 完成工单下达、派工、状态机基础流转。
  3. 阶段三:工位执行

    • 实现扫码开工、权限校验、设备/物料绑定。
    • 完成工序执行台和防重复提交。
  4. 阶段四:测试与异常返修

    • 实现测试结果录入、附件上传、合格判定。
    • 实现异常创建、冻结、返修、复测、关闭。
  5. 阶段五:追溯与报表

    • 实现 SN 全链路追溯、工单/批次/设备/人员查询。
    • 实现基础通过率、异常率、返修率报表与导出。
  6. 阶段六:验收与上线

    • 完成权限矩阵、并发扫码、断网、设备离线、审计 hash、慢查询压测。
    • 完成备份恢复演练和上线检查后发布 MVP。