diff --git a/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/mq/AnalysisDifyMqConsumer.java b/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/mq/AnalysisDifyMqConsumer.java index 710a810..ffdc877 100644 --- a/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/mq/AnalysisDifyMqConsumer.java +++ b/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/mq/AnalysisDifyMqConsumer.java @@ -4,6 +4,8 @@ package com.volvo.ai.analytic.center.mq; import com.alibaba.fastjson.JSONObject; import com.fasterxml.jackson.databind.ObjectMapper; import com.volvo.ai.analytic.center.dto.req.DiFyReq; +import com.volvo.ai.analytic.center.entity.AiAnalysisErrors; +import com.volvo.ai.analytic.center.service.AiAnalysisErrorsService; import com.volvo.ai.analytic.center.service.AiAnalysisRequestLogsService; import com.volvo.ai.analytic.center.service.DiFyService; import com.volvo.ai.analytic.center.utils.ConstantStr; @@ -56,6 +58,9 @@ public class AnalysisDifyMqConsumer implements RocketMQListener { @Autowired private RedisCounterRateLimiter redisCounterRateLimiter; + @Autowired + private AiAnalysisErrorsService aiAnalysisErrorsService; + private final ObjectMapper objectMapper = new ObjectMapper(); @Override @@ -76,7 +81,19 @@ public class AnalysisDifyMqConsumer implements RocketMQListener { JSONObject difyRequest = JSONObject.parseObject(JSONObject.toJSONString(difyReq.getInputs()), JSONObject.class); String aiAnalysisRequestId = difyRequest.getString("aiAnalysisRequestId"); // JSONObject json = future.get(); - future.thenAccept(result -> log.info("异步处理asyncExecuteDifyFlow完成aiAnalysisRequestId: {},处理结果:{}", aiAnalysisRequestId, result)).exceptionally(ex -> { + future.thenAccept(result -> { + log.info("异步处理asyncExecuteDifyFlow完成aiAnalysisRequestId: {},处理结果:{}", aiAnalysisRequestId, result); + JSONObject data = result.getJSONObject("data"); + + if(null == result || data.get("status").equals("failed")){ + aiAnalysisErrorsService.saveAiAnalysisErrors(AiAnalysisErrors.builder() + .aiAnalysisRequestId(aiAnalysisRequestId) + .aiAnalysisRequestType(difyRequest.getString("aiAnalysisRequestType")) + .aiAnalysisErrorHandlingStatus("0") + .aiAnalysisErrorMessage(data.getString("error")) + .build()); + } + }).exceptionally(ex -> { log.error("异步处理asyncExecuteDifyFlow 失败aiAnalysisRequestId: {} ,{}", aiAnalysisRequestId,ex.getMessage()); return null; }); diff --git a/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/service/impl/AiAnalysisDifyServiceImpl.java b/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/service/impl/AiAnalysisDifyServiceImpl.java index 1c8820e..9ce96f2 100644 --- a/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/service/impl/AiAnalysisDifyServiceImpl.java +++ b/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/service/impl/AiAnalysisDifyServiceImpl.java @@ -123,6 +123,7 @@ public class AiAnalysisDifyServiceImpl implements AiAnalysisDifyService { diFyReq.setFlowId(tcBusinessType.getWorkflowApiKey()); JSONObject difyRequest = JSONObject.parseObject(JSONObject.toJSONString(analysisReq.getData()), JSONObject.class); difyRequest.put("aiAnalysisRequestId", aiAnalysisRequestId); + difyRequest.put("aiAnalysisRequestType", tcBusinessType.getBusinessRequestType() ); diFyReq.setInputs(difyRequest); return diFyReq; }