8.0 KiB
8.0 KiB
会话记录:Flow 覆盖率功能
元数据
- 需求编号:002-05
- 需求名称:Flow 覆盖率
- 会话日期:2026-02-03
- 会话状态:进行中
阶段记录
阶段 1:需求定义
- 状态:已完成
- 时间:2026-01-28
- 文档:Flow覆盖率需求文档
- 关键决策:
- 使用 apex.jar 中的 FlowCoverageResult、FlowCoverageWarning 类
- 固定使用 source org 类型
- 数据存储到数据库
- 提供 REST API 接口
阶段 2:方案设计
- 状态:已完成
- 时间:2026-02-03
- 文档:Flow覆盖率-设计
- 关键决策:
- 采用分层架构(Controller -> Service -> Mapper -> Entity)
- 使用 MyBatis-Plus 进行数据访问
- 实现 5 个 RESTful API 端点
- 覆盖率计算采用元素数量加权平均法
- 支持按类型统计覆盖率
阶段 3:方案决策
- 状态:已完成
- 时间:2026-02-03
- 文档:Flow覆盖率技术选型-ADR
- 关键决策:
- 决策 1:创建独立的 Flow 覆盖率表(不与代码覆盖率表合并)
- 决策 2:独立 Service 层(不与代码覆盖率 Service 合并)
- 决策 3:数据库索引 + 分页查询(不使用 Redis 缓存)
- 决策 4:元素数量加权平均法计算覆盖率
- 决策 5:独立权限标识
apex:flow-coverage:query - 决策 6:独立的 RESTful API 端点
对话记录
2026-02-03
用户:继续(进入阶段二)
助手: 已完成 Flow 覆盖率功能的设计文档创建,包含:
- 架构设计(分层架构图)
- 数据模型(2 张数据库表)
- 接口设计(5 个 RESTful API)
- 核心算法(覆盖率计算)
- 集成策略(与测试执行功能集成)
已更新:
- 项目索引 index.md
- 需求文档(添加设计文档引用)
待办事项:
- 创建设计文档
- 更新项目索引
- 更新需求文档
- 进入阶段 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 个关键决策:
- 数据库表策略:创建独立的 Flow 覆盖率表
- Service 层设计:独立 Service 层
- 查询性能优化:数据库索引 + 分页查询
- 覆盖率计算:元素数量加权平均法
- 权限控制:独立权限标识
- API 设计:独立的 RESTful API 端点
已更新:
- 项目索引 index.md
- 设计文档(添加决策记录引用)
- 会话记录
阶段 4:数据库结构生成
- 状态:进行中(回退后)
- 时间:2026-02-03
- 文档: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)
- 确认是否需要调整
助手: 已完成数据库结构修复,包含:
-
补充 002-04 代码覆盖率警告表:
- 创建
datai_apex_code_coverage_warning表 - 更新 SQL 脚本
2026-02-02-002-02-Apex代码编译和执行.sql - 添加外键关联到
datai_apex_test_result表 - 添加适当索引优化查询性能
- 更新设计文档,添加
ApexCodeCoverageWarning实体类
- 创建
-
检查 002-05 Flow 覆盖率 SQL 脚本:
datai_apex_flow_coverage_warning表已正确创建- 字段设计符合 Salesforce API 结构
- 无需调整
已更新:
- SQL 脚本(002-02)
- 设计文档(002-02)
- 会话记录
下一步计划
进入阶段 3:方案决策(ADR)✅ 已完成创建架构决策记录文档✅ 已完成进入阶段 4:数据库结构(SQL 脚本)✅ 已完成补充创建代码覆盖率警告表✅ 已完成- 重新进入阶段 5:提示词生成
- 更新 Flow 覆盖率 SQL 脚本(如需要)
- 重新进入阶段 5:提示词生成
阶段 5:提示词生成
- 状态:已完成
- 时间:2026-02-03
- 文档:Flow覆盖率提示词
- 提示词内容摘要:
- 引用真源:需求文档、设计文档、决策记录、SQL 脚本
- 需求描述:Flow 覆盖率查询、统计、警告查询等 6 大功能
- 设计方案:分层架构、MyBatis、PageHelper、加权平均算法
- 输出格式:Controller、Service、Mapper、Entity、DTO、VO、单元测试
- 代码规范:命名规范、注释规范、异常处理、日志规范
- 核心算法:总体覆盖率计算、按类型统计覆盖率
- 注意事项:与测试执行功能集成、与代码覆盖率区别、性能优化
2026-02-03(阶段 5 完成)
用户:继续(进入阶段五)
助手: 已完成 Flow 覆盖率功能的提示词生成,包含:
- 完整的引用真源(需求、设计、决策、SQL)
- 详细的需求描述和设计方案
- 明确的输出格式要求(所有需要生成的文件)
- 严格的代码规范要求
- 核心算法实现示例
- 完整的测试要求和注意事项
已更新:
- 项目索引 index.md
- 需求文档(添加提示词引用)
- 会话记录
下一步计划
进入阶段 3:方案决策(ADR)✅ 已完成创建架构决策记录文档✅ 已完成进入阶段 4:数据库结构(SQL 脚本)✅ 已完成生成 SQL 脚本✅ 已完成进入阶段 5:提示词生成✅ 已完成生成提示词文档✅ 已完成- 进入阶段 6:代码生成
备注
- 设计文档已完整定义技术方案
- ADR 文档已记录所有关键架构决策
- SQL 脚本已生成,包含表结构、索引和视图
- 提示词文档已生成,包含完整的代码生成指导
- 所有文档已更新索引
- 等待用户确认进入下一阶段