更改调用dify逻辑

This commit is contained in:
jie.lu
2025-08-14 10:42:36 +08:00
parent 871df8fd8c
commit 2551d415e3
2 changed files with 62 additions and 44 deletions

View File

@@ -47,7 +47,7 @@ public class ClaimVerificationFileDTO {
@AllArgsConstructor
@NoArgsConstructor
public static class ClaimVerificationFile {
private String fileId;
private String fileBusinessId;
private String fileObsPath;
private String fileType;
}

View File

@@ -9,6 +9,7 @@ import com.obs.services.model.ObsObject;
import com.volvo.ai.analytic.center.constant.ClaimVerificationConstant;
import com.volvo.ai.analytic.center.constant.Constant;
import com.volvo.ai.analytic.center.dto.req.ClaimVerificationFileDTO;
import com.volvo.ai.analytic.center.dto.req.ClaimVerificationFileDTO.ClaimVerificationFile;
import com.volvo.ai.analytic.center.dto.req.DiFyReq;
import com.volvo.ai.analytic.center.dto.req.RunMaskingRuleInput;
import com.volvo.ai.analytic.center.entity.*;
@@ -189,7 +190,11 @@ public class ClaimVerificationServiceImpl implements ClaimVerificationService {
}
} else if (claimVerificationFileAnalysisDTO.getBusinessType().equals(BusinessTypeEnum.CLAIM_VERIFICATION_CLASSIFY_APP.getCode())) {
//文件分类
List<String> fileObsPath = claimVerificationFileAnalysisDTO.getFileObsPath();
List<ClaimVerificationFile> claimVerificationFiles = claimVerificationFileAnalysisDTO.getClaimVerificationFiles();
List<ClaimVerificationFile> resultFiles = new ArrayList<>();
for (ClaimVerificationFile claimVerificationFile : claimVerificationFiles) {
List<String> fileObsPath = new ArrayList<>();
fileObsPath.add(claimVerificationFile.getFileObsPath());
List<HashMap<String, String>> fileIds = new ArrayList<>();
log.info("文件分类文件ID:{}", fileObsPath);
//上传所有文件到dify
@@ -221,20 +226,33 @@ public class ClaimVerificationServiceImpl implements ClaimVerificationService {
diFyReq.setFlowId(fileClassifyToken);
diFyReq.setInputs(fileToDifyDTO);
//调用dify 工作流
diFyObject = (JSONObject) diFyService.getDiFyObject(diFyReq);
//处理结果并推送MQ
if (diFyObject == null) {
JSONObject classifyDiFyObject = (JSONObject) diFyService.getDiFyObject(diFyReq);
//处理结果
if (classifyDiFyObject == null) {
log.error(" 售后索赔检核文件分类dify返回结果为空");
saveException("售后索赔检核文件分类dify返回结果为空", aiAnalysisRequestId, null);
} else {
//解析dify返回结果
JSONObject data = analyzeParameters(diFyObject, claimVerificationFileAnalysisDTO, aiAnalysisRequestId);
//返回结果推送到Newbie的MQ
String fileType = diFyObject.getString("fileBusinessType");
//判断字符串那个是不为空的然后进行处理
if (StringUtils.isNotBlank(fileType)) {
claimVerificationFile.setFileType(fileType);
} else {
claimVerificationFile.setFileType("0");
}
resultFiles.add(claimVerificationFile);
}
}
JSONObject data = new JSONObject();
data.put("newBieAfterSalesId", claimVerificationFileAnalysisDTO.getNewBieAfterSalesId());
data.put("businessType", claimVerificationFileAnalysisDTO.getBusinessType());
data.put("claimVerificationFiles", resultFiles);
data.put("aiAnalysisRequestId", aiAnalysisRequestId);
rocketMQTemplate.syncSend(topic, data);
log.info("索赔检核文件分类发送回调MQ完成: {}", data);
}
//异步更新请求日志表的difyResponse字段
syncUpdateDiFyResponse(diFyObject, aiAnalysisRequestId);
syncUpdateDiFyResponse(data, aiAnalysisRequestId);
} else {
saveException("售后索赔检核业务类型错误", aiAnalysisRequestId, null);
}