datai/datai-scenes/datai-scene-salesforce/docs/sessions/2026-01-28-001-session.md

74 KiB
Raw Permalink Blame History

会话记录

元数据

  • 需求编号001
  • 开始时间2026-01-28
  • 结束时间2026-02-02
  • 当前阶段:阶段 9闭环复盘和接口文档高级功能
  • 状态已完成认证和会话管理已完成CRUD 操作已完成,批量操作已完成,查询功能已完成,描述功能已完成,高级功能已完成阶段 9

需求澄清记录

原始需求

严格遵守项目规则,现在我有个需求,想将 d:\idea_demo\datai\datai-scenes\datai-scene-salesforce\docs\reference-code\sforce\docs\partner-module.md 中的功能结合当前模块的实际情况,在 d:\idea_demo\datai\datai-scenes\datai-scene-salesforce\datai-salesforce-partner 模块下进行实现默认实现源org类型

第一轮澄清

AI 提问

  1. 这个功能的核心目标是什么?
  2. 这个功能涉及哪些业务场景?
  3. 这个功能需要支持哪些用户角色?
  4. 功能边界:根据 partner-module.md 文档Partner API 包含大量功能CRUD、批量操作、查询、描述、认证、高级功能等。您希望实现所有功能还是优先实现核心功能哪些功能是必须实现的
  5. 使用场景:这个模块的主要使用场景是什么?
  6. 用户角色:谁会使用这个模块?
  7. 依赖包:我看到 datai-salesforce-partner/src/main/resources/lib/partner.jar 已经存在,这个是 Salesforce 官方的 Partner API 客户端吗?我们需要基于这个包进行封装吗?
  8. 现有集成:项目中已经有 datai-salesforce-integration 模块,其中包含 PartnerV1ConnectionIPartnerV1Connection,新的 datai-salesforce-partner 模块与它们的关系是什么?

用户回答 对,就实现源 orgSource Org实现所有功能全部功能除了引用 d:\idea_demo\datai\datai-scenes\datai-scene-salesforce\datai-salesforce-auth 模块进行登录认证,其它不引用任何模块的代码

第二轮澄清

AI 提问

  1. 功能范围确认:根据 partner-module.mdPartner API 包含以下功能模块您确认全部实现吗CRUD 操作、批量操作、查询功能、描述功能、认证和会话、高级功能)
  2. 认证集成:您提到只引用 datai-salesforce-auth 模块进行登录认证,具体是指?
  3. 独立模块设计:既然不引用其他模块,那么是否需要独立的 Controller 层?还是只提供 Service 层?是否需要数据库表?
  4. 依赖包使用:partner.jar 包含了 Partner API 的核心类Connector、PartnerConnection、SObject 等),我们需要直接使用这些类?还是对这些类进行封装?
  5. 异常处理:是否需要自定义异常类?还是使用 datai-salesforce-common 模块中的现有异常?
  6. 日志记录:是否需要记录 API 调用日志?还是依赖 datai-salesforce-integration 的日志功能?
  7. 连接管理:是否需要连接池?还是每次调用都创建新连接?
  8. 并发控制:是否需要限流?还是依赖 datai-salesforce-integration 的限流功能?
  9. 缓存策略:是否需要缓存 Describe 结果?

用户回答 1、Partner API 包含功能模块,确认全部实现 2、使用 datai-salesforce-auth 的 SessionManager 管理会话然后获取Session ID和url 3、独立模块完全独立模块除了引用auth模块其它都是独立的 4、partner.jar有的直接就用现有的类 5、异常处理datai-salesforce-common 模块中的现有异常可以用就用,没有的话就自定义 6、日志记录暂不考虑 7、连接、并发、缓存等性能相关不影响功能的暂不考虑

第三轮澄清

AI 提问 提供 Controller 层默认实现source org类型

用户回答 提供 Controller 层默认实现source org类型

第四轮澄清

AI 提问 直接使用 partner.jar 中的现有类Connector、PartnerConnection、SObject、QueryResult、SaveResult 等)如果确实有需求需要使用自定义类,则新增,不过新增前需要严格判断

用户回答 直接使用 partner.jar 中的现有类Connector、PartnerConnection、SObject、QueryResult、SaveResult 等)如果确实有需求需要使用自定义类,则新增,不过新增前需要严格判断

澄清总结

  • 功能范围:实现 Partner API 的所有功能模块CRUD、批量操作、查询、描述、认证、高级功能
  • 业务流程:用户调用 REST API → Service 层处理 → 使用 partner.jar 调用 Salesforce API → 返回结果
  • 数据交互:不涉及数据库表,直接调用 Salesforce API
  • 性能要求:暂不考虑连接池、并发控制、缓存等性能优化
  • 安全要求:集成 datai-salesforce-auth 模块的会话管理,使用 SessionManager 获取 Session ID 和 Server URL
  • 兼容性要求:支持 Salesforce Partner API v65.0,兼容 Java 22 和 Spring Boot

需求描述

datai-salesforce-partner 模块中实现 Salesforce Partner API 的完整功能,提供对 Salesforce 源 orgSource Org的数据操作能力包括 CRUD 操作、批量操作、查询功能、描述功能、认证和会话管理、高级功能等。

执行阶段

阶段 1需求定义与入库

  • 状态:已完成
  • 生成文档:需求文档
  • 关键决策:
    • 实现所有 Partner API 功能模块
    • 使用 SessionManager 管理会话
    • 提供 Service 层和 Controller 层
    • 直接使用 partner.jar 中的现有类
    • 优先使用 datai-salesforce-common 模块中的现有异常
    • 暂不考虑性能优化(连接池、并发控制、缓存)

阶段 2方案设计

  • 状态:已完成
  • 生成文档:认证和会话管理-设计
  • 关键设计决策:
    • 工厂模式:使用 PartnerConnectionFactory 工厂类创建和管理 PartnerConnection 连接,继承 AbstractConnectionFactory 抽象类
    • 连接缓存:利用 AbstractConnectionFactory 提供的连接缓存和自动 Session 有效性检查功能
    • 会话管理:集成 SessionManager 获取会话信息,支持 Session 过期时自动重新登录
    • RESTful API提供 3 个 REST API 接口(获取会话信息、获取用户信息、修改密码)
    • 异常处理:使用 datai-salesforce-common 模块的异常体系,统一处理各种异常情况
    • 技术栈Spring Boot 3.x、Spring Security 6.x、MyBatis Plus 3.x、Salesforce Partner API WSC 58.x
    • 数据模型:不涉及数据库表,所有数据均来自 Salesforce API
    • 性能优化:连接缓存、多线程安全、压缩传输
    • 安全设计HTTPS 加密传输、权限控制、防注入

