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

5.2 KiB
Raw Blame History

变更日志

元数据

  • 需求编号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%

新增文档

新增代码文件

异常处理类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

相关文档