This commit is contained in:
2026-03-06 23:37:46 +08:00
parent 7f08566981
commit 91fbe529f0
3 changed files with 65 additions and 5 deletions
+27 -3
View File
@@ -189,8 +189,8 @@ async def get_status(task_id: str, db_session: AsyncSession = Depends(get_db_ses
"geometry_data": geometry_json,
"detected_features": features_json,
"design_recommendations": recommendations_json,
"quality_metrics": {},
"analysis_summary": "分析完成"
"quality_metrics": file_with_data.get("analysis_metrics", {}) or {},
"analysis_summary": file_with_data.get("analysis_metrics", {}).get("analysis_summary", "分析完成")
} if features_json or recommendations_json else None,
"error": processing_task.error_message or stp_file.error_message or None,
}
@@ -403,6 +403,27 @@ async def process_file_with_storage(
tasks[task_id]["status"] = ProcessingStatus.FAILED
tasks[task_id]["error"] = str(e)
tasks[task_id]["completed_at"] = str(datetime.now())
async def _save_analysis_metrics(session, stp_file_id, analysis_result):
"""保存分析指标到数据库"""
from models.database import AnalysisMetrics
quality_metrics = analysis_result.get("quality_metrics", {})
analysis_summary = analysis_result.get("analysis_summary", "")
# 创建分析指标记录
metrics = AnalysisMetrics(
stp_file_id=stp_file_id,
volume_utilization=quality_metrics.get("volume_utilization", 0),
topology_complexity=quality_metrics.get("topology_complexity", 0),
wall_uniformity=quality_metrics.get("wall_uniformity", 0),
analysis_summary=analysis_summary
)
session.add(metrics)
await session.commit()
logger.info(f"分析指标保存成功: {metrics.id}")
return
@@ -644,7 +665,7 @@ async def process_file_core(
# 9. 分析模具设计
analysis_result = geometry_analyzer.analyze_mold_design(geometry_data)
# 9.5 保存特征和建议到数据库
# 9.5 保存完整的分析结果到数据库
if analysis_result:
await storage_service.save_features_and_recommendations(
db_session,
@@ -652,6 +673,9 @@ async def process_file_core(
analysis_result.get("detected_features", []),
analysis_result.get("design_recommendations", [])
)
# 保存质量指标和分析摘要到数据库
await self._save_analysis_metrics(db_session, stp_file_id, analysis_result)
# 10. 完成处理
await storage_service.update_stp_file_status(db_session, stp_file_id, "completed")