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 e29c071..d02e955 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 @@ -647,7 +647,7 @@ public class ResultAnalysisController extends BaseController { /** * 缺陷记录(将确认缺陷的数据展示在这) - * @param query 查询条件:点位名称、采集时间范围 + * @param query 查询条件:点位名称、缺陷描述(下拉,选项见 /defect/descOptions)、采集时间范围 * @return */ @GetMapping({"/defect/list"}) @@ -752,6 +752,15 @@ public class ResultAnalysisController extends BaseController { resultList.add(patrolData); }); + // 缺陷描述筛选:按明细行的 desc 精确匹配确定命中的分组,命中分组整条保留(一条记录聚合的多条缺陷描述不会丢失) + if (query != null && StringUtils.isNotEmpty(query.getDesc())) { + String selectedDesc = query.getDesc(); + Set matchedKeys = filterList.stream() + .filter(data -> selectedDesc.equals(data.getDesc())) + .map(data -> data.getTaskPatrolId() + "|" + data.getObjectId() + "|" + data.getAlgType()) + .collect(Collectors.toSet()); + resultList.removeIf(item -> !matchedKeys.contains(item.getTaskPatrolId() + "|" + item.getObjectId() + "|" + item.getAlgType())); + } // 非 null 的值按降序排列(最新的时间在前),null的在最后面排列 resultList.sort(Comparator.comparing(PatrolData::getPatrolTime, Comparator.nullsLast(Comparator.reverseOrder()))); @@ -771,6 +780,32 @@ public class ResultAnalysisController extends BaseController { return rspData; } + /** + * 缺陷记录-缺陷描述下拉选项(返回去重后的 desc 值,供 /defect/list 的缺陷描述下拉筛选使用) + * @param query 查询条件:点位名称、采集时间范围(不含缺陷描述,避免选项被自身过滤) + * @return + */ + @GetMapping({"/defect/descOptions"}) + public AjaxResult defectDescOptions(DefectRecordQuery query) { + ResultAnalysis resultAnalysis = new ResultAnalysis(); + resultAnalysis.setPointStatusList(Arrays.asList(PointStatusEnum.CONFIRMED.getCode(), PointStatusEnum.TRACKING.getCode())); + if (query != null) { + resultAnalysis.setPointName(query.getPointName()); + resultAnalysis.setBeginTime(query.getPatrolTimeBegin()); + resultAnalysis.setEndTime(query.getPatrolTimeEnd()); + } + List allList = patrolResultService.selectPatrolDataResultByTaskCodeV2(resultAnalysis); + // 仅取缺陷数据(与 /defect/list 口径一致)的非空 desc,去重后按字典序返回 + List descOptions = allList.stream() + .filter(data -> "0".equals(data.getWarnStatus())) + .map(PatrolData::getDesc) + .filter(StringUtils::isNotEmpty) + .distinct() + .sorted() + .collect(Collectors.toList()); + return AjaxResult.success(descOptions); + } + /** * 新的关系树 * @param areaIdS diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/domain/DefectRecordQuery.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/domain/DefectRecordQuery.java index 871f4c1..0f78981 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/domain/DefectRecordQuery.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/domain/DefectRecordQuery.java @@ -17,4 +17,6 @@ public class DefectRecordQuery { private String patrolTimeBegin; /** 采集结束时间(patrol_time 截止日期),格式 yyyy-MM-dd。 */ private String patrolTimeEnd; + /** 缺陷描述(result_analysis.description),下拉筛选按缺陷描述精确匹配(选项见 /defect/descOptions),聚合记录整条保留。 */ + private String desc; } 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 6ce2ffc..98b2621 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 @@ -73,23 +73,11 @@ public class InspectionReportController extends BaseController { @GetMapping({"/list"}) public TableDataInfo list(InspectionReport inspectionReport) { -// startPage(); + startPage(); List inspectionReportList = inspectionReportService.selectByAllList(inspectionReport); logger.info("[REPORT] inspectionReportList size: {}", inspectionReportList.size()); - // 归档已改为一次归档(单个任务/多个任务合并)只生成一条 inspection_report, - // 报告列表即“每条报告一行”,无需再按任务名+日期去重 - PageDomain pageDomain = TableSupport.buildPageRequest(); - int pageNum = pageDomain.getPageNum(); - int pageSize = pageDomain.getPageSize(); - int toNum = Math.min(inspectionReportList.size(), pageNum * pageSize); - List pageList = inspectionReportList.subList((pageNum - 1) * pageSize, toNum); - TableDataInfo rspData = new TableDataInfo(); - rspData.setCode(200); - rspData.setRows(pageList); - rspData.setMsg("查询成功"); - rspData.setTotal((new PageInfo<>(inspectionReportList)).getTotal()); - return rspData; + return getDataTable(inspectionReportList); } public Map getImgMap() {