# 不合格管理模块 — 前端联调文档
## 涉及页面
- **检验记录列表/详情** — 附件上传/查看
- **不合格品管理列表/详情** — 附件上传/查看
## 变更说明
附件体系从独立的 `quality_inspect_file` 表改为使用系统统一的 `storage_attachment` 表,通过 `recordType` + `recordId` 关联。前端附件上传/回显方式和系统其他模块(如采购台账、设备维修等)保持一致。
## API 变更
### 检验记录
| 接口 | 变更说明 |
|------|---------|
| `POST /quality/qualityInspect/add` | 请求体新增 `storageBlobDTOs` 字段 |
| `POST /quality/qualityInspect/update` | 请求体新增 `storageBlobDTOs` 字段 |
| `GET /quality/qualityInspect/{id}` | 响应新增 `storageBlobVOs` 字段 |
### 不合格品
| 接口 | 变更说明 |
|------|---------|
| `POST /quality/qualityUnqualified/add` | 请求体新增 `storageBlobDTOs` 字段 |
| `POST /quality/qualityUnqualified/update` | 请求体新增 `storageBlobDTOs` 字段 |
| `GET /quality/qualityUnqualified/{id}` | 响应新增 `storageBlobVOs` 字段 |
## 数据结构
### StorageBlobDTO(上传时传入)
```json
{
"id": "临时文件ID(字符串)",
"name": "文件名",
"url": "文件路径",
"fileSize": 1024
}
```
### StorageBlobVO(查询时返回)
```json
{
"id": 1,
"name": "检验报告.pdf",
"url": "/upload/20260613/xxx.pdf",
"fileSize": 102400,
"application": "FILE"
}
```
## 前端修改点
### 1. 检验记录 — 新增/编辑表单增加附件上传
```html
```
### 2. 检验记录 — 详情页展示附件
```html
无附件
```
### 3. 不合格品 — 新增/编辑表单增加附件上传
```html
```
### 4. 不合格品 — 详情展示附件
```html
无附件
```
### 5. 表单 data 补充字段
```js
data() {
return {
form: {
storageBlobDTOs: [], // 上传时传入
storageBlobVOs: [], // 查询时返回
// ... 其他字段
}
}
}
```
## 废弃内容
- `quality_inspect_file` 表废弃,数据已迁移到 `storage_attachment` 表
- 前端如果之前有对接 `POST /quality/qualityInspectFile/add` 等接口,需移除相关代码
## 数据库变更
执行文件:`doc/sql/20260613_quality_attachment_optimize.sql`
## 注意事项
- 附件上传使用系统已有的文件上传接口(如 `/file/upload`),将返回的临时文件ID通过 `storageBlobDTOs` 传入
- 如果不传 `storageBlobDTOs` 或传空数组,不会删除已有附件;需要删除附件时传空数组即可
- 前端项目如已有通用的文件上传/附件展示组件,直接复用即可