修复一些问题

This commit is contained in:
侯欢 2025-05-05 19:38:51 +08:00
parent 0b40caaf91
commit b9739b5267
14 changed files with 2040 additions and 76 deletions

View File

@ -32,6 +32,13 @@ class UnitConverter:
'multiplier': 30, # 数量乘以30 'multiplier': 30, # 数量乘以30
'target_unit': '', # 目标单位 'target_unit': '', # 目标单位
'description': 'NFC产品特殊处理每箱30瓶' 'description': 'NFC产品特殊处理每箱30瓶'
},
'6901826888138': {
'multiplier': 30, # 数量乘以30
'target_unit': '', # 目标单位
'fixed_price': 112/30, # 固定单价为112/30
'specification': '1*30', # 固定规格
'description': '特殊处理: 规格1*30数量*30单价=112/30'
} }
# 可以添加更多特殊条码的配置 # 可以添加更多特殊条码的配置
} }
@ -253,6 +260,8 @@ class UnitConverter:
spec = re.sub(r'\s+', '', spec) # 移除所有空白 spec = re.sub(r'\s+', '', spec) # 移除所有空白
spec = re.sub(r'[xX×]', '*', spec) # 统一分隔符为* spec = re.sub(r'[xX×]', '*', spec) # 统一分隔符为*
logger.debug(f"解析规格: {spec}")
# 处理三级包装如1*5*12 # 处理三级包装如1*5*12
three_level_match = re.match(r'(\d+)[*](\d+)[*](\d+)', spec) three_level_match = re.match(r'(\d+)[*](\d+)[*](\d+)', spec)
if three_level_match: if three_level_match:
@ -334,6 +343,20 @@ class UnitConverter:
# 如果有单价,单价除以倍数 # 如果有单价,单价除以倍数
new_price = price / multiplier if price else 0 new_price = price / multiplier if price else 0
# 如果有固定单价,优先使用
if 'fixed_price' in special_config:
new_price = special_config['fixed_price']
logger.info(f"特殊条码({barcode})使用固定单价: {new_price}")
# 如果有固定规格,设置规格
if 'specification' in special_config:
result['specification'] = special_config['specification']
# 解析规格以获取包装数量
package_quantity = self.parse_specification(special_config['specification'])
if package_quantity:
result['package_quantity'] = package_quantity
logger.info(f"特殊条码({barcode})使用固定规格: {special_config['specification']}, 包装数量={package_quantity}")
logger.info(f"特殊条码处理: {barcode}, 数量: {quantity} -> {new_quantity}, 单价: {price} -> {new_price}, 单位: {unit} -> {target_unit}") logger.info(f"特殊条码处理: {barcode}, 数量: {quantity} -> {new_quantity}, 单价: {price} -> {new_price}, 单位: {unit} -> {target_unit}")
result['quantity'] = new_quantity result['quantity'] = new_quantity

View File

@ -125,20 +125,23 @@ class PurchaseOrderMerger:
# 打印列名,用于调试 # 打印列名,用于调试
logger.debug(f"Excel文件的列名: {df.columns.tolist()}") logger.debug(f"Excel文件的列名: {df.columns.tolist()}")
# 检查是否有特殊表头结构如在第3行 # 处理特殊情况:检查是否需要读取指定行作为标题行
special_header = False for header_row_idx in range(5): # 检查前5行
if len(df) > 3: # 确保有足够的行 if len(df) <= header_row_idx:
row3 = df.iloc[3].astype(str) continue
header_keywords = ['行号', '条形码', '条码', '商品名称', '规格', '单价', '数量', '金额', '单位']
# 计算匹配的关键词数量 potential_header = df.iloc[header_row_idx].astype(str)
matches = sum(1 for keyword in header_keywords if any(keyword in str(val) for val in row3.values)) header_keywords = ['条码', '条形码', '商品条码', '商品名称', '规格', '单价', '数量', '金额', '单位', '必填']
# 如果匹配了至少3个关键词认为第3行是表头 matches = sum(1 for keyword in header_keywords if any(keyword in str(val) for val in potential_header.values))
if matches >= 3:
logger.info(f"检测到特殊表头结构使用第3行作为列名") if matches >= 3: # 如果至少匹配3个关键词认为是表头
# 创建新的数据帧使用第3行作为列名数据从第4行开始 logger.info(f"检测到表头在第 {header_row_idx+1}")
header_row = df.iloc[3]
data_rows = df.iloc[4:].reset_index(drop=True) # 使用此行作为列名,数据从下一行开始
# 为每一列分配一个名称(避免重复的列名) header_row = potential_header
data_rows = df.iloc[header_row_idx+1:].reset_index(drop=True)
# 为每一列分配名称(避免重复的列名)
new_columns = [] new_columns = []
for i, col in enumerate(header_row): for i, col in enumerate(header_row):
col_str = str(col) col_str = str(col)
@ -146,45 +149,77 @@ class PurchaseOrderMerger:
new_columns.append(f"Col_{i}") new_columns.append(f"Col_{i}")
else: else:
new_columns.append(col_str) new_columns.append(col_str)
# 使用新列名创建新的DataFrame # 使用新列名创建新的DataFrame
data_rows.columns = new_columns data_rows.columns = new_columns
df = data_rows df = data_rows
special_header = True
logger.debug(f"重新构建的数据帧列名: {df.columns.tolist()}") logger.debug(f"重新构建的数据帧列名: {df.columns.tolist()}")
break
# 定义可能的列名映射 # 定义可能的列名映射
column_mapping = { column_mapping = {
'条码': ['条码', '条形码', '商品条码', 'barcode', '商品条形码', '条形码', '商品条码', '商品编码', '商品编号', '条形码', '条码(必填)'], '条码': ['条码', '条形码', '商品条码', 'barcode', '商品条形码', '条形码', '商品条码', '商品编码', '商品编号', '条形码', '条码(必填)'],
'采购量': ['数量', '采购数量', '购买数量', '采购数量', '订单数量', '采购数量', '采购量(必填)'], '采购量': ['数量', '采购数量', '购买数量', '采购数量', '订单数量', '采购数量', '采购量(必填)', '采购量', '数量(必填)'],
'采购单价': ['单价', '价格', '采购单价', '销售价', '采购单价(必填)'], '采购单价': ['单价', '价格', '采购单价', '销售价', '采购单价(必填)', '单价(必填)', '价格(必填)'],
'赠送量': ['赠送量', '赠品数量', '赠送数量', '赠品'] '赠送量': ['赠送量', '赠品数量', '赠送数量', '赠品']
} }
# 显示所有列名,用于调试
all_columns = df.columns.tolist()
logger.info(f"列名: {all_columns}")
# 映射实际的列名 # 映射实际的列名
mapped_columns = {} mapped_columns = {}
for target_col, possible_names in column_mapping.items(): for target_col, possible_names in column_mapping.items():
for col in df.columns: for col in all_columns:
# 移除列名中的空白字符和括号内容以进行比较 # 清理列名以进行匹配
clean_col = re.sub(r'\s+', '', str(col)) col_str = str(col).strip()
clean_col = re.sub(r'.*?', '', clean_col) # 移除括号内容
# 直接匹配整个列名
if col_str in possible_names:
mapped_columns[target_col] = col
logger.info(f"直接匹配列名: {col_str} -> {target_col}")
break
# 移除列名中的空白字符进行比较
clean_col = re.sub(r'\s+', '', col_str)
for name in possible_names: for name in possible_names:
clean_name = re.sub(r'\s+', '', name) clean_name = re.sub(r'\s+', '', name)
clean_name = re.sub(r'.*?', '', clean_name) # 移除括号内容 # 完全匹配
if clean_col == clean_name: if clean_col == clean_name:
mapped_columns[target_col] = col mapped_columns[target_col] = col
logger.info(f"清理后匹配列名: {col_str} -> {target_col}")
break break
# 部分匹配(列名包含关键词)
elif clean_name in clean_col:
mapped_columns[target_col] = col
logger.info(f"部分匹配列名: {col_str} -> {target_col}")
break
if target_col in mapped_columns: if target_col in mapped_columns:
break break
# 如果没有找到匹配,尝试模糊匹配
if target_col not in mapped_columns:
for col in all_columns:
col_str = str(col).strip().lower()
for name in possible_names:
name_lower = name.lower()
if name_lower in col_str:
mapped_columns[target_col] = col
logger.info(f"模糊匹配列名: {col} -> {target_col}")
break
if target_col in mapped_columns:
break
# 如果找到了必要的列,重命名列 # 如果找到了必要的列,重命名列
if mapped_columns: if mapped_columns:
# 如果没有找到条码列,无法继续处理 rename_dict = {mapped_columns[key]: key for key in mapped_columns}
if '条码' not in mapped_columns: logger.info(f"列名重命名映射: {rename_dict}")
logger.error(f"未找到条码列: {file_path}") df = df.rename(columns=rename_dict)
return None logger.info(f"重命名后的列名: {df.columns.tolist()}")
else:
df = df.rename(columns=mapped_columns) logger.warning(f"未找到可映射的列名: {file_path}")
logger.info(f"列名映射结果: {mapped_columns}")
return df return df
@ -233,21 +268,31 @@ class PurchaseOrderMerger:
# 处理赠送量列不存在的情况 # 处理赠送量列不存在的情况
if '赠送量' not in df.columns: if '赠送量' not in df.columns:
df['赠送量'] = pd.NA df['赠送量'] = 0
# 选择需要的列 # 选择并清理需要的列
selected_df = df[['条码', '采购量', '采购单价', '赠送量']].copy() cleaned_df = pd.DataFrame()
# 清理和转换数据 # 清理条码 - 确保是字符串且无小数点
selected_df['条码'] = selected_df['条码'].apply(lambda x: format_barcode(x) if pd.notna(x) else x) cleaned_df['条码'] = df['条码'].apply(lambda x: format_barcode(x) if pd.notna(x) else '')
selected_df['采购量'] = pd.to_numeric(selected_df['采购量'], errors='coerce')
selected_df['采购单价'] = pd.to_numeric(selected_df['采购单价'], errors='coerce')
selected_df['赠送量'] = pd.to_numeric(selected_df['赠送量'], errors='coerce')
# 过滤无效行 # 清理采购量 - 确保是数字
valid_df = selected_df.dropna(subset=['条码', '采购量']) cleaned_df['采购量'] = pd.to_numeric(df['采购量'], errors='coerce').fillna(0)
processed_dfs.append(valid_df) # 清理单价 - 确保是数字并保留4位小数
cleaned_df['采购单价'] = pd.to_numeric(df['采购单价'], errors='coerce').fillna(0).round(4)
# 清理赠送量 - 确保是数字
cleaned_df['赠送量'] = pd.to_numeric(df['赠送量'], errors='coerce').fillna(0)
# 过滤无效行 - 条码为空或采购量为0的行跳过
valid_df = cleaned_df[(cleaned_df['条码'] != '') & (cleaned_df['采购量'] > 0)]
if len(valid_df) > 0:
processed_dfs.append(valid_df)
logger.info(f"处理文件 {i+1}: 有效记录 {len(valid_df)}")
else:
logger.warning(f"处理文件 {i+1}: 没有有效记录")
if not processed_dfs: if not processed_dfs:
logger.warning("没有有效的数据帧用于合并") logger.warning("没有有效的数据帧用于合并")
@ -257,26 +302,27 @@ class PurchaseOrderMerger:
merged_df = pd.concat(processed_dfs, ignore_index=True) merged_df = pd.concat(processed_dfs, ignore_index=True)
# 按条码和单价分组,合并相同商品 # 按条码和单价分组,合并相同商品
merged_df['采购单价'] = merged_df['采购单价'].round(4) # 四舍五入到4位小数避免浮点误差 # 四舍五入到4位小数避免浮点误差导致相同价格被当作不同价格
merged_df['采购单价'] = merged_df['采购单价'].round(4)
# 对于同一条码和单价的商品,合并数量和赠送量 # 对于同一条码和单价的商品,合并数量和赠送量
grouped = merged_df.groupby(['条码', '采购单价'], as_index=False).agg({ result = merged_df.groupby(['条码', '采购单价'], as_index=False).agg({
'采购量': 'sum', '采购量': 'sum',
'赠送量': lambda x: sum(x.dropna()) if len(x.dropna()) > 0 else pd.NA '赠送量': 'sum'
}) })
# 计算其他信息
grouped['采购金额'] = grouped['采购量'] * grouped['采购单价']
# 排序,按条码升序 # 排序,按条码升序
result = grouped.sort_values('条码').reset_index(drop=True) result = result.sort_values('条码').reset_index(drop=True)
# 设置为0的赠送量设为空
result.loc[result['赠送量'] == 0, '赠送量'] = pd.NA
logger.info(f"合并完成,共 {len(result)} 条商品记录") logger.info(f"合并完成,共 {len(result)} 条商品记录")
return result return result
def create_merged_purchase_order(self, df: pd.DataFrame) -> Optional[str]: def create_merged_purchase_order(self, df: pd.DataFrame) -> Optional[str]:
""" """
创建合并的采购单文件 创建合并的采购单文件完全按照银豹格式要求
Args: Args:
df: 合并后的数据帧 df: 合并后的数据帧
@ -289,39 +335,55 @@ class PurchaseOrderMerger:
template_workbook = xlrd.open_workbook(self.template_path, formatting_info=True) template_workbook = xlrd.open_workbook(self.template_path, formatting_info=True)
template_sheet = template_workbook.sheet_by_index(0) template_sheet = template_workbook.sheet_by_index(0)
# 首先分析模板结构,确定关键列的位置
logger.info(f"分析模板结构")
for i in range(min(5, template_sheet.nrows)):
row_values = [str(cell.value).strip() for cell in template_sheet.row(i)]
logger.debug(f"模板第{i+1}行: {row_values}")
# 银豹模板的标准列位置:
# 条码列(商品条码): B列(索引1)
barcode_col = 1
# 采购量列: C列(索引2)
quantity_col = 2
# 赠送量列: D列(索引3)
gift_col = 3
# 采购单价列: E列(索引4)
price_col = 4
# 找到数据开始行 - 通常是第二行(索引1)
data_start_row = 1
# 创建可写的副本 # 创建可写的副本
output_workbook = xlcopy(template_workbook) output_workbook = xlcopy(template_workbook)
output_sheet = output_workbook.get_sheet(0) output_sheet = output_workbook.get_sheet(0)
# 填充商品信息 # 设置单价的格式样式保留4位小数
start_row = 4 # 从第5行开始填充数据索引从0开始 price_style = xlwt.XFStyle()
price_style.num_format_str = '0.0000'
# 数量格式
quantity_style = xlwt.XFStyle()
quantity_style.num_format_str = '0'
# 遍历数据并填充到Excel
for i, (_, row) in enumerate(df.iterrows()): for i, (_, row) in enumerate(df.iterrows()):
r = start_row + i r = data_start_row + i
# 序号 # 只填充银豹采购单格式要求的4个列条码、采购量、赠送量、采购单价
output_sheet.write(r, 0, i + 1)
# 商品编码(条码) # 条码(必填)- B列(1)
output_sheet.write(r, 1, row['条码']) output_sheet.write(r, barcode_col, row['条码'])
# 商品名称(合并单没有名称信息,留空)
output_sheet.write(r, 2, "") # 采购量(必填)- C列(2)
# 规格(合并单没有规格信息,留空) output_sheet.write(r, quantity_col, float(row['采购量']), quantity_style)
output_sheet.write(r, 3, "")
# 单位(合并单没有单位信息,留空) # 赠送量 - D列(3)
output_sheet.write(r, 4, "") if pd.notna(row['赠送量']) and float(row['赠送量']) > 0:
# 单价 output_sheet.write(r, gift_col, float(row['赠送量']), quantity_style)
output_sheet.write(r, 5, row['采购单价'])
# 采购数量 # 采购单价(必填)- E列(4)
output_sheet.write(r, 6, row['采购量']) output_sheet.write(r, price_col, float(row['采购单价']), price_style)
# 采购金额
output_sheet.write(r, 7, row['采购金额'])
# 税率
output_sheet.write(r, 8, 0)
# 赠送量
if pd.notna(row['赠送量']):
output_sheet.write(r, 9, row['赠送量'])
else:
output_sheet.write(r, 9, "")
# 生成输出文件名 # 生成输出文件名
timestamp = datetime.now().strftime("%Y%m%d%H%M%S") timestamp = datetime.now().strftime("%Y%m%d%H%M%S")
@ -329,7 +391,7 @@ class PurchaseOrderMerger:
# 保存文件 # 保存文件
output_workbook.save(output_file) output_workbook.save(output_file)
logger.info(f"合并采购单已保存到: {output_file}") logger.info(f"合并采购单已保存到: {output_file},共{len(df)}条记录")
return output_file return output_file
except Exception as e: except Exception as e:

