From 79a9721ac1db7b2edc90edbfeb9ede40b7d6e52e Mon Sep 17 00:00:00 2001 From: htjcAdmin Date: Thu, 24 Apr 2025 11:31:22 +0800 Subject: [PATCH] =?UTF-8?q?/*=201.=20=E4=BF=AE=E6=94=B9=E8=B0=83=E7=94=A8?= =?UTF-8?q?=E5=88=9D=E7=AD=9B=E5=92=8C=E5=A4=A7=E6=A8=A1=E5=9E=8B=E7=9A=84?= =?UTF-8?q?=E9=80=BB=E8=BE=91=EF=BC=8C=E5=A2=9E=E5=8A=A0=E5=9B=9B=E7=A7=8D?= =?UTF-8?q?=E7=BA=A2=E5=A4=96=E7=B1=BB=E5=9E=8B=E5=92=8C=E4=B8=80=E7=A7=8D?= =?UTF-8?q?=E5=BD=A2=E5=8F=98=E3=80=82=202.=20=E4=BF=AE=E6=94=B9=E6=97=A0?= =?UTF-8?q?=E4=BA=BA=E6=9C=BA=E7=BA=A2=E5=A4=96=E8=81=94=E8=B0=83=E8=BF=87?= =?UTF-8?q?=E7=A8=8B=E4=B8=AD=E7=9A=84bug=E3=80=82=20*/?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/core/constant/AlgConstants.java | 10 + .../analysis/constant/AnalyseConstants.java | 2 + .../service/impl/AnalysisServiceImpl.java | 28 +- .../controller/PatrolResultController.java | 239 +++++++++--------- .../service/AnalyseRemoteService.java | 22 +- .../service/impl/PatrolResultServiceImpl.java | 50 ++-- 6 files changed, 184 insertions(+), 167 deletions(-) create mode 100644 inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/constant/AlgConstants.java diff --git a/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/constant/AlgConstants.java b/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/constant/AlgConstants.java new file mode 100644 index 0000000..3827982 --- /dev/null +++ b/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/constant/AlgConstants.java @@ -0,0 +1,10 @@ +package com.inspect.base.core.constant; + +public class AlgConstants { + public static final String METER = "meter"; + public static final String INFRA_1800 = "infra_1800"; + public static final String INFRA_YU3 = "infra_yu3"; + public static final String INFRA_CAMERA = "infra_camera"; + public static final String INFRA_CAMERA_REVERSE = "infra_camera_reverse"; + public static final String XB = "xb"; +} diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/constant/AnalyseConstants.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/constant/AnalyseConstants.java index e197346..26bbe16 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/constant/AnalyseConstants.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/constant/AnalyseConstants.java @@ -11,6 +11,8 @@ public class AnalyseConstants { public static final String ANALYSE_FAIL_FILE_EXCEPT = "2003"; public static final String ANALYSE_FAIL_FILE_INCOMPATIBLE = "2004"; public static final String ANALYSE_CODE = "code"; + public static final String ANALYSE_URI = "/picAnalyse"; + public static final String ANALYSE_RET_URI = "/picAnalyseRetNotify"; public static final String ANALYSE_UPPER_VALUE = "upperValue"; public static final String ANALYSE_LOWER_VALUE = "lowerValue"; public static final String ANALYSE_ALARM_THRESHOLD = "alarm_threshold"; diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalysisServiceImpl.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalysisServiceImpl.java index 541c75d..17230b2 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalysisServiceImpl.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalysisServiceImpl.java @@ -9,6 +9,7 @@ import com.inspect.analysis.domain.*; import com.inspect.analysis.service.IAnalysisLogService; import com.inspect.analysis.service.IAnalysisService; import com.inspect.analysis.service.IResultAnalysisService; +import com.inspect.base.core.constant.AlgConstants; import com.inspect.base.core.constant.Color; import com.inspect.base.core.constant.RedisConst; import com.inspect.base.core.constant.Tags; @@ -18,6 +19,7 @@ import com.inspect.base.redis.service.RedisService; import com.inspect.common.security.utils.DictUtils; import com.inspect.partrolresult.domain.AnalyseRequest; import com.inspect.partrolresult.domain.PatrolResult; +import com.inspect.partrolresult.service.AnalyseRemoteService; import com.inspect.partrolresult.service.IPatrolResultService; import com.inspect.resultmain.domain.PatrolTaskResultMain; import com.inspect.resultmain.service.IPatrolTaskResultMainService; @@ -44,6 +46,9 @@ public class AnalysisServiceImpl implements IAnalysisService { @Resource private IspAlgorithmRequestService ispAlgorithmRequestService; + @Resource + private AnalyseRemoteService analyseRemoteService; + @Resource private IAnalysisLogService analysisLogService; @@ -80,13 +85,18 @@ public class AnalysisServiceImpl implements IAnalysisService { analyseResult.setTaskPatrolId(patrolTaskIdObj); String keyFilterRequest = AnalyseConstants.ANALYSE_FILTER_REQUEST + requestId; log.info("picAnalyseRetNotify keyFilterRequest={}", keyFilterRequest); - boolean flag = false; + boolean bBigModelExecFlag = false; + String[] algTypeList = {}; AnalyseRequest analyseRequest = null; if (redisService.hasKey(keyFilterRequest)) { // 初筛结果 analyseResult.setFilter("1"); // 设置初筛标志 analyseRequest = (AnalyseRequest) redisService.redisTemplate.opsForValue().getAndDelete(keyFilterRequest); log.info("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); @@ -98,13 +108,20 @@ public class AnalysisServiceImpl implements IAnalysisService { * 2. 算法是表计(meter) * 不论初筛结果有没有缺陷,都要继续调用大模型,因为大模型调用了表计(meter)识别算法 */ - if (bDefect || "meter".equals(analyseResPoint.getType())) { + final String algType = analyseResPoint.getType(); + 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"); - flag = true; + bBigModelExecFlag = true; // log.info("picAnalyseRetNotify CALL BIG_MODEL REQUEST_ID={}", requestId); // ispAlgorithmRequestService.sendRequest(analyseRequest); } else { @@ -128,9 +145,10 @@ public class AnalysisServiceImpl implements IAnalysisService { //calculateProcess(analyseResult); log.info(Color.CYAN + "###### 分析算法模块返回的表计识别结果 end ######" + Color.END); - if (flag) { + if (bBigModelExecFlag) { log.info("picAnalyseRetNotify CALL BIG_MODEL REQUEST_ID={}", requestId); - ispAlgorithmRequestService.sendRequest(analyseRequest); +// ispAlgorithmRequestService.sendRequest(analyseRequest); + analyseRemoteService.sendRequest(analyseRequest, algTypeList, false); } } diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/controller/PatrolResultController.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/controller/PatrolResultController.java index 2f8ee61..8c198d2 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/controller/PatrolResultController.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/controller/PatrolResultController.java @@ -2,10 +2,12 @@ package com.inspect.partrolresult.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.inspect.analysis.constant.AnalyseConstants; import com.inspect.analysis.domain.ResultAnalysis; import com.inspect.analysis.domain.resultList; import com.inspect.analysis.domain.results; import com.inspect.analysis.service.IResultAnalysisService; +import com.inspect.base.core.constant.AlgConstants; import com.inspect.base.core.constant.Color; import com.inspect.base.core.constant.RedisConst; import com.inspect.base.core.domain.DataMsg; @@ -709,9 +711,9 @@ public class PatrolResultController extends BaseController { String ids = ""; for (PatrolResult patrolResult : patrolResultList) { - List filterList = new ArrayList<>(); //初筛算法列表 - List bigModelList = new ArrayList<>(); //大模型算法列表 - List infraredList = new ArrayList<>();//红外摄像机算法列表 根据最新做法,红外要归到大模型里面,由大模型来调用(需要调整如下逻辑)-20250423 + List filterList = new ArrayList<>(); //初筛 + List bigModelList = new ArrayList<>(); //大模型 + List infraredList = new ArrayList<>();//古老的红外逻辑; 最新的红外逻辑另辟蹊径增加新的算法类型并且归入初筛逻辑-20250423 String image = patrolResult.getFilePath().replace(ftp.getFtpPath() + "/", StringUtils.EMPTY); String imageType = patrolResult.getFileType(); AnalyseReqItem analyseReqItem = new AnalyseReqItem(); @@ -753,12 +755,9 @@ public class PatrolResultController extends BaseController { String[] strings = new String[1]; String type; if (!algInfoList.isEmpty()) { - // 处理红外请求,目前讨论的结果以及方案要归到大模型逻辑,本接口这部分处理后续要废掉 - List infraredAlgInfoList = algInfoList.stream().filter((item) -> { - return "infrared".equals(item.getAlgSubtypeCode()); - }).collect(Collectors.toList()); + // 最古老处理红外请求,暂且保留 + List infraredAlgInfoList = algInfoList.stream().filter((item) -> "infrared".equals(item.getAlgSubtypeCode())).collect(Collectors.toList()); logger.info("callRemoteAlgorithm infraredList: {}", infraredAlgInfoList); - String[] typeArr; if (!infraredAlgInfoList.isEmpty() && "true".equals(pictureFrame)) { Map device = resultAnalysisService.selectEqInfoByCode(patrolResult.getPatrolDeviceCode()); if (device != null && device.get("type") != null) { @@ -770,15 +769,15 @@ public class PatrolResultController extends BaseController { } } - typeArr = new String[1]; + String[] imageUrlArr = new String[1]; if (image.contains(StringUtils.COMMA)) { - typeArr[0] = image.split(StringUtils.COMMA)[0]; + imageUrlArr[0] = image.split(StringUtils.COMMA)[0]; } else { - typeArr[0] = image; + imageUrlArr[0] = image; } ids = patrolResult.getLineId() + ""; - analyseReqItem.setImageUrlList(typeArr); + analyseReqItem.setImageUrlList(imageUrlArr); analyseReqItem.setTypeList(strings); infraredList.add(analyseReqItem.clone()); } @@ -786,10 +785,10 @@ public class PatrolResultController extends BaseController { algInfoList.removeAll(infraredAlgInfoList); List imagelist = new ArrayList<>(); if (image.contains(StringUtils.COMMA)) { - typeArr = imageType.split(StringUtils.COMMA); + String[] imageTypeArr = imageType.split(StringUtils.COMMA); String[] imageArr = image.split(StringUtils.COMMA); - for (int i = 0; i < typeArr.length; ++i) { - if ("2".equals(typeArr[i]) || "4".equals(typeArr[i])) { + for (int i = 0; i < imageTypeArr.length; ++i) { + if ("2".equals(imageTypeArr[i]) || "4".equals(imageTypeArr[i])) { imagelist.add(imageArr[i]); } } @@ -806,10 +805,11 @@ public class PatrolResultController extends BaseController { filePanpath = judgeMap.get("dis_ref_picture_path"); } - analyseReqItem.setImageNormalUrlPath(filePanpath);//总是为空 - List judgeList = algInfoList.stream().filter((item) -> { - return item.getAlgName().contains("判别"); - }).collect(Collectors.toList()); + analyseReqItem.setImageNormalUrlPath(filePanpath); + List judgeList = algInfoList.stream().filter( + (item) -> item.getAlgName().contains("判别") + ).collect(Collectors.toList()); + if (!judgeList.isEmpty()) { analyseReqItem.setTypeList(judgeList.stream().map(AlgInfo::getAlgSubtypeCode).toArray(String[]::new)); String[] images; @@ -824,19 +824,23 @@ public class PatrolResultController extends BaseController { bigModelList.add(analyseReqItem.clone()); } - algInfoList.removeAll(judgeList); - List meterList = (algInfoList).stream().filter((item) -> { - return "meter".equals(item.getAlgSubtypeCode()); - }).collect(Collectors.toList()); + algInfoList.removeAll(judgeList);//将已经加入bigModelList中的记录删除(算法名称为缺陷判别) + List meterList = + (algInfoList).stream().filter((item) -> + AlgConstants.METER.equals(item.getAlgSubtypeCode()) + || AlgConstants.XB.equals(item.getAlgSubtypeCode()) + || AlgConstants.INFRA_1800.equals(item.getAlgSubtypeCode()) + || AlgConstants.INFRA_YU3.equals(item.getAlgSubtypeCode()) + || AlgConstants.INFRA_CAMERA.equals(item.getAlgSubtypeCode()) + || AlgConstants.INFRA_CAMERA_REVERSE.equals(item.getAlgSubtypeCode()) + ).collect(Collectors.toList()); if (!meterList.isEmpty()) { analyseReqItem.setTypeList(meterList.stream().map(AlgInfo::getAlgSubtypeCode).toArray(String[]::new)); filterList.add(analyseReqItem.clone()); } - algInfoList.removeAll(meterList); - List defectList = algInfoList.stream().filter((item) -> { - return "缺陷识别".equals(item.getAlgName()); - }).collect(Collectors.toList()); + algInfoList.removeAll(meterList);//将已经加入filterList中的记录删除(算法编码为meter的记录) + List defectList = algInfoList.stream().filter((item) -> "缺陷识别".equals(item.getAlgName())).collect(Collectors.toList()); if (!defectList.isEmpty()) { analyseReqItem.setTypeList(defectList.stream().map(AlgInfo::getAlgSubtypeCode).toArray(String[]::new)); bigModelList.add(analyseReqItem.clone()); @@ -847,103 +851,104 @@ public class PatrolResultController extends BaseController { analyseReqItem.setTypeList(algInfoList.stream().map(AlgInfo::getAlgSubtypeCode).toArray(String[]::new)); bigModelList.add(analyseReqItem.clone()); } - } - logger.info("callRemoteAlgorithm infraredList.isEmpty(): {}", infraredList.isEmpty());//永远为true - if (!infraredList.isEmpty() && "true".equals(pictureFrame)) { - String uuid = UUID.randomUUID().toString().trim().replaceAll(StringUtils.DASH, StringUtils.EMPTY); - redisService.setCacheObject(RedisConst.REQUEST_UUID + uuid, patrolResultList.get(0).getTaskPatrolledId(), 1L, TimeUnit.DAYS); - AnalyseRequest sendData = new AnalyseRequest(); - sendData.setObjectList(infraredList); - sendData.setRequestHostIp(MAJOR_URL); - sendData.setRequestHostPort(TASK_PORT); - sendData.setRequestId(uuid); - type = JSONObject.toJSONString(sendData); + // 古老的红外逻辑处理 + logger.info("callRemoteAlgorithm infraredList.isEmpty(): {}", infraredList.isEmpty()); + if (!infraredList.isEmpty() && "true".equals(pictureFrame)) { + String uuid = UUID.randomUUID().toString().trim().replaceAll(StringUtils.DASH, StringUtils.EMPTY); + redisService.setCacheObject(RedisConst.REQUEST_UUID + uuid, patrolResultList.get(0).getTaskPatrolledId(), 1L, TimeUnit.DAYS); + AnalyseRequest sendData = new AnalyseRequest(); + sendData.setObjectList(infraredList); + sendData.setRequestHostIp(MAJOR_URL); + sendData.setRequestHostPort(TASK_PORT); + sendData.setRequestId(uuid); + type = JSONObject.toJSONString(sendData); - try { - logger.info("callRemoteAlgorithm infraredRequest: {}", type); - InfraredRequestParam infraredRequestParam = JSONObject.parseObject(type, InfraredRequestParam.class); - InfraredResponse infraredResponse = infraredImageParser.parse(infraredRequestParam); - logger.info("callRemoteAlgorithm infraredResponse: {}", infraredResponse); - if (infraredResponse != null) { - ResultAnalysis resultAnalysis = new ResultAnalysis(); - if (infraredResponse.getResultList() != null && !infraredResponse.getResultList().isEmpty()) { - if (infraredResponse.getResultList().get(0).getResults() != null && !infraredResponse.getResultList().get(0).getResults().isEmpty()) { - String ww; - if (StringUtils.isNotEmpty(infraredResponse.getResultList().get(0).getResults().get(0).getValue()) && infraredResponse.getResultList().get(0).getResults().get(0).getValue().equals("1")) { - resultAnalysis.setBusinessId(ids); - ww = JSONObject.toJSONString(infraredResponse); - resultAnalysis.setResultContent(ww); - if (StringUtils.isNotEmpty(infraredResponse.getResultList().get(0).getObjectId())) { - resultAnalysis.setObjectId(infraredResponse.getResultList().get(0).getObjectId()); - } + try { + logger.info("callRemoteAlgorithm infraredRequest: {}", type); + InfraredRequestParam infraredRequestParam = JSONObject.parseObject(type, InfraredRequestParam.class); + InfraredResponse infraredResponse = infraredImageParser.parse(infraredRequestParam); + logger.info("callRemoteAlgorithm infraredResponse: {}", infraredResponse); + if (infraredResponse != null) { + ResultAnalysis resultAnalysis = new ResultAnalysis(); + if (infraredResponse.getResultList() != null && !infraredResponse.getResultList().isEmpty()) { + if (infraredResponse.getResultList().get(0).getResults() != null && !infraredResponse.getResultList().get(0).getResults().isEmpty()) { + String ww; + if (StringUtils.isNotEmpty(infraredResponse.getResultList().get(0).getResults().get(0).getValue()) && infraredResponse.getResultList().get(0).getResults().get(0).getValue().equals("1")) { + resultAnalysis.setBusinessId(ids); + ww = JSONObject.toJSONString(infraredResponse); + resultAnalysis.setResultContent(ww); + if (StringUtils.isNotEmpty(infraredResponse.getResultList().get(0).getObjectId())) { + resultAnalysis.setObjectId(infraredResponse.getResultList().get(0).getObjectId()); + } - resultAnalysis.setDescription(infraredResponse.getResultList().get(0).getResults().get(0).getDesc()); - resultAnalysis.setCreateTime(new Date()); - resultAnalysis.setResStatus("0"); - resultAnalysis.setPointStatus("0"); - resultAnalysis.setResultType("0"); - resultAnalysisService.insertResultAnalysis(resultAnalysis); - JSONObject websocketParam = new JSONObject(); - websocketParam.put("event", "task_statistics_notify"); - websocketParam.put("data", (new JSONObject()).fluentPut("taskName", "红外任务").fluentPut("msg", "高温告警")); - //websocketService.parseMessage(websocketParam.toString()); - } else { - resultAnalysis.setBusinessId(ids); - ww = JSONObject.toJSONString(infraredResponse); - resultAnalysis.setResultContent(ww); - resultAnalysis.setResultType("1"); - if (StringUtils.isNotEmpty(infraredResponse.getResultList().get(0).getObjectId())) { - resultAnalysis.setObjectId(infraredResponse.getResultList().get(0).getObjectId()); - } + resultAnalysis.setDescription(infraredResponse.getResultList().get(0).getResults().get(0).getDesc()); + resultAnalysis.setCreateTime(new Date()); + resultAnalysis.setResStatus("0"); + resultAnalysis.setPointStatus("0"); + resultAnalysis.setResultType("0"); + resultAnalysisService.insertResultAnalysis(resultAnalysis); + JSONObject websocketParam = new JSONObject(); + websocketParam.put("event", "task_statistics_notify"); + websocketParam.put("data", (new JSONObject()).fluentPut("taskName", "红外任务").fluentPut("msg", "高温告警")); + //websocketService.parseMessage(websocketParam.toString()); + } else { + resultAnalysis.setBusinessId(ids); + ww = JSONObject.toJSONString(infraredResponse); + resultAnalysis.setResultContent(ww); + resultAnalysis.setResultType("1"); + if (StringUtils.isNotEmpty(infraredResponse.getResultList().get(0).getObjectId())) { + resultAnalysis.setObjectId(infraredResponse.getResultList().get(0).getObjectId()); + } - resultAnalysis.setDescription(infraredResponse.getResultList().get(0).getResults().get(0).getDesc()); - resultAnalysis.setCreateTime(new Date()); - resultAnalysis.setResStatus("1"); - resultAnalysis.setPointStatus("1"); - resultAnalysis.setResultType("1"); - resultAnalysisService.insertResultAnalysis(resultAnalysis); + resultAnalysis.setDescription(infraredResponse.getResultList().get(0).getResults().get(0).getDesc()); + resultAnalysis.setCreateTime(new Date()); + resultAnalysis.setResStatus("1"); + resultAnalysis.setPointStatus("1"); + resultAnalysis.setResultType("1"); + resultAnalysisService.insertResultAnalysis(resultAnalysis); + } } - } - double maxT = infraredResponse.getResultList().get(0).getResults().get(0).getInfraredT().getMaxT(); - PatrolResult patrolResultAsd = patrolResultService.selectPatrolResultByLineId(Long.valueOf(ids)); - patrolResultAsd.setValue(maxT + ""); - patrolResultAsd.setRecognitionType("4"); - patrolResultService.updatePatrolResult(patrolResultAsd); + double maxT = infraredResponse.getResultList().get(0).getResults().get(0).getInfraredT().getMaxT(); + PatrolResult patrolResultAsd = patrolResultService.selectPatrolResultByLineId(Long.valueOf(ids)); + patrolResultAsd.setValue(maxT + ""); + patrolResultAsd.setRecognitionType("4"); + patrolResultService.updatePatrolResult(patrolResultAsd); + } } + } catch (Exception exception) { + exception.printStackTrace(); } - } catch (Exception exception) { - exception.printStackTrace(); } - } - logger.info("callRemoteAlgorithm algInfoList2: {}", algInfoList); - logger.info("callRemoteAlgorithm filterList: {}", filterList); - logger.info("callRemoteAlgorithm bigModelList: {}", bigModelList); - AnalyseRequest analyseReq; - //qinyl 初筛 - if (!filterList.isEmpty()) { - analyseReq = new AnalyseRequest(); - analyseReq.setTaskPatrolId(patrolResultList.get(0).getTaskPatrolledId()); - analyseReq.setObjectList(filterList); - analyseReq.setRequestHostIp(MAJOR_URL); - analyseReq.setRequestHostPort(TASK_PORT); - if (filterList.get(0).getImageUrlList() != null && filterList.get(0).getImageUrlList().length > 0) { - String meterFilter = patrolTaskService.selectConfigByKey("ANALYSE_IS_METER_FILTER"); - analyseRemoteService.sendRequest(analyseReq, filterList.get(0).getTypeList(), "1".equals(meterFilter)); + logger.info("callRemoteAlgorithm algInfoList2: {}", algInfoList); + logger.info("callRemoteAlgorithm filterList: {}", filterList); + logger.info("callRemoteAlgorithm bigModelList: {}", bigModelList); + + //qinyl 初筛逻辑处理 + if (!filterList.isEmpty()) { + AnalyseRequest analyseReq = new AnalyseRequest(); + analyseReq.setTaskPatrolId(patrolResultList.get(0).getTaskPatrolledId()); + analyseReq.setObjectList(filterList); + analyseReq.setRequestHostIp(MAJOR_URL); + analyseReq.setRequestHostPort(TASK_PORT); + if (filterList.get(0).getImageUrlList() != null && filterList.get(0).getImageUrlList().length > 0) { + String meterFilter = patrolTaskService.selectConfigByKey(AnalyseConstants.ANALYSE_IS_METER_FILTER); + analyseRemoteService.sendRequest(analyseReq, filterList.get(0).getTypeList(), "1".equals(meterFilter)); + } } - } - //qinyl 大模型 - if (!bigModelList.isEmpty()) { - analyseReq = new AnalyseRequest(); - analyseReq.setTaskPatrolId(patrolResultList.get(0).getTaskPatrolledId()); - analyseReq.setObjectList(bigModelList); - analyseReq.setRequestHostIp(MAJOR_URL); - analyseReq.setRequestHostPort(TASK_PORT); - if (bigModelList.get(0).getImageUrlList() != null && bigModelList.get(0).getImageUrlList().length > 0) { - analyseRemoteService.sendRequest(analyseReq, bigModelList.get(0).getTypeList(), true); + //qinyl 大模型 + if (!bigModelList.isEmpty()) { + AnalyseRequest analyseReq = new AnalyseRequest(); + analyseReq.setTaskPatrolId(patrolResultList.get(0).getTaskPatrolledId()); + analyseReq.setObjectList(bigModelList); + analyseReq.setRequestHostIp(MAJOR_URL); + analyseReq.setRequestHostPort(TASK_PORT); + if (bigModelList.get(0).getImageUrlList() != null && bigModelList.get(0).getImageUrlList().length > 0) { + analyseRemoteService.sendRequest(analyseReq, bigModelList.get(0).getTypeList(), true); + } } } } @@ -1058,7 +1063,7 @@ public class PatrolResultController extends BaseController { logger.info(Color.CYAN + "###### RECEIVE DATA TO ANALYSIS [41] start ######" + Color.END); try { JSONObject parseObject = JSONObject.parseObject(messageBody); - String sendCode = (String)parseObject.get("SendCode"); + String sendCode = (String) parseObject.get("SendCode"); Object jsonArray = parseObject.get("taskStateList"); if (jsonArray == null) { @@ -1107,7 +1112,7 @@ public class PatrolResultController extends BaseController { if (!listEqpBook.isEmpty()) { item.setLineId(((PatrolTaskStatus) listEqpBook.get(0)).getLineId()); - if(item.getTaskName().contains("联合") && !item.getTaskName().startsWith(sendCode)) { + if (item.getTaskName().contains("联合") && !item.getTaskName().startsWith(sendCode)) { item.setTaskName(sendCode + "-" + item.getTaskName()); } i = iPatrolTaskStatusService.updatePatrolTaskStatus(item); @@ -1120,7 +1125,7 @@ public class PatrolResultController extends BaseController { item.setPosType(str); item.setCreateTime(new Date()); item.setStartTime(new Date()); - if(item.getTaskName().contains("联合") && !item.getTaskName().startsWith(sendCode)) { + if (item.getTaskName().contains("联合") && !item.getTaskName().startsWith(sendCode)) { item.setTaskName(sendCode + "-" + item.getTaskName()); } i = iPatrolTaskStatusService.insertPatrolTaskStatus(item); @@ -1233,12 +1238,12 @@ public class PatrolResultController extends BaseController { patrolTaskResultMain.setFileStatus("0"); patrolTaskResultMain.setTaskPatrolledId(patrolResultList.get(0).getTaskPatrolledId()); int devCount = tasks.get(0).getDevNo().split(StringUtils.COMMA).length; - if(devCount > 1) { + if (devCount > 1) { PatrolTaskResultMain resultMainQuery = new PatrolTaskResultMain(); resultMainQuery.setTaskId(String.valueOf(tasks.get(0).getTaskId())); //select unified_task_patrolled_id from patrol_task_result_main where task_id = #{taskId} and file_status = 0 and (now() - create_time) <= 120 ORDER BY line_id desc limit 1 String unifiedTaskPatrolledId = iPatrolTaskResultMainService.selectUnifiedTaskPatrolledId(resultMainQuery); - if(unifiedTaskPatrolledId != null) { + if (unifiedTaskPatrolledId != null) { patrolTaskResultMain.setUnifiedTaskPatrolledId(unifiedTaskPatrolledId); } else { patrolTaskResultMain.setUnifiedTaskPatrolledId(taskResultMain.getTaskId() + "_" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date())); diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/AnalyseRemoteService.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/AnalyseRemoteService.java index 494e794..0969e6d 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/AnalyseRemoteService.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/AnalyseRemoteService.java @@ -42,21 +42,21 @@ public class AnalyseRemoteService { redisService.setCacheObject(RedisConst.REQUEST_UUID + requestId, taskPatrolId, 1L, TimeUnit.DAYS); log.info("[CALL REMOTE ANALYZE] requestId: {}, taskPatrolId: {}", requestId, taskPatrolId); analyseReq.setRequestId(requestId); - String taskSetKey = "ANALYSE_TASK_REQUEST:" + taskPatrolId; - String requestSetKey = "ANALYSE_REQUEST_ALG:" + requestId; - redisService.setCacheObject("ANALYSE_REQUEST_ID:" + requestId, taskPatrolId, 20L, TimeUnit.MINUTES); + String taskSetKey = AnalyseConstants.ANALYSE_TASK_REQUEST + taskPatrolId; + String requestSetKey = AnalyseConstants.ANALYSE_REQUEST_ALG + requestId; + redisService.setCacheObject(AnalyseConstants.ANALYSE_REQUEST_ID.concat(requestId), taskPatrolId, 20L, TimeUnit.MINUTES); redisService.redisTemplate.opsForSet().add(taskSetKey, requestId); redisService.expire(taskSetKey, 20L, TimeUnit.MINUTES); - String analyseFilter = patrolTaskService.selectConfigByKey("ANALYSE_IS_FILTER"); + String analyseFilter = patrolTaskService.selectConfigByKey(AnalyseConstants.ANALYSE_IS_FILTER); String requestUrl; if ("1".equals(analyseFilter) && isFilter) { final String analyzeFilterRequestIdRedisKey = AnalyseConstants.ANALYSE_FILTER_REQUEST.concat(requestId); - log.info("[ALG] sendRequest analyseFilterRequestIdRedisKey: {}, analyseReq: {}", analyzeFilterRequestIdRedisKey, analyseReq); + log.info("[FILTER] sendRequest analyseFilterRequestIdRedisKey: {}, analyseReq: {}", analyzeFilterRequestIdRedisKey, analyseReq); this.redisService.setCacheObject(analyzeFilterRequestIdRedisKey, analyseReq.clone(), 1L, TimeUnit.HOURS); AnalyseReqItem analyseReqItem = analyseReq.getObjectList().get(0); analyseReqItem.setTypeList(typeList); analyseReq.setObjectList(Collections.singletonList(analyseReqItem)); - requestUrl = patrolTaskService.selectConfigByKey("ANALYSE_FILTER_URL"); + requestUrl = patrolTaskService.selectConfigByKey(AnalyseConstants.ANALYSE_FILTER_URL); } else { analyseReq.getObjectList().forEach((item) -> { String[] itemTypeList = item.getTypeList(); @@ -64,7 +64,7 @@ public class AnalyseRemoteService { redisService.redisTemplate.opsForSet().add(requestSetKey, item.toResultValue(type)); } }); - requestUrl = patrolTaskService.selectConfigByKey("ANALYSIS_BIG_URL"); + requestUrl = patrolTaskService.selectConfigByKey(AnalyseConstants.ANALYSIS_BIG_URL); } if(StringUtil.isEmpty(requestUrl)) { @@ -75,15 +75,15 @@ public class AnalyseRemoteService { try { log.info("[CALL REMOTE ANALYZE] ===========> URL={} \n PARAMS={}", requestUrl, analyseReq); - String result = HttpClientUtils.sendPostAgain(requestUrl + "/picAnalyse", analyseReq.toString()); + String result = HttpClientUtils.sendPostAgain(requestUrl.concat(AnalyseConstants.ANALYSE_URI), analyseReq.toString()); log.info("[CALL REMOTE ANALYZE] <=========== result={}", result); - log.info("[CALL REMOTE ANALYZE] <=========== CODE={} \n PARAMS={}", JSONObject.parseObject(result).getString("code"), result); - if (!"200".equals(JSONObject.parseObject(result).getString("code"))) { + log.info("[CALL REMOTE ANALYZE] <=========== CODE={} \n PARAMS={}", JSONObject.parseObject(result).getString(AnalyseConstants.ANALYSE_CODE), result); + if (!"200".equals(JSONObject.parseObject(result).getString(AnalyseConstants.ANALYSE_CODE))) { log.error("[CALL REMOTE ANALYZE] <=========== CALL FAIL: {}", result); } } catch (Exception e) { log.error("error", e); - HttpClientUtils.sendPostAgain("http://localhost:" + this.port + "/picAnalyseRetNotify", analyseReq.toErrorResultStr()); + HttpClientUtils.sendPostAgain("http://localhost:" + this.port + AnalyseConstants.ANALYSE_RET_URI, analyseReq.toErrorResultStr()); } } diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/impl/PatrolResultServiceImpl.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/impl/PatrolResultServiceImpl.java index 088df8f..3baf227 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/impl/PatrolResultServiceImpl.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/impl/PatrolResultServiceImpl.java @@ -2,6 +2,7 @@ package com.inspect.partrolresult.service.impl; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONObject; +import com.inspect.analysis.domain.AnalyseResPoint; import com.inspect.analysis.domain.ResultAnalysis; import com.inspect.analysis.domain.resultList; import com.inspect.analysis.mapper.ResultAnalysisMapper; @@ -436,7 +437,7 @@ public class PatrolResultServiceImpl implements IPatrolResultService { } String pointStatus = patrolResultRef.getPointStatus(); - log.info("[RESULT] pointStatus: {}", pointStatus); + log.info("[RESULT] pointStatus: {}, patrolResultRef: {}", pointStatus, patrolResultRef); if(pointStatus == null) { continue; } else if (pointStatus.equals("0")) { @@ -458,8 +459,11 @@ public class PatrolResultServiceImpl implements IPatrolResultService { reportDatas.add(reportData); log.info("batchInsertReportData reportData:" + reportData); String resultContent = patrolResultRef.getResultContent(); - List results = JSONObject.parseObject(resultContent).getJSONArray("resultList").toJavaList(resultList.class); - String imgUrl = results.get(0).getResults().get(0).getResImageUrl(); + //List results = JSONObject.parseObject(resultContent).getJSONArray("resultList").toJavaList(resultList.class); + //String imgUrl = results.get(0).getResults().get(0).getResImageUrl(); + AnalyseResPoint analyseResPoint = JSONObject.parseObject(resultContent, AnalyseResPoint.class); + String imgUrl = analyseResPoint.getResImageUrl(); + if (StringUtils.isEmpty(imgUrl)) { imgUrl = patrolResultRef.getFilePath().split(StringUtils.COMMA)[0]; } @@ -500,37 +504,15 @@ public class PatrolResultServiceImpl implements IPatrolResultService { List analyses = resultAnalysisMapper.selectResultAnalysisListByMainIds(lineIds); log.info("lineIds:{},statisticsAnalyseNum analyses:{}", lineIds, analyses); for (ResultAnalysis analyse : analyses) { - String var9 = analyse.getPointStatus(); - byte var10 = -1; - switch (var9.hashCode()) { - case 48: - if (var9.equals("0")) { - var10 = 0; - } - break; - case 49: - if (var9.equals("1")) { - var10 = 1; - } - break; - case 50: - if (var9.equals("2")) { - var10 = 2; - } - } - - switch (var10) { - case 0: - ++failNum; - break; - case 1: - ++okNum; - break; - case 2: - ++confirmNum; - break; - default: - log.error("【归档-统计分析数量】异常分析类型:{}", analyse.getPointStatus()); + String pointStatus = analyse.getPointStatus(); + if (pointStatus.equals("0")) { + ++failNum; + } else if (pointStatus.equals("1")) { + ++okNum; + } else if (pointStatus.equals("2")) { + ++confirmNum; + } else { + log.error("【归档-统计分析数量】异常分析类型:{}", analyse.getPointStatus()); } }