This commit is contained in:
2026-03-08 22:58:25 +08:00
parent 3e19e45e9a
commit 1bdc75cee2
25 changed files with 1086 additions and 790 deletions
+28 -20
View File
@@ -673,28 +673,36 @@ async def process_file_core(
product_weight=product_weight_g
)
# 9.7 FreeCAD 几何验证
await storage_service.update_task_status(
db_session, task_id, "processing", 90, "FreeCAD几何验证"
)
# 9.7 FreeCAD 几何验证(可通过配置禁用)
verification_result = None
try:
from services.verification_service import verification_service
verification_result = await verification_service.verify_stp_file(file_path)
from config.settings import settings
if settings.ENABLE_FREECAD_VERIFICATION:
await storage_service.update_task_status(
db_session, task_id, "processing", 90, "FreeCAD几何验证"
)
# 保存验证结果到数据库
if verification_result and analysis_result:
await _save_verification_metrics(
db_session,
stp_file_id,
verification_result
)
logger.info(f"FreeCAD验证完成: {verification_result.get('status', 'unknown') if verification_result else 'failed'}")
except Exception as ve:
logger.warning(f"FreeCAD验证失败(不影响主流程): {ve}")
verification_result = {"status": "error", "error": str(ve)}
try:
from services.verification_service import GeometryVerificationService
# 使用配置的超时时间
verification_svc = GeometryVerificationService(timeout=settings.FREECAD_VERIFICATION_TIMEOUT)
verification_result = await verification_svc.verify_stp_file(file_path)
# 保存验证结果到数据库
if verification_result and analysis_result:
await _save_verification_metrics(
db_session,
stp_file_id,
verification_result
)
logger.info(f"FreeCAD验证完成: {verification_result.get('status', 'unknown') if verification_result else 'failed'}")
except Exception as ve:
logger.warning(f"FreeCAD验证失败(不影响主流程): {ve}")
verification_result = {"status": "error", "error": str(ve)}
else:
logger.info("FreeCAD验证已禁用(设置 ENABLE_FREECAD_VERIFICATION=true 启用)")
verification_result = {"status": "disabled", "reason": "FreeCAD验证已禁用"}
# 10. 完成处理
await storage_service.update_stp_file_status(db_session, stp_file_id, "completed")