阶段 2方案设计

  • 状态:进行中
  • 生成文档:
  • 关键设计决策:
    • 认证和会话管理:
      • 系统架构:采用工厂模式管理 PartnerConnection 连接,继承 AbstractConnectionFactory 抽象类
      • 连接缓存:利用 AbstractConnectionFactory 提供的连接缓存和自动 Session 有效性检查功能
      • 会话管理:集成 SessionManager 获取会话信息,支持 Session 过期时自动重新登录
      • RESTful API提供 3 个 REST API 接口(获取会话信息、获取用户信息、修改密码)
      • 异常处理:使用 datai-salesforce-common 模块的异常体系,统一处理各种异常情况
      • 性能优化:连接缓存、多线程安全、压缩传输
      • 安全设计HTTPS 加密传输、权限控制、防注入
    • CRUD 操作:
      • 系统架构采用分层架构Controller → Service → Factory → Connection → Salesforce API
      • 模块架构:创建 PartnerCrudController、IPartnerCrudService、PartnerCrudServiceImpl、DTO、VO、SObjectConverter
      • 技术栈Spring Boot 3.x、Spring Security 6.x、若依框架、Salesforce Partner APIpartner.jar
      • 数据模型:不涉及数据库表,所有数据均来自 Salesforce API
      • 接口设计:提供 6 个 REST API 接口Create、Retrieve、Update、Delete、Upsert、Merge
      • 异常处理:使用 datai-salesforce-common 模块的异常体系,统一处理各种异常情况
      • 性能优化:连接缓存、自动 Session 有效性检查、批量操作
      • 安全设计HTTPS 加密传输、权限控制、参数验证、防注入
    • 批量操作:
      • 系统架构采用分层架构Controller → Service → Factory → Connection → Salesforce API
      • 模块架构:创建 PartnerBatchController、IPartnerBatchService、PartnerBatchServiceImpl、DTO、VO
      • 技术栈Spring Boot 3.x、Spring Security 6.x、若依框架、Salesforce Partner APIpartner.jar
      • 数据模型:不涉及数据库表,所有数据均来自 Salesforce API
      • 接口设计:提供 4 个 REST API 接口(批量创建、批量更新、批量删除、批量 Upsert
      • 核心算法:自动分批处理算法、批量操作统计算法
      • 集成方案:与 Salesforce API 集成、与 SessionManager 集成
      • 异常处理:使用 datai-salesforce-common 模块的异常体系,统一处理各种异常情况
      • 性能优化连接缓存、自动分批处理、AllOrNoneHeader 使用、DisableFeedTrackingHeader 使用、批次间休眠
      • 安全设计HTTPS 加密传输、权限控制、参数验证、防注入

阶段 3方案决策

  • 状态:进行中
  • 生成文档:
  • 关键决策:
    • 认证和会话管理:
      • 选择方案 1使用 AbstractConnectionFactory + SessionManager
      • 决策理由:复用现有基础设施、与 SessionManager 深度集成、开发效率高、维护成本低、线程安全、符合项目架构
      • 放弃方案 2自定义工厂模式的理由重复实现连接缓存和 Session 有效性检查、维护成本高、线程安全难以保证
    • CRUD 操作:
      • 选择方案 1完整分层架构 + 批量操作支持
      • 决策理由:符合若依框架规范、便于维护和扩展、支持批量操作、异常处理统一、参数验证完善、符合项目长期规划
      • 放弃方案 2简化架构的理由不符合若依框架规范、不支持批量操作、参数验证不完善
      • 放弃方案 3使用若依框架通用 CRUD的理由不符合 Salesforce API 的特殊性、难以满足定制化需求
    • 批量操作:
      • 选择方案 1完整分层架构 + 自动分批处理 + 性能优化
      • 决策理由:符合若依框架规范、支持大规模数据处理、支持部分失败情况、性能优化完善、异常处理统一、参数验证完善、符合项目长期规划、与已有 ADR 一致
      • 放弃方案 2简化架构 + 固定批量大小)的理由:不符合若依框架规范、不支持大规模数据处理、批量操作行为不够灵活、性能优化不足、参数验证不完善、扩展性受限
      • 放弃方案 3使用若依框架通用批量操作的理由不符合 Salesforce API 的特殊性、难以满足定制化需求、不支持自动分批处理、性能优化不足、异常处理不完善、参数验证不完善

阶段 4数据库结构

  • 状态:进行中
  • 数据库变更:
    • 认证和会话管理:不涉及
      • 原因:设计文档明确说明"不涉及数据库表,所有数据均来自 Salesforce API",认证和会话管理功能直接通过 Salesforce Partner API 操作 Salesforce 数据,不需要在本地数据库中存储任何数据
      • SQL 脚本:无
    • CRUD 操作:不涉及
      • 原因:设计文档明确说明"不涉及数据库表,所有数据均来自 Salesforce API"CRUD 操作功能直接通过 Salesforce Partner API 操作 Salesforce 数据,不需要在本地数据库中存储任何数据
      • SQL 脚本:无
    • 批量操作:不涉及
      • 原因:设计文档明确说明"不涉及数据库表,所有数据均来自 Salesforce API",批量操作功能直接通过 Salesforce Partner API 操作 Salesforce 数据,不需要在本地数据库中存储任何数据
      • SQL 脚本:无

阶段 5提示词生成

  • 状态:进行中
  • 生成文档:
  • 提示词内容摘要:
    • 认证和会话管理:
      • 引用真源:需求文档、设计文档
      • 需求描述:实现认证和会话管理功能,包括获取会话信息、获取用户信息、修改密码、工厂模式管理连接
      • 设计方案:使用 PartnerConnectionFactory 工厂类、连接缓存、SessionManager 集成、RESTful API、异常处理
      • 输出格式要求:必须包含 Factory、Service、Controller、DTO、VO 文件,必须包含单元测试
      • 代码规范要求:类命名、方法命名、变量命名、注释规范、代码格式、导入规范
      • 测试要求:单元测试覆盖率不低于 80%,包含正常场景和异常场景
      • 注意事项:使用 partner.jar 现有类、继承 AbstractConnectionFactory、使用 SessionManager、使用异常类、权限控制、参数验证、Swagger 文档、日志记录、依赖注入、REST API 定义、Lombok 注解
    • CRUD 操作:
      • 引用真源:需求文档、设计文档
      • 需求描述:实现 Salesforce Partner API 的 CRUD 操作功能,包括 Create、Retrieve、Update、Delete、Upsert、Merge 六个核心操作
      • 设计方案:使用 PartnerConnectionFactory 获取连接、分层架构、RESTful API、批量操作支持、异常处理
      • 输出格式要求:必须包含 Controller、Service、DTO、VO、工具类、单元测试
      • 代码规范要求:类命名、方法命名、变量命名、注释规范、代码格式、导入规范
      • 测试要求:单元测试覆盖率不低于 80%,包含正常场景、批量操作场景、异常场景
      • 注意事项:使用 partner.jar 现有类、使用 PartnerConnectionFactory、使用异常类、权限控制、参数验证、Swagger 文档、日志记录、依赖注入、REST API 定义、Lombok 注解、SObject 转换、批量操作限制、字段清空、子对象关系
    • 批量操作:
      • 引用真源:需求文档、设计文档
      • 需求描述:实现 Salesforce Partner API 的批量操作功能,包括批量创建、批量更新、批量删除、批量更新或插入四个核心操作
      • 设计方案:使用 PartnerConnectionFactory 获取连接、分层架构、RESTful API、自动分批处理、AllOrNoneHeader 控制、性能优化、异常处理
      • 输出格式要求:必须包含 Controller、Service、DTO、VO、工具类、单元测试
      • 代码规范要求:类命名、方法命名、变量命名、注释规范、代码格式、导入规范
      • 测试要求:单元测试覆盖率不低于 80%包含正常场景、部分失败场景、全部失败场景、超过限制场景、自动分批处理场景、AllOrNoneHeader 控制场景、DisableFeedTrackingHeader 使用场景、批次间休眠场景
      • 注意事项:使用 partner.jar 现有类、使用 PartnerConnectionFactory、使用异常类、权限控制、参数验证、Swagger 文档、日志记录、依赖注入、REST API 定义、Lombok 注解、SObject 转换、批量操作限制、自动分批处理、AllOrNoneHeader 控制、DisableFeedTrackingHeader 使用、批次间休眠、详细的成功/失败统计、友好的错误消息(中文)、详细的错误日志

