更改调用dify逻辑
This commit is contained in:
@@ -47,7 +47,7 @@ public class ClaimVerificationFileDTO {
|
|||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
public static class ClaimVerificationFile {
|
public static class ClaimVerificationFile {
|
||||||
private String fileId;
|
private String fileBusinessId;
|
||||||
private String fileObsPath;
|
private String fileObsPath;
|
||||||
private String fileType;
|
private String fileType;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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.ClaimVerificationConstant;
|
||||||
import com.volvo.ai.analytic.center.constant.Constant;
|
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;
|
||||||
|
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.DiFyReq;
|
||||||
import com.volvo.ai.analytic.center.dto.req.RunMaskingRuleInput;
|
import com.volvo.ai.analytic.center.dto.req.RunMaskingRuleInput;
|
||||||
import com.volvo.ai.analytic.center.entity.*;
|
import com.volvo.ai.analytic.center.entity.*;
|
||||||
@@ -189,52 +190,69 @@ public class ClaimVerificationServiceImpl implements ClaimVerificationService {
|
|||||||
}
|
}
|
||||||
} else if (claimVerificationFileAnalysisDTO.getBusinessType().equals(BusinessTypeEnum.CLAIM_VERIFICATION_CLASSIFY_APP.getCode())) {
|
} else if (claimVerificationFileAnalysisDTO.getBusinessType().equals(BusinessTypeEnum.CLAIM_VERIFICATION_CLASSIFY_APP.getCode())) {
|
||||||
//文件分类
|
//文件分类
|
||||||
List<String> fileObsPath = claimVerificationFileAnalysisDTO.getFileObsPath();
|
List<ClaimVerificationFile> claimVerificationFiles = claimVerificationFileAnalysisDTO.getClaimVerificationFiles();
|
||||||
List<HashMap<String, String>> fileIds = new ArrayList<>();
|
List<ClaimVerificationFile> resultFiles = new ArrayList<>();
|
||||||
log.info("文件分类文件ID:{}", fileObsPath);
|
for (ClaimVerificationFile claimVerificationFile : claimVerificationFiles) {
|
||||||
//上传所有文件到dify
|
List<String> fileObsPath = new ArrayList<>();
|
||||||
uploadFileToObs(fileObsPath, fileIds);
|
fileObsPath.add(claimVerificationFile.getFileObsPath());
|
||||||
//根据业务线标识和文件配置分类查询配置
|
List<HashMap<String, String>> fileIds = new ArrayList<>();
|
||||||
List<AiAnalyticBusinessConfig> aiAnalyticBusinessConfigs = aiAnalyticBusinessConfigMapper.selectList(
|
log.info("文件分类文件ID:{}", fileObsPath);
|
||||||
Wrappers.<AiAnalyticBusinessConfig>lambdaQuery()
|
//上传所有文件到dify
|
||||||
.eq(AiAnalyticBusinessConfig::getBusinessLine, BusinessTypeEnum.CLAIM_VERIFICATION.getCode())
|
uploadFileToObs(fileObsPath, fileIds);
|
||||||
.eq(AiAnalyticBusinessConfig::getFileConfigCategory, claimVerificationFileAnalysisDTO.getFileType())
|
//根据业务线标识和文件配置分类查询配置
|
||||||
.eq(AiAnalyticBusinessConfig::getIsDeleted, 0)
|
List<AiAnalyticBusinessConfig> aiAnalyticBusinessConfigs = aiAnalyticBusinessConfigMapper.selectList(
|
||||||
.eq(AiAnalyticBusinessConfig::getConfigVersion, 1)
|
Wrappers.<AiAnalyticBusinessConfig>lambdaQuery()
|
||||||
);
|
.eq(AiAnalyticBusinessConfig::getBusinessLine, BusinessTypeEnum.CLAIM_VERIFICATION.getCode())
|
||||||
|
.eq(AiAnalyticBusinessConfig::getFileConfigCategory, claimVerificationFileAnalysisDTO.getFileType())
|
||||||
|
.eq(AiAnalyticBusinessConfig::getIsDeleted, 0)
|
||||||
|
.eq(AiAnalyticBusinessConfig::getConfigVersion, 1)
|
||||||
|
);
|
||||||
|
|
||||||
//组装文件分析workflow入参
|
//组装文件分析workflow入参
|
||||||
JSONArray files = new JSONArray();
|
JSONArray files = new JSONArray();
|
||||||
for (HashMap<String, String> fileToDifyDTO : fileIds) {
|
for (HashMap<String, String> fileToDifyDTO : fileIds) {
|
||||||
JSONObject object = new JSONObject();
|
JSONObject object = new JSONObject();
|
||||||
object.put(ClaimVerificationConstant.UPLOAD_FILE_ID, fileToDifyDTO.get(ClaimVerificationConstant.ID));
|
object.put(ClaimVerificationConstant.UPLOAD_FILE_ID, fileToDifyDTO.get(ClaimVerificationConstant.ID));
|
||||||
object.put(ClaimVerificationConstant.TYPE, fileToDifyDTO.get(ClaimVerificationConstant.TYPE));
|
object.put(ClaimVerificationConstant.TYPE, fileToDifyDTO.get(ClaimVerificationConstant.TYPE));
|
||||||
object.put(ClaimVerificationConstant.TRANSFER_METHOD, ClaimVerificationConstant.LOCAL_FILE);
|
object.put(ClaimVerificationConstant.TRANSFER_METHOD, ClaimVerificationConstant.LOCAL_FILE);
|
||||||
files.add(object);
|
files.add(object);
|
||||||
}
|
}
|
||||||
//构建入参
|
//构建入参
|
||||||
JSONObject fileToDifyDTO = buildFileToDifyParameter(files, claimVerificationFileAnalysisDTO, aiAnalyticBusinessConfigs);
|
JSONObject fileToDifyDTO = buildFileToDifyParameter(files, claimVerificationFileAnalysisDTO, aiAnalyticBusinessConfigs);
|
||||||
//根据aiAnalysisRequestId更新请求日志表的difyRequest字段
|
//根据aiAnalysisRequestId更新请求日志表的difyRequest字段
|
||||||
syncUpdateDiFyRequest(fileToDifyDTO.toString(), aiAnalysisRequestId);
|
syncUpdateDiFyRequest(fileToDifyDTO.toString(), aiAnalysisRequestId);
|
||||||
DiFyReq diFyReq = new DiFyReq();
|
DiFyReq diFyReq = new DiFyReq();
|
||||||
diFyReq.setUser(BusinessTypeEnum.CLAIM_VERIFICATION.getCode());
|
diFyReq.setUser(BusinessTypeEnum.CLAIM_VERIFICATION.getCode());
|
||||||
diFyReq.setFlowId(fileClassifyToken);
|
diFyReq.setFlowId(fileClassifyToken);
|
||||||
diFyReq.setInputs(fileToDifyDTO);
|
diFyReq.setInputs(fileToDifyDTO);
|
||||||
//调用dify 工作流
|
//调用dify 工作流
|
||||||
diFyObject = (JSONObject) diFyService.getDiFyObject(diFyReq);
|
JSONObject classifyDiFyObject = (JSONObject) diFyService.getDiFyObject(diFyReq);
|
||||||
//处理结果并推送MQ
|
|
||||||
if (diFyObject == null) {
|
//处理结果
|
||||||
log.error(" 售后索赔检核文件分类dify返回结果为空");
|
if (classifyDiFyObject == null) {
|
||||||
saveException("售后索赔检核文件分类dify返回结果为空", aiAnalysisRequestId, null);
|
log.error(" 售后索赔检核文件分类dify返回结果为空");
|
||||||
} else {
|
saveException("售后索赔检核文件分类dify返回结果为空", aiAnalysisRequestId, null);
|
||||||
//解析dify返回结果
|
} else {
|
||||||
JSONObject data = analyzeParameters(diFyObject, claimVerificationFileAnalysisDTO, aiAnalysisRequestId);
|
//解析dify返回结果
|
||||||
//返回结果推送到Newbie的MQ
|
String fileType = diFyObject.getString("fileBusinessType");
|
||||||
rocketMQTemplate.syncSend(topic, data);
|
//判断字符串那个是不为空的然后进行处理
|
||||||
log.info("索赔检核文件分类发送回调MQ完成: {}", data);
|
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字段
|
//异步更新请求日志表的difyResponse字段
|
||||||
syncUpdateDiFyResponse(diFyObject, aiAnalysisRequestId);
|
syncUpdateDiFyResponse(data, aiAnalysisRequestId);
|
||||||
} else {
|
} else {
|
||||||
saveException("售后索赔检核业务类型错误", aiAnalysisRequestId, null);
|
saveException("售后索赔检核业务类型错误", aiAnalysisRequestId, null);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user