224 lines
8.0 KiB
Markdown
224 lines
8.0 KiB
Markdown
# 会话记录: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 脚本已生成,包含表结构、索引和视图
|
||
- 提示词文档已生成,包含完整的代码生成指导
|
||
- 所有文档已更新索引
|
||
- 等待用户确认进入下一阶段
|