阶段 6代码生成

  • 状态:进行中
  • 代码生成器使用:
    • 认证和会话管理:不涉及数据库表新增,未使用代码生成器
    • CRUD 操作:不涉及数据库表新增,未使用代码生成器
    • 批量操作:不涉及数据库表新增,未使用代码生成器
  • 生成的代码文件:
    • 认证和会话管理:
      1. FactoryPartnerConnectionFactory.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/factory/PartnerConnectionFactory.java
      2. Service 接口:IPartnerConnectionService.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/service/IPartnerConnectionService.java
      3. Service 实现:PartnerConnectionServiceImpl.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/service/impl/PartnerConnectionServiceImpl.java
      4. ControllerPartnerConnectionController.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/controller/PartnerConnectionController.java
      5. DTOChangePasswordDto.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/model/dto/ChangePasswordDto.java
      6. VOSessionInfoVo.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/model/vo/SessionInfoVo.java
      7. VOUserInfoVo.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/model/vo/UserInfoVo.java
      8. 单元测试:PartnerConnectionServiceImplTest.java(路径:datai-salesforce-partner/src/test/java/com/datai/partner/service/impl/PartnerConnectionServiceImplTest.java
    • CRUD 操作:
      1. ControllerPartnerCrudController.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/controller/PartnerCrudController.java
      2. Service 接口:IPartnerCrudService.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/service/IPartnerCrudService.java
      3. Service 实现:PartnerCrudServiceImpl.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/service/impl/PartnerCrudServiceImpl.java
      4. DTOCreateRecordDto.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/model/dto/CreateRecordDto.java
      5. DTOUpdateRecordDto.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/model/dto/UpdateRecordDto.java
      6. DTODeleteRecordDto.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/model/dto/DeleteRecordDto.java
      7. DTOUpsertRecordDto.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/model/dto/UpsertRecordDto.java
      8. DTOMergeRecordDto.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/model/dto/MergeRecordDto.java
      9. VORecordResultVo.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/model/vo/RecordResultVo.java
      10. VORetrieveResultVo.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/model/vo/RetrieveResultVo.java
      11. VOErrorVo.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/model/vo/ErrorVo.java
      12. 工具类:SObjectConverter.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/util/SObjectConverter.java
      13. 单元测试:PartnerCrudServiceImplTest.java(路径:datai-salesforce-partner/src/test/java/com/datai/partner/service/impl/PartnerCrudServiceImplTest.java
    • 批量操作:
      1. ControllerPartnerBatchController.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/controller/PartnerBatchController.java
      2. Service 接口:IPartnerBatchService.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/service/IPartnerBatchService.java
      3. Service 实现:PartnerBatchServiceImpl.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/service/impl/PartnerBatchServiceImpl.java
      4. DTOBatchCreateDto.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/model/dto/BatchCreateDto.java
      5. DTOBatchUpdateDto.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/model/dto/BatchUpdateDto.java
      6. DTOBatchDeleteDto.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/model/dto/BatchDeleteDto.java
      7. DTOBatchUpsertDto.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/model/dto/BatchUpsertDto.java
      8. VOBatchResultVo.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/model/vo/BatchResultVo.java
      9. VOBatchItemResultVo.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/model/vo/BatchItemResultVo.java
      10. 单元测试:PartnerBatchServiceImplTest.java(路径:datai-salesforce-partner/src/test/java/com/datai/partner/service/impl/PartnerBatchServiceImplTest.java
  • 代码规范遵循Spring Boot 3.x、Spring Security 6.x、若依框架规范
  • 测试覆盖率:
    • 认证和会话管理:单元测试覆盖率不低于 80%,包含正常场景和异常场景
    • CRUD 操作:单元测试覆盖率不低于 80%,包含正常场景、批量操作场景、异常场景
    • 批量操作:单元测试覆盖率不低于 80%包含正常场景、部分失败场景、全部失败场景、超过限制场景、自动分批处理场景、AllOrNoneHeader 控制场景、DisableFeedTrackingHeader 使用场景、批次间休眠场景

阶段 5提示词生成

  • 状态:已完成
  • 生成文档:认证和会话管理提示词
  • 提示词内容摘要:
    • 引用真源:需求文档、设计文档
    • 需求描述:实现认证和会话管理功能,包括获取会话信息、获取用户信息、修改密码、工厂模式管理连接
    • 设计方案:使用 PartnerConnectionFactory 工厂类、连接缓存、SessionManager 集成、RESTful API、异常处理
    • 输出格式要求:必须包含 Factory、Service、Controller、DTO、VO 文件,必须包含单元测试
    • 代码规范要求:类命名、方法命名、变量命名、注释规范、代码格式、导入规范
    • 测试要求:单元测试覆盖率不低于 80%,包含正常场景和异常场景
    • 注意事项:使用 partner.jar 现有类、继承 AbstractConnectionFactory、使用 SessionManager、使用异常类、权限控制、参数验证、Swagger 文档、日志记录、依赖注入、REST API 定义、Lombok 注解

阶段 6代码生成

  • 状态:已完成
  • 代码生成器使用:不涉及数据库表新增,未使用代码生成器
  • 生成的代码文件:
    1. FactoryPartnerConnectionFactory.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/factory/PartnerConnectionFactory.java
    2. Service 接口:IPartnerConnectionService.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/service/IPartnerConnectionService.java
    3. Service 实现:PartnerConnectionServiceImpl.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/service/impl/PartnerConnectionServiceImpl.java
    4. ControllerPartnerConnectionController.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/controller/PartnerConnectionController.java
    5. DTOChangePasswordDto.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/model/dto/ChangePasswordDto.java
    6. VOSessionInfoVo.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/model/vo/SessionInfoVo.java
    7. VOUserInfoVo.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/model/vo/UserInfoVo.java
    8. 单元测试:PartnerConnectionServiceImplTest.java(路径:datai-salesforce-partner/src/test/java/com/datai/partner/service/impl/PartnerConnectionServiceImplTest.java
  • 代码规范遵循Spring Boot 3.x、Spring Security 6.x、若依框架规范
  • 测试覆盖率:单元测试覆盖率不低于 80%,包含正常场景和异常场景

阶段 7会话记录

  • 状态:已完成
  • 生成文档:无
  • 关键决策:完整记录了当前会话的所有信息,包括需求澄清、需求定义、方案设计、方案决策、数据库结构生成、提示词生成、代码生成等所有阶段

阶段 8变更日志

  • 状态:已完成
  • 生成文档:
  • 变更内容:
    • 认证和会话管理:
      • 新增功能:实现认证和会话管理功能,包括获取会话信息、获取用户信息、修改密码
      • 新增代码文件8 个文件7 个 Java 文件 + 1 个测试文件)
      • 新增接口3 个 REST API 接口
      • 影响范围datai-salesforce-partner 模块
    • CRUD 操作:
      • 新增功能:实现 Salesforce Partner API 的 CRUD 操作功能,包括 Create、Retrieve、Update、Delete、Upsert、Merge 六个核心操作
      • 新增代码文件13 个文件1 个 Controller + 2 个 Service + 5 个 DTO + 3 个 VO + 1 个工具类 + 1 个测试)
      • 新增接口6 个 REST API 接口
      • 影响范围datai-salesforce-partner 模块
    • 批量操作:
      • 新增功能:实现 Salesforce Partner API 的批量操作功能,包括批量创建、批量更新、批量删除、批量 Upsert 四个核心操作
      • 新增代码文件10 个文件1 个 Controller + 2 个 Service + 4 个 DTO + 2 个 VO + 1 个测试)
      • 新增接口4 个 REST API 接口
      • 影响范围datai-salesforce-partner 模块
      • 核心特性:支持最多 1000 条记录,自动分批处理(每批最多 200 条),支持部分失败情况,提供详细的成功/失败统计

阶段 9复盘与接口

  • 状态:已完成
  • 生成文档:
  • 复盘主要结论:
    • 成功经验SSOT 流程的严格执行、详细的提示词设计、完整的会话记录、有效的架构决策、代码生成的规范性、完善的异常处理
    • 改进点阶段间的过渡可以更流畅、代码生成前的验证可以更严格、API 文档的自动生成可以考虑、单元测试的覆盖率可以提高、代码注释可以更详细
    • 问题分析:代码规范要求不够具体、会话记录的更新不及时、变更日志内容不够详细
    • 行动计划:增加对下一阶段的目的和流程的解释、增加对设计文档和决策记录的再次验证、探索使用 Swagger 等工具自动生成 API 文档、增加更多的测试用例、增加更多的代码注释、在后续的提示词设计中增加更具体的若依框架规范要求、在每个阶段完成后立即更新会话记录、在变更日志中增加更多的细节
    • 提取模式3 条有效的 Prompt 技巧、3 个避免的坑
    • 模板迭代:计划在下一个迭代中更新提示词模板,增加更具体的若依框架规范要求

阶段 2方案设计查询功能

  • 状态:已完成
  • 生成文档:
  • 关键设计决策:
    • 采用分层架构Controller → Service → PartnerConnectionFactory → Salesforce API
    • 支持四种查询功能Query、QueryAll、QueryMore、Search
    • 集成 SoqlBuilder 构建类型安全的 SOQL 查询
    • 使用 DTO/VO 模式进行数据封装
    • 支持分页查询QueryMore
    • 遵循 SOQL 语法限制(不支持 SELECT *、BETWEEN、JOIN、UNION 等)
    • 固定使用 source org 类型
    • 查询最多返回 50000 条记录
    • OFFSET 上限为 2000且必须与 LIMIT 一起使用

阶段 3方案决策查询功能

  • 状态:已完成
  • 生成文档:
  • 关键决策:
    • 决策 1:使用 SoqlBuilder 构建 SOQL 查询
      • 理由:类型安全、可读性高、与现有代码一致
    • 决策 2完整转换查询结果SObject → Map
      • 理由:解耦、灵活性高、与现有代码一致
    • 决策 3:使用 QueryMore 进行服务端分页
      • 理由性能优化、Salesforce 原生支持
    • 决策 4:递归处理嵌套对象
      • 理由:支持关系查询、保持数据完整性
  • 考虑的替代方案:
    • 原生字符串拼接构建 SOQL
    • 使用 DTO 映射替代 Map
    • 使用 Jackson 序列化 SObject

阶段 4数据库结构生成查询功能

  • 状态:已跳过
  • 分析结论:查询功能不涉及数据库变更
  • 理由:
    • 所有数据均来自 Salesforce API
    • 无需创建数据库表
    • 无需修改现有数据库结构
    • 查询结果直接通过 API 返回给客户端
  • 操作:直接进入阶段 5

阶段 5提示词生成查询功能

  • 状态:已完成
  • 生成文档:
  • 提示词内容摘要:
    • 引用真源:需求文档、设计文档、决策记录
    • 需求描述Query、QueryAll、QueryMore、Search 四个核心功能
    • 设计方案分层架构、DTO/VO 模式、SoqlBuilder、SObject 转换
    • 输出格式要求
      • ControllerPartnerQueryController4 个 RESTful API 接口)
      • ServiceIPartnerQueryService、PartnerQueryServiceImpl
      • DTOQueryDto、QueryAllDto、QueryMoreDto、SearchDto
      • VOQueryResultVo、SearchResultVo、SearchRecordVo
      • 单元测试PartnerQueryServiceImplTest
    • 代码规范要求:命名规范、注释规范、代码格式、异常处理、日志规范
    • 测试要求:覆盖率不低于 80%,包含多种测试场景
    • 注意事项SOQL 语法限制、性能考虑、安全性、兼容性、文档要求
    • 示例代码Query、QueryMore、Search 使用示例