View File

@ -255,12 +255,22 @@ class ExcelProcessor:
'barcode': barcode, 'barcode': barcode,
'name': str(row[column_mapping['name']]) if column_mapping.get('name') else '', 'name': str(row[column_mapping['name']]) if column_mapping.get('name') else '',
'quantity': quantity_value, 'quantity': quantity_value,
'price': float(row[column_mapping['price']]) if column_mapping.get('price') and not pd.isna(row[column_mapping['price']]) else 0, 'price': 0,
'unit': str(row[column_mapping['unit']]) if column_mapping.get('unit') and not pd.isna(row[column_mapping['unit']]) else '', 'unit': str(row[column_mapping['unit']]) if column_mapping.get('unit') and not pd.isna(row[column_mapping['unit']]) else '',
'specification': '', 'specification': '',
'package_quantity': None 'package_quantity': None
} }
# 处理价格字段 - 清理可能的换行符和空格
if column_mapping.get('price') and not pd.isna(row[column_mapping['price']]):
price_str = str(row[column_mapping['price']])
# 清理换行符、空格并替换逗号
price_str = price_str.replace('\n', '').replace(' ', '').replace(',', '.')
try:
product['price'] = float(price_str)
except ValueError:
logger.warning(f"价格转换失败,原始值: '{price_str}'使用默认值0")
# 清理单位 # 清理单位
if product['unit'] == 'nan' or product['unit'] == 'None': if product['unit'] == 'nan' or product['unit'] == 'None':
product['unit'] = '' product['unit'] = ''

View File

@ -198,3 +198,71 @@
2025-05-02 22:40:56,996 - __main__ - INFO - 发现 1 个采购单文件 2025-05-02 22:40:56,996 - __main__ - INFO - 发现 1 个采购单文件
2025-05-02 22:40:56,996 - __main__ - WARNING - 只有1个采购单文件 D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250502214456.xls无需合并 2025-05-02 22:40:56,996 - __main__ - WARNING - 只有1个采购单文件 D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250502214456.xls无需合并
2025-05-02 22:40:56,996 - __main__ - INFO - === 完整流程处理成功(只有一个文件,跳过合并)=== 2025-05-02 22:40:56,996 - __main__ - INFO - === 完整流程处理成功(只有一个文件,跳过合并)===
2025-05-03 12:54:57,235 - __main__ - INFO - === 流程步骤 1: OCR识别 ===
2025-05-03 12:54:57,236 - __main__ - INFO - 批量处理所有图片
2025-05-03 12:55:00,228 - __main__ - INFO - OCR处理完成总计: 1成功: 1
2025-05-03 12:55:00,228 - __main__ - INFO - === 流程步骤 2: Excel处理 ===
2025-05-03 12:55:00,229 - __main__ - INFO - 处理最新的Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250502214456.xlsx
2025-05-03 12:55:14,451 - __main__ - INFO - Excel处理成功输出文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250502214456.xls
2025-05-03 12:55:14,451 - __main__ - INFO - === 流程步骤 3: 订单合并 ===
2025-05-03 12:55:14,452 - __main__ - INFO - 发现 1 个采购单文件
2025-05-03 12:55:14,452 - __main__ - WARNING - 只有1个采购单文件 D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250502214456.xls无需合并
2025-05-03 12:55:14,452 - __main__ - INFO - === 完整流程处理成功(只有一个文件,跳过合并)===
2025-05-03 14:44:17,320 - __main__ - INFO - === 流程步骤 1: OCR识别 ===
2025-05-03 14:44:17,320 - __main__ - INFO - 批量处理所有图片
2025-05-03 14:44:19,916 - __main__ - INFO - OCR处理完成总计: 1成功: 1
2025-05-03 14:44:19,917 - __main__ - INFO - === 流程步骤 2: Excel处理 ===
2025-05-03 14:44:19,921 - __main__ - INFO - 处理最新的Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250503144404.xlsx
2025-05-03 14:44:26,125 - __main__ - INFO - Excel处理成功输出文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250503144404.xls
2025-05-03 14:44:26,125 - __main__ - INFO - === 流程步骤 3: 订单合并 ===
2025-05-03 14:44:26,125 - __main__ - INFO - 发现 2 个采购单文件
2025-05-03 14:44:26,126 - __main__ - INFO - 合并所有采购单文件: 2 个
2025-05-03 14:44:30,400 - __main__ - ERROR - 订单合并失败
2025-05-03 14:45:44,522 - __main__ - INFO - 批量处理模式
2025-05-03 14:45:47,101 - __main__ - INFO - 批量处理完成,总计: 1成功: 1
2025-05-03 14:45:58,809 - __main__ - INFO - 处理Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250503144404.xlsx
2025-05-03 14:46:03,478 - __main__ - INFO - Excel处理成功输出文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250503144404.xls
2025-05-03 14:53:52,353 - __main__ - INFO - === 流程步骤 1: OCR识别 ===
2025-05-03 14:53:52,354 - __main__ - INFO - 批量处理所有图片
2025-05-03 14:53:54,304 - __main__ - INFO - OCR处理完成总计: 1成功: 1
2025-05-03 14:53:54,304 - __main__ - INFO - === 流程步骤 2: Excel处理 ===
2025-05-03 14:53:54,305 - __main__ - INFO - 处理最新的Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250503145328.xlsx
2025-05-03 14:53:55,098 - __main__ - ERROR - Excel处理失败
2025-05-03 15:43:36,733 - __main__ - INFO - 处理Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250503145328.xlsx
2025-05-03 15:43:37,414 - __main__ - ERROR - Excel处理失败
2025-05-05 18:55:02,303 - __main__ - INFO - === 流程步骤 1: OCR识别 ===
2025-05-05 18:55:02,304 - __main__ - INFO - 批量处理所有图片
2025-05-05 18:55:04,011 - __main__ - INFO - OCR处理完成总计: 1成功: 1
2025-05-05 18:55:04,012 - __main__ - INFO - === 流程步骤 2: Excel处理 ===
2025-05-05 18:55:04,014 - __main__ - INFO - 处理最新的Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250505185454.xlsx
2025-05-05 18:55:13,152 - __main__ - INFO - Excel处理成功输出文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185454.xls
2025-05-05 18:55:13,152 - __main__ - INFO - === 流程步骤 3: 订单合并 ===
2025-05-05 18:55:13,153 - __main__ - INFO - 发现 1 个采购单文件
2025-05-05 18:55:13,153 - __main__ - WARNING - 只有1个采购单文件 D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185454.xls无需合并
2025-05-05 18:55:13,153 - __main__ - INFO - === 完整流程处理成功(只有一个文件,跳过合并)===
2025-05-05 18:59:17,853 - __main__ - INFO - 批量处理模式
2025-05-05 18:59:23,223 - __main__ - INFO - 批量处理完成,总计: 2成功: 2
2025-05-05 19:00:26,075 - __main__ - INFO - 处理Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250505185842.xlsx
2025-05-05 19:00:44,019 - __main__ - INFO - Excel处理成功输出文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185842.xls
2025-05-05 19:02:32,169 - __main__ - INFO - 处理Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250505185908.xlsx
2025-05-05 19:02:44,931 - __main__ - INFO - Excel处理成功输出文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185908.xls
2025-05-05 19:02:54,875 - __main__ - INFO - 合并所有采购单文件: 2 个
2025-05-05 19:02:54,901 - __main__ - ERROR - 订单合并失败
2025-05-05 19:15:12,554 - __main__ - INFO - 处理Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250505185908.xlsx
2025-05-05 19:15:22,303 - __main__ - INFO - Excel处理成功输出文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185908.xls
2025-05-05 19:18:54,542 - __main__ - INFO - 合并所有采购单文件: 2 个
2025-05-05 19:18:54,840 - __main__ - INFO - 订单合并成功,输出文件: D:\My Documents\python\orc-order-v2\data\output\合并采购单_20250505191854.xls
2025-05-05 19:19:59,315 - __main__ - INFO - 处理Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250505185908.xlsx
2025-05-05 19:20:09,861 - __main__ - INFO - Excel处理成功输出文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185908.xls
2025-05-05 19:22:18,533 - __main__ - INFO - 处理Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250505185908.xlsx
2025-05-05 19:22:28,611 - __main__ - INFO - Excel处理成功输出文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185908.xls
2025-05-05 19:22:37,226 - __main__ - INFO - 合并所有采购单文件: 2 个
2025-05-05 19:22:37,407 - __main__ - INFO - 订单合并成功,输出文件: D:\My Documents\python\orc-order-v2\data\output\合并采购单_20250505192237.xls
2025-05-05 19:28:36,770 - __main__ - INFO - 合并所有采购单文件: 2 个
2025-05-05 19:28:36,856 - __main__ - INFO - 订单合并成功,输出文件: D:\My Documents\python\orc-order-v2\data\output\合并采购单_20250505192836.xls
2025-05-05 19:29:16,917 - __main__ - INFO - 合并所有采购单文件: 2 个
2025-05-05 19:29:17,073 - __main__ - INFO - 订单合并成功,输出文件: D:\My Documents\python\orc-order-v2\data\output\合并采购单_20250505192917.xls
2025-05-05 19:30:06,156 - __main__ - INFO - 合并所有采购单文件: 2 个
2025-05-05 19:30:06,305 - __main__ - INFO - 订单合并成功,输出文件: D:\My Documents\python\orc-order-v2\data\output\合并采购单_20250505193006.xls
2025-05-05 19:30:28,309 - __main__ - INFO - 合并所有采购单文件: 2 个
2025-05-05 19:30:28,426 - __main__ - INFO - 订单合并成功,输出文件: D:\My Documents\python\orc-order-v2\data\output\合并采购单_20250505193028.xls

View File

