From b3cecda175402bf948c1693d34874d78bd945d9f Mon Sep 17 00:00:00 2001 From: houhuan Date: Fri, 2 May 2025 18:17:24 +0800 Subject: [PATCH] excel --- .../__pycache__/converter.cpython-39.pyc | Bin 5231 -> 7535 bytes .../__pycache__/processor.cpython-39.pyc | Bin 11672 -> 11672 bytes data/output/processed_files.json | 2 +- data/output/~$微信图片_20250227193150(1).xlsx | Bin 165 -> 0 bytes data/output/微信图片_20250227193150(1).xlsx | Bin 10673 -> 10790 bytes .../采购单_微信图片_20250227193150(1).xls | Bin 5632 -> 0 bytes logs/__main__.active | 2 +- logs/__main__.log | 8 +++ logs/app.core.excel.converter.active | 2 +- logs/app.core.excel.converter.log | 16 ++++++ logs/app.core.excel.merger.active | 2 +- logs/app.core.excel.merger.log | 8 +++ logs/app.core.excel.processor.active | 2 +- logs/app.core.excel.processor.log | 53 ++++++++++++++++++ logs/app.core.ocr.baidu_ocr.active | 2 +- logs/app.core.ocr.table_ocr.active | 2 +- logs/app.core.ocr.table_ocr.log | 16 ++++++ logs/app.core.utils.file_utils.active | 2 +- logs/app.services.ocr_service.active | 2 +- logs/app.services.ocr_service.log | 8 +++ logs/app.services.order_service.active | 2 +- logs/app.services.order_service.log | 12 ++++ v1/input/微信图片_20250227193150(1).xlsx | Bin 0 -> 10790 bytes 23 files changed, 131 insertions(+), 10 deletions(-) delete mode 100644 data/output/~$微信图片_20250227193150(1).xlsx delete mode 100644 data/output/采购单_微信图片_20250227193150(1).xls create mode 100644 v1/input/微信图片_20250227193150(1).xlsx diff --git a/app/core/excel/__pycache__/converter.cpython-39.pyc b/app/core/excel/__pycache__/converter.cpython-39.pyc index d3e5627ed412faa3b9bc22d083b6ef191ac82324..ab54b9a50e264aada437fae8e015b1b84c9a476c 100644 GIT binary patch literal 7535 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 literal 5231 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 diff --git a/app/core/excel/__pycache__/processor.cpython-39.pyc b/app/core/excel/__pycache__/processor.cpython-39.pyc index 5430a19577c9e454ef522adb177305888cfef0c3..9e63beb9254036753aa44c79132fad0b025d127f 100644 GIT binary patch delta 19 ZcmbOcJtLYck(ZZ?0SInP-N@Ca3jj4l1z7+9 delta 19 ZcmbOcJtLYck(ZZ?0SGov+Q`+X3jj1%1u*~s diff --git a/data/output/processed_files.json b/data/output/processed_files.json index 3cc8c6b..077404a 100644 --- a/data/output/processed_files.json +++ b/data/output/processed_files.json @@ -1,3 +1,3 @@ { - "D:\\My Documents\\python\\orc-order-v2\\data\\output\\微信图片_20250227193150(1).xlsx": "D:\\My Documents\\python\\orc-order-v2\\data\\output\\采购单_微信图片_20250227193150(1).xls" + } \ No newline at end of file diff --git a/data/output/~$微信图片_20250227193150(1).xlsx b/data/output/~$微信图片_20250227193150(1).xlsx deleted file mode 100644 index 1e0c8b3a64122aeea8ded50bd91585a6113ab2a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 165 ycmd;eOv%m6%PcM_N-W7QQXm%aGB`4%Fyu01GUNeqF+&MM5kn%7%m>m6REGf9mK7ZU diff --git a/data/output/微信图片_20250227193150(1).xlsx b/data/output/微信图片_20250227193150(1).xlsx index a4332760f02b1ac9574e455fff4bd10ca61d340a..ba110830edbb06d3b79d913c52389ca47fd42b19 100644 GIT binary patch delta 5471 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 delta 5377 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 oE4eq+@jr*<@g瓶, 规格=1*15, 包装数量=15 2025-05-02 17:42:15,794 - app.core.excel.converter - INFO - 标准单位转换: 件->瓶, 规格=1*15, 包装数量=15 2025-05-02 17:42:15,794 - app.core.excel.converter - INFO - 标准单位转换: 件->瓶, 规格=1*15, 包装数量=15 +2025-05-02 17:57:42,343 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15 +2025-05-02 17:57:42,343 - app.core.excel.converter - INFO - 件单位处理: 数量: 1.0 -> 15.0, 单价: 55.0 -> 3.6666666666666665, 单位: 件 -> 瓶 +2025-05-02 17:57:42,343 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15 +2025-05-02 17:57:42,344 - app.core.excel.converter - INFO - 件单位处理: 数量: 1.0 -> 15.0, 单价: 55.0 -> 3.6666666666666665, 单位: 件 -> 瓶 +2025-05-02 17:57:42,344 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15 +2025-05-02 17:57:42,344 - app.core.excel.converter - INFO - 件单位处理: 数量: 1.0 -> 15.0, 单价: 55.0 -> 3.6666666666666665, 单位: 件 -> 瓶 +2025-05-02 17:57:42,344 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15 +2025-05-02 17:57:42,345 - app.core.excel.converter - INFO - 件单位处理: 数量: 1.0 -> 15.0, 单价: 55.0 -> 3.6666666666666665, 单位: 件 -> 瓶 +2025-05-02 17:57:42,345 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15 +2025-05-02 17:57:42,345 - app.core.excel.converter - INFO - 件单位处理: 数量: 1.0 -> 15.0, 单价: 65.0 -> 4.333333333333333, 单位: 件 -> 瓶 +2025-05-02 17:57:42,345 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15 +2025-05-02 17:57:42,345 - app.core.excel.converter - INFO - 件单位处理: 数量: 1.0 -> 15.0, 单价: 65.0 -> 4.333333333333333, 单位: 件 -> 瓶 +2025-05-02 17:57:42,346 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15 +2025-05-02 17:57:42,346 - app.core.excel.converter - INFO - 件单位处理: 数量: 1.0 -> 15.0, 单价: 0 -> 0, 单位: 件 -> 瓶 +2025-05-02 17:57:42,346 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15 +2025-05-02 17:57:42,346 - app.core.excel.converter - INFO - 件单位处理: 数量: 1.0 -> 15.0, 单价: 0 -> 0, 单位: 件 -> 瓶 diff --git a/logs/app.core.excel.merger.active b/logs/app.core.excel.merger.active index ebbed39..ab58f88 100644 --- a/logs/app.core.excel.merger.active +++ b/logs/app.core.excel.merger.active @@ -1 +1 @@ -Active since: 2025-05-02 17:42:15 \ No newline at end of file +Active since: 2025-05-02 18:01:40 \ No newline at end of file diff --git a/logs/app.core.excel.merger.log b/logs/app.core.excel.merger.log index 03f4801..8120af7 100644 --- a/logs/app.core.excel.merger.log +++ b/logs/app.core.excel.merger.log @@ -32,3 +32,11 @@ 2025-05-02 17:40:07,688 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls 2025-05-02 17:42:15,226 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger 2025-05-02 17:42:15,226 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-02 17:57:41,816 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger +2025-05-02 17:57:41,817 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-02 18:00:56,507 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger +2025-05-02 18:00:56,508 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-02 18:01:27,764 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger +2025-05-02 18:01:27,765 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-02 18:01:40,471 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger +2025-05-02 18:01:40,472 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls diff --git a/logs/app.core.excel.processor.active b/logs/app.core.excel.processor.active index ebbed39..ab58f88 100644 --- a/logs/app.core.excel.processor.active +++ b/logs/app.core.excel.processor.active @@ -1 +1 @@ -Active since: 2025-05-02 17:42:15 \ No newline at end of file +Active since: 2025-05-02 18:01:40 \ No newline at end of file diff --git a/logs/app.core.excel.processor.log b/logs/app.core.excel.processor.log index c5e6225..1fe2fc9 100644 --- a/logs/app.core.excel.processor.log +++ b/logs/app.core.excel.processor.log @@ -110,3 +110,56 @@ 2025-05-02 17:42:15,833 - app.core.excel.processor - INFO - 条码 6973497202360 填充:仅有赠品,采购量=0,赠品数量=15.0 2025-05-02 17:42:15,833 - app.core.excel.processor - INFO - 条码 6973497202889 填充:仅有赠品,采购量=0,赠品数量=15.0 2025-05-02 17:42:15,836 - app.core.excel.processor - INFO - 采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250227193150(1).xls +2025-05-02 17:57:41,815 - app.core.excel.processor - INFO - 初始化ExcelProcessor +2025-05-02 17:57:41,816 - app.core.excel.processor - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-02 17:57:41,817 - app.core.excel.processor - INFO - 开始处理Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250227193150(1).xlsx +2025-05-02 17:57:42,341 - app.core.excel.processor - INFO - 成功读取Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250227193150(1).xlsx, 共 11 行 +2025-05-02 17:57:42,341 - app.core.excel.processor - INFO - 列名映射结果: {'barcode': '条码', 'specification': '规格', 'quantity': '数量', 'unit': '单位', 'price': '单价'} +2025-05-02 17:57:42,347 - app.core.excel.processor - INFO - 提取到 8 个商品信息 +2025-05-02 17:57:42,354 - app.core.excel.processor - INFO - 开始处理8 个产品信息 +2025-05-02 17:57:42,354 - app.core.excel.processor - INFO - 处理商品: 条码=6973497202346, 数量=15.0, 单价=3.6666666666666665, 是否赠品=False +2025-05-02 17:57:42,354 - app.core.excel.processor - INFO - 发现正常商品:条码6973497202346, 数量=15.0, 单价=3.6666666666666665 +2025-05-02 17:57:42,354 - app.core.excel.processor - INFO - 处理商品: 条码=6973497202940, 数量=15.0, 单价=3.6666666666666665, 是否赠品=False +2025-05-02 17:57:42,354 - app.core.excel.processor - INFO - 发现正常商品:条码6973497202940, 数量=15.0, 单价=3.6666666666666665 +2025-05-02 17:57:42,354 - app.core.excel.processor - INFO - 处理商品: 条码=6973497200267, 数量=15.0, 单价=3.6666666666666665, 是否赠品=False +2025-05-02 17:57:42,354 - app.core.excel.processor - INFO - 发现正常商品:条码6973497200267, 数量=15.0, 单价=3.6666666666666665 +2025-05-02 17:57:42,354 - app.core.excel.processor - INFO - 处理商品: 条码=6973497200403, 数量=15.0, 单价=3.6666666666666665, 是否赠品=False +2025-05-02 17:57:42,354 - app.core.excel.processor - INFO - 发现正常商品:条码6973497200403, 数量=15.0, 单价=3.6666666666666665 +2025-05-02 17:57:42,354 - app.core.excel.processor - INFO - 处理商品: 条码=6873497204449, 数量=15.0, 单价=4.333333333333333, 是否赠品=False +2025-05-02 17:57:42,354 - app.core.excel.processor - INFO - 发现正常商品:条码6873497204449, 数量=15.0, 单价=4.333333333333333 +2025-05-02 17:57:42,355 - app.core.excel.processor - INFO - 处理商品: 条码=6973497204432, 数量=15.0, 单价=4.333333333333333, 是否赠品=False +2025-05-02 17:57:42,355 - app.core.excel.processor - INFO - 发现正常商品:条码6973497204432, 数量=15.0, 单价=4.333333333333333 +2025-05-02 17:57:42,355 - app.core.excel.processor - INFO - 处理商品: 条码=6973497202360, 数量=15.0, 单价=0, 是否赠品=True +2025-05-02 17:57:42,355 - app.core.excel.processor - INFO - 发现赠品:条码6973497202360, 数量=15.0 +2025-05-02 17:57:42,355 - app.core.excel.processor - INFO - 处理商品: 条码=6973497202889, 数量=15.0, 单价=0, 是否赠品=True +2025-05-02 17:57:42,355 - app.core.excel.processor - INFO - 发现赠品:条码6973497202889, 数量=15.0 +2025-05-02 17:57:42,355 - app.core.excel.processor - INFO - 分组后共8 个不同条码的商品 +2025-05-02 17:57:42,384 - app.core.excel.processor - INFO - 条码 6973497202346 处理结果:正常商品数量15.0,单价3.6666666666666665,赠品数量0 +2025-05-02 17:57:42,384 - app.core.excel.processor - INFO - 条码 6973497202940 处理结果:正常商品数量15.0,单价3.6666666666666665,赠品数量0 +2025-05-02 17:57:42,384 - app.core.excel.processor - INFO - 条码 6973497200267 处理结果:正常商品数量15.0,单价3.6666666666666665,赠品数量0 +2025-05-02 17:57:42,384 - app.core.excel.processor - INFO - 条码 6973497200403 处理结果:正常商品数量15.0,单价3.6666666666666665,赠品数量0 +2025-05-02 17:57:42,384 - app.core.excel.processor - INFO - 条码 6873497204449 处理结果:正常商品数量15.0,单价4.333333333333333,赠品数量0 +2025-05-02 17:57:42,385 - app.core.excel.processor - INFO - 条码 6973497204432 处理结果:正常商品数量15.0,单价4.333333333333333,赠品数量0 +2025-05-02 17:57:42,385 - app.core.excel.processor - INFO - 条码 6973497202360 处理结果:只有赠品,数量=15.0 +2025-05-02 17:57:42,385 - app.core.excel.processor - INFO - 条码 6973497202889 处理结果:只有赠品,数量=15.0 +2025-05-02 17:57:42,385 - app.core.excel.processor - INFO - 条码 6973497202360 填充:仅有赠品,采购量=0,赠品数量=15.0 +2025-05-02 17:57:42,385 - app.core.excel.processor - INFO - 条码 6973497202889 填充:仅有赠品,采购量=0,赠品数量=15.0 +2025-05-02 17:57:42,388 - app.core.excel.processor - INFO - 采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250227193150(1).xls +2025-05-02 18:00:56,507 - app.core.excel.processor - INFO - 初始化ExcelProcessor +2025-05-02 18:00:56,507 - app.core.excel.processor - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-02 18:00:56,509 - app.core.excel.processor - INFO - 开始处理Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250227193150(1).xlsx +2025-05-02 18:00:57,127 - app.core.excel.processor - INFO - 成功读取Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250227193150(1).xlsx, 共 12 行 +2025-05-02 18:00:57,127 - app.core.excel.processor - ERROR - 未找到条码列,无法处理 +2025-05-02 18:00:57,127 - app.core.excel.processor - WARNING - 未提取到有效商品信息 +2025-05-02 18:01:27,763 - app.core.excel.processor - INFO - 初始化ExcelProcessor +2025-05-02 18:01:27,764 - app.core.excel.processor - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-02 18:01:27,766 - app.core.excel.processor - INFO - 开始处理Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250227193150(1).xlsx +2025-05-02 18:01:28,275 - app.core.excel.processor - INFO - 成功读取Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250227193150(1).xlsx, 共 12 行 +2025-05-02 18:01:28,275 - app.core.excel.processor - ERROR - 未找到条码列,无法处理 +2025-05-02 18:01:28,275 - app.core.excel.processor - WARNING - 未提取到有效商品信息 +2025-05-02 18:01:40,470 - app.core.excel.processor - INFO - 初始化ExcelProcessor +2025-05-02 18:01:40,471 - app.core.excel.processor - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-02 18:01:40,473 - app.core.excel.processor - INFO - 开始处理Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250227193150(1).xlsx +2025-05-02 18:01:41,097 - app.core.excel.processor - INFO - 成功读取Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250227193150(1).xlsx, 共 12 行 +2025-05-02 18:01:41,097 - app.core.excel.processor - ERROR - 未找到条码列,无法处理 +2025-05-02 18:01:41,097 - app.core.excel.processor - WARNING - 未提取到有效商品信息 diff --git a/logs/app.core.ocr.baidu_ocr.active b/logs/app.core.ocr.baidu_ocr.active index 564d157..5ad1445 100644 --- a/logs/app.core.ocr.baidu_ocr.active +++ b/logs/app.core.ocr.baidu_ocr.active @@ -1 +1 @@ -Active since: 2025-05-02 17:42:14 \ No newline at end of file +Active since: 2025-05-02 18:01:39 \ No newline at end of file diff --git a/logs/app.core.ocr.table_ocr.active b/logs/app.core.ocr.table_ocr.active index 564d157..5ad1445 100644 --- a/logs/app.core.ocr.table_ocr.active +++ b/logs/app.core.ocr.table_ocr.active @@ -1 +1 @@ -Active since: 2025-05-02 17:42:14 \ No newline at end of file +Active since: 2025-05-02 18:01:39 \ No newline at end of file diff --git a/logs/app.core.ocr.table_ocr.log b/logs/app.core.ocr.table_ocr.log index 48a95ea..8417256 100644 --- a/logs/app.core.ocr.table_ocr.log +++ b/logs/app.core.ocr.table_ocr.log @@ -63,3 +63,19 @@ 2025-05-02 17:42:15,224 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output 2025-05-02 17:42:15,224 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp 2025-05-02 17:42:15,225 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成,输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-02 17:57:41,815 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input +2025-05-02 17:57:41,815 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-02 17:57:41,815 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp +2025-05-02 17:57:41,815 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成,输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-02 18:00:56,506 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input +2025-05-02 18:00:56,506 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-02 18:00:56,506 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp +2025-05-02 18:00:56,506 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成,输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-02 18:01:27,762 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input +2025-05-02 18:01:27,762 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-02 18:01:27,762 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp +2025-05-02 18:01:27,763 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成,输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-02 18:01:40,469 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input +2025-05-02 18:01:40,470 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-02 18:01:40,470 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp +2025-05-02 18:01:40,470 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成,输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output diff --git a/logs/app.core.utils.file_utils.active b/logs/app.core.utils.file_utils.active index 564d157..5ad1445 100644 --- a/logs/app.core.utils.file_utils.active +++ b/logs/app.core.utils.file_utils.active @@ -1 +1 @@ -Active since: 2025-05-02 17:42:14 \ No newline at end of file +Active since: 2025-05-02 18:01:39 \ No newline at end of file diff --git a/logs/app.services.ocr_service.active b/logs/app.services.ocr_service.active index 564d157..5ad1445 100644 --- a/logs/app.services.ocr_service.active +++ b/logs/app.services.ocr_service.active @@ -1 +1 @@ -Active since: 2025-05-02 17:42:14 \ No newline at end of file +Active since: 2025-05-02 18:01:39 \ No newline at end of file diff --git a/logs/app.services.ocr_service.log b/logs/app.services.ocr_service.log index 0234752..2ced16f 100644 --- a/logs/app.services.ocr_service.log +++ b/logs/app.services.ocr_service.log @@ -31,3 +31,11 @@ 2025-05-02 17:40:07,686 - app.services.ocr_service - INFO - OCRService初始化完成 2025-05-02 17:42:15,222 - app.services.ocr_service - INFO - 初始化OCRService 2025-05-02 17:42:15,225 - app.services.ocr_service - INFO - OCRService初始化完成 +2025-05-02 17:57:41,814 - app.services.ocr_service - INFO - 初始化OCRService +2025-05-02 17:57:41,815 - app.services.ocr_service - INFO - OCRService初始化完成 +2025-05-02 18:00:56,505 - app.services.ocr_service - INFO - 初始化OCRService +2025-05-02 18:00:56,506 - app.services.ocr_service - INFO - OCRService初始化完成 +2025-05-02 18:01:27,761 - app.services.ocr_service - INFO - 初始化OCRService +2025-05-02 18:01:27,763 - app.services.ocr_service - INFO - OCRService初始化完成 +2025-05-02 18:01:40,468 - app.services.ocr_service - INFO - 初始化OCRService +2025-05-02 18:01:40,470 - app.services.ocr_service - INFO - OCRService初始化完成 diff --git a/logs/app.services.order_service.active b/logs/app.services.order_service.active index ebbed39..ab58f88 100644 --- a/logs/app.services.order_service.active +++ b/logs/app.services.order_service.active @@ -1 +1 @@ -Active since: 2025-05-02 17:42:15 \ No newline at end of file +Active since: 2025-05-02 18:01:40 \ No newline at end of file diff --git a/logs/app.services.order_service.log b/logs/app.services.order_service.log index 4d6bbfe..a8471c8 100644 --- a/logs/app.services.order_service.log +++ b/logs/app.services.order_service.log @@ -29,3 +29,15 @@ 2025-05-02 17:42:15,225 - app.services.order_service - INFO - 初始化OrderService 2025-05-02 17:42:15,226 - app.services.order_service - INFO - OrderService初始化完成 2025-05-02 17:42:15,227 - app.services.order_service - INFO - OrderService开始处理指定Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250227193150(1).xlsx +2025-05-02 17:57:41,815 - app.services.order_service - INFO - 初始化OrderService +2025-05-02 17:57:41,817 - app.services.order_service - INFO - OrderService初始化完成 +2025-05-02 17:57:41,817 - app.services.order_service - INFO - OrderService开始处理指定Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250227193150(1).xlsx +2025-05-02 18:00:56,506 - app.services.order_service - INFO - 初始化OrderService +2025-05-02 18:00:56,508 - app.services.order_service - INFO - OrderService初始化完成 +2025-05-02 18:00:56,509 - app.services.order_service - INFO - OrderService开始处理指定Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250227193150(1).xlsx +2025-05-02 18:01:27,763 - app.services.order_service - INFO - 初始化OrderService +2025-05-02 18:01:27,765 - app.services.order_service - INFO - OrderService初始化完成 +2025-05-02 18:01:27,766 - app.services.order_service - INFO - OrderService开始处理指定Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250227193150(1).xlsx +2025-05-02 18:01:40,470 - app.services.order_service - INFO - 初始化OrderService +2025-05-02 18:01:40,472 - app.services.order_service - INFO - OrderService初始化完成 +2025-05-02 18:01:40,472 - app.services.order_service - INFO - OrderService开始处理指定Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250227193150(1).xlsx diff --git a/v1/input/微信图片_20250227193150(1).xlsx b/v1/input/微信图片_20250227193150(1).xlsx new file mode 100644 index 0000000000000000000000000000000000000000..ba110830edbb06d3b79d913c52389ca47fd42b19 GIT binary patch literal 10790 zcmaJ{Wk4Luvc{d@u8X_7ySux)yAvD&!JXh1+&#E!a0>(o?(UNCAUXF)?s>O=?9R@9 zRn_zLOih<4NP~jG0KJYdxebBW@Ba+wmje@fV+ALB2WNVP7Z~cx38qbxVOVqKe)IJ|ouJ&!8h=F;Rje>AH4J`Hr<&f-*}=WCFhn(m%h~!;Ge*Ddwb8W(-&I>_ zGKi%$t5b&H22&PfbzBQzAvMGM!Cqfmx(nO1y(((Ztv=4GB^gQEKQjDIBH|j&eAE3c zbnU6G#BtC!JTp9s`Yf>Ti0SkcEeXI6eHm`k)|L!px7L=JE}I};=jRVkKW^^suX;4E zW|j#D%Zw}J`+PLsZ8+2*NZ?L!kkGKQASe&}KLuaQ-Rh8CV#LcmK0^TQ zUhjhMZ;ka?j*!KUw`f{8U)sIklv%ED+Y5u@bg;lm>s070Ch_6jNgtN_@K{Xz2B20^F z6ZUk}#Tw37`v5;5*;xz!EjSjIrkk-Fw-=samKO;xHt<&ByV(djAx9`O35B^MZvWlj zVVA_?ZipHdhw1vwk~>!)UM=`(-)eiEsD1e%SE;xyTsHr}#O32)qm@RnnHsJ_7K~gA z@D5di{(Yl16gq-CB|a`YF-@AQGykzG@P=2mpYK~2>i$mA7#kcH9mIeMkyZ%tZA%yD z){I;pz%U2NTT*GJ+)YN(twPVot+xp^+_7O`&%^_Ln-)Htg!sUo>5o_XTWi1Z&UEEX z^};*S3-2iZ;N8{P#oqRn`NB9^>0SZE(9^(Yz>#lVYeI~fbo}%VXkSp^QdzLc3`G1& z?25|!yR{XiGLN&oK|?+KEO#=!_BZX$hzTc&GKkKUPQm4>GsC)pS@_bp0P%DwHr1*E ziAhC^da0_ajYr8SBc{yBXi>pzf~*EbQ2b7Zy)kY4G5xrxQh7J8M-SWzJ8Zw67&-3LO36uWd=pRnNg&~F<}r$8 zgOhXck4S~p0p(kV8+e?XlyF0Fa|UH=CfcK1siyoL7R-fu3aB(RochAw!jR6UZ#jZZ z`%2*2iybc9v{*D(xGM9@ZgQfX2ESkh@RPToIcIp zr|d(%Qv2^-1@whl51XI<hGsN`qODN=eLZf;rqD1SBTzA(c8^dz$R8D>z zm@-d9!%|J>3}t+q!bi87Bf@bVsBMW+2@$*D!FPwoZl(0At8UpBO=a=Sk=Mxb^nKNq z`%g7BX!>!5NyYtoUL_PyWGvo^%6?XnbrQ7V!5X4Uyqy^x{+lRpCzPYi_tFTr$cQQG z{JWQ5xU;S3X_qOyKx(|RN52&&=Ru*QHIKGr1=uHbW}Gr9D9W}gpMUT1HK|LD(y^Ev znuyFkTx}puC_3fYE!pB8LR+|(f4AZNVJjBn=trgdbJ2(EwuVv}Pvi~FmiM`v0wFmo z#gODBV|t!l&Rq-N@_(p@futaYuJuoKcJ!g{e|=Enq*@S9Ww@703>a=B__k6&ZZJ+P9GQsLzYga~e-j$$nWxeT` zukBWB#`-y?HD>ALY}t(fp66!&WV4a`sd1$U-y8Fqj{pL}>#!zB&-QjAa>X8X);V9v zinFTkOMnw7<)LyOIw)Iu4^7d?U2%D-Y{^GBY8$9(Kwl^;o5*5ycPK4eA8!x>u)AXK z7?L9OVNZztPzLtE#V6dc@9Gl0S4?o}24qN!eUl_Y>6mGKOJoCNNMHIgC2eesjF7d{ zo7uw`$?&;)Vo{jVVwE*zIg4~}$*64t0sWvLg7INsfh_tcP{_PQhy@R!0Y8w>xn0nzNpmVmxoNtrP^exhgK)C80v;{n6^C^5c58@QBGs5u{pNFO_ ztNkF1m6ux%1qM$_h{%#SDMq6S4c7mnHo{bxkRtimmZUMx-6W&}EUscC!leH_P{21) ze}OY11LEXzut3vx!UKA=q_Lf8H{J43b;>L3+V-eEHYZmjl}@jwnlgP&Szhtx2k4*L zRh9q&gf;VEfldsyNTIP&Q5t{DLv2ykt(MPaS-@1ZHcv|v32J1^UqFE@jLoQ!GJtTK z_+`RNLr_U$H^O~Gq7e40!B$I=Caoi@M;TCNkxXnkn2EK3ZjBK|xa4S~YBw4)#iiL(MQQiO|SMzOyLMYV;yBUsrzE%;_XQrk;3Zl)vPC4 zbJi};u3-V#2d*B)$&x}$-ue7u@_LjQ3ZoAN0!0RsS_3Q6dW%|c`-+8?6?#Z>uyeDa zMhcQP&^vFEM85icDv4c6LK#_1zvfmEqUPZ39$`uDUEEHnrBAwTzAs z=WoX{b}pE1Ys6^d+RIN_lI)j;mShar{#1AKCSt~ogiBs9{xibDvYl#ieQC#OwZ$erXlO`- zlvd&lVJD6VOplxiJt)tXfY|g#37qx$(>Gix&!GRm4}RU*z4%}k3sYOu-*$E~c*&E? zFW!|9>(^WGPuNfJPse(!DQl0zj@XW|=cjSh9%ph$%tQp)$hSe}hAbi#fm@<$m4f8n zLP*K|32nGWARy0jN;+WGi(&~v!e4J%f0Io#9poMs&qDC_D6Ip$&Y6TlLG*QWEAq8+# z6B!D!fuH+&qkOkJRR}f|1p!r&2Of@`H4I=UPrAiD(qb?SOUR9>2chs(k%WY2?@smm zuDV;5%A}m3$Toy_uU*bFOluEehTT4=Ckq{U#RAUtj^4gLXtB=Vwf1+jPR)lIAXKpG z>5TXLbv0|Nr>rpLz$5%zKDS!!#~(u2pX{p~SFMZvV5ro6#KYdcG`LOxGdk^ zndN(XFsyFZ#&F*GeD%e?^X)!F51$s3*ZuVje-^**{pVf3A7_2QYnv7}J>n$YJ+0yL zZQL{g4f|b-W9O-zY5f#peYFCNcW%umql+M`8N>%Y$Hv?qw;U4hU_ESax;D5X?`4n& z$JjUeK=2vGZn4}UzJ-1meRpP&EOs({Ki0P*xVOmaj!~#)^;id2pU|x1W^6OnCaXxL z7_3agdmSmu=vIEh2T;?Ak?2Y@K-pg*U*#hjkBuB!q$((!0+uACcg7HuXh2KP_g>}8 zuT;G~tBDGR4=4_Lf>NfAT$q%}>)Un;Mz(@@LL6Qcb>i3!2tR~{PK#zR)#L9IYPPX+ z)ToNP!XYF$sVA87G$L*xQBIiXdSGi#23etLKruP<$vK~1JuX5WZ*6OI+ z;M!(ii{~4)J};CLeu^nx7HNCqMYKcOgLa`#b&F@es>$@5i{*vwLewCsvR;F?8}qxT zCY$HpLKJu-oc&=!*s-is17KgVud8R8dS*18`g)$`HOoqH%;@kzhPOQ$6r+2i1b6n#tUVK`R;(N2 zI?m~!D3;j)hB9Uei*B(Nv=FMXSKqM%cL;OUZ`3sE@o4C%Z{Mp_)BstTs(lOI>TW6B zWIr$f5p%E=LJgym_bkQuGB@m#p0X`MJwews$bL@-mPp&Kv|j6;vm!IX~zvz zicCOrFuUs*kB5s)pHy;CeUyGi zK)C|&LE9Dv}6He*n^1L{YLhGs&4+Eo!al_X?JeLT;ZI0zZXbIEvI^qT%(UUgB03 zwiV=eCNVN}pjn6dV*@C$*Ey8n=iy4{WJfFGoEH~eC)kwYm_?kwFw?3k>dsUc&BMKC zt41Du&*~X8N7Oe-_xVk>^lj-@BZgL!lN?1W7+70mcK%^jJ^*tzIYDz4b<-6~?SpRQ zQoC_Y7jtoDktAm6nohHBxb_#~jG69lAzb{66>79_vgo@~c$VLLL+)WgarlAG_qtoZ zVkHq_K*2A4|G91dE6R^|+o}n9iH1lZfPh}lzPt;ZEexGZO_W`nEbYvlUw7HADl2l> ziijQd)9!@J1sEi*6F+K~LG)PmQR)!{98{4tXj<8h@#@il1yu?{sgTMQXV{V;3gW=C z%_hEVkErii+T@IXA@i=;O}F1kXLdHrdvDLYKZ!$ZURY}uiGq%Z!8B&#Mrm5v*Q`#j z&ok8=Yf3&=D8glp&3KY&==lCT3?VPsG_1JFvcFk%SKk_$tNUAbx@YS-PL$nm^5DMI|1 z1Aor(yLw{Nrs59-r?7apg+o-rh;-4f6yKs?+mwUYo}Y;KBLNZCvhF<&l6CAW<&che zWC{B_CszfZ9pu?1pF#4@$`6nv=ZT4sNi{>noF>m7vY!rOT`sPitIB55(Mg~U1p`tK z;Q%B80)}lO5{j;hf`OI9!Szrq~Sa4tq@ybP=v=ezg_ zLhl=xJ;cdY2y1z5QXMY;N^Gzlp$`Lzu5`1j#DlHfLeICK@KW}2yrb5So8eqTs`1U@ z&)?h<#%$p|i>J(EVQ9w?K<{ByVtkdHz*`uahhM!D_z+}(!4>V2{WY3jxNbmZJ5%gT zEDlvf)c|h6@|z+k!L*$r-e!Pklw5DQa>tDX^u$cF-5l{b;ChKC`~&*=xEfz>^cD@`yJfvAY-q*)5S`A%&h{u!UI|haQOAp zMeTu`ukID12LiK)cgxyog80$|IZ)etnSb#b{{~atJ8l3+~I`-H2}8 z>YmS2DvnUj5LPbY|Mx!WKGy0-RiQwW7UNcvF{5Fj&({qFRjDL4=7ny)NYoFxY=8+-V z`N!?r^Vf;thoqp6qOVSYafb+OQU}{sl8z8~oriC3*re9l4U^JIO;MMEDv$3$>LM zBBj*XIvJ^s|de^lInGTM)eZ5`25O9IsecXlg+ z!)@gj67j9dQ!TreT62RW?J=xa8}2Qzhvdgc7{%-4uNQ7Q_OkPM=b4oF*8KQ$djP?r zErJR!)L1Gr51Gd8irlxDCp`}=4b>;TiDM3E_&G092fLObZZk_~UxpLy?+yhnPv?YR zDX^}RggQLyVCm=Lg(B_lbrm*0Uchfpv(xLAuBxmGOz_iOW_SFUUqo1=NZ@boYqFy% zl%k2)E&F^yD)Rie!RYy|pQK}>kgS7*-ib1If(l8pT_>|9rX8_aza`$bfN_*Rm*z%q zjQ8Bu#QfkEYeXe)&#vXHr8!18e(Ct^cX``x;MaI20KrPKpYz9c+hMevoZg zwPBMLR!^btgt(Axx148H$p2(fOm@5==##HzJ+Gq7JS(aW9QQ<;rb%7FHkR>}6r7gO z8PBjOH?dLI(y_tde4&nPCig?C=c|T8I)*BC6k6C%z|ZqM(DipVp=l3Eji3LNq%VO5 zdU1~M%;bKghC5rGW~t|dD4`9u{ChnxsmK)v#n^C^!>ylPC-y@aV&T5F`(CkMg;{9q zhXKm5Y%AS$y(b73@p;sYBJSw(f(w~7NS7%>9;-*tCK9K+DJn6jigic`7FIb&O#S+PV~^%h&YZd|tQ^t(Yx;(5NWXxf4Y zh{w?f;|h)=I-%|w5^GZrSrd!LO^8Jk7DeIqTiPBy7%$QboMVc{8&j0z?oN{&XGjy( zxX{V!X#<3-#m+GLNG?R_25Su{(W?psHr{ zZ!Plea*lBzdF}YYk6Z+)k1a+amTG{V7xs`=;~_G97Im6<-R&pcA*$b=g5@p?9zNsU z?ZuKl2Cc$rgPz8w4yxCL37<}a+-s2BgHct>FE=aq@Y(l!RjV(6@VjsUR$G+8FXbwz zR&5*sDj{-fPX=hcB_59xAr7Sh?x?y@sx2m>Qlkk;eb39AZPD8EcO!g>|FQ0;)S5G<@ zvsOp%^G)UskaaCK51Qh5olS@saMgHg-fuOjQdT7X|rBh}N`EE9{gRolkom>MqQ12$g&p@m((IYU}_`GnGX0j(2P zR<#|MoV~v=3D45btTLq;2Zh@xnb8!%y~-o?=1CG!o0+owK0_Bwj5MX@uPjYGqw!Uy zqPVMrpxGYO-fmf7JPM365#(rCS0HgI`eShprrYEpWy#k!N9*vrKyEa#ynyfu1WpzR z+z9OV)ZsNB9VxTn;B)e7cTq(G848B5Q*Srwl_I~zKq{@j^rRNi^xzNO2*C5;i7C@ z0$<0Ay}h}|Q~ZhP{7RJk!R1+VQ@Q8sg@nh`eh@|aP^2!f0usGJ`Ddp4&)zd@YuRtl zno{3fQ*&@RLHUWz?1$aT^F0X51dy|HB9}bIWc$F4$e!{b73Q*n$?3>OAP~vrVuhFk zaRy8mi;C3ODv3rGPglPjaRm^^wRx4Y*dZaIlDZ;lF|6AJvgzzRU?7m+QgEpt;ZJf( z0$QG5f-NGDfeEJgeEv=@FA+%*nJxo0A*Szl<5%)AQNTNpF z+lV~vDLu{Z)*&&1XR3s=Av;^>SrJu#69a(`QmIm4^C;*B60TfL1D7dP$Hb}On=W+K zd_D5mK&%>FPwj)L@aTdE0j1s+UTFv5f z>HE|W?IpP&v;na`8k^k2YRR8C3^sV_#R9L8T446GT(*LS{61<#lv51%H@tBKrkI zYGIAkVWSDF^u6^zP6^|C^Oo^8BIS#>;@(?duX(b~ymvYwg-s1A0$*VB2_v7^5mj7( z3CCT0bY)F=qs?7z3GC@KN4z7=bQEaP zg#3K`w0k72gXFoI@$T>iKE>`tNOM0dZU7Eu8 zS`IGx)vSJL3hSITyu8Pe^8i(@qBol*l{0mNdLBVBx(rOQG8nDC*cPS@V5!s#`M2VTJ4+Ecir4NhdAc6gKy(%?K&e;!EFhJ+TAK$wxLFRkb{6 zfM#3pAxIbnRuh+R&(>*Kyp{YDAtgrj*SG)#UIcTp1y&VBbN;<4FzTUK;=cS zmkLzXx#N(Y^s2f5BVv^VEg2}gN=!uSGO?>@RWu7O=P~tU@JK6;mX=Xn` z#-!cvq_6pywBoD~>M?$dZVPl(3>2^*a_dk$^YPGF36v;rp9A$&ap(bSJ-9G>3=Z1i zNnD~MiPQB_nq&&&rcAJ$+E-B!$mV7hE#l-iCJth2w^Ohixey!3##fN#>0hOK=iLh7 z$PvF9;VPcL+0zkI*s&wjyPYuo=xNBqIAtW_@qV#saCs^C~h za%QrU)Rv7DV0oU`KXxEFoEG}?)nHSV1Hh560LLE89-{sBv&8bs1jjpinOVrH94aZq zJ=yB^Q&b<8DtCFpcMVNmQ21yv64hn)_Ko%&7UL;H*Ks0l=LKDigXWaO9Js7#fV_!J zwgN@xXpW-bwvfm+(?Y_&R7m?Vo90GkO zR`f=*JDZM)cxd$ewrqeqbF#yEWLZ~r=-Vop- zd{cvn(>twJM1m8E{=y-5-%sK#T5 z-dO%295FJPC{DS<<-lLb4jN5$hjnq!pWP(rJU`fN$GxlZBq}dlOOO$ru^mR5t@*+U z*H=I;w6s$-dhu$eBv}9(RvJlVvawtsDS!k(2G5`MY$8pt?sP|&-}qp(0g}*^!i<2O zthpm|H{xI;0(PB6lqqo}Gl(ciVFMJ;I+t~GQjGh){W@+Q;>U^rI! z<__4|=-_?P?d5oNZ$0Jp2+Z;Lw_RGHCEwEh)$5M9#!i~H%kE2KwkHS$XpJ~X@b66>uO8>ucx@M30{rEF{%Q1g5A-VY%jl0kWqv*} z|I66xBl&B*8hagoYh(MTz26(zUctZYk^f!nkG8hoDf+!t>o4h`ms|QzqyK5#`Y-X{ zI*$Gle|+&6e~JIufAqgD`n9j-*Lb~XHLyRrY+f(--WA|G_<`WfL}HIneqEyWc~BnmtKCpi2kP> z{?9w)_k#Fe7J*-Q{Zs6(^7!vl{yiQ2mx4azp9=m?+y9#MYh%=}@w&q9zgGBF_|G<} nf6n~(MyXfXU#ph?U$TF-O({r&|9n`HUYZXfUvSW5uX6tfC<@+D literal 0 HcmV?d00001