# 查询指定对象的同步进度

## 接口信息

- **接口名称**: 查询指定对象的同步进度
- **接口路径**: `/integration/object/progress/{id}`
- **请求方法**: GET
- **接口描述**: 该方法用于查询指定对象的同步进度信息。进度信息包括：对象ID、同步类型、总批次数量、已处理批次数量、当前批次、进度百分比、开始时间、结束时间、状态、错误信息。如果同步任务已完成或失败，进度信息会被清除，此时无法查询到进度信息。

## 请求参数

### 路径参数

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| id | Integer | 是 | 对象ID，用于标识需要查询同步进度的对象 |

### 请求示例

```http
GET /integration/object/progress/123
```

## 响应参数

### 响应格式

```json
{
  "code": 200,
  "msg": "操作成功",
  "data": {
    "objectId": 123,
    "syncType": "FULL",
    "totalBatches": 10,
    "processedBatches": 5,
    "currentBatch": 5,
    "progressPercentage": 50,
    "startTime": "2026-01-16 10:00:00",
    "endTime": null,
    "status": "RUNNING",
    "errorMessage": null
  }
}
```

### 响应字段说明

| 字段名 | 类型 | 说明 |
|--------|------|------|
| code | Integer | 响应状态码，200表示成功，其他表示失败 |
| msg | String | 响应消息，成功时返回"操作成功"，失败时返回错误信息 |
| data | Object | 响应数据，包含同步进度信息 |
| data.objectId | Integer | 对象ID |
| data.syncType | String | 同步类型（FULL/INCREMENTAL） |
| data.totalBatches | Integer | 总批次数量 |
| data.processedBatches | Integer | 已处理批次数量 |
| data.currentBatch | Integer | 当前批次 |
| data.progressPercentage | Integer | 进度百分比（0-100） |
| data.startTime | String | 开始时间，格式：yyyy-MM-dd HH:mm:ss |
| data.endTime | String | 结束时间，格式：yyyy-MM-dd HH:mm:ss，同步进行中时为null |
| data.status | String | 状态（RUNNING/COMPLETED/FAILED） |
| data.errorMessage | String | 错误信息，同步成功时为null |

### 响应示例（失败）

```json
{
  "code": 500,
  "msg": "未找到同步进度信息",
  "data": null
}
```

## 权限要求

- **权限标识**: `integration:object:progress`
- **说明**: 需要登录认证，且用户需要具有查询对象同步进度的权限

## 业务规则

1. 如果对象ID为空，返回错误信息"对象ID不能为空"
2. 如果未找到同步进度信息（同步任务已完成或失败），返回错误信息"未找到同步进度信息"
3. 进度信息存储在内存中，系统重启后进度信息丢失
4. 同步任务完成后立即清除进度信息，不保留历史记录

## 异常处理

| 异常场景 | 响应码 | 响应消息 |
|----------|---------|----------|
| 对象ID为空 | 500 | 对象ID不能为空 |
| 未找到同步进度信息 | 500 | 未找到同步进度信息 |
| 查询进度时发生异常 | 500 | 查询对象同步进度时发生异常: [异常信息] |

## 使用场景

1. 用户触发对象同步后，通过该接口查询同步进度
2. 前端页面定时轮询该接口，实时显示同步进度
3. 管理员监控多个对象的同步进度

## 注意事项

1. 进度信息仅在同步进行中存在，同步完成后会被清除
2. 如果查询到进度信息，说明同步正在进行中
3. 如果未查询到进度信息，说明同步已完成或失败，或者从未触发过同步
4. 进度百分比计算公式：progressPercentage = (processedBatches / totalBatches) * 100

## 相关接口

- [查询所有正在同步的对象进度](0010-query-all-progress.md) - 查询所有正在同步的对象进度列表
- [同步单对象数据到本地数据库](0008-sync-single-object-data.md) - 触发指定对象的单次数据同步操作
- [同步多个对象数据到本地数据库](0009-sync-multiple-object-data.md) - 触发多个对象的批量数据同步操作