阶段 6代码生成查询功能

  • 状态:已完成
  • 生成代码文件:
    • DTO 类4 个):
      • QueryDto.java - SOQL 查询请求 DTO
      • QueryAllDto.java - QueryAll 请求 DTO
      • QueryMoreDto.java - QueryMore 请求 DTO
      • SearchDto.java - SOSL 搜索请求 DTO
    • VO 类3 个):
      • QueryResultVo.java - 查询结果 VO
      • SearchResultVo.java - 搜索结果 VO
      • SearchRecordVo.java - 搜索记录 VO
    • Service 接口
      • IPartnerQueryService.java - 查询服务接口
    • Service 实现类
      • PartnerQueryServiceImpl.java - 查询服务实现
    • Controller 类
      • PartnerQueryController.java - 查询控制器4 个 RESTful API 接口)
    • 单元测试
      • PartnerQueryServiceImplTest.java - 查询服务单元测试8 个测试用例)
  • 代码生成器使用:未使用(不涉及数据库表)
  • 关键实现:
    • 使用 SoqlBuilder 构建类型安全的 SOQL 查询
    • 使用 SObjectConverter 转换 SObject 到 Map
    • 使用 QueryMore 进行服务端分页
    • 递归处理嵌套对象(支持关系查询)
    • 完整的异常处理和日志记录
    • 固定使用 source org 类型

阶段 6代码生成描述功能

  • 状态:已完成
  • 生成代码文件:
    • DTO 类4 个):
      • DescribeSObjectDto.java - 描述单个对象请求 DTO
      • DescribeSObjectsDto.java - 描述多个对象请求 DTO
      • DescribeLayoutDto.java - 描述对象布局请求 DTO
      • DescribeQuickActionsDto.java - 描述快速操作请求 DTO
    • VO 类5 个):
      • DescribeGlobalResultVo.java - DescribeGlobal 结果 VO
      • DescribeSObjectResultVo.java - DescribeSObject 结果 VO
      • DescribeLayoutResultVo.java - DescribeLayout 结果 VO
      • DescribeTabResultVo.java - DescribeTabs 结果 VO
      • DescribeQuickActionResultVo.java - DescribeQuickActions 结果 VO
    • Service 接口
      • IPartnerDescribeService.java - 描述服务接口
    • Service 实现类
      • PartnerDescribeServiceImpl.java - 描述服务实现
    • Controller 类
      • PartnerDescribeController.java - 描述控制器6 个 RESTful API 接口)
    • 工具类
      • DescribeResultConverter.java - 描述结果转换工具类
    • 单元测试
      • PartnerDescribeServiceImplTest.java - 描述服务单元测试18 个测试用例)
  • 代码生成器使用:未使用(不涉及数据库表)
  • 关键实现:
    • 使用 DescribeResultConverter 将 Salesforce 描述结果转换为 Map<String, Object> 格式
    • 支持字段信息处理(类型、长度、精度、必填性等)
    • 支持 Picklist 字段处理(选项值、默认值、有效性规则)
    • 支持关系字段处理(引用对象、关系名称、级联删除)
    • 支持布局信息处理(字段布局、按钮布局、相关列表)
    • 支持批量描述优化DescribeSObjects 批量 API
    • 完整的异常处理和日志记录
    • 固定使用 source org 类型

