From 8e0c6c7e5bf5063c5dbfa3144d54c39de081d3d9 Mon Sep 17 00:00:00 2001 From: lxu75 Date: Fri, 11 Apr 2025 15:38:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ai-analytic-center-biz/pom.xml | 6 +++ .../AiAnalyticBusinessConfigMapper.java | 2 +- .../impl/ClaimVerificationServiceImpl.java | 44 ++++++++++++++----- 3 files changed, 39 insertions(+), 13 deletions(-) diff --git a/ai-analytic-center-biz/pom.xml b/ai-analytic-center-biz/pom.xml index a4007da..49d7f3d 100644 --- a/ai-analytic-center-biz/pom.xml +++ b/ai-analytic-center-biz/pom.xml @@ -19,6 +19,12 @@ + + org.apache.commons + commons-text + 1.9 + + cn.hutool hutool-all diff --git a/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/mapper/AiAnalyticBusinessConfigMapper.java b/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/mapper/AiAnalyticBusinessConfigMapper.java index 77d0f17..6d147ef 100644 --- a/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/mapper/AiAnalyticBusinessConfigMapper.java +++ b/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/mapper/AiAnalyticBusinessConfigMapper.java @@ -2,7 +2,7 @@ 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; +import org.apache.ibatis.annotations.Mapper; @Mapper public interface AiAnalyticBusinessConfigMapper extends BaseMapper { diff --git a/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/service/impl/ClaimVerificationServiceImpl.java b/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/service/impl/ClaimVerificationServiceImpl.java index 0d8439b..7996260 100644 --- a/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/service/impl/ClaimVerificationServiceImpl.java +++ b/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/service/impl/ClaimVerificationServiceImpl.java @@ -12,7 +12,8 @@ import com.volvo.ai.analytic.center.dto.req.DiFyReq; import com.volvo.ai.analytic.center.entity.AiAnalysisRequestLogs; import com.volvo.ai.analytic.center.entity.AiAnalyticBusinessConfig; import com.volvo.ai.analytic.center.enums.BusinessTypeEnum; -import com.volvo.ai.analytic.center.enums.ClaimVerificationFileTypeEnums; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.text.StringEscapeUtils; import com.volvo.ai.analytic.center.feign.DiFyFeign; import com.volvo.ai.analytic.center.mapper.AiAnalysisRequestLogsMapper; import com.volvo.ai.analytic.center.mapper.AiAnalyticBusinessConfigMapper; @@ -30,6 +31,7 @@ import org.springframework.web.multipart.MultipartFile; import java.io.InputStream; import java.util.*; +import java.util.stream.Collectors; @Slf4j @Service @@ -59,6 +61,9 @@ public class ClaimVerificationServiceImpl implements ClaimVerificationService { @Value("${rocketmq.producer.claimVerification.topic}") private String topic; + @Value("${claimVerification.methodList}") + private List methodList; + @Autowired private RocketMQTemplate rocketMQTemplate; @Override @@ -86,6 +91,7 @@ public class ClaimVerificationServiceImpl implements ClaimVerificationService { .eq(AiAnalyticBusinessConfig::getBusinessLine, BusinessTypeEnum.CLAIM_VERIFICATION.getCode()) .eq(AiAnalyticBusinessConfig::getFileConfigCategory, claimVerificationFileAnalysisDTO.getFileType()) .eq(AiAnalyticBusinessConfig::getIsDeleted, 0) + .eq(AiAnalyticBusinessConfig::getConfigVersion, 1) ); //组装文件分析workflow入参 @@ -137,11 +143,23 @@ public class ClaimVerificationServiceImpl implements ClaimVerificationService { log.error(" 售后索赔检核文件分析dify返回结果为空"); throw new RuntimeException(" 售后索赔检核文件分析dify返回结果为空"); }else { + String toAfter = ""; + String textDoc = diFyObject.getString("textDoc"); + String textImage = diFyObject.getString("textImage"); + //判断字符串那个是不为空的然后进行处理 + if (StringUtils.isNotBlank(textDoc)) { + toAfter = StringEscapeUtils.unescapeJava(textDoc); + } else if (StringUtils.isNotBlank(textImage)) { + toAfter = StringEscapeUtils.unescapeJava(textImage); + } else { + throw new RuntimeException(" 售后索赔检核文件分析dify返回结果为空"); + } + JSONObject difyToAfter = JSONObject.parseObject(toAfter); JSONObject data = new JSONObject(); data.put("newBieAfterSalesId", claimVerificationFileAnalysisDTO.getNewBieAfterSalesId()); data.put("businessType", claimVerificationFileAnalysisDTO.getBusinessType()); data.put("fileType", claimVerificationFileAnalysisDTO.getFileType()); - data.put("fileData",diFyObject); + data.put("fileData",difyToAfter); //返回结果推送到Newbie的MQ rocketMQTemplate.syncSend(topic, data); log.info("索赔检核文件分析发送回调MQ完成: {}", data); @@ -150,22 +168,22 @@ public class ClaimVerificationServiceImpl implements ClaimVerificationService { syncUpdateDiFyResponse(diFyObject, aiAnalysisRequestId); } else if(claimVerificationFileAnalysisDTO.getBusinessType().equals(BusinessTypeEnum.CLAIM_VERIFICATION_AUDIT.getCode())){ //审计报告 - //加载审计规则配置 List aiAnalyticBusinessConfigs = aiAnalyticBusinessConfigMapper.selectList( Wrappers.lambdaQuery() .eq(AiAnalyticBusinessConfig::getBusinessLine, BusinessTypeEnum.CLAIM_VERIFICATION.getCode()) .eq(AiAnalyticBusinessConfig::getConfigType, BusinessTypeEnum.AUDITRULES.getCode()) - .eq(AiAnalyticBusinessConfig::getIsDeleted, 0)); + .eq(AiAnalyticBusinessConfig::getIsDeleted, 0) + .in(AiAnalyticBusinessConfig::getVerificationMethod,methodList) + ) + ; + String configDataString = aiAnalyticBusinessConfigs.stream() + .map(AiAnalyticBusinessConfig::getConfigData) + .collect(Collectors.joining(" ")); //组装审计报告workflow入参 JSONObject auditRules = new JSONObject(); - auditRules.put("analysisRules", aiAnalyticBusinessConfigs - .stream() - .filter(config -> config.getConfigType().equals("AuditRules")) - .map(AiAnalyticBusinessConfig::getConfigData) - .findFirst() - .orElse(null)); + auditRules.put("analysisRules", configDataString); auditRules.put("diagnosticReport", claimVerificationFileAnalysisDTO.getDiagnosticReport()); auditRules.put("preCheckReport", claimVerificationFileAnalysisDTO.getPreCheckReport()); auditRules.put("dtcReport", claimVerificationFileAnalysisDTO.getDtcReport()); @@ -181,10 +199,13 @@ public class ClaimVerificationServiceImpl implements ClaimVerificationService { log.error(" 售后索赔检核审计报告dify返回结果为空"); throw new RuntimeException(" 售后索赔检核审计报告dify返回结果为空"); }else { + String warrantyAuditReport = diFyObject.getString("warrantyAuditReport"); + warrantyAuditReport = StringEscapeUtils.unescapeJava(warrantyAuditReport); + JSONObject audiResToAfter = JSON.parseObject(warrantyAuditReport); JSONObject data = new JSONObject(); data.put("newBieAfterSalesId", claimVerificationFileAnalysisDTO.getNewBieAfterSalesId()); data.put("businessType", claimVerificationFileAnalysisDTO.getBusinessType()); - data.put("warrantyAuditReport",diFyObject); + data.put("warrantyAuditReport",audiResToAfter); //返回结果推送到Newbie的MQ rocketMQTemplate.syncSend(topic, data); log.info("索赔检核审计报告发送回调MQ完成: {}", data); @@ -212,7 +233,6 @@ public class ClaimVerificationServiceImpl implements ClaimVerificationService { } } - @Async protected void syncUpdateDiFyResponse(JSONObject difResult, String aiAnalysisRequestId) { aiAnalysisRequestLogsMapper.update(new AiAnalysisRequestLogs(),