From 6eadef46ce210f926e480c193dc71d55f768dc50 Mon Sep 17 00:00:00 2001 From: htjcAdmin Date: Wed, 27 Aug 2025 16:21:23 +0800 Subject: [PATCH] =?UTF-8?q?/*=E7=BB=8D=E5=85=B4=E7=AB=99=E7=8E=B0=E5=9C=BA?= =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E7=BB=A7=E4=BF=9D=E6=9C=BA=E5=99=A8=E7=8B=97?= =?UTF-8?q?=E7=BA=A2=E5=A4=96=E4=BB=BB=E5=8A=A1bug=E4=BF=AE=E6=94=B9*/?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../partrolresult/client/BaseDataClient.java | 3 +- .../controller/PatrolResultController.java | 33 +++++---- .../service/AnalyseRequestServiceImpl.java | 22 ++++++ .../inspect/partrolresult/util/ImageUtil.java | 70 ++++++++++--------- .../controller/BasedataEqpBookController.java | 3 +- 5 files changed, 84 insertions(+), 47 deletions(-) diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/client/BaseDataClient.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/client/BaseDataClient.java index f847cde..f3febb7 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/client/BaseDataClient.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/client/BaseDataClient.java @@ -21,5 +21,6 @@ public interface BaseDataClient { Long queryPatrolPointId(@RequestBody String pointId); @PostMapping({"/eqpbook/queryEqpbookCode"}) - List queryEqpBookCode(@RequestBody String patrolDeviceCode); + //List queryEqpBookCode(@RequestBody String patrolDeviceCode); + String queryEqpBookCode(@RequestBody String patrolDeviceCode); } 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 a7039fe..6779909 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 @@ -716,10 +716,10 @@ public class PatrolResultController extends BaseController { logger.info("callRemoteAlgorithm ftpInfo: {}, ANALYSIS_URL: {}, BIG_ANALYSIS_URL: {}, MAJOR_URL: {}, TASK_PORT: {}", ftp, ANALYSIS_URL, BIG_ANALYSIS_URL, MAJOR_URL, TASK_PORT); - logger.info("callRemoteAlgorithm patrolResultList: {}", patrolResultList); String ids = ""; for (PatrolResult patrolResult : patrolResultList) { + logger.info("callRemoteAlgorithm taskPatrolledId: {}, patrolResult: {}", patrolResult.getTaskPatrolledId(), patrolResult); List filterList = new ArrayList<>(); //初筛 List bigModelList = new ArrayList<>(); //大模型 List infraredList = new ArrayList<>();//古老的红外逻辑; 最新的红外逻辑另辟蹊径增加新的算法类型并且归入初筛逻辑-20250423 @@ -766,15 +766,17 @@ public class PatrolResultController extends BaseController { if (!algInfoList.isEmpty()) { // 最古老处理红外请求,暂且保留 List infraredAlgInfoList = algInfoList.stream().filter((item) -> "infrared".equals(item.getAlgSubtypeCode())).collect(Collectors.toList()); - logger.info("callRemoteAlgorithm infraredList: {}", infraredAlgInfoList); if (!infraredAlgInfoList.isEmpty() && "true".equals(pictureFrame)) { + logger.info("callRemoteAlgorithm infraredList: {}, patrolDeviceCode: {}", infraredAlgInfoList, patrolResult.getPatrolDeviceCode()); Map device = resultAnalysisService.selectEqInfoByCode(patrolResult.getPatrolDeviceCode()); if (device != null && device.get("type") != null) { type = device.get("type") + ""; if (("1".equals(type) || "2".equals(type) || "3".equals(type)) && StringUtils.isNotEmpty(patrolResult.getValue())) { - ResultAnalysis resultAnalysis = ResultAnalysis.createInfrared(String.valueOf(patrolResult.getLineId()), patrolResult.getDeviceId()); - resultAnalysisService.insertResultAnalysis(resultAnalysis); - continue; + logger.info("callRemoteAlgorithm type: {}, value: {}", type, patrolResult.getValue()); + // 改变之前的处理流程,"infrared"继续调用算法 +// ResultAnalysis resultAnalysis = ResultAnalysis.createInfrared(String.valueOf(patrolResult.getLineId()), patrolResult.getDeviceId()); +// resultAnalysisService.insertResultAnalysis(resultAnalysis); +// continue; } } @@ -788,7 +790,9 @@ public class PatrolResultController extends BaseController { ids = patrolResult.getLineId() + ""; analyseReqItem.setImageUrlList(imageUrlArr); analyseReqItem.setTypeList(strings); - infraredList.add(analyseReqItem.clone()); + //改为走初筛-20250827-qinyl + //infraredList.add(analyseReqItem.clone()); + filterList.add(analyseReqItem.clone()); } algInfoList.removeAll(infraredAlgInfoList); @@ -867,7 +871,7 @@ public class PatrolResultController extends BaseController { } // 古老的红外逻辑处理 - logger.info("callRemoteAlgorithm infraredList.isEmpty(): {}", infraredList.isEmpty());//永远为true + logger.info("callRemoteAlgorithm infraredList taskPatrolId: {}, isEmpty: {}", patrolResult.getTaskPatrolledId(), 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); @@ -1136,8 +1140,9 @@ public class PatrolResultController extends BaseController { str = sendCodeToDevType(sendCode); patrolTaskStatus.setPosType(str); if ("1".equals(str) && "E100-001".equals(sendCode)) { - List listEqpBook = baseDataClient.queryEqpBookCode(sendCode); - patrolTaskStatusItem.setCode(listEqpBook.get(0).getChannelCode()); + //List listEqpBook = baseDataClient.queryEqpBookCode(sendCode); + final String channelCode = baseDataClient.queryEqpBookCode(sendCode); + patrolTaskStatusItem.setCode(channelCode); } } List patrolTaskStatusList = iPatrolTaskStatusService.selectPatrolTaskStatusList(patrolTaskStatus); @@ -1162,7 +1167,7 @@ public class PatrolResultController extends BaseController { } logger.info("patrol_task_status run_progress: {}, db_progress: {}", runProgress, dbProgress); - if(runProgress > dbProgress) { + if (runProgress > dbProgress) { patrolTaskStatusItem.setLineId(patrolTaskStatusOfDb.getLineId()); if (patrolTaskStatusItem.getTaskName().contains("联合") && !patrolTaskStatusItem.getTaskName().startsWith(sendCode)) { patrolTaskStatusItem.setTaskName(sendCode + "-" + patrolTaskStatusItem.getTaskName()); @@ -1203,7 +1208,7 @@ public class PatrolResultController extends BaseController { patrolTaskStatusItem.getTaskState(), RedisConst.TASK_CURRENT_CODE + patrolTaskStatusItem.getTaskCode()); patrolTaskStatusItem.setTaskState(TaskStatus.RUNNING.getCode()); - patrolTaskStatusItem.setTaskEstimatedTime(""); + //patrolTaskStatusItem.setTaskEstimatedTime(""); i = iPatrolTaskStatusService.updatePatrolTaskStatus(patrolTaskStatusItem); } } @@ -1224,7 +1229,7 @@ public class PatrolResultController extends BaseController { patrolTaskStatusItem.setCreateTime(new Date()); patrolTaskStatusItem.setStartTime(new Date()); patrolTaskStatusItem.setTaskEstimatedTime(""); - if(!"2".equals(patrolTaskStatusItem.getTaskState())) { + if (!"2".equals(patrolTaskStatusItem.getTaskState())) { logger.info("任务一开始就给了错误的任务的状态: messageBody: {}", messageBody); patrolTaskStatusItem.setTaskState("2"); } @@ -1412,6 +1417,7 @@ public class PatrolResultController extends BaseController { } InputStream is = doGetRequestForInputStream(intranetFtpAddress + patrolResult.getFilePath()); + logger.info("feedback from robot image size: {}", (is != null)); if (is != null) { try { @@ -1423,7 +1429,8 @@ public class PatrolResultController extends BaseController { patrolResult.setFilePath(file); logger.info("robot image path: {}", file); } catch (Exception e) { - e.printStackTrace(); + //e.printStackTrace(); + logger.info("ImageUtil.overlaying error: {}", e.getMessage()); } } } diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/AnalyseRequestServiceImpl.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/AnalyseRequestServiceImpl.java index ddee010..f002a21 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/AnalyseRequestServiceImpl.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/AnalyseRequestServiceImpl.java @@ -86,7 +86,13 @@ public class AnalyseRequestServiceImpl implements IAnalyseRequestService { AnalyseReqItem analyseReqItem = analyseReq.getObjectList().get(0);//只取第一个 analyseReqItem.setTypeList(typeList); analyseReq.setObjectList(Collections.singletonList(analyseReqItem)); + if (checkOldInfraredType(typeList)) { + log.info("ANALYSIS_FILTER_URL_OLD_INFRARED requestId: {}", requestId); + sendCompensateRequest(analyseReq); + return; + } requestUrl = patrolTaskService.selectConfigByKey(AnalyseConstants.ANALYSE_FILTER_URL); + } else { // 不再使用这个redis键值 // analyseReq.getObjectList().forEach((item) -> { @@ -174,6 +180,10 @@ public class AnalyseRequestServiceImpl implements IAnalyseRequestService { AlgConstants.INFRA_CAMERA_REVERSE )); + private static final Set OLD_INFRARED_TYPES = new HashSet<>(Arrays.asList( + "infrared" + )); + private static final Set METER_TYPES = new HashSet<>(Arrays.asList( AlgConstants.METER )); @@ -190,6 +200,18 @@ public class AnalyseRequestServiceImpl implements IAnalyseRequestService { return false; } + public static boolean checkOldInfraredType(String[] typeList) { + if (typeList == null) { + return false; + } + for (String type : typeList) { + if (OLD_INFRARED_TYPES.contains(type)) { + return true; + } + } + return false; + } + public static boolean checkMeterType(String[] typeList) { if (typeList == null) { return false; diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/util/ImageUtil.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/util/ImageUtil.java index 9258fd7..a8f08ba 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/util/ImageUtil.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/util/ImageUtil.java @@ -12,6 +12,8 @@ import java.io.IOException; import java.io.InputStream; import java.rmi.ServerException; import javax.imageio.ImageIO; + +import com.alibaba.nacos.common.utils.StringUtils; import sun.font.FontDesignMetrics; public class ImageUtil { @@ -29,41 +31,45 @@ public class ImageUtil { g2.setColor(Color.RED); BasicStroke stokeLine = new BasicStroke(1.0F); g2.setStroke(stokeLine); - coors = coors.replaceAll(";", ","); - String[] splits = coors.split(","); - if(splits != null && splits.length >= 8) { - int[] cs = new int[splits.length]; + if(StringUtils.isNotEmpty(coors)) { + coors = coors.replaceAll(";", StringUtils.COMMA); + String[] splits = coors.split(StringUtils.COMMA); + if(splits != null && splits.length >= 8) { + int[] cs = new int[splits.length]; - for(int i = 0; i < cs.length; ++i) { - cs[i] = Integer.parseInt(splits[i]); - } + for(int i = 0; i < cs.length; ++i) { + cs[i] = Integer.parseInt(splits[i]); + } - System.out.println("x:" + cs[0]); - System.out.println("x:" + cs[1]); - System.out.println("x:" + (cs[2] - cs[0])); - System.out.println("x:" + (cs[5] - cs[3])); - g2.drawRect(cs[0], cs[1], cs[2] - cs[0], cs[5] - cs[3]); - g2.dispose(); - Graphics2D g3 = image.createGraphics(); - g3.setColor(Color.WHITE); - Font font = new Font("微软雅黑", 1, 24); - String content = DateUtil.now(); - FontDesignMetrics metrics = FontDesignMetrics.getMetrics(font); - g3.setFont(font); - g3.drawString(content, 0, metrics.getAscent()); - g3.dispose(); - font = new Font("微软雅黑", 1, 14); - Graphics2D g4 = image.createGraphics(); - g4.setColor(Color.RED); - g4.setFont(font); - g4.drawString(temp, cs[0], cs[1] + 14); - g4.dispose(); - ByteArrayOutputStream outStream = new ByteArrayOutputStream(); - ImageIO.write(image, "jpg", outStream); - InputStream input = new ByteArrayInputStream(outStream.toByteArray()); - return input; + System.out.println("x:" + cs[0]); + System.out.println("x:" + cs[1]); + System.out.println("x:" + (cs[2] - cs[0])); + System.out.println("x:" + (cs[5] - cs[3])); + g2.drawRect(cs[0], cs[1], cs[2] - cs[0], cs[5] - cs[3]); + g2.dispose(); + Graphics2D g3 = image.createGraphics(); + g3.setColor(Color.WHITE); + Font font = new Font("微软雅黑", 1, 24); + String content = DateUtil.now(); + FontDesignMetrics metrics = FontDesignMetrics.getMetrics(font); + g3.setFont(font); + g3.drawString(content, 0, metrics.getAscent()); + g3.dispose(); + font = new Font("微软雅黑", 1, 14); + Graphics2D g4 = image.createGraphics(); + g4.setColor(Color.RED); + g4.setFont(font); + g4.drawString(temp, cs[0], cs[1] + 14); + g4.dispose(); + ByteArrayOutputStream outStream = new ByteArrayOutputStream(); + ImageIO.write(image, "jpg", outStream); + InputStream input = new ByteArrayInputStream(outStream.toByteArray()); + return input; + } else { + throw new ServerException("坐标数量有误:" + coors); + } } else { - throw new ServerException("坐标数量有误:" + coors); + throw new ServerException("坐标数量上报值为空:" + coors); } } } diff --git a/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/controller/BasedataEqpBookController.java b/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/controller/BasedataEqpBookController.java index 3de2cd0..99e53c0 100644 --- a/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/controller/BasedataEqpBookController.java +++ b/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/controller/BasedataEqpBookController.java @@ -925,7 +925,8 @@ public class BasedataEqpBookController extends BaseController { return this.getDataTable(list); } - @GetMapping({"/queryEqpbookCode"}) +// @GetMapping({"/queryEqpbookCode"}) + @PostMapping({"/queryEqpbookCode"}) public String queryEqpBookCode(@RequestBody String patrolDeviceCode) { return this.basedataEqpBookService.queryEqpBookCode(patrolDeviceCode); }