datai/docs/archive/prompts/002-sync-progress-tracking.md

147 lines
6.3 KiB
Markdown
Raw 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 同步进度跟踪实现提示词
## 输入引用
引用相关的 docs 文档链接:
- [REQ-002.md](../requirements/REQ-002.md) - syncObjectData 同步进度跟踪需求文档
- [0002-sync-progress-tracking.md](../decisions/adr/0002-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
强制列出本次 Prompt 依赖的 Canvas 文件:
- [Authentication.canvas](../Authentication.canvas) - 项目架构视觉化展示
- **相关节点**: [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) - 对象同步服务实现
## 目标
实现 syncObjectData 同步进度跟踪功能,包括:
1. 创建进度信息数据结构SyncProgress 实体类)
2. 创建进度跟踪服务接口和实现类
3. 在 Controller 中添加进度查询接口
4. 在 Service 中集成进度跟踪功能
5. 同步任务完成后立即清除该同步进度信息,不保留历史记录
## 输出格式
输出以下 Java 代码文件:
1. **SyncProgress.java** - 进度信息实体类
- 路径:`datai-salesforce-integration/src/main/java/com/datai/integration/model/domain/SyncProgress.java`
- 包含字段objectId、syncType、totalBatches、processedBatches、currentBatch、progressPercentage、startTime、endTime、status、errorMessage
- 使用 Lombok 注解(@Data、@Builder、@NoArgsConstructor、@AllArgsConstructor
2. **ISyncProgressService.java** - 进度跟踪服务接口
- 路径:`datai-salesforce-integration/src/main/java/com/datai/integration/service/ISyncProgressService.java`
- 包含方法:
- `startProgressTracking(Integer objectId, Integer totalBatches, String syncType)`
- `updateProgress(Integer objectId, Integer processedBatches, Integer currentBatch)`
- `completeProgress(Integer objectId)` - 完成进度跟踪并立即清除该同步进度信息
- `failProgress(Integer objectId, String errorMessage)` - 标记进度失败并立即清除该同步进度信息
- `getProgress(Integer objectId)`
- `getAllProgress()`
3. **SyncProgressServiceImpl.java** - 进度跟踪服务实现类
- 路径:`datai-salesforce-integration/src/main/java/com/datai/integration/service/impl/SyncProgressServiceImpl.java`
- 使用 ConcurrentHashMap 存储进度信息
- 实现所有接口方法
- completeProgress 和 failProgress 方法在完成后立即清除该同步进度信息
- 使用 @Service 注解
- 添加日志记录
4. **DataiIntegrationObjectController.java** - 添加进度查询接口
- 在现有 Controller 中添加以下接口:
- `GET /integration/object/progress/{objectId}` - 查询指定对象的同步进度
- `GET /integration/object/progress` - 查询所有正在同步的对象进度
- 使用 @RestController@RequestMapping 注解
- 返回统一响应格式AjaxResult
5. **DataiIntegrationObjectServiceImpl.java** - 集成进度跟踪
- 注入 ISyncProgressService
- 在 syncObjectData 方法开始时调用 startProgressTracking
- 在同步过程中调用 updateProgress 更新进度
- 在同步完成时调用 completeProgress该方法会立即清除进度信息
- 在同步失败时调用 failProgress该方法会立即清除进度信息
## 约束
列出使用此提示词时的约束条件,例如:
1. **技术栈限制**
- 使用 Spring Boot 框架
- 使用 Lombok 简化代码
- 使用 SLF4J 进行日志记录
- 使用 ConcurrentHashMap 作为进度存储容器
2. **性能要求**
- 进度查询接口响应时间 < 100ms
- 进度更新操作对同步性能影响 < 5%
- 支持 10 个对象同时同步并跟踪进度
3. **安全性要求**
- 进度查询接口需要登录认证
- 避免内存泄漏确保过期数据被正确清理
4. **兼容性要求**
- 不影响现有的同步逻辑
- 与现有的 ADR-0001Salesforce CDC 同步方案不冲突
- 保持代码风格一致性
## Rule Set
"请严格参考 @Authentication.canvas 中的状态机转移逻辑不要自行发挥。"
**具体规则**
- 必须使用 Canvas 中定义的类名和方法名
- 必须遵循 Canvas 中定义的调用关系
- 必须参考 Canvas 中的流程图逻辑
- 必须遵循项目现有的代码风格和命名规范
- 必须使用项目现有的工具类和依赖 AjaxResultSecurityUtils
## 验收标准
定义验证输出质量的具体标准例如
1. **功能完整性**
- 所有接口方法正确实现
- 进度信息能够正确初始化更新完成和失败
- 进度查询接口能够返回准确的进度信息
2. **代码正确性**
- 代码编译通过无语法错误
- 遵循 Java 编码规范
- 使用正确的注解和依赖注入
3. **性能指标**
- 进度查询接口响应时间 < 100ms
- 进度更新操作轻量级对同步性能影响 < 5%
4. **文档准确性**
- 代码注释清晰说明关键逻辑
- 方法命名准确符合业务含义
## 风险
识别使用此提示词可能带来的风险例如
1. **输出质量风险**
- 生成的代码可能存在 bug
- 代码风格可能与现有代码不一致
2. **技术实现风险**
- 修改现有的 syncObjectData 方法可能引入 bug
- 进度跟踪逻辑与同步逻辑耦合可能影响代码可维护性
3. **时间成本风险**
- 实现和测试工作量可能超出预期
## 使用记录
| 日期 | 使用场景 | 输入参数 | 输出结果 | 反馈 | 改进措施 |
|------|---------|---------|---------|------|----------|
| 2026-01-16 | 实现 syncObjectData 同步进度跟踪功能 | REQ-002ADR-0002 | 生成 6 Java 文件 | 待验证 | 待定 |