# 会话记录:Flow 覆盖率功能 ## 元数据 - 需求编号:002-05 - 需求名称:Flow 覆盖率 - 会话日期:2026-02-03 - 会话状态:进行中 ## 阶段记录 ### 阶段 1:需求定义 - **状态**:已完成 - **时间**:2026-01-28 - **文档**:[Flow覆盖率需求文档](../requirements/sub/2026-01-28-002-05-Flow覆盖率.md) - **关键决策**: - 使用 apex.jar 中的 FlowCoverageResult、FlowCoverageWarning 类 - 固定使用 source org 类型 - 数据存储到数据库 - 提供 REST API 接口 ### 阶段 2:方案设计 - **状态**:已完成 - **时间**:2026-02-03 - **文档**:[Flow覆盖率-设计](../design/2026-02-03-002-05-Flow覆盖率-设计.md) - **关键决策**: - 采用分层架构(Controller -> Service -> Mapper -> Entity) - 使用 MyBatis-Plus 进行数据访问 - 实现 5 个 RESTful API 端点 - 覆盖率计算采用元素数量加权平均法 - 支持按类型统计覆盖率 ### 阶段 3:方案决策 - **状态**:已完成 - **时间**:2026-02-03 - **文档**:[Flow覆盖率技术选型-ADR](../decisions/2026-02-03-002-05-ADR-Flow覆盖率技术选型.md) - **关键决策**: - **决策 1**:创建独立的 Flow 覆盖率表(不与代码覆盖率表合并) - **决策 2**:独立 Service 层(不与代码覆盖率 Service 合并) - **决策 3**:数据库索引 + 分页查询(不使用 Redis 缓存) - **决策 4**:元素数量加权平均法计算覆盖率 - **决策 5**:独立权限标识 `apex:flow-coverage:query` - **决策 6**:独立的 RESTful API 端点 ## 对话记录 ### 2026-02-03 **用户**:继续(进入阶段二) **助手**: 已完成 Flow 覆盖率功能的设计文档创建,包含: 1. 架构设计(分层架构图) 2. 数据模型(2 张数据库表) 3. 接口设计(5 个 RESTful API) 4. 核心算法(覆盖率计算) 5. 集成策略(与测试执行功能集成) 已更新: - 项目索引 index.md - 需求文档(添加设计文档引用) **待办事项**: - [x] 创建设计文档 - [x] 更新项目索引 - [x] 更新需求文档 - [ ] 进入阶段 3(方案决策) ## 生成的文档 | 文档类型 | 文档路径 | 状态 | |---------|---------|------| | 需求文档 | docs/requirements/sub/2026-01-28-002-05-Flow覆盖率.md | 已完成 | | 设计文档 | docs/design/2026-02-03-002-05-Flow覆盖率-设计.md | 已完成 | | 决策记录 | docs/decisions/2026-02-03-002-05-ADR-Flow覆盖率技术选型.md | 已完成 | | 会话记录 | docs/sessions/2026-02-03-002-05-session.md | 进行中 | ## 关键决策记录 ### 架构决策 - **决策**:采用分层架构(Controller -> Service -> Mapper -> Entity) - **理由**: - 与代码覆盖率功能保持一致 - 便于维护和扩展 - 符合项目整体架构风格 ### 数据模型决策 - **决策**:创建 2 张表(datai_apex_flow_coverage、datai_apex_flow_coverage_warning) - **理由**: - 独立存储 Flow 覆盖率数据 - 支持灵活的查询和统计 - 与代码覆盖率表结构相似,便于统一管理 ### API 设计决策 - **决策**:提供 5 个 RESTful API 端点 - **理由**: - 覆盖所有核心功能 - 支持多条件筛选和分页 - 提供统计和聚合接口 ### 2026-02-03(阶段 3 完成) **用户**:继续(进入阶段三) **助手**: 已完成 Flow 覆盖率功能的架构决策记录(ADR)创建,包含 6 个关键决策: 1. 数据库表策略:创建独立的 Flow 覆盖率表 2. Service 层设计:独立 Service 层 3. 查询性能优化:数据库索引 + 分页查询 4. 覆盖率计算:元素数量加权平均法 5. 权限控制:独立权限标识 6. API 设计:独立的 RESTful API 端点 已更新: - 项目索引 index.md - 设计文档(添加决策记录引用) - 会话记录 ### 阶段 4:数据库结构生成 - **状态**:进行中(回退后) - **时间**:2026-02-03 - **文档**:[Flow覆盖率SQL脚本](../sql/2026-02-03-002-05-Flow覆盖率.sql) - **涉及数据库变更**:是 - **关键变更内容**: - 修改 `datai_apex_flow_coverage` 表,添加 `num_elements_not_covered` 字段 - 为 Flow 覆盖率表添加复合索引(test_result_id + type、test_result_id + namespace、type + coverage_percent) - 创建 `datai_apex_flow_coverage_warning` 表存储 Flow 覆盖率警告 - 创建统计视图 `v_apex_flow_coverage_summary` 和 `v_apex_flow_coverage_by_type` ### 回退记录 - **回退时间**:2026-02-03 - **回退原因**:发现之前的需求(002-04 代码覆盖率)遗漏了 `datai_apex_code_coverage_warning` 表,需要统一修复数据库设计 - **回退操作**: - 删除阶段 5 生成的提示词文档 - 从索引中移除提示词链接 - 从需求文档中移除提示词引用 - **当前状态**:回退到阶段 4,需要补充创建代码覆盖率警告表 ### 2026-02-03(阶段 4 修复完成) **用户**: - 补充创建代码覆盖率警告表(002-04 的遗漏) - 创建 datai_apex_code_coverage_warning 表 - 更新 002-04 的 SQL 脚本 - 检查并更新 Flow 覆盖率 SQL 脚本(002-05) - 确认是否需要调整 **助手**: 已完成数据库结构修复,包含: 1. **补充 002-04 代码覆盖率警告表**: - 创建 `datai_apex_code_coverage_warning` 表 - 更新 SQL 脚本 `2026-02-02-002-02-Apex代码编译和执行.sql` - 添加外键关联到 `datai_apex_test_result` 表 - 添加适当索引优化查询性能 - 更新设计文档,添加 `ApexCodeCoverageWarning` 实体类 2. **检查 002-05 Flow 覆盖率 SQL 脚本**: - `datai_apex_flow_coverage_warning` 表已正确创建 - 字段设计符合 Salesforce API 结构 - 无需调整 已更新: - SQL 脚本(002-02) - 设计文档(002-02) - 会话记录 ## 下一步计划 1. ~~进入阶段 3:方案决策(ADR)~~ ✅ 已完成 2. ~~创建架构决策记录文档~~ ✅ 已完成 3. ~~进入阶段 4:数据库结构(SQL 脚本)~~ ✅ 已完成 4. ~~补充创建代码覆盖率警告表~~ ✅ 已完成 5. 重新进入阶段 5:提示词生成 5. 更新 Flow 覆盖率 SQL 脚本(如需要) 6. 重新进入阶段 5:提示词生成 ### 阶段 5:提示词生成 - **状态**:已完成 - **时间**:2026-02-03 - **文档**:[Flow覆盖率提示词](../prompts/2026-02-03-002-05-prompt-Flow覆盖率.md) - **提示词内容摘要**: - 引用真源:需求文档、设计文档、决策记录、SQL 脚本 - 需求描述:Flow 覆盖率查询、统计、警告查询等 6 大功能 - 设计方案:分层架构、MyBatis、PageHelper、加权平均算法 - 输出格式:Controller、Service、Mapper、Entity、DTO、VO、单元测试 - 代码规范:命名规范、注释规范、异常处理、日志规范 - 核心算法:总体覆盖率计算、按类型统计覆盖率 - 注意事项:与测试执行功能集成、与代码覆盖率区别、性能优化 ### 2026-02-03(阶段 5 完成) **用户**:继续(进入阶段五) **助手**: 已完成 Flow 覆盖率功能的提示词生成,包含: 1. 完整的引用真源(需求、设计、决策、SQL) 2. 详细的需求描述和设计方案 3. 明确的输出格式要求(所有需要生成的文件) 4. 严格的代码规范要求 5. 核心算法实现示例 6. 完整的测试要求和注意事项 已更新: - 项目索引 index.md - 需求文档(添加提示词引用) - 会话记录 ## 下一步计划 1. ~~进入阶段 3:方案决策(ADR)~~ ✅ 已完成 2. ~~创建架构决策记录文档~~ ✅ 已完成 3. ~~进入阶段 4:数据库结构(SQL 脚本)~~ ✅ 已完成 4. ~~生成 SQL 脚本~~ ✅ 已完成 5. ~~进入阶段 5:提示词生成~~ ✅ 已完成 6. ~~生成提示词文档~~ ✅ 已完成 7. 进入阶段 6:代码生成 ## 备注 - 设计文档已完整定义技术方案 - ADR 文档已记录所有关键架构决策 - SQL 脚本已生成,包含表结构、索引和视图 - 提示词文档已生成,包含完整的代码生成指导 - 所有文档已更新索引 - 等待用户确认进入下一阶段