From fefcfe45951387fbee663af20602e095582ab0c4 Mon Sep 17 00:00:00 2001 From: houhuan Date: Tue, 31 Mar 2026 11:38:07 +0800 Subject: [PATCH] =?UTF-8?q?feat(headless=5Fapi):=20=E6=89=A9=E5=B1=95?= =?UTF-8?q?=E6=9D=A1=E7=A0=81=E6=98=A0=E5=B0=84=E5=8A=9F=E8=83=BD=EF=BC=8C?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=80=8D=E6=95=B0=E3=80=81=E5=8D=95=E4=BB=B7?= =?UTF-8?q?=E5=92=8C=E8=A7=84=E6=A0=BC=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改 update_barcode_mapping 函数,新增 multiplier、unit、price、spec 参数 - 支持特殊倍数处理(如箱转瓶)、固定单价和规格配置 - 更新命令行参数,增加 --multiplier、--unit、--price、--spec 选项 - 完善映射配置结构,支持多字段描述 - 同步更新 OPENCLAW_GUIDE.md 文档说明新功能 --- OPENCLAW_GUIDE.md | 10 +- data/input/20260331-112736.jpg | Bin 0 -> 149188 bytes data/input/20260331-112747.jpg | Bin 0 -> 118139 bytes data/user_settings.json | 9 +- headless_api.py | 51 +- logs/app.core.excel.converter.log | 527 ++++++++++++ ...excel.handlers.unit_converter_handlers.log | 19 + logs/app.core.excel.merger.log | 20 + logs/app.core.excel.processor.log | 786 ++++++++++++++++++ logs/app.core.excel.validators.log | 15 + logs/app.core.ocr.baidu_ocr.log | 3 + logs/app.core.ocr.table_ocr.log | 22 + logs/app.services.ocr_service.log | 8 + logs/app.services.order_service.log | 22 + 14 files changed, 1478 insertions(+), 14 deletions(-) create mode 100644 data/input/20260331-112736.jpg create mode 100644 data/input/20260331-112747.jpg diff --git a/OPENCLAW_GUIDE.md b/OPENCLAW_GUIDE.md index 6165f3d..68d659d 100644 --- a/OPENCLAW_GUIDE.md +++ b/OPENCLAW_GUIDE.md @@ -22,8 +22,16 @@ python headless_api.py "data/input/my_file.xlsx" # 强制指定为 Excel 处理模式 python headless_api.py --excel -# 强制更新条码映射关系 +# --- 条码映射与特殊处理指令 --- + +# 1. 简单的条码映射 (旧条码 -> 新条码) python headless_api.py --update-mapping --barcode "123" --target "456" + +# 2. 特殊倍数处理 (例如某条码识别为1件,实际需换算为30瓶) +python headless_api.py --update-mapping --barcode "690123" --multiplier 30 --unit "瓶" + +# 3. 固定单价与规格 +python headless_api.py --update-mapping --barcode "690123" --price 3.5 --spec "1*30" ``` ## 2. 字段与逻辑变更 diff --git a/data/input/20260331-112736.jpg b/data/input/20260331-112736.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bd1f7a6238c5035d7a2ece31a77d84cf7af24aa4 GIT binary patch literal 149188 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≦5?6)ad~Yvy@6&||1g8C|*Mqg4cO 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%0Ai$ z3a}u22H(S1wye4FFRQU^rdIQdP*UDdQnIE7f;O#nrF@lQk`Dln1*_Xb$(BIq(uekn z_SE{Ji|d6y;GgpfXq`x|ZY5!C-W>CYY=s2rE-3!G+~KxzehB>Hy|sMA_f2b3l=5Yf z{iOW0duaJC%lCml%0Al9i?r1WU&)p~nXsGho*A@&W2?EQ1#XW4zeG) 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 l03LHhP=OIp$Q|?sCJ!-I@Sr|Jme{c(?!n literal 0 HcmV?d00001 diff --git a/data/input/20260331-112747.jpg b/data/input/20260331-112747.jpg new file mode 100644 index 0000000000000000000000000000000000000000..78b1e0927b564dde166e4cccc7042a9c5ca741f0 GIT binary patch literal 118139 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

