tony.cheng
2026-02-12 4d5e72b8da64108455b541eeb13aef5132b6bbc7
web-app/src/contexts/CaseDataContext.jsx
@@ -69,6 +69,16 @@
   */
  const triggerOutboundCall = async (timeline) => {
    try {
      const { mediation } = timeline;
      if (!mediation) {
        console.warn('缺少必要参数:timeline.mediation,跳过外呼触发:', timeline);
        return;
      }
      const { state } = mediation;
      if (state >= 2) { // 2:调解成功,3:调解失败,4:人工接管
        console.warn('调解状态已结束,mediation.state:', state);
        return;
      }
      // 检查是否已有活跃任务,如有则跳过
      if (hasActiveOutboundJobs()) {
        console.log('检测到活跃外呼任务,跳过发起新外呼');
@@ -257,6 +267,15 @@
      setProcessNodes(Array.isArray(nodesData) ? nodesData : []);  // 确保为数组
      setHasLoaded(true);  // 标记已加载
      
      // 检查终态状态(调解成功/失败/人工接管),终态不执行外呼和存储
      const mediationState = timelineData.mediation?.state;
      const isTerminalState = [2, 3, 4].includes(mediationState);
      if (isTerminalState) {
        console.log('案件已处于终态状态:', mediationState, ',跳过外呼和存储');
        return;
      }
      // 保存到localStorage
      saveToStorage(timelineData);