|
|
|
@ -23,6 +23,7 @@ import com.inspect.message.MessageUtils; |
|
|
|
import com.inspect.partrolresult.domain.AnalyseRequest; |
|
|
|
import com.inspect.partrolresult.domain.PatrolResult; |
|
|
|
import com.inspect.partrolresult.service.AnalyseRemoteService; |
|
|
|
import com.inspect.partrolresult.service.DelayQueueService; |
|
|
|
import com.inspect.partrolresult.service.IPatrolResultService; |
|
|
|
import com.inspect.resultmain.domain.PatrolTaskResultMain; |
|
|
|
import com.inspect.resultmain.service.IPatrolTaskResultMainService; |
|
|
|
@ -75,92 +76,8 @@ public class AnalysisServiceImpl implements IAnalysisService { |
|
|
|
@Resource |
|
|
|
private ResultAnalysisUtils resultAnalysisUtils; |
|
|
|
|
|
|
|
|
|
|
|
// @Override |
|
|
|
// public void picAnalyseRetNotify(AnalyseResult analyseResult) { |
|
|
|
// log.info(Color.CYAN + "###### 分析算法模块返回的表计识别结果 start, analyseResult:{} ######" + Color.END, analyseResult); |
|
|
|
// String requestId = analyseResult.getRequestId(); |
|
|
|
// String keyId = AnalyseConstants.ANALYSE_REQUEST_ID.concat(requestId); |
|
|
|
// if (!redisService.hasKey(keyId)) { |
|
|
|
// log.error("picAnalyseRetNotify isTest: {}, NO keyId={}, REQUEST_ID={} in REDIS!", analyseResult.isTest(), keyId, requestId); |
|
|
|
// if (!analyseResult.isTest()) { |
|
|
|
// return; |
|
|
|
// } |
|
|
|
// //redisService.setCacheObject(keyId, "123456789"); |
|
|
|
// } |
|
|
|
// |
|
|
|
// String patrolTaskIdObj = redisService.getCacheObject(keyId); |
|
|
|
// log.info("picAnalyseRetNotify keyId={}, requestId={}, patrolTaskIdObj={}", keyId, requestId, patrolTaskIdObj); |
|
|
|
// analyseResult.setTaskPatrolId(patrolTaskIdObj); |
|
|
|
// String keyFilterRequest = AnalyseConstants.ANALYSE_FILTER_REQUEST + requestId; |
|
|
|
// log.info("picAnalyseRetNotify keyFilterRequest={}", keyFilterRequest); |
|
|
|
// boolean bBigModelExecFlag = false; |
|
|
|
// String[] algTypeList = {}; |
|
|
|
// AnalyseRequest analyseRequest = null; |
|
|
|
// if (redisService.hasKey(keyFilterRequest)) { // 初筛结果 |
|
|
|
// analyseResult.setFilter("1"); // 设置初筛标志 |
|
|
|
// analyseRequest = (AnalyseRequest) redisService.redisTemplate.opsForValue().getAndDelete(keyFilterRequest); |
|
|
|
// log.info("FILTER_RESULT picAnalyseRetNotify analyseRequest IN REDIS: {}", analyseRequest); |
|
|
|
// AnalyseResPoint analyseResPoint = analyseResult.getResultList().get(0).getResults().get(0); |
|
|
|
// if (analyseRequest != null && analyseRequest.getObjectList() != null && !analyseRequest.getObjectList().isEmpty()) { |
|
|
|
// algTypeList = analyseRequest.getObjectList().get(0).getTypeList(); |
|
|
|
// } |
|
|
|
// |
|
|
|
// boolean bDefect = analyseResPoint.isDefect(); // code=2000代表初筛结果返回正常,value=1代表有缺陷 |
|
|
|
// log.info("picAnalyseRetNotify FILTER bDefect={}, algorithmType={}", bDefect, analyseResPoint.getType()); |
|
|
|
// analyseResult.reloadReq(analyseRequest);//只有一个,analyseReq.getObjectList().get(0) |
|
|
|
// /* |
|
|
|
// *大致两种情况:1. 算法是表计(meter); 2. 算法不是表计(meter) |
|
|
|
// * 1. 算法不是表计(meter) |
|
|
|
// * 1.1 初筛结果有缺陷:继续发给大模型处理 |
|
|
|
// * 1.2 初筛结果无缺陷:不用调用大模型,流程就此结束 |
|
|
|
// * 2. 算法是表计(meter) |
|
|
|
// * 不论初筛结果有没有缺陷,都要继续调用大模型,因为大模型调用了表计(meter)识别算法 |
|
|
|
// */ |
|
|
|
// final String algType = analyseRequest.getObjectList().get(0).getTypeList()[0]; |
|
|
|
// log.info("picAnalyseRetNotify algType IN REDIS: {}", algType); |
|
|
|
// if (bDefect || (AlgConstants.METER.equals(algType) |
|
|
|
// || AlgConstants.XB.equals(algType) |
|
|
|
// || AlgConstants.INFRA_1800.equals(algType) |
|
|
|
// || AlgConstants.INFRA_YU3.equals(algType) |
|
|
|
// || AlgConstants.INFRA_CAMERA.equals(algType) |
|
|
|
// || AlgConstants.INFRA_CAMERA_REVERSE.equals(algType)) |
|
|
|
// ) { |
|
|
|
// /* |
|
|
|
// * 先检查结果有缺无缺陷,如果有缺陷不用判断算法直接调用大模型;* |
|
|
|
// * 如果无缺陷,再去判断算法,如果算法是meter就继续调用大模型。* |
|
|
|
// */ |
|
|
|
// analyseResult.setResult("0"); |
|
|
|
// bBigModelExecFlag = true; |
|
|
|
//// log.info("picAnalyseRetNotify CALL BIG_MODEL REQUEST_ID={}", requestId); |
|
|
|
//// ispAlgorithmRequestService.sendRequest(analyseRequest); |
|
|
|
// } else { |
|
|
|
// //初筛结果无缺陷并且非表计算法,不用调用大模型,流程就此结束 |
|
|
|
// log.info("picAnalyseRetNotify NO BIG_MODEL WOULD CALLED REQUEST_ID={}", requestId); |
|
|
|
// } |
|
|
|
// } else { |
|
|
|
// // 大模型结果 |
|
|
|
// log.info("BIG_MODEL_RESULT CALLBACK picAnalyseRetNotify REQUEST_ID={}", requestId); |
|
|
|
// analyseResult.setFilter("0"); // 设置大模型标志为0 |
|
|
|
// } |
|
|
|
// |
|
|
|
// //qinyl |
|
|
|
// analysisLogService.log(new AnalyseLog(analyseResult.toString(), "1", analyseResult.getTaskPatrolId(), analyseResult.getFilter(), requestId)); |
|
|
|
// try { |
|
|
|
// analysis(analyseResult); |
|
|
|
// } catch (Exception e) { |
|
|
|
// log.error("error", e); |
|
|
|
// } |
|
|
|
// //doAlgorithmAnalysis(analyseResult); |
|
|
|
// //calculateProcess(analyseResult); |
|
|
|
// log.info(Color.CYAN + "###### 分析算法模块返回的表计识别结果 end ######" + Color.END); |
|
|
|
// |
|
|
|
// if (bBigModelExecFlag) { |
|
|
|
// log.info("picAnalyseRetNotify CALL BIG_MODEL REQUEST_ID={}", requestId); |
|
|
|
//// ispAlgorithmRequestService.sendRequest(analyseRequest); |
|
|
|
// analyseRemoteService.sendRequest(analyseRequest, algTypeList, false); |
|
|
|
// } |
|
|
|
// } |
|
|
|
@Resource |
|
|
|
private DelayQueueService<AnalyseRequest> delayQueueService; |
|
|
|
|
|
|
|
@Override |
|
|
|
public void picAnalyseRetNotify(AnalyseResult analyseResult) { |
|
|
|
@ -198,6 +115,9 @@ public class AnalysisServiceImpl implements IAnalysisService { |
|
|
|
analyseResult.setFilter("1"); // 设置初筛标志 |
|
|
|
analyseRequest = (AnalyseRequest) redisService.redisTemplate.opsForValue().getAndDelete(filterRequestRedisKey); |
|
|
|
log.info("ALGO_RES_UUID: {}, FILTER_RESULT picAnalyseRetNotify analyseRequest IN REDIS: {}", logLabel, analyseRequest); |
|
|
|
boolean isRemoved = delayQueueService.removeRequest(AnalyseConstants.ANALYSE_REQ_DELAY_QUEUE, analyseRequest); |
|
|
|
log.info("Redisson Removed Result: {}, analyseRequest: {}", isRemoved? "success" : "fail", analyseRequest); |
|
|
|
|
|
|
|
AnalyseResPoint analyseResPoint = analyseResult.getResultList().get(0).getResults().get(0); |
|
|
|
if (analyseRequest != null && analyseRequest.getObjectList() != null && !analyseRequest.getObjectList().isEmpty()) { |
|
|
|
algTypeList = analyseRequest.getObjectList().get(0).getTypeList(); |
|
|
|
|