12 KiB
会话记录
元数据
- 需求编号:014-2
- 开始时间:2026-01-27
- 结束时间:2026-01-27
- 创建人:SSOT 架构师
- 状态:进行中
当前阶段
阶段 8:变更记录与归档 - 已完成
需求描述
利用 Tooling API 的 SymbolTable 功能,解析 Apex 类的内部结构(内部类、方法、变量),为 Java 端自动生成强类型的 DTO(Data Transfer Object),解决 Partner API 只能传输扁平 SObject 的限制。
执行阶段
阶段 1:需求定义 - 已完成
完成时间
2026-01-26
生成文档
关键决策
- 确定需求优先级为高
- 确定需求复杂度为中等
- 确定需求类型为新功能开发
阶段 2:方案设计 - 已完成
完成时间
2026-01-27
生成文档
关键决策
- 架构设计:采用分层架构(Controller → Service → Manager → Tooling API),新增 Parser 层和 Generator 层
- 技术选型:选择 JavaPoet 作为模板引擎(类型安全、易于维护、性能优秀)
- 连接工厂设计:复用
ToolingConnectionFactory获取 Tooling 连接 - Parser 层设计:新增
SymbolTableParser、ApexTypeMapper等解析类 - Generator 层设计:新增
JavaCodeGenerator代码生成器 - 接口设计:RESTful API + 权限控制 + 参数验证
- 数据模型设计:新增解析结果实体类和 DTO 类
- 性能优化:查询优化、缓存策略、批量处理
- 安全设计:权限控制、参数验证、代码注入防护
阶段 3:方案决策 - 已完成
完成时间
2026-01-27
生成文档
关键决策
- 模板引擎选择:选择 JavaPoet(类型安全、易于维护、性能优秀、社区活跃)
- 类型映射策略:精确映射 + 降级处理(保留强类型特性,对复杂类型降级)
- 代码输出方案:返回字符串 + 可选文件写入(灵活性高、安全性好)
阶段 4:数据库结构生成 - 已完成
完成时间
2026-01-27
生成文档
无(本需求不涉及数据库变更)
关键决策
- 数据库变更分析:本需求不涉及数据库表变更,所有数据存储在 Salesforce 端
- 跳过 SQL 脚本生成:无需生成 SQL 脚本
- 直接进入下一阶段:准备进入阶段 5(提示词生成)
阶段 5:提示词生成 - 已完成
完成时间
2026-01-27
生成文档
关键决策
- 提示词类型:功能开发提示词(符号表分析与 DTO 生成)
- 提示词结构:引用真源 + 需求描述 + 设计方案 + 输出格式要求 + 代码规范要求 + 测试要求
- 输出格式要求:必须包含异常处理类、实体类、DTO 类、Parser 层、Generator 层、Manager 层、Service 层、Controller 层和单元测试
- 代码规范要求:命名规范、注释规范、代码格式、异常处理规范、日志规范、权限控制规范、参数验证规范
- 测试要求:单元测试覆盖率不低于 80%,测试用例包含正常场景、异常场景、边界场景
阶段 6:执行代码生成 - 已完成
完成时间
2026-01-27
生成文档
无(本需求不涉及数据库表变更,未使用代码生成器)
关键决策
- 数据库变更分析:本需求不涉及数据库表变更,无需使用代码生成器
- 代码生成方式:手动生成所有代码文件
- 生成的代码文件:
- 异常处理类(3个):SymbolTableException.java、TypeMappingException.java、CodeGenerationException.java
- 实体类(5个):ParsedSymbolTable.java、ParsedInnerClass.java、ParsedVariable.java、ParsedMethod.java、ParsedParameter.java
- DTO 类(3个):SymbolTableVo.java、GenerateDtoRequest.java、GenerateDtoResponse.java
- Parser 层(2个):SymbolTableParser.java、ApexTypeMapper.java
- Generator 层(1个):JavaCodeGenerator.java
- Manager 层(1个):SymbolTableManager.java
- Service 层(2个):ISymbolTableService.java、SymbolTableServiceImpl.java
- Controller 层(1个):SymbolTableController.java
- 单元测试(4个):SymbolTableParserTest.java、ApexTypeMapperTest.java、JavaCodeGeneratorTest.java、SymbolTableServiceTest.java
- 代码规范遵循:遵循 Spring Boot 最佳实践、若依框架规范、Lombok、SLF4J
- 测试覆盖:单元测试覆盖率不低于 80%,测试用例包含正常场景、异常场景、边界场景
阶段 7:记录当前会话 - 已完成
完成时间
2026-01-27
生成文档
无(本阶段不生成新文档,仅更新会话记录)
关键决策
- 会话记录更新:完整记录了从阶段 1 到阶段 6 的所有执行过程、关键决策、生成的文档和代码
- 对话记录更新:添加了完整的对话记录,包括用户需求和 AI 的响应
- 生成的文档记录:记录了所有生成的文档和代码文件的链接
- 索引更新:更新了项目索引,确保会话记录可追溯
阶段 8:变更记录与归档 - 已完成
完成时间
2026-01-27
生成文档
关键决策
- 变更分析:识别了所有变更内容,包括新增功能、新增文档、新增代码文件
- 变更日志创建:创建了详细的变更日志,记录了所有变更内容、影响范围和相关文档
- 根目录 CHANGELOG.md 更新:在根目录 CHANGELOG.md 中追加了新的变更记录
- 索引更新:在 docs/index.md 中添加了变更日志链接
- 需求文档更新:在需求文档中添加了变更日志引用
- 会话记录更新:更新了会话记录,记录了阶段 8 的执行过程和关键决策
对话记录
2026-01-27 用户:d:\idea_demo\datai\datai-scenes\datai-scene-salesforce\docs\requirements\REQ-014-2.md 进入阶段二
2026-01-27 AI:进入阶段 2(方案设计),分析了需求文档,创建了设计文档 2026-01-27-014-2-符号表分析与DTO生成-设计.md,包含架构设计、技术方案、数据模型、接口设计和实现要点。
2026-01-27 用户:进入下一阶段(方案决策)
2026-01-27 AI:进入阶段 3(方案决策),分析了设计文档中的技术选型,创建了决策记录 2026-01-27-014-2-ADR-符号表分析与DTO生成技术选型.md,包含模板引擎选择(JavaPoet)、类型映射策略(精确映射 + 降级处理)和代码输出方案(返回字符串 + 可选文件写入)。
2026-01-27 用户:进入下一阶段(数据库结构生成)
2026-01-27 AI:进入阶段 4(数据库结构生成),分析了设计文档,确认本需求不涉及数据库表变更(所有数据存储在 Salesforce 端),跳过 SQL 脚本生成,准备进入阶段 5(提示词生成)。
2026-01-27 用户:进入下一阶段(提示词生成)
2026-01-27 AI:进入阶段 5(提示词生成),分析了需求文档、设计文档和决策记录,创建了提示词文档 2026-01-27-014-2-prompt-符号表分析与DTO生成.md,包含引用真源、需求描述、设计方案、输出格式要求、代码规范要求和测试要求。
2026-01-27 用户:进入下一阶段(代码生成)
2026-01-27 AI:进入阶段 6(执行代码生成),分析了需求文档和设计文档,确认本需求不涉及数据库表变更,无需使用代码生成器,手动生成了所有代码文件,包括异常处理类(3个)、实体类(5个)、DTO 类(3个)、Parser 层(2个)、Generator 层(1个)、Manager 层(1个)、Service 层(2个)、Controller 层(1个)和单元测试(4个)。
生成的文档
需求文档
- REQ-014-2.md - 符号表分析与 DTO 生成需求
设计文档
- 2026-01-27-014-2-符号表分析与DTO生成-设计.md - 符号表分析与 DTO 生成设计
决策文档
- 2026-01-27-014-2-ADR-符号表分析与DTO生成技术选型.md - 符号表分析与 DTO 生成技术选型
提示词文档
- 2026-01-27-014-2-prompt-符号表分析与DTO生成.md - 符号表分析与 DTO 生成提示词
生成的代码文件
- 异常处理类(3个):
- 实体类(5个):
- DTO 类(3个):
- Parser 层(2个):
- Generator 层(1个):
- Manager 层(1个):
- Service 层(2个):
- Controller 层(1个):
- 单元测试(4个):
回退记录
无