orc识别进货单,然后按照银豹模板进行处理
Go to file
2025-05-02 19:58:27 +08:00
app 更新了README文件,添加了版本信息和更新日志 2025-05-02 19:58:27 +08:00
backup/v1_backup_20250502190248 v1.0正式版 2025-05-02 19:05:42 +08:00
data 更新了README文件,添加了版本信息和更新日志 2025-05-02 19:58:27 +08:00
logs 更新了README文件,添加了版本信息和更新日志 2025-05-02 19:58:27 +08:00
templates 增强版v2-初始化仓库,验证好了ocr部分,先备份一次 2025-05-02 17:25:47 +08:00
config.ini 增强版v2-初始化仓库,验证好了ocr部分,先备份一次 2025-05-02 17:25:47 +08:00
README.md v1.0正式版 2025-05-02 19:05:42 +08:00
requirements.txt 增强版v2-初始化仓库,验证好了ocr部分,先备份一次 2025-05-02 17:25:47 +08:00
run.py 增强版v2-初始化仓库,验证好了ocr部分,先备份一次 2025-05-02 17:25:47 +08:00
v2-优化总结.md ai说excel部分没问题了,暂且信一次,提交文件 2025-05-02 17:55:29 +08:00
启动器.py 更新了README文件,添加了版本信息和更新日志 2025-05-02 19:58:27 +08:00
项目结构优化方案.md 增强版v2-初始化仓库,验证好了ocr部分,先备份一次 2025-05-02 17:25:47 +08:00

OCR订单处理系统 v1.0

基于百度OCR API的订单处理系统用于识别采购订单图片并生成Excel采购单。

版本信息

  • 当前版本: v1.0
  • 发布日期: 2025-05-02
  • 作者: OCR订单处理团队

功能特点

  • 图像OCR识别支持对采购单图片进行OCR识别并生成Excel文件
  • Excel数据处理读取OCR识别的Excel文件并提取商品信息
  • 采购单生成按照模板格式生成标准采购单Excel文件
  • 采购单合并:支持多个采购单合并为一个总单
  • 批量处理:支持批量处理多张图片
  • 图形界面:提供简洁直观的图形界面,方便操作
  • 命令行支持:支持命令行方式调用,便于自动化处理

系统架构

目录结构

orc-order-v2/
│
├── app/                  # 应用主目录
│   ├── config/           # 配置目录
│   │   ├── settings.py   # 配置管理
│   │   └── defaults.py   # 默认配置值
│   │
│   ├── core/             # 核心功能
│   │   ├── ocr/          # OCR相关功能
│   │   │   ├── baidu_ocr.py      # 百度OCR接口
│   │   │   └── table_ocr.py      # 表格OCR处理
│   │   │
│   │   ├── excel/        # Excel处理
│   │   │   ├── processor.py      # Excel处理核心
│   │   │   ├── merger.py         # 订单合并功能
│   │   │   └── converter.py      # 单位转换与规格处理
│   │   │
│   │   └── utils/        # 工具函数
│   │       ├── file_utils.py     # 文件处理工具
│   │       └── log_utils.py      # 日志工具
│   │
│   └── services/         # 服务层
│       ├── ocr_service.py        # OCR服务
│       └── excel_service.py      # Excel处理服务
│
├── data/                 # 数据目录
│   ├── input/            # 输入图片目录
│   ├── output/           # 处理结果输出目录
│   ├── temp/             # 临时文件目录
│   └── backup/           # 备份目录
│
├── logs/                 # 日志目录
│
├── templates/            # 模板目录
│   └── 银豹-采购单模板.xls    # Excel模板文件
│
├── config.ini            # 配置文件
├── run.py                # 命令行入口脚本
├── 启动器.py               # 图形界面启动器
└── README.md             # 项目说明文档

安装与配置

环境要求

  • Python 3.8+
  • 百度OCR API账号及密钥

安装依赖

pip install -r requirements.txt

配置文件

config.ini中配置以下信息:

[OCR]
api_key = 你的百度OCR API Key
secret_key = 你的百度OCR Secret Key

