Browse Source

feat: 缺陷记录添加下拉筛选,按缺陷描述精确匹配

feature/agg
wangguangyuan 2 months ago
parent
commit
ff5dbf20b0
3 changed files with 40 additions and 15 deletions
  1. +36
    -1
      inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/controller/ResultAnalysisController.java
  2. +2
    -0
      inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/domain/DefectRecordQuery.java
  3. +2
    -14
      inspect-main/inspect-main-task/src/main/java/com/inspect/insreport/controller/InspectionReportController.java

+ 36
- 1
inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/controller/ResultAnalysisController.java View File

@ -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<String> 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<PatrolData> allList = patrolResultService.selectPatrolDataResultByTaskCodeV2(resultAnalysis);
// 仅取缺陷数据(与 /defect/list 口径一致)的非空 desc,去重后按字典序返回
List<String> 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


+ 2
- 0
inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/domain/DefectRecordQuery.java View File

@ -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;
}

+ 2
- 14
inspect-main/inspect-main-task/src/main/java/com/inspect/insreport/controller/InspectionReportController.java View File

@ -73,23 +73,11 @@ public class InspectionReportController extends BaseController {
@GetMapping({"/list"})
public TableDataInfo list(InspectionReport inspectionReport) {
// startPage();
startPage();
List<InspectionReport> 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<InspectionReport> 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<String, String> getImgMap() {


Loading…
Cancel
Save