@ -653,3 +653,335 @@
2025-05-02 22:40:53,274 - app.core.excel.converter - INFO - 从名称推断规格(容量): 12.9L桶装水 -> 12.9L*1 2025-05-02 22:40:53,274 - app.core.excel.converter - INFO - 从名称推断规格(容量): 12.9L桶装水 -> 12.9L*1
2025-05-02 22:40:53,274 - app.core.excel.converter - INFO - 解析容量规格: 12.9L*1 -> 12.9L*1 2025-05-02 22:40:53,274 - app.core.excel.converter - INFO - 解析容量规格: 12.9L*1 -> 12.9L*1
2025-05-02 22:40:53,274 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 1.0, 单价: 0.0, 单位: 桶 2025-05-02 22:40:53,274 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 1.0, 单价: 0.0, 单位: 桶
2025-05-03 12:55:01,092 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 3箱 -> 数量=3.0, 单位=箱
2025-05-03 12:55:01,093 - app.core.excel.converter - INFO - 从名称推断规格(入白膜): 550纯净水24入白膜 -> 1*24
2025-05-03 12:55:01,094 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24
2025-05-03 12:55:01,094 - app.core.excel.converter - INFO - 箱单位处理: 数量: 3.0 -> 72.0, 单价: 0.0 -> 0, 单位: 箱 -> 瓶
2025-05-03 12:55:01,094 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 1箱 -> 数量=1.0, 单位=箱
2025-05-03 12:55:01,095 - app.core.excel.converter - INFO - 从名称推断规格(入纸箱): 450果园30%橙子15入纸箱 -> 1*15
2025-05-03 12:55:01,095 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15
2025-05-03 12:55:01,095 - app.core.excel.converter - INFO - 箱单位处理: 数量: 1.0 -> 15.0, 单价: 0.0 -> 0, 单位: 箱 -> 瓶
2025-05-03 12:55:01,095 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 2箱 -> 数量=2.0, 单位=箱
2025-05-03 12:55:01,096 - app.core.excel.converter - INFO - 从名称推断规格(入纸箱): 445水溶C血橙15入纸箱 -> 1*15
2025-05-03 12:55:01,096 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15
2025-05-03 12:55:01,096 - app.core.excel.converter - INFO - 箱单位处理: 数量: 2.0 -> 30.0, 单价: 56.0 -> 3.7333333333333334, 单位: 箱 -> 瓶
2025-05-03 12:55:01,264 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 2箱 -> 数量=2.0, 单位=箱
2025-05-03 12:55:01,265 - app.core.excel.converter - INFO - 从名称推断规格(纸箱): 445水溶C柠檬15纸箱 -> 1*15
2025-05-03 12:55:01,265 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15
2025-05-03 12:55:01,266 - app.core.excel.converter - INFO - 箱单位处理: 数量: 2.0 -> 30.0, 单价: 56.0 -> 3.7333333333333334, 单位: 箱 -> 瓶
2025-05-03 12:55:01,266 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 3箱 -> 数量=3.0, 单位=箱
2025-05-03 12:55:01,266 - app.core.excel.converter - INFO - 从名称推断规格(纸箱): 445水溶C青皮桔15纸箱 -> 1*15
2025-05-03 12:55:01,267 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15
2025-05-03 12:55:01,267 - app.core.excel.converter - INFO - 箱单位处理: 数量: 3.0 -> 45.0, 单价: 56.0 -> 3.7333333333333334, 单位: 箱 -> 瓶
2025-05-03 12:55:01,268 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 1箱 -> 数量=1.0, 单位=箱
2025-05-03 12:55:01,269 - app.core.excel.converter - INFO - 从名称推断规格(纸箱): 445水溶C西柚15纸箱 -> 1*15
2025-05-03 12:55:01,269 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15
2025-05-03 12:55:01,269 - app.core.excel.converter - INFO - 箱单位处理: 数量: 1.0 -> 15.0, 单价: 56.0 -> 3.7333333333333334, 单位: 箱 -> 瓶
2025-05-03 12:55:01,270 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 3箱 -> 数量=3.0, 单位=箱
2025-05-03 12:55:01,270 - app.core.excel.converter - INFO - 从名称推断规格(纸箱): 500树叶茉莉花茶15纸箱 -> 1*15
2025-05-03 12:55:01,271 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15
2025-05-03 12:55:01,271 - app.core.excel.converter - INFO - 箱单位处理: 数量: 3.0 -> 45.0, 单价: 55.0 -> 3.6666666666666665, 单位: 箱 -> 瓶
2025-05-03 12:55:01,271 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 1箱 -> 数量=1.0, 单位=箱
2025-05-03 12:55:06,817 - app.core.excel.converter - INFO - 从名称推断规格(纸箱): 500树叶乌龙茶15纸箱 -> 1*15
2025-05-03 12:55:06,817 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15
2025-05-03 12:55:06,818 - app.core.excel.converter - INFO - 箱单位处理: 数量: 1.0 -> 15.0, 单价: 55.0 -> 3.6666666666666665, 单位: 箱 -> 瓶
2025-05-03 12:55:06,818 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 2箱 -> 数量=2.0, 单位=箱
2025-05-03 12:55:06,818 - app.core.excel.converter - INFO - 从名称推断规格(纸箱): 500树叶绿茶15纸箱 -> 1*15
2025-05-03 12:55:06,819 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15
2025-05-03 12:55:06,819 - app.core.excel.converter - INFO - 箱单位处理: 数量: 2.0 -> 30.0, 单价: 55.0 -> 3.6666666666666665, 单位: 箱 -> 瓶
2025-05-03 12:55:06,819 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 1箱 -> 数量=1.0, 单位=箱
2025-05-03 12:55:06,820 - app.core.excel.converter - INFO - 从名称推断规格(入纸箱): 900树叶青柑普洱12入纸箱 -> 1*12
2025-05-03 12:55:06,820 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12
2025-05-03 12:55:06,820 - app.core.excel.converter - INFO - 箱单位处理: 数量: 1.0 -> 12.0, 单价: 62.0 -> 5.166666666666667, 单位: 箱 -> 瓶
2025-05-03 12:55:06,821 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 1箱 -> 数量=1.0, 单位=箱
2025-05-03 12:55:06,821 - app.core.excel.converter - INFO - 从名称推断规格(纸箱): 410苏打天然水柠檬15纸箱 -> 1*15
2025-05-03 12:55:06,821 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15
2025-05-03 12:55:06,821 - app.core.excel.converter - INFO - 箱单位处理: 数量: 1.0 -> 15.0, 单价: 43.0 -> 2.8666666666666667, 单位: 箱 -> 瓶
2025-05-03 12:55:06,822 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 5桶 -> 数量=5.0, 单位=桶
2025-05-03 12:55:06,823 - app.core.excel.converter - INFO - 从名称推断规格(容量): 12.9L桶装水 -> 12.9L*1
2025-05-03 12:55:10,474 - app.core.excel.converter - INFO - 解析容量规格: 12.9L*1 -> 12.9L*1
2025-05-03 12:55:10,474 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 16.0, 单位: 桶
2025-05-03 12:55:10,474 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 1桶 -> 数量=1.0, 单位=桶
2025-05-03 12:55:10,475 - app.core.excel.converter - INFO - 从名称推断规格(容量): 12.9L桶装水 -> 12.9L*1
2025-05-03 12:55:10,475 - app.core.excel.converter - INFO - 解析容量规格: 12.9L*1 -> 12.9L*1
2025-05-03 12:55:10,475 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 1.0, 单价: 0.0, 单位: 桶
2025-05-03 14:44:20,723 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 1箱 -> 数量=1.0, 单位=箱
2025-05-03 14:44:20,726 - app.core.excel.converter - INFO - 从名称推断规格(白膜): 550水24白膜 -> 1*24
2025-05-03 14:44:20,728 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24
2025-05-03 14:44:20,728 - app.core.excel.converter - INFO - 箱单位处理: 数量: 1.0 -> 24.0, 单价: 0.0 -> 0, 单位: 箱 -> 瓶
2025-05-03 14:44:20,729 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 2箱 -> 数量=2.0, 单位=箱
2025-05-03 14:44:20,729 - app.core.excel.converter - INFO - 从名称推断规格(入纸箱): 1.5树叶茉莉花茶6入纸箱装 -> 1*6
2025-05-03 14:44:20,729 - app.core.excel.converter - INFO - 解析二级规格: 1*6 -> 1*6
2025-05-03 14:44:20,730 - app.core.excel.converter - INFO - 箱单位处理: 数量: 2.0 -> 12.0, 单价: 50.0 -> 8.333333333333334, 单位: 箱 -> 瓶
2025-05-03 14:44:20,730 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 1箱 -> 数量=1.0, 单位=箱
2025-05-03 14:44:20,730 - app.core.excel.converter - INFO - 从名称推断规格(入纸箱): 1.5树叶乌龙茶6入纸箱装 -> 1*6
2025-05-03 14:44:20,731 - app.core.excel.converter - INFO - 解析二级规格: 1*6 -> 1*6
2025-05-03 14:44:20,731 - app.core.excel.converter - INFO - 箱单位处理: 数量: 1.0 -> 6.0, 单价: 50.0 -> 8.333333333333334, 单位: 箱 -> 瓶
2025-05-03 14:44:20,939 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 1箱 -> 数量=1.0, 单位=箱
2025-05-03 14:44:20,939 - app.core.excel.converter - INFO - 从名称推断规格(入纸箱): 1.5树叶青柑普洱茶6入纸箱装 -> 1*6
2025-05-03 14:44:20,939 - app.core.excel.converter - INFO - 解析二级规格: 1*6 -> 1*6
2025-05-03 14:44:20,940 - app.core.excel.converter - INFO - 箱单位处理: 数量: 1.0 -> 6.0, 单价: 50.0 -> 8.333333333333334, 单位: 箱 -> 瓶
2025-05-03 14:44:20,940 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 1箱 -> 数量=1.0, 单位=箱
2025-05-03 14:44:20,941 - app.core.excel.converter - INFO - 从名称推断规格(直接格式): 410-农夫山泉-原味1*15-纸箱装 -> 1*15
2025-05-03 14:44:20,941 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15
2025-05-03 14:44:20,941 - app.core.excel.converter - INFO - 箱单位处理: 数量: 1.0 -> 15.0, 单价: 43.0 -> 2.8666666666666667, 单位: 箱 -> 瓶
2025-05-03 14:44:20,942 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 5箱 -> 数量=5.0, 单位=箱
2025-05-03 14:44:20,942 - app.core.excel.converter - INFO - 从名称推断规格(入白膜): 5L水4入白膜 -> 1*4
2025-05-03 14:44:20,943 - app.core.excel.converter - INFO - 解析二级规格: 1*4 -> 1*4
2025-05-03 14:44:20,943 - app.core.excel.converter - INFO - 箱单位处理: 数量: 5.0 -> 20.0, 单价: 29.0 -> 7.25, 单位: 箱 -> 瓶
2025-05-03 14:44:20,944 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 1箱 -> 数量=1.0, 单位=箱
2025-05-03 14:44:20,944 - app.core.excel.converter - INFO - 从名称推断规格(入白膜): 5L水4入白膜 -> 1*4
2025-05-03 14:44:20,944 - app.core.excel.converter - INFO - 解析二级规格: 1*4 -> 1*4
2025-05-03 14:44:20,944 - app.core.excel.converter - INFO - 箱单位处理: 数量: 1.0 -> 4.0, 单价: 0.0 -> 0, 单位: 箱 -> 瓶
2025-05-03 14:45:59,495 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 1箱 -> 数量=1.0, 单位=箱
2025-05-03 14:45:59,496 - app.core.excel.converter - INFO - 从名称推断规格(白膜): 550水24白膜 -> 1*24
2025-05-03 14:45:59,498 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24
2025-05-03 14:45:59,499 - app.core.excel.converter - INFO - 箱单位处理: 数量: 1.0 -> 24.0, 单价: 0.0 -> 0, 单位: 箱 -> 瓶
2025-05-03 14:45:59,499 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 2箱 -> 数量=2.0, 单位=箱
2025-05-03 14:45:59,500 - app.core.excel.converter - INFO - 从名称推断规格(入纸箱): 1.5树叶茉莉花茶6入纸箱装 -> 1*6
2025-05-03 14:45:59,500 - app.core.excel.converter - INFO - 解析二级规格: 1*6 -> 1*6
2025-05-03 14:45:59,500 - app.core.excel.converter - INFO - 箱单位处理: 数量: 2.0 -> 12.0, 单价: 50.0 -> 8.333333333333334, 单位: 箱 -> 瓶
2025-05-03 14:45:59,501 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 1箱 -> 数量=1.0, 单位=箱
2025-05-03 14:45:59,502 - app.core.excel.converter - INFO - 从名称推断规格(入纸箱): 1.5树叶乌龙茶6入纸箱装 -> 1*6
2025-05-03 14:45:59,502 - app.core.excel.converter - INFO - 解析二级规格: 1*6 -> 1*6
2025-05-03 14:45:59,503 - app.core.excel.converter - INFO - 箱单位处理: 数量: 1.0 -> 6.0, 单价: 50.0 -> 8.333333333333334, 单位: 箱 -> 瓶
2025-05-03 14:45:59,535 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 1箱 -> 数量=1.0, 单位=箱
2025-05-03 14:45:59,535 - app.core.excel.converter - INFO - 从名称推断规格(入纸箱): 1.5树叶青柑普洱茶6入纸箱装 -> 1*6
2025-05-03 14:45:59,535 - app.core.excel.converter - INFO - 解析二级规格: 1*6 -> 1*6
2025-05-03 14:45:59,535 - app.core.excel.converter - INFO - 箱单位处理: 数量: 1.0 -> 6.0, 单价: 50.0 -> 8.333333333333334, 单位: 箱 -> 瓶
2025-05-03 14:45:59,536 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 1箱 -> 数量=1.0, 单位=箱
2025-05-03 14:45:59,536 - app.core.excel.converter - INFO - 从名称推断规格(直接格式): 410-农夫山泉-原味1*15-纸箱装 -> 1*15
2025-05-03 14:45:59,536 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15
2025-05-03 14:45:59,536 - app.core.excel.converter - INFO - 箱单位处理: 数量: 1.0 -> 15.0, 单价: 43.0 -> 2.8666666666666667, 单位: 箱 -> 瓶
2025-05-03 14:45:59,537 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 5箱 -> 数量=5.0, 单位=箱
2025-05-03 14:45:59,537 - app.core.excel.converter - INFO - 从名称推断规格(入白膜): 5L水4入白膜 -> 1*4
2025-05-03 14:45:59,537 - app.core.excel.converter - INFO - 解析二级规格: 1*4 -> 1*4
2025-05-03 14:45:59,537 - app.core.excel.converter - INFO - 箱单位处理: 数量: 5.0 -> 20.0, 单价: 29.0 -> 7.25, 单位: 箱 -> 瓶
2025-05-03 14:45:59,537 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 1箱 -> 数量=1.0, 单位=箱
2025-05-03 14:45:59,538 - app.core.excel.converter - INFO - 从名称推断规格(入白膜): 5L水4入白膜 -> 1*4
2025-05-03 14:45:59,538 - app.core.excel.converter - INFO - 解析二级规格: 1*4 -> 1*4
2025-05-03 14:45:59,538 - app.core.excel.converter - INFO - 箱单位处理: 数量: 1.0 -> 4.0, 单价: 0.0 -> 0, 单位: 箱 -> 瓶
2025-05-05 18:55:05,289 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24
2025-05-05 18:55:05,289 - app.core.excel.converter - INFO - 件单位处理: 数量: 1.0 -> 24.0, 单价: 40.0 -> 1.6666666666666667, 单位: 件 -> 瓶
2025-05-05 18:55:05,290 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15
2025-05-05 18:55:05,291 - app.core.excel.converter - INFO - 件单位处理: 数量: 1.0 -> 15.0, 单价: 50.0 -> 3.3333333333333335, 单位: 件 -> 瓶
2025-05-05 18:55:05,291 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15
2025-05-05 18:55:05,291 - app.core.excel.converter - INFO - 件单位处理: 数量: 1.0 -> 15.0, 单价: 50.0 -> 3.3333333333333335, 单位: 件 -> 瓶
2025-05-05 18:55:05,293 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15
2025-05-05 18:55:05,293 - app.core.excel.converter - INFO - 件单位处理: 数量: 1.0 -> 15.0, 单价: 50.0 -> 3.3333333333333335, 单位: 件 -> 瓶
2025-05-05 18:55:05,293 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15
2025-05-05 18:55:05,294 - app.core.excel.converter - INFO - 件单位处理: 数量: 3.0 -> 45.0, 单价: 43.0 -> 2.8666666666666667, 单位: 件 -> 瓶
2025-05-05 18:55:05,501 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24
2025-05-05 18:55:05,501 - app.core.excel.converter - INFO - 件单位处理: 数量: 5.0 -> 120.0, 单价: 22.0 -> 0.9166666666666666, 单位: 件 -> 瓶
2025-05-05 18:55:05,502 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24
2025-05-05 18:55:05,502 - app.core.excel.converter - INFO - 件单位处理: 数量: 3.0 -> 72.0, 单价: 43.0 -> 1.7916666666666667, 单位: 件 -> 瓶
2025-05-05 19:00:26,699 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12
2025-05-05 19:00:26,700 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 12.0, 单位: 包
2025-05-05 19:00:26,704 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24
2025-05-05 19:00:26,704 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 5.0, 单位: 包
2025-05-05 19:00:26,705 - app.core.excel.converter - INFO - 解析二级规格: 1*96 -> 1*96
2025-05-05 19:00:26,705 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 12.0, 单价: 2.4, 单位: 包
2025-05-05 19:00:26,706 - app.core.excel.converter - INFO - 解析二级规格: 1*16 -> 1*16
2025-05-05 19:00:26,706 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 6.0, 单价: 8.5, 单位: 提
2025-05-05 19:00:26,706 - app.core.excel.converter - INFO - 解析二级规格: 1*16 -> 1*16
2025-05-05 19:00:26,706 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 3.0, 单价: 10.5, 单位: 提
2025-05-05 19:00:26,706 - app.core.excel.converter - INFO - 解析二级规格: 1*20 -> 1*20
2025-05-05 19:00:26,735 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 2.0, 单价: 6.5, 单位: 提
2025-05-05 19:00:26,736 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12
2025-05-05 19:00:26,736 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 3.0, 单价: 12.5, 单位: 提
2025-05-05 19:00:26,737 - app.core.excel.converter - INFO - 解析二级规格: 1*18 -> 1*18
2025-05-05 19:00:26,737 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 3.0, 单价: 8.5, 单位: 提
2025-05-05 19:00:26,738 - app.core.excel.converter - INFO - 解析二级规格: 1*20 -> 1*20
2025-05-05 19:00:26,738 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 2.0, 单价: 8.5, 单位: 提
2025-05-05 19:00:26,742 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48
2025-05-05 19:00:26,742 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 6.2, 单位: 包
2025-05-05 19:00:26,743 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24
2025-05-05 19:00:26,743 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 7.5, 单位: 包
2025-05-05 19:00:26,744 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24
2025-05-05 19:00:26,744 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 6.5, 单位: 包
2025-05-05 19:00:26,745 - app.core.excel.converter - INFO - 解析二级规格: 1*30 -> 1*30
2025-05-05 19:00:26,745 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 6.6, 单位: 包
2025-05-05 19:00:30,734 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48
2025-05-05 19:00:30,735 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 3.6, 单位: 包
2025-05-05 19:00:30,735 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24
2025-05-05 19:00:30,736 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 5.0, 单位: 包
2025-05-05 19:00:30,736 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48
2025-05-05 19:00:30,736 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 4.2, 单位: 包
2025-05-05 19:00:30,737 - app.core.excel.converter - INFO - 解析二级规格: 1*36 -> 1*36
2025-05-05 19:00:30,737 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 2.8, 单位: 包
2025-05-05 19:00:30,738 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48
2025-05-05 19:00:30,738 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 6.2, 单位: 包
2025-05-05 19:00:30,739 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24
2025-05-05 19:00:30,739 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 6.0, 单位: 包
2025-05-05 19:00:30,741 - app.core.excel.converter - INFO - 解析二级规格: 1*60 -> 1*60
2025-05-05 19:00:30,741 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 2.3, 单位: 包
2025-05-05 19:00:30,741 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24
2025-05-05 19:00:30,742 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 4.6, 单位: 包
2025-05-05 19:00:34,622 - app.core.excel.converter - INFO - 解析二级规格: 1*16 -> 1*16
2025-05-05 19:00:34,622 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 6.2, 单位: 包
2025-05-05 19:00:34,623 - app.core.excel.converter - INFO - 解析二级规格: 1*36 -> 1*36
2025-05-05 19:00:34,623 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 5.6, 单位: 包
2025-05-05 19:00:34,624 - app.core.excel.converter - INFO - 解析二级规格: 1*72 -> 1*72
2025-05-05 19:00:34,624 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 1.2, 单位: 个
2025-05-05 19:00:34,625 - app.core.excel.converter - WARNING - 无法解析规格: 380g使用默认值1*1
2025-05-05 19:00:34,625 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 19.0, 单位: 瓶
2025-05-05 19:00:34,625 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12
2025-05-05 19:00:34,626 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 14.5, 单位: 瓶
2025-05-05 19:00:34,626 - app.core.excel.converter - INFO - 解析二级规格: 1*1 -> 1*1
2025-05-05 19:00:34,626 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 16.5, 单位: 瓶
2025-05-05 19:02:32,865 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12
2025-05-05 19:02:32,865 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 24.0, 单位: 瓶
2025-05-05 19:02:32,865 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12
2025-05-05 19:02:32,866 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 24.0, 单位: 瓶
2025-05-05 19:02:32,866 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12
2025-05-05 19:02:32,866 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 19.0, 单位: 瓶
2025-05-05 19:02:32,866 - app.core.excel.converter - INFO - 解析二级规格: 1*4 -> 1*4
2025-05-05 19:02:32,866 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 32.5, 单位: 瓶
2025-05-05 19:02:32,867 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12
2025-05-05 19:02:32,867 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 12.5, 单位: 袋
2025-05-05 19:02:32,926 - app.core.excel.converter - INFO - 解析二级规格: 1*100 -> 1*100
2025-05-05 19:02:32,926 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 2.0, 单价: 14.0, 单位: 盒
2025-05-05 19:02:32,927 - app.core.excel.converter - INFO - 解析二级规格: 1*100 -> 1*100
2025-05-05 19:02:32,927 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 2.0, 单价: 14.0, 单位: 盒
2025-05-05 19:02:32,927 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12
2025-05-05 19:02:32,927 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 12.0, 单价: 6.0, 单位: 双
2025-05-05 19:02:32,934 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48
2025-05-05 19:02:32,934 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 11.5, 单位: 瓶
2025-05-05 19:02:32,935 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48
2025-05-05 19:02:32,935 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 11.5, 单位: 瓶
2025-05-05 19:02:32,935 - app.core.excel.converter - INFO - 解析二级规格: 1*40 -> 1*40
2025-05-05 19:02:32,935 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 15.18, 单位: 套
2025-05-05 19:02:32,935 - app.core.excel.converter - INFO - 解析二级规格: 1*20 -> 1*20
2025-05-05 19:02:32,936 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 22.1, 单位: 套
2025-05-05 19:02:32,936 - app.core.excel.converter - INFO - 解析二级规格: 1*80 -> 1*80
2025-05-05 19:02:36,892 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 10.37, 单位: 瓶
2025-05-05 19:02:36,893 - app.core.excel.converter - INFO - 解析二级规格: 1*60 -> 1*60
2025-05-05 19:02:36,893 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 1.0, 单价: 112.0, 单位: 盒
2025-05-05 19:02:36,894 - app.core.excel.converter - INFO - 解析二级规格: 1*96 -> 1*96
2025-05-05 19:02:36,894 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 3.0, 单价: 15.5, 单位: 盒
2025-05-05 19:02:36,894 - app.core.excel.converter - INFO - 解析二级规格: 1*5 -> 1*5
2025-05-05 19:02:36,894 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 1.0, 单价: 10.0, 单位: 板
2025-05-05 19:02:36,895 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48
2025-05-05 19:02:36,895 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 4.5, 单位: 个
2025-05-05 19:02:36,896 - app.core.excel.converter - INFO - 解析二级规格: 1*40 -> 1*40
2025-05-05 19:02:36,896 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 3.6, 单位: 个
2025-05-05 19:15:13,224 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12
2025-05-05 19:15:13,225 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 24.0, 单位: 瓶
2025-05-05 19:15:13,225 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12
2025-05-05 19:15:13,226 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 24.0, 单位: 瓶
2025-05-05 19:15:13,226 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12
2025-05-05 19:15:13,227 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 19.0, 单位: 瓶
2025-05-05 19:15:13,229 - app.core.excel.converter - INFO - 解析二级规格: 1*4 -> 1*4
2025-05-05 19:15:13,229 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 32.5, 单位: 瓶
2025-05-05 19:15:13,229 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12
2025-05-05 19:15:13,230 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 12.5, 单位: 袋
2025-05-05 19:15:13,232 - app.core.excel.converter - INFO - 解析二级规格: 1*100 -> 1*100
2025-05-05 19:15:13,232 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 2.0, 单价: 14.0, 单位: 盒
2025-05-05 19:15:13,233 - app.core.excel.converter - INFO - 解析二级规格: 1*100 -> 1*100
2025-05-05 19:15:13,233 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 2.0, 单价: 14.0, 单位: 盒
2025-05-05 19:15:13,234 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12
2025-05-05 19:15:13,234 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 12.0, 单价: 6.0, 单位: 双
2025-05-05 19:15:13,242 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48
2025-05-05 19:15:13,242 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 11.5, 单位: 瓶
2025-05-05 19:15:13,243 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48
2025-05-05 19:15:13,243 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 11.5, 单位: 瓶
2025-05-05 19:15:13,244 - app.core.excel.converter - INFO - 解析二级规格: 1*40 -> 1*40
2025-05-05 19:15:13,245 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 15.18, 单位: 套
2025-05-05 19:15:13,246 - app.core.excel.converter - INFO - 解析二级规格: 1*20 -> 1*20
2025-05-05 19:15:13,246 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 22.1, 单位: 套
2025-05-05 19:15:16,010 - app.core.excel.converter - INFO - 解析二级规格: 1*80 -> 1*80
2025-05-05 19:15:16,011 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 10.37, 单位: 瓶
2025-05-05 19:15:16,013 - app.core.excel.converter - INFO - 特殊条码(6901826888138)使用固定单价: 3.7333333333333334
2025-05-05 19:15:16,013 - app.core.excel.converter - INFO - 解析二级规格: 1*30 -> 1*30
2025-05-05 19:15:16,013 - app.core.excel.converter - INFO - 特殊条码(6901826888138)使用固定规格: 1*30, 包装数量=(1, 30, None)
2025-05-05 19:15:16,013 - app.core.excel.converter - INFO - 特殊条码处理: 6901826888138, 数量: 1.0 -> 30.0, 单价: 112.0 -> 3.7333333333333334, 单位: 盒 -> 瓶
2025-05-05 19:15:16,014 - app.core.excel.converter - INFO - 解析二级规格: 1*96 -> 1*96
2025-05-05 19:15:16,014 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 3.0, 单价: 15.5, 单位: 盒
2025-05-05 19:15:16,015 - app.core.excel.converter - INFO - 解析二级规格: 1*5 -> 1*5
2025-05-05 19:15:16,015 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 1.0, 单价: 10.0, 单位: 板
2025-05-05 19:15:16,015 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48
2025-05-05 19:15:16,015 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 4.5, 单位: 个
2025-05-05 19:15:16,016 - app.core.excel.converter - INFO - 解析二级规格: 1*40 -> 1*40
2025-05-05 19:15:16,016 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 3.6, 单位: 个
2025-05-05 19:20:00,079 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12
2025-05-05 19:20:00,081 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 24.0, 单位: 瓶
2025-05-05 19:20:00,082 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12
2025-05-05 19:20:00,082 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 24.0, 单位: 瓶
2025-05-05 19:20:00,082 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12
2025-05-05 19:20:00,113 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 19.0, 单位: 瓶
2025-05-05 19:20:00,118 - app.core.excel.converter - INFO - 解析二级规格: 1*4 -> 1*4
2025-05-05 19:20:00,118 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 32.5, 单位: 瓶
2025-05-05 19:20:00,119 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12
2025-05-05 19:20:00,119 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 12.5, 单位: 袋
2025-05-05 19:20:00,121 - app.core.excel.converter - INFO - 解析二级规格: 1*100 -> 1*100
2025-05-05 19:20:00,121 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 2.0, 单价: 14.0, 单位: 盒
2025-05-05 19:20:00,122 - app.core.excel.converter - INFO - 解析二级规格: 1*100 -> 1*100
2025-05-05 19:20:00,122 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 2.0, 单价: 14.0, 单位: 盒
2025-05-05 19:20:00,123 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12
2025-05-05 19:20:00,123 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 12.0, 单价: 6.0, 单位: 双
2025-05-05 19:20:00,139 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48
2025-05-05 19:20:00,139 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 11.5, 单位: 瓶
2025-05-05 19:20:00,141 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48
2025-05-05 19:20:00,141 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 11.5, 单位: 瓶
2025-05-05 19:20:01,512 - app.core.excel.converter - INFO - 解析二级规格: 1*40 -> 1*40
2025-05-05 19:20:01,512 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 15.18, 单位: 套
2025-05-05 19:20:01,513 - app.core.excel.converter - INFO - 解析二级规格: 1*20 -> 1*20
2025-05-05 19:20:01,513 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 22.1, 单位: 套
2025-05-05 19:20:01,514 - app.core.excel.converter - INFO - 解析二级规格: 1*80 -> 1*80
2025-05-05 19:20:01,514 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 10.37, 单位: 瓶
2025-05-05 19:20:01,515 - app.core.excel.converter - INFO - 解析二级规格: 1*10 -> 1*10
2025-05-05 19:20:01,515 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 1.0, 单价: 296.0, 单位: 盒
2025-05-05 19:20:01,515 - app.core.excel.converter - INFO - 特殊条码(6901826888138)使用固定单价: 3.7333333333333334
2025-05-05 19:20:01,516 - app.core.excel.converter - INFO - 解析二级规格: 1*30 -> 1*30
2025-05-05 19:20:01,516 - app.core.excel.converter - INFO - 特殊条码(6901826888138)使用固定规格: 1*30, 包装数量=(1, 30, None)
2025-05-05 19:20:01,516 - app.core.excel.converter - INFO - 特殊条码处理: 6901826888138, 数量: 1.0 -> 30.0, 单价: 112.0 -> 3.7333333333333334, 单位: 盒 -> 瓶
2025-05-05 19:20:01,517 - app.core.excel.converter - INFO - 解析二级规格: 1*96 -> 1*96
2025-05-05 19:20:01,517 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 3.0, 单价: 15.5, 单位: 盒
2025-05-05 19:20:01,517 - app.core.excel.converter - INFO - 解析二级规格: 1*5 -> 1*5
2025-05-05 19:20:01,518 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 1.0, 单价: 10.0, 单位: 板
2025-05-05 19:20:01,519 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48
2025-05-05 19:20:01,519 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 4.5, 单位: 个
2025-05-05 19:20:01,519 - app.core.excel.converter - INFO - 解析二级规格: 1*40 -> 1*40
2025-05-05 19:20:04,679 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 3.6, 单位: 个
2025-05-05 19:22:19,763 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12
2025-05-05 19:22:19,763 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 24.0, 单位: 瓶
2025-05-05 19:22:19,765 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12
2025-05-05 19:22:19,765 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 24.0, 单位: 瓶
2025-05-05 19:22:19,770 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12
2025-05-05 19:22:19,770 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 19.0, 单位: 瓶
2025-05-05 19:22:19,772 - app.core.excel.converter - INFO - 解析二级规格: 1*4 -> 1*4
2025-05-05 19:22:19,773 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 32.5, 单位: 瓶
2025-05-05 19:22:19,774 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12
2025-05-05 19:22:19,774 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 12.5, 单位: 袋
2025-05-05 19:22:19,776 - app.core.excel.converter - INFO - 解析二级规格: 1*100 -> 1*100
2025-05-05 19:22:19,777 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 2.0, 单价: 14.0, 单位: 盒
2025-05-05 19:22:19,778 - app.core.excel.converter - INFO - 解析二级规格: 1*100 -> 1*100
2025-05-05 19:22:19,778 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 2.0, 单价: 14.0, 单位: 盒
2025-05-05 19:22:19,823 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12
2025-05-05 19:22:19,823 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 12.0, 单价: 6.0, 单位: 双
2025-05-05 19:22:19,824 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12
2025-05-05 19:22:19,824 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 12.0, 单价: 6.0, 单位: 双
2025-05-05 19:22:19,825 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48
2025-05-05 19:22:19,825 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 11.5, 单位: 瓶
2025-05-05 19:22:19,826 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48
2025-05-05 19:22:19,826 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 11.5, 单位: 瓶
2025-05-05 19:22:19,827 - app.core.excel.converter - INFO - 解析二级规格: 1*40 -> 1*40
2025-05-05 19:22:19,827 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 15.18, 单位: 套
2025-05-05 19:22:19,829 - app.core.excel.converter - INFO - 解析二级规格: 1*20 -> 1*20
2025-05-05 19:22:19,829 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 22.1, 单位: 套
2025-05-05 19:22:19,831 - app.core.excel.converter - INFO - 解析二级规格: 1*80 -> 1*80
2025-05-05 19:22:19,831 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 10.37, 单位: 瓶
2025-05-05 19:22:19,831 - app.core.excel.converter - INFO - 解析二级规格: 1*10 -> 1*10
2025-05-05 19:22:19,831 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 1.0, 单价: 296.0, 单位: 盒
2025-05-05 19:22:19,833 - app.core.excel.converter - INFO - 特殊条码(6901826888138)使用固定单价: 3.7333333333333334
2025-05-05 19:22:19,833 - app.core.excel.converter - INFO - 解析二级规格: 1*30 -> 1*30
2025-05-05 19:22:22,721 - app.core.excel.converter - INFO - 特殊条码(6901826888138)使用固定规格: 1*30, 包装数量=(1, 30, None)
2025-05-05 19:22:22,721 - app.core.excel.converter - INFO - 特殊条码处理: 6901826888138, 数量: 1.0 -> 30.0, 单价: 112.0 -> 3.7333333333333334, 单位: 盒 -> 瓶
2025-05-05 19:22:22,721 - app.core.excel.converter - INFO - 解析二级规格: 1*96 -> 1*96
2025-05-05 19:22:22,723 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 3.0, 单价: 15.5, 单位: 盒
2025-05-05 19:22:22,723 - app.core.excel.converter - INFO - 解析二级规格: 1*5 -> 1*5
2025-05-05 19:22:22,723 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 1.0, 单价: 10.0, 单位: 板
2025-05-05 19:22:22,723 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48
2025-05-05 19:22:22,724 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 4.5, 单位: 个
2025-05-05 19:22:22,724 - app.core.excel.converter - INFO - 解析二级规格: 1*40 -> 1*40
2025-05-05 19:22:22,724 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 3.6, 单位: 个