BA>4S-%nC*;#Kd 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 SKs(n&1q8x5C&+tHfB)H8gpaiV literal 0 HcmV?d00001 diff --git a/data/user_settings.json b/data/user_settings.json index d3cf330..1926610 100644 --- a/data/user_settings.json +++ b/data/user_settings.json @@ -2,9 +2,10 @@ "window_size": "900x600", "theme_mode": "light", "recent_files": [ - "data/result\\采购单_预处理之后_订单1774849009841.xls", - "data/output\\预处理之后_订单1774849009841.xlsx", - "E:/2025Code/python/orc-order-v2/data/output/订单1774849009841.xlsx", - "data/output\\订单1774849009841.xlsx" + "data/result\\采购单_20260331-112747.xls", + "data/result\\采购单_20260331-112736.xls", + "E:\\2025Code\\python\\orc-order-v2\\data\\output\\20260331-112736.xlsx", + "E:/2025Code/python/orc-order-v2/data/output/20260331-112747.xlsx", + "E:\\2025Code\\python\\orc-order-v2\\data\\output\\20260331-112747.xlsx" ] } \ No newline at end of file diff --git a/headless_api.py b/headless_api.py index 710581f..4d907b8 100644 --- a/headless_api.py +++ b/headless_api.py @@ -52,8 +52,8 @@ def get_latest_file(directory: str, extensions: List[str]) -> Optional[str]: latest_file = max(files, key=lambda p: p.stat().st_mtime) return str(latest_file) -def update_barcode_mapping(barcode: str, target_barcode: str): - """更新条码映射""" +def update_barcode_mapping(barcode: str, target_barcode: str = None, multiplier: float = None, unit: str = None, price: float = None, spec: str = None): + """更新条码映射或特殊处理配置""" try: config_path = os.path.join("config", "barcode_mappings.json") mappings = {} @@ -61,15 +61,38 @@ def update_barcode_mapping(barcode: str, target_barcode: str): with open(config_path, 'r', encoding='utf-8') as f: mappings = json.load(f) - mappings[barcode] = target_barcode + # 获取或创建该条码的配置 + config = mappings.get(barcode, {}) + + if target_barcode: + config["map_to"] = target_barcode + config["description"] = config.get("description", "") + f" 条码映射 -> {target_barcode}" + + if multiplier is not None: + config["multiplier"] = multiplier + config["description"] = config.get("description", "") + f" 数量倍数*{multiplier}" + + if unit: + config["target_unit"] = unit + + if price is not None: + config["fixed_price"] = price + + if spec: + config["specification"] = spec + + if not config.get("description"): + config["description"] = f"特殊条码配置: {barcode}" + + mappings[barcode] = config with open(config_path, 'w', encoding='utf-8') as f: json.dump(mappings, f, ensure_ascii=False, indent=2) - logger.info(f"成功更新条码映射: {barcode} -> {target_barcode}") + logger.info(f"成功更新条码配置: {barcode} -> {config}") return True except Exception as e: - logger.error(f"更新条码映射失败: {e}") + logger.error(f"更新条码配置失败: {e}") return False def run_pipeline(args): @@ -82,11 +105,17 @@ def run_pipeline(args): # 1. 处理条码映射更新 if args.update_mapping: - if not args.barcode or not args.target: - print("ERROR: --barcode and --target are required for --update-mapping", file=sys.stderr) + if not args.barcode: + print("ERROR: --barcode is required for --update-mapping", file=sys.stderr) return None - if update_barcode_mapping(args.barcode, args.target): - print(f"SUCCESS: Mapping updated {args.barcode} -> {args.target}") + + # 至少需要一个更新项 + if not any([args.target, args.multiplier, args.unit, args.price, args.spec]): + print("ERROR: At least one update option (--target, --multiplier, --unit, --price, --spec) is required", file=sys.stderr) + return None + + if update_barcode_mapping(args.barcode, args.target, args.multiplier, args.unit, args.price, args.spec): + print(f"SUCCESS: Barcode configuration updated for {args.barcode}") return "MAPPING_UPDATED" return None @@ -177,6 +206,10 @@ if __name__ == "__main__": parser.add_argument('--barcode', help='待映射的原始条码 (用于 --update-mapping)') parser.add_argument('--target', help='目标条码 (用于 --update-mapping)') + parser.add_argument('--multiplier', type=float, help='数量倍数 (例如箱转瓶填写30)') + parser.add_argument('--unit', help='目标单位 (例如"瓶")') + parser.add_argument('--price', type=float, help='固定单价') + parser.add_argument('--spec', help='固定规格 (例如"1*30")') args = parser.parse_args() result = run_pipeline(args) diff --git a/logs/app.core.excel.converter.log b/logs/app.core.excel.converter.log index 409b4de..4c9a04b 100644 --- a/logs/app.core.excel.converter.log +++ b/logs/app.core.excel.converter.log @@ -9968,3 +9968,530 @@ 2026-03-31 09:05:33,868 - app.core.excel.converter - INFO - 成功加载条码映射配置,共62项 2026-03-31 09:07:58,234 - app.core.excel.converter - INFO - 成功加载条码映射配置,共62项 2026-03-31 09:07:58,352 - app.core.excel.converter - INFO - 成功加载条码映射配置,共62项 +2026-03-31 10:59:54,580 - app.core.excel.converter - INFO - 成功加载条码映射配置,共62项 +2026-03-31 10:59:54,731 - app.core.excel.converter - INFO - 提取规格: 益达口香糖元气蓝莓味5片装13.5g@ -> 13.5*None +2026-03-31 10:59:54,731 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 益达口香糖元气蓝莓味5片装13.5g@ -> 13.5*None +2026-03-31 10:59:54,736 - app.core.excel.converter - WARNING - 无法解析规格: 13.5*None,使用默认值1*1 +2026-03-31 10:59:54,736 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 20.0, 单价: 2.05, 单位: +2026-03-31 10:59:54,737 - app.core.excel.converter - INFO - 提取规格: 奥利奥饼干草莓味夹心97g@ -> 97*None +2026-03-31 10:59:54,738 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 奥利奥饼干草莓味夹心97g@ -> 97*None +2026-03-31 10:59:54,738 - app.core.excel.converter - WARNING - 无法解析规格: 97*None,使用默认值1*1 +2026-03-31 10:59:54,739 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 4.95, 单位: +2026-03-31 10:59:54,740 - app.core.excel.converter - INFO - 提取规格: 奥利奥冰淇淋风味饼干抹茶味97g@ -> 97*None +2026-03-31 10:59:54,741 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 奥利奥冰淇淋风味饼干抹茶味97g@ -> 97*None +2026-03-31 10:59:54,741 - app.core.excel.converter - WARNING - 无法解析规格: 97*None,使用默认值1*1 +2026-03-31 10:59:54,741 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 4.75, 单位: +2026-03-31 10:59:54,743 - app.core.excel.converter - INFO - 提取规格: 奥利奥薄脆香草奥碎味95g@ -> 95*None +2026-03-31 10:59:54,743 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 奥利奥薄脆香草奥碎味95g@ -> 95*None +2026-03-31 10:59:54,744 - app.core.excel.converter - WARNING - 无法解析规格: 95*None,使用默认值1*1 +2026-03-31 10:59:54,744 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 4.0, 单价: 6.19, 单位: +2026-03-31 10:59:54,745 - app.core.excel.converter - INFO - 提取规格: 喜之郎果肉果冻葡萄苹果200g -> 200*None +2026-03-31 10:59:54,746 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 喜之郎果肉果冻葡萄苹果200g -> 200*None +2026-03-31 10:59:54,746 - app.core.excel.converter - WARNING - 无法解析规格: 200*None,使用默认值1*1 +2026-03-31 10:59:54,747 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 3.0, 单位: +2026-03-31 10:59:54,747 - app.core.excel.converter - INFO - 提取规格: 法丽兹曲奇抹茶慕斯巧克力味70g@ -> 70*None +2026-03-31 10:59:54,747 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 法丽兹曲奇抹茶慕斯巧克力味70g@ -> 70*None +2026-03-31 10:59:54,749 - app.core.excel.converter - WARNING - 无法解析规格: 70*None,使用默认值1*1 +2026-03-31 10:59:54,749 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 2.67, 单位: +2026-03-31 10:59:54,750 - app.core.excel.converter - INFO - 提取规格: 太平梳打饼干海苔味100g@ -> 100*None +2026-03-31 10:59:54,750 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 太平梳打饼干海苔味100g@ -> 100*None +2026-03-31 10:59:54,751 - app.core.excel.converter - WARNING - 无法解析规格: 100*None,使用默认值1*1 +2026-03-31 10:59:54,751 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 3.33, 单位: +2026-03-31 10:59:54,751 - app.core.excel.converter - INFO - 提取规格: 新家园烤馍52g@ -> 52*None +2026-03-31 10:59:54,752 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 新家园烤馍52g@ -> 52*None +2026-03-31 10:59:54,753 - app.core.excel.converter - WARNING - 无法解析规格: 52*None,使用默认值1*1 +2026-03-31 10:59:54,753 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 1.33, 单位: +2026-03-31 10:59:54,754 - app.core.excel.converter - INFO - 提取规格: 达利园熊子饼115g@ -> 115*None +2026-03-31 10:59:54,754 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 达利园熊子饼115g@ -> 115*None +2026-03-31 10:59:54,755 - app.core.excel.converter - WARNING - 无法解析规格: 115*None,使用默认值1*1 +2026-03-31 10:59:54,756 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 1.97, 单位: +2026-03-31 10:59:54,756 - app.core.excel.converter - INFO - 提取规格: 达利园好吃点榛仁酥饼146g@ -> 146*None +2026-03-31 10:59:54,757 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 达利园好吃点榛仁酥饼146g@ -> 146*None +2026-03-31 10:59:54,757 - app.core.excel.converter - WARNING - 无法解析规格: 146*None,使用默认值1*1 +2026-03-31 10:59:54,758 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 3.33, 单位: +2026-03-31 10:59:54,759 - app.core.excel.converter - INFO - 提取规格: 达利园好吃点杏仁酥饼146g@ -> 146*None +2026-03-31 10:59:54,759 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 达利园好吃点杏仁酥饼146g@ -> 146*None +2026-03-31 10:59:54,760 - app.core.excel.converter - WARNING - 无法解析规格: 146*None,使用默认值1*1 +2026-03-31 10:59:54,760 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 3.33, 单位: +2026-03-31 10:59:54,761 - app.core.excel.converter - INFO - 提取规格: 达利园好吃点香脆核桃饼108g@ -> 108*None +2026-03-31 10:59:54,761 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 达利园好吃点香脆核桃饼108g@ -> 108*None +2026-03-31 10:59:54,762 - app.core.excel.converter - WARNING - 无法解析规格: 108*None,使用默认值1*1 +2026-03-31 10:59:54,763 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 2.5, 单位: +2026-03-31 10:59:54,763 - app.core.excel.converter - INFO - 提取规格: 达利园好吃点香脆腰果饼108g@ -> 108*None +2026-03-31 10:59:54,764 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 达利园好吃点香脆腰果饼108g@ -> 108*None +2026-03-31 10:59:54,765 - app.core.excel.converter - WARNING - 无法解析规格: 108*None,使用默认值1*1 +2026-03-31 10:59:54,765 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 2.5, 单位: +2026-03-31 10:59:54,766 - app.core.excel.converter - INFO - 提取规格: 康师傅3+2苏打饼干香浓奶油125g@ -> 125*None +2026-03-31 10:59:54,766 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 康师傅3+2苏打饼干香浓奶油125g@ -> 125*None +2026-03-31 10:59:54,768 - app.core.excel.converter - WARNING - 无法解析规格: 125*None,使用默认值1*1 +2026-03-31 10:59:54,768 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 4.0, 单价: 4.42, 单位: +2026-03-31 10:59:54,769 - app.core.excel.converter - INFO - 提取规格: 米老头青稞米棒芝麻味150g@ -> 150*None +2026-03-31 10:59:54,769 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 米老头青稞米棒芝麻味150g@ -> 150*None +2026-03-31 10:59:54,769 - app.core.excel.converter - WARNING - 无法解析规格: 150*None,使用默认值1*1 +2026-03-31 10:59:54,770 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 4.09, 单位: +2026-03-31 10:59:54,770 - app.core.excel.converter - INFO - 提取规格: 旺旺雪饼84g@ -> 84*None +2026-03-31 10:59:54,772 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 旺旺雪饼84g@ -> 84*None +2026-03-31 10:59:54,773 - app.core.excel.converter - WARNING - 无法解析规格: 84*None,使用默认值1*1 +2026-03-31 10:59:54,773 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 4.28, 单位: +2026-03-31 10:59:54,774 - app.core.excel.converter - INFO - 提取规格: 旺旺仙贝52g@ -> 52*None +2026-03-31 10:59:54,774 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 旺旺仙贝52g@ -> 52*None +2026-03-31 10:59:54,775 - app.core.excel.converter - WARNING - 无法解析规格: 52*None,使用默认值1*1 +2026-03-31 10:59:54,775 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 3.76, 单位: +2026-03-31 10:59:54,776 - app.core.excel.converter - INFO - 提取规格: 亨裕蛋味酥39g -> 39*None +2026-03-31 10:59:54,776 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 亨裕蛋味酥39g -> 39*None +2026-03-31 10:59:54,777 - app.core.excel.converter - WARNING - 无法解析规格: 39*None,使用默认值1*1 +2026-03-31 10:59:54,777 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 10.0, 单价: 0.62, 单位: +2026-03-31 10:59:54,778 - app.core.excel.converter - INFO - 提取规格: 金富士海苔味三角饼干128g@ -> 128*None +2026-03-31 10:59:54,778 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 金富士海苔味三角饼干128g@ -> 128*None +2026-03-31 10:59:54,779 - app.core.excel.converter - WARNING - 无法解析规格: 128*None,使用默认值1*1 +2026-03-31 10:59:54,780 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 3.81, 单位: +2026-03-31 10:59:54,780 - app.core.excel.converter - INFO - 提取规格: 怡派手工薄脆饼干318g -> 318*None +2026-03-31 10:59:54,781 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 怡派手工薄脆饼干318g -> 318*None +2026-03-31 10:59:54,782 - app.core.excel.converter - WARNING - 无法解析规格: 318*None,使用默认值1*1 +2026-03-31 10:59:54,782 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 4.0, 单价: 6.47, 单位: +2026-03-31 10:59:54,782 - app.core.excel.converter - INFO - 提取规格: 雀巢威化脆脆鲨花生味夹心【32条装】18.6g@ -> 18.6*None +2026-03-31 10:59:54,783 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 雀巢威化脆脆鲨花生味夹心【32条装】18.6g@ -> 18.6*None +2026-03-31 10:59:54,783 - app.core.excel.converter - WARNING - 无法解析规格: 18.6*None,使用默认值1*1 +2026-03-31 10:59:54,784 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 32.0, 单价: 0.91, 单位: +2026-03-31 10:59:54,785 - app.core.excel.converter - INFO - 提取规格: 卫龙亲嘴烧麦辣鸡汁味24g@ -> 24*None +2026-03-31 10:59:54,785 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 卫龙亲嘴烧麦辣鸡汁味24g@ -> 24*None +2026-03-31 10:59:54,786 - app.core.excel.converter - WARNING - 无法解析规格: 24*None,使用默认值1*1 +2026-03-31 10:59:54,787 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 20.0, 单价: 0.51, 单位: +2026-03-31 10:59:54,787 - app.core.excel.converter - INFO - 提取规格: 卫龙亲嘴烧经典香辣风味24g@ -> 24*None +2026-03-31 10:59:54,788 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 卫龙亲嘴烧经典香辣风味24g@ -> 24*None +2026-03-31 10:59:54,789 - app.core.excel.converter - WARNING - 无法解析规格: 24*None,使用默认值1*1 +2026-03-31 10:59:54,789 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 20.0, 单价: 0.51, 单位: +2026-03-31 10:59:54,790 - app.core.excel.converter - INFO - 提取规格: 卫龙亲嘴烧麻辣牛肉风味24g@ -> 24*None +2026-03-31 10:59:54,790 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 卫龙亲嘴烧麻辣牛肉风味24g@ -> 24*None +2026-03-31 10:59:54,791 - app.core.excel.converter - WARNING - 无法解析规格: 24*None,使用默认值1*1 +2026-03-31 10:59:54,791 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 20.0, 单价: 0.52, 单位: +2026-03-31 10:59:54,792 - app.core.excel.converter - INFO - 提取规格: 杨记脆鸭肫香辣味22g -> 22*None +2026-03-31 10:59:54,792 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 杨记脆鸭肫香辣味22g -> 22*None +2026-03-31 10:59:54,793 - app.core.excel.converter - WARNING - 无法解析规格: 22*None,使用默认值1*1 +2026-03-31 10:59:54,793 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 20.0, 单价: 2.19, 单位: +2026-03-31 10:59:54,794 - app.core.excel.converter - INFO - 提取规格: 杨记脆鸭肫椒麻味22g -> 22*None +2026-03-31 10:59:54,795 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 杨记脆鸭肫椒麻味22g -> 22*None +2026-03-31 10:59:54,796 - app.core.excel.converter - WARNING - 无法解析规格: 22*None,使用默认值1*1 +2026-03-31 10:59:54,796 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 20.0, 单价: 2.19, 单位: +2026-03-31 10:59:54,797 - app.core.excel.converter - INFO - 提取规格: 登荣龙须牛肉丝20g -> 20*None +2026-03-31 10:59:54,797 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 登荣龙须牛肉丝20g -> 20*None +2026-03-31 10:59:54,799 - app.core.excel.converter - WARNING - 无法解析规格: 20*None,使用默认值1*1 +2026-03-31 10:59:54,799 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 20.0, 单价: 0.71, 单位: +2026-03-31 10:59:54,799 - app.core.excel.converter - INFO - 提取规格: 登荣香辣爽口鸡23g -> 23*None +2026-03-31 10:59:54,800 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 登荣香辣爽口鸡23g -> 23*None +2026-03-31 10:59:54,801 - app.core.excel.converter - WARNING - 无法解析规格: 23*None,使用默认值1*1 +2026-03-31 10:59:54,801 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 20.0, 单价: 0.71, 单位: +2026-03-31 10:59:54,803 - app.core.excel.converter - INFO - 提取规格: 卫龙魔芋爽麻酱素毛肚微辣18g@ -> 18*None +2026-03-31 10:59:54,803 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 卫龙魔芋爽麻酱素毛肚微辣18g@ -> 18*None +2026-03-31 10:59:54,803 - app.core.excel.converter - WARNING - 无法解析规格: 18*None,使用默认值1*1 +2026-03-31 10:59:54,803 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 40.0, 单价: 0.62, 单位: +2026-03-31 10:59:54,805 - app.core.excel.converter - INFO - 提取规格: 劲仔小鱼卤香味12g@ -> 12*None +2026-03-31 10:59:54,805 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 劲仔小鱼卤香味12g@ -> 12*None +2026-03-31 10:59:54,806 - app.core.excel.converter - WARNING - 无法解析规格: 12*None,使用默认值1*1 +2026-03-31 10:59:54,807 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 20.0, 单价: 0.68, 单位: +2026-03-31 10:59:54,807 - app.core.excel.converter - INFO - 提取规格: 劲仔小鱼香辣小鱼12g@ -> 12*None +2026-03-31 10:59:54,807 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 劲仔小鱼香辣小鱼12g@ -> 12*None +2026-03-31 10:59:54,809 - app.core.excel.converter - WARNING - 无法解析规格: 12*None,使用默认值1*1 +2026-03-31 10:59:54,809 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 20.0, 单价: 0.65, 单位: +2026-03-31 10:59:54,810 - app.core.excel.converter - INFO - 提取规格: 劲仔小鱼糖醋小鱼12g@ -> 12*None +2026-03-31 10:59:54,810 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 劲仔小鱼糖醋小鱼12g@ -> 12*None +2026-03-31 10:59:54,811 - app.core.excel.converter - WARNING - 无法解析规格: 12*None,使用默认值1*1 +2026-03-31 10:59:54,811 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 20.0, 单价: 0.68, 单位: +2026-03-31 10:59:54,811 - app.core.excel.converter - INFO - 提取规格: 劲仔手撕肉干麻辣味10g@ -> 10*None +2026-03-31 10:59:54,812 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 劲仔手撕肉干麻辣味10g@ -> 10*None +2026-03-31 10:59:54,813 - app.core.excel.converter - WARNING - 无法解析规格: 10*None,使用默认值1*1 +2026-03-31 10:59:54,813 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 20.0, 单价: 1.14, 单位: +2026-03-31 10:59:54,814 - app.core.excel.converter - INFO - 提取规格: 劲仔手撕肉干香辣味10g@ -> 10*None +2026-03-31 10:59:54,815 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 劲仔手撕肉干香辣味10g@ -> 10*None +2026-03-31 10:59:54,816 - app.core.excel.converter - WARNING - 无法解析规格: 10*None,使用默认值1*1 +2026-03-31 10:59:54,816 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 20.0, 单价: 1.14, 单位: +2026-03-31 10:59:54,817 - app.core.excel.converter - INFO - 提取规格: 卫龙麻辣麻辣小麻小辣16g@ -> 16*None +2026-03-31 10:59:54,817 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 卫龙麻辣麻辣小麻小辣16g@ -> 16*None +2026-03-31 10:59:54,818 - app.core.excel.converter - WARNING - 无法解析规格: 16*None,使用默认值1*1 +2026-03-31 10:59:54,818 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 20.0, 单价: 0.58, 单位: +2026-03-31 10:59:54,819 - app.core.excel.converter - INFO - 提取规格: 子弟原切马铃薯片巴西烤肉味95g@ -> 95*None +2026-03-31 10:59:54,819 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 子弟原切马铃薯片巴西烤肉味95g@ -> 95*None +2026-03-31 10:59:54,820 - app.core.excel.converter - WARNING - 无法解析规格: 95*None,使用默认值1*1 +2026-03-31 10:59:54,821 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 5.33, 单位: +2026-03-31 10:59:54,822 - app.core.excel.converter - INFO - 提取规格: 子弟原切马铃薯片美滋番茄味95g@ -> 95*None +2026-03-31 10:59:54,822 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 子弟原切马铃薯片美滋番茄味95g@ -> 95*None +2026-03-31 10:59:54,823 - app.core.excel.converter - WARNING - 无法解析规格: 95*None,使用默认值1*1 +2026-03-31 10:59:54,823 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 6.0, 单价: 5.33, 单位: +2026-03-31 10:59:54,824 - app.core.excel.converter - INFO - 提取规格: 子弟原切马铃薯片经典麻辣味95g@ -> 95*None +2026-03-31 10:59:54,824 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 子弟原切马铃薯片经典麻辣味95g@ -> 95*None +2026-03-31 10:59:54,825 - app.core.excel.converter - WARNING - 无法解析规格: 95*None,使用默认值1*1 +2026-03-31 10:59:54,826 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 6.0, 单价: 5.33, 单位: +2026-03-31 10:59:54,826 - app.core.excel.converter - INFO - 提取规格: 子弟原切马铃薯片劲爆麻辣味95g@ -> 95*None +2026-03-31 10:59:54,826 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 子弟原切马铃薯片劲爆麻辣味95g@ -> 95*None +2026-03-31 10:59:54,827 - app.core.excel.converter - WARNING - 无法解析规格: 95*None,使用默认值1*1 +2026-03-31 10:59:54,828 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 5.33, 单位: +2026-03-31 10:59:54,828 - app.core.excel.converter - INFO - 提取规格: 乐事美国经典原味70g@ -> 70*None +2026-03-31 10:59:54,828 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 乐事美国经典原味70g@ -> 70*None +2026-03-31 10:59:54,830 - app.core.excel.converter - WARNING - 无法解析规格: 70*None,使用默认值1*1 +2026-03-31 10:59:54,830 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 6.0, 单价: 4.18, 单位: +2026-03-31 10:59:54,831 - app.core.excel.converter - INFO - 提取规格: 乐事墨西哥鸡汁番茄味70g@ -> 70*None +2026-03-31 10:59:54,831 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 乐事墨西哥鸡汁番茄味70g@ -> 70*None +2026-03-31 10:59:54,832 - app.core.excel.converter - WARNING - 无法解析规格: 70*None,使用默认值1*1 +2026-03-31 10:59:54,833 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 6.0, 单价: 4.18, 单位: +2026-03-31 10:59:54,834 - app.core.excel.converter - INFO - 提取规格: 飘零大叔蜜辣去骨鸭掌45g@ -> 45*None +2026-03-31 10:59:54,834 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 飘零大叔蜜辣去骨鸭掌45g@ -> 45*None +2026-03-31 10:59:54,835 - app.core.excel.converter - WARNING - 无法解析规格: 45*None,使用默认值1*1 +2026-03-31 10:59:54,836 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 8.57, 单位: +2026-03-31 10:59:54,836 - app.core.excel.converter - INFO - 提取规格: 茂林炭烤鱿鱼丝60g -> 60*None +2026-03-31 10:59:54,837 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 茂林炭烤鱿鱼丝60g -> 60*None +2026-03-31 10:59:54,837 - app.core.excel.converter - WARNING - 无法解析规格: 60*None,使用默认值1*1 +2026-03-31 10:59:54,838 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 8.47, 单位: +2026-03-31 10:59:54,839 - app.core.excel.converter - INFO - 提取规格: 王小卤虎皮凤爪火锅味105g@ -> 105*None +2026-03-31 10:59:54,839 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 王小卤虎皮凤爪火锅味105g@ -> 105*None +2026-03-31 10:59:54,840 - app.core.excel.converter - WARNING - 无法解析规格: 105*None,使用默认值1*1 +2026-03-31 10:59:54,840 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 10.38, 单位: +2026-03-31 10:59:54,840 - app.core.excel.converter - INFO - 提取规格: 王小卤虎皮凤爪卤香味 105g@ -> 105*None +2026-03-31 10:59:54,841 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 王小卤虎皮凤爪卤香味 105g@ -> 105*None +2026-03-31 10:59:54,842 - app.core.excel.converter - WARNING - 无法解析规格: 105*None,使用默认值1*1 +2026-03-31 10:59:54,842 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 10.38, 单位: +2026-03-31 10:59:54,843 - app.core.excel.converter - INFO - 提取规格: 王小卤虎皮凤爪香辣味 105g@ -> 105*None +2026-03-31 10:59:54,843 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 王小卤虎皮凤爪香辣味 105g@ -> 105*None +2026-03-31 10:59:54,845 - app.core.excel.converter - WARNING - 无法解析规格: 105*None,使用默认值1*1 +2026-03-31 10:59:54,845 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 4.0, 单价: 10.38, 单位: +2026-03-31 10:59:54,846 - app.core.excel.converter - INFO - 提取规格: 王小卤虎皮凤爪椒麻味105g@ -> 105*None +2026-03-31 10:59:54,846 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 王小卤虎皮凤爪椒麻味105g@ -> 105*None +2026-03-31 10:59:54,847 - app.core.excel.converter - WARNING - 无法解析规格: 105*None,使用默认值1*1 +2026-03-31 10:59:54,847 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 10.38, 单位: +2026-03-31 10:59:54,849 - app.core.excel.converter - INFO - 提取规格: 杨记老卤双爪多味70g -> 70*None +2026-03-31 10:59:54,849 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 杨记老卤双爪多味70g -> 70*None +2026-03-31 10:59:54,850 - app.core.excel.converter - WARNING - 无法解析规格: 70*None,使用默认值1*1 +2026-03-31 10:59:54,850 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 4.0, 单价: 3.81, 单位: +2026-03-31 10:59:54,850 - app.core.excel.converter - INFO - 提取规格: 逍遥嘴花椒鸡味180g -> 180*None +2026-03-31 10:59:54,851 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 逍遥嘴花椒鸡味180g -> 180*None +2026-03-31 10:59:54,852 - app.core.excel.converter - WARNING - 无法解析规格: 180*None,使用默认值1*1 +2026-03-31 10:59:54,852 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 6.0, 单价: 2.86, 单位: +2026-03-31 10:59:54,853 - app.core.excel.converter - INFO - 提取规格: 川牛娃泡椒牛肉50g -> 50*None +2026-03-31 10:59:54,853 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 川牛娃泡椒牛肉50g -> 50*None +2026-03-31 10:59:54,854 - app.core.excel.converter - WARNING - 无法解析规格: 50*None,使用默认值1*1 +2026-03-31 10:59:54,854 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 4.76, 单位: +2026-03-31 10:59:54,855 - app.core.excel.converter - INFO - 提取规格: 飘零大叔川香半筋半肉48g@ -> 48*None +2026-03-31 10:59:54,855 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 飘零大叔川香半筋半肉48g@ -> 48*None +2026-03-31 10:59:54,856 - app.core.excel.converter - WARNING - 无法解析规格: 48*None,使用默认值1*1 +2026-03-31 10:59:54,857 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 7.81, 单位: +2026-03-31 10:59:54,857 - app.core.excel.converter - INFO - 提取规格: 展华大辣棒麻辣牛肉味138g -> 138*None +2026-03-31 10:59:54,858 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 展华大辣棒麻辣牛肉味138g -> 138*None +2026-03-31 10:59:54,860 - app.core.excel.converter - WARNING - 无法解析规格: 138*None,使用默认值1*1 +2026-03-31 10:59:54,860 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 6.0, 单价: 2.95, 单位: +2026-03-31 10:59:54,860 - app.core.excel.converter - INFO - 提取规格: 登荣素口水鸡65g -> 65*None +2026-03-31 10:59:54,861 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 登荣素口水鸡65g -> 65*None +2026-03-31 10:59:54,862 - app.core.excel.converter - WARNING - 无法解析规格: 65*None,使用默认值1*1 +2026-03-31 10:59:54,862 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 1.52, 单位: +2026-03-31 10:59:54,863 - app.core.excel.converter - INFO - 提取规格: 48g乐媳妇山椒凤爪 -> 48*None +2026-03-31 10:59:54,863 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 48g乐媳妇山椒凤爪 -> 48*None +2026-03-31 10:59:54,864 - app.core.excel.converter - WARNING - 无法解析规格: 48*None,使用默认值1*1 +2026-03-31 10:59:54,865 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 10.0, 单价: 2.09, 单位: +2026-03-31 10:59:54,866 - app.core.excel.converter - INFO - 提取规格: 蓉小优泡椒味臭干子70g@ -> 70*None +2026-03-31 10:59:54,866 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 蓉小优泡椒味臭干子70g@ -> 70*None +2026-03-31 10:59:54,867 - app.core.excel.converter - WARNING - 无法解析规格: 70*None,使用默认值1*1 +2026-03-31 10:59:54,868 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 6.0, 单价: 1.33, 单位: +2026-03-31 10:59:54,869 - app.core.excel.converter - INFO - 提取规格: 吴婷红油馍片82g -> 82*None +2026-03-31 10:59:54,869 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 吴婷红油馍片82g -> 82*None +2026-03-31 10:59:54,870 - app.core.excel.converter - WARNING - 无法解析规格: 82*None,使用默认值1*1 +2026-03-31 10:59:54,870 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 4.0, 单价: 2.29, 单位: +2026-03-31 10:59:54,871 - app.core.excel.converter - INFO - 提取规格: 禛香肥牛味大豆制品素食风味80g -> 80*None +2026-03-31 10:59:54,872 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 禛香肥牛味大豆制品素食风味80g -> 80*None +2026-03-31 10:59:54,873 - app.core.excel.converter - WARNING - 无法解析规格: 80*None,使用默认值1*1 +2026-03-31 10:59:54,873 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 4.0, 单价: 1.71, 单位: +2026-03-31 10:59:54,874 - app.core.excel.converter - INFO - 提取规格: (50g+30g)卫龙魔芋爽(酸辣泡椒素毛肚)@ -> 50*None +2026-03-31 10:59:54,874 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): (50g+30g)卫龙魔芋爽(酸辣泡椒素毛肚)@ -> 50*None +2026-03-31 10:59:54,875 - app.core.excel.converter - WARNING - 无法解析规格: 50*None,使用默认值1*1 +2026-03-31 10:59:54,876 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 6.0, 单价: 2.91, 单位: +2026-03-31 10:59:54,876 - app.core.excel.converter - INFO - 提取规格: 卫龙大面筋106g@ -> 106*None +2026-03-31 10:59:54,876 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 卫龙大面筋106g@ -> 106*None +2026-03-31 10:59:54,878 - app.core.excel.converter - WARNING - 无法解析规格: 106*None,使用默认值1*1 +2026-03-31 10:59:54,879 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 2.91, 单位: +2026-03-31 10:59:54,879 - app.core.excel.converter - INFO - 提取规格: 小滑头薄片(经典)72g -> 72*None +2026-03-31 10:59:54,880 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 小滑头薄片(经典)72g -> 72*None +2026-03-31 10:59:54,881 - app.core.excel.converter - WARNING - 无法解析规格: 72*None,使用默认值1*1 +2026-03-31 10:59:54,881 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 1.43, 单位: +2026-03-31 10:59:54,882 - app.core.excel.converter - INFO - 提取规格: 卫龙魔芋爽香辣素毛肚(50g+30g)@ -> 50*None +2026-03-31 10:59:54,883 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 卫龙魔芋爽香辣素毛肚(50g+30g)@ -> 50*None +2026-03-31 10:59:54,884 - app.core.excel.converter - WARNING - 无法解析规格: 50*None,使用默认值1*1 +2026-03-31 10:59:54,884 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 7.0, 单价: 2.47, 单位: +2026-03-31 10:59:54,885 - app.core.excel.converter - INFO - 提取规格: 郎阿哥牛羊配辣味90g -> 90*None +2026-03-31 10:59:54,885 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 郎阿哥牛羊配辣味90g -> 90*None +2026-03-31 10:59:54,886 - app.core.excel.converter - WARNING - 无法解析规格: 90*None,使用默认值1*1 +2026-03-31 10:59:54,887 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 6.0, 单价: 2.09, 单位: +2026-03-31 10:59:54,888 - app.core.excel.converter - INFO - 提取规格: 旺旺馒头118g@ -> 118*None +2026-03-31 10:59:54,888 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 旺旺馒头118g@ -> 118*None +2026-03-31 10:59:54,890 - app.core.excel.converter - WARNING - 无法解析规格: 118*None,使用默认值1*1 +2026-03-31 10:59:54,890 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 5.24, 单位: +2026-03-31 10:59:54,891 - app.core.excel.converter - INFO - 提取规格: 80g调皮猴鹌鹑蛋(麻辣味) -> 80*None +2026-03-31 10:59:54,891 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 80g调皮猴鹌鹑蛋(麻辣味) -> 80*None +2026-03-31 10:59:54,893 - app.core.excel.converter - WARNING - 无法解析规格: 80*None,使用默认值1*1 +2026-03-31 10:59:54,894 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 2.38, 单位: +2026-03-31 10:59:54,894 - app.core.excel.converter - INFO - 提取规格: 有友泡椒牛皮晶山椒70g@ -> 70*None +2026-03-31 10:59:54,894 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 有友泡椒牛皮晶山椒70g@ -> 70*None +2026-03-31 10:59:54,896 - app.core.excel.converter - WARNING - 无法解析规格: 70*None,使用默认值1*1 +2026-03-31 10:59:54,896 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 3.51, 单位: +2026-03-31 10:59:54,897 - app.core.excel.converter - INFO - 提取规格: 许之郎猪蹄盐焗味150g -> 150*None +2026-03-31 10:59:54,897 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 许之郎猪蹄盐焗味150g -> 150*None +2026-03-31 10:59:54,898 - app.core.excel.converter - WARNING - 无法解析规格: 150*None,使用默认值1*1 +2026-03-31 10:59:54,898 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 9.52, 单位: +2026-03-31 10:59:54,900 - app.core.excel.converter - INFO - 提取规格: 160g东莱辣卤猪蹄 -> 160*None +2026-03-31 10:59:54,900 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 160g东莱辣卤猪蹄 -> 160*None +2026-03-31 10:59:54,901 - app.core.excel.converter - WARNING - 无法解析规格: 160*None,使用默认值1*1 +2026-03-31 10:59:54,901 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 10.28, 单位: +2026-03-31 10:59:54,902 - app.core.excel.converter - INFO - 提取规格: 杨记麻辣腿100g -> 100*None +2026-03-31 10:59:54,902 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 杨记麻辣腿100g -> 100*None +2026-03-31 10:59:54,903 - app.core.excel.converter - WARNING - 无法解析规格: 100*None,使用默认值1*1 +2026-03-31 10:59:54,904 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 5.05, 单位: +2026-03-31 10:59:54,904 - app.core.excel.converter - INFO - 提取规格: 周小贱功夫鸭脖黑鸭味55g -> 55*None +2026-03-31 10:59:54,904 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 周小贱功夫鸭脖黑鸭味55g -> 55*None +2026-03-31 10:59:54,906 - app.core.excel.converter - WARNING - 无法解析规格: 55*None,使用默认值1*1 +2026-03-31 10:59:54,906 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 4.28, 单位: +2026-03-31 10:59:54,906 - app.core.excel.converter - INFO - 提取规格: 老灶煮花生400g -> 400*None +2026-03-31 10:59:54,906 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 老灶煮花生400g -> 400*None +2026-03-31 10:59:54,907 - app.core.excel.converter - WARNING - 无法解析规格: 400*None,使用默认值1*1 +2026-03-31 10:59:54,909 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 8.76, 单位: +2026-03-31 10:59:54,909 - app.core.excel.converter - INFO - 提取规格: 老灶花生186g -> 186*None +2026-03-31 10:59:54,909 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 老灶花生186g -> 186*None +2026-03-31 10:59:54,910 - app.core.excel.converter - WARNING - 无法解析规格: 186*None,使用默认值1*1 +2026-03-31 10:59:54,910 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 6.0, 单价: 4.9, 单位: +2026-03-31 10:59:54,912 - app.core.excel.converter - INFO - 提取规格: 老灶煮花生蒜香味130g -> 130*None +2026-03-31 10:59:54,912 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 老灶煮花生蒜香味130g -> 130*None +2026-03-31 10:59:54,913 - app.core.excel.converter - WARNING - 无法解析规格: 130*None,使用默认值1*1 +2026-03-31 10:59:54,913 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 3.5, 单位: +2026-03-31 10:59:54,914 - app.core.excel.converter - INFO - 提取规格: 香香嘴卤制豆腐干香辣味80g@ -> 80*None +2026-03-31 10:59:54,914 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 香香嘴卤制豆腐干香辣味80g@ -> 80*None +2026-03-31 10:59:54,915 - app.core.excel.converter - WARNING - 无法解析规格: 80*None,使用默认值1*1 +2026-03-31 10:59:54,915 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 2.67, 单位: +2026-03-31 10:59:54,916 - app.core.excel.converter - INFO - 提取规格: 香香嘴卤制豆腐干五香味80g@ -> 80*None +2026-03-31 10:59:54,917 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 香香嘴卤制豆腐干五香味80g@ -> 80*None +2026-03-31 10:59:54,917 - app.core.excel.converter - WARNING - 无法解析规格: 80*None,使用默认值1*1 +2026-03-31 10:59:54,918 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 2.67, 单位: +2026-03-31 10:59:54,919 - app.core.excel.converter - INFO - 提取规格: 80g千百度啦咝豆干(麻辣味) -> 80*None +2026-03-31 10:59:54,919 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 80g千百度啦咝豆干(麻辣味) -> 80*None +2026-03-31 10:59:54,920 - app.core.excel.converter - WARNING - 无法解析规格: 80*None,使用默认值1*1 +2026-03-31 10:59:54,921 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 4.0, 单价: 2.53, 单位: +2026-03-31 10:59:54,922 - app.core.excel.converter - INFO - 提取规格: 洽洽瓜子焦糖味@108g -> 108*None +2026-03-31 10:59:54,922 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 洽洽瓜子焦糖味@108g -> 108*None +2026-03-31 10:59:54,924 - app.core.excel.converter - WARNING - 无法解析规格: 108*None,使用默认值1*1 +2026-03-31 10:59:54,924 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 5.07, 单位: +2026-03-31 10:59:54,925 - app.core.excel.converter - INFO - 提取规格: 洽洽奶香瓜子285g@ -> 285*None +2026-03-31 10:59:54,926 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 洽洽奶香瓜子285g@ -> 285*None +2026-03-31 10:59:54,927 - app.core.excel.converter - WARNING - 无法解析规格: 285*None,使用默认值1*1 +2026-03-31 10:59:54,927 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 4.0, 单价: 9.65, 单位: +2026-03-31 10:59:54,928 - app.core.excel.converter - INFO - 提取规格: 洽洽香瓜子260g@ -> 260*None +2026-03-31 10:59:54,929 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 洽洽香瓜子260g@ -> 260*None +2026-03-31 10:59:54,930 - app.core.excel.converter - WARNING - 无法解析规格: 260*None,使用默认值1*1 +2026-03-31 10:59:54,930 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 8.57, 单位: +2026-03-31 10:59:54,931 - app.core.excel.converter - INFO - 提取规格: 徽记生瓜子涨115g -> 115*None +2026-03-31 10:59:54,931 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 徽记生瓜子涨115g -> 115*None +2026-03-31 10:59:54,932 - app.core.excel.converter - WARNING - 无法解析规格: 115*None,使用默认值1*1 +2026-03-31 10:59:54,933 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 4.09, 单位: +2026-03-31 10:59:54,933 - app.core.excel.converter - INFO - 提取规格: 老程华重庆怪味胡豆190g -> 190*None +2026-03-31 10:59:54,935 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 老程华重庆怪味胡豆190g -> 190*None +2026-03-31 10:59:54,936 - app.core.excel.converter - WARNING - 无法解析规格: 190*None,使用默认值1*1 +2026-03-31 10:59:54,936 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 3.9, 单位: +2026-03-31 10:59:54,937 - app.core.excel.converter - INFO - 提取规格: 维巧九制梅肉透明装110g -> 110*None +2026-03-31 10:59:54,937 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 维巧九制梅肉透明装110g -> 110*None +2026-03-31 10:59:54,939 - app.core.excel.converter - WARNING - 无法解析规格: 110*None,使用默认值1*1 +2026-03-31 10:59:54,939 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 3.71, 单位: +2026-03-31 10:59:54,939 - app.core.excel.converter - INFO - 提取规格: 五哥牛皮糖原味140g -> 140*None +2026-03-31 10:59:54,940 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 五哥牛皮糖原味140g -> 140*None +2026-03-31 10:59:54,940 - app.core.excel.converter - WARNING - 无法解析规格: 140*None,使用默认值1*1 +2026-03-31 10:59:54,942 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 3.43, 单位: +2026-03-31 10:59:54,942 - app.core.excel.converter - INFO - 提取规格: 大白兔奶糖114g@ -> 114*None +2026-03-31 10:59:54,943 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 大白兔奶糖114g@ -> 114*None +2026-03-31 10:59:54,944 - app.core.excel.converter - WARNING - 无法解析规格: 114*None,使用默认值1*1 +2026-03-31 10:59:54,944 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 5.7, 单位: +2026-03-31 10:59:54,944 - app.core.excel.converter - INFO - 提取规格: 素味居山椒土豆80g -> 80*None +2026-03-31 10:59:54,945 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 素味居山椒土豆80g -> 80*None +2026-03-31 10:59:54,945 - app.core.excel.converter - WARNING - 无法解析规格: 80*None,使用默认值1*1 +2026-03-31 10:59:54,946 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 1.33, 单位: +2026-03-31 10:59:54,946 - app.core.excel.converter - INFO - 提取规格: 有友泡椒凤爪山椒味210g@ -> 210*None +2026-03-31 10:59:54,946 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 有友泡椒凤爪山椒味210g@ -> 210*None +2026-03-31 10:59:54,947 - app.core.excel.converter - WARNING - 无法解析规格: 210*None,使用默认值1*1 +2026-03-31 10:59:54,948 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 4.0, 单价: 12.66, 单位: +2026-03-31 10:59:54,948 - app.core.excel.converter - INFO - 提取规格: 丫丫队长鸡脚筋老卤盐焗味50g -> 50*None +2026-03-31 10:59:54,949 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 丫丫队长鸡脚筋老卤盐焗味50g -> 50*None +2026-03-31 10:59:54,950 - app.core.excel.converter - WARNING - 无法解析规格: 50*None,使用默认值1*1 +2026-03-31 10:59:54,950 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 4.0, 单价: 2.38, 单位: +2026-03-31 10:59:54,950 - app.core.excel.converter - INFO - 提取规格: 有友山椒竹笋120g@ -> 120*None +2026-03-31 10:59:54,951 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 有友山椒竹笋120g@ -> 120*None +2026-03-31 10:59:54,951 - app.core.excel.converter - WARNING - 无法解析规格: 120*None,使用默认值1*1 +2026-03-31 10:59:54,953 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 2.75, 单位: +2026-03-31 10:59:54,953 - app.core.excel.converter - INFO - 提取规格: 有友泡椒笋尖泡椒100g@ -> 100*None +2026-03-31 10:59:54,954 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 有友泡椒笋尖泡椒100g@ -> 100*None +2026-03-31 10:59:54,954 - app.core.excel.converter - WARNING - 无法解析规格: 100*None,使用默认值1*1 +2026-03-31 10:59:54,954 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 4.0, 单价: 3.95, 单位: +2026-03-31 10:59:54,956 - app.core.excel.converter - INFO - 提取规格: 素味居泡山椒笋尖100g -> 100*None +2026-03-31 10:59:54,956 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 素味居泡山椒笋尖100g -> 100*None +2026-03-31 10:59:54,957 - app.core.excel.converter - WARNING - 无法解析规格: 100*None,使用默认值1*1 +2026-03-31 10:59:54,957 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 6.0, 单价: 2.72, 单位: +2026-03-31 10:59:54,958 - app.core.excel.converter - INFO - 提取规格: 吴氏远久猫耳朵192g -> 192*None +2026-03-31 10:59:54,958 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 吴氏远久猫耳朵192g -> 192*None +2026-03-31 10:59:54,959 - app.core.excel.converter - WARNING - 无法解析规格: 192*None,使用默认值1*1 +2026-03-31 10:59:54,959 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 2.47, 单位: +2026-03-31 10:59:54,960 - app.core.excel.converter - INFO - 提取规格: 寻唐记锅巴麻辣味70g -> 70*None +2026-03-31 10:59:54,960 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 寻唐记锅巴麻辣味70g -> 70*None +2026-03-31 10:59:54,960 - app.core.excel.converter - WARNING - 无法解析规格: 70*None,使用默认值1*1 +2026-03-31 10:59:54,961 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 1.9, 单位: +2026-03-31 10:59:54,962 - app.core.excel.converter - INFO - 提取规格: 好时达地摊锅巴豪横高辣味108g -> 108*None +2026-03-31 10:59:54,962 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 好时达地摊锅巴豪横高辣味108g -> 108*None +2026-03-31 10:59:54,963 - app.core.excel.converter - WARNING - 无法解析规格: 108*None,使用默认值1*1 +2026-03-31 10:59:54,963 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 4.0, 单价: 2.48, 单位: +2026-03-31 10:59:54,964 - app.core.excel.converter - INFO - 提取规格: 美好火腿肠56g@ -> 56*None +2026-03-31 10:59:54,964 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 美好火腿肠56g@ -> 56*None +2026-03-31 10:59:54,966 - app.core.excel.converter - WARNING - 无法解析规格: 56*None,使用默认值1*1 +2026-03-31 10:59:54,967 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 80.0, 单价: 1.37, 单位: +2026-03-31 10:59:54,967 - app.core.excel.converter - INFO - 提取规格: 卫龙亲嘴烧川香风味24g@ -> 24*None +2026-03-31 10:59:54,968 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 卫龙亲嘴烧川香风味24g@ -> 24*None +2026-03-31 10:59:54,969 - app.core.excel.converter - WARNING - 无法解析规格: 24*None,使用默认值1*1 +2026-03-31 10:59:54,969 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 20.0, 单价: 0.51, 单位: +2026-03-31 10:59:54,969 - app.core.excel.converter - INFO - 提取规格: 魔法士脆士可挡疯狂烤肉味35g -> 35*None +2026-03-31 10:59:54,970 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 魔法士脆士可挡疯狂烤肉味35g -> 35*None +2026-03-31 10:59:54,972 - app.core.excel.converter - WARNING - 无法解析规格: 35*None,使用默认值1*1 +2026-03-31 10:59:54,972 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 30.0, 单价: 0.76, 单位: +2026-03-31 10:59:54,973 - app.core.excel.converter - INFO - 提取规格: 美好甜玉米90g@ -> 90*None +2026-03-31 10:59:54,973 - app.core.excel.converter - INFO - 从名称推断规格(通用模式): 美好甜玉米90g@ -> 90*None +2026-03-31 10:59:54,974 - app.core.excel.converter - WARNING - 无法解析规格: 90*None,使用默认值1*1 +2026-03-31 10:59:56,657 - app.core.excel.converter - INFO - 成功加载条码映射配置,共62项 +2026-03-31 11:01:45,696 - app.core.excel.converter - INFO - 成功加载条码映射配置,共62项 +2026-03-31 11:01:47,820 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24 +2026-03-31 11:01:47,822 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 5.0, 单位: 包 +2026-03-31 11:01:47,823 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2026-03-31 11:01:47,824 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 12.0, 单位: 包 +2026-03-31 11:01:47,825 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2026-03-31 11:01:47,825 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 12.0, 单位: 包 +2026-03-31 11:01:47,827 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2026-03-31 11:01:47,829 - app.core.excel.converter - INFO - 解析二级规格: 1*20 -> 1*20 +2026-03-31 11:01:47,832 - app.core.excel.converter - INFO - 解析二级规格: 1*16 -> 1*16 +2026-03-31 11:01:47,835 - app.core.excel.converter - INFO - 解析二级规格: 1*18 -> 1*18 +2026-03-31 11:01:47,838 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2026-03-31 11:01:47,841 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48 +2026-03-31 11:01:47,841 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 6.2, 单位: 包 +2026-03-31 11:01:47,844 - app.core.excel.converter - WARNING - 无法解析规格: 规格,使用默认值1*1 +2026-03-31 11:01:47,847 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24 +2026-03-31 11:01:47,847 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 7.0, 单位: 包 +2026-03-31 11:01:47,848 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24 +2026-03-31 11:01:47,849 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 7.0, 单位: 包 +2026-03-31 11:01:47,850 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24 +2026-03-31 11:01:47,851 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 7.5, 单位: 包 +2026-03-31 11:01:47,852 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24 +2026-03-31 11:01:47,852 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 6.5, 单位: 包 +2026-03-31 11:01:47,853 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24 +2026-03-31 11:01:47,853 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 5.5, 单位: 包 +2026-03-31 11:01:47,854 - app.core.excel.converter - INFO - 解析二级规格: 1*36 -> 1*36 +2026-03-31 11:01:47,855 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 5.8, 单位: 包 +2026-03-31 11:01:47,855 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24 +2026-03-31 11:01:47,857 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 7.5, 单位: 包 +2026-03-31 11:01:47,857 - app.core.excel.converter - INFO - 解析二级规格: 1*36 -> 1*36 +2026-03-31 11:01:47,858 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 2.8, 单位: 包 +2026-03-31 11:01:47,860 - app.core.excel.converter - INFO - 解析二级规格: 1*36 -> 1*36 +2026-03-31 11:01:47,860 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 5.8, 单位: 包 +2026-03-31 11:01:47,864 - app.core.excel.converter - WARNING - 无法解析规格: 规格,使用默认值1*1 +2026-03-31 11:01:47,866 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48 +2026-03-31 11:01:47,866 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 6.0, 单位: 包 +2026-03-31 11:01:47,867 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24 +2026-03-31 11:01:47,867 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 6.0, 单位: 包 +2026-03-31 11:01:47,869 - app.core.excel.converter - INFO - 解析二级规格: 1*36 -> 1*36 +2026-03-31 11:01:47,870 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 5.8, 单位: 包 +2026-03-31 11:01:47,871 - app.core.excel.converter - INFO - 解析二级规格: 1*36 -> 1*36 +2026-03-31 11:01:47,872 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 6.5, 单位: 包 +2026-03-31 11:01:47,873 - app.core.excel.converter - INFO - 解析二级规格: 1*36 -> 1*36 +2026-03-31 11:01:47,874 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 6.0, 单位: 包 +2026-03-31 11:01:47,875 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2026-03-31 11:01:47,876 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 10.5, 单位: 包 +2026-03-31 11:01:47,877 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2026-03-31 11:01:47,877 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 1.0, 单价: 38.0, 单位: 瓶 +2026-03-31 11:01:47,878 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2026-03-31 11:01:47,878 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 1.0, 单价: 38.0, 单位: 瓶 +2026-03-31 11:01:47,880 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2026-03-31 11:01:47,881 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 1.0, 单价: 24.0, 单位: 瓶 +2026-03-31 11:01:47,938 - app.core.excel.converter - INFO - 成功加载条码映射配置,共62项 +2026-03-31 11:27:58,582 - app.core.excel.converter - INFO - 成功加载条码映射配置,共62项 +2026-03-31 11:28:00,753 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24 +2026-03-31 11:28:00,753 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 5.0, 单位: 包 +2026-03-31 11:28:00,755 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2026-03-31 11:28:00,755 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 12.0, 单位: 包 +2026-03-31 11:28:00,757 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2026-03-31 11:28:00,757 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 12.0, 单位: 包 +2026-03-31 11:28:00,758 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2026-03-31 11:28:00,759 - app.core.excel.converter - INFO - 解析二级规格: 1*20 -> 1*20 +2026-03-31 11:28:00,761 - app.core.excel.converter - INFO - 解析二级规格: 1*16 -> 1*16 +2026-03-31 11:28:00,762 - app.core.excel.converter - INFO - 解析二级规格: 1*18 -> 1*18 +2026-03-31 11:28:00,764 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2026-03-31 11:28:00,765 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48 +2026-03-31 11:28:00,765 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 6.2, 单位: 包 +2026-03-31 11:28:00,767 - app.core.excel.converter - WARNING - 无法解析规格: 规格,使用默认值1*1 +2026-03-31 11:28:00,769 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24 +2026-03-31 11:28:00,769 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 7.0, 单位: 包 +2026-03-31 11:28:00,771 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24 +2026-03-31 11:28:00,771 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 7.0, 单位: 包 +2026-03-31 11:28:00,772 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24 +2026-03-31 11:28:00,772 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 7.5, 单位: 包 +2026-03-31 11:28:00,773 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24 +2026-03-31 11:28:00,773 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 6.5, 单位: 包 +2026-03-31 11:28:00,775 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24 +2026-03-31 11:28:00,776 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 5.5, 单位: 包 +2026-03-31 11:28:00,777 - app.core.excel.converter - INFO - 解析二级规格: 1*36 -> 1*36 +2026-03-31 11:28:00,777 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 5.8, 单位: 包 +2026-03-31 11:28:00,778 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24 +2026-03-31 11:28:00,779 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 7.5, 单位: 包 +2026-03-31 11:28:00,779 - app.core.excel.converter - INFO - 解析二级规格: 1*36 -> 1*36 +2026-03-31 11:28:00,779 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 2.8, 单位: 包 +2026-03-31 11:28:00,781 - app.core.excel.converter - INFO - 解析二级规格: 1*36 -> 1*36 +2026-03-31 11:28:00,781 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 5.8, 单位: 包 +2026-03-31 11:28:00,783 - app.core.excel.converter - WARNING - 无法解析规格: 规格,使用默认值1*1 +2026-03-31 11:28:00,784 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48 +2026-03-31 11:28:00,785 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 6.0, 单位: 包 +2026-03-31 11:28:00,785 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24 +2026-03-31 11:28:00,786 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 6.0, 单位: 包 +2026-03-31 11:28:00,787 - app.core.excel.converter - INFO - 解析二级规格: 1*36 -> 1*36 +2026-03-31 11:28:00,788 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 5.8, 单位: 包 +2026-03-31 11:28:00,789 - app.core.excel.converter - INFO - 解析二级规格: 1*36 -> 1*36 +2026-03-31 11:28:00,789 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 6.5, 单位: 包 +2026-03-31 11:28:00,790 - app.core.excel.converter - INFO - 解析二级规格: 1*36 -> 1*36 +2026-03-31 11:28:00,791 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 6.0, 单位: 包 +2026-03-31 11:28:00,792 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2026-03-31 11:28:00,792 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 10.5, 单位: 包 +2026-03-31 11:28:00,792 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2026-03-31 11:28:00,793 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 1.0, 单价: 38.0, 单位: 瓶 +2026-03-31 11:28:00,794 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2026-03-31 11:28:00,794 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 1.0, 单价: 38.0, 单位: 瓶 +2026-03-31 11:28:00,796 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2026-03-31 11:28:00,796 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 1.0, 单价: 24.0, 单位: 瓶 +2026-03-31 11:28:01,608 - app.core.excel.converter - INFO - 成功加载条码映射配置,共62项 +2026-03-31 11:28:11,907 - app.core.excel.converter - INFO - 成功加载条码映射配置,共62项 +2026-03-31 11:28:11,967 - app.core.excel.converter - INFO - 解析二级规格: 1*100 -> 1*100 +2026-03-31 11:28:11,967 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 20.0, 单位: 支 +2026-03-31 11:28:11,968 - app.core.excel.converter - WARNING - 无法解析规格: 380g,使用默认值1*1 +2026-03-31 11:28:11,969 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 19.0, 单位: 瓶 +2026-03-31 11:28:11,970 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24 +2026-03-31 11:28:11,971 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 19.0, 单位: 瓶 +2026-03-31 11:28:11,971 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24 +2026-03-31 11:28:11,972 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 11.0, 单位: 瓶 +2026-03-31 11:28:11,972 - app.core.excel.converter - INFO - 解析二级规格: 1*6 -> 1*6 +2026-03-31 11:28:11,974 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 6.0, 单价: 7.0, 单位: 支 +2026-03-31 11:28:11,975 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48 +2026-03-31 11:28:11,975 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 3.6, 单位: 个 +2026-03-31 11:28:11,976 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48 +2026-03-31 11:28:11,976 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 5.0, 单位: 个 +2026-03-31 11:28:11,977 - app.core.excel.converter - INFO - 解析二级规格: 1*72 -> 1*72 +2026-03-31 11:28:11,979 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48 +2026-03-31 11:28:11,979 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 1.4, 单位: 个 +2026-03-31 11:28:11,981 - app.core.excel.converter - WARNING - 无法解析规格: 规格,使用默认值1*1 +2026-03-31 11:28:11,982 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2026-03-31 11:28:11,983 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 11.5, 单位: 支 +2026-03-31 11:28:11,985 - app.core.excel.converter - INFO - 解析二级规格: 1*40 -> 1*40 +2026-03-31 11:28:11,985 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 7.5, 单位: 把 +2026-03-31 11:28:11,986 - app.core.excel.converter - INFO - 解析二级规格: 1*80 -> 1*80 +2026-03-31 11:28:11,986 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 8.0, 单位: 双 +2026-03-31 11:28:11,987 - app.core.excel.converter - WARNING - 无法解析规格: 185ml,使用默认值1*1 +2026-03-31 11:28:11,987 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 17.0, 单位: 个 +2026-03-31 11:28:11,989 - app.core.excel.converter - WARNING - 无法解析规格: 330mL,使用默认值1*1 +2026-03-31 11:28:11,989 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 22.0, 单位: 个 +2026-03-31 11:28:11,990 - app.core.excel.converter - INFO - 解析二级规格: 1*30 -> 1*30 +2026-03-31 11:28:11,990 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 6.5, 单位: 个 +2026-03-31 11:28:11,991 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2026-03-31 11:28:11,992 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 3.5, 单位: 把 +2026-03-31 11:28:11,993 - app.core.excel.converter - INFO - 解析二级规格: 1*60 -> 1*60 +2026-03-31 11:28:11,994 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2026-03-31 11:28:13,707 - app.core.excel.converter - INFO - 成功加载条码映射配置,共62项 diff --git a/logs/app.core.excel.handlers.unit_converter_handlers.log b/logs/app.core.excel.handlers.unit_converter_handlers.log index bef303e..a9abf6f 100644 --- a/logs/app.core.excel.handlers.unit_converter_handlers.log +++ b/logs/app.core.excel.handlers.unit_converter_handlers.log @@ -4604,3 +4604,22 @@ 2026-03-31 09:03:12,007 - app.core.excel.handlers.unit_converter_handlers - INFO - 件单位处理: 数量: 1.0 -> 40.0, 单价: 78.0 -> 1.95, 单位: 件 -> 瓶 2026-03-31 09:03:12,008 - app.core.excel.handlers.unit_converter_handlers - INFO - 件单位处理: 数量: 1.0 -> 40.0, 单价: 100.0 -> 2.5, 单位: 件 -> 瓶 2026-03-31 09:05:33,418 - app.core.excel.handlers.unit_converter_handlers - INFO - 赠品单位处理: 保持原样 数量: 2.0, 单价: 0, 单位: +2026-03-31 10:59:54,974 - app.core.excel.handlers.unit_converter_handlers - INFO - 赠品单位处理: 保持原样 数量: 2.0, 单价: 0, 单位: +2026-03-31 11:01:47,828 - app.core.excel.handlers.unit_converter_handlers - INFO - 件单位处理: 数量: 1.0 -> 12.0, 单价: 108.0 -> 9.0, 单位: 件 -> 瓶 +2026-03-31 11:01:47,831 - app.core.excel.handlers.unit_converter_handlers - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 3.0, 单价: 8.5, 单位: 提 +2026-03-31 11:01:47,833 - app.core.excel.handlers.unit_converter_handlers - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 3.0, 单价: 8.5, 单位: 提 +2026-03-31 11:01:47,835 - app.core.excel.handlers.unit_converter_handlers - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 3.0, 单价: 8.5, 单位: 提 +2026-03-31 11:01:47,838 - app.core.excel.handlers.unit_converter_handlers - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 2.0, 单价: 13.0, 单位: 提 +2026-03-31 11:01:47,844 - app.core.excel.handlers.unit_converter_handlers - INFO - 赠品单位单位处理: 保持原样 数量: 0.0, 单价: 0, 单位: 单位 +2026-03-31 11:01:47,864 - app.core.excel.handlers.unit_converter_handlers - INFO - 赠品单位单位处理: 保持原样 数量: 0.0, 单价: 0, 单位: 单位 +2026-03-31 11:28:00,759 - app.core.excel.handlers.unit_converter_handlers - INFO - 件单位处理: 数量: 1.0 -> 12.0, 单价: 108.0 -> 9.0, 单位: 件 -> 瓶 +2026-03-31 11:28:00,759 - app.core.excel.handlers.unit_converter_handlers - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 3.0, 单价: 8.5, 单位: 提 +2026-03-31 11:28:00,762 - app.core.excel.handlers.unit_converter_handlers - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 3.0, 单价: 8.5, 单位: 提 +2026-03-31 11:28:00,763 - app.core.excel.handlers.unit_converter_handlers - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 3.0, 单价: 8.5, 单位: 提 +2026-03-31 11:28:00,764 - app.core.excel.handlers.unit_converter_handlers - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 2.0, 单价: 13.0, 单位: 提 +2026-03-31 11:28:00,768 - app.core.excel.handlers.unit_converter_handlers - INFO - 赠品单位单位处理: 保持原样 数量: 0.0, 单价: 0, 单位: 单位 +2026-03-31 11:28:00,784 - app.core.excel.handlers.unit_converter_handlers - INFO - 赠品单位单位处理: 保持原样 数量: 0.0, 单价: 0, 单位: 单位 +2026-03-31 11:28:11,977 - app.core.excel.handlers.unit_converter_handlers - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 5.0, 单价: 3.3, 单位: 盒 +2026-03-31 11:28:11,981 - app.core.excel.handlers.unit_converter_handlers - INFO - 赠品单位单位处理: 保持原样 数量: 0.0, 单价: 0, 单位: 单位 +2026-03-31 11:28:11,993 - app.core.excel.handlers.unit_converter_handlers - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 1.0, 单价: 112.0, 单位: 盒 +2026-03-31 11:28:11,995 - app.core.excel.handlers.unit_converter_handlers - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 1.0, 单价: 6.5, 单位: 盒 diff --git a/logs/app.core.excel.merger.log b/logs/app.core.excel.merger.log index 8215ada..71e006c 100644 --- a/logs/app.core.excel.merger.log +++ b/logs/app.core.excel.merger.log @@ -367,3 +367,23 @@ 2026-03-31 09:07:58,353 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger完成,模板文件: E:\2025Code\python\orc-order-v2\templates\银豹-采购单模板.xls 2026-03-31 09:08:00,645 - app.core.excel.merger - INFO - 搜索目录 data/result 中的采购单Excel文件 2026-03-31 09:08:00,646 - app.core.excel.merger - INFO - 找到 2 个采购单Excel文件 +2026-03-31 10:59:54,581 - app.core.excel.merger - INFO - 使用输出目录: E:\2025Code\python\orc-order-v2\data\output +2026-03-31 10:59:54,581 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger完成,模板文件: E:\2025Code\python\orc-order-v2\templates\银豹-采购单模板.xls +2026-03-31 10:59:56,658 - app.core.excel.merger - INFO - 使用输出目录: E:\2025Code\python\orc-order-v2\data\output +2026-03-31 10:59:56,659 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger完成,模板文件: E:\2025Code\python\orc-order-v2\templates\银豹-采购单模板.xls +2026-03-31 11:01:45,697 - app.core.excel.merger - INFO - 使用输出目录: E:\2025Code\python\orc-order-v2\data\output +2026-03-31 11:01:45,697 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger完成,模板文件: E:\2025Code\python\orc-order-v2\templates\银豹-采购单模板.xls +2026-03-31 11:01:47,940 - app.core.excel.merger - INFO - 使用输出目录: E:\2025Code\python\orc-order-v2\data\output +2026-03-31 11:01:47,940 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger完成,模板文件: E:\2025Code\python\orc-order-v2\templates\银豹-采购单模板.xls +2026-03-31 11:01:50,780 - app.core.excel.merger - INFO - 搜索目录 data/result 中的采购单Excel文件 +2026-03-31 11:01:50,781 - app.core.excel.merger - INFO - 找到 3 个采购单Excel文件 +2026-03-31 11:27:58,582 - app.core.excel.merger - INFO - 使用输出目录: E:\2025Code\python\orc-order-v2\data\output +2026-03-31 11:27:58,583 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger完成,模板文件: E:\2025Code\python\orc-order-v2\templates\银豹-采购单模板.xls +2026-03-31 11:28:01,610 - app.core.excel.merger - INFO - 使用输出目录: E:\2025Code\python\orc-order-v2\data\output +2026-03-31 11:28:01,610 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger完成,模板文件: E:\2025Code\python\orc-order-v2\templates\银豹-采购单模板.xls +2026-03-31 11:28:04,092 - app.core.excel.merger - INFO - 搜索目录 data/result 中的采购单Excel文件 +2026-03-31 11:28:04,093 - app.core.excel.merger - INFO - 找到 1 个采购单Excel文件 +2026-03-31 11:28:11,907 - app.core.excel.merger - INFO - 使用输出目录: E:\2025Code\python\orc-order-v2\data\output +2026-03-31 11:28:11,908 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger完成,模板文件: E:\2025Code\python\orc-order-v2\templates\银豹-采购单模板.xls +2026-03-31 11:28:13,708 - app.core.excel.merger - INFO - 使用输出目录: E:\2025Code\python\orc-order-v2\data\output +2026-03-31 11:28:13,708 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger完成,模板文件: E:\2025Code\python\orc-order-v2\templates\银豹-采购单模板.xls diff --git a/logs/app.core.excel.processor.log b/logs/app.core.excel.processor.log index 099e1cf..a5ffeec 100644 --- a/logs/app.core.excel.processor.log +++ b/logs/app.core.excel.processor.log @@ -36967,3 +36967,789 @@ 2026-03-31 09:07:58,351 - app.core.excel.processor - INFO - 使用输出目录: E:\2025Code\python\orc-order-v2\data\output 2026-03-31 09:07:58,351 - app.core.excel.processor - INFO - 使用临时目录: E:\2025Code\python\orc-order-v2\data\temp 2026-03-31 09:07:58,352 - app.core.excel.processor - INFO - 初始化ExcelProcessor完成,模板文件: templates/银豹-采购单模板.xls +2026-03-31 10:59:54,579 - app.core.excel.processor - INFO - 使用输出目录: E:\2025Code\python\orc-order-v2\data\output +2026-03-31 10:59:54,579 - app.core.excel.processor - INFO - 使用临时目录: E:\2025Code\python\orc-order-v2\data\temp +2026-03-31 10:59:54,580 - app.core.excel.processor - INFO - 初始化ExcelProcessor完成,模板文件: templates/银豹-采购单模板.xls +2026-03-31 10:59:54,668 - app.core.excel.processor - INFO - 开始处理Excel文件: E:/2025Code/python/orc-order-v2/data/output\预处理之后_订单1774849009841.xlsx +2026-03-31 10:59:54,682 - app.core.excel.processor - INFO - 成功读取Excel文件: E:/2025Code/python/orc-order-v2/data/output\预处理之后_订单1774849009841.xlsx, 共 99 行 +2026-03-31 10:59:54,685 - app.core.excel.processor - INFO - 找到可能的表头行: 第1行,评分: 55 +2026-03-31 10:59:54,686 - app.core.excel.processor - INFO - 识别到表头在第 1 行 +2026-03-31 10:59:54,706 - app.core.excel.processor - INFO - 重新整理数据结构,共 98 行有效数据 +2026-03-31 10:59:54,726 - app.core.excel.processor - INFO - 找到精确匹配的条码列: 商品条码 +2026-03-31 10:59:54,727 - app.core.excel.processor - INFO - 使用条码列: 商品条码 +2026-03-31 10:59:54,728 - app.core.excel.processor - INFO - 找到name列: 商品名称 +2026-03-31 10:59:54,728 - app.core.excel.processor - INFO - 找到quantity列: 数量 +2026-03-31 10:59:54,728 - app.core.excel.processor - INFO - 找到price列: 单价 +2026-03-31 10:59:54,729 - app.core.excel.processor - INFO - 找到amount列: 金额 +2026-03-31 10:59:54,729 - app.core.excel.processor - INFO - 检测到列映射: {'barcode': '商品条码', 'name': '商品名称', 'quantity': '数量', 'price': '单价', 'amount': '金额'} +2026-03-31 10:59:54,734 - app.core.excel.processor - INFO - 从商品名称推断规格: 益达口香糖元气蓝莓味5片装13.5g@ -> 13.5*None, 包装数量=13 +2026-03-31 10:59:54,738 - app.core.excel.processor - INFO - 从商品名称推断规格: 奥利奥饼干草莓味夹心97g@ -> 97*None, 包装数量=97 +2026-03-31 10:59:54,741 - app.core.excel.processor - INFO - 从商品名称推断规格: 奥利奥冰淇淋风味饼干抹茶味97g@ -> 97*None, 包装数量=97 +2026-03-31 10:59:54,743 - app.core.excel.processor - INFO - 从商品名称推断规格: 奥利奥薄脆香草奥碎味95g@ -> 95*None, 包装数量=95 +2026-03-31 10:59:54,746 - app.core.excel.processor - INFO - 从商品名称推断规格: 喜之郎果肉果冻葡萄苹果200g -> 200*None, 包装数量=200 +2026-03-31 10:59:54,748 - app.core.excel.processor - INFO - 从商品名称推断规格: 法丽兹曲奇抹茶慕斯巧克力味70g@ -> 70*None, 包装数量=70 +2026-03-31 10:59:54,751 - app.core.excel.processor - INFO - 从商品名称推断规格: 太平梳打饼干海苔味100g@ -> 100*None, 包装数量=100 +2026-03-31 10:59:54,753 - app.core.excel.processor - INFO - 从商品名称推断规格: 新家园烤馍52g@ -> 52*None, 包装数量=52 +2026-03-31 10:59:54,754 - app.core.excel.processor - INFO - 从商品名称推断规格: 达利园熊子饼115g@ -> 115*None, 包装数量=115 +2026-03-31 10:59:54,757 - app.core.excel.processor - INFO - 从商品名称推断规格: 达利园好吃点榛仁酥饼146g@ -> 146*None, 包装数量=146 +2026-03-31 10:59:54,760 - app.core.excel.processor - INFO - 从商品名称推断规格: 达利园好吃点杏仁酥饼146g@ -> 146*None, 包装数量=146 +2026-03-31 10:59:54,761 - app.core.excel.processor - INFO - 从商品名称推断规格: 达利园好吃点香脆核桃饼108g@ -> 108*None, 包装数量=108 +2026-03-31 10:59:54,764 - app.core.excel.processor - INFO - 从商品名称推断规格: 达利园好吃点香脆腰果饼108g@ -> 108*None, 包装数量=108 +2026-03-31 10:59:54,767 - app.core.excel.processor - INFO - 从商品名称推断规格: 康师傅3+2苏打饼干香浓奶油125g@ -> 125*None, 包装数量=125 +2026-03-31 10:59:54,769 - app.core.excel.processor - INFO - 从商品名称推断规格: 米老头青稞米棒芝麻味150g@ -> 150*None, 包装数量=150 +2026-03-31 10:59:54,772 - app.core.excel.processor - INFO - 从商品名称推断规格: 旺旺雪饼84g@ -> 84*None, 包装数量=84 +2026-03-31 10:59:54,774 - app.core.excel.processor - INFO - 从商品名称推断规格: 旺旺仙贝52g@ -> 52*None, 包装数量=52 +2026-03-31 10:59:54,776 - app.core.excel.processor - INFO - 从商品名称推断规格: 亨裕蛋味酥39g -> 39*None, 包装数量=39 +2026-03-31 10:59:54,779 - app.core.excel.processor - INFO - 从商品名称推断规格: 金富士海苔味三角饼干128g@ -> 128*None, 包装数量=128 +2026-03-31 10:59:54,781 - app.core.excel.processor - INFO - 从商品名称推断规格: 怡派手工薄脆饼干318g -> 318*None, 包装数量=318 +2026-03-31 10:59:54,783 - app.core.excel.processor - INFO - 从商品名称推断规格: 雀巢威化脆脆鲨花生味夹心【32条装】18.6g@ -> 18.6*None, 包装数量=18 +2026-03-31 10:59:54,786 - app.core.excel.processor - INFO - 从商品名称推断规格: 卫龙亲嘴烧麦辣鸡汁味24g@ -> 24*None, 包装数量=24 +2026-03-31 10:59:54,788 - app.core.excel.processor - INFO - 从商品名称推断规格: 卫龙亲嘴烧经典香辣风味24g@ -> 24*None, 包装数量=24 +2026-03-31 10:59:54,791 - app.core.excel.processor - INFO - 从商品名称推断规格: 卫龙亲嘴烧麻辣牛肉风味24g@ -> 24*None, 包装数量=24 +2026-03-31 10:59:54,792 - app.core.excel.processor - INFO - 从商品名称推断规格: 杨记脆鸭肫香辣味22g -> 22*None, 包装数量=22 +2026-03-31 10:59:54,795 - app.core.excel.processor - INFO - 从商品名称推断规格: 杨记脆鸭肫椒麻味22g -> 22*None, 包装数量=22 +2026-03-31 10:59:54,798 - app.core.excel.processor - INFO - 从商品名称推断规格: 登荣龙须牛肉丝20g -> 20*None, 包装数量=20 +2026-03-31 10:59:54,801 - app.core.excel.processor - INFO - 从商品名称推断规格: 登荣香辣爽口鸡23g -> 23*None, 包装数量=23 +2026-03-31 10:59:54,803 - app.core.excel.processor - INFO - 从商品名称推断规格: 卫龙魔芋爽麻酱素毛肚微辣18g@ -> 18*None, 包装数量=18 +2026-03-31 10:59:54,805 - app.core.excel.processor - INFO - 从商品名称推断规格: 劲仔小鱼卤香味12g@ -> 12*None, 包装数量=12 +2026-03-31 10:59:54,807 - app.core.excel.processor - INFO - 从商品名称推断规格: 劲仔小鱼香辣小鱼12g@ -> 12*None, 包装数量=12 +2026-03-31 10:59:54,810 - app.core.excel.processor - INFO - 从商品名称推断规格: 劲仔小鱼糖醋小鱼12g@ -> 12*None, 包装数量=12 +2026-03-31 10:59:54,812 - app.core.excel.processor - INFO - 从商品名称推断规格: 劲仔手撕肉干麻辣味10g@ -> 10*None, 包装数量=10 +2026-03-31 10:59:54,815 - app.core.excel.processor - INFO - 从商品名称推断规格: 劲仔手撕肉干香辣味10g@ -> 10*None, 包装数量=10 +2026-03-31 10:59:54,818 - app.core.excel.processor - INFO - 从商品名称推断规格: 卫龙麻辣麻辣小麻小辣16g@ -> 16*None, 包装数量=16 +2026-03-31 10:59:54,819 - app.core.excel.processor - INFO - 从商品名称推断规格: 子弟原切马铃薯片巴西烤肉味95g@ -> 95*None, 包装数量=95 +2026-03-31 10:59:54,822 - app.core.excel.processor - INFO - 从商品名称推断规格: 子弟原切马铃薯片美滋番茄味95g@ -> 95*None, 包装数量=95 +2026-03-31 10:59:54,825 - app.core.excel.processor - INFO - 从商品名称推断规格: 子弟原切马铃薯片经典麻辣味95g@ -> 95*None, 包装数量=95 +2026-03-31 10:59:54,827 - app.core.excel.processor - INFO - 从商品名称推断规格: 子弟原切马铃薯片劲爆麻辣味95g@ -> 95*None, 包装数量=95 +2026-03-31 10:59:54,829 - app.core.excel.processor - INFO - 从商品名称推断规格: 乐事美国经典原味70g@ -> 70*None, 包装数量=70 +2026-03-31 10:59:54,831 - app.core.excel.processor - INFO - 从商品名称推断规格: 乐事墨西哥鸡汁番茄味70g@ -> 70*None, 包装数量=70 +2026-03-31 10:59:54,835 - app.core.excel.processor - INFO - 从商品名称推断规格: 飘零大叔蜜辣去骨鸭掌45g@ -> 45*None, 包装数量=45 +2026-03-31 10:59:54,837 - app.core.excel.processor - INFO - 从商品名称推断规格: 茂林炭烤鱿鱼丝60g -> 60*None, 包装数量=60 +2026-03-31 10:59:54,839 - app.core.excel.processor - INFO - 从商品名称推断规格: 王小卤虎皮凤爪火锅味105g@ -> 105*None, 包装数量=105 +2026-03-31 10:59:54,842 - app.core.excel.processor - INFO - 从商品名称推断规格: 王小卤虎皮凤爪卤香味 105g@ -> 105*None, 包装数量=105 +2026-03-31 10:59:54,844 - app.core.excel.processor - INFO - 从商品名称推断规格: 王小卤虎皮凤爪香辣味 105g@ -> 105*None, 包装数量=105 +2026-03-31 10:59:54,847 - app.core.excel.processor - INFO - 从商品名称推断规格: 王小卤虎皮凤爪椒麻味105g@ -> 105*None, 包装数量=105 +2026-03-31 10:59:54,849 - app.core.excel.processor - INFO - 从商品名称推断规格: 杨记老卤双爪多味70g -> 70*None, 包装数量=70 +2026-03-31 10:59:54,852 - app.core.excel.processor - INFO - 从商品名称推断规格: 逍遥嘴花椒鸡味180g -> 180*None, 包装数量=180 +2026-03-31 10:59:54,853 - app.core.excel.processor - INFO - 从商品名称推断规格: 川牛娃泡椒牛肉50g -> 50*None, 包装数量=50 +2026-03-31 10:59:54,856 - app.core.excel.processor - INFO - 从商品名称推断规格: 飘零大叔川香半筋半肉48g@ -> 48*None, 包装数量=48 +2026-03-31 10:59:54,859 - app.core.excel.processor - INFO - 从商品名称推断规格: 展华大辣棒麻辣牛肉味138g -> 138*None, 包装数量=138 +2026-03-31 10:59:54,862 - app.core.excel.processor - INFO - 从商品名称推断规格: 登荣素口水鸡65g -> 65*None, 包装数量=65 +2026-03-31 10:59:54,863 - app.core.excel.processor - INFO - 从商品名称推断规格: 48g乐媳妇山椒凤爪 -> 48*None, 包装数量=48 +2026-03-31 10:59:54,867 - app.core.excel.processor - INFO - 从商品名称推断规格: 蓉小优泡椒味臭干子70g@ -> 70*None, 包装数量=70 +2026-03-31 10:59:54,870 - app.core.excel.processor - INFO - 从商品名称推断规格: 吴婷红油馍片82g -> 82*None, 包装数量=82 +2026-03-31 10:59:54,872 - app.core.excel.processor - INFO - 从商品名称推断规格: 禛香肥牛味大豆制品素食风味80g -> 80*None, 包装数量=80 +2026-03-31 10:59:54,875 - app.core.excel.processor - INFO - 从商品名称推断规格: (50g+30g)卫龙魔芋爽(酸辣泡椒素毛肚)@ -> 50*None, 包装数量=50 +2026-03-31 10:59:54,877 - app.core.excel.processor - INFO - 从商品名称推断规格: 卫龙大面筋106g@ -> 106*None, 包装数量=106 +2026-03-31 10:59:54,880 - app.core.excel.processor - INFO - 从商品名称推断规格: 小滑头薄片(经典)72g -> 72*None, 包装数量=72 +2026-03-31 10:59:54,883 - app.core.excel.processor - INFO - 从商品名称推断规格: 卫龙魔芋爽香辣素毛肚(50g+30g)@ -> 50*None, 包装数量=50 +2026-03-31 10:59:54,885 - app.core.excel.processor - INFO - 从商品名称推断规格: 郎阿哥牛羊配辣味90g -> 90*None, 包装数量=90 +2026-03-31 10:59:54,888 - app.core.excel.processor - INFO - 从商品名称推断规格: 旺旺馒头118g@ -> 118*None, 包装数量=118 +2026-03-31 10:59:54,891 - app.core.excel.processor - INFO - 从商品名称推断规格: 80g调皮猴鹌鹑蛋(麻辣味) -> 80*None, 包装数量=80 +2026-03-31 10:59:54,895 - app.core.excel.processor - INFO - 从商品名称推断规格: 有友泡椒牛皮晶山椒70g@ -> 70*None, 包装数量=70 +2026-03-31 10:59:54,897 - app.core.excel.processor - INFO - 从商品名称推断规格: 许之郎猪蹄盐焗味150g -> 150*None, 包装数量=150 +2026-03-31 10:59:54,901 - app.core.excel.processor - INFO - 从商品名称推断规格: 160g东莱辣卤猪蹄 -> 160*None, 包装数量=160 +2026-03-31 10:59:54,902 - app.core.excel.processor - INFO - 从商品名称推断规格: 杨记麻辣腿100g -> 100*None, 包装数量=100 +2026-03-31 10:59:54,905 - app.core.excel.processor - INFO - 从商品名称推断规格: 周小贱功夫鸭脖黑鸭味55g -> 55*None, 包装数量=55 +2026-03-31 10:59:54,907 - app.core.excel.processor - INFO - 从商品名称推断规格: 老灶煮花生400g -> 400*None, 包装数量=400 +2026-03-31 10:59:54,910 - app.core.excel.processor - INFO - 从商品名称推断规格: 老灶花生186g -> 186*None, 包装数量=186 +2026-03-31 10:59:54,912 - app.core.excel.processor - INFO - 从商品名称推断规格: 老灶煮花生蒜香味130g -> 130*None, 包装数量=130 +2026-03-31 10:59:54,914 - app.core.excel.processor - INFO - 从商品名称推断规格: 香香嘴卤制豆腐干香辣味80g@ -> 80*None, 包装数量=80 +2026-03-31 10:59:54,917 - app.core.excel.processor - INFO - 从商品名称推断规格: 香香嘴卤制豆腐干五香味80g@ -> 80*None, 包装数量=80 +2026-03-31 10:59:54,920 - app.core.excel.processor - INFO - 从商品名称推断规格: 80g千百度啦咝豆干(麻辣味) -> 80*None, 包装数量=80 +2026-03-31 10:59:54,924 - app.core.excel.processor - INFO - 从商品名称推断规格: 洽洽瓜子焦糖味@108g -> 108*None, 包装数量=108 +2026-03-31 10:59:54,926 - app.core.excel.processor - INFO - 从商品名称推断规格: 洽洽奶香瓜子285g@ -> 285*None, 包装数量=285 +2026-03-31 10:59:54,929 - app.core.excel.processor - INFO - 从商品名称推断规格: 洽洽香瓜子260g@ -> 260*None, 包装数量=260 +2026-03-31 10:59:54,932 - app.core.excel.processor - INFO - 从商品名称推断规格: 徽记生瓜子涨115g -> 115*None, 包装数量=115 +2026-03-31 10:59:54,935 - app.core.excel.processor - INFO - 从商品名称推断规格: 老程华重庆怪味胡豆190g -> 190*None, 包装数量=190 +2026-03-31 10:59:54,938 - app.core.excel.processor - INFO - 从商品名称推断规格: 维巧九制梅肉透明装110g -> 110*None, 包装数量=110 +2026-03-31 10:59:54,940 - app.core.excel.processor - INFO - 从商品名称推断规格: 五哥牛皮糖原味140g -> 140*None, 包装数量=140 +2026-03-31 10:59:54,943 - app.core.excel.processor - INFO - 从商品名称推断规格: 大白兔奶糖114g@ -> 114*None, 包装数量=114 +2026-03-31 10:59:54,945 - app.core.excel.processor - INFO - 从商品名称推断规格: 素味居山椒土豆80g -> 80*None, 包装数量=80 +2026-03-31 10:59:54,946 - app.core.excel.processor - INFO - 从商品名称推断规格: 有友泡椒凤爪山椒味210g@ -> 210*None, 包装数量=210 +2026-03-31 10:59:54,949 - app.core.excel.processor - INFO - 从商品名称推断规格: 丫丫队长鸡脚筋老卤盐焗味50g -> 50*None, 包装数量=50 +2026-03-31 10:59:54,951 - app.core.excel.processor - INFO - 从商品名称推断规格: 有友山椒竹笋120g@ -> 120*None, 包装数量=120 +2026-03-31 10:59:54,954 - app.core.excel.processor - INFO - 从商品名称推断规格: 有友泡椒笋尖泡椒100g@ -> 100*None, 包装数量=100 +2026-03-31 10:59:54,956 - app.core.excel.processor - INFO - 从商品名称推断规格: 素味居泡山椒笋尖100g -> 100*None, 包装数量=100 +2026-03-31 10:59:54,959 - app.core.excel.processor - INFO - 从商品名称推断规格: 吴氏远久猫耳朵192g -> 192*None, 包装数量=192 +2026-03-31 10:59:54,960 - app.core.excel.processor - INFO - 从商品名称推断规格: 寻唐记锅巴麻辣味70g -> 70*None, 包装数量=70 +2026-03-31 10:59:54,962 - app.core.excel.processor - INFO - 从商品名称推断规格: 好时达地摊锅巴豪横高辣味108g -> 108*None, 包装数量=108 +2026-03-31 10:59:54,965 - app.core.excel.processor - INFO - 从商品名称推断规格: 美好火腿肠56g@ -> 56*None, 包装数量=56 +2026-03-31 10:59:54,968 - app.core.excel.processor - INFO - 从商品名称推断规格: 卫龙亲嘴烧川香风味24g@ -> 24*None, 包装数量=24 +2026-03-31 10:59:54,970 - app.core.excel.processor - INFO - 从商品名称推断规格: 魔法士脆士可挡疯狂烤肉味35g -> 35*None, 包装数量=35 +2026-03-31 10:59:54,973 - app.core.excel.processor - INFO - 从商品名称推断规格: 美好甜玉米90g@ -> 90*None, 包装数量=90 +2026-03-31 10:59:54,974 - app.core.excel.processor - INFO - 提取到 98 个商品信息 +2026-03-31 10:59:54,980 - app.core.excel.processor - INFO - 开始处理98 个产品信息 +2026-03-31 10:59:54,981 - app.core.excel.processor - INFO - 处理商品: 条码=69021343, 数量=20.0, 单价=2.05, 是否赠品=False +2026-03-31 10:59:54,981 - app.core.excel.processor - INFO - 发现正常商品:条码69021343, 数量=20.0, 单价=2.05 +2026-03-31 10:59:54,982 - app.core.excel.processor - INFO - 处理商品: 条码=6954432711437, 数量=9.0, 单价=8.38, 是否赠品=False +2026-03-31 10:59:54,982 - app.core.excel.processor - INFO - 发现正常商品:条码6954432711437, 数量=9.0, 单价=8.38 +2026-03-31 10:59:54,982 - app.core.excel.processor - INFO - 处理商品: 条码=6901668935748, 数量=5.0, 单价=4.95, 是否赠品=False +2026-03-31 10:59:54,983 - app.core.excel.processor - INFO - 发现正常商品:条码6901668935748, 数量=5.0, 单价=4.95 +2026-03-31 10:59:54,983 - app.core.excel.processor - INFO - 处理商品: 条码=6901668005892, 数量=5.0, 单价=4.75, 是否赠品=False +2026-03-31 10:59:54,983 - app.core.excel.processor - INFO - 发现正常商品:条码6901668005892, 数量=5.0, 单价=4.75 +2026-03-31 10:59:54,984 - app.core.excel.processor - INFO - 处理商品: 条码=6901668934901, 数量=4.0, 单价=6.19, 是否赠品=False +2026-03-31 10:59:54,984 - app.core.excel.processor - INFO - 发现正常商品:条码6901668934901, 数量=4.0, 单价=6.19 +2026-03-31 10:59:54,984 - app.core.excel.processor - INFO - 处理商品: 条码=6926475200995, 数量=5.0, 单价=3.0, 是否赠品=False +2026-03-31 10:59:54,984 - app.core.excel.processor - INFO - 发现正常商品:条码6926475200995, 数量=5.0, 单价=3.0 +2026-03-31 10:59:54,985 - app.core.excel.processor - INFO - 处理商品: 条码=6947929617152, 数量=5.0, 单价=2.67, 是否赠品=False +2026-03-31 10:59:54,985 - app.core.excel.processor - INFO - 发现正常商品:条码6947929617152, 数量=5.0, 单价=2.67 +2026-03-31 10:59:54,986 - app.core.excel.processor - INFO - 处理商品: 条码=6901668200303, 数量=3.0, 单价=3.33, 是否赠品=False +2026-03-31 10:59:54,986 - app.core.excel.processor - INFO - 发现正常商品:条码6901668200303, 数量=3.0, 单价=3.33 +2026-03-31 10:59:54,987 - app.core.excel.processor - INFO - 处理商品: 条码=6934235600466, 数量=5.0, 单价=1.33, 是否赠品=False +2026-03-31 10:59:54,987 - app.core.excel.processor - INFO - 发现正常商品:条码6934235600466, 数量=5.0, 单价=1.33 +2026-03-31 10:59:54,987 - app.core.excel.processor - INFO - 处理商品: 条码=6911988005205, 数量=3.0, 单价=1.97, 是否赠品=False +2026-03-31 10:59:54,987 - app.core.excel.processor - INFO - 发现正常商品:条码6911988005205, 数量=3.0, 单价=1.97 +2026-03-31 10:59:54,987 - app.core.excel.processor - INFO - 处理商品: 条码=6911988000279, 数量=2.0, 单价=3.33, 是否赠品=False +2026-03-31 10:59:54,988 - app.core.excel.processor - INFO - 发现正常商品:条码6911988000279, 数量=2.0, 单价=3.33 +2026-03-31 10:59:54,989 - app.core.excel.processor - INFO - 处理商品: 条码=6911988000293, 数量=2.0, 单价=3.33, 是否赠品=False +2026-03-31 10:59:54,989 - app.core.excel.processor - INFO - 发现正常商品:条码6911988000293, 数量=2.0, 单价=3.33 +2026-03-31 10:59:54,989 - app.core.excel.processor - INFO - 处理商品: 条码=6911988009784, 数量=3.0, 单价=2.5, 是否赠品=False +2026-03-31 10:59:54,990 - app.core.excel.processor - INFO - 发现正常商品:条码6911988009784, 数量=3.0, 单价=2.5 +2026-03-31 10:59:54,990 - app.core.excel.processor - INFO - 处理商品: 条码=6911988009777, 数量=3.0, 单价=2.5, 是否赠品=False +2026-03-31 10:59:54,990 - app.core.excel.processor - INFO - 发现正常商品:条码6911988009777, 数量=3.0, 单价=2.5 +2026-03-31 10:59:54,991 - app.core.excel.processor - INFO - 处理商品: 条码=6919892633101, 数量=4.0, 单价=4.42, 是否赠品=False +2026-03-31 10:59:54,991 - app.core.excel.processor - INFO - 发现正常商品:条码6919892633101, 数量=4.0, 单价=4.42 +2026-03-31 10:59:54,991 - app.core.excel.processor - INFO - 处理商品: 条码=6934364800737, 数量=3.0, 单价=4.09, 是否赠品=False +2026-03-31 10:59:54,992 - app.core.excel.processor - INFO - 发现正常商品:条码6934364800737, 数量=3.0, 单价=4.09 +2026-03-31 10:59:54,992 - app.core.excel.processor - INFO - 处理商品: 条码=6920546800053, 数量=5.0, 单价=4.28, 是否赠品=False +2026-03-31 10:59:54,992 - app.core.excel.processor - INFO - 发现正常商品:条码6920546800053, 数量=5.0, 单价=4.28 +2026-03-31 10:59:54,992 - app.core.excel.processor - INFO - 处理商品: 条码=6920546800046, 数量=3.0, 单价=3.76, 是否赠品=False +2026-03-31 10:59:54,993 - app.core.excel.processor - INFO - 发现正常商品:条码6920546800046, 数量=3.0, 单价=3.76 +2026-03-31 10:59:54,993 - app.core.excel.processor - INFO - 处理商品: 条码=6932024200781, 数量=10.0, 单价=0.62, 是否赠品=False +2026-03-31 10:59:54,994 - app.core.excel.processor - INFO - 发现正常商品:条码6932024200781, 数量=10.0, 单价=0.62 +2026-03-31 10:59:54,994 - app.core.excel.processor - INFO - 处理商品: 条码=6921233902166, 数量=3.0, 单价=3.81, 是否赠品=False +2026-03-31 10:59:54,995 - app.core.excel.processor - INFO - 发现正常商品:条码6921233902166, 数量=3.0, 单价=3.81 +2026-03-31 10:59:54,995 - app.core.excel.processor - INFO - 处理商品: 条码=6970478370285, 数量=4.0, 单价=6.47, 是否赠品=False +2026-03-31 10:59:54,995 - app.core.excel.processor - INFO - 发现正常商品:条码6970478370285, 数量=4.0, 单价=6.47 +2026-03-31 10:59:54,995 - app.core.excel.processor - INFO - 处理商品: 条码=6917878009254, 数量=32.0, 单价=0.91, 是否赠品=False +2026-03-31 10:59:54,996 - app.core.excel.processor - INFO - 发现正常商品:条码6917878009254, 数量=32.0, 单价=0.91 +2026-03-31 10:59:54,996 - app.core.excel.processor - INFO - 处理商品: 条码=6935284455588, 数量=20.0, 单价=0.51, 是否赠品=False +2026-03-31 10:59:54,997 - app.core.excel.processor - INFO - 发现正常商品:条码6935284455588, 数量=20.0, 单价=0.51 +2026-03-31 10:59:54,997 - app.core.excel.processor - INFO - 处理商品: 条码=6935284455557, 数量=20.0, 单价=0.51, 是否赠品=False +2026-03-31 10:59:54,997 - app.core.excel.processor - INFO - 发现正常商品:条码6935284455557, 数量=20.0, 单价=0.51 +2026-03-31 10:59:54,998 - app.core.excel.processor - INFO - 处理商品: 条码=6935284401370, 数量=20.0, 单价=0.52, 是否赠品=False +2026-03-31 10:59:54,998 - app.core.excel.processor - INFO - 发现正常商品:条码6935284401370, 数量=20.0, 单价=0.52 +2026-03-31 10:59:54,998 - app.core.excel.processor - INFO - 处理商品: 条码=6975152091562, 数量=20.0, 单价=2.19, 是否赠品=False +2026-03-31 10:59:54,999 - app.core.excel.processor - INFO - 发现正常商品:条码6975152091562, 数量=20.0, 单价=2.19 +2026-03-31 10:59:54,999 - app.core.excel.processor - INFO - 处理商品: 条码=6975152091579, 数量=20.0, 单价=2.19, 是否赠品=False +2026-03-31 10:59:54,999 - app.core.excel.processor - INFO - 发现正常商品:条码6975152091579, 数量=20.0, 单价=2.19 +2026-03-31 10:59:55,000 - app.core.excel.processor - INFO - 处理商品: 条码=6922170800850, 数量=20.0, 单价=0.71, 是否赠品=False +2026-03-31 10:59:55,000 - app.core.excel.processor - INFO - 发现正常商品:条码6922170800850, 数量=20.0, 单价=0.71 +2026-03-31 10:59:55,000 - app.core.excel.processor - INFO - 处理商品: 条码=6922170800638, 数量=20.0, 单价=0.71, 是否赠品=False +2026-03-31 10:59:55,001 - app.core.excel.processor - INFO - 发现正常商品:条码6922170800638, 数量=20.0, 单价=0.71 +2026-03-31 10:59:55,001 - app.core.excel.processor - INFO - 处理商品: 条码=6971258743886, 数量=40.0, 单价=0.62, 是否赠品=False +2026-03-31 10:59:55,001 - app.core.excel.processor - INFO - 发现正常商品:条码6971258743886, 数量=40.0, 单价=0.62 +2026-03-31 10:59:55,002 - app.core.excel.processor - INFO - 处理商品: 条码=6951957205779, 数量=20.0, 单价=0.68, 是否赠品=False +2026-03-31 10:59:55,002 - app.core.excel.processor - INFO - 发现正常商品:条码6951957205779, 数量=20.0, 单价=0.68 +2026-03-31 10:59:55,002 - app.core.excel.processor - INFO - 处理商品: 条码=6951957205786, 数量=20.0, 单价=0.65, 是否赠品=False +2026-03-31 10:59:55,003 - app.core.excel.processor - INFO - 发现正常商品:条码6951957205786, 数量=20.0, 单价=0.65 +2026-03-31 10:59:55,003 - app.core.excel.processor - INFO - 处理商品: 条码=6951957205793, 数量=20.0, 单价=0.68, 是否赠品=False +2026-03-31 10:59:55,003 - app.core.excel.processor - INFO - 发现正常商品:条码6951957205793, 数量=20.0, 单价=0.68 +2026-03-31 10:59:55,003 - app.core.excel.processor - INFO - 处理商品: 条码=6951957217307, 数量=20.0, 单价=1.14, 是否赠品=False +2026-03-31 10:59:55,003 - app.core.excel.processor - INFO - 发现正常商品:条码6951957217307, 数量=20.0, 单价=1.14 +2026-03-31 10:59:55,005 - app.core.excel.processor - INFO - 处理商品: 条码=6951957215723, 数量=20.0, 单价=1.14, 是否赠品=False +2026-03-31 10:59:55,005 - app.core.excel.processor - INFO - 发现正常商品:条码6951957215723, 数量=20.0, 单价=1.14 +2026-03-31 10:59:55,005 - app.core.excel.processor - INFO - 处理商品: 条码=6971258740373, 数量=20.0, 单价=0.58, 是否赠品=False +2026-03-31 10:59:55,006 - app.core.excel.processor - INFO - 发现正常商品:条码6971258740373, 数量=20.0, 单价=0.58 +2026-03-31 10:59:55,006 - app.core.excel.processor - INFO - 处理商品: 条码=6922222020168, 数量=5.0, 单价=5.33, 是否赠品=False +2026-03-31 10:59:55,006 - app.core.excel.processor - INFO - 发现正常商品:条码6922222020168, 数量=5.0, 单价=5.33 +2026-03-31 10:59:55,007 - app.core.excel.processor - INFO - 处理商品: 条码=6922222020267, 数量=6.0, 单价=5.33, 是否赠品=False +2026-03-31 10:59:55,007 - app.core.excel.processor - INFO - 发现正常商品:条码6922222020267, 数量=6.0, 单价=5.33 +2026-03-31 10:59:55,007 - app.core.excel.processor - INFO - 处理商品: 条码=6922222021868, 数量=6.0, 单价=5.33, 是否赠品=False +2026-03-31 10:59:55,008 - app.core.excel.processor - INFO - 发现正常商品:条码6922222021868, 数量=6.0, 单价=5.33 +2026-03-31 10:59:55,008 - app.core.excel.processor - INFO - 处理商品: 条码=6922222098952, 数量=5.0, 单价=5.33, 是否赠品=False +2026-03-31 10:59:55,008 - app.core.excel.processor - INFO - 发现正常商品:条码6922222098952, 数量=5.0, 单价=5.33 +2026-03-31 10:59:55,008 - app.core.excel.processor - INFO - 处理商品: 条码=6924743919211, 数量=6.0, 单价=4.18, 是否赠品=False +2026-03-31 10:59:55,009 - app.core.excel.processor - INFO - 发现正常商品:条码6924743919211, 数量=6.0, 单价=4.18 +2026-03-31 10:59:55,010 - app.core.excel.processor - INFO - 处理商品: 条码=6924743919242, 数量=6.0, 单价=4.18, 是否赠品=False +2026-03-31 10:59:55,011 - app.core.excel.processor - INFO - 发现正常商品:条码6924743919242, 数量=6.0, 单价=4.18 +2026-03-31 10:59:55,011 - app.core.excel.processor - INFO - 处理商品: 条码=6953663018957, 数量=5.0, 单价=8.57, 是否赠品=False +2026-03-31 10:59:55,011 - app.core.excel.processor - INFO - 发现正常商品:条码6953663018957, 数量=5.0, 单价=8.57 +2026-03-31 10:59:55,011 - app.core.excel.processor - INFO - 处理商品: 条码=6920713212641, 数量=3.0, 单价=8.47, 是否赠品=False +2026-03-31 10:59:55,012 - app.core.excel.processor - INFO - 发现正常商品:条码6920713212641, 数量=3.0, 单价=8.47 +2026-03-31 10:59:55,013 - app.core.excel.processor - INFO - 处理商品: 条码=6972636670602, 数量=3.0, 单价=10.38, 是否赠品=False +2026-03-31 10:59:55,013 - app.core.excel.processor - INFO - 发现正常商品:条码6972636670602, 数量=3.0, 单价=10.38 +2026-03-31 10:59:55,013 - app.core.excel.processor - INFO - 处理商品: 条码=6972636670213, 数量=5.0, 单价=10.38, 是否赠品=False +2026-03-31 10:59:55,014 - app.core.excel.processor - INFO - 发现正常商品:条码6972636670213, 数量=5.0, 单价=10.38 +2026-03-31 10:59:55,014 - app.core.excel.processor - INFO - 处理商品: 条码=6972636670237, 数量=4.0, 单价=10.38, 是否赠品=False +2026-03-31 10:59:55,014 - app.core.excel.processor - INFO - 发现正常商品:条码6972636670237, 数量=4.0, 单价=10.38 +2026-03-31 10:59:55,015 - app.core.excel.processor - INFO - 处理商品: 条码=6972636670244, 数量=2.0, 单价=10.38, 是否赠品=False +2026-03-31 10:59:55,015 - app.core.excel.processor - INFO - 发现正常商品:条码6972636670244, 数量=2.0, 单价=10.38 +2026-03-31 10:59:55,016 - app.core.excel.processor - INFO - 处理商品: 条码=6970813651017, 数量=4.0, 单价=3.81, 是否赠品=False +2026-03-31 10:59:55,016 - app.core.excel.processor - INFO - 发现正常商品:条码6970813651017, 数量=4.0, 单价=3.81 +2026-03-31 10:59:55,016 - app.core.excel.processor - INFO - 处理商品: 条码=6957845201106, 数量=6.0, 单价=2.86, 是否赠品=False +2026-03-31 10:59:55,017 - app.core.excel.processor - INFO - 发现正常商品:条码6957845201106, 数量=6.0, 单价=2.86 +2026-03-31 10:59:55,017 - app.core.excel.processor - INFO - 处理商品: 条码=6924128100388, 数量=3.0, 单价=4.76, 是否赠品=False +2026-03-31 10:59:55,017 - app.core.excel.processor - INFO - 发现正常商品:条码6924128100388, 数量=3.0, 单价=4.76 +2026-03-31 10:59:55,017 - app.core.excel.processor - INFO - 处理商品: 条码=6953663025481, 数量=3.0, 单价=7.81, 是否赠品=False +2026-03-31 10:59:55,018 - app.core.excel.processor - INFO - 发现正常商品:条码6953663025481, 数量=3.0, 单价=7.81 +2026-03-31 10:59:55,019 - app.core.excel.processor - INFO - 处理商品: 条码=6975319460583, 数量=6.0, 单价=2.95, 是否赠品=False +2026-03-31 10:59:55,020 - app.core.excel.processor - INFO - 发现正常商品:条码6975319460583, 数量=6.0, 单价=2.95 +2026-03-31 10:59:55,020 - app.core.excel.processor - INFO - 处理商品: 条码=6922170800072, 数量=5.0, 单价=1.52, 是否赠品=False +2026-03-31 10:59:55,020 - app.core.excel.processor - INFO - 发现正常商品:条码6922170800072, 数量=5.0, 单价=1.52 +2026-03-31 10:59:55,021 - app.core.excel.processor - INFO - 处理商品: 条码=6952561810113, 数量=10.0, 单价=2.09, 是否赠品=False +2026-03-31 10:59:55,021 - app.core.excel.processor - INFO - 发现正常商品:条码6952561810113, 数量=10.0, 单价=2.09 +2026-03-31 10:59:55,021 - app.core.excel.processor - INFO - 处理商品: 条码=6979260656705, 数量=6.0, 单价=1.33, 是否赠品=False +2026-03-31 10:59:55,022 - app.core.excel.processor - INFO - 发现正常商品:条码6979260656705, 数量=6.0, 单价=1.33 +2026-03-31 10:59:55,022 - app.core.excel.processor - INFO - 处理商品: 条码=6970495450090, 数量=4.0, 单价=2.29, 是否赠品=False +2026-03-31 10:59:55,022 - app.core.excel.processor - INFO - 发现正常商品:条码6970495450090, 数量=4.0, 单价=2.29 +2026-03-31 10:59:55,023 - app.core.excel.processor - INFO - 处理商品: 条码=6918768000221, 数量=4.0, 单价=1.71, 是否赠品=False +2026-03-31 10:59:55,024 - app.core.excel.processor - INFO - 发现正常商品:条码6918768000221, 数量=4.0, 单价=1.71 +2026-03-31 10:59:55,024 - app.core.excel.processor - INFO - 处理商品: 条码=6935284415667, 数量=6.0, 单价=2.91, 是否赠品=False +2026-03-31 10:59:55,024 - app.core.excel.processor - INFO - 发现正常商品:条码6935284415667, 数量=6.0, 单价=2.91 +2026-03-31 10:59:55,025 - app.core.excel.processor - INFO - 处理商品: 条码=6935284412918, 数量=5.0, 单价=2.91, 是否赠品=False +2026-03-31 10:59:55,025 - app.core.excel.processor - INFO - 发现正常商品:条码6935284412918, 数量=5.0, 单价=2.91 +2026-03-31 10:59:55,025 - app.core.excel.processor - INFO - 处理商品: 条码=6928822302901, 数量=5.0, 单价=1.43, 是否赠品=False +2026-03-31 10:59:55,026 - app.core.excel.processor - INFO - 发现正常商品:条码6928822302901, 数量=5.0, 单价=1.43 +2026-03-31 10:59:55,026 - app.core.excel.processor - INFO - 处理商品: 条码=6935284415650, 数量=7.0, 单价=2.47, 是否赠品=False +2026-03-31 10:59:55,026 - app.core.excel.processor - INFO - 发现正常商品:条码6935284415650, 数量=7.0, 单价=2.47 +2026-03-31 10:59:55,027 - app.core.excel.processor - INFO - 处理商品: 条码=6974107050067, 数量=6.0, 单价=2.09, 是否赠品=False +2026-03-31 10:59:55,027 - app.core.excel.processor - INFO - 发现正常商品:条码6974107050067, 数量=6.0, 单价=2.09 +2026-03-31 10:59:55,028 - app.core.excel.processor - INFO - 处理商品: 条码=6935041525387, 数量=5.0, 单价=5.24, 是否赠品=False +2026-03-31 10:59:55,028 - app.core.excel.processor - INFO - 发现正常商品:条码6935041525387, 数量=5.0, 单价=5.24 +2026-03-31 10:59:55,028 - app.core.excel.processor - INFO - 处理商品: 条码=6938830600159, 数量=2.0, 单价=2.38, 是否赠品=False +2026-03-31 10:59:55,029 - app.core.excel.processor - INFO - 发现正常商品:条码6938830600159, 数量=2.0, 单价=2.38 +2026-03-31 10:59:55,029 - app.core.excel.processor - INFO - 处理商品: 条码=6944978700286, 数量=5.0, 单价=3.51, 是否赠品=False +2026-03-31 10:59:55,029 - app.core.excel.processor - INFO - 发现正常商品:条码6944978700286, 数量=5.0, 单价=3.51 +2026-03-31 10:59:55,030 - app.core.excel.processor - INFO - 处理商品: 条码=6952145601076, 数量=2.0, 单价=9.52, 是否赠品=False +2026-03-31 10:59:55,030 - app.core.excel.processor - INFO - 发现正常商品:条码6952145601076, 数量=2.0, 单价=9.52 +2026-03-31 10:59:55,030 - app.core.excel.processor - INFO - 处理商品: 条码=6923512599432, 数量=2.0, 单价=10.28, 是否赠品=False +2026-03-31 10:59:55,031 - app.core.excel.processor - INFO - 发现正常商品:条码6923512599432, 数量=2.0, 单价=10.28 +2026-03-31 10:59:55,031 - app.core.excel.processor - INFO - 处理商品: 条码=6970813650164, 数量=3.0, 单价=5.05, 是否赠品=False +2026-03-31 10:59:55,031 - app.core.excel.processor - INFO - 发现正常商品:条码6970813650164, 数量=3.0, 单价=5.05 +2026-03-31 10:59:55,032 - app.core.excel.processor - INFO - 处理商品: 条码=6972158461146, 数量=3.0, 单价=4.28, 是否赠品=False +2026-03-31 10:59:55,032 - app.core.excel.processor - INFO - 发现正常商品:条码6972158461146, 数量=3.0, 单价=4.28 +2026-03-31 10:59:55,032 - app.core.excel.processor - INFO - 处理商品: 条码=6938029400010, 数量=3.0, 单价=8.76, 是否赠品=False +2026-03-31 10:59:55,032 - app.core.excel.processor - INFO - 发现正常商品:条码6938029400010, 数量=3.0, 单价=8.76 +2026-03-31 10:59:55,033 - app.core.excel.processor - INFO - 处理商品: 条码=6938029400096, 数量=6.0, 单价=4.9, 是否赠品=False +2026-03-31 10:59:55,033 - app.core.excel.processor - INFO - 发现正常商品:条码6938029400096, 数量=6.0, 单价=4.9 +2026-03-31 10:59:55,033 - app.core.excel.processor - INFO - 处理商品: 条码=6938029400584, 数量=5.0, 单价=3.5, 是否赠品=False +2026-03-31 10:59:55,034 - app.core.excel.processor - INFO - 发现正常商品:条码6938029400584, 数量=5.0, 单价=3.5 +2026-03-31 10:59:55,034 - app.core.excel.processor - INFO - 处理商品: 条码=6923696800645, 数量=5.0, 单价=2.67, 是否赠品=False +2026-03-31 10:59:55,034 - app.core.excel.processor - INFO - 发现正常商品:条码6923696800645, 数量=5.0, 单价=2.67 +2026-03-31 10:59:55,035 - app.core.excel.processor - INFO - 处理商品: 条码=6923696800638, 数量=5.0, 单价=2.67, 是否赠品=False +2026-03-31 10:59:55,035 - app.core.excel.processor - INFO - 发现正常商品:条码6923696800638, 数量=5.0, 单价=2.67 +2026-03-31 10:59:55,035 - app.core.excel.processor - INFO - 处理商品: 条码=6925998800804, 数量=4.0, 单价=2.53, 是否赠品=False +2026-03-31 10:59:55,036 - app.core.excel.processor - INFO - 发现正常商品:条码6925998800804, 数量=4.0, 单价=2.53 +2026-03-31 10:59:55,036 - app.core.excel.processor - INFO - 处理商品: 条码=6924187851160, 数量=5.0, 单价=5.07, 是否赠品=False +2026-03-31 10:59:55,036 - app.core.excel.processor - INFO - 发现正常商品:条码6924187851160, 数量=5.0, 单价=5.07 +2026-03-31 10:59:55,037 - app.core.excel.processor - INFO - 处理商品: 条码=6924187824959, 数量=4.0, 单价=9.65, 是否赠品=False +2026-03-31 10:59:55,037 - app.core.excel.processor - INFO - 发现正常商品:条码6924187824959, 数量=4.0, 单价=9.65 +2026-03-31 10:59:55,037 - app.core.excel.processor - INFO - 处理商品: 条码=6924187821644, 数量=3.0, 单价=8.57, 是否赠品=False +2026-03-31 10:59:55,038 - app.core.excel.processor - INFO - 发现正常商品:条码6924187821644, 数量=3.0, 单价=8.57 +2026-03-31 10:59:55,038 - app.core.excel.processor - INFO - 处理商品: 条码=6927849455553, 数量=5.0, 单价=4.09, 是否赠品=False +2026-03-31 10:59:55,038 - app.core.excel.processor - INFO - 发现正常商品:条码6927849455553, 数量=5.0, 单价=4.09 +2026-03-31 10:59:55,039 - app.core.excel.processor - INFO - 处理商品: 条码=6938270511886, 数量=3.0, 单价=3.9, 是否赠品=False +2026-03-31 10:59:55,039 - app.core.excel.processor - INFO - 发现正常商品:条码6938270511886, 数量=3.0, 单价=3.9 +2026-03-31 10:59:55,039 - app.core.excel.processor - INFO - 处理商品: 条码=6943466905660, 数量=3.0, 单价=3.71, 是否赠品=False +2026-03-31 10:59:55,040 - app.core.excel.processor - INFO - 发现正常商品:条码6943466905660, 数量=3.0, 单价=3.71 +2026-03-31 10:59:55,040 - app.core.excel.processor - INFO - 处理商品: 条码=6939319700162, 数量=3.0, 单价=3.43, 是否赠品=False +2026-03-31 10:59:55,041 - app.core.excel.processor - INFO - 发现正常商品:条码6939319700162, 数量=3.0, 单价=3.43 +2026-03-31 10:59:55,041 - app.core.excel.processor - INFO - 处理商品: 条码=6922024730029, 数量=3.0, 单价=5.7, 是否赠品=False +2026-03-31 10:59:55,041 - app.core.excel.processor - INFO - 发现正常商品:条码6922024730029, 数量=3.0, 单价=5.7 +2026-03-31 10:59:55,042 - app.core.excel.processor - INFO - 处理商品: 条码=6940509101645, 数量=5.0, 单价=1.33, 是否赠品=False +2026-03-31 10:59:55,042 - app.core.excel.processor - INFO - 发现正常商品:条码6940509101645, 数量=5.0, 单价=1.33 +2026-03-31 10:59:55,042 - app.core.excel.processor - INFO - 处理商品: 条码=6922145801325, 数量=4.0, 单价=12.66, 是否赠品=False +2026-03-31 10:59:55,043 - app.core.excel.processor - INFO - 发现正常商品:条码6922145801325, 数量=4.0, 单价=12.66 +2026-03-31 10:59:55,043 - app.core.excel.processor - INFO - 处理商品: 条码=6953755600398, 数量=4.0, 单价=2.38, 是否赠品=False +2026-03-31 10:59:55,043 - app.core.excel.processor - INFO - 发现正常商品:条码6953755600398, 数量=4.0, 单价=2.38 +2026-03-31 10:59:55,043 - app.core.excel.processor - INFO - 处理商品: 条码=6922145800113, 数量=5.0, 单价=2.75, 是否赠品=False +2026-03-31 10:59:55,044 - app.core.excel.processor - INFO - 发现正常商品:条码6922145800113, 数量=5.0, 单价=2.75 +2026-03-31 10:59:55,044 - app.core.excel.processor - INFO - 处理商品: 条码=6944978701252, 数量=4.0, 单价=3.95, 是否赠品=False +2026-03-31 10:59:55,045 - app.core.excel.processor - INFO - 发现正常商品:条码6944978701252, 数量=4.0, 单价=3.95 +2026-03-31 10:59:55,045 - app.core.excel.processor - INFO - 处理商品: 条码=6940509101737, 数量=6.0, 单价=2.72, 是否赠品=False +2026-03-31 10:59:55,045 - app.core.excel.processor - INFO - 发现正常商品:条码6940509101737, 数量=6.0, 单价=2.72 +2026-03-31 10:59:55,045 - app.core.excel.processor - INFO - 处理商品: 条码=6933319064002, 数量=2.0, 单价=2.47, 是否赠品=False +2026-03-31 10:59:55,046 - app.core.excel.processor - INFO - 发现正常商品:条码6933319064002, 数量=2.0, 单价=2.47 +2026-03-31 10:59:55,046 - app.core.excel.processor - INFO - 处理商品: 条码=6932459700023, 数量=3.0, 单价=1.9, 是否赠品=False +2026-03-31 10:59:55,046 - app.core.excel.processor - INFO - 发现正常商品:条码6932459700023, 数量=3.0, 单价=1.9 +2026-03-31 10:59:55,047 - app.core.excel.processor - INFO - 处理商品: 条码=6970798321714, 数量=4.0, 单价=2.48, 是否赠品=False +2026-03-31 10:59:55,047 - app.core.excel.processor - INFO - 发现正常商品:条码6970798321714, 数量=4.0, 单价=2.48 +2026-03-31 10:59:55,047 - app.core.excel.processor - INFO - 处理商品: 条码=6941760901500, 数量=80.0, 单价=1.37, 是否赠品=False +2026-03-31 10:59:55,048 - app.core.excel.processor - INFO - 发现正常商品:条码6941760901500, 数量=80.0, 单价=1.37 +2026-03-31 10:59:55,048 - app.core.excel.processor - INFO - 处理商品: 条码=6939006488885, 数量=40.0, 单价=1.57, 是否赠品=False +2026-03-31 10:59:55,048 - app.core.excel.processor - INFO - 发现正常商品:条码6939006488885, 数量=40.0, 单价=1.57 +2026-03-31 10:59:55,049 - app.core.excel.processor - INFO - 处理商品: 条码=6935284455595, 数量=20.0, 单价=0.51, 是否赠品=False +2026-03-31 10:59:55,049 - app.core.excel.processor - INFO - 发现正常商品:条码6935284455595, 数量=20.0, 单价=0.51 +2026-03-31 10:59:55,051 - app.core.excel.processor - INFO - 处理商品: 条码=6901715297980, 数量=30.0, 单价=0.76, 是否赠品=False +2026-03-31 10:59:55,051 - app.core.excel.processor - INFO - 发现正常商品:条码6901715297980, 数量=30.0, 单价=0.76 +2026-03-31 10:59:55,052 - app.core.excel.processor - INFO - 处理商品: 条码=6941760902583, 数量=2.0, 单价=0, 是否赠品=True +2026-03-31 10:59:55,052 - app.core.excel.processor - INFO - 发现赠品:条码6941760902583, 数量=2.0 +2026-03-31 10:59:55,053 - app.core.excel.processor - INFO - 分组后共98 个不同条码的商品 +2026-03-31 10:59:55,053 - app.core.excel.processor - INFO - 条码 69021343 处理结果:正常商品数量20.0,单价2.05,赠品数量0 +2026-03-31 10:59:55,053 - app.core.excel.processor - INFO - 条码 6954432711437 处理结果:正常商品数量9.0,单价8.38,赠品数量0 +2026-03-31 10:59:55,054 - app.core.excel.processor - INFO - 条码 6901668935748 处理结果:正常商品数量5.0,单价4.95,赠品数量0 +2026-03-31 10:59:55,054 - app.core.excel.processor - INFO - 条码 6901668005892 处理结果:正常商品数量5.0,单价4.75,赠品数量0 +2026-03-31 10:59:55,054 - app.core.excel.processor - INFO - 条码 6901668934901 处理结果:正常商品数量4.0,单价6.19,赠品数量0 +2026-03-31 10:59:55,054 - app.core.excel.processor - INFO - 条码 6926475200995 处理结果:正常商品数量5.0,单价3.0,赠品数量0 +2026-03-31 10:59:55,054 - app.core.excel.processor - INFO - 条码 6947929617152 处理结果:正常商品数量5.0,单价2.67,赠品数量0 +2026-03-31 10:59:55,055 - app.core.excel.processor - INFO - 条码 6901668200303 处理结果:正常商品数量3.0,单价3.33,赠品数量0 +2026-03-31 10:59:55,056 - app.core.excel.processor - INFO - 条码 6934235600466 处理结果:正常商品数量5.0,单价1.33,赠品数量0 +2026-03-31 10:59:55,056 - app.core.excel.processor - INFO - 条码 6911988005205 处理结果:正常商品数量3.0,单价1.97,赠品数量0 +2026-03-31 10:59:55,057 - app.core.excel.processor - INFO - 条码 6911988000279 处理结果:正常商品数量2.0,单价3.33,赠品数量0 +2026-03-31 10:59:55,057 - app.core.excel.processor - INFO - 条码 6911988000293 处理结果:正常商品数量2.0,单价3.33,赠品数量0 +2026-03-31 10:59:55,058 - app.core.excel.processor - INFO - 条码 6911988009784 处理结果:正常商品数量3.0,单价2.5,赠品数量0 +2026-03-31 10:59:55,058 - app.core.excel.processor - INFO - 条码 6911988009777 处理结果:正常商品数量3.0,单价2.5,赠品数量0 +2026-03-31 10:59:55,058 - app.core.excel.processor - INFO - 条码 6919892633101 处理结果:正常商品数量4.0,单价4.42,赠品数量0 +2026-03-31 10:59:55,058 - app.core.excel.processor - INFO - 条码 6934364800737 处理结果:正常商品数量3.0,单价4.09,赠品数量0 +2026-03-31 10:59:55,059 - app.core.excel.processor - INFO - 条码 6920546800053 处理结果:正常商品数量5.0,单价4.28,赠品数量0 +2026-03-31 10:59:55,059 - app.core.excel.processor - INFO - 条码 6920546800046 处理结果:正常商品数量3.0,单价3.76,赠品数量0 +2026-03-31 10:59:55,059 - app.core.excel.processor - INFO - 条码 6932024200781 处理结果:正常商品数量10.0,单价0.62,赠品数量0 +2026-03-31 10:59:55,060 - app.core.excel.processor - INFO - 条码 6921233902166 处理结果:正常商品数量3.0,单价3.81,赠品数量0 +2026-03-31 10:59:55,060 - app.core.excel.processor - INFO - 条码 6970478370285 处理结果:正常商品数量4.0,单价6.47,赠品数量0 +2026-03-31 10:59:55,061 - app.core.excel.processor - INFO - 条码 6917878009254 处理结果:正常商品数量32.0,单价0.91,赠品数量0 +2026-03-31 10:59:55,061 - app.core.excel.processor - INFO - 条码 6935284455588 处理结果:正常商品数量20.0,单价0.51,赠品数量0 +2026-03-31 10:59:55,062 - app.core.excel.processor - INFO - 条码 6935284455557 处理结果:正常商品数量20.0,单价0.51,赠品数量0 +2026-03-31 10:59:55,062 - app.core.excel.processor - INFO - 条码 6935284401370 处理结果:正常商品数量20.0,单价0.52,赠品数量0 +2026-03-31 10:59:55,062 - app.core.excel.processor - INFO - 条码 6975152091562 处理结果:正常商品数量20.0,单价2.19,赠品数量0 +2026-03-31 10:59:55,063 - app.core.excel.processor - INFO - 条码 6975152091579 处理结果:正常商品数量20.0,单价2.19,赠品数量0 +2026-03-31 10:59:55,063 - app.core.excel.processor - INFO - 条码 6922170800850 处理结果:正常商品数量20.0,单价0.71,赠品数量0 +2026-03-31 10:59:55,063 - app.core.excel.processor - INFO - 条码 6922170800638 处理结果:正常商品数量20.0,单价0.71,赠品数量0 +2026-03-31 10:59:55,064 - app.core.excel.processor - INFO - 条码 6971258743886 处理结果:正常商品数量40.0,单价0.62,赠品数量0 +2026-03-31 10:59:55,064 - app.core.excel.processor - INFO - 条码 6951957205779 处理结果:正常商品数量20.0,单价0.68,赠品数量0 +2026-03-31 10:59:55,064 - app.core.excel.processor - INFO - 条码 6951957205786 处理结果:正常商品数量20.0,单价0.65,赠品数量0 +2026-03-31 10:59:55,064 - app.core.excel.processor - INFO - 条码 6951957205793 处理结果:正常商品数量20.0,单价0.68,赠品数量0 +2026-03-31 10:59:55,064 - app.core.excel.processor - INFO - 条码 6951957217307 处理结果:正常商品数量20.0,单价1.14,赠品数量0 +2026-03-31 10:59:55,065 - app.core.excel.processor - INFO - 条码 6951957215723 处理结果:正常商品数量20.0,单价1.14,赠品数量0 +2026-03-31 10:59:55,065 - app.core.excel.processor - INFO - 条码 6971258740373 处理结果:正常商品数量20.0,单价0.58,赠品数量0 +2026-03-31 10:59:55,066 - app.core.excel.processor - INFO - 条码 6922222020168 处理结果:正常商品数量5.0,单价5.33,赠品数量0 +2026-03-31 10:59:55,066 - app.core.excel.processor - INFO - 条码 6922222020267 处理结果:正常商品数量6.0,单价5.33,赠品数量0 +2026-03-31 10:59:55,066 - app.core.excel.processor - INFO - 条码 6922222021868 处理结果:正常商品数量6.0,单价5.33,赠品数量0 +2026-03-31 10:59:55,066 - app.core.excel.processor - INFO - 条码 6922222098952 处理结果:正常商品数量5.0,单价5.33,赠品数量0 +2026-03-31 10:59:55,066 - app.core.excel.processor - INFO - 条码 6924743919211 处理结果:正常商品数量6.0,单价4.18,赠品数量0 +2026-03-31 10:59:55,066 - app.core.excel.processor - INFO - 条码 6924743919242 处理结果:正常商品数量6.0,单价4.18,赠品数量0 +2026-03-31 10:59:55,068 - app.core.excel.processor - INFO - 条码 6953663018957 处理结果:正常商品数量5.0,单价8.57,赠品数量0 +2026-03-31 10:59:55,068 - app.core.excel.processor - INFO - 条码 6920713212641 处理结果:正常商品数量3.0,单价8.47,赠品数量0 +2026-03-31 10:59:55,068 - app.core.excel.processor - INFO - 条码 6972636670602 处理结果:正常商品数量3.0,单价10.38,赠品数量0 +2026-03-31 10:59:55,069 - app.core.excel.processor - INFO - 条码 6972636670213 处理结果:正常商品数量5.0,单价10.38,赠品数量0 +2026-03-31 10:59:55,069 - app.core.excel.processor - INFO - 条码 6972636670237 处理结果:正常商品数量4.0,单价10.38,赠品数量0 +2026-03-31 10:59:55,069 - app.core.excel.processor - INFO - 条码 6972636670244 处理结果:正常商品数量2.0,单价10.38,赠品数量0 +2026-03-31 10:59:55,069 - app.core.excel.processor - INFO - 条码 6970813651017 处理结果:正常商品数量4.0,单价3.81,赠品数量0 +2026-03-31 10:59:55,070 - app.core.excel.processor - INFO - 条码 6957845201106 处理结果:正常商品数量6.0,单价2.86,赠品数量0 +2026-03-31 10:59:55,070 - app.core.excel.processor - INFO - 条码 6924128100388 处理结果:正常商品数量3.0,单价4.76,赠品数量0 +2026-03-31 10:59:55,071 - app.core.excel.processor - INFO - 条码 6953663025481 处理结果:正常商品数量3.0,单价7.81,赠品数量0 +2026-03-31 10:59:55,071 - app.core.excel.processor - INFO - 条码 6975319460583 处理结果:正常商品数量6.0,单价2.95,赠品数量0 +2026-03-31 10:59:55,072 - app.core.excel.processor - INFO - 条码 6922170800072 处理结果:正常商品数量5.0,单价1.52,赠品数量0 +2026-03-31 10:59:55,072 - app.core.excel.processor - INFO - 条码 6952561810113 处理结果:正常商品数量10.0,单价2.09,赠品数量0 +2026-03-31 10:59:55,072 - app.core.excel.processor - INFO - 条码 6979260656705 处理结果:正常商品数量6.0,单价1.33,赠品数量0 +2026-03-31 10:59:55,072 - app.core.excel.processor - INFO - 条码 6970495450090 处理结果:正常商品数量4.0,单价2.29,赠品数量0 +2026-03-31 10:59:55,073 - app.core.excel.processor - INFO - 条码 6918768000221 处理结果:正常商品数量4.0,单价1.71,赠品数量0 +2026-03-31 10:59:55,073 - app.core.excel.processor - INFO - 条码 6935284415667 处理结果:正常商品数量6.0,单价2.91,赠品数量0 +2026-03-31 10:59:55,073 - app.core.excel.processor - INFO - 条码 6935284412918 处理结果:正常商品数量5.0,单价2.91,赠品数量0 +2026-03-31 10:59:55,073 - app.core.excel.processor - INFO - 条码 6928822302901 处理结果:正常商品数量5.0,单价1.43,赠品数量0 +2026-03-31 10:59:55,073 - app.core.excel.processor - INFO - 条码 6935284415650 处理结果:正常商品数量7.0,单价2.47,赠品数量0 +2026-03-31 10:59:55,075 - app.core.excel.processor - INFO - 条码 6974107050067 处理结果:正常商品数量6.0,单价2.09,赠品数量0 +2026-03-31 10:59:55,075 - app.core.excel.processor - INFO - 条码 6935041525387 处理结果:正常商品数量5.0,单价5.24,赠品数量0 +2026-03-31 10:59:55,075 - app.core.excel.processor - INFO - 条码 6938830600159 处理结果:正常商品数量2.0,单价2.38,赠品数量0 +2026-03-31 10:59:55,076 - app.core.excel.processor - INFO - 条码 6944978700286 处理结果:正常商品数量5.0,单价3.51,赠品数量0 +2026-03-31 10:59:55,076 - app.core.excel.processor - INFO - 条码 6952145601076 处理结果:正常商品数量2.0,单价9.52,赠品数量0 +2026-03-31 10:59:55,076 - app.core.excel.processor - INFO - 条码 6923512599432 处理结果:正常商品数量2.0,单价10.28,赠品数量0 +2026-03-31 10:59:55,077 - app.core.excel.processor - INFO - 条码 6970813650164 处理结果:正常商品数量3.0,单价5.05,赠品数量0 +2026-03-31 10:59:55,077 - app.core.excel.processor - INFO - 条码 6972158461146 处理结果:正常商品数量3.0,单价4.28,赠品数量0 +2026-03-31 10:59:55,077 - app.core.excel.processor - INFO - 条码 6938029400010 处理结果:正常商品数量3.0,单价8.76,赠品数量0 +2026-03-31 10:59:55,077 - app.core.excel.processor - INFO - 条码 6938029400096 处理结果:正常商品数量6.0,单价4.9,赠品数量0 +2026-03-31 10:59:55,078 - app.core.excel.processor - INFO - 条码 6938029400584 处理结果:正常商品数量5.0,单价3.5,赠品数量0 +2026-03-31 10:59:55,079 - app.core.excel.processor - INFO - 条码 6923696800645 处理结果:正常商品数量5.0,单价2.67,赠品数量0 +2026-03-31 10:59:55,080 - app.core.excel.processor - INFO - 条码 6923696800638 处理结果:正常商品数量5.0,单价2.67,赠品数量0 +2026-03-31 10:59:55,080 - app.core.excel.processor - INFO - 条码 6925998800804 处理结果:正常商品数量4.0,单价2.53,赠品数量0 +2026-03-31 10:59:55,080 - app.core.excel.processor - INFO - 条码 6924187851160 处理结果:正常商品数量5.0,单价5.07,赠品数量0 +2026-03-31 10:59:55,081 - app.core.excel.processor - INFO - 条码 6924187824959 处理结果:正常商品数量4.0,单价9.65,赠品数量0 +2026-03-31 10:59:55,081 - app.core.excel.processor - INFO - 条码 6924187821644 处理结果:正常商品数量3.0,单价8.57,赠品数量0 +2026-03-31 10:59:55,081 - app.core.excel.processor - INFO - 条码 6927849455553 处理结果:正常商品数量5.0,单价4.09,赠品数量0 +2026-03-31 10:59:55,082 - app.core.excel.processor - INFO - 条码 6938270511886 处理结果:正常商品数量3.0,单价3.9,赠品数量0 +2026-03-31 10:59:55,082 - app.core.excel.processor - INFO - 条码 6943466905660 处理结果:正常商品数量3.0,单价3.71,赠品数量0 +2026-03-31 10:59:55,082 - app.core.excel.processor - INFO - 条码 6939319700162 处理结果:正常商品数量3.0,单价3.43,赠品数量0 +2026-03-31 10:59:55,083 - app.core.excel.processor - INFO - 条码 6922024730029 处理结果:正常商品数量3.0,单价5.7,赠品数量0 +2026-03-31 10:59:55,083 - app.core.excel.processor - INFO - 条码 6940509101645 处理结果:正常商品数量5.0,单价1.33,赠品数量0 +2026-03-31 10:59:55,083 - app.core.excel.processor - INFO - 条码 6922145801325 处理结果:正常商品数量4.0,单价12.66,赠品数量0 +2026-03-31 10:59:55,084 - app.core.excel.processor - INFO - 条码 6953755600398 处理结果:正常商品数量4.0,单价2.38,赠品数量0 +2026-03-31 10:59:55,084 - app.core.excel.processor - INFO - 条码 6922145800113 处理结果:正常商品数量5.0,单价2.75,赠品数量0 +2026-03-31 10:59:55,084 - app.core.excel.processor - INFO - 条码 6944978701252 处理结果:正常商品数量4.0,单价3.95,赠品数量0 +2026-03-31 10:59:55,085 - app.core.excel.processor - INFO - 条码 6940509101737 处理结果:正常商品数量6.0,单价2.72,赠品数量0 +2026-03-31 10:59:55,085 - app.core.excel.processor - INFO - 条码 6933319064002 处理结果:正常商品数量2.0,单价2.47,赠品数量0 +2026-03-31 10:59:55,085 - app.core.excel.processor - INFO - 条码 6932459700023 处理结果:正常商品数量3.0,单价1.9,赠品数量0 +2026-03-31 10:59:55,086 - app.core.excel.processor - INFO - 条码 6970798321714 处理结果:正常商品数量4.0,单价2.48,赠品数量0 +2026-03-31 10:59:55,086 - app.core.excel.processor - INFO - 条码 6941760901500 处理结果:正常商品数量80.0,单价1.37,赠品数量0 +2026-03-31 10:59:55,086 - app.core.excel.processor - INFO - 条码 6939006488885 处理结果:正常商品数量40.0,单价1.57,赠品数量0 +2026-03-31 10:59:55,086 - app.core.excel.processor - INFO - 条码 6935284455595 处理结果:正常商品数量20.0,单价0.51,赠品数量0 +2026-03-31 10:59:55,087 - app.core.excel.processor - INFO - 条码 6901715297980 处理结果:正常商品数量30.0,单价0.76,赠品数量0 +2026-03-31 10:59:55,087 - app.core.excel.processor - INFO - 条码 6941760902583 处理结果:只有赠品,数量=2.0 +2026-03-31 10:59:55,090 - app.core.excel.processor - INFO - 条码 6941760902583 填充:仅有赠品,采购量=0,赠品数量=2.0 +2026-03-31 10:59:55,093 - app.core.excel.processor - INFO - 采购单已保存到: data/result\采购单_预处理之后_订单1774849009841.xls +2026-03-31 10:59:55,136 - app.core.excel.processor - INFO - 采购单已保存到: data/result\采购单_预处理之后_订单1774849009841.xls +2026-03-31 10:59:56,656 - app.core.excel.processor - INFO - 使用输出目录: E:\2025Code\python\orc-order-v2\data\output +2026-03-31 10:59:56,657 - app.core.excel.processor - INFO - 使用临时目录: E:\2025Code\python\orc-order-v2\data\temp +2026-03-31 10:59:56,658 - app.core.excel.processor - INFO - 初始化ExcelProcessor完成,模板文件: templates/银豹-采购单模板.xls +2026-03-31 11:01:45,694 - app.core.excel.processor - INFO - 使用输出目录: E:\2025Code\python\orc-order-v2\data\output +2026-03-31 11:01:45,695 - app.core.excel.processor - INFO - 使用临时目录: E:\2025Code\python\orc-order-v2\data\temp +2026-03-31 11:01:45,697 - app.core.excel.processor - INFO - 初始化ExcelProcessor完成,模板文件: templates/银豹-采购单模板.xls +2026-03-31 11:01:47,785 - app.core.excel.processor - INFO - 搜索目录 data/output 中的Excel文件 +2026-03-31 11:01:47,786 - app.core.excel.processor - INFO - 找到最新的Excel文件: data/output\20260331-110124.xlsx +2026-03-31 11:01:47,800 - app.core.excel.processor - INFO - 开始处理Excel文件: data/output\20260331-110124.xlsx +2026-03-31 11:01:47,808 - app.core.excel.processor - INFO - 成功读取Excel文件: data/output\20260331-110124.xlsx, 共 32 行 +2026-03-31 11:01:47,813 - app.core.excel.processor - INFO - 找到可能的表头行: 第1行,评分: 40 +2026-03-31 11:01:47,813 - app.core.excel.processor - INFO - 识别到表头在第 1 行 +2026-03-31 11:01:47,814 - app.core.excel.processor - INFO - 重新整理数据结构,共 31 行有效数据 +2026-03-31 11:01:47,814 - app.core.excel.processor - INFO - 找到精确匹配的条码列: 条码 +2026-03-31 11:01:47,815 - app.core.excel.processor - INFO - 使用条码列: 条码 +2026-03-31 11:01:47,815 - app.core.excel.processor - INFO - 找到name列(部分匹配): 商品全名 +2026-03-31 11:01:47,816 - app.core.excel.processor - INFO - 找到specification列: 规格 +2026-03-31 11:01:47,816 - app.core.excel.processor - INFO - 找到quantity列: 数量 +2026-03-31 11:01:47,817 - app.core.excel.processor - INFO - 找到unit列: 单位 +2026-03-31 11:01:47,817 - app.core.excel.processor - INFO - 找到price列: 单价 +2026-03-31 11:01:47,818 - app.core.excel.processor - INFO - 找到amount列: 金额 +2026-03-31 11:01:47,818 - app.core.excel.processor - INFO - 检测到列映射: {'barcode': '条码', 'name': '商品全名', 'specification': '规格', 'quantity': '数量', 'unit': '单位', 'price': '单价', 'amount': '金额'} +2026-03-31 11:01:47,819 - app.core.excel.processor - INFO - 解析规格: 1*24 -> 包装数量=24 +2026-03-31 11:01:47,823 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2026-03-31 11:01:47,825 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2026-03-31 11:01:47,827 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2026-03-31 11:01:47,828 - app.core.excel.processor - INFO - 解析规格: 1*20 -> 包装数量=20 +2026-03-31 11:01:47,832 - app.core.excel.processor - INFO - 解析规格: 1*16 -> 包装数量=16 +2026-03-31 11:01:47,835 - app.core.excel.processor - INFO - 解析规格: 1*18 -> 包装数量=18 +2026-03-31 11:01:47,837 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2026-03-31 11:01:47,840 - app.core.excel.processor - INFO - 解析规格: 1*48 -> 包装数量=48 +2026-03-31 11:01:47,846 - app.core.excel.processor - INFO - 解析规格: 1*24 -> 包装数量=24 +2026-03-31 11:01:47,848 - app.core.excel.processor - INFO - 解析规格: 1*24 -> 包装数量=24 +2026-03-31 11:01:47,850 - app.core.excel.processor - INFO - 解析规格: 1*24 -> 包装数量=24 +2026-03-31 11:01:47,851 - app.core.excel.processor - INFO - 解析规格: 1*24 -> 包装数量=24 +2026-03-31 11:01:47,853 - app.core.excel.processor - INFO - 解析规格: 1*24 -> 包装数量=24 +2026-03-31 11:01:47,854 - app.core.excel.processor - INFO - 解析规格: 1*36 -> 包装数量=36 +2026-03-31 11:01:47,855 - app.core.excel.processor - INFO - 解析规格: 1*24 -> 包装数量=24 +2026-03-31 11:01:47,857 - app.core.excel.processor - INFO - 解析规格: 1*36 -> 包装数量=36 +2026-03-31 11:01:47,859 - app.core.excel.processor - INFO - 解析规格: 1*36 -> 包装数量=36 +2026-03-31 11:01:47,865 - app.core.excel.processor - INFO - 解析规格: 1*48 -> 包装数量=48 +2026-03-31 11:01:47,867 - app.core.excel.processor - INFO - 解析规格: 1*24 -> 包装数量=24 +2026-03-31 11:01:47,869 - app.core.excel.processor - INFO - 解析规格: 1*36 -> 包装数量=36 +2026-03-31 11:01:47,870 - app.core.excel.processor - INFO - 解析规格: 1*36 -> 包装数量=36 +2026-03-31 11:01:47,873 - app.core.excel.processor - INFO - 解析规格: 1*36 -> 包装数量=36 +2026-03-31 11:01:47,874 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2026-03-31 11:01:47,876 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2026-03-31 11:01:47,878 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2026-03-31 11:01:47,880 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2026-03-31 11:01:47,881 - app.core.excel.processor - INFO - 提取到 29 个商品信息 +2026-03-31 11:01:47,885 - app.core.excel.processor - INFO - 开始处理29 个产品信息 +2026-03-31 11:01:47,886 - app.core.excel.processor - INFO - 处理商品: 条码=6914068023359, 数量=5.0, 单价=5.0, 是否赠品=False +2026-03-31 11:01:47,886 - app.core.excel.processor - INFO - 发现正常商品:条码6914068023359, 数量=5.0, 单价=5.0 +2026-03-31 11:01:47,887 - app.core.excel.processor - INFO - 处理商品: 条码=6914068020082, 数量=3.0, 单价=12.0, 是否赠品=False +2026-03-31 11:01:47,887 - app.core.excel.processor - INFO - 发现正常商品:条码6914068020082, 数量=3.0, 单价=12.0 +2026-03-31 11:01:47,887 - app.core.excel.processor - INFO - 处理商品: 条码=6922868285266, 数量=2.0, 单价=12.0, 是否赠品=False +2026-03-31 11:01:47,887 - app.core.excel.processor - INFO - 发现正常商品:条码6922868285266, 数量=2.0, 单价=12.0 +2026-03-31 11:01:47,888 - app.core.excel.processor - INFO - 处理商品: 条码=6914068018331, 数量=12.0, 单价=9.0, 是否赠品=False +2026-03-31 11:01:47,888 - app.core.excel.processor - INFO - 发现正常商品:条码6914068018331, 数量=12.0, 单价=9.0 +2026-03-31 11:01:47,889 - app.core.excel.processor - INFO - 处理商品: 条码=6949288677884, 数量=3.0, 单价=8.5, 是否赠品=False +2026-03-31 11:01:47,889 - app.core.excel.processor - INFO - 发现正常商品:条码6949288677884, 数量=3.0, 单价=8.5 +2026-03-31 11:01:47,890 - app.core.excel.processor - INFO - 处理商品: 条码=6901236379127, 数量=3.0, 单价=8.5, 是否赠品=False +2026-03-31 11:01:47,890 - app.core.excel.processor - INFO - 发现正常商品:条码6901236379127, 数量=3.0, 单价=8.5 +2026-03-31 11:01:47,891 - app.core.excel.processor - INFO - 处理商品: 条码=6949288699398, 数量=3.0, 单价=8.5, 是否赠品=False +2026-03-31 11:01:47,891 - app.core.excel.processor - INFO - 发现正常商品:条码6949288699398, 数量=3.0, 单价=8.5 +2026-03-31 11:01:47,892 - app.core.excel.processor - INFO - 处理商品: 条码=6914068016092, 数量=2.0, 单价=13.0, 是否赠品=False +2026-03-31 11:01:47,892 - app.core.excel.processor - INFO - 发现正常商品:条码6914068016092, 数量=2.0, 单价=13.0 +2026-03-31 11:01:47,893 - app.core.excel.processor - INFO - 处理商品: 条码=6926052512725, 数量=3.0, 单价=6.2, 是否赠品=False +2026-03-31 11:01:47,893 - app.core.excel.processor - INFO - 发现正常商品:条码6926052512725, 数量=3.0, 单价=6.2 +2026-03-31 11:01:47,894 - app.core.excel.processor - WARNING - 跳过无条码商品 +2026-03-31 11:01:47,895 - app.core.excel.processor - INFO - 处理商品: 条码=6926052515276, 数量=3.0, 单价=7.0, 是否赠品=False +2026-03-31 11:01:47,895 - app.core.excel.processor - INFO - 发现正常商品:条码6926052515276, 数量=3.0, 单价=7.0 +2026-03-31 11:01:47,896 - app.core.excel.processor - INFO - 处理商品: 条码=6926052515375, 数量=3.0, 单价=7.0, 是否赠品=False +2026-03-31 11:01:47,896 - app.core.excel.processor - INFO - 发现正常商品:条码6926052515375, 数量=3.0, 单价=7.0 +2026-03-31 11:01:47,896 - app.core.excel.processor - INFO - 处理商品: 条码=6926052516228, 数量=5.0, 单价=7.5, 是否赠品=False +2026-03-31 11:01:47,896 - app.core.excel.processor - INFO - 发现正常商品:条码6926052516228, 数量=5.0, 单价=7.5 +2026-03-31 11:01:47,897 - app.core.excel.processor - INFO - 处理商品: 条码=6903244370431, 数量=5.0, 单价=6.5, 是否赠品=False +2026-03-31 11:01:47,898 - app.core.excel.processor - INFO - 发现正常商品:条码6903244370431, 数量=5.0, 单价=6.5 +2026-03-31 11:01:47,898 - app.core.excel.processor - INFO - 处理商品: 条码=6903244370424, 数量=3.0, 单价=5.5, 是否赠品=False +2026-03-31 11:01:47,898 - app.core.excel.processor - INFO - 发现正常商品:条码6903244370424, 数量=3.0, 单价=5.5 +2026-03-31 11:01:47,899 - app.core.excel.processor - INFO - 处理商品: 条码=6934660552132, 数量=3.0, 单价=5.8, 是否赠品=False +2026-03-31 11:01:47,899 - app.core.excel.processor - INFO - 发现正常商品:条码6934660552132, 数量=3.0, 单价=5.8 +2026-03-31 11:01:47,899 - app.core.excel.processor - INFO - 处理商品: 条码=6934660516646, 数量=3.0, 单价=7.5, 是否赠品=False +2026-03-31 11:01:47,900 - app.core.excel.processor - INFO - 发现正常商品:条码6934660516646, 数量=3.0, 单价=7.5 +2026-03-31 11:01:47,901 - app.core.excel.processor - INFO - 处理商品: 条码=6934660539157, 数量=3.0, 单价=2.8, 是否赠品=False +2026-03-31 11:01:47,901 - app.core.excel.processor - INFO - 发现正常商品:条码6934660539157, 数量=3.0, 单价=2.8 +2026-03-31 11:01:47,901 - app.core.excel.processor - INFO - 处理商品: 条码=6934660520247, 数量=3.0, 单价=5.8, 是否赠品=False +2026-03-31 11:01:47,902 - app.core.excel.processor - INFO - 发现正常商品:条码6934660520247, 数量=3.0, 单价=5.8 +2026-03-31 11:01:47,903 - app.core.excel.processor - WARNING - 跳过无条码商品 +2026-03-31 11:01:47,903 - app.core.excel.processor - INFO - 处理商品: 条码=6922731881786, 数量=3.0, 单价=6.0, 是否赠品=False +2026-03-31 11:01:47,903 - app.core.excel.processor - INFO - 发现正常商品:条码6922731881786, 数量=3.0, 单价=6.0 +2026-03-31 11:01:47,904 - app.core.excel.processor - INFO - 处理商品: 条码=6923589468051, 数量=3.0, 单价=6.0, 是否赠品=False +2026-03-31 11:01:47,904 - app.core.excel.processor - INFO - 发现正常商品:条码6923589468051, 数量=3.0, 单价=6.0 +2026-03-31 11:01:47,904 - app.core.excel.processor - INFO - 处理商品: 条码=6934660521213, 数量=3.0, 单价=5.8, 是否赠品=False +2026-03-31 11:01:47,905 - app.core.excel.processor - INFO - 发现正常商品:条码6934660521213, 数量=3.0, 单价=5.8 +2026-03-31 11:01:47,906 - app.core.excel.processor - INFO - 处理商品: 条码=6934660551296, 数量=3.0, 单价=6.5, 是否赠品=False +2026-03-31 11:01:47,907 - app.core.excel.processor - INFO - 发现正常商品:条码6934660551296, 数量=3.0, 单价=6.5 +2026-03-31 11:01:47,907 - app.core.excel.processor - INFO - 处理商品: 条码=6934660551395, 数量=3.0, 单价=6.0, 是否赠品=False +2026-03-31 11:01:47,907 - app.core.excel.processor - INFO - 发现正常商品:条码6934660551395, 数量=3.0, 单价=6.0 +2026-03-31 11:01:47,907 - app.core.excel.processor - INFO - 处理商品: 条码=6923589466163, 数量=3.0, 单价=10.5, 是否赠品=False +2026-03-31 11:01:47,908 - app.core.excel.processor - INFO - 发现正常商品:条码6923589466163, 数量=3.0, 单价=10.5 +2026-03-31 11:01:47,909 - app.core.excel.processor - INFO - 处理商品: 条码=6903148093603, 数量=1.0, 单价=38.0, 是否赠品=False +2026-03-31 11:01:47,909 - app.core.excel.processor - INFO - 发现正常商品:条码6903148093603, 数量=1.0, 单价=38.0 +2026-03-31 11:01:47,909 - app.core.excel.processor - INFO - 处理商品: 条码=6903148091449, 数量=1.0, 单价=38.0, 是否赠品=False +2026-03-31 11:01:47,910 - app.core.excel.processor - INFO - 发现正常商品:条码6903148091449, 数量=1.0, 单价=38.0 +2026-03-31 11:01:47,910 - app.core.excel.processor - INFO - 处理商品: 条码=6902088313949, 数量=1.0, 单价=24.0, 是否赠品=False +2026-03-31 11:01:47,910 - app.core.excel.processor - INFO - 发现正常商品:条码6902088313949, 数量=1.0, 单价=24.0 +2026-03-31 11:01:47,910 - app.core.excel.processor - INFO - 分组后共27 个不同条码的商品 +2026-03-31 11:01:47,911 - app.core.excel.processor - INFO - 条码 6914068023359 处理结果:正常商品数量5.0,单价5.0,赠品数量0 +2026-03-31 11:01:47,912 - app.core.excel.processor - INFO - 条码 6914068020082 处理结果:正常商品数量3.0,单价12.0,赠品数量0 +2026-03-31 11:01:47,912 - app.core.excel.processor - INFO - 条码 6922868285266 处理结果:正常商品数量2.0,单价12.0,赠品数量0 +2026-03-31 11:01:47,912 - app.core.excel.processor - INFO - 条码 6914068018331 处理结果:正常商品数量12.0,单价9.0,赠品数量0 +2026-03-31 11:01:47,913 - app.core.excel.processor - INFO - 条码 6949288677884 处理结果:正常商品数量3.0,单价8.5,赠品数量0 +2026-03-31 11:01:47,913 - app.core.excel.processor - INFO - 条码 6901236379127 处理结果:正常商品数量3.0,单价8.5,赠品数量0 +2026-03-31 11:01:47,913 - app.core.excel.processor - INFO - 条码 6949288699398 处理结果:正常商品数量3.0,单价8.5,赠品数量0 +2026-03-31 11:01:47,913 - app.core.excel.processor - INFO - 条码 6914068016092 处理结果:正常商品数量2.0,单价13.0,赠品数量0 +2026-03-31 11:01:47,914 - app.core.excel.processor - INFO - 条码 6926052512725 处理结果:正常商品数量3.0,单价6.2,赠品数量0 +2026-03-31 11:01:47,915 - app.core.excel.processor - INFO - 条码 6926052515276 处理结果:正常商品数量3.0,单价7.0,赠品数量0 +2026-03-31 11:01:47,915 - app.core.excel.processor - INFO - 条码 6926052515375 处理结果:正常商品数量3.0,单价7.0,赠品数量0 +2026-03-31 11:01:47,916 - app.core.excel.processor - INFO - 条码 6926052516228 处理结果:正常商品数量5.0,单价7.5,赠品数量0 +2026-03-31 11:01:47,916 - app.core.excel.processor - INFO - 条码 6903244370431 处理结果:正常商品数量5.0,单价6.5,赠品数量0 +2026-03-31 11:01:47,916 - app.core.excel.processor - INFO - 条码 6903244370424 处理结果:正常商品数量3.0,单价5.5,赠品数量0 +2026-03-31 11:01:47,916 - app.core.excel.processor - INFO - 条码 6934660552132 处理结果:正常商品数量3.0,单价5.8,赠品数量0 +2026-03-31 11:01:47,917 - app.core.excel.processor - INFO - 条码 6934660516646 处理结果:正常商品数量3.0,单价7.5,赠品数量0 +2026-03-31 11:01:47,917 - app.core.excel.processor - INFO - 条码 6934660539157 处理结果:正常商品数量3.0,单价2.8,赠品数量0 +2026-03-31 11:01:47,918 - app.core.excel.processor - INFO - 条码 6934660520247 处理结果:正常商品数量3.0,单价5.8,赠品数量0 +2026-03-31 11:01:47,918 - app.core.excel.processor - INFO - 条码 6922731881786 处理结果:正常商品数量3.0,单价6.0,赠品数量0 +2026-03-31 11:01:47,919 - app.core.excel.processor - INFO - 条码 6923589468051 处理结果:正常商品数量3.0,单价6.0,赠品数量0 +2026-03-31 11:01:47,919 - app.core.excel.processor - INFO - 条码 6934660521213 处理结果:正常商品数量3.0,单价5.8,赠品数量0 +2026-03-31 11:01:47,919 - app.core.excel.processor - INFO - 条码 6934660551296 处理结果:正常商品数量3.0,单价6.5,赠品数量0 +2026-03-31 11:01:47,920 - app.core.excel.processor - INFO - 条码 6934660551395 处理结果:正常商品数量3.0,单价6.0,赠品数量0 +2026-03-31 11:01:47,920 - app.core.excel.processor - INFO - 条码 6923589466163 处理结果:正常商品数量3.0,单价10.5,赠品数量0 +2026-03-31 11:01:47,920 - app.core.excel.processor - INFO - 条码 6903148093603 处理结果:正常商品数量1.0,单价38.0,赠品数量0 +2026-03-31 11:01:47,921 - app.core.excel.processor - INFO - 条码 6903148091449 处理结果:正常商品数量1.0,单价38.0,赠品数量0 +2026-03-31 11:01:47,921 - app.core.excel.processor - INFO - 条码 6902088313949 处理结果:正常商品数量1.0,单价24.0,赠品数量0 +2026-03-31 11:01:47,924 - app.core.excel.processor - INFO - 采购单已保存到: data/result\采购单_20260331-110124.xls +2026-03-31 11:01:47,925 - app.core.excel.processor - INFO - 采购单已保存到: data/result\采购单_20260331-110124.xls +2026-03-31 11:01:47,937 - app.core.excel.processor - INFO - 使用输出目录: E:\2025Code\python\orc-order-v2\data\output +2026-03-31 11:01:47,938 - app.core.excel.processor - INFO - 使用临时目录: E:\2025Code\python\orc-order-v2\data\temp +2026-03-31 11:01:47,939 - app.core.excel.processor - INFO - 初始化ExcelProcessor完成,模板文件: templates/银豹-采购单模板.xls +2026-03-31 11:27:58,580 - app.core.excel.processor - INFO - 使用输出目录: E:\2025Code\python\orc-order-v2\data\output +2026-03-31 11:27:58,580 - app.core.excel.processor - INFO - 使用临时目录: E:\2025Code\python\orc-order-v2\data\temp +2026-03-31 11:27:58,582 - app.core.excel.processor - INFO - 初始化ExcelProcessor完成,模板文件: templates/银豹-采购单模板.xls +2026-03-31 11:28:00,722 - app.core.excel.processor - INFO - 搜索目录 data/output 中的Excel文件 +2026-03-31 11:28:00,722 - app.core.excel.processor - INFO - 找到最新的Excel文件: data/output\20260331-112736.xlsx +2026-03-31 11:28:00,736 - app.core.excel.processor - INFO - 开始处理Excel文件: data/output\20260331-112736.xlsx +2026-03-31 11:28:00,743 - app.core.excel.processor - INFO - 成功读取Excel文件: data/output\20260331-112736.xlsx, 共 32 行 +2026-03-31 11:28:00,746 - app.core.excel.processor - INFO - 找到可能的表头行: 第1行,评分: 40 +2026-03-31 11:28:00,748 - app.core.excel.processor - INFO - 识别到表头在第 1 行 +2026-03-31 11:28:00,748 - app.core.excel.processor - INFO - 重新整理数据结构,共 31 行有效数据 +2026-03-31 11:28:00,749 - app.core.excel.processor - INFO - 找到精确匹配的条码列: 条码 +2026-03-31 11:28:00,749 - app.core.excel.processor - INFO - 使用条码列: 条码 +2026-03-31 11:28:00,749 - app.core.excel.processor - INFO - 找到name列(部分匹配): 商品全名 +2026-03-31 11:28:00,750 - app.core.excel.processor - INFO - 找到specification列: 规格 +2026-03-31 11:28:00,750 - app.core.excel.processor - INFO - 找到quantity列: 数量 +2026-03-31 11:28:00,750 - app.core.excel.processor - INFO - 找到unit列: 单位 +2026-03-31 11:28:00,751 - app.core.excel.processor - INFO - 找到price列: 单价 +2026-03-31 11:28:00,751 - app.core.excel.processor - INFO - 找到amount列: 金额 +2026-03-31 11:28:00,752 - app.core.excel.processor - INFO - 检测到列映射: {'barcode': '条码', 'name': '商品全名', 'specification': '规格', 'quantity': '数量', 'unit': '单位', 'price': '单价', 'amount': '金额'} +2026-03-31 11:28:00,752 - app.core.excel.processor - INFO - 解析规格: 1*24 -> 包装数量=24 +2026-03-31 11:28:00,753 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2026-03-31 11:28:00,756 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2026-03-31 11:28:00,758 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2026-03-31 11:28:00,759 - app.core.excel.processor - INFO - 解析规格: 1*20 -> 包装数量=20 +2026-03-31 11:28:00,761 - app.core.excel.processor - INFO - 解析规格: 1*16 -> 包装数量=16 +2026-03-31 11:28:00,762 - app.core.excel.processor - INFO - 解析规格: 1*18 -> 包装数量=18 +2026-03-31 11:28:00,763 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2026-03-31 11:28:00,765 - app.core.excel.processor - INFO - 解析规格: 1*48 -> 包装数量=48 +2026-03-31 11:28:00,769 - app.core.excel.processor - INFO - 解析规格: 1*24 -> 包装数量=24 +2026-03-31 11:28:00,770 - app.core.excel.processor - INFO - 解析规格: 1*24 -> 包装数量=24 +2026-03-31 11:28:00,771 - app.core.excel.processor - INFO - 解析规格: 1*24 -> 包装数量=24 +2026-03-31 11:28:00,772 - app.core.excel.processor - INFO - 解析规格: 1*24 -> 包装数量=24 +2026-03-31 11:28:00,774 - app.core.excel.processor - INFO - 解析规格: 1*24 -> 包装数量=24 +2026-03-31 11:28:00,776 - app.core.excel.processor - INFO - 解析规格: 1*36 -> 包装数量=36 +2026-03-31 11:28:00,778 - app.core.excel.processor - INFO - 解析规格: 1*24 -> 包装数量=24 +2026-03-31 11:28:00,779 - app.core.excel.processor - INFO - 解析规格: 1*36 -> 包装数量=36 +2026-03-31 11:28:00,781 - app.core.excel.processor - INFO - 解析规格: 1*36 -> 包装数量=36 +2026-03-31 11:28:00,784 - app.core.excel.processor - INFO - 解析规格: 1*48 -> 包装数量=48 +2026-03-31 11:28:00,785 - app.core.excel.processor - INFO - 解析规格: 1*24 -> 包装数量=24 +2026-03-31 11:28:00,787 - app.core.excel.processor - INFO - 解析规格: 1*36 -> 包装数量=36 +2026-03-31 11:28:00,788 - app.core.excel.processor - INFO - 解析规格: 1*36 -> 包装数量=36 +2026-03-31 11:28:00,789 - app.core.excel.processor - INFO - 解析规格: 1*36 -> 包装数量=36 +2026-03-31 11:28:00,791 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2026-03-31 11:28:00,792 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2026-03-31 11:28:00,794 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2026-03-31 11:28:00,795 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2026-03-31 11:28:00,796 - app.core.excel.processor - INFO - 提取到 29 个商品信息 +2026-03-31 11:28:00,801 - app.core.excel.processor - INFO - 开始处理29 个产品信息 +2026-03-31 11:28:00,801 - app.core.excel.processor - INFO - 处理商品: 条码=6914068023359, 数量=5.0, 单价=5.0, 是否赠品=False +2026-03-31 11:28:00,802 - app.core.excel.processor - INFO - 发现正常商品:条码6914068023359, 数量=5.0, 单价=5.0 +2026-03-31 11:28:00,802 - app.core.excel.processor - INFO - 处理商品: 条码=6914068020082, 数量=3.0, 单价=12.0, 是否赠品=False +2026-03-31 11:28:00,803 - app.core.excel.processor - INFO - 发现正常商品:条码6914068020082, 数量=3.0, 单价=12.0 +2026-03-31 11:28:00,803 - app.core.excel.processor - INFO - 处理商品: 条码=6922868285266, 数量=2.0, 单价=12.0, 是否赠品=False +2026-03-31 11:28:00,803 - app.core.excel.processor - INFO - 发现正常商品:条码6922868285266, 数量=2.0, 单价=12.0 +2026-03-31 11:28:00,804 - app.core.excel.processor - INFO - 处理商品: 条码=6914068018331, 数量=12.0, 单价=9.0, 是否赠品=False +2026-03-31 11:28:00,804 - app.core.excel.processor - INFO - 发现正常商品:条码6914068018331, 数量=12.0, 单价=9.0 +2026-03-31 11:28:00,804 - app.core.excel.processor - INFO - 处理商品: 条码=6949288677884, 数量=3.0, 单价=8.5, 是否赠品=False +2026-03-31 11:28:00,804 - app.core.excel.processor - INFO - 发现正常商品:条码6949288677884, 数量=3.0, 单价=8.5 +2026-03-31 11:28:00,806 - app.core.excel.processor - INFO - 处理商品: 条码=6901236379127, 数量=3.0, 单价=8.5, 是否赠品=False +2026-03-31 11:28:00,806 - app.core.excel.processor - INFO - 发现正常商品:条码6901236379127, 数量=3.0, 单价=8.5 +2026-03-31 11:28:00,806 - app.core.excel.processor - INFO - 处理商品: 条码=6949288699398, 数量=3.0, 单价=8.5, 是否赠品=False +2026-03-31 11:28:00,807 - app.core.excel.processor - INFO - 发现正常商品:条码6949288699398, 数量=3.0, 单价=8.5 +2026-03-31 11:28:00,808 - app.core.excel.processor - INFO - 处理商品: 条码=6914068016092, 数量=2.0, 单价=13.0, 是否赠品=False +2026-03-31 11:28:00,808 - app.core.excel.processor - INFO - 发现正常商品:条码6914068016092, 数量=2.0, 单价=13.0 +2026-03-31 11:28:00,808 - app.core.excel.processor - INFO - 处理商品: 条码=6926052512725, 数量=3.0, 单价=6.2, 是否赠品=False +2026-03-31 11:28:00,809 - app.core.excel.processor - INFO - 发现正常商品:条码6926052512725, 数量=3.0, 单价=6.2 +2026-03-31 11:28:00,809 - app.core.excel.processor - WARNING - 跳过无条码商品 +2026-03-31 11:28:00,809 - app.core.excel.processor - INFO - 处理商品: 条码=6926052515276, 数量=3.0, 单价=7.0, 是否赠品=False +2026-03-31 11:28:00,809 - app.core.excel.processor - INFO - 发现正常商品:条码6926052515276, 数量=3.0, 单价=7.0 +2026-03-31 11:28:00,810 - app.core.excel.processor - INFO - 处理商品: 条码=6926052515375, 数量=3.0, 单价=7.0, 是否赠品=False +2026-03-31 11:28:00,810 - app.core.excel.processor - INFO - 发现正常商品:条码6926052515375, 数量=3.0, 单价=7.0 +2026-03-31 11:28:00,810 - app.core.excel.processor - INFO - 处理商品: 条码=6926052516228, 数量=5.0, 单价=7.5, 是否赠品=False +2026-03-31 11:28:00,812 - app.core.excel.processor - INFO - 发现正常商品:条码6926052516228, 数量=5.0, 单价=7.5 +2026-03-31 11:28:00,812 - app.core.excel.processor - INFO - 处理商品: 条码=6903244370431, 数量=5.0, 单价=6.5, 是否赠品=False +2026-03-31 11:28:00,812 - app.core.excel.processor - INFO - 发现正常商品:条码6903244370431, 数量=5.0, 单价=6.5 +2026-03-31 11:28:00,813 - app.core.excel.processor - INFO - 处理商品: 条码=6903244370424, 数量=3.0, 单价=5.5, 是否赠品=False +2026-03-31 11:28:00,813 - app.core.excel.processor - INFO - 发现正常商品:条码6903244370424, 数量=3.0, 单价=5.5 +2026-03-31 11:28:00,813 - app.core.excel.processor - INFO - 处理商品: 条码=6934660552132, 数量=3.0, 单价=5.8, 是否赠品=False +2026-03-31 11:28:00,814 - app.core.excel.processor - INFO - 发现正常商品:条码6934660552132, 数量=3.0, 单价=5.8 +2026-03-31 11:28:00,814 - app.core.excel.processor - INFO - 处理商品: 条码=6934660516646, 数量=3.0, 单价=7.5, 是否赠品=False +2026-03-31 11:28:00,814 - app.core.excel.processor - INFO - 发现正常商品:条码6934660516646, 数量=3.0, 单价=7.5 +2026-03-31 11:28:00,815 - app.core.excel.processor - INFO - 处理商品: 条码=6934660539157, 数量=3.0, 单价=2.8, 是否赠品=False +2026-03-31 11:28:00,815 - app.core.excel.processor - INFO - 发现正常商品:条码6934660539157, 数量=3.0, 单价=2.8 +2026-03-31 11:28:00,815 - app.core.excel.processor - INFO - 处理商品: 条码=6934660520247, 数量=3.0, 单价=5.8, 是否赠品=False +2026-03-31 11:28:00,816 - app.core.excel.processor - INFO - 发现正常商品:条码6934660520247, 数量=3.0, 单价=5.8 +2026-03-31 11:28:00,816 - app.core.excel.processor - WARNING - 跳过无条码商品 +2026-03-31 11:28:00,816 - app.core.excel.processor - INFO - 处理商品: 条码=6922731881786, 数量=3.0, 单价=6.0, 是否赠品=False +2026-03-31 11:28:00,817 - app.core.excel.processor - INFO - 发现正常商品:条码6922731881786, 数量=3.0, 单价=6.0 +2026-03-31 11:28:00,817 - app.core.excel.processor - INFO - 处理商品: 条码=6923589468051, 数量=3.0, 单价=6.0, 是否赠品=False +2026-03-31 11:28:00,818 - app.core.excel.processor - INFO - 发现正常商品:条码6923589468051, 数量=3.0, 单价=6.0 +2026-03-31 11:28:00,818 - app.core.excel.processor - INFO - 处理商品: 条码=6934660521213, 数量=3.0, 单价=5.8, 是否赠品=False +2026-03-31 11:28:00,819 - app.core.excel.processor - INFO - 发现正常商品:条码6934660521213, 数量=3.0, 单价=5.8 +2026-03-31 11:28:00,819 - app.core.excel.processor - INFO - 处理商品: 条码=6934660551296, 数量=3.0, 单价=6.5, 是否赠品=False +2026-03-31 11:28:00,819 - app.core.excel.processor - INFO - 发现正常商品:条码6934660551296, 数量=3.0, 单价=6.5 +2026-03-31 11:28:00,820 - app.core.excel.processor - INFO - 处理商品: 条码=6934660551395, 数量=3.0, 单价=6.0, 是否赠品=False +2026-03-31 11:28:00,820 - app.core.excel.processor - INFO - 发现正常商品:条码6934660551395, 数量=3.0, 单价=6.0 +2026-03-31 11:28:00,820 - app.core.excel.processor - INFO - 处理商品: 条码=6923589466163, 数量=3.0, 单价=10.5, 是否赠品=False +2026-03-31 11:28:00,821 - app.core.excel.processor - INFO - 发现正常商品:条码6923589466163, 数量=3.0, 单价=10.5 +2026-03-31 11:28:00,821 - app.core.excel.processor - INFO - 处理商品: 条码=6903148093603, 数量=1.0, 单价=38.0, 是否赠品=False +2026-03-31 11:28:00,821 - app.core.excel.processor - INFO - 发现正常商品:条码6903148093603, 数量=1.0, 单价=38.0 +2026-03-31 11:28:00,822 - app.core.excel.processor - INFO - 处理商品: 条码=6903148091449, 数量=1.0, 单价=38.0, 是否赠品=False +2026-03-31 11:28:00,822 - app.core.excel.processor - INFO - 发现正常商品:条码6903148091449, 数量=1.0, 单价=38.0 +2026-03-31 11:28:00,822 - app.core.excel.processor - INFO - 处理商品: 条码=6902088313949, 数量=1.0, 单价=24.0, 是否赠品=False +2026-03-31 11:28:00,823 - app.core.excel.processor - INFO - 发现正常商品:条码6902088313949, 数量=1.0, 单价=24.0 +2026-03-31 11:28:00,823 - app.core.excel.processor - INFO - 分组后共27 个不同条码的商品 +2026-03-31 11:28:00,823 - app.core.excel.processor - INFO - 条码 6914068023359 处理结果:正常商品数量5.0,单价5.0,赠品数量0 +2026-03-31 11:28:00,824 - app.core.excel.processor - INFO - 条码 6914068020082 处理结果:正常商品数量3.0,单价12.0,赠品数量0 +2026-03-31 11:28:00,824 - app.core.excel.processor - INFO - 条码 6922868285266 处理结果:正常商品数量2.0,单价12.0,赠品数量0 +2026-03-31 11:28:00,825 - app.core.excel.processor - INFO - 条码 6914068018331 处理结果:正常商品数量12.0,单价9.0,赠品数量0 +2026-03-31 11:28:00,825 - app.core.excel.processor - INFO - 条码 6949288677884 处理结果:正常商品数量3.0,单价8.5,赠品数量0 +2026-03-31 11:28:00,825 - app.core.excel.processor - INFO - 条码 6901236379127 处理结果:正常商品数量3.0,单价8.5,赠品数量0 +2026-03-31 11:28:00,826 - app.core.excel.processor - INFO - 条码 6949288699398 处理结果:正常商品数量3.0,单价8.5,赠品数量0 +2026-03-31 11:28:00,826 - app.core.excel.processor - INFO - 条码 6914068016092 处理结果:正常商品数量2.0,单价13.0,赠品数量0 +2026-03-31 11:28:00,826 - app.core.excel.processor - INFO - 条码 6926052512725 处理结果:正常商品数量3.0,单价6.2,赠品数量0 +2026-03-31 11:28:00,827 - app.core.excel.processor - INFO - 条码 6926052515276 处理结果:正常商品数量3.0,单价7.0,赠品数量0 +2026-03-31 11:28:00,827 - app.core.excel.processor - INFO - 条码 6926052515375 处理结果:正常商品数量3.0,单价7.0,赠品数量0 +2026-03-31 11:28:00,827 - app.core.excel.processor - INFO - 条码 6926052516228 处理结果:正常商品数量5.0,单价7.5,赠品数量0 +2026-03-31 11:28:00,828 - app.core.excel.processor - INFO - 条码 6903244370431 处理结果:正常商品数量5.0,单价6.5,赠品数量0 +2026-03-31 11:28:00,828 - app.core.excel.processor - INFO - 条码 6903244370424 处理结果:正常商品数量3.0,单价5.5,赠品数量0 +2026-03-31 11:28:00,828 - app.core.excel.processor - INFO - 条码 6934660552132 处理结果:正常商品数量3.0,单价5.8,赠品数量0 +2026-03-31 11:28:00,828 - app.core.excel.processor - INFO - 条码 6934660516646 处理结果:正常商品数量3.0,单价7.5,赠品数量0 +2026-03-31 11:28:00,829 - app.core.excel.processor - INFO - 条码 6934660539157 处理结果:正常商品数量3.0,单价2.8,赠品数量0 +2026-03-31 11:28:00,829 - app.core.excel.processor - INFO - 条码 6934660520247 处理结果:正常商品数量3.0,单价5.8,赠品数量0 +2026-03-31 11:28:00,829 - app.core.excel.processor - INFO - 条码 6922731881786 处理结果:正常商品数量3.0,单价6.0,赠品数量0 +2026-03-31 11:28:00,830 - app.core.excel.processor - INFO - 条码 6923589468051 处理结果:正常商品数量3.0,单价6.0,赠品数量0 +2026-03-31 11:28:00,830 - app.core.excel.processor - INFO - 条码 6934660521213 处理结果:正常商品数量3.0,单价5.8,赠品数量0 +2026-03-31 11:28:00,830 - app.core.excel.processor - INFO - 条码 6934660551296 处理结果:正常商品数量3.0,单价6.5,赠品数量0 +2026-03-31 11:28:00,831 - app.core.excel.processor - INFO - 条码 6934660551395 处理结果:正常商品数量3.0,单价6.0,赠品数量0 +2026-03-31 11:28:00,831 - app.core.excel.processor - INFO - 条码 6923589466163 处理结果:正常商品数量3.0,单价10.5,赠品数量0 +2026-03-31 11:28:00,831 - app.core.excel.processor - INFO - 条码 6903148093603 处理结果:正常商品数量1.0,单价38.0,赠品数量0 +2026-03-31 11:28:00,832 - app.core.excel.processor - INFO - 条码 6903148091449 处理结果:正常商品数量1.0,单价38.0,赠品数量0 +2026-03-31 11:28:00,832 - app.core.excel.processor - INFO - 条码 6902088313949 处理结果:正常商品数量1.0,单价24.0,赠品数量0 +2026-03-31 11:28:00,833 - app.core.excel.processor - INFO - 采购单已保存到: data/result\采购单_20260331-112736.xls +2026-03-31 11:28:00,834 - app.core.excel.processor - INFO - 采购单已保存到: data/result\采购单_20260331-112736.xls +2026-03-31 11:28:01,607 - app.core.excel.processor - INFO - 使用输出目录: E:\2025Code\python\orc-order-v2\data\output +2026-03-31 11:28:01,608 - app.core.excel.processor - INFO - 使用临时目录: E:\2025Code\python\orc-order-v2\data\temp +2026-03-31 11:28:01,609 - app.core.excel.processor - INFO - 初始化ExcelProcessor完成,模板文件: templates/银豹-采购单模板.xls +2026-03-31 11:28:11,906 - app.core.excel.processor - INFO - 使用输出目录: E:\2025Code\python\orc-order-v2\data\output +2026-03-31 11:28:11,906 - app.core.excel.processor - INFO - 使用临时目录: E:\2025Code\python\orc-order-v2\data\temp +2026-03-31 11:28:11,907 - app.core.excel.processor - INFO - 初始化ExcelProcessor完成,模板文件: templates/银豹-采购单模板.xls +2026-03-31 11:28:11,925 - app.core.excel.processor - INFO - 开始处理Excel文件: E:/2025Code/python/orc-order-v2/data/output/20260331-112747.xlsx +2026-03-31 11:28:11,933 - app.core.excel.processor - INFO - 成功读取Excel文件: E:/2025Code/python/orc-order-v2/data/output/20260331-112747.xlsx, 共 21 行 +2026-03-31 11:28:11,936 - app.core.excel.processor - INFO - 找到可能的表头行: 第1行,评分: 40 +2026-03-31 11:28:11,936 - app.core.excel.processor - INFO - 识别到表头在第 1 行 +2026-03-31 11:28:11,956 - app.core.excel.processor - INFO - 重新整理数据结构,共 20 行有效数据 +2026-03-31 11:28:11,961 - app.core.excel.processor - INFO - 找到精确匹配的条码列: 条码 +2026-03-31 11:28:11,962 - app.core.excel.processor - INFO - 使用条码列: 条码 +2026-03-31 11:28:11,962 - app.core.excel.processor - INFO - 找到name列(部分匹配): 商品全名 +2026-03-31 11:28:11,963 - app.core.excel.processor - INFO - 找到specification列: 规格 +2026-03-31 11:28:11,964 - app.core.excel.processor - INFO - 找到quantity列: 数量 +2026-03-31 11:28:11,964 - app.core.excel.processor - INFO - 找到unit列: 单位 +2026-03-31 11:28:11,964 - app.core.excel.processor - INFO - 找到price列: 单价 +2026-03-31 11:28:11,964 - app.core.excel.processor - INFO - 找到amount列: 金额 +2026-03-31 11:28:11,966 - app.core.excel.processor - INFO - 检测到列映射: {'barcode': '条码', 'name': '商品全名', 'specification': '规格', 'quantity': '数量', 'unit': '单位', 'price': '单价', 'amount': '金额'} +2026-03-31 11:28:11,966 - app.core.excel.processor - INFO - 解析规格: 1*100 -> 包装数量=100 +2026-03-31 11:28:11,968 - app.core.excel.processor - INFO - 解析规格: 380g -> 包装数量=380 +2026-03-31 11:28:11,970 - app.core.excel.processor - INFO - 解析规格: 1*24 -> 包装数量=24 +2026-03-31 11:28:11,971 - app.core.excel.processor - INFO - 解析规格: 1*24 -> 包装数量=24 +2026-03-31 11:28:11,972 - app.core.excel.processor - INFO - 解析规格: 1*6 -> 包装数量=6 +2026-03-31 11:28:11,974 - app.core.excel.processor - INFO - 解析规格: 1*48 -> 包装数量=48 +2026-03-31 11:28:11,976 - app.core.excel.processor - INFO - 解析规格: 1*48 -> 包装数量=48 +2026-03-31 11:28:11,977 - app.core.excel.processor - INFO - 解析规格: 1*72 -> 包装数量=72 +2026-03-31 11:28:11,979 - app.core.excel.processor - INFO - 解析规格: 1*48 -> 包装数量=48 +2026-03-31 11:28:11,982 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2026-03-31 11:28:11,984 - app.core.excel.processor - INFO - 解析规格: 1*40 -> 包装数量=40 +2026-03-31 11:28:11,986 - app.core.excel.processor - INFO - 解析规格: 1*80 -> 包装数量=80 +2026-03-31 11:28:11,987 - app.core.excel.processor - INFO - 解析规格: 185ml -> 包装数量=185 +2026-03-31 11:28:11,988 - app.core.excel.processor - INFO - 解析规格: 330mL -> 包装数量=330 +2026-03-31 11:28:11,990 - app.core.excel.processor - INFO - 解析规格: 1*30 -> 包装数量=30 +2026-03-31 11:28:11,991 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2026-03-31 11:28:11,993 - app.core.excel.processor - INFO - 解析规格: 1*60 -> 包装数量=60 +2026-03-31 11:28:11,994 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2026-03-31 11:28:11,995 - app.core.excel.processor - INFO - 提取到 19 个商品信息 +2026-03-31 11:28:11,999 - app.core.excel.processor - INFO - 开始处理19 个产品信息 +2026-03-31 11:28:12,000 - app.core.excel.processor - INFO - 处理商品: 条码=6923427904833, 数量=3.0, 单价=20.0, 是否赠品=False +2026-03-31 11:28:12,000 - app.core.excel.processor - INFO - 发现正常商品:条码6923427904833, 数量=3.0, 单价=20.0 +2026-03-31 11:28:12,000 - app.core.excel.processor - INFO - 处理商品: 条码=4897031010292, 数量=2.0, 单价=19.0, 是否赠品=False +2026-03-31 11:28:12,000 - app.core.excel.processor - INFO - 发现正常商品:条码4897031010292, 数量=2.0, 单价=19.0 +2026-03-31 11:28:12,001 - app.core.excel.processor - INFO - 处理商品: 条码=6903148044971, 数量=2.0, 单价=19.0, 是否赠品=False +2026-03-31 11:28:12,002 - app.core.excel.processor - INFO - 发现正常商品:条码6903148044971, 数量=2.0, 单价=19.0 +2026-03-31 11:28:12,002 - app.core.excel.processor - INFO - 处理商品: 条码=6903148048788, 数量=2.0, 单价=11.0, 是否赠品=False +2026-03-31 11:28:12,002 - app.core.excel.processor - INFO - 发现正常商品:条码6903148048788, 数量=2.0, 单价=11.0 +2026-03-31 11:28:12,003 - app.core.excel.processor - INFO - 处理商品: 条码=6903148064863, 数量=6.0, 单价=7.0, 是否赠品=False +2026-03-31 11:28:12,003 - app.core.excel.processor - INFO - 发现正常商品:条码6903148064863, 数量=6.0, 单价=7.0 +2026-03-31 11:28:12,003 - app.core.excel.processor - INFO - 处理商品: 条码=6920174720631, 数量=5.0, 单价=3.6, 是否赠品=False +2026-03-31 11:28:12,004 - app.core.excel.processor - INFO - 发现正常商品:条码6920174720631, 数量=5.0, 单价=3.6 +2026-03-31 11:28:12,004 - app.core.excel.processor - INFO - 处理商品: 条码=6903148070949, 数量=3.0, 单价=5.0, 是否赠品=False +2026-03-31 11:28:12,005 - app.core.excel.processor - INFO - 发现正常商品:条码6903148070949, 数量=3.0, 单价=5.0 +2026-03-31 11:28:12,005 - app.core.excel.processor - INFO - 处理商品: 条码=6903148144541, 数量=5.0, 单价=3.3, 是否赠品=False +2026-03-31 11:28:12,006 - app.core.excel.processor - INFO - 发现正常商品:条码6903148144541, 数量=5.0, 单价=3.3 +2026-03-31 11:28:12,006 - app.core.excel.processor - INFO - 处理商品: 条码=6975092650041, 数量=5.0, 单价=1.4, 是否赠品=False +2026-03-31 11:28:12,006 - app.core.excel.processor - INFO - 发现正常商品:条码6975092650041, 数量=5.0, 单价=1.4 +2026-03-31 11:28:12,006 - app.core.excel.processor - WARNING - 跳过无条码商品 +2026-03-31 11:28:12,007 - app.core.excel.processor - INFO - 处理商品: 条码=6900068005020, 数量=5.0, 单价=11.5, 是否赠品=False +2026-03-31 11:28:12,008 - app.core.excel.processor - INFO - 发现正常商品:条码6900068005020, 数量=5.0, 单价=11.5 +2026-03-31 11:28:12,008 - app.core.excel.processor - INFO - 处理商品: 条码=6957166700623, 数量=3.0, 单价=7.5, 是否赠品=False +2026-03-31 11:28:12,008 - app.core.excel.processor - INFO - 发现正常商品:条码6957166700623, 数量=3.0, 单价=7.5 +2026-03-31 11:28:12,009 - app.core.excel.processor - INFO - 处理商品: 条码=6934625035113, 数量=3.0, 单价=8.0, 是否赠品=False +2026-03-31 11:28:12,009 - app.core.excel.processor - INFO - 发现正常商品:条码6934625035113, 数量=3.0, 单价=8.0 +2026-03-31 11:28:12,009 - app.core.excel.processor - INFO - 处理商品: 条码=6978380132236, 数量=3.0, 单价=17.0, 是否赠品=False +2026-03-31 11:28:12,010 - app.core.excel.processor - INFO - 发现正常商品:条码6978380132236, 数量=3.0, 单价=17.0 +2026-03-31 11:28:12,010 - app.core.excel.processor - INFO - 处理商品: 条码=6978380130935, 数量=3.0, 单价=22.0, 是否赠品=False +2026-03-31 11:28:12,011 - app.core.excel.processor - INFO - 发现正常商品:条码6978380130935, 数量=3.0, 单价=22.0 +2026-03-31 11:28:12,011 - app.core.excel.processor - INFO - 处理商品: 条码=6956934836496, 数量=3.0, 单价=6.5, 是否赠品=False +2026-03-31 11:28:12,012 - app.core.excel.processor - INFO - 发现正常商品:条码6956934836496, 数量=3.0, 单价=6.5 +2026-03-31 11:28:12,012 - app.core.excel.processor - INFO - 处理商品: 条码=6926292564256, 数量=5.0, 单价=3.5, 是否赠品=False +2026-03-31 11:28:12,012 - app.core.excel.processor - INFO - 发现正常商品:条码6926292564256, 数量=5.0, 单价=3.5 +2026-03-31 11:28:12,012 - app.core.excel.processor - INFO - 处理商品: 条码=6901826888244, 数量=1.0, 单价=112.0, 是否赠品=False +2026-03-31 11:28:12,013 - app.core.excel.processor - INFO - 发现正常商品:条码6901826888244, 数量=1.0, 单价=112.0 +2026-03-31 11:28:12,014 - app.core.excel.processor - INFO - 处理商品: 条码=6921734933485, 数量=1.0, 单价=6.5, 是否赠品=False +2026-03-31 11:28:12,014 - app.core.excel.processor - INFO - 发现正常商品:条码6921734933485, 数量=1.0, 单价=6.5 +2026-03-31 11:28:12,014 - app.core.excel.processor - INFO - 分组后共18 个不同条码的商品 +2026-03-31 11:28:12,015 - app.core.excel.processor - INFO - 条码 6923427904833 处理结果:正常商品数量3.0,单价20.0,赠品数量0 +2026-03-31 11:28:12,015 - app.core.excel.processor - INFO - 条码 4897031010292 处理结果:正常商品数量2.0,单价19.0,赠品数量0 +2026-03-31 11:28:12,016 - app.core.excel.processor - INFO - 条码 6903148044971 处理结果:正常商品数量2.0,单价19.0,赠品数量0 +2026-03-31 11:28:12,016 - app.core.excel.processor - INFO - 条码 6903148048788 处理结果:正常商品数量2.0,单价11.0,赠品数量0 +2026-03-31 11:28:12,017 - app.core.excel.processor - INFO - 条码 6903148064863 处理结果:正常商品数量6.0,单价7.0,赠品数量0 +2026-03-31 11:28:12,018 - app.core.excel.processor - INFO - 条码 6920174720631 处理结果:正常商品数量5.0,单价3.6,赠品数量0 +2026-03-31 11:28:12,018 - app.core.excel.processor - INFO - 条码 6903148070949 处理结果:正常商品数量3.0,单价5.0,赠品数量0 +2026-03-31 11:28:12,018 - app.core.excel.processor - INFO - 条码 6903148144541 处理结果:正常商品数量5.0,单价3.3,赠品数量0 +2026-03-31 11:28:12,019 - app.core.excel.processor - INFO - 条码 6975092650041 处理结果:正常商品数量5.0,单价1.4,赠品数量0 +2026-03-31 11:28:12,019 - app.core.excel.processor - INFO - 条码 6900068005020 处理结果:正常商品数量5.0,单价11.5,赠品数量0 +2026-03-31 11:28:12,019 - app.core.excel.processor - INFO - 条码 6957166700623 处理结果:正常商品数量3.0,单价7.5,赠品数量0 +2026-03-31 11:28:12,020 - app.core.excel.processor - INFO - 条码 6934625035113 处理结果:正常商品数量3.0,单价8.0,赠品数量0 +2026-03-31 11:28:12,021 - app.core.excel.processor - INFO - 条码 6978380132236 处理结果:正常商品数量3.0,单价17.0,赠品数量0 +2026-03-31 11:28:12,021 - app.core.excel.processor - INFO - 条码 6978380130935 处理结果:正常商品数量3.0,单价22.0,赠品数量0 +2026-03-31 11:28:12,022 - app.core.excel.processor - INFO - 条码 6956934836496 处理结果:正常商品数量3.0,单价6.5,赠品数量0 +2026-03-31 11:28:12,022 - app.core.excel.processor - INFO - 条码 6926292564256 处理结果:正常商品数量5.0,单价3.5,赠品数量0 +2026-03-31 11:28:12,022 - app.core.excel.processor - INFO - 条码 6901826888244 处理结果:正常商品数量1.0,单价112.0,赠品数量0 +2026-03-31 11:28:12,022 - app.core.excel.processor - INFO - 条码 6921734933485 处理结果:正常商品数量1.0,单价6.5,赠品数量0 +2026-03-31 11:28:12,025 - app.core.excel.processor - INFO - 采购单已保存到: data/result\采购单_20260331-112747.xls +2026-03-31 11:28:12,025 - app.core.excel.processor - INFO - 采购单已保存到: data/result\采购单_20260331-112747.xls +2026-03-31 11:28:13,706 - app.core.excel.processor - INFO - 使用输出目录: E:\2025Code\python\orc-order-v2\data\output +2026-03-31 11:28:13,706 - app.core.excel.processor - INFO - 使用临时目录: E:\2025Code\python\orc-order-v2\data\temp +2026-03-31 11:28:13,707 - app.core.excel.processor - INFO - 初始化ExcelProcessor完成,模板文件: templates/银豹-采购单模板.xls diff --git a/logs/app.core.excel.validators.log b/logs/app.core.excel.validators.log index 46f9c5a..9a182e0 100644 --- a/logs/app.core.excel.validators.log +++ b/logs/app.core.excel.validators.log @@ -6791,3 +6791,18 @@ 2026-03-31 08:52:46,103 - app.core.excel.validators - WARNING - 数量验证失败: 数量必须大于0,当前值: 0.0 2026-03-31 08:52:46,103 - app.core.excel.validators - WARNING - 数量验证失败: 数量必须大于0,当前值: 0.0 2026-03-31 08:52:46,103 - app.core.excel.validators - WARNING - 数量验证失败: 数量必须大于0,当前值: 0.0 +2026-03-31 11:01:47,842 - app.core.excel.validators - WARNING - 条码验证失败: 条码不包含数字 +2026-03-31 11:01:47,843 - app.core.excel.validators - INFO - 单价不包含数字,视为赠品 +2026-03-31 11:01:47,844 - app.core.excel.validators - WARNING - 数量验证失败: 数量不包含数字 +2026-03-31 11:01:47,862 - app.core.excel.validators - WARNING - 条码验证失败: 条码不包含数字 +2026-03-31 11:01:47,862 - app.core.excel.validators - INFO - 单价不包含数字,视为赠品 +2026-03-31 11:01:47,862 - app.core.excel.validators - WARNING - 数量验证失败: 数量不包含数字 +2026-03-31 11:28:00,766 - app.core.excel.validators - WARNING - 条码验证失败: 条码不包含数字 +2026-03-31 11:28:00,766 - app.core.excel.validators - INFO - 单价不包含数字,视为赠品 +2026-03-31 11:28:00,767 - app.core.excel.validators - WARNING - 数量验证失败: 数量不包含数字 +2026-03-31 11:28:00,782 - app.core.excel.validators - WARNING - 条码验证失败: 条码不包含数字 +2026-03-31 11:28:00,782 - app.core.excel.validators - INFO - 单价不包含数字,视为赠品 +2026-03-31 11:28:00,783 - app.core.excel.validators - WARNING - 数量验证失败: 数量不包含数字 +2026-03-31 11:28:11,980 - app.core.excel.validators - WARNING - 条码验证失败: 条码不包含数字 +2026-03-31 11:28:11,980 - app.core.excel.validators - INFO - 单价不包含数字,视为赠品 +2026-03-31 11:28:11,981 - app.core.excel.validators - WARNING - 数量验证失败: 数量不包含数字 diff --git a/logs/app.core.ocr.baidu_ocr.log b/logs/app.core.ocr.baidu_ocr.log index 5acb4a9..695c486 100644 --- a/logs/app.core.ocr.baidu_ocr.log +++ b/logs/app.core.ocr.baidu_ocr.log @@ -19,3 +19,6 @@ 2025-11-16 15:13:47,756 - app.core.ocr.baidu_ocr - INFO - 成功获取访问令牌 2025-11-16 15:15:36,568 - app.core.ocr.baidu_ocr - INFO - 成功获取访问令牌 2025-12-01 22:21:09,536 - app.core.ocr.baidu_ocr - INFO - 成功获取访问令牌 +2026-03-31 11:01:46,107 - app.core.ocr.baidu_ocr - INFO - 成功获取访问令牌 +2026-03-31 11:27:58,846 - app.core.ocr.baidu_ocr - INFO - 成功获取访问令牌 +2026-03-31 11:27:58,858 - app.core.ocr.baidu_ocr - INFO - 成功获取访问令牌 diff --git a/logs/app.core.ocr.table_ocr.log b/logs/app.core.ocr.table_ocr.log index 66cfac7..3398c55 100644 --- a/logs/app.core.ocr.table_ocr.log +++ b/logs/app.core.ocr.table_ocr.log @@ -398,3 +398,25 @@ 2025-12-01 22:21:09,246 - app.core.ocr.table_ocr - INFO - 开始处理图片: data/input\微信图片_20251201221738_176_108.jpg 2025-12-01 22:21:10,536 - app.core.ocr.table_ocr - INFO - 图片处理成功: data/input\微信图片_20251201221738_176_108.jpg, 输出文件: data/output\微信图片_20251201221738_176_108.xlsx 2025-12-01 22:21:10,538 - app.core.ocr.table_ocr - INFO - 所有图片处理完成, 总计: 1, 成功: 1 +2026-03-31 11:01:45,677 - app.core.ocr.table_ocr - INFO - 使用输入目录: E:\2025Code\python\orc-order-v2\data\input +2026-03-31 11:01:45,691 - app.core.ocr.table_ocr - INFO - 使用输出目录: E:\2025Code\python\orc-order-v2\data\output +2026-03-31 11:01:45,691 - app.core.ocr.table_ocr - INFO - 使用临时目录: E:\2025Code\python\orc-order-v2\data\temp +2026-03-31 11:01:45,692 - app.core.ocr.table_ocr - INFO - 允许的文件类型: ['.jpg', '.jpeg', '.png', '.bmp'] +2026-03-31 11:01:45,692 - app.core.ocr.table_ocr - INFO - 初始化OCRProcessor完成:输入目录=data/input, 输出目录=data/output +2026-03-31 11:01:45,700 - app.core.ocr.table_ocr - INFO - 找到 1 个图片文件,其中 1 个未处理 +2026-03-31 11:01:45,701 - app.core.ocr.table_ocr - INFO - 处理批次 1/1: 1 个文件 +2026-03-31 11:01:45,712 - app.core.ocr.table_ocr - INFO - 开始处理图片: data/input\20260331-110124.jpg +2026-03-31 11:01:47,745 - app.core.ocr.table_ocr - INFO - 图片处理成功: data/input\20260331-110124.jpg, 输出文件: data/output\20260331-110124.xlsx +2026-03-31 11:01:47,747 - app.core.ocr.table_ocr - INFO - 所有图片处理完成, 总计: 1, 成功: 1 +2026-03-31 11:27:58,576 - app.core.ocr.table_ocr - INFO - 使用输入目录: E:\2025Code\python\orc-order-v2\data\input +2026-03-31 11:27:58,576 - app.core.ocr.table_ocr - INFO - 使用输出目录: E:\2025Code\python\orc-order-v2\data\output +2026-03-31 11:27:58,577 - app.core.ocr.table_ocr - INFO - 使用临时目录: E:\2025Code\python\orc-order-v2\data\temp +2026-03-31 11:27:58,577 - app.core.ocr.table_ocr - INFO - 允许的文件类型: ['.jpg', '.jpeg', '.png', '.bmp'] +2026-03-31 11:27:58,577 - app.core.ocr.table_ocr - INFO - 初始化OCRProcessor完成:输入目录=data/input, 输出目录=data/output +2026-03-31 11:27:58,604 - app.core.ocr.table_ocr - INFO - 找到 2 个图片文件,其中 2 个未处理 +2026-03-31 11:27:58,605 - app.core.ocr.table_ocr - INFO - 处理批次 1/1: 2 个文件 +2026-03-31 11:27:58,614 - app.core.ocr.table_ocr - INFO - 开始处理图片: data/input\20260331-112736.jpg +2026-03-31 11:27:58,615 - app.core.ocr.table_ocr - INFO - 开始处理图片: data/input\20260331-112747.jpg +2026-03-31 11:28:00,366 - app.core.ocr.table_ocr - INFO - 图片处理成功: data/input\20260331-112747.jpg, 输出文件: data/output\20260331-112747.xlsx +2026-03-31 11:28:00,713 - app.core.ocr.table_ocr - INFO - 图片处理成功: data/input\20260331-112736.jpg, 输出文件: data/output\20260331-112736.xlsx +2026-03-31 11:28:00,715 - app.core.ocr.table_ocr - INFO - 所有图片处理完成, 总计: 2, 成功: 2 diff --git a/logs/app.services.ocr_service.log b/logs/app.services.ocr_service.log index b903bfb..ee74295 100644 --- a/logs/app.services.ocr_service.log +++ b/logs/app.services.ocr_service.log @@ -587,3 +587,11 @@ 2025-12-01 22:21:09,058 - app.services.ocr_service - INFO - OCRService初始化完成 2025-12-01 22:21:09,151 - app.services.ocr_service - INFO - OCRService.batch_process被调用,转发到process_images_batch 2025-12-01 22:21:09,161 - app.services.ocr_service - INFO - OCRService开始批量处理图片, batch_size=None, max_workers=None +2026-03-31 11:01:45,665 - app.services.ocr_service - INFO - 初始化OCRService +2026-03-31 11:01:45,692 - app.services.ocr_service - INFO - OCRService初始化完成 +2026-03-31 11:01:45,699 - app.services.ocr_service - INFO - OCRService.batch_process被调用,转发到process_images_batch +2026-03-31 11:01:45,700 - app.services.ocr_service - INFO - OCRService开始批量处理图片, batch_size=None, max_workers=None +2026-03-31 11:27:58,574 - app.services.ocr_service - INFO - 初始化OCRService +2026-03-31 11:27:58,577 - app.services.ocr_service - INFO - OCRService初始化完成 +2026-03-31 11:27:58,603 - app.services.ocr_service - INFO - OCRService.batch_process被调用,转发到process_images_batch +2026-03-31 11:27:58,603 - app.services.ocr_service - INFO - OCRService开始批量处理图片, batch_size=None, max_workers=None diff --git a/logs/app.services.order_service.log b/logs/app.services.order_service.log index 0fbdd1c..30bad6a 100644 --- a/logs/app.services.order_service.log +++ b/logs/app.services.order_service.log @@ -854,3 +854,25 @@ 2026-03-31 09:07:58,289 - app.services.order_service - INFO - 检测到特殊供应商,已生成预处理文件: data/output\预处理之后_订单明细20260331090709.xlsx 2026-03-31 09:07:58,350 - app.services.order_service - INFO - 初始化OrderService 2026-03-31 09:07:58,354 - app.services.order_service - INFO - OrderService初始化完成 +2026-03-31 10:59:54,577 - app.services.order_service - INFO - 初始化OrderService +2026-03-31 10:59:54,581 - app.services.order_service - INFO - OrderService初始化完成 +2026-03-31 10:59:54,585 - app.services.order_service - INFO - OrderService开始处理指定Excel文件: E:/2025Code/python/orc-order-v2/data/output/订单1774849009841.xlsx +2026-03-31 10:59:54,616 - app.services.order_service - INFO - 识别到蓉城易购订单,执行专用预处理... +2026-03-31 10:59:54,668 - app.services.order_service - INFO - 检测到特殊供应商,已生成预处理文件: E:/2025Code/python/orc-order-v2/data/output\预处理之后_订单1774849009841.xlsx +2026-03-31 10:59:56,655 - app.services.order_service - INFO - 初始化OrderService +2026-03-31 10:59:56,659 - app.services.order_service - INFO - OrderService初始化完成 +2026-03-31 11:01:45,693 - app.services.order_service - INFO - 初始化OrderService +2026-03-31 11:01:45,698 - app.services.order_service - INFO - OrderService初始化完成 +2026-03-31 11:01:47,787 - app.services.order_service - INFO - OrderService开始处理最新Excel文件 +2026-03-31 11:01:47,936 - app.services.order_service - INFO - 初始化OrderService +2026-03-31 11:01:47,941 - app.services.order_service - INFO - OrderService初始化完成 +2026-03-31 11:27:58,578 - app.services.order_service - INFO - 初始化OrderService +2026-03-31 11:27:58,584 - app.services.order_service - INFO - OrderService初始化完成 +2026-03-31 11:28:00,722 - app.services.order_service - INFO - OrderService开始处理最新Excel文件 +2026-03-31 11:28:01,606 - app.services.order_service - INFO - 初始化OrderService +2026-03-31 11:28:01,611 - app.services.order_service - INFO - OrderService初始化完成 +2026-03-31 11:28:11,905 - app.services.order_service - INFO - 初始化OrderService +2026-03-31 11:28:11,909 - app.services.order_service - INFO - OrderService初始化完成 +2026-03-31 11:28:11,912 - app.services.order_service - INFO - OrderService开始处理指定Excel文件: E:/2025Code/python/orc-order-v2/data/output/20260331-112747.xlsx +2026-03-31 11:28:13,704 - app.services.order_service - INFO - 初始化OrderService +2026-03-31 11:28:13,708 - app.services.order_service - INFO - OrderService初始化完成