diff --git a/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/service/impl/MqMessageRecordServiceImpl.java b/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/service/impl/MqMessageRecordServiceImpl.java index 317c65c..34fff42 100644 --- a/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/service/impl/MqMessageRecordServiceImpl.java +++ b/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/service/impl/MqMessageRecordServiceImpl.java @@ -146,13 +146,33 @@ public class MqMessageRecordServiceImpl extends ServiceImpl caseWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(diFyReq,caseToken)); - //内容主题关键词打标 - CompletableFuture keywordWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(diFyReq,keywordToken)); - //litecrm线索分析 - CompletableFuture clueAnalysisWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(diFyReq,clueAnalysisToken)); + CompletableFuture caseWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(diFyReq, caseToken)) + .exceptionally(ex -> { + log.error("舆情案件分析失败: {}", ex.getMessage()); + JSONObject errorResult = new JSONObject(); + errorResult.put("error", "舆情案件分析失败: " + ex.getMessage()); + return errorResult; + }); + + // 内容主题关键词打标 + CompletableFuture keywordWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(diFyReq, keywordToken)) + .exceptionally(ex -> { + log.error("内容主题关键词打标失败: {}", ex.getMessage()); + JSONObject errorResult = new JSONObject(); + errorResult.put("error", "内容主题关键词打标失败: " + ex.getMessage()); + return errorResult; + }); + + // litecrm线索分析 + CompletableFuture clueAnalysisWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(diFyReq, clueAnalysisToken)) + .exceptionally(ex -> { + log.error("litecrm线索分析失败: {}", ex.getMessage()); + JSONObject errorResult = new JSONObject(); + errorResult.put("error", "litecrm线索分析失败: " + ex.getMessage()); + return errorResult; + }); + CompletableFuture allFutures = CompletableFuture.allOf(caseWorkFlow, keywordWorkFlow, clueAnalysisWorkFlow); // 等待所有API调用完成 allFutures.get();