refactor(处理器): 重构通用供应商处理器以支持规则引擎 docs: 更新README与文档说明供应商管理功能 build: 更新打包脚本注入版本信息 test: 添加规则引擎单元测试
3.5 KiB
3.5 KiB
目标
- 按照优化实施计划,从第3周任务7/8开始全面落地,并同时推进第4周任务9/10,确保可视化、配置驱动和交付质量提升。
任务7:列映射向导完善
- 字段扩展与中文提示:标准字段统一以英+中展示,支持更多列(条码、名称、规格、数量、单位、单价、金额/小计、分类、品牌、供应商)。
- 自动建议增强:结合样本数据统计(字符串比例、特殊关键词、数值特征)给出更可靠的映射建议。
- 表头定位增强:支持预览选择,并保存
header_row;向导内清晰提示当前使用的表头行。 - 配置管理:支持导入/导出映射方案(JSON),可一键应用到多供应商。
- 热重载与快捷入口:保存后自动重载供应商处理器;在系统设置区和快捷键中提供入口。
任务8:模板管理与校验完善
- 模板组管理:支持为每个供应商选择/保存多个模板(默认、备用),UI下拉选择当前模板。
- 差异检测:读取模板首行表头与系统标准列比较,列表显示缺失/多余字段与修复建议。
- 批量校验:可一次性校验选定供应商的所有模板组并生成报告。
- 示例生成:按标准列生成示例模板,便于对齐格式。
任务9:单元测试与烟雾测试
- 单元测试(pytest):
_find_header_row不同格式表头识别(第一行/中间行/合并行/空白行混杂)。GenericSupplierProcessor列映射、清洗规则(remove_rows/fill_na/convert_type)与公式计算。- 模板填充的关键路径(必要列检测、数量/赠送量/单价写入)。
- 烟雾测试:准备小样本(图片→OCR→Excel→采购单),验证端到端可用,记录日志与输出。
任务10:打包与版本信息
- 版本信息:主窗口标题与“关于”对话框显示版本号、构建时间、更新日志入口。
- 打包校验:构建后检查模板与配置文件存在性;打包时拷贝资源并生成校验报告。
- 更新脚本:完善
build_exe.py支持版本号注入与资源校验失败时中止。
实现要点
- GUI:系统设置页整合入口;对话框使用 780×660/540 尺寸,
topmost/lift/focus_force保证焦点。 - 配置:
suppliers_config.json增加header_row、column_mapping、output_templates(数组)与当前选择索引。 - 处理器:优先使用保存的表头行;模板管理选择的模板在处理时应用。
- 日志与提示:保存/校验/重载操作统一写入日志面板并气泡提示。
验证
- 交互走查:向导流程顺畅、字段标签明确、置顶行为正常。
- 单元测试通过率达标(≥90%覆盖关键模块);烟雾测试输出正确文件且无异常。
- 打包后 EXE 启动显示版本信息;资源齐备,最近文件可双击打开。
变更范围
启动器.py(设置页UI、向导与模板管理弹窗)app/core/processors/supplier_processors/generic_supplier_processor.py(读取与映射逻辑)app/core/excel/processor.py(表头行识别与模板填充校验)config/suppliers_config.json(结构扩展)tests/(新增pytest用例与烟雾测试脚本)build_exe.py(版本注入与校验)
时间安排
- Day 1:任务7 UI/配置完成,处理器联动与验证
- Day 2:任务8 模板管理增强与批量校验
- Day 3:任务9 单元测试与烟雾测试
- Day 4:任务10 打包与版本信息,回归测试与文档补充
确认后我将按以上计划开始实施并逐项提交验证结果。