From 67e60dc2532778dea31a3ec8436710dc5b49ccb4 Mon Sep 17 00:00:00 2001 From: lxu75 Date: Wed, 23 Apr 2025 19:09:02 +0800 Subject: [PATCH 01/15] =?UTF-8?q?=E8=88=86=E6=83=85=E4=BA=8C=E6=9C=9F?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=BC=96=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/MqMessageRecordServiceImpl.java | 45 ++++++++++++++++--- 1 file changed, 38 insertions(+), 7 deletions(-) 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 d0331b7..8ae7cf6 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 @@ -35,6 +35,7 @@ import org.springframework.util.CollectionUtils; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.*; +import java.util.concurrent.CompletableFuture; import java.util.stream.Collectors; @Slf4j @@ -117,17 +118,32 @@ public class MqMessageRecordServiceImpl extends ServiceImpl caseWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(diFyReq,"app-cB5rd2VGIZn95u5GWgAnysj0")); + //内容主题关键词打标 + CompletableFuture keywordWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(diFyReq,"app-zJCgRBAedbOAQQUqx1IOLXNv")); + //litecrm线索分析 + CompletableFuture clueAnalysisWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(diFyReq,"app-1NZjZVMl3WEel6zhSGZa2rv9")); + CompletableFuture allFutures = CompletableFuture.allOf(caseWorkFlow, keywordWorkFlow, clueAnalysisWorkFlow); + // 等待所有API调用完成 + allFutures.get(); + // 获取各个API的结果 + JSONObject caseResult = caseWorkFlow.get(); + JSONObject keywordResult = keywordWorkFlow.get(); + JSONObject clueAnalysisResult = clueAnalysisWorkFlow.get(); //处理结果 - processingCommunityDifyResponse(difResult); + processingCommunityDifyResponse(difResult,caseResult,keywordResult,clueAnalysisResult); //异步更新请求日志表的difyResponse字段 syncUpdateDiFyResponse(difResult, aiAnalysisRequestId); + + + //调用舆情文本分析dify工作流 +// difResult = (JSONObject) diFyService.getDiFyObject(diFyReq); } catch (Exception e) { log.error("舆情自动化异常:{}", e.getMessage()); //保存错误日志 @@ -141,6 +157,18 @@ public class MqMessageRecordServiceImpl extends ServiceImpl() From 9283f6cc6a4a4b79b70d5a3081d72cf62e76d146 Mon Sep 17 00:00:00 2001 From: lxu75 Date: Fri, 25 Apr 2025 13:36:08 +0800 Subject: [PATCH 02/15] =?UTF-8?q?=E8=84=B1=E6=95=8F=E8=A7=84=E5=88=99?= =?UTF-8?q?=E6=8C=87=E5=AE=9ADCC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../analytic/center/service/impl/DataMaskingRuleServiceImpl.java | 1 - 1 file changed, 1 deletion(-) diff --git a/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/service/impl/DataMaskingRuleServiceImpl.java b/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/service/impl/DataMaskingRuleServiceImpl.java index 71e65ac..6ec258c 100644 --- a/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/service/impl/DataMaskingRuleServiceImpl.java +++ b/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/service/impl/DataMaskingRuleServiceImpl.java @@ -24,7 +24,6 @@ public class DataMaskingRuleServiceImpl extends ServiceImpl dataMaskingRuleList = this.lambdaQuery() .like(DataMaskingRule::getApplicationChannel, applicationChannel) - .eq(DataMaskingRule::getApplicationChannel, applicationChannel) .eq(DataMaskingRule::getRuleStatus, YesOrNoConstants.YES) .eq(DataMaskingRule::getIsDeleted, YesOrNoConstants.NO) .list(); From 778a6ebf3fad2c3311e7536afc13f91192a6ebca Mon Sep 17 00:00:00 2001 From: lxu75 Date: Fri, 25 Apr 2025 17:40:31 +0800 Subject: [PATCH 03/15] =?UTF-8?q?=E8=88=86=E6=83=85=E4=BA=8C=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/MqMessageRecordServiceImpl.java | 52 +++++++------------ 1 file changed, 19 insertions(+), 33 deletions(-) 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 8ae7cf6..053a1cb 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 @@ -3,6 +3,7 @@ package com.volvo.ai.analytic.center.service.impl; import cn.hutool.core.date.DateUtil; import com.alibaba.cloud.commons.lang.StringUtils; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; @@ -95,7 +96,7 @@ public class MqMessageRecordServiceImpl extends ServiceImpl NodeTypeEnum.IMAGE.getCode().equals(contentNode.getNodeType())); @@ -136,20 +137,17 @@ public class MqMessageRecordServiceImpl extends ServiceImpl().set("dify_response", caseResult.toJSONString()) + .eq("ai_analysis_request_id", aiAnalysisRequestId)); } } @@ -247,13 +240,6 @@ public class MqMessageRecordServiceImpl extends ServiceImpl().set("dify_response", difResult.toJSONString()) - .eq("ai_analysis_request_id", aiAnalysisRequestId)); - } - @Async protected void syncSaveRequestLogs(String message, String aiAnalysisRequestId) { aiAnalysisRequestLogsMapper.insert(AiAnalysisRequestLogs.builder() From 7f963bc5052b1dc2839d199b04eef2e71a82eb68 Mon Sep 17 00:00:00 2001 From: lxu75 Date: Sun, 27 Apr 2025 14:47:53 +0800 Subject: [PATCH 04/15] =?UTF-8?q?=E8=88=86=E6=83=85=E4=BA=8C=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/MqMessageRecordServiceImpl.java | 51 ++++++++++--------- 1 file changed, 27 insertions(+), 24 deletions(-) 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 053a1cb..983d488 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 @@ -37,6 +37,7 @@ import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.*; import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; import java.util.stream.Collectors; @Slf4j @@ -123,25 +124,8 @@ public class MqMessageRecordServiceImpl extends ServiceImpl caseWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(diFyReq,"app-cB5rd2VGIZn95u5GWgAnysj0")); - //内容主题关键词打标 - CompletableFuture keywordWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(diFyReq,"app-zJCgRBAedbOAQQUqx1IOLXNv")); - //litecrm线索分析 - CompletableFuture clueAnalysisWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(diFyReq,"app-1NZjZVMl3WEel6zhSGZa2rv9")); - CompletableFuture allFutures = CompletableFuture.allOf(caseWorkFlow, keywordWorkFlow, clueAnalysisWorkFlow); - // 等待所有API调用完成 - allFutures.get(); - // 获取各个API的结果 - JSONObject caseResult = caseWorkFlow.get(); - JSONObject keywordResult = keywordWorkFlow.get(); - JSONObject clueAnalysisResult = clueAnalysisWorkFlow.get(); - difyResult.add(caseResult); - difyResult.add(keywordResult); - difyResult.add(clueAnalysisResult); - //处理结果 - processingCommunityDifyResponse(caseResult,keywordResult,clueAnalysisResult,aiAnalysisRequestId); + //调用DiFy工作流,并推送到社区 + processDify(diFyReq, difyResult, aiAnalysisRequestId); } catch (Exception e) { log.error("舆情自动化异常:{}", e.getMessage()); //保存错误日志 @@ -155,6 +139,28 @@ public class MqMessageRecordServiceImpl extends ServiceImpl caseWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(diFyReq,"app-cB5rd2VGIZn95u5GWgAnysj0")); + //内容主题关键词打标 + CompletableFuture keywordWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(diFyReq,"app-zJCgRBAedbOAQQUqx1IOLXNv")); + //litecrm线索分析 + CompletableFuture clueAnalysisWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(diFyReq,"app-1NZjZVMl3WEel6zhSGZa2rv9")); + CompletableFuture allFutures = CompletableFuture.allOf(caseWorkFlow, keywordWorkFlow, clueAnalysisWorkFlow); + // 等待所有API调用完成 + allFutures.get(); + // 获取各个API的结果 + JSONObject caseResult = caseWorkFlow.get(); + JSONObject keywordResult = keywordWorkFlow.get(); + JSONObject clueAnalysisResult = clueAnalysisWorkFlow.get(); + difyResult.add(caseResult); + difyResult.add(keywordResult); + difyResult.add(clueAnalysisResult); + //处理结果 + processingCommunityDifyResponse(caseResult,keywordResult,clueAnalysisResult, aiAnalysisRequestId); + } + /** * 调用案件,关键词,线索工作流 * @param diFyReq @@ -613,12 +619,9 @@ public class MqMessageRecordServiceImpl extends ServiceImpl() From 5ba35fa6a49a7c0a2a3bc8aac99e2f85ec9d18a4 Mon Sep 17 00:00:00 2001 From: lxu75 Date: Sun, 27 Apr 2025 16:10:09 +0800 Subject: [PATCH 05/15] =?UTF-8?q?=E8=88=86=E6=83=85=E4=BA=8C=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/MqMessageRecordServiceImpl.java | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) 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 983d488..317c65c 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 @@ -68,8 +68,14 @@ public class MqMessageRecordServiceImpl extends ServiceImpl caseWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(diFyReq,"app-cB5rd2VGIZn95u5GWgAnysj0")); + CompletableFuture caseWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(diFyReq,caseToken)); //内容主题关键词打标 - CompletableFuture keywordWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(diFyReq,"app-zJCgRBAedbOAQQUqx1IOLXNv")); + CompletableFuture keywordWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(diFyReq,keywordToken)); //litecrm线索分析 - CompletableFuture clueAnalysisWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(diFyReq,"app-1NZjZVMl3WEel6zhSGZa2rv9")); + CompletableFuture clueAnalysisWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(diFyReq,clueAnalysisToken)); CompletableFuture allFutures = CompletableFuture.allOf(caseWorkFlow, keywordWorkFlow, clueAnalysisWorkFlow); // 等待所有API调用完成 allFutures.get(); @@ -251,7 +257,7 @@ public class MqMessageRecordServiceImpl extends ServiceImpl Date: Sun, 27 Apr 2025 18:40:08 +0800 Subject: [PATCH 06/15] =?UTF-8?q?=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86?= =?UTF-8?q?=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/MqMessageRecordServiceImpl.java | 32 +++++++++++++++---- 1 file changed, 26 insertions(+), 6 deletions(-) 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(); From e7017861152201f5fbc6dd50cff2deacea4184f8 Mon Sep 17 00:00:00 2001 From: lxu75 Date: Sun, 27 Apr 2025 18:43:33 +0800 Subject: [PATCH 07/15] =?UTF-8?q?=E8=A1=A5=E5=81=BF=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../center/service/impl/MqMessageRecordServiceImpl.java | 4 ++++ 1 file changed, 4 insertions(+) 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 34fff42..ea61b36 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 @@ -654,6 +654,10 @@ public class MqMessageRecordServiceImpl extends ServiceImpl() + .eq(AiAnalysisRequestLogs::getAiAnalysisRequestId, aiAnalysisError.getAiAnalysisRequestId()) + .set(AiAnalysisRequestLogs::getDifyResponse, difyResult.toJSONString())); }else{ aiAnalysisErrorsMapper.update(new AiAnalysisErrors(), new LambdaUpdateWrapper() .eq(AiAnalysisErrors::getAiAnalysisRequestId, aiAnalysisError.getAiAnalysisRequestId()) From 6d81f16588f1201cffa1e83b36e08cc2034aef85 Mon Sep 17 00:00:00 2001 From: lxu75 Date: Mon, 28 Apr 2025 17:42:39 +0800 Subject: [PATCH 08/15] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=BA=BF=E7=A8=8B?= =?UTF-8?q?=E6=B1=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../center/config/AsyncTaskExecutePool.java | 68 +++++++++++++++++++ .../impl/MqMessageRecordServiceImpl.java | 10 ++- 2 files changed, 75 insertions(+), 3 deletions(-) create mode 100644 ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/config/AsyncTaskExecutePool.java diff --git a/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/config/AsyncTaskExecutePool.java b/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/config/AsyncTaskExecutePool.java new file mode 100644 index 0000000..51254a4 --- /dev/null +++ b/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/config/AsyncTaskExecutePool.java @@ -0,0 +1,68 @@ +package com.volvo.ai.analytic.center.config; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.scheduling.annotation.AsyncConfigurer; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; +import org.springframework.stereotype.Component; + +import java.util.concurrent.*; + +/** + * 异步任务线程池装配类 + * @author gubin + * @date 2022-04-14 + */ +@EnableAsync +@Slf4j +@Component +public class AsyncTaskExecutePool implements AsyncConfigurer { + + @Value("${task.pool.corePoolSize}") + private int corePoolSize; + + @Value("${task.pool.maxPoolSize}") + private int maxPoolSize; + + @Value("${task.pool.queueCapacity}") + private int queueCapacity; + + @Value("${task.pool.keepAliveSeconds}") + private int keepAliveSeconds; + + + @Bean + @Override + public Executor getAsyncExecutor() { + ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); + //核心线程池大小 + executor.setCorePoolSize(corePoolSize); + //最大线程数 + executor.setMaxPoolSize(maxPoolSize); + //队列容量 + executor.setQueueCapacity(queueCapacity); + //活跃时间 + executor.setKeepAliveSeconds(keepAliveSeconds); + //线程名字前缀 + executor.setThreadNamePrefix("async-task-"); + // setRejectedExecutionHandler:当pool已经达到max size的时候,如何处理新任务 + // CallerRunsPolicy:不在新线程中执行任务,而是由调用者所在的线程来执行 + executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); + executor.initialize(); + return executor; + } + + @Override + public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() { + return (throwable, method, objects) -> { + log.error("===="+throwable.getMessage()+"====", throwable); + log.error("exception method:"+method.getName()); + }; + } + + + +} 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 ea61b36..ccb0407 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 @@ -38,6 +38,7 @@ import java.time.LocalDateTime; import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; +import java.util.concurrent.Executor; import java.util.stream.Collectors; @Slf4j @@ -83,6 +84,9 @@ public class MqMessageRecordServiceImpl extends ServiceImpl caseWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(diFyReq, caseToken)) + CompletableFuture caseWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(diFyReq, caseToken),getAsyncExecutor) .exceptionally(ex -> { log.error("舆情案件分析失败: {}", ex.getMessage()); JSONObject errorResult = new JSONObject(); @@ -156,7 +160,7 @@ public class MqMessageRecordServiceImpl extends ServiceImpl keywordWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(diFyReq, keywordToken)) + CompletableFuture keywordWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(diFyReq, keywordToken),getAsyncExecutor) .exceptionally(ex -> { log.error("内容主题关键词打标失败: {}", ex.getMessage()); JSONObject errorResult = new JSONObject(); @@ -165,7 +169,7 @@ public class MqMessageRecordServiceImpl extends ServiceImpl clueAnalysisWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(diFyReq, clueAnalysisToken)) + CompletableFuture clueAnalysisWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(diFyReq, clueAnalysisToken),getAsyncExecutor) .exceptionally(ex -> { log.error("litecrm线索分析失败: {}", ex.getMessage()); JSONObject errorResult = new JSONObject(); From 99e7bbcc413cf07121d37d91f019fbe6301e83ac Mon Sep 17 00:00:00 2001 From: lxu75 Date: Wed, 7 May 2025 19:00:06 +0800 Subject: [PATCH 09/15] =?UTF-8?q?=E9=87=8D=E8=AF=95=E6=AC=A1=E6=95=B0?= =?UTF-8?q?=E7=94=A8=E9=85=8D=E7=BD=AE=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../center/service/impl/MqMessageRecordServiceImpl.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 ccb0407..cd9a1c4 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 @@ -84,6 +84,9 @@ public class MqMessageRecordServiceImpl extends ServiceImpl aiAnalysisErrors = aiAnalysisErrorsMapper.selectList(new LambdaQueryWrapper() .eq(AiAnalysisErrors::getAiAnalysisRequestType, BusinessTypeEnum.COMMUNITYTARGET.getCode()) .eq(AiAnalysisErrors::getAiAnalysisErrorHandlingStatus, "0") - .lt(AiAnalysisErrors::getRetryCount, 4)); + .lt(AiAnalysisErrors::getRetryCount, maxRetryCount)); if (aiAnalysisErrors != null && aiAnalysisErrors.size() > 0) { //根据ai_analysis_request_id获取AiAnalysisRequestLogs表中的对应的dify_request字段 for (AiAnalysisErrors aiAnalysisError : aiAnalysisErrors) { From ecfdbf5df08acf6082c58b4e75d27ba2dfc5f2e4 Mon Sep 17 00:00:00 2001 From: lxu75 Date: Fri, 9 May 2025 10:56:15 +0800 Subject: [PATCH 10/15] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=A4=9A=E7=BA=BF?= =?UTF-8?q?=E7=A8=8B=E5=B9=B6=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/MqMessageRecordServiceImpl.java | 48 +++++-------------- 1 file changed, 12 insertions(+), 36 deletions(-) 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 cd9a1c4..e12e7ec 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 @@ -133,18 +133,13 @@ public class MqMessageRecordServiceImpl extends ServiceImpl caseWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(diFyReq, caseToken),getAsyncExecutor) - .exceptionally(ex -> { - log.error("舆情案件分析失败: {}", ex.getMessage()); - JSONObject errorResult = new JSONObject(); - errorResult.put("error", "舆情案件分析失败: " + ex.getMessage()); - return errorResult; - }); + CompletableFuture caseWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(difyCommunityTargetDTO,user, caseToken),getAsyncExecutor); // 内容主题关键词打标 - CompletableFuture keywordWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(diFyReq, keywordToken),getAsyncExecutor) - .exceptionally(ex -> { - log.error("内容主题关键词打标失败: {}", ex.getMessage()); - JSONObject errorResult = new JSONObject(); - errorResult.put("error", "内容主题关键词打标失败: " + ex.getMessage()); - return errorResult; - }); + CompletableFuture keywordWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(difyCommunityTargetDTO,user, keywordToken),getAsyncExecutor); // litecrm线索分析 - CompletableFuture clueAnalysisWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(diFyReq, clueAnalysisToken),getAsyncExecutor) - .exceptionally(ex -> { - log.error("litecrm线索分析失败: {}", ex.getMessage()); - JSONObject errorResult = new JSONObject(); - errorResult.put("error", "litecrm线索分析失败: " + ex.getMessage()); - return errorResult; - }); + CompletableFuture clueAnalysisWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(difyCommunityTargetDTO,user, clueAnalysisToken),getAsyncExecutor); CompletableFuture allFutures = CompletableFuture.allOf(caseWorkFlow, keywordWorkFlow, clueAnalysisWorkFlow); // 等待所有API调用完成 @@ -196,11 +173,12 @@ public class MqMessageRecordServiceImpl extends ServiceImpl() From fbe657d770cc7a05bcb20128ce7565af88ccfc6f Mon Sep 17 00:00:00 2001 From: lxu75 Date: Fri, 9 May 2025 17:17:54 +0800 Subject: [PATCH 11/15] =?UTF-8?q?=E5=9B=9E=E4=BC=A0=E7=A4=BE=E5=8C=BAid?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ai/analytic/center/dto/req/CommunityTargetDTO.java | 1 + .../service/impl/MqMessageRecordServiceImpl.java | 10 ++++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/ai-analytic-center-api/src/main/java/com/volvo/ai/analytic/center/dto/req/CommunityTargetDTO.java b/ai-analytic-center-api/src/main/java/com/volvo/ai/analytic/center/dto/req/CommunityTargetDTO.java index 694372b..2fa70d6 100644 --- a/ai-analytic-center-api/src/main/java/com/volvo/ai/analytic/center/dto/req/CommunityTargetDTO.java +++ b/ai-analytic-center-api/src/main/java/com/volvo/ai/analytic/center/dto/req/CommunityTargetDTO.java @@ -11,6 +11,7 @@ public class CommunityTargetDTO { private String targetType; private String targetId; + private String communityRequestId; private List content; @Setter 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 e12e7ec..d86663a 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 @@ -128,6 +128,7 @@ public class MqMessageRecordServiceImpl extends ServiceImpl Date: Tue, 13 May 2025 15:01:52 +0800 Subject: [PATCH 12/15] =?UTF-8?q?=E8=88=86=E6=83=85=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/req/DifyCommunityTargetDTO.java | 6 ++++ .../center/enums/BusinessTypeEnum.java | 6 +++- .../impl/MqMessageRecordServiceImpl.java | 35 +++++++++++++++++-- 3 files changed, 44 insertions(+), 3 deletions(-) diff --git a/ai-analytic-center-api/src/main/java/com/volvo/ai/analytic/center/dto/req/DifyCommunityTargetDTO.java b/ai-analytic-center-api/src/main/java/com/volvo/ai/analytic/center/dto/req/DifyCommunityTargetDTO.java index 2832598..1a4bbb0 100644 --- a/ai-analytic-center-api/src/main/java/com/volvo/ai/analytic/center/dto/req/DifyCommunityTargetDTO.java +++ b/ai-analytic-center-api/src/main/java/com/volvo/ai/analytic/center/dto/req/DifyCommunityTargetDTO.java @@ -29,4 +29,10 @@ public class DifyCommunityTargetDTO { * 社区请求id */ private String communityRequestId; + + + /** + * 舆情事件 + */ + private String sentiment; } diff --git a/ai-analytic-center-api/src/main/java/com/volvo/ai/analytic/center/enums/BusinessTypeEnum.java b/ai-analytic-center-api/src/main/java/com/volvo/ai/analytic/center/enums/BusinessTypeEnum.java index cf12b18..4ae588a 100644 --- a/ai-analytic-center-api/src/main/java/com/volvo/ai/analytic/center/enums/BusinessTypeEnum.java +++ b/ai-analytic-center-api/src/main/java/com/volvo/ai/analytic/center/enums/BusinessTypeEnum.java @@ -18,7 +18,11 @@ public enum BusinessTypeEnum { CLAIM_VERIFICATION_DIAGNOSTIC("DIAGNOSTIC", "诊断报告"), //索赔检核配置类型 - AUDITRULES("AuditRules", "审计规则配置") + AUDITRULES("AuditRules", "审计规则配置"), + + + CASE("case", "舆情事件") + ; private String code; 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 d86663a..7f9cf4b 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 @@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.volvo.ai.analytic.center.constant.Constant; import com.volvo.ai.analytic.center.dto.req.*; @@ -16,6 +17,7 @@ import com.volvo.ai.analytic.center.entity.*; import com.volvo.ai.analytic.center.enums.*; import com.volvo.ai.analytic.center.mapper.AiAnalysisErrorsMapper; import com.volvo.ai.analytic.center.mapper.AiAnalysisRequestLogsMapper; +import com.volvo.ai.analytic.center.mapper.AiAnalyticBusinessConfigMapper; import com.volvo.ai.analytic.center.mapper.MqMessageRecordMapper; import com.volvo.ai.analytic.center.service.DataMaskingRuleService; import com.volvo.ai.analytic.center.service.DiFyService; @@ -87,6 +89,9 @@ public class MqMessageRecordServiceImpl extends ServiceImpl caseWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(difyCommunityTargetDTO,user, caseToken),getAsyncExecutor); + CompletableFuture caseWorkFlow = CompletableFuture.supplyAsync(() -> callCaseCommunityWorkFlow(difyCommunityTargetDTO,user, caseToken),getAsyncExecutor); // 内容主题关键词打标 CompletableFuture keywordWorkFlow = CompletableFuture.supplyAsync(() -> callCommunityWorkFlow(difyCommunityTargetDTO,user, keywordToken),getAsyncExecutor); @@ -176,7 +181,33 @@ public class MqMessageRecordServiceImpl extends ServiceImpl aiAnalyticBusinessConfigs = aiAnalyticBusinessConfigMapper.selectList( + Wrappers.lambdaQuery() + .eq(AiAnalyticBusinessConfig::getBusinessLine, BusinessTypeEnum.COMMUNITYTARGET.getCode()) + .eq(AiAnalyticBusinessConfig::getConfigType, BusinessTypeEnum.CASE.getCode()) + .eq(AiAnalyticBusinessConfig::getIsDeleted, 0) + .eq(AiAnalyticBusinessConfig::getConfigVersion, 1) + ); + log.info("开始调用案件工作流,token: {}",token); + + //取出aiAnalyticBusinessConfigs里的所有configData + String configDataString = aiAnalyticBusinessConfigs.stream() + .map(AiAnalyticBusinessConfig::getConfigData) + .collect(Collectors.joining(" ")); + difyCommunityTargetDTO.setSentiment(configDataString); DiFyReq diFyReq = new DiFyReq(); diFyReq.setUser(user); diFyReq.setInputs(difyCommunityTargetDTO); From 876569bbb05dda96f4d971c7d971c0d4642a3917 Mon Sep 17 00:00:00 2001 From: lxu75 Date: Tue, 13 May 2025 17:29:01 +0800 Subject: [PATCH 13/15] =?UTF-8?q?=E8=88=86=E6=83=85=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=8C=96=E5=85=A5=E5=8F=82=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../center/service/impl/MqMessageRecordServiceImpl.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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 7f9cf4b..5e2ce92 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 @@ -106,8 +106,11 @@ public class MqMessageRecordServiceImpl extends ServiceImpl Date: Wed, 14 May 2025 17:57:14 +0800 Subject: [PATCH 14/15] =?UTF-8?q?AIID=E6=96=B9=E6=B3=95=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../center/utils/AiAnalysisUtils.java | 47 ++++++++++++++----- 1 file changed, 35 insertions(+), 12 deletions(-) diff --git a/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/utils/AiAnalysisUtils.java b/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/utils/AiAnalysisUtils.java index 1d284ce..bf629f2 100644 --- a/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/utils/AiAnalysisUtils.java +++ b/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/utils/AiAnalysisUtils.java @@ -1,18 +1,33 @@ package com.volvo.ai.analytic.center.utils; +import cn.hutool.core.lang.Snowflake; import cn.hutool.core.util.IdUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; +import javax.annotation.PostConstruct; +import java.net.InetAddress; +import java.net.UnknownHostException; + @Slf4j @Component public class AiAnalysisUtils { - /** - * 生成ai分析请求id - * @param businessType - * @return - */ + private static Snowflake snowflake; + + @PostConstruct + public void init() { + try { + // 使用 IP 生成唯一的 workerId + long workerId = ipToWorkerId(getLocalHostIP()); + snowflake = IdUtil.getSnowflake(workerId, 0); // datacenterId = 0 + log.info("Initialized Snowflake with workerId: {}", workerId); + } catch (Exception e) { + log.error("Failed to initialize Snowflake", e); + throw new RuntimeException("Snowflake initialization failed"); + } + } + public static String getAiAnalysisRequestId(String businessType) { if (businessType == null || businessType.trim().isEmpty()) { log.error("businessType is null or empty, using default value 'unknown'"); @@ -20,18 +35,26 @@ public class AiAnalysisUtils { } try { - long snowflakeId = IdUtil.getSnowflakeNextId(); - if (snowflakeId == 0) { - log.error("Failed to generate Snowflake ID"); - throw new RuntimeException("Failed to generate Snowflake ID"); - } + // 使用自定义的 Snowflake 实例生成 ID + long snowflakeId = snowflake.nextId(); String aiAnalysisRequestId = businessType + "-" + snowflakeId; log.info("Generated AI analysis request ID: {}", aiAnalysisRequestId); return aiAnalysisRequestId; } catch (Exception e) { log.error("Error generating AI analysis request ID", e); - //生成唯一字符串 - return businessType + "-"+IdUtil.fastSimpleUUID(); + return businessType + "-" + IdUtil.fastSimpleUUID(); } } + + // 获取本机 IP + private static String getLocalHostIP() throws UnknownHostException { + return InetAddress.getLocalHost().getHostAddress(); + } + + // 将 IP 转换为合法的 workerId (0 ~ 31) + private static long ipToWorkerId(String ip) { + String[] parts = ip.replaceAll("[^\\d.]", "").split("\\."); + int lastOctet = Integer.parseInt(parts[parts.length - 1]); + return lastOctet % 32; // 限制范围 [0, 31] + } } From 15572792503b7e8c44121ae946c2ab91d95a816f Mon Sep 17 00:00:00 2001 From: zren25 Date: Mon, 19 May 2025 14:06:57 +0800 Subject: [PATCH 15/15] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=82=B9=E8=B8=A9?= =?UTF-8?q?=E7=82=B9=E8=B5=9E=E6=98=8E=E7=BB=86=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../center/entity/TtAnalysisResultInfo.java | 103 ++++++++++++++++++ .../center/enums/BusinessTypeEnum.java | 6 +- .../mapper/TtAnalysisResultInfoMapper.java | 16 +++ .../center/mq/CorpushIsLikeConsumer.java | 21 +++- .../impl/TmAnalysisResultServiceImpl.java | 1 + 5 files changed, 142 insertions(+), 5 deletions(-) create mode 100644 ai-analytic-center-api/src/main/java/com/volvo/ai/analytic/center/entity/TtAnalysisResultInfo.java create mode 100644 ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/mapper/TtAnalysisResultInfoMapper.java diff --git a/ai-analytic-center-api/src/main/java/com/volvo/ai/analytic/center/entity/TtAnalysisResultInfo.java b/ai-analytic-center-api/src/main/java/com/volvo/ai/analytic/center/entity/TtAnalysisResultInfo.java new file mode 100644 index 0000000..1123a82 --- /dev/null +++ b/ai-analytic-center-api/src/main/java/com/volvo/ai/analytic/center/entity/TtAnalysisResultInfo.java @@ -0,0 +1,103 @@ +package com.volvo.ai.analytic.center.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @description AI解析反馈明细表 + * @author BEJSON + * @date 2025-03-11 + */ +@Data +@TableName("tt_analysis_result_info") +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class TtAnalysisResultInfo { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value="id", type = IdType.AUTO) + private Long id; + @TableField(value="analysis_result_id") + private Long analysisResultId; + /** + * 语料Id + */ + @TableField("ai_analysis_request_id") + private String aiAnalysisRequestId; + + /** + * 语料类型【1:企业微信,2:电话】 + */ + @TableField("analysis_type") + private String analysisType; + + /** + * corpus_time + */ + @TableField("analysis_result") + private String analysisResult; + + + /** + * 删除标识(0-未删除,1-已删除) + */ + @TableField("is_deleted") + private Integer isDeleted; + + /** + * 记录版本号,即乐观锁 + */ + @TableField("version") + private Integer version; + + /** + * 创建人 + */ + @TableField("create_by") + private String createBy; + + /** + * 更新人 + */ + @TableField("update_by") + private String updateBy; + + /** + * 创建sql人 + */ + @TableField("create_sqlby") + private String createSqlby; + + /** + * 更新sql人 + */ + @TableField("update_sqlby") + private String updateSqlby; + + /** + * 创建时间 + */ + @TableField("create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField("update_time") + private Date updateTime; + + +} \ No newline at end of file diff --git a/ai-analytic-center-api/src/main/java/com/volvo/ai/analytic/center/enums/BusinessTypeEnum.java b/ai-analytic-center-api/src/main/java/com/volvo/ai/analytic/center/enums/BusinessTypeEnum.java index cf12b18..a0ed9dc 100644 --- a/ai-analytic-center-api/src/main/java/com/volvo/ai/analytic/center/enums/BusinessTypeEnum.java +++ b/ai-analytic-center-api/src/main/java/com/volvo/ai/analytic/center/enums/BusinessTypeEnum.java @@ -18,8 +18,10 @@ public enum BusinessTypeEnum { CLAIM_VERIFICATION_DIAGNOSTIC("DIAGNOSTIC", "诊断报告"), //索赔检核配置类型 - AUDITRULES("AuditRules", "审计规则配置") -; + AUDITRULES("AuditRules", "审计规则配置"), + + SMART_ASSISTANT_NAMEPLATE("SMART_ASSISTANT_NAMEPLATE", "智能助手-铭牌") + ; private String code; private String message; diff --git a/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/mapper/TtAnalysisResultInfoMapper.java b/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/mapper/TtAnalysisResultInfoMapper.java new file mode 100644 index 0000000..3b15cf0 --- /dev/null +++ b/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/mapper/TtAnalysisResultInfoMapper.java @@ -0,0 +1,16 @@ +package com.volvo.ai.analytic.center.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.volvo.ai.analytic.center.entity.TtAnalysisResultInfo; +import org.apache.ibatis.annotations.Mapper; + +/** + * @description Ai分析结果明细表 + * @author BEJSON + * @date 2025-03-04 + */ +@Mapper +public interface TtAnalysisResultInfoMapper extends BaseMapper { + + +} \ No newline at end of file diff --git a/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/mq/CorpushIsLikeConsumer.java b/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/mq/CorpushIsLikeConsumer.java index 1ac1fb0..565894e 100644 --- a/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/mq/CorpushIsLikeConsumer.java +++ b/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/mq/CorpushIsLikeConsumer.java @@ -2,7 +2,10 @@ package com.volvo.ai.analytic.center.mq; import com.alibaba.fastjson.JSONObject; import com.volvo.ai.analytic.center.entity.TmAnalysisResult; +import com.volvo.ai.analytic.center.entity.TtAnalysisResultInfo; +import com.volvo.ai.analytic.center.enums.BusinessTypeEnum; import com.volvo.ai.analytic.center.mapper.AiAnalysisRequestLogsMapper; +import com.volvo.ai.analytic.center.mapper.TtAnalysisResultInfoMapper; import com.volvo.ai.analytic.center.service.TmAnalysisResultService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -12,7 +15,9 @@ import org.apache.rocketmq.spring.core.RocketMQListener; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import java.util.Arrays; import java.util.Date; +import java.util.List; @Slf4j @Component @@ -26,6 +31,9 @@ public class CorpushIsLikeConsumer implements RocketMQListener{ @Autowired private AiAnalysisRequestLogsMapper aiAnalysisRequestLogsMapper; + + @Autowired + private TtAnalysisResultInfoMapper ttAnalysisResultInfoMapper; @Override public void onMessage(MessageExt messageExt) { @@ -44,13 +52,20 @@ public class CorpushIsLikeConsumer implements RocketMQListener{ log.info(" 回调的aiAnalysisRequestType为空:{} ", aiAnalysisRequestType); return; } - //   "isLike": "1" // 1:点赞,2:点踩 - tmAnalysisResultService.saveTmCorpusReport(TmAnalysisResult.builder() + TmAnalysisResult tmAnalysisResult = TmAnalysisResult.builder() .aiAnalysisRequestId(execDifyFlow.getString("analysisRecordId")) .analysisResult(execDifyFlow.toJSONString()) .analysisType(aiAnalysisRequestType) .updateTime(new Date()) - .build()); + .build(); + //   "isLike": "1" // 1:点赞,2:点踩 + tmAnalysisResultService.saveTmCorpusReport(tmAnalysisResult); + List aiAnalysisRequestIdList = Arrays.asList(BusinessTypeEnum.SMART_ASSISTANT.getCode(),BusinessTypeEnum.SMART_ASSISTANT_QIWEI.getCode(),BusinessTypeEnum.SMART_ASSISTANT_NAMEPLATE.getCode()); + if(aiAnalysisRequestIdList.contains(aiAnalysisRequestType)){ + // 保存明细 + ttAnalysisResultInfoMapper.insert(TtAnalysisResultInfo.builder().analysisResultId(tmAnalysisResult.getId()).analysisType(aiAnalysisRequestType).aiAnalysisRequestId(analysisRecordId).analysisResult(execDifyFlow.toJSONString()).build()); + + } } catch (Exception e) { log.info(" corpushIsLikeConsumer AI结果回传处理异常:{} ", e); } diff --git a/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/service/impl/TmAnalysisResultServiceImpl.java b/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/service/impl/TmAnalysisResultServiceImpl.java index 4e6af71..81116b4 100644 --- a/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/service/impl/TmAnalysisResultServiceImpl.java +++ b/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/service/impl/TmAnalysisResultServiceImpl.java @@ -24,6 +24,7 @@ public class TmAnalysisResultServiceImpl extends ServiceImpl 0; } else { + tmAnalysisResult.setId(oldTmCorpusReport.getId()); return tmCorpusReportMapper.update(tmAnalysisResult, queryWrapper) > 0; } }