datai/docs/archive/prompts/003-insert-progress-tracking.md

129 lines
5.8 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.

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