# OCR订单处理系统 - 更新日志

## v1.5 (2025-05-09)

### 功能改进
- 烟草订单处理结果展示：改进烟草订单处理完成后的结果展示界面
  - 美化结果展示界面，显示订单时间、总金额和处理条目数
  - 添加文件信息展示，包括文件大小和创建时间
  - 提供打开文件、打开所在文件夹等便捷操作按钮
  - 统一与Excel处理结果展示风格，提升用户体验
  - 增强结果文件路径解析能力，确保正确找到并显示结果文件
- 条码映射编辑功能：
  - 添加图形化条码映射编辑工具，方便管理条码映射和特殊处理规则
  - 支持添加、修改和删除条码映射关系
  - 支持配置特殊处理规则，如乘数、目标单位、固定单价等
  - 自动保存到配置文件，便于后续使用

### 问题修复
- 修复烟草订单处理时出现双重弹窗问题
- 修复烟草订单处理完成后结果展示弹窗无法正常显示的问题
- 修复ConfigParser兼容性问题，支持标准ConfigParser对象
- 修复百度OCR客户端中getint方法调用不兼容问题
- 修复OCRService中缺少batch_process方法的问题，确保OCR功能正常工作
- 改进日志管理，确保所有日志正确关闭
- 优化UI界面，统一按钮样式
- 修复启动器中处理烟草订单按钮的显示样式
- 修复run.py中close_logger调用缺少参数的问题

### 代码改进
- 改进TobaccoService类对配置的处理方式，使用标准get方法
- 添加fallback机制以增强配置健壮性
- 优化启动器中结果预览逻辑，避免重复弹窗
- 统一UI组件风格，提升用户体验
- 增强错误处理，提供更清晰的错误信息

## v1.4 (2025-05-09)

### 新功能
- 烟草订单处理：新增烟草公司特定格式订单明细文件处理功能
  - 支持自动处理标准烟草订单明细格式
  - 根据烟草公司"盒码"作为条码生成银豹采购单
  - 自动将"订单量"转换为"采购量"并计算采购单价
  - 处理结果以银豹采购单格式保存，方便直接导入

### 功能优化
- 配置兼容性：优化配置处理逻辑，兼容标准ConfigParser对象
- 启动器优化：启动器界面增加"处理烟草订单"功能按钮
- 代码结构优化：将烟草订单处理功能模块化，集成到整体服务架构

## v1.3 (2025-07-20)

### 功能优化
- 采购单赠品处理逻辑优化：修改了银豹采购单中赠品的处理方式
  - 之前：赠品数量单独填写在"赠送量"列，与正常采购量分开处理
  - 现在：将赠品数量合并到采购量中，赠送量列留空
  - 有正常商品且有赠品的情况：采购量 = 正常商品数量 + 赠品数量，单价 = 原单价 × 正常商品数量 ÷ 总数量
  - 只有赠品的情况：采购量填写赠品数量，单价为0
- 更新说明：经用户反馈，赠品处理逻辑已还原为原始方式，正常商品数量和赠品数量分开填写

## v1.2 (2025-07-15)

### 功能优化
- 规格提取优化：改进了从商品名称中提取规格的逻辑，优先识别"容量*数量"格式
  - 例如从"美汁源果粒橙1.8L*8瓶"能准确提取"1.8L*8"而非错误的"1.8L*1"
- 规格解析增强：优化`parse_specification`方法，能正确解析"1.8L*8"格式规格，确保准确提取包装数量
- 单位推断增强：在`extract_product_info`方法中增加新逻辑，当单位为空且有条码、规格、数量、单价时，根据规格格式（如容量*数量格式或简单数量*数量格式）自动推断单位为"件"
- 件单位处理优化：确保当设置单位为"件"时，正确触发UnitConverter单位处理逻辑，将数量乘以包装数量，单价除以包装数量，单位转为"瓶"
- 整体改进：提高了系统处理复杂格式商品名称和规格的能力，使单位转换更加准确可靠
- 规格提取逻辑修正：修复了在Excel中已有规格信息时仍会从商品名称推断规格的问题，现在系统会优先使用Excel中的数据，只有在规格为空时才尝试从商品名称推断

