diff --git a/CHANGELOG.md b/CHANGELOG.md index ccd4095..57e1b14 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,30 @@ # Changelog +## [v1.5.0] - 2026-06-06 + +### ✨ 功能新增 + +- **F009 MAP→List 使用 balllist 模板**:`run_map_to_list()` 改查 `BallList-Template.xlsx`,不再共用旧模板 +- **F010 List→MAP 使用 ballmap 模板**:`run_list_to_map()` 改查 `BallMAP-Template.xlsx`,模板完全分离 +- **F011 模板格式提取式应用**:从模板的 cellXfs/fonts/borders/fills 提取实际样式定义,替换硬编码边框和对齐;无模板时完全回退到默认样式 +- **F012 验证+回归测试**:新增 `test_f012_pinname_position()` 验证下边 Name 在 max_row-1、上边 Name 在 min_row+1,添加 5×5 往返一致性测试 + +### 🗑️ 废弃 + +- `_find_template_path()` (PinMAP-Template.xlsx) — 不再自动查找,由 `_find_balllist_template_path()` 和 `_find_ballmap_template_path()` 替代 + +### 📝 文档 + +- 更新 `docs/tasks.md` T015 状态为已完成 +- 更新 `docs/features.md` F009-F012 状态 + +### 🔧 修改文件 + +- `Code/src/main.py` — 新增两个模板查找函数,修改两个方向的模板调用 +- `Code/src/xlsx_writer.py` — 重写 `_styles_xml()` 支持模板样式提取 +- `Code/src/template_reader.py` — 增强 cellXfs 提取(xfId、applyAlignment、wrapText) +- `Code/src/test_pinmap.py` — 新增 F012 回归测试 + ## [v1.3.15] - 2026-06-01 ### 🐛 Bug 修复 diff --git a/docs/features.md b/docs/features.md index ef5aae6..a2494d5 100644 --- a/docs/features.md +++ b/docs/features.md @@ -23,9 +23,22 @@ | 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/D6,Pin5/Pin6 出现在 E5/E4 | 已完成 | + ## 优先级排序 -1. **P0(必须)**:F006 周长公式修复 — 核心逻辑错误 -2. **P1(重要)**:F005 BAT 脚本修复 — 影响 Windows 用户使用 -3. **P2(建议)**:F007 模板读取 — 功能增强 -4. **P2(建议)**:F008 循环处理流程 — 体验优化 +1. **P0(必须)**:F012 修复上/下边 PinName 位置 — 核心逻辑 Bug +2. **P0(必须)**:F006 周长公式修复 — 核心逻辑错误 +3. **P1(重要)**:F005 BAT 脚本修复 — 影响 Windows 用户使用 +4. **P1(重要)**:F009 MAP→List 用 balllist 模板 — 模板分离 +5. **P1(重要)**:F010 List→MAP 用 ballmap 模板 — 模板分离 +6. **P1(重要)**:F011 模板格式提取式应用 — 格式正确性确认 +7. **P2(建议)**:F007 模板读取 — 功能增强(已被 F009/F010/F011 细化取代) +8. **P2(建议)**:F008 循环处理流程 — 体验优化 diff --git a/docs/tasks.md b/docs/tasks.md index e36f1fd..aff6a6b 100644 --- a/docs/tasks.md +++ b/docs/tasks.md @@ -8,6 +8,12 @@ | T004 | 测试验证 v1.2 | test-qa-agent | 已完成 | 测试验证 | F001-F005 | 2026-05-23 | - | | T007 | BAT 脚本修复 v1.3 | bat-coding-agent | 已完成 | 编码实现 | F005 | 2026-05-31 | 2026-05-31 | | T008 | Python 编码 v1.3 | python-coding-agent | 已完成 | 编码实现 | F006-F008 | 2026-05-31 | 2026-05-31 | -| T009 | 测试验证 v1.3 | test-qa-agent | 进行中 | 测试验证 | F005-F008 | 2026-05-31 | - | -| T010 | 文档生成 v1.3 | doc-gen-agent | 待分配 | 文档编写 | F005-F008 | - | - | -| T011 | 打包发布 v1.3 | package-release-agent | 待分配 | 打包发布 | F005-F008 | - | - | +| T009 | 测试验证 v1.3 | test-qa-agent | 已完成 | 测试验证 | F005-F008 | 2026-05-31 | 2026-06-06 | +| T010 | 文档生成 v1.3 | doc-gen-agent | 已完成 | 文档编写 | F005-F008 | - | 2026-06-06 | +| T011 | 打包发布 v1.3 | package-release-agent | 已完成 | 打包发布 | F005-F008 | 2026-05-31 | 2026-06-02 | pinmap-to-pinlist-v1.3.14.zip | +| T013 | 打包发布 v1.3.15 修复 | package-release-agent | 已完成 | 打包发布 | - | 2026-06-02 | 2026-06-02 | Release 已创建 + zip 附件已上传 | +| T014 | 架构评估 v1.5 | script-architect | 已完成 | 架构评估 | F009-F012 | 2026-06-06 | 2026-06-06 | +| T015 | 编码实现 v1.5 | python-coding-agent | 已完成 | 编码实现 | F009-F012 | 2026-06-06 | 2026-06-06 | +| T016 | 测试验证 v1.5 | test-architect/test-executor/test-reporter | 待处理 | 测试验证 | F009-F012 | - | - | +| T017 | 文档生成 v1.5 | doc-gen-agent | 待处理 | 文档编写 | F009-F012 | - | - | +| T018 | 打包发布 v1.5 | package-release-agent | 待处理 | 打包发布 | F009-F012 | - | - |