索赔检核代码

This commit is contained in:
lxu75
2025-04-09 19:07:25 +08:00
parent 79ce89049b
commit 27d625a022
7 changed files with 255 additions and 1 deletions

View File

@@ -0,0 +1,9 @@
package com.volvo.ai.analytic.center.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.volvo.ai.analytic.center.entity.AiAnalyticBusinessConfig;
import org.mapstruct.Mapper;
@Mapper
public interface AiAnalyticBusinessConfigMapper extends BaseMapper<AiAnalyticBusinessConfig> {
}

View File

@@ -0,0 +1,26 @@
package com.volvo.ai.analytic.center.mq;
import com.volvo.ai.analytic.center.service.ClaimVerificationService;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Slf4j
@Component
@RocketMQMessageListener(consumerGroup = "${rocketmq.consumer..group}",
topic = "${rocketmq.consumer.topic}",
enableMsgTrace = true)
public class ClaimVerificationConsumer implements RocketMQListener<MessageExt>{
@Autowired
private ClaimVerificationService claimVerificationService;
@Override
public void onMessage(MessageExt messageExt) {
log.info("Received 索赔检核 message: " + messageExt);
claimVerificationService.consumerMessageByMQ(new String(messageExt.getBody()));
}
}

View File

@@ -0,0 +1,8 @@
package com.volvo.ai.analytic.center.service;
public interface ClaimVerificationService {
void consumerMessageByMQ(String message);
}

View File

@@ -0,0 +1,75 @@
package com.volvo.ai.analytic.center.service.impl;
import com.alibaba.fastjson.JSON;
import com.volvo.ai.analytic.center.dto.req.ClaimVerificationFileDTO;
import com.volvo.ai.analytic.center.entity.AiAnalysisRequestLogs;
import com.volvo.ai.analytic.center.enums.BusinessTypeEnum;
import com.volvo.ai.analytic.center.mapper.AiAnalysisRequestLogsMapper;
import com.volvo.ai.analytic.center.mapper.AiAnalyticBusinessConfigMapper;
import com.volvo.ai.analytic.center.service.ClaimVerificationService;
import com.volvo.ai.analytic.center.utils.AiAnalysisUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import java.util.List;
@Slf4j
@Service
public class ClaimVerificationServiceImpl implements ClaimVerificationService {
@Autowired
private AiAnalysisRequestLogsMapper aiAnalysisRequestLogsMapper;
@Autowired
private AiAnalyticBusinessConfigMapper aiAnalyticBusinessConfigMapper;
@Value("${dify.claimVerification.user}")
private String claimVerificationUser;
@Value("${dify.claimVerification.fileToken}")
private String fileToken;
@Value("${dify.claimVerification.verificationToken}")
private String verificationToken;
@Value("${rocketmq.producer.topic}")
private String topic;
@Override
public void consumerMessageByMQ(String message) {
log.info("售后索赔检核MQ message: {}", message);
ClaimVerificationFileDTO claimVerificationFileAnalysisDTO = JSON.parseObject(message, ClaimVerificationFileDTO.class);
if (claimVerificationFileAnalysisDTO == null) {
log.error(" 售后索赔检核文件入参 is null");
throw new RuntimeException(" 售后索赔检核文件分析入参为空");
}
// 生成ai分析请求id
String aiAnalysisRequestId = AiAnalysisUtils.getAiAnalysisRequestId(BusinessTypeEnum.COMMUNITYTARGET.getCode());
// 异步保存请求日志
syncSaveRequestLogs(message, aiAnalysisRequestId);
if(claimVerificationFileAnalysisDTO.getBusinessType().equals(BusinessTypeEnum.CLAIM_VERIFICATION_FILE_ANALYSIS.getCode())){
//文件分析
List<String> fileObsPath = claimVerificationFileAnalysisDTO.getFileObsPath();
if(fileObsPath != null && fileObsPath.size() > 0){
}
} else if(claimVerificationFileAnalysisDTO.getBusinessType().equals(BusinessTypeEnum.CLAIM_VERIFICATION_AUDIT.getCode())){
//审计报告
}else {
throw new RuntimeException(" 售后索赔检核业务类型错误");
}
}
@Async
protected void syncSaveRequestLogs(String message, String aiAnalysisRequestId) {
aiAnalysisRequestLogsMapper.insert(AiAnalysisRequestLogs.builder()
.aiAnalysisRequestId(aiAnalysisRequestId)
.businessRequest(message)
.difyAgentKey("")
.aiAnalysisRequestType(BusinessTypeEnum.COMMUNITYTARGET.getCode())
.build());
}
}