From 7ea58af7d43c32f99925f7930350e077e83f9b97 Mon Sep 17 00:00:00 2001 From: wangguangyuan Date: Mon, 9 Feb 2026 14:56:46 +0800 Subject: [PATCH] =?UTF-8?q?perf:=E4=BC=98=E5=8C=96=E6=8A=A5=E5=91=8A?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E5=88=97=E8=A1=A8=E5=B1=95=E7=A4=BA=E5=92=8C?= =?UTF-8?q?=E7=BC=BA=E9=99=B7=E6=B1=87=E6=80=BB=E5=A4=87=E6=B3=A8=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E4=B8=8D=E5=B1=95=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../img/mapper/InspectionReportImgMapper.java | 3 ++ .../service/IInspectionReportImgService.java | 2 + .../impl/InspectionReportImgServiceImpl.java | 5 ++ .../InspectionReportController.java | 49 ++++++++++++++----- .../PatrolTaskResultMainController.java | 20 -------- .../mapper/task/InspectionReportImgMapper.xml | 8 +++ .../mapper/task/ResultAnalysisMapper.xml | 1 + 7 files changed, 55 insertions(+), 33 deletions(-) diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/img/mapper/InspectionReportImgMapper.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/img/mapper/InspectionReportImgMapper.java index 89693e1..b20a9e4 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/img/mapper/InspectionReportImgMapper.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/img/mapper/InspectionReportImgMapper.java @@ -2,6 +2,7 @@ package com.inspect.img.mapper; import com.inspect.img.domain.InspectionReportImg; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -20,4 +21,6 @@ public interface InspectionReportImgMapper { int deleteInspectionReportImgByLineIds(Long[] lineIds); int batchInsertInspectionReportImg(List reportImgList); + + List selectByReportInfoIds(@Param("lineIds") List lineIds); } diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/img/service/IInspectionReportImgService.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/img/service/IInspectionReportImgService.java index cc83746..775420d 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/img/service/IInspectionReportImgService.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/img/service/IInspectionReportImgService.java @@ -18,4 +18,6 @@ public interface IInspectionReportImgService { int deleteInspectionReportImgByLineId(Long lineId); int batchInsertInspectionReportImg(List reportImgList); + + List selectByReportInfoIds(List lineIds); } diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/img/service/impl/InspectionReportImgServiceImpl.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/img/service/impl/InspectionReportImgServiceImpl.java index ce71910..5e1608e 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/img/service/impl/InspectionReportImgServiceImpl.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/img/service/impl/InspectionReportImgServiceImpl.java @@ -46,4 +46,9 @@ public class InspectionReportImgServiceImpl implements IInspectionReportImgServi public int batchInsertInspectionReportImg(List list) { return this.inspectionReportImgMapper.batchInsertInspectionReportImg(list); } + + @Override + public List selectByReportInfoIds(List lineIds) { + return this.inspectionReportImgMapper.selectByReportInfoIds(lineIds); + } } diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/insreport/controller/InspectionReportController.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/insreport/controller/InspectionReportController.java index c58d51d..42486a8 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/insreport/controller/InspectionReportController.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/insreport/controller/InspectionReportController.java @@ -33,12 +33,7 @@ import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; import java.util.zip.Adler32; import java.util.zip.CheckedOutputStream; @@ -127,7 +122,6 @@ public class InspectionReportController extends BaseController { @GetMapping({"/{lineId}/{filter}"}) public AjaxResult getInfo(@PathVariable("lineId") Long lineId, @PathVariable(value = "filter",required = false) String filter) { - Map map = getImgMap(); InspectionReport inspectionReport = inspectionReportService.selectInspectionReportByLineId(lineId); if(inspectionReport == null) { // 暂时这么处理(进度条报告入口,lineId传的是patrolTaskStatus的lineId) @@ -149,16 +143,45 @@ public class InspectionReportController extends BaseController { inspectionReportData.setReportId(String.valueOf(lineId)); List inspectionReportDataList = inspectionReportDataService.selectInspectionReportDataList(inspectionReportData); + // 收集所有需要查询的lineId + List lineIds = inspectionReportDataList.stream() + .map(InspectionReportData::getLineId) + .filter(StringUtils::isNotBlank) + .distinct() + .collect(Collectors.toList()); + + // 批量查询图片数据 + Map imageMap = Collections.emptyMap(); + if (!lineIds.isEmpty()) { + // 批量查询 + List allImages = inspectionReportImgService.selectByReportInfoIds(lineIds); + + // 按reportInfoId分组,拼接图片URL + imageMap = allImages.stream() + .filter(img -> StringUtils.isNotBlank(img.getReportInfoId())) + .filter(img -> StringUtils.isNotBlank(img.getImg())) + .collect(Collectors.groupingBy( + InspectionReportImg::getReportInfoId, + Collectors.mapping( + InspectionReportImg::getImg, + Collectors.joining(StringUtils.COMMA) + ) + )); + } + + // 设置图片数据 for (InspectionReportData reportData : inspectionReportDataList) { - logger.info("reportData: {}", reportData); - if(reportData == null || StringUtils.isEmpty(reportData.getReportId())) { - return AjaxResult.error("报告已损坏: " + lineId); - } - if (map != null && map.get((reportData.getLineId()).trim()) != null) { - reportData.setInspectionImg(map.get((reportData.getLineId()).trim())); + // 记录日志(根据实际情况调整日志级别,避免生产环境过多日志) + logger.debug("reportData: {}", reportData); + + // 从缓存中获取图片URL + String imgUrls = imageMap.get(reportData.getLineId()); + if (StringUtils.isNotBlank(imgUrls)) { + reportData.setInspectionImg(imgUrls); } } + inspectionReport.setInfo(inspectionReportDataList); return AjaxResult.success(inspectionReport); } diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/resultmain/controller/PatrolTaskResultMainController.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/resultmain/controller/PatrolTaskResultMainController.java index 4f7ceec..cc6178e 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/resultmain/controller/PatrolTaskResultMainController.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/resultmain/controller/PatrolTaskResultMainController.java @@ -364,27 +364,7 @@ public class PatrolTaskResultMainController extends BaseController { logger.error("[归档]失败, 数据采集中..."); return AjaxResult.error("数据采集中请稍后...."); } -// startTime = System.currentTimeMillis(); -// ResultAnalysis resultAnalysis = new ResultAnalysis(); -// int csQxNum = 0, aiQxNum = 0; -// List taskPatrolledIds = resultList.stream().map(PatrolResult::getTaskPatrolledId).distinct().collect(Collectors.toList()); -// for (String taskPatrolledId : taskPatrolledIds) { -// resultAnalysis.setTaskPatrolledId(taskPatrolledId); -// ResultAnalysis ras = patrolResultService.selectTaskAbnormalData(resultAnalysis); -// csQxNum += ras.getCsQxNum(); -// aiQxNum += ras.getAiQxNum(); -// } - -// if ("0".equals(exportReportFlag) && 0 == aiQxNum && 0 == csQxNum) { -// logger.error("[归档]没有缺陷数据, 无需归档!"); -// return AjaxResult.error("没有缺陷数据, 无需归档!"); -// } - -// PrintUtil.useTime("查询统计缺陷数据", startTime); startTime = System.currentTimeMillis(); - // 使用CompletableFuture异步执行saveReport -// int finalAiQxNum = aiQxNum; -// int finalCsQxNum = csQxNum; List finalLineIds = lineIds; CompletableFuture> saveReportFuture = CompletableFuture.supplyAsync(() -> { logger.info("[ARCHIVE] Start saving reports"); diff --git a/inspect-main/inspect-main-task/src/main/resources/mapper/task/InspectionReportImgMapper.xml b/inspect-main/inspect-main-task/src/main/resources/mapper/task/InspectionReportImgMapper.xml index e1d60da..9a0a4e5 100644 --- a/inspect-main/inspect-main-task/src/main/resources/mapper/task/InspectionReportImgMapper.xml +++ b/inspect-main/inspect-main-task/src/main/resources/mapper/task/InspectionReportImgMapper.xml @@ -35,6 +35,14 @@ where line_id = #{lineId} + + insert into inspection_report_img diff --git a/inspect-main/inspect-main-task/src/main/resources/mapper/task/ResultAnalysisMapper.xml b/inspect-main/inspect-main-task/src/main/resources/mapper/task/ResultAnalysisMapper.xml index 032e80e..6ee60cc 100644 --- a/inspect-main/inspect-main-task/src/main/resources/mapper/task/ResultAnalysisMapper.xml +++ b/inspect-main/inspect-main-task/src/main/resources/mapper/task/ResultAnalysisMapper.xml @@ -664,6 +664,7 @@ +