| | |
| | | */ |
| | | 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('检测到活跃外呼任务,跳过发起新外呼'); |
| | |
| | | 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); |
| | | |