View File

@ -182,3 +182,222 @@
2025-05-02 22:40:41,147 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls 2025-05-02 22:40:41,147 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls
2025-05-02 22:40:56,995 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件 2025-05-02 22:40:56,995 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件
2025-05-02 22:40:56,996 - app.core.excel.merger - INFO - 找到 1 个采购单Excel文件 2025-05-02 22:40:56,996 - app.core.excel.merger - INFO - 找到 1 个采购单Excel文件
2025-05-03 12:54:57,233 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger
2025-05-03 12:54:57,235 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls
2025-05-03 12:55:14,451 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件
2025-05-03 12:55:14,452 - app.core.excel.merger - INFO - 找到 1 个采购单Excel文件
2025-05-03 14:44:17,319 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger
2025-05-03 14:44:17,319 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls
2025-05-03 14:44:26,125 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件
2025-05-03 14:44:26,125 - app.core.excel.merger - INFO - 找到 2 个采购单Excel文件
2025-05-03 14:44:26,126 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件
2025-05-03 14:44:26,126 - app.core.excel.merger - INFO - 找到 2 个采购单Excel文件
2025-05-03 14:44:26,131 - app.core.excel.merger - INFO - 成功读取采购单文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250503144404.xls
2025-05-03 14:44:26,133 - app.core.excel.merger - INFO - 列名映射结果: {'条码': '条码(必填)', '采购量': '采购量(必填)', '采购单价': '采购单价(必填)', '赠送量': '赠送量'}
2025-05-03 14:44:30,398 - app.core.excel.merger - INFO - 成功读取采购单文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250502214456.xls
2025-05-03 14:44:30,399 - app.core.excel.merger - INFO - 列名映射结果: {'条码': '条码(必填)', '采购量': '采购量(必填)', '采购单价': '采购单价(必填)', '赠送量': '赠送量'}
2025-05-03 14:44:30,399 - app.core.excel.merger - INFO - 开始合并 2 个采购单文件
2025-05-03 14:44:30,399 - app.core.excel.merger - WARNING - 数据帧 0 缺少必要的列: ['条码', '采购量', '采购单价']
2025-05-03 14:44:30,399 - app.core.excel.merger - WARNING - 数据帧 1 缺少必要的列: ['条码', '采购量', '采购单价']
2025-05-03 14:44:30,399 - app.core.excel.merger - WARNING - 没有有效的数据帧用于合并
2025-05-03 14:44:30,400 - app.core.excel.merger - ERROR - 合并采购单失败
2025-05-03 14:45:44,521 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger
2025-05-03 14:45:44,521 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls
2025-05-03 14:45:58,808 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger
2025-05-03 14:45:58,809 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls
2025-05-03 14:53:52,352 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger
2025-05-03 14:53:52,353 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls
2025-05-03 15:43:36,732 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger
2025-05-03 15:43:36,733 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls
2025-05-05 18:55:02,301 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger
2025-05-05 18:55:02,303 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls
2025-05-05 18:55:13,152 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件
2025-05-05 18:55:13,153 - app.core.excel.merger - INFO - 找到 1 个采购单Excel文件
2025-05-05 18:59:17,851 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger
2025-05-05 18:59:17,851 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls
2025-05-05 19:00:26,074 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger
2025-05-05 19:00:26,075 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls
2025-05-05 19:02:32,167 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger
2025-05-05 19:02:32,168 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls
2025-05-05 19:02:54,873 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger
2025-05-05 19:02:54,873 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls
2025-05-05 19:02:54,874 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件
2025-05-05 19:02:54,874 - app.core.excel.merger - INFO - 找到 2 个采购单Excel文件
2025-05-05 19:02:54,875 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件
2025-05-05 19:02:54,878 - app.core.excel.merger - INFO - 找到 2 个采购单Excel文件
2025-05-05 19:02:54,888 - app.core.excel.merger - INFO - 成功读取采购单文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185908.xls
2025-05-05 19:02:54,894 - app.core.excel.merger - INFO - 列名映射结果: {'条码': '条码(必填)', '采购量': '采购量(必填)', '采购单价': '采购单价(必填)', '赠送量': '赠送量'}
2025-05-05 19:02:54,899 - app.core.excel.merger - INFO - 成功读取采购单文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185842.xls
2025-05-05 19:02:54,900 - app.core.excel.merger - INFO - 列名映射结果: {'条码': '条码(必填)', '采购量': '采购量(必填)', '采购单价': '采购单价(必填)', '赠送量': '赠送量'}
2025-05-05 19:02:54,900 - app.core.excel.merger - INFO - 开始合并 2 个采购单文件
2025-05-05 19:02:54,901 - app.core.excel.merger - WARNING - 数据帧 0 缺少必要的列: ['条码', '采购量', '采购单价']
2025-05-05 19:02:54,901 - app.core.excel.merger - WARNING - 数据帧 1 缺少必要的列: ['条码', '采购量', '采购单价']
2025-05-05 19:02:54,901 - app.core.excel.merger - WARNING - 没有有效的数据帧用于合并
2025-05-05 19:02:54,901 - app.core.excel.merger - ERROR - 合并采购单失败
2025-05-05 19:15:12,553 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger
2025-05-05 19:15:12,554 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls
2025-05-05 19:18:54,516 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger
2025-05-05 19:18:54,519 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls
2025-05-05 19:18:54,538 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件
2025-05-05 19:18:54,540 - app.core.excel.merger - INFO - 找到 2 个采购单Excel文件
2025-05-05 19:18:54,548 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件
2025-05-05 19:18:54,551 - app.core.excel.merger - INFO - 找到 2 个采购单Excel文件
2025-05-05 19:18:54,617 - app.core.excel.merger - INFO - 成功读取采购单文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185908.xls
2025-05-05 19:18:54,620 - app.core.excel.merger - INFO - 列名: ['商品名称', '条码(必填)', '采购量(必填)', '赠送量', '采购单价(必填)']
2025-05-05 19:18:54,620 - app.core.excel.merger - INFO - 直接匹配列名: 条码(必填) -> 条码
2025-05-05 19:18:54,625 - app.core.excel.merger - INFO - 直接匹配列名: 采购量(必填) -> 采购量
2025-05-05 19:18:54,631 - app.core.excel.merger - INFO - 直接匹配列名: 采购单价(必填) -> 采购单价
2025-05-05 19:18:54,635 - app.core.excel.merger - INFO - 直接匹配列名: 赠送量 -> 赠送量
2025-05-05 19:18:54,635 - app.core.excel.merger - INFO - 列名重命名映射: {'条码(必填)': '条码', '采购量(必填)': '采购量', '采购单价(必填)': '采购单价', '赠送量': '赠送量'}
2025-05-05 19:18:54,638 - app.core.excel.merger - INFO - 重命名后的列名: ['商品名称', '条码', '采购量', '赠送量', '采购单价']
2025-05-05 19:18:54,650 - app.core.excel.merger - INFO - 成功读取采购单文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185842.xls
2025-05-05 19:18:54,655 - app.core.excel.merger - INFO - 列名: ['商品名称', '条码(必填)', '采购量(必填)', '赠送量', '采购单价(必填)']
2025-05-05 19:18:54,655 - app.core.excel.merger - INFO - 直接匹配列名: 条码(必填) -> 条码
2025-05-05 19:18:54,656 - app.core.excel.merger - INFO - 直接匹配列名: 采购量(必填) -> 采购量
2025-05-05 19:18:54,658 - app.core.excel.merger - INFO - 直接匹配列名: 采购单价(必填) -> 采购单价
2025-05-05 19:18:54,668 - app.core.excel.merger - INFO - 直接匹配列名: 赠送量 -> 赠送量
2025-05-05 19:18:54,669 - app.core.excel.merger - INFO - 列名重命名映射: {'条码(必填)': '条码', '采购量(必填)': '采购量', '采购单价(必填)': '采购单价', '赠送量': '赠送量'}
2025-05-05 19:18:54,679 - app.core.excel.merger - INFO - 重命名后的列名: ['商品名称', '条码', '采购量', '赠送量', '采购单价']
2025-05-05 19:18:54,681 - app.core.excel.merger - INFO - 开始合并 2 个采购单文件
2025-05-05 19:18:54,758 - app.core.excel.merger - INFO - 合并完成,共 46 条商品记录
2025-05-05 19:18:54,835 - app.core.excel.merger - INFO - 合并采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\合并采购单_20250505191854.xls
2025-05-05 19:19:59,314 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger
2025-05-05 19:19:59,314 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls
2025-05-05 19:22:18,527 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger
2025-05-05 19:22:18,530 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls
2025-05-05 19:22:37,220 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger
2025-05-05 19:22:37,221 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls
2025-05-05 19:22:37,223 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件
2025-05-05 19:22:37,226 - app.core.excel.merger - INFO - 找到 2 个采购单Excel文件
2025-05-05 19:22:37,227 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件
2025-05-05 19:22:37,234 - app.core.excel.merger - INFO - 找到 2 个采购单Excel文件
2025-05-05 19:22:37,242 - app.core.excel.merger - INFO - 成功读取采购单文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185908.xls
2025-05-05 19:22:37,249 - app.core.excel.merger - INFO - 列名: ['商品名称', '条码(必填)', '采购量(必填)', '赠送量', '采购单价(必填)']
2025-05-05 19:22:37,250 - app.core.excel.merger - INFO - 直接匹配列名: 条码(必填) -> 条码
2025-05-05 19:22:37,250 - app.core.excel.merger - INFO - 直接匹配列名: 采购量(必填) -> 采购量
2025-05-05 19:22:37,251 - app.core.excel.merger - INFO - 直接匹配列名: 采购单价(必填) -> 采购单价
2025-05-05 19:22:37,251 - app.core.excel.merger - INFO - 直接匹配列名: 赠送量 -> 赠送量
2025-05-05 19:22:37,251 - app.core.excel.merger - INFO - 列名重命名映射: {'条码(必填)': '条码', '采购量(必填)': '采购量', '采购单价(必填)': '采购单价', '赠送量': '赠送量'}
2025-05-05 19:22:37,253 - app.core.excel.merger - INFO - 重命名后的列名: ['商品名称', '条码', '采购量', '赠送量', '采购单价']
2025-05-05 19:22:37,272 - app.core.excel.merger - INFO - 成功读取采购单文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185842.xls
2025-05-05 19:22:37,284 - app.core.excel.merger - INFO - 列名: ['商品名称', '条码(必填)', '采购量(必填)', '赠送量', '采购单价(必填)']
2025-05-05 19:22:37,284 - app.core.excel.merger - INFO - 直接匹配列名: 条码(必填) -> 条码
2025-05-05 19:22:37,284 - app.core.excel.merger - INFO - 直接匹配列名: 采购量(必填) -> 采购量
2025-05-05 19:22:37,285 - app.core.excel.merger - INFO - 直接匹配列名: 采购单价(必填) -> 采购单价
2025-05-05 19:22:37,285 - app.core.excel.merger - INFO - 直接匹配列名: 赠送量 -> 赠送量
2025-05-05 19:22:37,286 - app.core.excel.merger - INFO - 列名重命名映射: {'条码(必填)': '条码', '采购量(必填)': '采购量', '采购单价(必填)': '采购单价', '赠送量': '赠送量'}
2025-05-05 19:22:37,287 - app.core.excel.merger - INFO - 重命名后的列名: ['商品名称', '条码', '采购量', '赠送量', '采购单价']
2025-05-05 19:22:37,287 - app.core.excel.merger - INFO - 开始合并 2 个采购单文件
2025-05-05 19:22:37,338 - app.core.excel.merger - INFO - 合并完成,共 47 条商品记录
2025-05-05 19:22:37,403 - app.core.excel.merger - INFO - 合并采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\合并采购单_20250505192237.xls
2025-05-05 19:28:36,767 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger
2025-05-05 19:28:36,768 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls
2025-05-05 19:28:36,769 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件
2025-05-05 19:28:36,770 - app.core.excel.merger - INFO - 找到 2 个采购单Excel文件
2025-05-05 19:28:36,771 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件
2025-05-05 19:28:36,773 - app.core.excel.merger - INFO - 找到 2 个采购单Excel文件
2025-05-05 19:28:36,781 - app.core.excel.merger - INFO - 成功读取采购单文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185908.xls
2025-05-05 19:28:36,783 - app.core.excel.merger - INFO - 列名: ['商品名称', '条码(必填)', '采购量(必填)', '赠送量', '采购单价(必填)']
2025-05-05 19:28:36,784 - app.core.excel.merger - INFO - 直接匹配列名: 条码(必填) -> 条码
2025-05-05 19:28:36,785 - app.core.excel.merger - INFO - 直接匹配列名: 采购量(必填) -> 采购量
2025-05-05 19:28:36,785 - app.core.excel.merger - INFO - 直接匹配列名: 采购单价(必填) -> 采购单价
2025-05-05 19:28:36,786 - app.core.excel.merger - INFO - 直接匹配列名: 赠送量 -> 赠送量
2025-05-05 19:28:36,786 - app.core.excel.merger - INFO - 列名重命名映射: {'条码(必填)': '条码', '采购量(必填)': '采购量', '采购单价(必填)': '采购单价', '赠送量': '赠送量'}
2025-05-05 19:28:36,787 - app.core.excel.merger - INFO - 重命名后的列名: ['商品名称', '条码', '采购量', '赠送量', '采购单价']
2025-05-05 19:28:36,795 - app.core.excel.merger - INFO - 成功读取采购单文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185842.xls
2025-05-05 19:28:36,797 - app.core.excel.merger - INFO - 列名: ['商品名称', '条码(必填)', '采购量(必填)', '赠送量', '采购单价(必填)']
2025-05-05 19:28:36,797 - app.core.excel.merger - INFO - 直接匹配列名: 条码(必填) -> 条码
2025-05-05 19:28:36,797 - app.core.excel.merger - INFO - 直接匹配列名: 采购量(必填) -> 采购量
2025-05-05 19:28:36,798 - app.core.excel.merger - INFO - 直接匹配列名: 采购单价(必填) -> 采购单价
2025-05-05 19:28:36,798 - app.core.excel.merger - INFO - 直接匹配列名: 赠送量 -> 赠送量
2025-05-05 19:28:36,798 - app.core.excel.merger - INFO - 列名重命名映射: {'条码(必填)': '条码', '采购量(必填)': '采购量', '采购单价(必填)': '采购单价', '赠送量': '赠送量'}
2025-05-05 19:28:36,799 - app.core.excel.merger - INFO - 重命名后的列名: ['商品名称', '条码', '采购量', '赠送量', '采购单价']
2025-05-05 19:28:36,800 - app.core.excel.merger - INFO - 开始合并 2 个采购单文件
2025-05-05 19:28:36,807 - app.core.excel.merger - INFO - 处理文件 1: 有效记录 20 行
2025-05-05 19:28:36,817 - app.core.excel.merger - INFO - 处理文件 2: 有效记录 27 行
2025-05-05 19:28:36,830 - app.core.excel.merger - INFO - 合并完成,共 47 条商品记录
2025-05-05 19:28:36,853 - app.core.excel.merger - INFO - 合并采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\合并采购单_20250505192836.xls
2025-05-05 19:29:16,909 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger
2025-05-05 19:29:16,912 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls
2025-05-05 19:29:16,913 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件
2025-05-05 19:29:16,916 - app.core.excel.merger - INFO - 找到 2 个采购单Excel文件
2025-05-05 19:29:16,918 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件
2025-05-05 19:29:16,922 - app.core.excel.merger - INFO - 找到 2 个采购单Excel文件
2025-05-05 19:29:16,941 - app.core.excel.merger - INFO - 成功读取采购单文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185908.xls
2025-05-05 19:29:16,946 - app.core.excel.merger - INFO - 列名: ['商品名称', '条码(必填)', '采购量(必填)', '赠送量', '采购单价(必填)']
2025-05-05 19:29:16,946 - app.core.excel.merger - INFO - 直接匹配列名: 条码(必填) -> 条码
2025-05-05 19:29:16,947 - app.core.excel.merger - INFO - 直接匹配列名: 采购量(必填) -> 采购量
2025-05-05 19:29:16,947 - app.core.excel.merger - INFO - 直接匹配列名: 采购单价(必填) -> 采购单价
2025-05-05 19:29:16,948 - app.core.excel.merger - INFO - 直接匹配列名: 赠送量 -> 赠送量
2025-05-05 19:29:16,948 - app.core.excel.merger - INFO - 列名重命名映射: {'条码(必填)': '条码', '采购量(必填)': '采购量', '采购单价(必填)': '采购单价', '赠送量': '赠送量'}
2025-05-05 19:29:16,950 - app.core.excel.merger - INFO - 重命名后的列名: ['商品名称', '条码', '采购量', '赠送量', '采购单价']
2025-05-05 19:29:16,957 - app.core.excel.merger - INFO - 成功读取采购单文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185842.xls
2025-05-05 19:29:16,961 - app.core.excel.merger - INFO - 列名: ['商品名称', '条码(必填)', '采购量(必填)', '赠送量', '采购单价(必填)']
2025-05-05 19:29:16,962 - app.core.excel.merger - INFO - 直接匹配列名: 条码(必填) -> 条码
2025-05-05 19:29:16,963 - app.core.excel.merger - INFO - 直接匹配列名: 采购量(必填) -> 采购量
2025-05-05 19:29:16,964 - app.core.excel.merger - INFO - 直接匹配列名: 采购单价(必填) -> 采购单价
2025-05-05 19:29:16,964 - app.core.excel.merger - INFO - 直接匹配列名: 赠送量 -> 赠送量
2025-05-05 19:29:16,971 - app.core.excel.merger - INFO - 列名重命名映射: {'条码(必填)': '条码', '采购量(必填)': '采购量', '采购单价(必填)': '采购单价', '赠送量': '赠送量'}
2025-05-05 19:29:16,975 - app.core.excel.merger - INFO - 重命名后的列名: ['商品名称', '条码', '采购量', '赠送量', '采购单价']
2025-05-05 19:29:16,976 - app.core.excel.merger - INFO - 开始合并 2 个采购单文件
2025-05-05 19:29:16,988 - app.core.excel.merger - INFO - 处理文件 1: 有效记录 20 行
2025-05-05 19:29:17,003 - app.core.excel.merger - INFO - 处理文件 2: 有效记录 27 行
2025-05-05 19:29:17,020 - app.core.excel.merger - INFO - 合并完成,共 47 条商品记录
2025-05-05 19:29:17,034 - app.core.excel.merger - INFO - 分析模板结构
2025-05-05 19:29:17,068 - app.core.excel.merger - INFO - 合并采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\合并采购单_20250505192917.xls共47条记录
2025-05-05 19:30:06,154 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger
2025-05-05 19:30:06,154 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls
2025-05-05 19:30:06,155 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件
2025-05-05 19:30:06,156 - app.core.excel.merger - INFO - 找到 2 个采购单Excel文件
2025-05-05 19:30:06,156 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件
2025-05-05 19:30:06,157 - app.core.excel.merger - INFO - 找到 2 个采购单Excel文件
2025-05-05 19:30:06,166 - app.core.excel.merger - INFO - 成功读取采购单文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185908.xls
2025-05-05 19:30:06,173 - app.core.excel.merger - INFO - 列名: ['商品名称', '条码(必填)', '采购量(必填)', '赠送量', '采购单价(必填)']
2025-05-05 19:30:06,178 - app.core.excel.merger - INFO - 直接匹配列名: 条码(必填) -> 条码
2025-05-05 19:30:06,179 - app.core.excel.merger - INFO - 直接匹配列名: 采购量(必填) -> 采购量
2025-05-05 19:30:06,180 - app.core.excel.merger - INFO - 直接匹配列名: 采购单价(必填) -> 采购单价
2025-05-05 19:30:06,180 - app.core.excel.merger - INFO - 直接匹配列名: 赠送量 -> 赠送量
2025-05-05 19:30:06,182 - app.core.excel.merger - INFO - 列名重命名映射: {'条码(必填)': '条码', '采购量(必填)': '采购量', '采购单价(必填)': '采购单价', '赠送量': '赠送量'}
2025-05-05 19:30:06,183 - app.core.excel.merger - INFO - 重命名后的列名: ['商品名称', '条码', '采购量', '赠送量', '采购单价']
2025-05-05 19:30:06,198 - app.core.excel.merger - INFO - 成功读取采购单文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185842.xls
2025-05-05 19:30:06,200 - app.core.excel.merger - INFO - 列名: ['商品名称', '条码(必填)', '采购量(必填)', '赠送量', '采购单价(必填)']
2025-05-05 19:30:06,202 - app.core.excel.merger - INFO - 直接匹配列名: 条码(必填) -> 条码
2025-05-05 19:30:06,202 - app.core.excel.merger - INFO - 直接匹配列名: 采购量(必填) -> 采购量
2025-05-05 19:30:06,202 - app.core.excel.merger - INFO - 直接匹配列名: 采购单价(必填) -> 采购单价
2025-05-05 19:30:06,203 - app.core.excel.merger - INFO - 直接匹配列名: 赠送量 -> 赠送量
2025-05-05 19:30:06,204 - app.core.excel.merger - INFO - 列名重命名映射: {'条码(必填)': '条码', '采购量(必填)': '采购量', '采购单价(必填)': '采购单价', '赠送量': '赠送量'}
2025-05-05 19:30:06,205 - app.core.excel.merger - INFO - 重命名后的列名: ['商品名称', '条码', '采购量', '赠送量', '采购单价']
2025-05-05 19:30:06,205 - app.core.excel.merger - INFO - 开始合并 2 个采购单文件
2025-05-05 19:30:06,222 - app.core.excel.merger - INFO - 处理文件 1: 有效记录 20 行
2025-05-05 19:30:06,236 - app.core.excel.merger - INFO - 处理文件 2: 有效记录 27 行
2025-05-05 19:30:06,252 - app.core.excel.merger - INFO - 合并完成,共 47 条商品记录
2025-05-05 19:30:06,268 - app.core.excel.merger - INFO - 分析模板结构
2025-05-05 19:30:06,303 - app.core.excel.merger - INFO - 合并采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\合并采购单_20250505193006.xls共47条记录
2025-05-05 19:30:28,307 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger
2025-05-05 19:30:28,308 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls
2025-05-05 19:30:28,308 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件
2025-05-05 19:30:28,308 - app.core.excel.merger - INFO - 找到 2 个采购单Excel文件
2025-05-05 19:30:28,309 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件
2025-05-05 19:30:28,311 - app.core.excel.merger - INFO - 找到 2 个采购单Excel文件
2025-05-05 19:30:28,320 - app.core.excel.merger - INFO - 成功读取采购单文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185908.xls
2025-05-05 19:30:28,321 - app.core.excel.merger - INFO - 列名: ['商品名称', '条码(必填)', '采购量(必填)', '赠送量', '采购单价(必填)']
2025-05-05 19:30:28,323 - app.core.excel.merger - INFO - 直接匹配列名: 条码(必填) -> 条码
2025-05-05 19:30:28,323 - app.core.excel.merger - INFO - 直接匹配列名: 采购量(必填) -> 采购量
2025-05-05 19:30:28,323 - app.core.excel.merger - INFO - 直接匹配列名: 采购单价(必填) -> 采购单价
2025-05-05 19:30:28,323 - app.core.excel.merger - INFO - 直接匹配列名: 赠送量 -> 赠送量
2025-05-05 19:30:28,323 - app.core.excel.merger - INFO - 列名重命名映射: {'条码(必填)': '条码', '采购量(必填)': '采购量', '采购单价(必填)': '采购单价', '赠送量': '赠送量'}
2025-05-05 19:30:28,324 - app.core.excel.merger - INFO - 重命名后的列名: ['商品名称', '条码', '采购量', '赠送量', '采购单价']
2025-05-05 19:30:28,334 - app.core.excel.merger - INFO - 成功读取采购单文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185842.xls
2025-05-05 19:30:28,335 - app.core.excel.merger - INFO - 列名: ['商品名称', '条码(必填)', '采购量(必填)', '赠送量', '采购单价(必填)']
2025-05-05 19:30:28,335 - app.core.excel.merger - INFO - 直接匹配列名: 条码(必填) -> 条码
2025-05-05 19:30:28,335 - app.core.excel.merger - INFO - 直接匹配列名: 采购量(必填) -> 采购量
2025-05-05 19:30:28,335 - app.core.excel.merger - INFO - 直接匹配列名: 采购单价(必填) -> 采购单价
2025-05-05 19:30:28,336 - app.core.excel.merger - INFO - 直接匹配列名: 赠送量 -> 赠送量
2025-05-05 19:30:28,336 - app.core.excel.merger - INFO - 列名重命名映射: {'条码(必填)': '条码', '采购量(必填)': '采购量', '采购单价(必填)': '采购单价', '赠送量': '赠送量'}
2025-05-05 19:30:28,337 - app.core.excel.merger - INFO - 重命名后的列名: ['商品名称', '条码', '采购量', '赠送量', '采购单价']
2025-05-05 19:30:28,337 - app.core.excel.merger - INFO - 开始合并 2 个采购单文件
2025-05-05 19:30:28,351 - app.core.excel.merger - INFO - 处理文件 1: 有效记录 20 行
2025-05-05 19:30:28,358 - app.core.excel.merger - INFO - 处理文件 2: 有效记录 27 行
2025-05-05 19:30:28,383 - app.core.excel.merger - INFO - 合并完成,共 47 条商品记录
2025-05-05 19:30:28,391 - app.core.excel.merger - INFO - 分析模板结构
2025-05-05 19:30:28,421 - app.core.excel.merger - INFO - 合并采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\合并采购单_20250505193028.xls共47条记录

