Files
pinmap-to-pinlist/docs/features.md

71 lines
7.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 功能清单
## 核心功能
| 功能 ID | 功能名称 | 描述 | 输入 | 输出 | 依赖 | 优先级 | 验收标准 | 审批状态 |
|--------|---------|------|------|------|------|--------|---------|---------|
| F001 | PinMAP 解析 | 解析 PinMAP Excel 文件 | Excel 文件 | 解析后的 Pin 数据 | 无 | 1 | 能正确解析 PinMAP 结构 | 已通过 |
| F002 | PinList 生成 | 从 PinMAP 生成 PinList | Pin 数据 | PinList Excel 文件 | F001 | 2 | 能正确生成 PinList | 已通过 |
| F003 | PinList 解析 | 解析 PinList Excel 文件 | Excel 文件 | 解析后的 Pin 数据 | 无 | 1 | 能正确解析 PinList 结构 | 已通过 |
| F004 | PinMAP 生成 | 从 PinList 生成 PinMAP | Pin 数据 | PinMAP Excel 文件 | F003 | 2 | 能正确生成 PinMAP | 已通过 |
## Bug 修复
| 功能 ID | 功能名称 | 描述 | 输入 | 输出 | 依赖 | 优先级 | 验收标准 | 审批状态 |
|--------|---------|------|------|------|------|--------|---------|---------|
| F005 | BAT 脚本修复 | 修复 run.bat 换行符为 CRLF去掉 lines=50 参数 | 无 | 修复后的 run.bat | 无 | 3 | Windows 下正常运行 | 已通过 |
| F006 | 周长公式修复 | 将周长公式从 `2*rows+2*cols-4` 改为 `(rows+cols)*2` | rows, cols | 正确的周长值 | 无 | 1 | 15×15 网格 60Pin 验证通过 | 已通过 |
## 功能增强
| 功能 ID | 功能名称 | 描述 | 输入 | 输出 | 依赖 | 优先级 | 验收标准 | 审批状态 |
|--------|---------|------|------|------|------|--------|---------|---------|
| F007 | 模板读取 | MAP→List 和 List→MAP 双向转换均读取并应用模板样式 | 模板文件 | 带样式的输出文件 | 无 | 2 | 双向转换均应用模板样式 | 已通过 |
| F008 | 循环处理流程 | 处理完不退出,循环等待下一个文件,输入 Q 返回主菜单 | 用户输入 | 循环处理或返回主菜单 | 无 | 2 | 处理完不退出Q 返回主菜单 | 已通过 |
## v1.5.0 新增2026-06-06
| 功能 ID | 功能名称 | 描述 | 输入 | 输出 | 依赖 | 优先级 | 验收标准 | 审批状态 |
|--------|---------|------|------|------|------|--------|---------|---------|
| F009 | MAP→List 使用 balllist 模板 | PinMAP→PinList 转换方向查找并使用 `BallList-Template.xlsx`,不再共用 PinMAP 模板 | BallList-Template.xlsx | 带 balllist 模板样式的 PinList 输出 | 无 | P1 | MAP→List 使用 balllist 模板的样式 | 已完成 |
| F010 | List→MAP 使用 ballmap 模板 | PinList→PinMAP 转换方向查找并使用 `BallMAP-Template.xlsx`,不再共用 PinMAP 模板 | BallMAP-Template.xlsx | 带 ballmap 模板样式的 PinMAP 输出 | 无 | P1 | List→MAP 使用 ballmap 模板的样式 | 已完成 |
| F011 | 模板格式提取式应用 | 从模板仅提取格式信息(字体、边框、对齐、列宽、行高),输出文件行列数由实际 Pin 数量决定,不复制模板行列结构 | 模板文件 | 格式信息正确应用到输出文件 | F009, F010 | P1 | 模板格式正确应用到不同 Pin 数的输出文件 | 已完成 |
| F012 | 修复 PinMAP 生成中上/下边 PinName 位置 | PinList→PinMAP 时,下边 PinName 应在序号上方max_row-1 而非 min_row+1上边 PinName 应在序号下方min_row+1 而非 max_row-1 | PinList 数据 + 网格尺寸 | PinName 位于正确位置的 PinMAP | 无 | P0 | 4×4 PinMAP 示例中 Pin3/Pin4 出现在 C6/D6Pin5/Pin6 出现在 E5/E4 | 已完成 |
## v1.5.5 整改2026-06-12
| 功能 ID | 功能名称 | 描述 | 输入 | 输出 | 依赖 | 优先级 | 验收标准 | 审批状态 |
|--------|---------|------|------|------|------|--------|---------|---------|
| F013 | 修复 PinMAP→PinList 上方引脚丢失 | PinMAP 解析时封装上侧Top引脚未被识别导致 PinList 中缺失上边所有引脚。需修复解析逻辑确保四边引脚全部提取 | PinMAP Excel | 完整的 PinList | 无 | P0 | 示例 QFN60 PinMAP→PinList 输出 60 个引脚,无缺失 | 已完成 |
| F014 | PinList→PinMAP 样式模板应用 | List→MAP 时必须读取 `PinMAP-Template.xlsx`(位于 Code/src/Template/),提取字体(名称/大小/粗体/颜色)、对齐方式(水平/垂直)、列宽、行高、单元格背景色、边框样式,应用到输出 xlsx。行列数由实际数据决定不复制模板行列结构 | PinMAP-Template.xlsx + PinList 数据 | 带模板样式的 PinMAP xlsx | F013 | P0 | 输出 PinMAP 的字体、对齐、列宽行高、背景色、边框与模板一致 | 已完成 |
| F015 | PinMAP→PinList 样式模板应用 | MAP→List 时必须读取 `PinList-Template.xlsx`(位于 Code/src/Template/),提取字体、对齐方式、列宽、行高、单元格背景色、边框样式,应用到输出 xlsx。行列数由实际数据决定 | PinList-Template.xlsx + PinMAP 数据 | 带模板样式的 PinList xlsx | F013 | P0 | 输出 PinList 的字体、对齐、列宽行高、背景色、边框与模板一致 | 已完成 |
| F016 | PinList→PinMAP 转换正确性验证 | 使用用户提供的示例 PinListCSV作为输入验证 List→MAP 生成的 PinMAP 与示例 PinMAP 结构一致上方引脚占第2-3行(序号+PinName)标题独立第1行合并单元格共21行 | 示例 PinList CSV | 与期望 PinMAP 逐行一致的 xlsx | F013, F014 | P0 | 输出与 bugs.md BUG-007 期望 CSV 逐行一致 | 已完成 |
| F017 | PinMAP→PinList 转换正确性验证 | 使用用户提供的示例 PinMAPCSV作为输入验证 MAP→List 生成的 PinList 与示例 PinList 一致60 个引脚无缺失、封装名正确提取、格式正确 | 示例 PinMAP CSV | 与示例 PinList 结构一致的 xlsx | F013, F015 | P0 | 生成的 PinList 与示例 PinList 结构完全一致 | 已完成 |
## 优先级排序
1. **P0必须**F013 修复 PinMAP→PinList 上方引脚丢失 — 核心逻辑 Bug两个方向转换的前置依赖
2. **P0必须**F014 PinList→PinMAP 样式模板应用 — 用户反馈双向转换都不正常
3. **P0必须**F015 PinMAP→PinList 样式模板应用 — 用户反馈双向转换都不正常
4. **P0必须**F016 PinList→PinMAP 转换正确性验证 — 端到端验收
5. **P0必须**F017 PinMAP→PinList 转换正确性验证 — 端到端验收
6. **P1重要**F012 修复上/下边 PinName 位置 — 核心逻辑 Bug
7. **P1重要**F006 周长公式修复 — 核心逻辑错误
8. **P1重要**F005 BAT 脚本修复 — 影响 Windows 用户使用
9. **P2建议**F009 MAP→List 用 balllist 模板 — 已被 F015 覆盖
10. **P2建议**F010 List→MAP 用 ballmap 模板 — 已被 F014 覆盖
11. **P2建议**F011 模板格式提取式应用 — 已被 F014/F015 覆盖
12. **P2建议**F007 模板读取 — 功能增强(已被 F014/F015 取代)
13. **P2建议**F008 循环处理流程 — 体验优化
## v1.6 回归 Bug2026-06-12
| Bug ID | 关联功能 | 问题描述 | 详细对比 | 状态 |
|--------|---------|---------|---------|------|
| BUG-007 | F013, F016 | PinList→PinMAP 上方引脚并入标题行,结构缺 2 行 | 程序生成19 行,标题 `QFN60,Pin60,...` 上方引脚混入第 1 行期望21 行,第 1 行独立标题(合并单元格),第 2-3 行为上方序号和 PinName第 4 行起为左边引脚 | **已修复** |
**具体差异(见 bugs.md BUG-007 完整 CSV 对比):**
1. 上方引脚Pin60-Pin46被挤入第 1 行标题行,缺少独立的上方序号行和 PinName 行
2. 标题应为多行合并单元格,实际被压缩为单行
3. 总行数19 vs 期望 21缺 2 行