索赔检核代码
This commit is contained in:
@@ -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> {
|
||||
}
|
||||
@@ -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()));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package com.volvo.ai.analytic.center.service;
|
||||
|
||||
public interface ClaimVerificationService {
|
||||
|
||||
|
||||
void consumerMessageByMQ(String message);
|
||||
|
||||
}
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user