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