|
@@ -337,7 +337,7 @@ async def process_conversion_task(
|
|
|
|
|
|
|
|
# 针对投资估算类型,需要先切割附件页
|
|
# 针对投资估算类型,需要先切割附件页
|
|
|
if request.doc_type in ("fsApproval", "fsReview", "pdApproval", "safetyFsApproval"):
|
|
if request.doc_type in ("fsApproval", "fsReview", "pdApproval", "safetyFsApproval"):
|
|
|
- logger.info(f"[任务 {task_id}] 文档类型 {request.doc_type},需要先切割附件页")
|
|
|
|
|
|
|
+ logger.info(f"[任务 {task_id}] 文档类型 {request.doc_type},开始切割附件页")
|
|
|
|
|
|
|
|
# 导入附件页切割函数
|
|
# 导入附件页切割函数
|
|
|
import sys
|
|
import sys
|
|
@@ -353,7 +353,7 @@ async def process_conversion_task(
|
|
|
attachment_dir.mkdir(parents=True, exist_ok=True)
|
|
attachment_dir.mkdir(parents=True, exist_ok=True)
|
|
|
|
|
|
|
|
# 切割附件页
|
|
# 切割附件页
|
|
|
- logger.info(f"[任务 {task_id}] 开始切割附件页,输出目录: {attachment_dir}")
|
|
|
|
|
|
|
+ logger.info(f"[任务 {task_id}] 正在执行切割逻辑,输出目录: {attachment_dir}")
|
|
|
await asyncio.to_thread(
|
|
await asyncio.to_thread(
|
|
|
split_attachment_pages,
|
|
split_attachment_pages,
|
|
|
file_path,
|
|
file_path,
|
|
@@ -364,7 +364,6 @@ async def process_conversion_task(
|
|
|
|
|
|
|
|
# 查找切割后的附件页PDF
|
|
# 查找切割后的附件页PDF
|
|
|
attachment_pdfs = list(attachment_dir.glob("*_附件页_*.pdf"))
|
|
attachment_pdfs = list(attachment_dir.glob("*_附件页_*.pdf"))
|
|
|
- logger.info(f"[任务 {task_id}] 附件页目录内容: {list(attachment_dir.iterdir()) if attachment_dir.exists() else '(目录不存在)'}")
|
|
|
|
|
|
|
|
|
|
if attachment_pdfs:
|
|
if attachment_pdfs:
|
|
|
# 使用第一个附件页PDF作为输入
|
|
# 使用第一个附件页PDF作为输入
|
|
@@ -373,16 +372,11 @@ async def process_conversion_task(
|
|
|
attachment_split_success = True
|
|
attachment_split_success = True
|
|
|
else:
|
|
else:
|
|
|
logger.warning(f"[任务 {task_id}] 未找到附件页PDF文件,使用原始文件")
|
|
logger.warning(f"[任务 {task_id}] 未找到附件页PDF文件,使用原始文件")
|
|
|
- logger.info(f"[任务 {task_id}] 提示: 如果PDF是扫描件,请确保安装了Tesseract OCR或PaddleOCR以启用文本识别")
|
|
|
|
|
- except ImportError as e:
|
|
|
|
|
- logger.error(f"[任务 {task_id}] 导入附件页切割模块失败: {e}")
|
|
|
|
|
- logger.warning(f"[任务 {task_id}] 将使用原始文件继续处理")
|
|
|
|
|
except Exception as e:
|
|
except Exception as e:
|
|
|
logger.exception(f"[任务 {task_id}] 附件页切割失败: {e}")
|
|
logger.exception(f"[任务 {task_id}] 附件页切割失败: {e}")
|
|
|
logger.warning(f"[任务 {task_id}] 将使用原始文件继续处理")
|
|
logger.warning(f"[任务 {task_id}] 将使用原始文件继续处理")
|
|
|
|
|
|
|
|
- logger.info(f"[任务 {task_id}] 附件页切割状态: {'成功' if attachment_split_success else '失败/跳过'},使用文件: {file_path}")
|
|
|
|
|
- """
|
|
|
|
|
|
|
+ logger.info(f"[任务 {task_id}] 附件页预处理结束,最终使用文件: {file_path}")
|
|
|
|
|
|
|
|
# 针对结算报告 / 初设评审类文档,检查是否有文本层
|
|
# 针对结算报告 / 初设评审类文档,检查是否有文本层
|
|
|
# 如果有文本层,直接执行表格提取,不调用外部 OCR API(速度更快)
|
|
# 如果有文本层,直接执行表格提取,不调用外部 OCR API(速度更快)
|