✍️ 技术文档工程师 | 步骤 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,拆分 authStore、permissionStore、workOrderStore、operationStore、traceStore。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 |
权限模型 | 用户、角色、权限及关联表 |
关键索引:sn、order_no、operation_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开发里程碑
-
阶段一:基础框架
- 搭建 Vue、.NET、PostgreSQL 项目骨架。
- 完成登录、JWT、RBAC、基础字典、用户角色权限。
-
阶段二:工单与工艺
- 实现工单、SN、工艺路线、工序任务生成。
- 完成工单下达、派工、状态机基础流转。
-
阶段三:工位执行
- 实现扫码开工、权限校验、设备/物料绑定。
- 完成工序执行台和防重复提交。
-
阶段四:测试与异常返修
- 实现测试结果录入、附件上传、合格判定。
- 实现异常创建、冻结、返修、复测、关闭。
-
阶段五:追溯与报表
- 实现 SN 全链路追溯、工单/批次/设备/人员查询。
- 实现基础通过率、异常率、返修率报表与导出。
-
阶段六:验收与上线
- 完成权限矩阵、并发扫码、断网、设备离线、审计 hash、慢查询压测。
- 完成备份恢复演练和上线检查后发布 MVP。