datai/docs/archive/REQ-002.md

122 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.

# syncObjectData 同步进度跟踪需求
## 需求信息
- **需求名称**: syncObjectData 同步进度跟踪
- **需求类型**: 功能需求
- **需求编号**: REQ-002
- **创建日期**: 2026-01-16
- **需求版本**: v1.0.0
- **需求提出人**: 用户
- **需求状态**: ✅ 已批准
## 输入引用
引用相关的 docs 文档链接:
- [0001-salesforce-realtime-sync.md](0001-salesforce-realtime-sync.md) - Salesforce数据及时同步至本地数据库
- [0002-sync-progress-tracking.md](../decisions/adr/0002-sync-progress-tracking.md) - syncObjectData 同步进度跟踪架构决策
- [002-sync-progress-tracking.md](../prompts/002-sync-progress-tracking.md) - syncObjectData 同步进度跟踪实现提示词
- [DataiIntegrationObjectController](../../datai-salesforce-integration/src/main/java/com/datai/integration/controller/DataiIntegrationObjectController.java) - 对象同步控制接口
- [DataiIntegrationObjectServiceImpl](../../datai-salesforce-integration/src/main/java/com/datai/integration/service/impl/DataiIntegrationObjectServiceImpl.java) - 对象同步服务实现
## Context Maps
强制列出本次需求依赖的 Canvas 文件:
- [Authentication.canvas](../Authentication.canvas) - 项目架构视觉化展示
- **相关节点**: DataiIntegrationObjectController - 对象同步控制接口
## 需求目标
在 syncObjectData 方法执行过程中,提供实时的同步进度跟踪功能,让用户能够了解当前同步任务的实际进度、已处理的数据量、剩余数据量等信息,提升用户体验和系统透明度。
## 需求描述
### 概述
当前 syncObjectData 方法在执行同步操作时,用户无法获知同步的实际进度,只能等待同步完成。本需求旨在实现同步进度的实时跟踪和查询功能。
### 详细需求
#### 1. 进度跟踪机制
- **需求描述**: 在 syncObjectData 方法执行过程中,实时记录和更新同步进度信息
- **优先级**: 高
- **验收标准**:
- 同步开始时,初始化进度跟踪记录
- 同步过程中,实时更新已处理的数据量
- 同步完成时,标记进度为完成状态并立即清除该同步进度信息
- 同步失败时,标记进度为失败状态并立即清除该同步进度信息
- **依赖关系**: 无
- **实现建议**: 使用内存缓存(如 ConcurrentHashMap存储进度信息key 为对象 IDvalue 为进度对象
#### 2. 进度查询接口
- **需求描述**: 提供查询接口,让用户能够获取当前同步任务的进度信息
- **优先级**: 高
- **验收标准**:
- 提供 REST API 接口查询同步进度
- 返回进度百分比、已处理数量、总数量、当前状态等信息
- 支持按对象 ID 查询进度
- **依赖关系**: 依赖需求 1进度跟踪机制
- **实现建议**: 在 DataiIntegrationObjectController 中添加进度查询接口
#### 3. 进度信息存储
## 约束
列出需求实现时的约束条件,例如:
- 进度信息存储在内存中,系统重启后进度信息丢失
- 同步任务完成后立即清除该同步进度信息,不保留历史记录
- 进度查询接口需要考虑并发访问的性能
- 进度跟踪不应影响同步操作的性能
- 进度信息的更新频率需要合理控制
## Rule Set
"请严格参考 @Authentication.canvas 中的状态机转移逻辑,不要自行发挥。"
**具体规则**
- 必须使用 Canvas 中定义的类名和方法名
- 必须遵循 Canvas 中定义的调用关系
- 必须参考 Canvas 中的流程图逻辑
## 验收标准
定义验证需求是否满足的具体标准,例如:
- 功能完整性:能够正确跟踪和查询同步进度
- 性能指标:进度查询接口响应时间 < 100ms
- 并发支持支持至少 10 个对象同时同步并跟踪进度
- 用户体验进度信息准确实时易理解
## 风险
识别需求可能带来的风险例如
- 技术实现风险内存存储可能导致系统重启后进度丢失
- 时间风险实现进度跟踪可能需要修改现有的同步逻辑
- 性能风险频繁的进度更新可能影响同步性能
- 质量风险并发同步时可能出现进度信息不一致
## 需求变更记录
| 日期 | 变更内容 | 变更原因 | 变更人 | 审核人 | 状态 |
|------|---------|---------|--------|--------|------|
| 2026-01-16 | 创建需求文档 | 新增需求 | 用户 | 待审核 | 待审核 |
## 相关人员
- **需求提出人**: 用户
- **需求负责人**: 待定
- **技术负责人**: 待定
- **测试负责人**: 待定
- **其他相关人员**: 待定
## 评审信息
- **评审日期**: 待定
- **评审人员**: 待定
- **评审结果**: 待定
- **评审意见**: 待定
- **修改建议**: 待定