diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/controller/ResultAnalysisController.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/controller/ResultAnalysisController.java index 1fa2e42..befa469 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/controller/ResultAnalysisController.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/controller/ResultAnalysisController.java @@ -644,14 +644,12 @@ public class ResultAnalysisController extends BaseController { /** * 缺陷记录(将确认缺陷的数据展示在这) + * @param query 查询条件:点位名称、算法名称(下拉,选项见 /defect/algNameOptions)、采集时间范围 * @return */ @GetMapping({"/defect/list"}) - public TableDataInfo defectList() { - ResultAnalysis resultAnalysis = new ResultAnalysis(); - resultAnalysis.setPointStatusList(Arrays.asList(PointStatusEnum.CONFIRMED.getCode(), PointStatusEnum.TRACKING.getCode())); - // 查出全部数据 - List allList = patrolResultService.selectPatrolDataResultByTaskCodeV2(resultAnalysis); + public TableDataInfo defectList(DefectListQuery query) { + List allList = patrolResultService.selectDefectList(query); Map imageNormalMap = allList.parallelStream() .filter(patrolData -> StringUtils.isNotEmpty(patrolData.getImageNormalUrlPath())) @@ -742,6 +740,11 @@ public class ResultAnalysisController extends BaseController { resultList.add(patrolData); }); + // 算法名称筛选:algType 属于聚合分组维度,按聚合记录的 algName 精确匹配,命中记录整条保留(多条缺陷描述不会丢失) + if (query != null && StringUtils.isNotEmpty(query.getAlgName())) { + String selectedAlgName = query.getAlgName(); + resultList.removeIf(item -> !selectedAlgName.equals(item.getAlgName())); + } // 非 null 的值按降序排列(最新的时间在前),null的在最后面排列 resultList.sort(Comparator.comparing(PatrolData::getPatrolTime, Comparator.nullsLast(Comparator.reverseOrder()))); @@ -761,6 +764,40 @@ public class ResultAnalysisController extends BaseController { return rspData; } + /** + * 缺陷记录-算法名称下拉选项(返回去重后的 algName 值,供 /defect/list 的算法名称下拉筛选使用) + * @param query 查询条件:点位名称、采集时间范围(algName 不参与查询,避免选项被自身过滤) + * @return + */ + @GetMapping({"/defect/algNameOptions"}) + public AjaxResult defectAlgNameOptions(DefectListQuery query) { + List allList = patrolResultService.selectDefectList(query); + List algInfos = patrolResultService.selectAlgInfo(new PatrolResult()); + // 仅取缺陷数据(与 /defect/list 口径一致),按 algType 解析出 algName 后去重、按字典序返回 + List algNameOptions = allList.stream() + .filter(data -> "0".equals(data.getWarnStatus())) + .map(data -> resolveAlgName(algInfos, data.getAlgType())) + .filter(StringUtils::isNotEmpty) + .distinct() + .sorted() + .collect(Collectors.toList()); + return AjaxResult.success(algNameOptions); + } + + /** + * 按算法类型解析算法名称,口径与 /defect/list 明细行分配的 algName 一致(未匹配到时返回空串)。 + */ + private String resolveAlgName(List algInfos, String algType) { + if (algInfos == null) { + return ""; + } + return algInfos.stream() + .filter(alg -> alg.getAlgSubtypeCode() != null && alg.getAlgSubtypeCode().equals(algType)) + .map(AlgInfo::getAlgSubtypeName) + .findFirst() + .orElse(""); + } + /** * 新的关系树 * @param areaIdS diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/mapper/PatrolResultMapper.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/mapper/PatrolResultMapper.java index f8ae020..97e1f68 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/mapper/PatrolResultMapper.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/mapper/PatrolResultMapper.java @@ -1,6 +1,7 @@ package com.inspect.partrolresult.mapper; import com.inspect.analysis.domain.ResultAnalysis; +import com.inspect.analysis.domain.DefectListQuery; import com.inspect.partrolresult.domain.*; import com.inspect.statistics.domain.TaskStatisticsConfig; import com.inspect.system.base.openDomain.BasedataEqpBookMoMain; @@ -34,6 +35,8 @@ public interface PatrolResultMapper { List selectPatrolDataResultByTaskCodeV2(ResultAnalysis resultAnalysis); + List selectDefectList(DefectListQuery query); + List selectPatrolDataResultByTaskCodeList(PatrolTaskStatus patrolTaskStatus); List selectBasedataEqpBookList(BasedataEqpBookMoMain basedataEqpBookMoMain); diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/IPatrolResultService.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/IPatrolResultService.java index ee14a13..5b3a40c 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/IPatrolResultService.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/IPatrolResultService.java @@ -1,6 +1,7 @@ package com.inspect.partrolresult.service; import com.inspect.analysis.domain.ResultAnalysis; +import com.inspect.analysis.domain.DefectListQuery; import com.inspect.insreport.domain.InspectionReport; import com.inspect.partrolresult.domain.*; import com.inspect.resultmain.domain.PatrolTaskResultMain; @@ -30,6 +31,8 @@ public interface IPatrolResultService { List selectPatrolDataResultByTaskCodeV2(ResultAnalysis resultAnalysis); + List selectDefectList(DefectListQuery query); + List selectPatrolDataResultByTaskCodeList(PatrolTaskStatus patrolTaskStatus); List selectBasedataEqpBookList(BasedataEqpBookMoMain basedataEqpbookMomain); 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 e7de160..5dd1676 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 @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.inspect.analysis.domain.AlgValue; import com.inspect.analysis.domain.AnalyseResPoint; +import com.inspect.analysis.domain.DefectListQuery; import com.inspect.analysis.domain.ResultAnalysis; import com.inspect.analysis.mapper.ResultAnalysisMapper; import com.inspect.analysis.utils.ResultAnalysisUtils; @@ -147,6 +148,11 @@ public class PatrolResultServiceImpl implements IPatrolResultService { return this.patrolResultMapper.selectPatrolDataResultByTaskCodeV3(resultAnalysis); } + @Override + public List selectDefectList(DefectListQuery query) { + return patrolResultMapper.selectDefectList(query); + } + public List selectPatrolDataResultByTaskCodeList(PatrolTaskStatus patrolTaskStatus) { return patrolResultMapper.selectPatrolDataResultByTaskCodeList(patrolTaskStatus); } diff --git a/inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolResultMapper.xml b/inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolResultMapper.xml index 6450c60..7cab17c 100644 --- a/inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolResultMapper.xml +++ b/inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolResultMapper.xml @@ -346,6 +346,76 @@ ORDER BY line_id desc + +