阶段 7会话记录描述功能

  • 状态:已完成
  • 生成文档:无
  • 关键决策:
    • 完整记录了描述功能的执行过程
    • 记录了所有生成的代码文件15 个文件)
    • 记录了关键实现特性描述结果转换、字段信息处理、Picklist 字段处理、关系字段处理、布局信息处理、批量描述优化)
    • 记录了代码规范遵循情况Spring Boot 3.x、Spring Security 6.x、若依框架规范
    • 记录了单元测试覆盖率要求(不低于 80%

阶段 8变更记录与归档描述功能

  • 状态:已完成
  • 生成文档:
  • 变更内容:
    • 新增功能:实现 Salesforce Partner API 的描述功能,包括 DescribeGlobal、DescribeSObject、DescribeSObjects、DescribeLayout、DescribeTabs、DescribeQuickActions 六个核心功能
    • 新增代码文件15 个文件4 个 DTO + 5 个 VO + 2 个 Service + 1 个 Controller + 1 个工具类 + 1 个单元测试 + 1 个变更日志)
    • 新增接口6 个 REST API 接口
    • 影响范围datai-salesforce-partner 模块
    • 核心特性
      • 支持获取 Salesforce 对象的元数据信息
      • 支持字段信息处理(类型、长度、精度、必填性等)
      • 支持 Picklist 字段处理(选项值、默认值、有效性规则)
      • 支持关系字段处理(引用对象、关系名称、级联删除)
      • 支持布局信息处理(字段布局、按钮布局、相关列表)
      • 支持批量描述优化DescribeSObjects 批量 API最多 100 个对象)
  • 关键决策:
    • 创建了详细的变更日志,记录了所有变更内容
    • 更新了根目录 CHANGELOG.md
    • 更新了 docs/index.md添加了变更日志链接
    • 更新了会话记录,添加了阶段 8 信息

阶段 9闭环复盘和接口文档描述功能

  • 状态:已完成
  • 生成文档:
  • 复盘主要结论:
    • 成功经验
      • SSOT 流程的严格执行,确保了所有开发活动都有文档依据
      • 详细的提示词设计,确保了生成的代码符合项目规范和需求
      • 完整的会话记录,确保了会话的可追溯性和完整性
      • 有效的架构决策,选择了最适合项目需求的方案
      • 完善的异常处理,使用统一的异常处理机制
    • 改进点
      • 阶段间的过渡可以更流畅,增加对下一阶段的目的和流程的解释
      • 代码生成前的验证可以更严格,增加对设计文档和决策记录的再次验证
      • API 文档的自动生成可以考虑,探索使用 Swagger 等工具
      • 单元测试的覆盖率可以提高,增加更多的边界条件测试
      • 代码注释可以更详细,增加更多的详细注释
    • 问题分析
      • 描述结果转换的复杂性:采用递归算法处理嵌套对象
      • 批量描述的限制处理:在代码中添加了参数验证和分批处理逻辑
      • 字段类型的映射:创建了完整的字段类型映射表
    • 行动计划
      • 在阶段转换时,增加对下一阶段的目的和流程的解释
      • 在生成代码前,增加对设计文档和决策记录的再次验证
      • 探索使用 Swagger 等工具自动生成 API 文档
      • 增加更多的边界条件测试和异常场景测试
      • 在后续的代码生成中,增加更多的详细注释
    • 提取模式
      • 3 条有效的 Prompt 技巧:具体的输出格式要求、引用真源、详细的代码规范要求
      • 3 个避免的坑:不要使用模糊的描述、不要忽略测试要求、不要违反项目规则
    • 模板迭代:计划在下一个迭代中更新提示词模板,增加更具体的若依框架规范要求
  • API 文档主要内容:
    • 6 个 REST API 接口的详细说明DescribeGlobal、DescribeSObject、DescribeSObjects、DescribeLayout、DescribeTabs、DescribeQuickActions
    • 每个接口的请求方式、请求路径、请求参数、响应参数、成功示例、失败示例
    • 错误码说明和处理建议
    • 注意事项和限制说明
  • 关键决策:
    • 创建了详细的复盘文档,总结了成功经验、改进点、问题分析和行动计划
    • 创建了详细的 API 文档,记录了所有接口的详细信息
    • 更新了 docs/index.md添加了复盘文档和 API 文档链接
    • 更新了会话记录,添加了阶段 9 信息

阶段 10代码提交

  • 状态:未开始

阶段 5提示词生成高级功能

  • 状态:已完成
  • 生成文档:
  • 提示词内容摘要:
    • 引用真源:需求文档、设计文档、决策记录
    • 需求描述ConvertLead、EmptyRecycleBin、ProcessSubmitRequest、GetUserInfo、GetServerTimestamp 五个核心功能
    • 设计方案:直接使用 Salesforce Partner API分层架构DTO → Salesforce 对象 → VO 转换
    • 输出格式要求
      • 3 个 DTO 类LeadConvertRequest、EmptyRecycleBinRequest、ProcessSubmitRequest
      • 5 个 VO 类LeadConvertResultVo、EmptyRecycleBinResultVo、ProcessResultVo、UserInfoVo、ServerTimestampVo
      • 2 个 Service 类PartnerAdvancedService 接口和 PartnerAdvancedServiceImpl 实现)
      • 1 个 Controller 类PartnerAdvancedController
      • 1 个单元测试类PartnerAdvancedServiceImplTest
    • 代码规范要求类命名、方法命名、变量命名、注释规范、Lombok 使用
    • 框架规范Spring Boot 规范、若依框架规范、Validation 规范
    • 测试要求:单元测试覆盖率不低于 80%,使用 JUnit 5 和 Mockito
    • 实现细节ConvertLead、EmptyRecycleBin、ProcessSubmitRequest、GetServerTimestamp 的具体实现要求
    • 复用策略GetUserInfo 复用认证模块的实现
    • 注意事项:固定使用 source org、异常处理、日志记录、时间戳格式、批量限制
  • 更新记录:
    • 创建了提示词文档
    • 更新了 docs/index.md添加了提示词链接
    • 更新了需求文档,添加了提示词引用
    • 更新了会话记录,添加了阶段 5高级功能信息

阶段 4数据库结构生成高级功能

  • 状态:已完成(不涉及数据库变更)
  • 分析结论:
    • 是否涉及数据库变更:否
    • 原因
      1. 高级功能完全基于 Salesforce Partner API 实现
      2. 所有数据操作都通过 API 调用完成,不需要本地数据库表
      3. 数据模型只包含 DTO 和 VO 类,用于请求/响应参数传递
      4. 没有需要持久化的业务数据
      5. 用户信息获取复用认证模块的实现,无需新建表
  • 数据模型说明:
    • DTO 类3 个LeadConvertRequest、EmptyRecycleBinRequest、ProcessSubmitRequest
    • VO 类5 个LeadConvertResultVo、EmptyRecycleBinResultVo、ProcessResultVo、UserInfoVo、ServerTimestampVo
    • 所有 DTO/VO 类仅用于 API 请求/响应的数据传递,不涉及数据库持久化
  • 跳过原因:
    • 与查询功能、描述功能类似,高级功能完全依赖 Salesforce API
    • 不需要创建本地数据库表
    • 不需要生成 SQL 脚本
  • 更新记录:
    • 更新了会话记录,记录了阶段 4 的分析结论
    • 确认不涉及数据库变更,直接进入阶段 5

