# 会话记录 ## 元数据 - 需求编号:005 - 开始时间:2026-02-03 - 结束时间:进行中 - 当前阶段:阶段 1:需求定义与入库 ## 需求澄清记录 ### 原始需求 调整 Apex 模块,将代码提取出来使用 file 模块进行存储。 ### 第一轮澄清 **AI 提问**: 1. 这个重构涉及 Apex 模块的哪些具体功能? 2. 代码提取后需要存储到 file 模块的哪种存储方式? 3. 数据库中已存在的代码如何处理? 4. 这个重构对现有功能的影响范围是什么? **用户回答**: - 涉及所有需要的子需求 - 多种存储方式,可以自定义 - 不处理数据库中的 - 对现有功能为向后兼容 ### 第二轮澄清 **AI 提问**: 1. 具体涉及的子需求有哪些? 2. file 模块支持 local、minio、oss 三种存储方式,用户如何选择? 3. 数据库表结构是否需要调整? 4. "向后兼容"是指 API 接口保持不变吗? 5. file 模块存储后,代码下载的响应时间要求是多少? 6. 是否需要对存储的代码文件进行加密? 7. 是否需要记录代码文件的访问日志? **用户回答**: - 所有有可能需要的模块,都提取 - 存储默认 local,可以切换其它 - 需要调整数据库表结构 - (未回答 API 接口、响应时间、加密、日志等问题) ### 第三轮澄清 **AI 提问**: 1. 数据库表结构调整的具体方式是什么? 2. 向后兼容性的实现方式是什么? 3. 存储切换机制是什么? 4. 代码文件命名规则是什么? 5. 文件删除策略是什么? **用户回答**: - 改为 file_path 字段 - API 接口是否保持不变 - 数据库配置切换存储方式 - /apex/wsdl/{conversionId}/{className}.cls - 文件同步删除 - 建议所有 apex 代码文件的唯一索引,所有文件的增删都需要更新该唯一索引 ### 澄清总结 - **功能范围**:所有可能需要存储代码的 Apex 模块子需求(002-01 到 002-07) - **业务流程**:代码生成 → 存储到 file 模块 → 数据库存储 file_path → 下载时从 file 模块读取 - **数据交互**: - 数据库表结构调整:将代码字段改为 file_path 字段 - 集成 datai-scene-file 模块进行文件存储 - 数据库配置存储方式(local/minio/oss) - **性能要求**:响应时间保持现有水平 - **安全要求**:文件同步删除,建立唯一索引防止重复 - **兼容性要求**:API 接口保持不变,向后兼容 ## 需求描述 调整 Apex 模块,将代码提取出来使用 file 模块进行存储。涉及所有需要的子需求,多种存储方式,可以自定义。不处理数据库中的,对现有功能为向后兼容。改为 file_path 字段,API 接口保持不变,数据库配置切换存储方式,/apex/wsdl/{conversionId}/{className}.cls,文件同步删除。建议所有 apex 代码文件的唯一索引,所有文件的增删都需要更新该唯一索引。 ## 执行阶段 ### 阶段 1:需求定义与入库 - **状态**:已完成 - **生成文档**:[需求文档](../requirements/2026-02-03-005-Apex模块代码存储重构.md) - **关键决策**: - 需求编号:005 - 优先级:高 - 涉及所有 Apex 模块子需求(002-01 到 002-07) - 数据库表结构调整:将代码字段改为 file_path 字段 - 集成 datai-scene-file 模块 - 支持多种存储方式(local、minio、oss),默认 local - API 接口保持不变,向后兼容 - 文件同步删除机制 - 建立 Apex 代码文件的唯一索引 ### 阶段 2:方案设计 - **状态**:未开始 ### 阶段 3:方案决策 - **状态**:未开始 ### 阶段 4:数据库结构 - **状态**:未开始 ### 阶段 5:提示词生成 - **状态**:未开始 ### 阶段 6:代码生成 - **状态**:未开始 ### 阶段 7:会话记录 - **状态**:未开始 ### 阶段 8:变更日志 - **状态**:未开始 ## 对话记录 ### 用户:调整 Apex 模块,将代码提取出来使用 file 模块进行存储。 ### AI:好的,我理解了您的需求。在创建需求文档前,我需要先进行需求澄清,以确保需求的完整性和准确性。 ## 需求澄清 ### 原始需求 调整 Apex 模块,将代码提取出来使用 file 模块进行存储。 ### 第一轮澄清 让我先了解一些关键信息: 1. **功能范围**:这个重构涉及 Apex 模块的哪些具体功能? - 是否只涉及 002-07 WSDL 转换功能? - 还是涉及所有子需求(002-01 到 002-07)? - 是否包括编译历史、测试结果等存储的代码? 2. **存储目标**:代码提取后需要存储到 file 模块的哪种存储方式? - 本地存储(local) - MinIO 分布式存储 - 阿里云 OSS 对象存储 - 还是支持多种存储方式? 3. **数据迁移**:数据库中已存在的代码如何处理? - 是否需要将数据库中的历史代码迁移到 file 模块? - 还是只处理新产生的代码? - 如果需要迁移,是否需要保留数据库中的代码副本? 4. **业务影响**:这个重构对现有功能的影响范围是什么? - 是否需要修改现有的 API 接口? - 前端是否需要相应调整? - 是否需要保持向后兼容? 请您回答以上问题,我将根据您的回答进行更深入的分析和澄清。 ### 用户:涉及到所有需要的子需求 多种存储方式,可以自定义 不处理数据库中的 对现有功能为向后兼容, ### AI:感谢您的回答。让我继续了解更多细节: ### 第二轮澄清 基于您的回答,我需要进一步了解以下内容: 1. **具体涉及的子需求**: - 根据之前的分析,Apex 模块中涉及代码存储的主要是 002-07 WSDL 转换功能(生成的 Apex 类代码) - 其他子需求(002-02 编译、002-03 测试、002-04 覆盖率等)是否也需要将代码提取到 file 模块? - 请明确列出需要重构的所有子需求编号 2. **存储策略**: - file 模块支持 local、minio、oss 三种存储方式,用户如何选择? - 是否需要配置化(如在 application.yml 中配置默认存储方式)? - 是否需要支持运行时动态切换存储方式? 3. **数据库字段变更**: - 不处理数据库中的历史代码,那么数据库表结构是否需要调整? - 是否需要在数据库中保留 file 模块返回的文件路径(file_path)? - 还是完全删除 `class_code` 等代码字段? 4. **向后兼容性**: - "向后兼容"是指 API 接口保持不变吗? - 还是说需要同时支持数据库存储和 file 模块存储两种方式? - 如果是同时支持,如何判断使用哪种方式? 5. **性能和安全**: - file 模块存储后,代码下载的响应时间要求是多少? - 是否需要对存储的代码文件进行加密? - 是否需要记录代码文件的访问日志? 请您回答以上问题,我将进行总结并创建需求文档。 ### 用户:所有有可能需要的模块,都提取 存储默认local,可以切换其它。。需要调整数据库表结构 ### AI:感谢您的回答。让我继续了解关键细节: ### 第三轮澄清 基于您的回答,我需要明确以下关键问题: 1. **数据库表结构调整**: - 是否将 `class_code` 等代码字段改为 `file_path` 字段? - 还是保留 `class_code` 字段,新增 `file_path` 字段? - 如果保留两个字段,如何判断优先使用哪个? 2. **向后兼容性的实现方式**: - API 接口是否保持不变(前端无需修改)? - 下载接口的响应内容是否保持一致(仍然是代码内容或 ZIP 文件)? - 如果数据库中既有代码又有文件路径,优先读取哪个? 3. **存储切换机制**: - 如何配置存储方式(application.yml?数据库配置?)? - 是否需要支持不同租户使用不同的存储方式? - 存储方式切换后,已存储的文件是否需要迁移? 4. **代码文件命名规则**: - 存储到 file 模块时,文件路径如何命名? - 例如:`/apex/wsdl/{conversionId}/{className}.cls`? - 是否需要按日期、用户、租户等维度组织目录结构? 5. **文件删除策略**: - 当删除数据库记录时,file 模块中的文件是否同步删除? - 是否需要提供文件清理机制(定期清理孤立的文件)? 请您回答以上问题,我将进行最终总结并创建需求文档。 ### 用户:改为 file_path 字段 API 接口是否保持不变 数据库配置切换存储方式 /apex/wsdl/{conversionId}/{className}.cls 文件同步删除 建议所有apex代码文件的唯一索引,所有文件的增删都需要更新该唯一索引 ### AI:感谢您的详细回答。让我总结一下需求并创建需求文档。 ### 澄清总结 - **功能范围**:所有可能需要存储代码的 Apex 模块子需求(002-01 到 002-07) - **业务流程**:代码生成 → 存储到 file 模块 → 数据库存储 file_path → 下载时从 file 模块读取 - **数据交互**: - 数据库表结构调整:将代码字段改为 file_path 字段 - 集成 datai-scene-file 模块进行文件存储 - 数据库配置存储方式(local/minio/oss) - **性能要求**:响应时间保持现有水平 - **安全要求**:文件同步删除,建立唯一索引防止重复 - **兼容性要求**:API 接口保持不变,向后兼容 现在让我查找现有需求编号,确定新需求的编号。 (执行查找需求编号和创建需求文档的操作) ## 生成的文档 - [需求文档](../requirements/2026-02-03-005-Apex模块代码存储重构.md) ## 回退记录 无