3-backend_architecture.md
3.21 KB
⚙️ 后端架构师 | 步骤 3/7 | 24.5s
1. 推荐后端技术栈
- .NET 8 / ASP.NET Core Web API:性能好、适合内网企业系统,类型安全,便于长期维护。
- PostgreSQL:支持复杂查询、JSONB、事务、索引、分区,适合追溯与审计数据。
- EF Core + Dapper:常规业务用 EF Core;追溯链路、报表查询用 Dapper 优化。
- Redis 可选:缓存工艺路线、权限、设备状态。
- Hangfire/Quartz.NET:报表导出、归档、补偿任务。
- MinIO/文件服务器:保存测试附件、日志文件,数据库仅存 hash 与路径。
2. 后端分层架构
- Controller/API:REST 接口、参数校验、鉴权、统一响应。
- Application Service:编排用例,如扫码开工、提交测试、返修闭环。
- Domain:工单、SN、工序任务、异常、返修等聚合与状态机规则。
- Repository:封装 PostgreSQL 访问,避免业务层直接写 SQL。
- Integration:MES/ERP/PLC/测试设备适配器,隔离外部协议。
- Infrastructure:认证、审计、日志、缓存、文件、消息、定时任务。
3. 核心模块
工单管理、SN 管理、工序流转、扫码开工、测试结果/采集、异常返修、追溯查询、RBAC 权限、报表导出、系统配置、设备/工位/物料基础数据。
4. API 设计
选择 REST,流程型业务清晰、易审计。命名采用资源 + 动作:
POST /api/work-orders/{id}/releasePOST /api/sn/{sn}/scan-startPOST /api/operations/{id}/test-resultsGET /api/trace/sn/{sn}
鉴权:内网账号密码 + JWT,RBAC 控制角色与工序权限。
幂等:提交类接口支持 Idempotency-Key;扫码、测试提交用唯一约束防重复。统一返回 success、state、nextAction、errorCode。
5. 集成边界
- MES/ERP:通过 Integration 层同步工单、物料、入库状态。
- PLC/测试设备:先支持文件/API 导入,后续扩展 TCP/OPC UA/MQTT。
- 扫码枪:前端输入设备,后端只接收 SN 并校验。
- 外部系统失败不阻断核心流程,采用任务重试与补偿。
6. 非功能设计
- 事务一致性:扫码、状态变更、测试结果、事件日志同事务提交。
-
并发控制:工序任务使用
row_version乐观锁,关键状态加唯一约束。 -
审计日志:事件表只追加,含
previous_hash/current_hash,管理员更正生成新事件。 - 归档:按工单完成时间分区/归档事件与测试明细。
- 限流:按用户/IP/设备限流,防止重复扫码和异常刷写。
- 安全:最小权限、操作留痕、附件 hash 校验、内网 HTTPS。
7. 目录结构示例
src/
RobotTrace.Api/
Controllers/
Middlewares/
RobotTrace.Application/
WorkOrders/
Operations/
Scan/
Tests/
Exceptions/
Trace/
RobotTrace.Domain/
Entities/
ValueObjects/
Events/
StateMachines/
RobotTrace.Infrastructure/
Persistence/
Repositories/
Auth/
Audit/
Files/
Jobs/
RobotTrace.Integration/
Mes/
Erp/
Plc/
TestDevices/
RobotTrace.Contracts/
Requests/
Responses/
ErrorCodes/