阶段 6代码生成高级功能

  • 状态:已完成
  • 代码生成器使用:未使用(不涉及数据库表)
  • 生成的代码文件:
    • DTO 类3 个):
      • LeadConvertDto.java - 线索转换请求 DTO
      • EmptyRecycleBinDto.java - 清空回收站请求 DTO
      • ProcessSubmitDto.java - 流程提交请求 DTO
    • VO 类4 个):
      • LeadConvertResultVo.java - 线索转换结果 VO
      • EmptyRecycleBinResultVo.java - 清空回收站结果 VO
      • ProcessResultVo.java - 流程提交结果 VO
      • ServerTimestampVo.java - 服务器时间戳结果 VO
      • UserInfoVo 复用认证模块的实现)
    • Service 接口
      • IPartnerAdvancedService.java - 高级功能服务接口
    • Service 实现类
      • PartnerAdvancedServiceImpl.java - 高级功能服务实现
    • Controller 类
      • PartnerAdvancedController.java - 高级功能控制器5 个 RESTful API 接口)
    • 单元测试
      • PartnerAdvancedServiceImplTest.java - 高级功能服务单元测试12 个测试用例)
  • 代码生成器使用:未使用(不涉及数据库表)
  • 关键实现:
    • 使用 LeadConvert 对象进行线索转换支持可选参数accountId、contactId、opportunityId、overwriteLeadSource、doNotCreateOpportunity、sendNotificationEmail
    • 使用 EmptyRecycleBinResult 处理清空回收站结果,支持批量操作(最多 200 个记录)
    • 使用 ProcessSubmitRequest 进行流程提交,支持可选评论参数
    • 使用 Calendar 获取服务器时间戳,转换为 ISO 8601 格式yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
    • GetUserInfo 复用认证模块的 IPartnerConnectionService 实现
    • 完整的异常处理和日志记录
    • 固定使用 source org 类型
    • 统一错误信息转换Error → ErrorVo
  • 代码规范遵循Spring Boot 3.x、Spring Security 6.x、若依框架规范
  • 测试覆盖率:单元测试覆盖率不低于 80%,包含正常场景、异常场景、部分失败场景

阶段 7会话记录高级功能

  • 状态:已完成
  • 生成文档:无
  • 关键决策:
    • 完整记录了高级功能的执行过程
    • 记录了所有生成的代码文件12 个文件3 个 DTO + 4 个 VO + 2 个 Service + 1 个 Controller + 1 个单元测试 + 1 个复用的 UserInfoVo
    • 记录了关键实现特性LeadConvert 转换、EmptyRecycleBin 批量处理、ProcessSubmitRequest 流程提交、Calendar 时间戳获取、GetUserInfo 复用)
    • 记录了代码规范遵循情况Spring Boot 3.x、Spring Security 6.x、若依框架规范
    • 记录了单元测试覆盖率要求(不低于 80%12 个测试用例)

阶段 8变更记录与归档高级功能

  • 状态:已完成
  • 生成文档:
  • 变更内容:
    • 新增功能:实现 Salesforce Partner API 的高级功能,包括 ConvertLead、EmptyRecycleBin、ProcessSubmitRequest、GetUserInfo、GetServerTimestamp 五个核心功能
    • 新增代码文件12 个文件3 个 DTO + 4 个 VO + 2 个 Service + 1 个 Controller + 1 个单元测试 + 1 个复用 VO
    • 新增接口5 个 REST API 接口
    • 新增权限5 个权限标识
    • 影响范围datai-salesforce-partner 模块
    • 核心特性
      • 线索转换功能(支持可选参数)
      • 清空回收站功能(支持批量操作,最多 200 个记录)
      • 流程提交功能(支持可选评论)
      • 获取用户信息功能(复用认证模块)
      • 获取服务器时间戳功能ISO 8601 格式)
  • 关键决策:
    • 创建了详细的变更日志,记录了所有变更内容
    • 更新了根目录 CHANGELOG.md
    • 更新了 docs/index.md添加了变更日志链接并标注需求已完成
    • 更新了需求文档,添加了变更日志引用
    • 更新了会话记录,添加了阶段 8高级功能信息

阶段 9闭环复盘和接口文档高级功能

  • 状态:已完成
  • 生成文档:
  • 复盘内容:
    • 成功经验
      • SSOT 流程的严格执行
      • 功能复用策略的成功实施GetUserInfo 复用认证模块)
      • 详细的提示词设计
      • 完整的异常处理机制
      • 全面的单元测试覆盖
    • 改进点
      • 阶段间的过渡可以更流畅
      • 代码生成前的验证可以更严格
      • API 文档的自动生成可以考虑
      • 单元测试的覆盖率可以提高
      • 代码注释可以更详细
    • 问题分析
      • 线索转换可选参数的处理复杂性
      • 清空回收站的部分失败处理
      • 服务器时间戳的格式转换
    • 行动计划:制定了 8 条具体的行动计划,明确责任人和时间节点
    • 提取模式
      • 有效的 Prompt 技巧:明确的功能复用策略、详细的可选参数处理要求、批量操作的部分失败处理
      • 避免的坑:不要忽略可选参数的验证、不要简化批量操作的结果处理、不要忽略时间格式转换
    • 模板迭代:计划在下一个迭代中更新提示词模板,增加可选参数处理、批量操作结果处理、时间格式转换、功能复用策略等内容
  • API 文档内容:
    • 接口列表5 个 REST API 接口的详细说明
      • POST /partner/advanced/convert-lead - 转换线索
      • POST /partner/advanced/empty-recycle-bin - 清空回收站
      • POST /partner/advanced/process-submit-request - 流程提交
      • GET /partner/advanced/user-info - 获取用户信息
      • GET /partner/advanced/server-timestamp - 获取服务器时间戳
    • 请求参数:每个接口的请求参数详细说明(参数名、类型、是否必填、说明)
    • 响应参数:每个接口的响应参数详细说明(参数名、类型、说明)
    • 示例:每个接口的成功示例和失败示例
    • 错误码10 个错误码的详细说明
    • 注意事项5 个注意事项,包括线索转换、清空回收站、流程提交、获取用户信息、获取服务器时间戳的使用注意事项
  • 关键决策:
    • 创建了详细的复盘文档,总结了成功经验、改进点、问题分析和行动计划
    • 提取了有效的 Prompt 技巧和避免的坑
    • 制定了模板迭代计划
    • 创建了详细的 API 文档,包含 5 个接口的详细说明
    • 更新了 docs/index.md添加了复盘文档和 API 文档链接
    • 更新了需求文档,添加了复盘文档和 API 文档引用
    • 更新了会话记录,添加了阶段 9高级功能信息

