From 149fd7c6e1bca35377dd86bee97a295f9e52f442 Mon Sep 17 00:00:00 2001
From: chengmw <chengmingwei_1984122@126.com>
Date: Wed, 15 Apr 2026 17:53:50 +0800
Subject: [PATCH] feat: 集中化API调用,将预警消息和当事人列表加载集成到CaseDataContext

---
 web-app/src/contexts/CaseDataContext.jsx |   44 ++++++++++++++++++++++++++++----------------
 1 files changed, 28 insertions(+), 16 deletions(-)

diff --git a/web-app/src/contexts/CaseDataContext.jsx b/web-app/src/contexts/CaseDataContext.jsx
index bfce87a..2cf72a4 100644
--- a/web-app/src/contexts/CaseDataContext.jsx
+++ b/web-app/src/contexts/CaseDataContext.jsx
@@ -9,6 +9,7 @@
 import OutboundBotAPIService from '../services/OutboundBotAPIService';
 import EvidenceAPIService from '../services/EvidenceAPIService';
 import MediationAgreementAPIService from '../services/MediationAgreementAPIService';
+import MediationTimelineAPIService from '../services/MediationTimelineAPIService';
 import { getMergedParams } from '../utils/urlParams';
 import { mockTimelineData } from '../mocks/timeline';
 import { getFallbackStartTime, parseTimeString } from '../utils/timeFormatter';
@@ -369,20 +370,6 @@
         return;
       }
 
-      EvidenceAPIService.processCaseFilesOcr(params.caseId).catch((ocrError) => {
-        console.error('触发案件文件OCR失败:', ocrError);
-      });
-
-      try {
-        await OutboundBotAPIService.syncStatusByCase({ caseId: params.caseId });
-      } catch (syncError) {
-        console.error('同步外呼状态失败:', syncError);
-      }
-      try {
-        await OutboundBotAPIService.backfillConversationByCase({ caseId: params.caseId });
-      } catch (backfillError) {
-        console.error('回补通话记录失败:', backfillError);
-      }
 
       // 调用API获取数据
       // 将URL中的auth_token转换为authorization传入API
@@ -417,7 +404,7 @@
       setProcessNodes(Array.isArray(nodesData) ? nodesData : []);  // 确保为数组
       setHasLoaded(true);  // 标记已加载
       
-      // 并行加载证据材料和调解协议数据(在终态检查之前,确保数据完整性)
+      // 并行加载证据材料、调解协议、预警消息和当事人列表数据(在终态检查之前,确保数据完整性)
       await Promise.all([
         loadEvidenceData({
           caseId: params.caseId,
@@ -425,7 +412,17 @@
           caseTypeFirst: params.caseTypeFirst,
           platformCode: params.platform_code
         }),
-        loadAgreementData(params.caseId)
+        loadAgreementData(params.caseId),
+        // 加载预警消息列表
+        MediationTimelineAPIService.getWarningNotifyList(timelineData.id).catch(err => {
+          console.error('加载预警消息失败:', err);
+          return [];
+        }),
+        // 加载当事人列表
+        MediationTimelineAPIService.getPersonList(params.caseId).catch(err => {
+          console.error('加载当事人列表失败:', err);
+          return [];
+        })
       ]);
       
       // 检查终态状态(调解成功/失败/人工接管),终态不执行外呼和存储
@@ -447,6 +444,21 @@
       // 加载任务时间数据
       await loadTaskTime(timelineData);
 
+       EvidenceAPIService.processCaseFilesOcr(params.caseId).catch((ocrError) => {
+        console.error('触发案件文件OCR失败:', ocrError);
+      });
+
+      try {
+        await OutboundBotAPIService.syncStatusByCase({ caseId: params.caseId });
+      } catch (syncError) {
+        console.error('同步外呼状态失败:', syncError);
+      }
+      try {
+        await OutboundBotAPIService.backfillConversationByCase({ caseId: params.caseId });
+      } catch (backfillError) {
+        console.error('回补通话记录失败:', backfillError);
+      }
+      
       console.log('Case data loaded successfully:', timelineData);
     } catch (err) {
       console.error('Failed to load case data:', err);

--
Gitblit v1.8.0