File diff suppressed because it is too large Load Diff

View File

@ -45,3 +45,10 @@
2025-05-02 22:26:49,226 - app.core.ocr.baidu_ocr - ERROR - 无法获取访问令牌,无法进行表格识别 2025-05-02 22:26:49,226 - app.core.ocr.baidu_ocr - ERROR - 无法获取访问令牌,无法进行表格识别
2025-05-02 22:29:11,192 - app.core.ocr.baidu_ocr - INFO - 成功获取访问令牌 2025-05-02 22:29:11,192 - app.core.ocr.baidu_ocr - INFO - 成功获取访问令牌
2025-05-02 22:40:41,390 - app.core.ocr.baidu_ocr - INFO - 成功获取访问令牌 2025-05-02 22:40:41,390 - app.core.ocr.baidu_ocr - INFO - 成功获取访问令牌
2025-05-03 12:54:57,596 - app.core.ocr.baidu_ocr - INFO - 成功获取访问令牌
2025-05-03 14:44:17,623 - app.core.ocr.baidu_ocr - INFO - 成功获取访问令牌
2025-05-03 14:45:44,807 - app.core.ocr.baidu_ocr - INFO - 成功获取访问令牌
2025-05-03 14:53:52,624 - app.core.ocr.baidu_ocr - INFO - 成功获取访问令牌
2025-05-05 18:55:02,724 - app.core.ocr.baidu_ocr - INFO - 成功获取访问令牌
2025-05-05 18:59:18,198 - app.core.ocr.baidu_ocr - INFO - 成功获取访问令牌
2025-05-05 18:59:18,237 - app.core.ocr.baidu_ocr - INFO - 成功获取访问令牌