阶段 3方案决策高级功能

  • 状态:已完成
  • 生成文档:
  • 关键决策:
    • 技术选型:选择直接使用 Salesforce Partner APIpartner.jar
    • 选择理由
      1. 官方支持,与 Salesforce API 完全兼容
      2. 功能完整,原生支持所有高级功能
      3. 与现有架构一致,保持代码风格统一
      4. 开发效率高,减少开发工作量
      5. 类型安全,减少运行时错误
    • 放弃方案
      • 放弃使用 REST API开发工作量大与现有架构不一致
      • 放弃使用自定义封装层(增加不必要的抽象层)
    • 核心类使用
      • LeadConvert / LeadConvertResult - 线索转换
      • EmptyRecycleBinResult - 清空回收站
      • ProcessSubmitRequest / ProcessResult - 流程提交
      • GetUserInfoResult - 用户信息
      • Calendar - 服务器时间戳
    • 数据转换策略DTO → Salesforce 对象 → VO
    • 异常处理策略:统一异常映射,将 Salesforce 错误码转换为友好的中文错误消息
    • 复用策略GetUserInfo 复用认证和会话管理子需求的实现
  • 更新记录:
    • 更新了 docs/index.md添加了 ADR 链接
    • 更新了设计文档,添加了决策记录引用
    • 更新了会话记录,添加了阶段 3高级功能信息

阶段 2方案设计高级功能

  • 状态:已完成
  • 生成文档:
  • 关键设计决策:
    • 架构设计采用分层架构Controller → Service → Factory → Connection → Salesforce API
    • 技术方案:使用 Salesforce Partner APIpartner.jar实现高级功能
    • DTO 设计3 个请求 DTOLeadConvertRequest、EmptyRecycleBinRequest、ProcessSubmitRequest
    • VO 设计5 个响应 VOLeadConvertResultVo、EmptyRecycleBinResultVo、ProcessResultVo、UserInfoVo、ServerTimestampVo
    • 接口设计5 个 REST API 接口
      • POST /api/partner/advanced/convert-lead - 转换线索
      • POST /api/partner/advanced/empty-recycle-bin - 清空回收站
      • POST /api/partner/advanced/process-submit-request - 处理提交请求
      • GET /api/partner/advanced/user-info - 获取用户信息(复用认证模块)
      • GET /api/partner/advanced/server-timestamp - 获取服务器时间戳
    • 复用策略GetUserInfo 复用认证和会话管理子需求的实现
    • 异常处理:统一异常映射,将 Salesforce 错误码转换为友好的错误消息
    • 性能优化:连接复用、批量处理、参数验证
    • 安全设计:权限控制、数据验证、敏感操作确认、日志记录
  • 更新记录:
    • 更新了 docs/index.md添加了设计文档链接
    • 更新了需求文档,添加了设计文档引用
    • 更新了会话记录,添加了阶段 2高级功能信息

对话记录

用户:严格遵守项目规则,现在我有个需求,想将 d:\idea_demo\datai\datai-scenes\datai-scene-salesforce\docs\reference-code\sforce\docs\partner-module.md 中的功能结合当前模块的实际情况,在 d:\idea_demo\datai\datai-scenes\datai-scene-salesforce\datai-salesforce-partner 模块下进行实现默认实现源org类型

AI:我理解您的需求。在创建需求文档前,我需要先澄清一些问题:

第一轮澄清

  1. 这个功能的核心目标是什么?
  2. 这个功能涉及哪些业务场景?
  3. 这个功能需要支持哪些用户角色?
  4. 功能边界:根据 partner-module.md 文档Partner API 包含大量功能CRUD、批量操作、查询、描述、认证、高级功能等。您希望实现所有功能还是优先实现核心功能哪些功能是必须实现的
  5. 使用场景:这个模块的主要使用场景是什么?
  6. 用户角色:谁会使用这个模块?
  7. 依赖包:我看到 datai-salesforce-partner/src/main/resources/lib/partner.jar 已经存在,这个是 Salesforce 官方的 Partner API 客户端吗?我们需要基于这个包进行封装吗?
  8. 现有集成:项目中已经有 datai-salesforce-integration 模块,其中包含 PartnerV1ConnectionIPartnerV1Connection,新的 datai-salesforce-partner 模块与它们的关系是什么?

用户:对,就实现源 orgSource Org实现所有功能全部功能除了引用 d:\idea_demo\datai\datai-scenes\datai-scene-salesforce\datai-salesforce-auth 模块进行登录认证,其它不引用任何模块的代码

AI:好的,感谢您的明确回答。让我继续澄清一些细节:

第二轮澄清

  1. 功能范围确认:根据 partner-module.mdPartner API 包含以下功能模块,您确认全部实现吗?
  2. 认证集成:您提到只引用 datai-salesforce-auth 模块进行登录认证,具体是指?
  3. 独立模块设计:既然不引用其他模块,那么是否需要独立的 Controller 层?还是只提供 Service 层?是否需要数据库表?
  4. 依赖包使用:partner.jar 包含了 Partner API 的核心类Connector、PartnerConnection、SObject 等),我们需要直接使用这些类?还是对这些类进行封装?
  5. 异常处理:是否需要自定义异常类?还是使用 datai-salesforce-common 模块中的现有异常?
  6. 日志记录:是否需要记录 API 调用日志?还是依赖 datai-salesforce-integration 的日志功能?
  7. 连接管理:是否需要连接池?还是每次调用都创建新连接?
  8. 并发控制:是否需要限流?还是依赖 datai-salesforce-integration 的限流功能?
  9. 缓存策略:是否需要缓存 Describe 结果?

用户 1、Partner API 包含功能模块,确认全部实现 2、使用 datai-salesforce-auth 的 SessionManager 管理会话然后获取Session ID和url 3、独立模块完全独立模块除了引用auth模块其它都是独立的 4、partner.jar有的直接就用现有的类 5、异常处理datai-salesforce-common 模块中的现有异常可以用就用,没有的话就自定义 6、日志记录暂不考虑 7、连接、并发、缓存等性能相关不影响功能的暂不考虑

AI:好的,感谢您的详细回答。让我总结一下需求:

澄清总结

  • 功能范围:实现 Partner API 的所有功能模块CRUD、批量操作、查询、描述、认证、高级功能
  • 认证集成:使用 datai-salesforce-authSessionManager 管理会话,通过 SessionManager 获取 Session ID 和 Server URL
  • 模块设计:提供 Service 层和 Controller 层REST API默认实现 source org 类型(源 org不需要数据库表
  • 技术实现:直接使用 partner.jar 中的现有类Connector、PartnerConnection、SObject、QueryResult、SaveResult 等),不进行二次封装
  • 异常处理:优先使用 datai-salesforce-common 模块中的现有异常,没有的话就自定义
  • 暂不考虑的功能:日志记录、连接池、并发控制、缓存策略、限流

还有其他需要补充的吗?

用户:提供 Controller 层默认实现source org类型

AI:好的,感谢您的补充。让我更新澄清总结:

澄清总结(更新)

  • 功能范围:实现 Partner API 的所有功能模块CRUD、批量操作、查询、描述、认证、高级功能
  • 认证集成:使用 datai-salesforce-authSessionManager 管理会话,通过 SessionManager 获取 Session ID 和 Server URL
  • 模块设计:提供 Service 层和 Controller 层REST API默认实现 source org 类型(源 org不需要数据库表
  • 技术实现:直接使用 partner.jar 中的现有类Connector、PartnerConnection、SObject、QueryResult、SaveResult 等),不进行二次封装
  • 异常处理:优先使用 datai-salesforce-common 模块中的现有异常,没有的话就自定义
  • 暂不考虑的功能:日志记录、连接池、并发控制、缓存策略、限流

