修改sonar扫出的问题

This commit is contained in:
ZLI263
2025-09-12 14:39:47 +08:00
parent 9a96e9bdab
commit 367590bb25
4 changed files with 23 additions and 47 deletions

View File

@@ -1,6 +1,7 @@
package com.volvo.ai.analytic.center.job; package com.volvo.ai.analytic.center.job;
import com.volvo.ai.analytic.center.dto.corpus.AicorpusTelephoneDTO; import com.volvo.ai.analytic.center.dto.corpus.AicorpusTelephoneDTO;
import com.volvo.ai.analytic.center.exception.JobTaskException;
import com.volvo.ai.analytic.center.mapper.TmTelephoneCorpusMapper; import com.volvo.ai.analytic.center.mapper.TmTelephoneCorpusMapper;
import com.volvo.ai.analytic.center.service.CorpusPortraitService; import com.volvo.ai.analytic.center.service.CorpusPortraitService;
import com.volvo.ai.analytic.center.service.TmOdsVdqwMessagearchivingService; import com.volvo.ai.analytic.center.service.TmOdsVdqwMessagearchivingService;
@@ -61,7 +62,7 @@ public class QiWeiCorpusJob {
tmOdsVdqwMessagearchivingService.runQiWeiCorpusDify(param); tmOdsVdqwMessagearchivingService.runQiWeiCorpusDify(param);
} catch (Exception e) { } catch (Exception e) {
log.error(PROCESS_MESSAGE_TASK_ERROR,e.getMessage()); log.error(PROCESS_MESSAGE_TASK_ERROR,e.getMessage());
throw new RuntimeException(e); throw new JobTaskException(PROCESS_MESSAGE_TASK_ERROR, e);
} }
return ResultMsg.ok(); return ResultMsg.ok();
} }
@@ -81,15 +82,13 @@ public class QiWeiCorpusJob {
// 执行业务逻辑 // 执行业务逻辑
XxlJobHelper.log("dccCorpusFailRetry任务参数: {}", param); XxlJobHelper.log("dccCorpusFailRetry任务参数: {}", param);
List<AicorpusTelephoneDTO> corpusDtoList = tmTelephoneCorpusMapper.queryTelephoneCorpusBySourceIds( Arrays.asList(param.split(","))); List<AicorpusTelephoneDTO> corpusDtoList = tmTelephoneCorpusMapper.queryTelephoneCorpusBySourceIds( Arrays.asList(param.split(",")));
corpusDtoList.stream().forEach(item-> corpusDtoList.stream().forEach(item-> {
{
tmTelephoneCorpusService.runTelephoneCorpusDify(item); tmTelephoneCorpusService.runTelephoneCorpusDify(item);
corpusPortraitService.portraitDcc(item); corpusPortraitService.portraitDcc(item);
} });
);
} catch (Exception e) { } catch (Exception e) {
log.error(PROCESS_MESSAGE_TASK_ERROR,e.getMessage()); log.error(PROCESS_MESSAGE_TASK_ERROR,e.getMessage());
throw new RuntimeException(e); throw new JobTaskException(PROCESS_MESSAGE_TASK_ERROR, e);
} }
return ResultMsg.ok(); return ResultMsg.ok();
} }
@@ -107,14 +106,12 @@ public class QiWeiCorpusJob {
// 执行业务逻辑 // 执行业务逻辑
XxlJobHelper.log("dccCorpusFailRetry任务参数: {}", param); XxlJobHelper.log("dccCorpusFailRetry任务参数: {}", param);
List<AicorpusTelephoneDTO> corpusDtoList = tmTelephoneCorpusMapper.queryTelephoneCorpusBySourceIds( Arrays.asList(param.split(","))); List<AicorpusTelephoneDTO> corpusDtoList = tmTelephoneCorpusMapper.queryTelephoneCorpusBySourceIds( Arrays.asList(param.split(",")));
corpusDtoList.stream().forEach(item-> corpusDtoList.stream().forEach(item-> {
{
corpusPortraitService.portraitDcc(item); corpusPortraitService.portraitDcc(item);
} });
);
} catch (Exception e) { } catch (Exception e) {
log.error(PROCESS_MESSAGE_TASK_ERROR,e.getMessage()); log.error(PROCESS_MESSAGE_TASK_ERROR,e.getMessage());
throw new RuntimeException(e); throw new JobTaskException(PROCESS_MESSAGE_TASK_ERROR, e);
} }
return ResultMsg.ok(); return ResultMsg.ok();
} }

