datai/docs/archive/changelog/2026-01-27-014-2-changelog.md

89 lines
5.2 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.

# 变更日志
## 元数据
- 需求编号014-2
- 创建时间2026-01-27
- 创建人SSOT 架构师
- 版本号v1.0.0
## 变更概述
实现符号表分析与 DTO 生成功能,利用 Tooling API 的 SymbolTable 功能,解析 Apex 类的内部结构(内部类、方法、变量),为 Java 端自动生成强类型的 DTOData Transfer Object解决 Partner API 只能传输扁平 SObject 的限制。
## 变更内容
### 新增功能
- 实现符号表获取功能,通过 ToolingConnection 查询 Apex 类的 SymbolTable
- 实现结构解析器,解析 SymbolTable 中的 innerClasses、methods 和 variables
- 实现 Java 代码生成器,基于解析结果生成符合 Java Bean 规范的源代码
- 实现 Apex 类型到 Java 类型的映射,支持精确映射和降级处理
- 实现 RESTful API 接口,提供符号表查询和 DTO 生成功能
- 实现权限控制和参数验证,确保 API 安全性
- 实现完整的单元测试,测试覆盖率不低于 80%
### 新增文档
- [需求文档](../requirements/REQ-014-2.md) - 符号表分析与 DTO 生成需求
- [设计文档](../design/2026-01-27-014-2-符号表分析与DTO生成-设计.md) - 符号表分析与 DTO 生成设计
- [决策记录](../decisions/adr/2026-01-27-014-2-ADR-符号表分析与DTO生成技术选型.md) - 符号表分析与 DTO 生成技术选型
- [提示词文档](../prompts/2026-01-27-014-2-prompt-符号表分析与DTO生成.md) - 符号表分析与 DTO 生成提示词
- [会话记录](../sessions/2026-01-27-014-2-session.md) - 符号表分析与 DTO 生成实现会话记录
### 新增代码文件
#### 异常处理类3个
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/exception/SymbolTableException.java` - 符号表获取失败、解析失败异常
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/exception/TypeMappingException.java` - 类型映射失败异常
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/exception/CodeGenerationException.java` - 代码生成失败异常
#### 实体类5个
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/model/domain/ParsedSymbolTable.java` - 解析结果实体类
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/model/domain/ParsedInnerClass.java` - 内部类实体类
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/model/domain/ParsedVariable.java` - 变量实体类
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/model/domain/ParsedMethod.java` - 方法实体类
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/model/domain/ParsedParameter.java` - 参数实体类
#### DTO 类3个
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/model/vo/SymbolTableVo.java` - 符号表信息 VO
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/model/dto/GenerateDtoRequest.java` - 生成 DTO 请求
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/model/dto/GenerateDtoResponse.java` - 生成 DTO 响应
#### Parser 层2个
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/parser/SymbolTableParser.java` - 符号表解析器
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/parser/ApexTypeMapper.java` - Apex 类型到 Java 类型的映射器
#### Generator 层1个
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/generator/JavaCodeGenerator.java` - Java 代码生成器
#### Manager 层1个
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/manager/SymbolTableManager.java` - 符号表管理器
#### Service 层2个
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/service/ISymbolTableService.java` - 符号表服务接口
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/service/impl/SymbolTableServiceImpl.java` - 符号表服务实现
#### Controller 层1个
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/controller/SymbolTableController.java` - 符号表与 DTO 生成控制器
#### 单元测试4个
- `datai-salesforce-tooling/src/test/java/com/datai/tooling/parser/SymbolTableParserTest.java` - 符号表解析器测试
- `datai-salesforce-tooling/src/test/java/com/datai/tooling/parser/ApexTypeMapperTest.java` - 类型映射器测试
- `datai-salesforce-tooling/src/test/java/com/datai/tooling/generator/JavaCodeGeneratorTest.java` - Java 代码生成器测试
- `datai-salesforce-tooling/src/test/java/com/datai/tooling/service/SymbolTableServiceTest.java` - 符号表服务测试
## 影响范围
- 模块:`datai-salesforce-tooling`
- 功能:符号表分析与 DTO 生成
- 文件22 个新文件5 个文档 + 22 个代码文件)
- 数据库:无变更
## 技术选型
- 模板引擎JavaPoet 1.13.0(类型安全、易于维护、性能优秀)
- 框架层Spring Boot 3.x、Spring Security权限控制、Lombok减少样板代码、SLF4J日志记录
- 依赖管理Maven
## 相关文档
- [需求文档](../requirements/REQ-014-2.md)
- [设计文档](../design/2026-01-27-014-2-符号表分析与DTO生成-设计.md)
- [决策记录](../decisions/adr/2026-01-27-014-2-ADR-符号表分析与DTO生成技术选型.md)
- [提示词文档](../prompts/2026-01-27-014-2-prompt-符号表分析与DTO生成.md)
- [会话记录](../sessions/2026-01-27-014-2-session.md)