## v1.1 (2025-05-07)

### 功能更新
- 单位自动推断：当单位为空但有商品编码、规格、数量、单价等信息，且规格符合容量*数量格式时，自动将单位设置为"件"并按照件的处理规则进行转换
- 规格解析优化：改进对容量*数量格式规格的解析，如"1.8L*8"能正确识别包装数量为8
- 规格提取增强：从商品名称中提取"容量*数量"格式的规格时，能正确识别如"美汁源果粒橙1.8L*8瓶"中的"1.8L*8"部分
- 条码映射功能：增加特定条码的自动映射功能，支持将特定条码自动转换为指定的目标条码
  - 6920584471055 → 6920584471017
  - 6925861571159 → 69021824
  - 6923644268923 → 6923644268480
  - 条码映射后会继续按照件/箱等单位的标准处理规则进行数量和单价的转换

## v1.0 (2025-05-02)

### 主要功能
- 图像OCR识别：支持对采购单图片进行OCR识别并生成Excel文件
- Excel数据处理：智能处理Excel文件，提取和转换商品信息
- 采购单生成：按照模板格式生成标准采购单Excel文件
- 采购单合并：支持多个采购单合并为一个总单
- 图形界面：提供简洁直观的操作界面
- 命令行支持：支持命令行调用，方便自动化处理

### 技术改进
- 模块化架构：重构代码为配置、核心功能、服务和CLI等模块
- 单位智能处理：完善的单位转换规则，支持多种计量单位
- 规格智能推断：从商品名称自动推断规格信息
- 日志管理：完善的日志记录系统，支持终端和GUI同步显示
- 表头智能识别：自动识别Excel中的表头位置，兼容多种格式
- 改进用户体验：界面优化，批量处理支持，实时状态反馈

## v1.5.1 (2024-03-21)
- 修复了配置管理相关的问题：
  - 修复了`config.ini`文件被意外重置的问题
  - 优化了配置加载逻辑，确保保留现有配置值
  - 添加了配置缺失项自动补充功能
- 新增系统设置功能：
  - 添加了图形化配置设置界面
  - 支持API设置、路径设置、性能设置和文件设置
  - 所有设置更改实时保存
- 移除了统计报告功能，替换为更实用的系统设置功能
- 优化了用户界面和交互体验

## v1.5.0 (2024-03-20)
- 添加了统计与报告功能
- 添加了键盘快捷键支持
- 优化了用户界面
- 删除了不必要的文件
- 更新了README.md
- 创建了更新日志文档

## v1.4.0 (2024-03-19)
- 添加了自定义弹窗演示
- 优化了错误处理
- 改进了日志记录

## v1.3.0 (2024-03-18)
- 添加了条码映射功能
- 优化了文件处理逻辑
- 改进了用户界面

## v1.2.0 (2024-03-17)
- 添加了批量处理功能
- 优化了性能
- 改进了错误处理

## v1.1.0 (2024-03-16)
- 添加了Excel处理功能
- 优化了OCR识别
- 改进了用户界面

## v1.0.0 (2024-03-15)
- 初始版本发布
- 基本OCR功能
- 基本用户界面

## v1.5.2 (2024-03-21)
- 修复了方法名称不匹配的问题：
  - 将`process_latest_excel`方法调用改为`process_excel`
  - 确保Excel处理功能正常工作
- 优化了错误处理和日志记录 

## v1.5.3 (2024-03-21)
- 优化了完整流程处理逻辑：
  - 修改了OCR处理逻辑，当遇到已处理的图片时自动跳过并继续执行
  - 改进了错误处理，避免因图片已处理而中断流程
  - 优化了日志提示信息，提供更清晰的处理状态反馈
- 改进了OCRService的process_image方法：
  - 添加了文件存在性检查
  - 添加了文件类型验证
  - 添加了已处理文件检查
  - 优化了错误处理和日志记录 
