datai-vue/doc/salesforce/integration/DataiIntegrationMetadataChangeController/0007-sync-to-local.md
Kris 1177dbde35 feat: 添加元数据变更中心和实时同步统计页面
- 新增元数据变更中心页面 (metadatachange/index.vue)
  - 集成统计卡片显示变更数据
  - 支持按变更类型、操作类型、同步状态分组统计
  - 支持趋势统计图表展示
  - 优化查询条件布局,移至页面顶部

- 新增实时同步统计页面 (statistics/realtime/index.vue)
  - 显示实时同步服务状态和控制按钮
  - 统计启用实时同步的对象数量
  - 自动刷新统计数据(30秒间隔)

- 优化数据同步页面 (datasync/index.vue)
  - 修正字段映射以匹配API响应
  - 更新统计卡片显示实际数据

- 优化同步日志统计页面 (statistics/synclog/index.vue)
  - 更新表格列以匹配API响应结构
  - 更新查询参数和映射函数

- 更新导航栏菜单 (Navbar/index.vue)
  - 添加元数据变更中心菜单项

- 新增API接口 (realtimeservice.js)
  - 添加getStatistics函数获取实时同步统计数据

- 新增接口文档
  - DataiIntegrationRealtimeSyncController 接口文档
  - DataiIntegrationRealtimeSyncLogController 接口文档
2026-01-13 13:50:07 +08:00

161 lines
4.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 接口文档:同步元数据变更到本地数据库
## 接口信息
- **接口名称**: 同步元数据变更到本地数据库
- **接口路径**: /integration/change/{id}/sync
- **请求方法**: POST
- **模块归属**: integration
- **版本号**: v1.0
- **创建日期**: 2026-01-09
- **最后更新**: 2026-01-09
## 功能描述
同步元数据变更到本地数据库根据元数据变更ID将指定的元数据变更同步到本地数据库。
该方法会:
1. 根据ID查询元数据变更记录
2. 根据变更类型OBJECT或FIELD执行相应的同步操作
3. 对于对象变更:执行对象的创建、修改或删除操作
4. 对于字段变更:执行字段的创建、修改或删除操作
5. 更新元数据变更记录的同步状态
## 请求参数
### 路径参数
| 参数名 | 类型 | 必填 | 描述 | 示例 |
|--------|------|------|------|------|
| id | Long | 是 | 元数据变更ID | 1 |
## 响应数据
### 成功响应
**HTTP 状态码**: 200 OK
```json
{
"code": 200,
"message": "操作成功",
"data": {
"success": true,
"message": "同步成功",
"changeId": 1,
"changeType": "OBJECT",
"operationType": "CREATE",
"objectApi": "TestObject__c"
}
}
```
| 字段名 | 类型 | 描述 | 示例 |
|--------|------|------|------|
| success | Boolean | 同步是否成功 | true |
| message | String | 同步结果消息 | 同步成功 |
| changeId | Long | 元数据变更ID | 1 |
| changeType | String | 变更类型 | OBJECT |
| operationType | String | 操作类型 | CREATE |
| objectApi | String | 对象API名称 | TestObject__c |
### 失败响应
**HTTP 状态码**: 400 Bad Request
```json
{
"code": 400,
"message": "同步失败: 元数据变更记录不存在",
"data": null
}
```
| 错误码 | 错误信息 | 描述 |
|--------|----------|------|
| 400 | 同步失败: [具体错误信息] | 同步过程中出现的具体错误 |
| 403 | 无权限执行此操作 | 当用户没有integration:change:sync权限时 |
| 500 | 同步失败 | 服务器内部错误导致同步失败 |
## 接口示例
### 请求示例
```bash
curl -X POST "http://localhost:8080/integration/change/1/sync" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer [token]"
```
### 响应示例
**成功**:
```json
{
"code": 200,
"message": "操作成功",
"data": {
"success": true,
"message": "同步成功",
"changeId": 1,
"changeType": "OBJECT",
"operationType": "CREATE",
"objectApi": "TestObject__c"
}
}
```
**失败**:
```json
{
"code": 400,
"message": "同步失败: 元数据变更记录不存在",
"data": null
}
```
## 错误处理
- **400 Bad Request**: 同步过程中出现的具体错误,如元数据变更记录不存在、同步操作失败等
- **403 Forbidden**: 用户无权限执行此操作
- **500 Internal Server Error**: 服务器内部错误导致同步失败
## 注意事项
- 同步操作可能耗时较长,取决于变更的复杂度
- 同步过程中会执行数据库操作,可能会锁定相关表
- 对于对象变更,会执行对象的创建、修改或删除操作
- 对于字段变更,会执行字段的创建、修改或删除操作
- 同步完成后,元数据变更记录的同步状态会被更新
## 相关接口
- [查询对象元数据变更列表](http://localhost:8080/integration/change/list) - 查询所有元数据变更列表
- [查询未同步的元数据变更列表](http://localhost:8080/integration/change/unsynced) - 查询未同步的元数据变更列表
- [批量同步元数据变更到本地数据库](http://localhost:8080/integration/change/syncBatch) - 批量同步元数据变更
## 实现细节
- 接口通过调用`dataiIntegrationMetadataChangeService.syncToLocalDatabase()`方法实现同步
- 服务层会根据变更类型执行相应的同步操作
- 支持对象变更和字段变更的同步
- 同步过程中会处理异常并返回详细的错误信息
- 同步完成后会更新元数据变更记录的同步状态
## 测试信息
### 测试环境
- **环境**: 开发环境
- **版本**: v1.0
### 测试用例
| 测试场景 | 输入参数 | 预期结果 | 实际结果 | 状态 |
|----------|----------|----------|----------|------|
| 同步对象创建变更 | id=1对象创建变更 | 操作成功,返回同步成功信息 | 操作成功,返回同步成功信息 | 通过 |
| 同步字段修改变更 | id=2字段修改变更 | 操作成功,返回同步成功信息 | 操作成功,返回同步成功信息 | 通过 |
| 同步不存在的变更 | id=999不存在 | 操作失败,返回变更记录不存在错误 | 操作失败,返回变更记录不存在错误 | 通过 |
| 无权限同步 | 任意参数 | 操作失败返回403错误 | 操作失败返回403错误 | 通过 |