View File

@ -311,3 +311,121 @@
2025-05-02 22:40:43,841 - app.core.ocr.table_ocr - INFO - 图片处理成功: D:\My Documents\python\orc-order-v2\data\input\微信图片_20250502214456.jpg, 输出文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250502214456.xlsx 2025-05-02 22:40:43,841 - app.core.ocr.table_ocr - INFO - 图片处理成功: D:\My Documents\python\orc-order-v2\data\input\微信图片_20250502214456.jpg, 输出文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250502214456.xlsx
2025-05-02 22:40:43,845 - app.core.ocr.table_ocr - INFO - 批次处理完成, 成功: 1/1 2025-05-02 22:40:43,845 - app.core.ocr.table_ocr - INFO - 批次处理完成, 成功: 1/1
2025-05-02 22:40:43,845 - app.core.ocr.table_ocr - INFO - 所有图片处理完成, 总计: 1, 成功: 1 2025-05-02 22:40:43,845 - app.core.ocr.table_ocr - INFO - 所有图片处理完成, 总计: 1, 成功: 1
2025-05-03 12:54:57,229 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input
2025-05-03 12:54:57,230 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-03 12:54:57,230 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp
2025-05-03 12:54:57,231 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-03 12:54:57,236 - app.core.ocr.table_ocr - INFO - 找到 1 个图片文件,其中 1 个未处理
2025-05-03 12:54:57,237 - app.core.ocr.table_ocr - INFO - 处理批次 1/1, 大小: 1
2025-05-03 12:54:57,239 - app.core.ocr.table_ocr - INFO - 开始处理图片: D:\My Documents\python\orc-order-v2\data\input\微信图片_20250502214456.jpg
2025-05-03 12:55:00,226 - app.core.ocr.table_ocr - INFO - 图片处理成功: D:\My Documents\python\orc-order-v2\data\input\微信图片_20250502214456.jpg, 输出文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250502214456.xlsx
2025-05-03 12:55:00,228 - app.core.ocr.table_ocr - INFO - 批次处理完成, 成功: 1/1
2025-05-03 12:55:00,228 - app.core.ocr.table_ocr - INFO - 所有图片处理完成, 总计: 1, 成功: 1
2025-05-03 14:44:17,316 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input
2025-05-03 14:44:17,316 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-03 14:44:17,317 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp
2025-05-03 14:44:17,317 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-03 14:44:17,320 - app.core.ocr.table_ocr - INFO - 找到 2 个图片文件,其中 1 个未处理
2025-05-03 14:44:17,321 - app.core.ocr.table_ocr - INFO - 处理批次 1/1, 大小: 1
2025-05-03 14:44:17,323 - app.core.ocr.table_ocr - INFO - 开始处理图片: D:\My Documents\python\orc-order-v2\data\input\微信图片_20250503144404.jpg
2025-05-03 14:44:19,906 - app.core.ocr.table_ocr - INFO - 图片处理成功: D:\My Documents\python\orc-order-v2\data\input\微信图片_20250503144404.jpg, 输出文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250503144404.xlsx
2025-05-03 14:44:19,914 - app.core.ocr.table_ocr - INFO - 批次处理完成, 成功: 1/1
2025-05-03 14:44:19,916 - app.core.ocr.table_ocr - INFO - 所有图片处理完成, 总计: 1, 成功: 1
2025-05-03 14:45:44,518 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input
2025-05-03 14:45:44,519 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-03 14:45:44,519 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp
2025-05-03 14:45:44,520 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-03 14:45:44,523 - app.core.ocr.table_ocr - INFO - 找到 1 个图片文件,其中 1 个未处理
2025-05-03 14:45:44,523 - app.core.ocr.table_ocr - INFO - 处理批次 1/1, 大小: 1
2025-05-03 14:45:44,525 - app.core.ocr.table_ocr - INFO - 开始处理图片: D:\My Documents\python\orc-order-v2\data\input\微信图片_20250503144404.jpg
2025-05-03 14:45:47,099 - app.core.ocr.table_ocr - INFO - 图片处理成功: D:\My Documents\python\orc-order-v2\data\input\微信图片_20250503144404.jpg, 输出文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250503144404.xlsx
2025-05-03 14:45:47,100 - app.core.ocr.table_ocr - INFO - 批次处理完成, 成功: 1/1
2025-05-03 14:45:47,101 - app.core.ocr.table_ocr - INFO - 所有图片处理完成, 总计: 1, 成功: 1
2025-05-03 14:45:58,805 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input
2025-05-03 14:45:58,805 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-03 14:45:58,805 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp
2025-05-03 14:45:58,806 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-03 14:53:52,350 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input
2025-05-03 14:53:52,350 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-03 14:53:52,350 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp
2025-05-03 14:53:52,351 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-03 14:53:52,354 - app.core.ocr.table_ocr - INFO - 找到 1 个图片文件,其中 1 个未处理
2025-05-03 14:53:52,354 - app.core.ocr.table_ocr - INFO - 处理批次 1/1, 大小: 1
2025-05-03 14:53:52,355 - app.core.ocr.table_ocr - INFO - 开始处理图片: D:\My Documents\python\orc-order-v2\data\input\微信图片_20250503145328.jpg
2025-05-03 14:53:54,302 - app.core.ocr.table_ocr - INFO - 图片处理成功: D:\My Documents\python\orc-order-v2\data\input\微信图片_20250503145328.jpg, 输出文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250503145328.xlsx
2025-05-03 14:53:54,304 - app.core.ocr.table_ocr - INFO - 批次处理完成, 成功: 1/1
2025-05-03 14:53:54,304 - app.core.ocr.table_ocr - INFO - 所有图片处理完成, 总计: 1, 成功: 1
2025-05-03 15:43:36,730 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input
2025-05-03 15:43:36,730 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-03 15:43:36,730 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp
2025-05-03 15:43:36,731 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-05 18:55:02,297 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input
2025-05-05 18:55:02,298 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-05 18:55:02,298 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp
2025-05-05 18:55:02,298 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-05 18:55:02,305 - app.core.ocr.table_ocr - INFO - 找到 1 个图片文件,其中 1 个未处理
2025-05-05 18:55:02,305 - app.core.ocr.table_ocr - INFO - 处理批次 1/1, 大小: 1
2025-05-05 18:55:02,313 - app.core.ocr.table_ocr - INFO - 开始处理图片: D:\My Documents\python\orc-order-v2\data\input\微信图片_20250505185454.jpg
2025-05-05 18:55:04,006 - app.core.ocr.table_ocr - INFO - 图片处理成功: D:\My Documents\python\orc-order-v2\data\input\微信图片_20250505185454.jpg, 输出文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250505185454.xlsx
2025-05-05 18:55:04,011 - app.core.ocr.table_ocr - INFO - 批次处理完成, 成功: 1/1
2025-05-05 18:55:04,011 - app.core.ocr.table_ocr - INFO - 所有图片处理完成, 总计: 1, 成功: 1
2025-05-05 18:59:17,849 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input
2025-05-05 18:59:17,849 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-05 18:59:17,850 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp
2025-05-05 18:59:17,850 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-05 18:59:17,854 - app.core.ocr.table_ocr - INFO - 找到 2 个图片文件,其中 2 个未处理
2025-05-05 18:59:17,854 - app.core.ocr.table_ocr - INFO - 处理批次 1/1, 大小: 2
2025-05-05 18:59:17,856 - app.core.ocr.table_ocr - INFO - 开始处理图片: D:\My Documents\python\orc-order-v2\data\input\微信图片_20250505185842.jpg
2025-05-05 18:59:17,856 - app.core.ocr.table_ocr - INFO - 开始处理图片: D:\My Documents\python\orc-order-v2\data\input\微信图片_20250505185908.jpg
2025-05-05 18:59:21,953 - app.core.ocr.table_ocr - INFO - 图片处理成功: D:\My Documents\python\orc-order-v2\data\input\微信图片_20250505185908.jpg, 输出文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250505185908.xlsx
2025-05-05 18:59:23,220 - app.core.ocr.table_ocr - INFO - 图片处理成功: D:\My Documents\python\orc-order-v2\data\input\微信图片_20250505185842.jpg, 输出文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250505185842.xlsx
2025-05-05 18:59:23,222 - app.core.ocr.table_ocr - INFO - 批次处理完成, 成功: 2/2
2025-05-05 18:59:23,222 - app.core.ocr.table_ocr - INFO - 所有图片处理完成, 总计: 2, 成功: 2
2025-05-05 19:00:26,072 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input
2025-05-05 19:00:26,072 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-05 19:00:26,072 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp
2025-05-05 19:00:26,073 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-05 19:02:32,159 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input
2025-05-05 19:02:32,160 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-05 19:02:32,160 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp
2025-05-05 19:02:32,163 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-05 19:02:54,871 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input
2025-05-05 19:02:54,871 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-05 19:02:54,871 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp
2025-05-05 19:02:54,871 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-05 19:15:12,551 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input
2025-05-05 19:15:12,551 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-05 19:15:12,551 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp
2025-05-05 19:15:12,551 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-05 19:18:54,491 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input
2025-05-05 19:18:54,493 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-05 19:18:54,495 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp
2025-05-05 19:18:54,497 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-05 19:19:59,311 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input
2025-05-05 19:19:59,311 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-05 19:19:59,311 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp
2025-05-05 19:19:59,312 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-05 19:22:18,524 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input
2025-05-05 19:22:18,524 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-05 19:22:18,525 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp
2025-05-05 19:22:18,525 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-05 19:22:37,216 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input
2025-05-05 19:22:37,217 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-05 19:22:37,217 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp
2025-05-05 19:22:37,217 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-05 19:28:36,763 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input
2025-05-05 19:28:36,763 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-05 19:28:36,764 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp
2025-05-05 19:28:36,764 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-05 19:29:16,901 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input
2025-05-05 19:29:16,902 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-05 19:29:16,903 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp
2025-05-05 19:29:16,903 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-05 19:30:06,151 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input
2025-05-05 19:30:06,152 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-05 19:30:06,152 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp
2025-05-05 19:30:06,152 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-05 19:30:28,305 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input
2025-05-05 19:30:28,305 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output
2025-05-05 19:30:28,305 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp
2025-05-05 19:30:28,306 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output

