diff --git a/ai-analytic-center-api/src/main/java/com/volvo/ai/analytic/center/entity/AiAnalysisErrors.java b/ai-analytic-center-api/src/main/java/com/volvo/ai/analytic/center/entity/AiAnalysisErrors.java index 01c3799..0d2ff85 100644 --- a/ai-analytic-center-api/src/main/java/com/volvo/ai/analytic/center/entity/AiAnalysisErrors.java +++ b/ai-analytic-center-api/src/main/java/com/volvo/ai/analytic/center/entity/AiAnalysisErrors.java @@ -2,13 +2,17 @@ package com.volvo.ai.analytic.center.entity; import com.baomidou.mybatisplus.annotation.*; import com.volvo.common.core.base.BaseEntity; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; import java.time.LocalDateTime; @Data @Builder +@AllArgsConstructor +@NoArgsConstructor @TableName("tt_ai_analysis_errors") public class AiAnalysisErrors extends BaseEntity { 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 1e4a54a..00d03d9 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 @@ -148,26 +148,10 @@ public class MqMessageRecordServiceImpl extends ServiceImpl aiAnalysisErrors = aiAnalysisErrorsMapper.selectList(new LambdaQueryWrapper() - .eq(AiAnalysisErrors::getAiAnalysisRequestType, BusinessTypeEnum.COMMUNITYTARGET.getCode()) - .eq(AiAnalysisErrors::getAiAnalysisErrorHandlingStatus, "0") - .lt(AiAnalysisErrors::getRetryCount, 4)); + try { + //捞取异常表中属于社区的异常数据 + List aiAnalysisErrors = aiAnalysisErrorsMapper.selectList(new LambdaQueryWrapper() + .eq(AiAnalysisErrors::getAiAnalysisRequestType, BusinessTypeEnum.COMMUNITYTARGET.getCode()) + .eq(AiAnalysisErrors::getAiAnalysisErrorHandlingStatus, "0") + .lt(AiAnalysisErrors::getRetryCount, 4)); + if (aiAnalysisErrors != null && aiAnalysisErrors.size() > 0) { + //根据ai_analysis_request_id获取AiAnalysisRequestLogs表中的对应的dify_request字段 + for (AiAnalysisErrors aiAnalysisError : aiAnalysisErrors) { + AiAnalysisRequestLogs aiAnalysisRequestLogs = aiAnalysisRequestLogsMapper.selectOne(new LambdaQueryWrapper() + .eq(AiAnalysisRequestLogs::getAiAnalysisRequestId, aiAnalysisError.getAiAnalysisRequestId())); + if (aiAnalysisRequestLogs != null) { + //获取dify_request字段 + String difyRequest = aiAnalysisRequestLogs.getDifyRequest(); + if (StringUtils.isNotEmpty(difyRequest)) { + //调用dify接口 + DiFyReq diFyReq = new DiFyReq(); + diFyReq.setUser(user); + diFyReq.setFlowId(flowId); + diFyReq.setInputs(JSONObject.parseObject(difyRequest)); + JSONObject difResult = (JSONObject) diFyService.getDiFyObject(diFyReq); + this.dueCommunityDifyResponse(difResult); + } + //根据ai_analysis_request_id更新ai_analysis_errors表中的retry_count字段+1,更新status字段为1 + aiAnalysisErrorsMapper.update(new AiAnalysisErrors(), new LambdaUpdateWrapper() + .eq(AiAnalysisErrors::getAiAnalysisRequestId, aiAnalysisError.getAiAnalysisRequestId()) + .set(AiAnalysisErrors::getRetryCount, aiAnalysisError.getRetryCount() + 1) + .set(AiAnalysisErrors::getAiAnalysisErrorHandlingStatus, "1")); + } + } + } + } catch (Exception e) { + throw new RuntimeException(e); + } } private String getUserStatus(String oldStr) {