# Corewing QC 后端接口文档 > 基础路径: `/api/qc` ## 通用响应结构 所有接口统一返回 `Result`: ```json { "code": 200, "message": "操作成功", "data": T, "success": true } ``` | 字段 | 类型 | 说明 | |---------|---------|---------------------------| | code | Integer | 状态码 | | message | String | 消息内容 | | data | T | 业务数据 | | success | Boolean | 是否成功 | --- ## 1. 验证无线板 验证 BLE MAC 地址对应的无线板是否已在系统中注册。 - **URL**: `POST /api/qc/wireless/validate-wireless` - **Content-Type**: `application/json` ### 请求体 ```json { "mac": "AA:BB:CC:DD:EE:FF" } ``` | 字段 | 类型 | 必填 | 说明 | |------|--------|------|----------------------------------| | mac | String | 是 | BLE MAC 地址,即设备 SN | ### 响应 ```json { "code": 200, "message": "验证通过", "data": true, "success": true } ``` - `data = true` — 设备已注册,允许进行 QC 测试 - `data = false` / `success = false` — 设备未注册或验证失败,APP 端将**作废本次测试** --- ## 2. 上传测试记录 上传完整的 QC 测试结果(含所有步骤数据和照片 URL)。 - **URL**: `POST /api/qc/test/upload` - **Content-Type**: `application/json` ### 请求体 ```json { "testNo": "WL-20260227-001", "productType": "WIRELESS_BOARD", "sn": "AA:BB:CC:DD:EE:FF", "operatorId": "OP001", "operatorName": "张三", "phoneModel": "Pixel 7", "appVersion": "1.0.0", "status": "PASS", "createTime": "1740000000000", "updatedAt": "1740001000000", "uploadTime": "1740002000000", "steps": [ { "stepIndex": 1, "stepName": "BLE连接与特征订阅", "result": "PASS", "dataJson": "{\"deviceName\":\"CoreWing-001\",\"deviceMac\":\"AA:BB:CC:DD:EE:FF\",\"validated\":true}", "duration": 5200, "completedAt": "1740000500000" } ], "photoUrls": [ "https://qc.corewing.com/photos/xxx.jpg" ] } ``` | 字段 | 类型 | 必填 | 说明 | |--------------|------------------|------|------------------------------------------------| | testNo | String | 是 | 测试单号,格式: `WL-yyyyMMdd-NNN` 或 `FC-yyyyMMdd-NNN` | | productType | String | 是 | `WIRELESS_BOARD` / `FLIGHT_CONTROLLER` | | sn | String | 是 | 产品序列号(无线板为 BLE MAC 地址) | | operatorId | String | 是 | 测试员 ID | | operatorName | String | 是 | 测试员姓名 | | phoneModel | String | 否 | 测试手机型号 | | appVersion | String | 否 | APP 版本号 | | status | String | 是 | `PASS` / `FAIL` | | createTime | String | 是 | 创建时间(毫秒时间戳字符串) | | updatedAt | String | 否 | 最后更新时间(毫秒时间戳字符串) | | uploadTime | String | 否 | 上传时间(毫秒时间戳字符串) | | steps | StepResultData[] | 是 | 步骤结果数组 | | photoUrls | String[] | 否 | 已上传照片的远程 URL 列表 | **StepResultData:** | 字段 | 类型 | 必填 | 说明 | |-------------|--------|------|--------------------------------------| | stepIndex | int | 是 | 步骤序号(从 1 开始) | | stepName | String | 是 | 步骤名称 | | result | String | 否 | `PASS` / `FAIL` / null(未完成) | | dataJson | String | 否 | 步骤详细数据 JSON 字符串 | | duration | long | 否 | 步骤耗时(毫秒) | | completedAt | String | 否 | 完成时间(毫秒时间戳字符串) | ### 响应 ```json { "code": 200, "message": "上传成功", "data": "https://qc.corewing.com/report/WL-20260227-001", "success": true } ``` - `data` — 测试报告 URL(可为 null) --- ## 3. 上传照片 上传测试步骤关联的照片。 - **URL**: `POST /api/qc/test/upload-photo` - **Content-Type**: `multipart/form-data` ### 请求参数 | 字段 | 类型 | 必填 | 说明 | |--------|---------------|------|------------------| | testNo | String (text) | 是 | 测试单号 | | photo | File | 是 | 照片文件 (JPEG等)| ### 响应 ```json { "code": 200, "message": "上传成功", "data": { "url": "https://qc.corewing.com/photos/xxx.jpg" }, "success": true } ``` --- ## 4. 验证 SN 验证序列号是否有效(飞控板扫码流程使用)。 - **URL**: `POST /api/qc/test/validate-sn` - **Content-Type**: `application/json` ### 请求体 ```json { "sn": "FC-SN-20260001" } ``` ### 响应 ```json { "code": 200, "message": "SN 有效", "data": true, "success": true } ``` --- ## 5. 获取测试配置 获取指定产品类型的测试参数/阈值。 - **URL**: `GET /api/qc/config/test-params?productType=WIRELESS_BOARD` ### 响应 ```json { "code": 200, "success": true, "data": { } } ``` > `data` 结构由后端自定义,APP 当前未使用。 --- ## 6. 查询 SN 历史记录 - **URL**: `GET /api/qc/test/history?sn=AA:BB:CC:DD:EE:FF` ### 响应 ```json { "code": 200, "success": true, "data": { } } ``` --- ## 7. 获取测试报告 - **URL**: `GET /api/qc/test/report?testNo=WL-20260227-001` ### 响应 ```json { "code": 200, "success": true, "data": "https://qc.corewing.com/report/WL-20260227-001" } ``` --- ## 枚举值参考 ### productType(产品类型) | 值 | 说明 | |---------------------|--------| | WIRELESS_BOARD | 无线板 | | FLIGHT_CONTROLLER | 飞控板 | ### status(测试状态) | 值 | 说明 | |-------------|----------| | IN_PROGRESS | 进行中 | | PASS | 通过 | | FAIL | 失败 | | UPLOADED | 已上传 | ### result(步骤结果) | 值 | 说明 | |------|------| | PASS | 通过 | | FAIL | 失败 | ### 无线板测试步骤(7 步) | stepIndex | stepName | |-----------|------------------------| | 1 | BLE连接与特征订阅 | | 2 | 安装无线板/外观检查 | | 3 | 供电测试(4.5V) | | 4 | Type-C USB测试 | | 5 | BLE信号质量测试 | | 6 | MAVLink心跳通信测试 | | 7 | 激活/入库 | ### 飞控板测试步骤(12 步) | stepIndex | stepName | |-----------|-----------------| | 1 | USB串口连接 | | 2 | 安装SD卡与装夹 | | 3 | 心跳检测 | | 4 | IMU测试 | | 5 | 气压计测试 | | 6 | GPS模块检测 | | 7 | RC输入测试 | | 8 | ADC接口测试 | | 9 | PWM输出测试 | | 10 | 图传与OSD检查 | | 11 | 参数重置 | | 12 | 数据上传/结束 |