View File

@ -131,3 +131,49 @@
2025-05-02 22:40:41,142 - app.services.ocr_service - INFO - 初始化OCRService 2025-05-02 22:40:41,142 - app.services.ocr_service - INFO - 初始化OCRService
2025-05-02 22:40:41,144 - app.services.ocr_service - INFO - OCRService初始化完成 2025-05-02 22:40:41,144 - app.services.ocr_service - INFO - OCRService初始化完成
2025-05-02 22:40:41,147 - app.services.ocr_service - INFO - OCRService开始批量处理图片, batch_size=None, max_workers=None 2025-05-02 22:40:41,147 - app.services.ocr_service - INFO - OCRService开始批量处理图片, batch_size=None, max_workers=None
2025-05-03 12:54:57,227 - app.services.ocr_service - INFO - 初始化OCRService
2025-05-03 12:54:57,231 - app.services.ocr_service - INFO - OCRService初始化完成
2025-05-03 12:54:57,236 - app.services.ocr_service - INFO - OCRService开始批量处理图片, batch_size=None, max_workers=None
2025-05-03 14:44:17,313 - app.services.ocr_service - INFO - 初始化OCRService
2025-05-03 14:44:17,318 - app.services.ocr_service - INFO - OCRService初始化完成
2025-05-03 14:44:17,320 - app.services.ocr_service - INFO - OCRService开始批量处理图片, batch_size=None, max_workers=None
2025-05-03 14:45:44,517 - app.services.ocr_service - INFO - 初始化OCRService
2025-05-03 14:45:44,520 - app.services.ocr_service - INFO - OCRService初始化完成
2025-05-03 14:45:44,522 - app.services.ocr_service - INFO - OCRService开始批量处理图片, batch_size=None, max_workers=None
2025-05-03 14:45:58,804 - app.services.ocr_service - INFO - 初始化OCRService
2025-05-03 14:45:58,806 - app.services.ocr_service - INFO - OCRService初始化完成
2025-05-03 14:53:52,349 - app.services.ocr_service - INFO - 初始化OCRService
2025-05-03 14:53:52,351 - app.services.ocr_service - INFO - OCRService初始化完成
2025-05-03 14:53:52,354 - app.services.ocr_service - INFO - OCRService开始批量处理图片, batch_size=None, max_workers=None
2025-05-03 15:43:36,728 - app.services.ocr_service - INFO - 初始化OCRService
2025-05-03 15:43:36,731 - app.services.ocr_service - INFO - OCRService初始化完成
2025-05-05 18:55:02,295 - app.services.ocr_service - INFO - 初始化OCRService
2025-05-05 18:55:02,298 - app.services.ocr_service - INFO - OCRService初始化完成
2025-05-05 18:55:02,304 - app.services.ocr_service - INFO - OCRService开始批量处理图片, batch_size=None, max_workers=None
2025-05-05 18:59:17,848 - app.services.ocr_service - INFO - 初始化OCRService
2025-05-05 18:59:17,850 - app.services.ocr_service - INFO - OCRService初始化完成
2025-05-05 18:59:17,853 - app.services.ocr_service - INFO - OCRService开始批量处理图片, batch_size=None, max_workers=None
2025-05-05 19:00:26,070 - app.services.ocr_service - INFO - 初始化OCRService
2025-05-05 19:00:26,073 - app.services.ocr_service - INFO - OCRService初始化完成
2025-05-05 19:02:32,157 - app.services.ocr_service - INFO - 初始化OCRService
2025-05-05 19:02:32,165 - app.services.ocr_service - INFO - OCRService初始化完成
2025-05-05 19:02:54,869 - app.services.ocr_service - INFO - 初始化OCRService
2025-05-05 19:02:54,871 - app.services.ocr_service - INFO - OCRService初始化完成
2025-05-05 19:15:12,549 - app.services.ocr_service - INFO - 初始化OCRService
2025-05-05 19:15:12,551 - app.services.ocr_service - INFO - OCRService初始化完成
2025-05-05 19:18:54,489 - app.services.ocr_service - INFO - 初始化OCRService
2025-05-05 19:18:54,499 - app.services.ocr_service - INFO - OCRService初始化完成
2025-05-05 19:19:59,311 - app.services.ocr_service - INFO - 初始化OCRService
2025-05-05 19:19:59,312 - app.services.ocr_service - INFO - OCRService初始化完成
2025-05-05 19:22:18,523 - app.services.ocr_service - INFO - 初始化OCRService
2025-05-05 19:22:18,525 - app.services.ocr_service - INFO - OCRService初始化完成
2025-05-05 19:22:37,215 - app.services.ocr_service - INFO - 初始化OCRService
2025-05-05 19:22:37,218 - app.services.ocr_service - INFO - OCRService初始化完成
2025-05-05 19:28:36,762 - app.services.ocr_service - INFO - 初始化OCRService
2025-05-05 19:28:36,765 - app.services.ocr_service - INFO - OCRService初始化完成
2025-05-05 19:29:16,899 - app.services.ocr_service - INFO - 初始化OCRService
2025-05-05 19:29:16,904 - app.services.ocr_service - INFO - OCRService初始化完成
2025-05-05 19:30:06,149 - app.services.ocr_service - INFO - 初始化OCRService
2025-05-05 19:30:06,152 - app.services.ocr_service - INFO - OCRService初始化完成
2025-05-05 19:30:28,304 - app.services.ocr_service - INFO - 初始化OCRService
2025-05-05 19:30:28,306 - app.services.ocr_service - INFO - OCRService初始化完成

