修改失败补偿

This commit is contained in:
zren25
2025-03-14 17:45:45 +08:00
parent 9d796b39f7
commit f9b3ac9ec3
3 changed files with 79 additions and 63 deletions

View File

@@ -70,75 +70,79 @@ public class CorpusFailJob {
aiAnalysisErrorsListlist.stream().forEach(aiAnalysisErrors -> {
LambdaQueryWrapper<AiAnalysisRequestLogs> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(AiAnalysisRequestLogs::getAiAnalysisRequestId, aiAnalysisErrors.getAiAnalysisRequestId());
AiAnalysisRequestLogs oldAiAnalysisRequestLogs = aiAnalysisRequestLogsMapper.selectOne(queryWrapper);
try {
LambdaQueryWrapper<AiAnalysisRequestLogs> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(AiAnalysisRequestLogs::getAiAnalysisRequestId, aiAnalysisErrors.getAiAnalysisRequestId());
AiAnalysisRequestLogs oldAiAnalysisRequestLogs = aiAnalysisRequestLogsMapper.selectOne(queryWrapper);
if (null != oldAiAnalysisRequestLogs) {
DiFyReq diFyReq = JSONObject.parseObject(oldAiAnalysisRequestLogs.getDifyRequest(), DiFyReq.class);
CorpusReportDTO corpusReportDTO = JSONObject.parseObject(oldAiAnalysisRequestLogs.getBusinessRequest(), CorpusReportDTO.class);
if (null != oldAiAnalysisRequestLogs) {
DiFyReq diFyReq = JSONObject.parseObject(oldAiAnalysisRequestLogs.getDifyRequest(), DiFyReq.class);
CorpusReportDTO corpusReportDTO = JSONObject.parseObject(oldAiAnalysisRequestLogs.getBusinessRequest(), CorpusReportDTO.class);
JSONObject execDifyFlow = diFyService.executeDifyFlow(diFyReq);
log.info("runDify execDifyFlow {}",execDifyFlow);
if(null != execDifyFlow && execDifyFlow.get("status").equals("succeeded")){
String text = execDifyFlow.getJSONObject("outputs").getString("text");
String resultStrOne = FlowResultSplitUtil.flowOutputTextSplit(text, "任务1", "任务2");
String resultStrTwo = FlowResultSplitUtil.flowOutputTextSplit(text, "任务2", null);
if (StringUtils.isBlank(resultStrOne) || StringUtils.isBlank(resultStrTwo)) {
log.info("企微语料解析为空text:{}", text);
return;
}
Map<String, String> ltoMap = new HashMap<>();
ltoMap.put("analysisRecordId", execDifyFlow.getString("aiAnalysisRequestId"));
ltoMap.put("analysisScene", corpusReportDTO.getAnalysisScene() + "");
String tag = "";
if (corpusReportDTO.getAnalysisScene() == 1) { //企微
ltoMap.put("unionId", corpusReportDTO.getUnionId());
ltoMap.put("consultantId", corpusReportDTO.getUserId());
tag = CategoryEnum.ENTERPRISE_WECHAT.getCode();
} else {
ltoMap.put("recordId", corpusReportDTO.getUserId());
tag = CategoryEnum.PHONE_VOICE.getCode();
}
ltoMap.put("communicateDate", corpusReportDTO.getCorpusTime());
ltoMap.put("analysisResult", resultStrOne.replace("#", ""));
ltoMap.put("analysisDetail", resultStrTwo);
// 发送MQ
log.info("send mq {}", ltoMap);
tmTelephoneCorpusService.sendMq(tag, JSONObject.toJSONString(ltoMap));
try {
// 保存报告
tmCorpusReportService.saveTmCorpusReport(TmCorpusReport.builder()
.aiAnalysisRequestId(oldAiAnalysisRequestLogs.getAiAnalysisRequestId())
.corpusType(corpusReportDTO.getAnalysisScene())
.corpusTime(DateUtil.parseTime(corpusReportDTO.getCorpusTime()))
.userId(corpusReportDTO.getUserId())
.unionId(corpusReportDTO.getUnionId())
.reportTitle(resultStrOne.replace("#", ""))
.reportInfo(resultStrTwo)
.isLike(0)
.isDeleted(0)
.version(0)
.createBy("system")
.updateBy("")
.createSqlby("")
.updateSqlby("")
.createTime(new Date())
.build());
} catch (Exception e) {
log.info(" 企业语料处理保存报告异常processItem{} ", e);
}
Object difyoutResult = diFyService.getDiFyObject(diFyReq);
JSONObject execDifyFlow = JSONObject.parseObject(JSON.toJSONString(difyoutResult)).getJSONObject("data");
log.info("runDify execDifyFlow {}", execDifyFlow);
if (null != execDifyFlow && execDifyFlow.get("status").equals("succeeded")) {
String text = execDifyFlow.getJSONObject("outputs").getString("text");
String resultStrOne = FlowResultSplitUtil.flowOutputTextSplit(text, "任务1", "任务2");
String resultStrTwo = FlowResultSplitUtil.flowOutputTextSplit(text, "任务2", null);
if (StringUtils.isBlank(resultStrOne) || StringUtils.isBlank(resultStrTwo)) {
log.info("企微语料解析为空text:{}", text);
return;
}
Map<String, String> ltoMap = new HashMap<>();
ltoMap.put("analysisRecordId", execDifyFlow.getString("aiAnalysisRequestId"));
ltoMap.put("analysisScene", corpusReportDTO.getAnalysisScene() + "");
String tag = "";
if (corpusReportDTO.getAnalysisScene() == 1) { //企微
ltoMap.put("unionId", corpusReportDTO.getUnionId());
ltoMap.put("consultantId", corpusReportDTO.getUserId());
tag = CategoryEnum.ENTERPRISE_WECHAT.getCode();
} else {
ltoMap.put("recordId", corpusReportDTO.getUserId());
tag = CategoryEnum.PHONE_VOICE.getCode();
}
ltoMap.put("communicateDate", corpusReportDTO.getCorpusTime());
ltoMap.put("analysisResult", resultStrOne.replace("#", ""));
ltoMap.put("analysisDetail", resultStrTwo);
// 发送MQ
log.info("send mq {}", ltoMap);
tmTelephoneCorpusService.sendMq(tag, JSONObject.toJSONString(ltoMap));
try {
// 保存报告
tmCorpusReportService.saveTmCorpusReport(TmCorpusReport.builder()
.aiAnalysisRequestId(oldAiAnalysisRequestLogs.getAiAnalysisRequestId())
.corpusType(corpusReportDTO.getAnalysisScene())
.corpusTime(DateUtil.parseTime(corpusReportDTO.getCorpusTime()))
.userId(corpusReportDTO.getUserId())
.unionId(corpusReportDTO.getUnionId())
.reportTitle(resultStrOne.replace("#", ""))
.reportInfo(resultStrTwo)
.isLike(0)
.isDeleted(0)
.version(0)
.createBy("system")
.updateBy("")
.createSqlby("")
.updateSqlby("")
.createTime(new Date())
.build());
} catch (Exception e) {
log.info(" 企业语料处理保存报告异常processItem{} ", e);
}
oldAiAnalysisRequestLogs.setDifyResponse(JSON.toJSONString(execDifyFlow));
aiAnalysisRequestLogsService.save(oldAiAnalysisRequestLogs);
aiAnalysisErrors.setRetryCount(aiAnalysisErrors.getRetryCount() + 1);
aiAnalysisErrors.setAiAnalysisErrorHandlingStatus("1");
aiAnalysisErrorsService.save(aiAnalysisErrors);
}
oldAiAnalysisRequestLogs.setDifyResponse(JSON.toJSONString(execDifyFlow));
aiAnalysisRequestLogsService.save(oldAiAnalysisRequestLogs);
aiAnalysisErrors.setRetryCount(aiAnalysisErrors.getRetryCount() + 1);
aiAnalysisErrors.setAiAnalysisErrorHandlingStatus("1");
} catch (Exception e) {
aiAnalysisErrors.setAiAnalysisErrorHandlingStatus("0");
aiAnalysisErrorsService.save(aiAnalysisErrors);
}
});
});
}

View File

@@ -9,4 +9,5 @@ public interface DiFyService {
public Object getDiFyObject(DiFyReq diFyReq);
public JSONObject executeDifyFlow(DiFyReq diFyReq, String businessType, String businessData);
public JSONObject executeDifyFlow(DiFyReq diFyReq);
}

View File

@@ -91,4 +91,15 @@ public class DiFyServiceImpl implements DiFyService{
}
}
@Override
public JSONObject executeDifyFlow(DiFyReq diFyReq) {
Map<String, Object> map = new HashMap<>();
map.put("inputs",diFyReq.getInputs());
map.put("response_mode","blocking");
map.put("user",diFyReq.getUser());
JSONObject difyResult = diFyFeign.runWorkflows("Bearer "+diFyReq.getFlowId(),map);
return difyResult;
}
}