[Paths]
input_folder = data/input
output_folder = data/output
template_file = templates/银豹-采购单模板.xls

使用方法

图形界面

运行启动器.py启动图形界面:

python 启动器.py

图形界面包括以下功能:

  • 处理单个文件:选择并处理单个图片文件
  • 批量处理处理data/input目录中的所有图片文件
  • 合并处理:合并多个采购单
  • 清理文件清理input和output目录中的文件
  • 查看日志:实时显示处理日志

命令行模式

# 处理单个文件
python run.py --file=image.jpg

# 批量处理目录中的所有文件
python run.py --batch

# 合并采购单
python run.py --merge

单位处理规则

系统支持多种单位的智能处理,自动识别和转换不同的计量单位。单位处理逻辑如下:

标准单位处理

单位 处理规则 示例
数量×包装数量
单价÷包装数量
单位转换为"瓶"
1件(规格1*12) → 12瓶
单价108元/件 → 9元/瓶
数量×包装数量
单价÷包装数量
单位转换为"瓶"
2箱(规格1*24) → 48瓶
单价120元/箱 → 5元/瓶
保持原数量和单位不变 3包 → 3包
其他单位 保持原数量和单位不变 5瓶 → 5瓶

提和盒单位特殊处理

系统对"提"和"盒"单位有特殊的处理逻辑:

  1. 当规格是三级格式如1512

    • 按照件的计算方式处理
    • 数量 = 原始数量 × 包装数量
    • 单位转换为"瓶"
    • 单价 = 原始单价 ÷ 包装数量

    示例3提(规格1512) → 36瓶

  2. 当规格是二级格式如1*16

    • 保持原数量不变
    • 保持原单位不变

    示例3提(规格1*16) → 仍然是3提

特殊条码处理

系统支持对特定条码进行特殊处理,这些条码的处理规则会覆盖上述的标准单位处理规则:

  1. 特殊条码配置:

    special_barcodes = {
        '6925019900087': {
            'multiplier': 10,  # 数量乘以10
            'target_unit': '瓶',  # 目标单位
            'description': '特殊处理:数量*10单位转换为瓶'
        }
        # 可以添加更多特殊条码的配置
    }
    
  2. 处理规则:

    • 当遇到特殊条码时,无论规格是二级还是三级
    • 无论单位是提还是盒还是件
    • 都按照特殊条码配置进行处理
    • 数量乘以配置的倍数
    • 单位转换为配置的目标单位
    • 如果有单价,单价除以配置的倍数

智能规格推断

当规格信息为空时,系统能从商品名称自动推断规格:

  1. 匹配"xx入"格式:

    • 如"445水溶C血橙15入纸箱" → 规格推断为 1*15
  2. 匹配直接包含规格的格式:

    • 如"500-东方树叶-绿茶115-纸箱装" → 规格推断为 115
  3. 匹配容量格式:

    • 如"12.9L桶装水" → 规格推断为 12.9L*1
  4. 其他商品命名模式:

    • 如"900树叶茉莉花茶12入纸箱" → 规格推断为 1*12
    • 如"500茶π蜜桃乌龙15纸箱" → 规格推断为 1*15

注意事项

  1. 确保输入文件格式正确支持jpg、png等图片格式
  2. 处理结果将输出到data/output目录下
  3. 定期清理临时文件和日志文件
  4. 及时更新百度OCR API密钥
  5. 为避免数据丢失,可使用清理功能前的备份选项

错误排查

  • OCR识别失败检查API密钥是否正确图片是否符合要求
  • Excel处理失败检查OCR识别结果是否包含必要的列条码、数量、单价等
  • 模板填充错误:确保模板文件存在且格式正确

开发说明

如需进行二次开发或扩展功能,请参考以下说明:

  1. 核心逻辑位于app/core目录
  2. 添加新功能建议遵循已有的模块化结构
  3. 使用app/services目录中的服务类调用核心功能
  4. 日志记录已集成到各模块,便于调试

许可证

MIT License

更新日志

v1.0 (2025-05-02)

主要功能

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

技术改进

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

联系方式

如有问题请提交Issue或联系开发者。