还有其他需要补充的吗?

用户:直接使用 partner.jar 中的现有类Connector、PartnerConnection、SObject、QueryResult、SaveResult 等)如果确实有需求需要使用自定义类,则新增,不过新增前需要严格判断

AI:好的,感谢您的补充。让我更新澄清总结:

澄清总结(最终版)

  • 功能范围:实现 Partner API 的所有功能模块CRUD、批量操作、查询、描述、认证、高级功能
  • 认证集成:使用 datai-salesforce-authSessionManager 管理会话,通过 SessionManager 获取 Session ID 和 Server URL
  • 模块设计:提供 Service 层和 Controller 层REST API默认实现 source org 类型(源 org不需要数据库表
  • 技术实现:直接使用 partner.jar 中的现有类Connector、PartnerConnection、SObject、QueryResult、SaveResult 等),如果确实有需求需要使用自定义类,则新增,但新增前需要严格判断,不进行不必要的二次封装
  • 异常处理:优先使用 datai-salesforce-common 模块中的现有异常,没有的话就自定义
  • 暂不考虑的功能:日志记录、连接池、并发控制、缓存策略、限流

还有其他需要补充的吗?如果没有,我就开始创建需求文档了。

用户:开始创建需求文档

AI:好的,我现在开始创建需求文档。

用户d:\idea_demo\datai\datai-scenes\datai-scene-salesforce\docs\requirements\sub\2026-01-28-001-01-认证和会话管理.md 进入阶段二

AI:好的,我现在开始阶段二:方案设计。

用户:进入下一阶段(方案决策)

AI:好的,我现在开始阶段三:方案决策。

用户:进入下一阶段(数据库结构生成)

AI:好的,我现在开始阶段四:数据库结构生成。

用户:进入下一阶段(代码生成)

AI:好的,我现在开始阶段六:代码生成。

用户:进入下一阶段(会话记录)

AI:好的,我现在开始阶段七:会话记录。

用户d:\idea_demo\datai\datai-scenes\datai-scene-salesforce\docs\requirements\sub\2026-01-28-001-02-CRUD操作.md 进入阶段二

AI:好的,我现在开始阶段二:方案设计。

用户:进入下一阶段(方案决策)

AI:好的,我现在开始阶段三:方案决策。

用户:进入下一阶段(数据库结构生成)

AI:好的,我现在开始阶段四:数据库结构生成。

用户:进入下一阶段(代码生成)

AI:好的,我现在开始阶段六:代码生成。

用户:进入下一阶段(会话记录)

AI:好的,我现在开始阶段七:会话记录。

用户d:\idea_demo\datai\datai-scenes\datai-scene-salesforce\docs\requirements\sub\2026-01-28-001-03-批量操作.md 进入阶段二

AI:好的,我现在开始阶段二:方案设计。

用户:进入下一阶段(方案决策)

AI:好的,我现在开始阶段三:方案决策。

用户:进入下一阶段(数据库结构生成)

AI:好的,我现在开始阶段四:数据库结构生成。

用户:进入下一阶段(提示词生成)

AI:好的,我现在开始阶段五:提示词生成。

用户:进入下一阶段(代码生成)

AI:好的,我现在开始阶段六:代码生成。

用户:进入下一阶段(会话记录)

AI:好的,我现在开始阶段七:会话记录。

用户d:\idea_demo\datai\datai-scenes\datai-scene-salesforce\docs\requirements\sub\2026-01-28-001-04-查询功能.md 进入阶段二

AI:好的,我现在开始阶段二:方案设计。

用户:进入下一阶段(方案决策)

AI:好的,我现在开始阶段三:方案决策。

用户:进入下一阶段(数据库结构生成)

AI:好的,我现在开始阶段四:数据库结构生成。

用户:进入下一阶段(提示词生成)

AI:好的,我现在开始阶段五:提示词生成。

用户:进入下一阶段(代码生成)

AI:好的,我现在开始阶段六:代码生成。

用户:进入下一阶段(会话记录)

AI:好的,我现在开始阶段七:会话记录。

生成的文档

生成的代码文件

认证和会话管理

批量操作

查询功能

CRUD 操作

阶段 2方案设计描述功能

  • 状态:已完成
  • 生成文档:
  • 关键设计决策:
    • 采用分层架构Controller → Service → PartnerConnectionFactory → Salesforce API
    • 支持六种描述功能DescribeGlobal、DescribeSObject、DescribeSObjects、DescribeLayout、DescribeTabs、DescribeQuickActions
    • 使用 Map<String, Object> 格式转换描述结果
    • 使用 DTO/VO 模式进行数据封装
    • 支持批量描述多个对象DescribeSObjects
    • 固定使用 source org 类型
    • 可选缓存策略:对象元数据缓存时间 1 小时

阶段 3方案决策描述功能

  • 状态:已完成
  • 生成文档:
  • 关键决策:
    • 决策 1:使用 Map<String, Object> 格式转换描述结果
      • 理由:解耦、灵活性高、与现有代码一致、可读性好
    • 决策 2:使用 describeSObjects(String[]) 批量描述多个对象
      • 理由性能优化、Salesforce 原生支持、减少 API 调用次数
    • 决策 3:使用可选的元数据缓存策略
      • 理由:性能优化、响应速度提升、降低 Salesforce API 负载
    • 决策 4:完整转换字段定义信息
      • 理由:支持前端动态表单生成、提供完整元数据信息
  • 考虑的替代方案:
    • 使用 DTO 映射替代 Map
    • 使用 Jackson 序列化原始对象
    • 使用 Redis 作为分布式缓存

阶段 4数据库结构生成描述功能

  • 状态:已跳过
  • 分析结论:描述功能不涉及数据库变更
  • 理由:
    • 所有数据均来自 Salesforce API
    • 无需创建数据库表
    • 无需修改现有数据库结构
    • 描述结果直接通过 API 返回给客户端
  • 操作:直接进入阶段 5

阶段 5提示词生成描述功能

  • 状态:已完成
  • 生成文档:
  • 提示词内容摘要:
    • 引用真源:需求文档、设计文档、决策记录
    • 需求描述DescribeGlobal、DescribeSObject、DescribeSObjects、DescribeLayout、DescribeTabs、DescribeQuickActions 六个核心功能
    • 设计方案分层架构、Map 格式转换、批量描述优化、字段信息处理
    • 输出格式要求
      • ControllerPartnerDescribeController6 个 RESTful API 接口)
      • ServiceIPartnerDescribeService、PartnerDescribeServiceImpl
      • DTODescribeSObjectDto、DescribeSObjectsDto、DescribeLayoutDto、DescribeQuickActionsDto
      • VODescribeGlobalResultVo、DescribeSObjectResultVo、DescribeLayoutResultVo、DescribeTabResultVo、DescribeQuickActionResultVo
      • 工具类DescribeResultConverter
      • 单元测试PartnerDescribeServiceImplTest
    • 代码规范要求:命名规范、注释规范、代码格式、异常处理
    • 测试要求:覆盖率不低于 80%,包含正常场景和异常场景
    • 注意事项:描述结果转换、字段类型处理、批量描述、安全性、性能考虑

回退记录