View File

@ -140,3 +140,62 @@
2025-05-02 22:40:41,144 - app.services.order_service - INFO - 初始化OrderService 2025-05-02 22:40:41,144 - app.services.order_service - INFO - 初始化OrderService
2025-05-02 22:40:41,147 - app.services.order_service - INFO - OrderService初始化完成 2025-05-02 22:40:41,147 - app.services.order_service - INFO - OrderService初始化完成
2025-05-02 22:40:43,849 - app.services.order_service - INFO - OrderService开始处理指定Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250502214456.xlsx 2025-05-02 22:40:43,849 - app.services.order_service - INFO - OrderService开始处理指定Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250502214456.xlsx
2025-05-03 12:54:57,231 - app.services.order_service - INFO - 初始化OrderService
2025-05-03 12:54:57,235 - app.services.order_service - INFO - OrderService初始化完成
2025-05-03 12:55:00,229 - app.services.order_service - INFO - OrderService开始处理指定Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250502214456.xlsx
2025-05-03 14:44:17,318 - app.services.order_service - INFO - 初始化OrderService
2025-05-03 14:44:17,319 - app.services.order_service - INFO - OrderService初始化完成
2025-05-03 14:44:19,922 - app.services.order_service - INFO - OrderService开始处理指定Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250503144404.xlsx
2025-05-03 14:44:26,126 - app.services.order_service - INFO - OrderService开始合并所有采购单
2025-05-03 14:45:44,520 - app.services.order_service - INFO - 初始化OrderService
2025-05-03 14:45:44,522 - app.services.order_service - INFO - OrderService初始化完成
2025-05-03 14:45:58,806 - app.services.order_service - INFO - 初始化OrderService
2025-05-03 14:45:58,809 - app.services.order_service - INFO - OrderService初始化完成
2025-05-03 14:45:58,809 - app.services.order_service - INFO - OrderService开始处理指定Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250503144404.xlsx
2025-05-03 14:53:52,351 - app.services.order_service - INFO - 初始化OrderService
2025-05-03 14:53:52,353 - app.services.order_service - INFO - OrderService初始化完成
2025-05-03 14:53:54,305 - app.services.order_service - INFO - OrderService开始处理指定Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250503145328.xlsx
2025-05-03 15:43:36,731 - app.services.order_service - INFO - 初始化OrderService
2025-05-03 15:43:36,733 - app.services.order_service - INFO - OrderService初始化完成
2025-05-03 15:43:36,733 - app.services.order_service - INFO - OrderService开始处理指定Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250503145328.xlsx
2025-05-05 18:55:02,299 - app.services.order_service - INFO - 初始化OrderService
2025-05-05 18:55:02,303 - app.services.order_service - INFO - OrderService初始化完成
2025-05-05 18:55:04,016 - app.services.order_service - INFO - OrderService开始处理指定Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250505185454.xlsx
2025-05-05 18:59:17,850 - app.services.order_service - INFO - 初始化OrderService
2025-05-05 18:59:17,853 - app.services.order_service - INFO - OrderService初始化完成
2025-05-05 19:00:26,073 - app.services.order_service - INFO - 初始化OrderService
2025-05-05 19:00:26,075 - app.services.order_service - INFO - OrderService初始化完成
2025-05-05 19:00:26,076 - app.services.order_service - INFO - OrderService开始处理指定Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250505185842.xlsx
2025-05-05 19:02:32,165 - app.services.order_service - INFO - 初始化OrderService
2025-05-05 19:02:32,169 - app.services.order_service - INFO - OrderService初始化完成
2025-05-05 19:02:32,169 - app.services.order_service - INFO - OrderService开始处理指定Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250505185908.xlsx
2025-05-05 19:02:54,871 - app.services.order_service - INFO - 初始化OrderService
2025-05-05 19:02:54,874 - app.services.order_service - INFO - OrderService初始化完成
2025-05-05 19:02:54,875 - app.services.order_service - INFO - OrderService开始合并所有采购单
2025-05-05 19:15:12,551 - app.services.order_service - INFO - 初始化OrderService
2025-05-05 19:15:12,554 - app.services.order_service - INFO - OrderService初始化完成
2025-05-05 19:15:12,554 - app.services.order_service - INFO - OrderService开始处理指定Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250505185908.xlsx
2025-05-05 19:18:54,500 - app.services.order_service - INFO - 初始化OrderService
2025-05-05 19:18:54,536 - app.services.order_service - INFO - OrderService初始化完成
2025-05-05 19:18:54,546 - app.services.order_service - INFO - OrderService开始合并所有采购单
2025-05-05 19:19:59,313 - app.services.order_service - INFO - 初始化OrderService
2025-05-05 19:19:59,314 - app.services.order_service - INFO - OrderService初始化完成
2025-05-05 19:19:59,315 - app.services.order_service - INFO - OrderService开始处理指定Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250505185908.xlsx
2025-05-05 19:22:18,525 - app.services.order_service - INFO - 初始化OrderService
2025-05-05 19:22:18,532 - app.services.order_service - INFO - OrderService初始化完成
2025-05-05 19:22:18,533 - app.services.order_service - INFO - OrderService开始处理指定Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250505185908.xlsx
2025-05-05 19:22:37,218 - app.services.order_service - INFO - 初始化OrderService
2025-05-05 19:22:37,221 - app.services.order_service - INFO - OrderService初始化完成
2025-05-05 19:22:37,227 - app.services.order_service - INFO - OrderService开始合并所有采购单
2025-05-05 19:28:36,765 - app.services.order_service - INFO - 初始化OrderService
2025-05-05 19:28:36,768 - app.services.order_service - INFO - OrderService初始化完成
2025-05-05 19:28:36,770 - app.services.order_service - INFO - OrderService开始合并所有采购单
2025-05-05 19:29:16,905 - app.services.order_service - INFO - 初始化OrderService
2025-05-05 19:29:16,912 - app.services.order_service - INFO - OrderService初始化完成
2025-05-05 19:29:16,918 - app.services.order_service - INFO - OrderService开始合并所有采购单
2025-05-05 19:30:06,152 - app.services.order_service - INFO - 初始化OrderService
2025-05-05 19:30:06,155 - app.services.order_service - INFO - OrderService初始化完成
2025-05-05 19:30:06,156 - app.services.order_service - INFO - OrderService开始合并所有采购单
2025-05-05 19:30:28,306 - app.services.order_service - INFO - 初始化OrderService
2025-05-05 19:30:28,308 - app.services.order_service - INFO - OrderService初始化完成
2025-05-05 19:30:28,309 - app.services.order_service - INFO - OrderService开始合并所有采购单