View File

@@ -2,7 +2,6 @@
package com.volvo.ai.analytic.center.mq; package com.volvo.ai.analytic.center.mq;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.volvo.ai.analytic.center.constant.Constant; import com.volvo.ai.analytic.center.constant.Constant;
@@ -55,7 +54,6 @@ public class CorpusDccMqConsumer implements RocketMQListener<MessageExt> {
if(Objects.equals(aicorpusTelephone.getCategoryCode(), Constant.CHANNEL_DCC)){ if(Objects.equals(aicorpusTelephone.getCategoryCode(), Constant.CHANNEL_DCC)){
//TODO 这里需要确认客户画像下这个字段值是什么? 已经确认了和总结需求的dcc场景是一致的 所以不需要修改。。 //TODO 这里需要确认客户画像下这个字段值是什么? 已经确认了和总结需求的dcc场景是一致的 所以不需要修改。。
//总结和客户画像都是这一个:Constant.CHANNEL_DCC //总结和客户画像都是这一个:Constant.CHANNEL_DCC
JSONObject jsonObject = JSONObject.parseObject( aicorpusTelephone.getDisplay());
log.info(" dcc_mq接收到消息 总结和分类业务场景: " + JSON.toJSONString(aicorpusTelephone)); log.info(" dcc_mq接收到消息 总结和分类业务场景: " + JSON.toJSONString(aicorpusTelephone));
tmTelephoneCorpusService.runTelephoneCorpusDify(aicorpusTelephone); tmTelephoneCorpusService.runTelephoneCorpusDify(aicorpusTelephone);
} }

View File

@@ -55,26 +55,6 @@ public class CorpusProcessKafkaProducer {
@Resource @Resource
private RocketMQTemplate rocketMqTemplate; private RocketMQTemplate rocketMqTemplate;
// @KafkaListener(
// topicPartitions = @TopicPartition(
// topic = "${spring.kafka.topic}",
// partitionOffsets = {
// @PartitionOffset(partition = "0", initialOffset = "2792520"),
// @PartitionOffset(partition = "1", initialOffset = "2596153"),
// @PartitionOffset(partition = "2", initialOffset = "2536889"),
// @PartitionOffset(partition = "3", initialOffset = "2782173"),
// @PartitionOffset(partition = "4", initialOffset = "2616677"),
// @PartitionOffset(partition = "5", initialOffset = "2529585"),
// @PartitionOffset(partition = "6", initialOffset = "2761950"),
// @PartitionOffset(partition = "7", initialOffset = "2581957"),
// @PartitionOffset(partition = "8", initialOffset = "2530225"),
// @PartitionOffset(partition = "9", initialOffset = "2803179"),
// @PartitionOffset(partition = "10", initialOffset = "2599129"),
// @PartitionOffset(partition = "11", initialOffset = "2546277")
// }
// ),
// groupId = "${spring.kafka.group}"
// )
//spring.kafka.topic=topic_voc_covert_text_log spring.kafka.group=topic_group_covert_text_log_voc_ai_ac_uat //spring.kafka.topic=topic_voc_covert_text_log spring.kafka.group=topic_group_covert_text_log_voc_ai_ac_uat
@KafkaListener(topics = "${spring.kafka.topic}", groupId = "${spring.kafka.group}") @KafkaListener(topics = "${spring.kafka.topic}", groupId = "${spring.kafka.group}")
public void listen(List<ConsumerRecord<String, Object>> recordMessages) { public void listen(List<ConsumerRecord<String, Object>> recordMessages) {

View File

@@ -46,6 +46,9 @@ import java.util.stream.Collectors;
@Service @Service
public class CorpusPortraitServiceImpl implements CorpusPortraitService { public class CorpusPortraitServiceImpl implements CorpusPortraitService {
private static final String BRAND_KEY = "brand";
private static final String AI_ANALYSIS_REQUEST_ID_KEY = "aiAnalysisRequestId";
@Autowired @Autowired
TmTelephoneCorpusService tmTelephoneCorpusService; TmTelephoneCorpusService tmTelephoneCorpusService;
@@ -112,7 +115,7 @@ public class CorpusPortraitServiceImpl implements CorpusPortraitService {
return; return;
} }
// 遍历 segments // 遍历 segments
StringBuffer chatList = new StringBuffer(); StringBuilder chatList = new StringBuilder();
segments.stream() segments.stream()
.map(segment -> (JSONObject) segment) .map(segment -> (JSONObject) segment)
.forEach(segment -> { .forEach(segment -> {
@@ -142,7 +145,7 @@ public class CorpusPortraitServiceImpl implements CorpusPortraitService {
inputMap.put("chat", chatList); inputMap.put("chat", chatList);
inputMap.put("recordId", aicorpusTelephone.getSourceId()); inputMap.put("recordId", aicorpusTelephone.getSourceId());
inputMap.put("communicateDate", formattedDateStartTime); inputMap.put("communicateDate", formattedDateStartTime);
inputMap.put("brand",getBrand()); inputMap.put(BRAND_KEY,getBrand());
inputMap.put("brandSeries",getSeriesByBrandId()); inputMap.put("brandSeries",getSeriesByBrandId());
inputMap.put("customerFlowId", aicorpusTelephone.getSourceId()); inputMap.put("customerFlowId", aicorpusTelephone.getSourceId());
@@ -157,15 +160,15 @@ public class CorpusPortraitServiceImpl implements CorpusPortraitService {
// 获取配置 // 获取配置
JSONObject execDifyFlow = diFyService.executeDifyFlow(diFyImageReq, BusinessTypeEnum.CORPUS_PORTRAIT_DCC.getCode(), JSONObject.toJSONString(corpusReportDTO), aicorpusTelephone.getAiAnalysisRequestId()); JSONObject execDifyFlow = diFyService.executeDifyFlow(diFyImageReq, BusinessTypeEnum.CORPUS_PORTRAIT_DCC.getCode(), JSONObject.toJSONString(corpusReportDTO), aicorpusTelephone.getAiAnalysisRequestId());
log.info("runDify execDifyFlow {}", execDifyFlow); log.info("runDify execDifyFlow {}", execDifyFlow);
String aiAnalysisRequestId = execDifyFlow.getString("aiAnalysisRequestId"); String aiAnalysisRequestId = null;
if (null != execDifyFlow && execDifyFlow.get("status").equals("succeeded")) { if (null != execDifyFlow && execDifyFlow.get("status").equals("succeeded")) {
aiAnalysisRequestId = execDifyFlow.getString(AI_ANALYSIS_REQUEST_ID_KEY);
JSONObject text = execDifyFlow.getJSONObject("outputs"); JSONObject text = execDifyFlow.getJSONObject("outputs");
// huaWeiService.sendEvent(setCloudEvents(aiAnalysisRequestId, text.toJSONString(), "DCC"), ltoChannelId);
// 发送MQ // 发送MQ
log.info("send mq DCC语料画像场景 {}", text); log.info("send mq DCC语料画像场景 {}", text);
tmTelephoneCorpusService.sendMq( BusinessTypeEnum.CORPUS_PORTRAIT_DCC.getCode(), text.toJSONString()); tmTelephoneCorpusService.sendMq( BusinessTypeEnum.CORPUS_PORTRAIT_DCC.getCode(), text.toJSONString());
aiAnalysisRequestLogsService.saveOrUpdateAiAnalysisRequestLogs(AiAnalysisRequestLogs.builder().aiAnalysisRequestId(execDifyFlow.getString("aiAnalysisRequestId")).businessResponse(text.toJSONString()).build()); aiAnalysisRequestLogsService.saveOrUpdateAiAnalysisRequestLogs(AiAnalysisRequestLogs.builder().aiAnalysisRequestId(execDifyFlow.getString(AI_ANALYSIS_REQUEST_ID_KEY)).businessResponse(text.toJSONString()).build());
} }
try { try {
@@ -222,7 +225,7 @@ public class CorpusPortraitServiceImpl implements CorpusPortraitService {
List<DataMaskingRule> maskingRuleItems = dataMaskingRuleService.getDataMaskingRuleListByApplicationChannel(BusinessTypeEnum.CORPUS_PORTRAIT_QIWEI.getCode()); List<DataMaskingRule> maskingRuleItems = dataMaskingRuleService.getDataMaskingRuleListByApplicationChannel(BusinessTypeEnum.CORPUS_PORTRAIT_QIWEI.getCode());
RunMaskingRuleInput runMaskingRuleInput = new RunMaskingRuleInput(); RunMaskingRuleInput runMaskingRuleInput = new RunMaskingRuleInput();
runMaskingRuleInput.setDataMaskingRules(maskingRuleItems); runMaskingRuleInput.setDataMaskingRules(maskingRuleItems);
StringBuffer chatList = new StringBuffer(); StringBuilder chatList = new StringBuilder();
AtomicInteger externalcontactCount = new AtomicInteger(); AtomicInteger externalcontactCount = new AtomicInteger();
contetnList.forEach(contentItem -> { contetnList.forEach(contentItem -> {
String title = ""; String title = "";
@@ -249,7 +252,7 @@ public class CorpusPortraitServiceImpl implements CorpusPortraitService {
inputMap.put("unionId", unionId); inputMap.put("unionId", unionId);
inputMap.put("consultantId", userId); inputMap.put("consultantId", userId);
inputMap.put("communicateDate", DateUtil.format(maxMsgTimeItem.getMsgTime(), DatePattern.NORM_DATETIME_PATTERN)); inputMap.put("communicateDate", DateUtil.format(maxMsgTimeItem.getMsgTime(), DatePattern.NORM_DATETIME_PATTERN));
inputMap.put("brand",getBrand()); inputMap.put(BRAND_KEY,getBrand());
inputMap.put("brandSeries",getSeriesByBrandId()); inputMap.put("brandSeries",getSeriesByBrandId());
diFyImageReq.setInputs(inputMap); diFyImageReq.setInputs(inputMap);
@@ -260,15 +263,14 @@ public class CorpusPortraitServiceImpl implements CorpusPortraitService {
// 获取配置 // 获取配置
JSONObject execDifyFlow = diFyService.executeDifyFlow(diFyImageReq, BusinessTypeEnum.CORPUS_PORTRAIT_QIWEI.getCode(), JSONObject.toJSONString(corpusReportDTO), null); JSONObject execDifyFlow = diFyService.executeDifyFlow(diFyImageReq, BusinessTypeEnum.CORPUS_PORTRAIT_QIWEI.getCode(), JSONObject.toJSONString(corpusReportDTO), null);
log.info("runDify execDifyFlow 企微语料,画像场景 Dify的返回 : {}", execDifyFlow); log.info("runDify execDifyFlow 企微语料,画像场景 Dify的返回 : {}", execDifyFlow);
String aiAnalysisRequestId = execDifyFlow.getString("aiAnalysisRequestId");
if (null != execDifyFlow && execDifyFlow.get("status").equals("succeeded")) { if (null != execDifyFlow && execDifyFlow.get("status").equals("succeeded")) {
String aiAnalysisRequestId = execDifyFlow.getString(AI_ANALYSIS_REQUEST_ID_KEY);
JSONObject text = execDifyFlow.getJSONObject("outputs"); JSONObject text = execDifyFlow.getJSONObject("outputs");
// TODO 检查是否发了 unionid 画像场景 "businessId": "业务ID", // 根据分析不同传不同的值 1、unionId 2、通话ID 3、客流ID 4、试驾ID // TODO 检查是否发了 unionid 画像场景 "businessId": "业务ID", // 根据分析不同传不同的值 1、unionId 2、通话ID 3、客流ID 4、试驾ID
// huaWeiService.sendEvent(setCloudEvents(aiAnalysisRequestId, text.toJSONString(),"QIWEI"),ltoChannelId);
log.info("send mq ,企微语料,画像场景 {}", text); log.info("send mq ,企微语料,画像场景 {}", text);
tmTelephoneCorpusService.sendMq( CategoryEnum.ENTERPRISE_WECHAT_PORTRAIT.getCode(), text.toJSONString()); tmTelephoneCorpusService.sendMq( CategoryEnum.ENTERPRISE_WECHAT_PORTRAIT.getCode(), text.toJSONString());
aiAnalysisRequestLogsService.saveOrUpdateAiAnalysisRequestLogs(AiAnalysisRequestLogs.builder().aiAnalysisRequestId(execDifyFlow.getString("aiAnalysisRequestId")).businessResponse(text.toJSONString()).build()); aiAnalysisRequestLogsService.saveOrUpdateAiAnalysisRequestLogs(AiAnalysisRequestLogs.builder().aiAnalysisRequestId(execDifyFlow.getString(AI_ANALYSIS_REQUEST_ID_KEY)).businessResponse(text.toJSONString()).build());
} }
} }
@@ -300,7 +302,7 @@ public class CorpusPortraitServiceImpl implements CorpusPortraitService {
String carModel = tmTelephoneCorpusService.getCarModelList(); String carModel = tmTelephoneCorpusService.getCarModelList();
inputMap.put("chat", corpusChat); inputMap.put("chat", corpusChat);
inputMap.put("customerFlowId", item.getCustomerFlowId()); inputMap.put("customerFlowId", item.getCustomerFlowId());
inputMap.put("brand",getBrand()); inputMap.put(BRAND_KEY,getBrand());
inputMap.put("brandSeries",getSeriesByBrandId()); inputMap.put("brandSeries",getSeriesByBrandId());
diFyImageReq.setInputs(inputMap); diFyImageReq.setInputs(inputMap);
@@ -310,15 +312,14 @@ public class CorpusPortraitServiceImpl implements CorpusPortraitService {
// 获取配置 // 获取配置
JSONObject execDifyFlow = diFyService.executeDifyFlow(diFyImageReq, BusinessTypeEnum.CORPUS_PORTRAIT_NAMEPLATE.getCode(), JSONObject.toJSONString(corpusReportDTO),null); JSONObject execDifyFlow = diFyService.executeDifyFlow(diFyImageReq, BusinessTypeEnum.CORPUS_PORTRAIT_NAMEPLATE.getCode(), JSONObject.toJSONString(corpusReportDTO),null);
log.info("runDify execDifyFlow {}", execDifyFlow); log.info("runDify execDifyFlow {}", execDifyFlow);
String aiAnalysisRequestId = execDifyFlow.getString("aiAnalysisRequestId");
if (null != execDifyFlow && execDifyFlow.get("status").equals("succeeded")) { if (null != execDifyFlow && execDifyFlow.get("status").equals("succeeded")) {
String aiAnalysisRequestId = execDifyFlow.getString(AI_ANALYSIS_REQUEST_ID_KEY);
JSONObject text = execDifyFlow.getJSONObject("outputs"); JSONObject text = execDifyFlow.getJSONObject("outputs");
// huaWeiService.sendEvent(setCloudEvents(aiAnalysisRequestId, text.toJSONString(),"NAMEPLATE"),ltoChannelId);
log.info("send mq ,铭牌语料,画像场景 {}", text); log.info("send mq ,铭牌语料,画像场景 {}", text);
tmTelephoneCorpusService.sendMq( BusinessTypeEnum.CORPUS_PORTRAIT_NAMEPLATE.getCode(), text.toJSONString()); tmTelephoneCorpusService.sendMq( BusinessTypeEnum.CORPUS_PORTRAIT_NAMEPLATE.getCode(), text.toJSONString());
aiAnalysisRequestLogsService.saveOrUpdateAiAnalysisRequestLogs(AiAnalysisRequestLogs.builder().aiAnalysisRequestId(execDifyFlow.getString("aiAnalysisRequestId")).businessResponse(text.toJSONString()).build()); aiAnalysisRequestLogsService.saveOrUpdateAiAnalysisRequestLogs(AiAnalysisRequestLogs.builder().aiAnalysisRequestId(execDifyFlow.getString(AI_ANALYSIS_REQUEST_ID_KEY)).businessResponse(text.toJSONString()).build());
} }
} catch (Exception e) { } catch (Exception e) {