From 4d5e72b8da64108455b541eeb13aef5132b6bbc7 Mon Sep 17 00:00:00 2001
From: tony.cheng <chengmingwei_1984122@126.com>
Date: Thu, 12 Feb 2026 13:36:20 +0800
Subject: [PATCH] feat: 智能外呼功能优化 - 失败任务红点提示 + 重复气泡去重
---
web-app/src/contexts/CaseDataContext.jsx | 19 +++++++++++++++++++
1 files changed, 19 insertions(+), 0 deletions(-)
diff --git a/web-app/src/contexts/CaseDataContext.jsx b/web-app/src/contexts/CaseDataContext.jsx
index 6c21aab..976a0c5 100644
--- a/web-app/src/contexts/CaseDataContext.jsx
+++ b/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);
--
Gitblit v1.8.0