|
|
@@ -618,35 +618,42 @@ class AIReviewCoreFun:
|
|
|
current: 当前进度
|
|
|
"""
|
|
|
try:
|
|
|
- if isinstance(issues, list) and issues and state["progress_manager"]:
|
|
|
- stage_name = f"AI审查:{section_label}"
|
|
|
- # 正确统计:只统计真正存在的问题数量
|
|
|
- issues_count = sum(
|
|
|
- 1 for issue in issues
|
|
|
- for issue_data in issue.values()
|
|
|
- for review_item in issue_data.get("review_lists", [])
|
|
|
- if review_item.get("exist_issue", False)
|
|
|
- )
|
|
|
+ # 🔧 修复:全局进度更新应该总是执行,与是否存在问题无关
|
|
|
+ if state["progress_manager"]:
|
|
|
+ # 计算问题数量(可以为0)
|
|
|
+ issues_count = 0
|
|
|
+ if isinstance(issues, list) and issues:
|
|
|
+ issues_count = sum(
|
|
|
+ 1 for issue in issues
|
|
|
+ for issue_data in issue.values()
|
|
|
+ for review_item in issue_data.get("review_lists", [])
|
|
|
+ if review_item.get("exist_issue", False)
|
|
|
+ )
|
|
|
+
|
|
|
+ # 全局进度更新移到外层,总是执行
|
|
|
await self._send_unit_overall_progress(state, unit_index, total_units, section_label, issues_count)
|
|
|
|
|
|
- # 同步等待进度消息推送完成,确保与主流程同步
|
|
|
- await state["progress_manager"].update_stage_progress(
|
|
|
- callback_task_id=state["callback_task_id"],
|
|
|
- stage_name=stage_name,
|
|
|
- current=current,
|
|
|
- status="unit_review_update",
|
|
|
- message=f"发现{issues_count}个问题: {section_label}",
|
|
|
- issues=issues,
|
|
|
- user_id=state.get("user_id", ""),
|
|
|
- overall_task_status="processing",
|
|
|
- event_type="unit_review"
|
|
|
- )
|
|
|
+ # 🔧 修复:unit_review事件只在有问题时发送
|
|
|
+ if issues_count > 0:
|
|
|
+ stage_name = f"AI审查:{section_label}"
|
|
|
+ await state["progress_manager"].update_stage_progress(
|
|
|
+ callback_task_id=state["callback_task_id"],
|
|
|
+ stage_name=stage_name,
|
|
|
+ current=current,
|
|
|
+ status="unit_review_update",
|
|
|
+ message=f"发现{issues_count}个问题: {section_label}",
|
|
|
+ issues=issues,
|
|
|
+ user_id=state.get("user_id", ""),
|
|
|
+ overall_task_status="processing",
|
|
|
+ event_type="unit_review"
|
|
|
+ )
|
|
|
+
|
|
|
+ # 清空当前issues
|
|
|
+ await state["progress_manager"].update_stage_progress(
|
|
|
+ callback_task_id=state["callback_task_id"],
|
|
|
+ issues=['clear']
|
|
|
+ )
|
|
|
|
|
|
- # 清空当前issues
|
|
|
- await state["progress_manager"].update_stage_progress(
|
|
|
- callback_task_id=state["callback_task_id"],
|
|
|
- issues=['clear']
|
|
|
- )
|
|
|
except Exception as e:
|
|
|
logger.warning(f"发送单元审查详情失败: {str(e)}")
|
|
|
|