|
|
|
@ -639,6 +639,120 @@ public class ResultAnalysisController extends BaseController { |
|
|
|
// } |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 缺陷记录(将确认缺陷的数据展示在这) |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
@GetMapping({"/defect/list"}) |
|
|
|
public TableDataInfo defectList() { |
|
|
|
ResultAnalysis resultAnalysis = new ResultAnalysis(); |
|
|
|
resultAnalysis.setPointStatusList(Arrays.asList(PointStatusEnum.CONFIRMED.getCode(), PointStatusEnum.TRACKING.getCode())); |
|
|
|
// 查出全部数据 |
|
|
|
List<PatrolData> allList = patrolResultService.selectPatrolDataResultByTaskCodeV2(resultAnalysis); |
|
|
|
|
|
|
|
Map<String, String> imageNormalMap = allList.parallelStream() |
|
|
|
.filter(patrolData -> StringUtils.isNotEmpty(patrolData.getImageNormalUrlPath())) |
|
|
|
.collect(Collectors.toMap( |
|
|
|
patrolData -> patrolData.getTaskPatrolId() + "_" + patrolData.getObjectId() + "_" + patrolData.getAlgType(), |
|
|
|
PatrolData::getImageNormalUrlPath, |
|
|
|
(existing, replacement) -> existing |
|
|
|
)); |
|
|
|
// 筛出缺陷数据 |
|
|
|
List<PatrolData> filterList = allList.parallelStream().filter(patrolData -> "0".equals(patrolData.getWarnStatus())).collect(Collectors.toList()); |
|
|
|
List<AlgInfo> algInfos = patrolResultService.selectAlgInfo(new PatrolResult()); |
|
|
|
filterList.forEach((item) -> { |
|
|
|
item.setAlgName((algInfos.stream().anyMatch((alg) -> { |
|
|
|
return alg.getAlgSubtypeCode().equals(item.getAlgType()); |
|
|
|
}) ? algInfos.stream().filter((alg) -> { |
|
|
|
return alg.getAlgSubtypeCode().equals(item.getAlgType()); |
|
|
|
}).findFirst().get().getAlgSubtypeName() : "")); |
|
|
|
if ("1".equals(item.getFilter())) { |
|
|
|
item.setImg(item.getImageNormalUrlPath()); |
|
|
|
} |
|
|
|
|
|
|
|
AlgValue algValue = new AlgValue(); |
|
|
|
if(item.getResValue() != null) { |
|
|
|
String str = algValue.formatValue(item.getResValue()); |
|
|
|
if ("meter".equals(item.getAlgType())) { |
|
|
|
if (str.equals("-1")) { |
|
|
|
item.setResValue("空值"); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
Map<String, List<PatrolData>> groupedFilterList = filterList.stream().collect(Collectors.groupingBy(item -> item.getTaskPatrolId() + "|" + item.getObjectId() + "|" + item.getAlgType())); |
|
|
|
List<PatrolData> resultList = new ArrayList<>(); |
|
|
|
groupedFilterList.forEach((key, value) -> { |
|
|
|
PatrolData patrolData = new PatrolData(); |
|
|
|
String[] keys = key.split("\\|"); |
|
|
|
if(keys.length != 3) { |
|
|
|
logger.error("key format error: " + key); |
|
|
|
} |
|
|
|
String taskPatrolId = keys[0]; |
|
|
|
String objectId = keys[1]; |
|
|
|
String algType = keys[2]; |
|
|
|
patrolData.setTaskPatrolId(taskPatrolId); |
|
|
|
patrolData.setObjectId(objectId); |
|
|
|
patrolData.setAlgType(algType); |
|
|
|
patrolData.setDesc(value.stream().map(PatrolData::getDesc).distinct().collect(Collectors.joining(","))); |
|
|
|
for (PatrolData data : value) { |
|
|
|
// 初筛有缺陷 展示初筛结果图片 |
|
|
|
if ("1".equals(data.getFilter()) && StringUtils.isEmpty(patrolData.getImgAnalyse())) { |
|
|
|
patrolData.setImgAnalyse(data.getImgAnalyse()); |
|
|
|
} |
|
|
|
if ("1".equals(data.getFilter()) && StringUtils.isEmpty(patrolData.getImg())) { |
|
|
|
patrolData.setImg(data.getImg()); |
|
|
|
} |
|
|
|
// 大模型有缺陷 展示大模型结果图片 |
|
|
|
if ("0".equals(data.getFilter())) { |
|
|
|
patrolData.setImgAnalyse(data.getImgAnalyse()); |
|
|
|
patrolData.setImg(data.getImg()); |
|
|
|
} |
|
|
|
} |
|
|
|
String imageNormalPath = imageNormalMap.getOrDefault(taskPatrolId + "_" + objectId + "_" + algType, ""); |
|
|
|
patrolData.setImageNormalUrlPath(imageNormalPath); |
|
|
|
patrolData.setAlgName(value.stream().map(item -> item.getAlgName() != null ? item.getAlgName() : "").distinct().findFirst().orElse("")); |
|
|
|
patrolData.setAreaName(value.stream().map(item -> item.getAreaName() != null ? item.getAreaName() : "").distinct().findFirst().orElse("")); |
|
|
|
patrolData.setBrightDesc(value.stream().map(item -> item.getBrightDesc() != null ? item.getBrightDesc() : "").distinct().findFirst().orElse("")); |
|
|
|
patrolData.setBrightImgAnalyse(value.stream().map(item -> item.getBrightImgAnalyse() != null ? item.getBrightImgAnalyse() : "").distinct().findFirst().orElse("")); |
|
|
|
patrolData.setBrightResStatus(value.stream().map(item -> item.getBrightResStatus() != null ? item.getBrightResStatus() : "").distinct().findFirst().orElse("")); |
|
|
|
patrolData.setChannelName(value.stream().map(item -> item.getChannelName() != null ? item.getChannelName() : "").distinct().findFirst().orElse("")); |
|
|
|
patrolData.setDataType(value.stream().map(item -> item.getDataType() != null ? item.getDataType() : "").distinct().findFirst().orElse("")); |
|
|
|
patrolData.setDeviceName(value.stream().map(item -> item.getDeviceName() != null ? item.getDeviceName() : "").distinct().findFirst().orElse("")); |
|
|
|
patrolData.setDeviceSource(value.stream().map(item -> item.getDeviceSource() != null ? item.getDeviceSource() : "").distinct().findFirst().orElse("")); |
|
|
|
patrolData.setImgType(value.stream().map(item -> item.getImgType() != null ? item.getImgType() : "").distinct().findFirst().orElse("")); |
|
|
|
patrolData.setLineId(value.stream().map(PatrolData::getLineId).distinct().collect(Collectors.joining(","))); |
|
|
|
patrolData.setPatrolTime(value.stream().map(item -> item.getPatrolTime() != null ? item.getPatrolTime() : "").distinct().findFirst().orElse("")); |
|
|
|
patrolData.setPointId(value.stream().map(item -> item.getPointId() != null ? item.getPointId() : "").distinct().findFirst().orElse("")); |
|
|
|
patrolData.setPointName(value.stream().map(item -> item.getPointName() != null ? item.getPointName() : "").distinct().findFirst().orElse("")); |
|
|
|
patrolData.setPointStatus(value.stream().map(item -> item.getPointStatus() != null ? item.getPointStatus() : "").distinct().findFirst().orElse("")); |
|
|
|
patrolData.setRequestId(value.stream().map(item -> item.getRequestId() != null ? item.getRequestId() : "").distinct().findFirst().orElse("")); |
|
|
|
patrolData.setResValue(value.stream().map(item -> item.getResValue() != null ? item.getResValue() : "").distinct().findFirst().orElse("")); |
|
|
|
patrolData.setResStatus(value.stream().map(item -> item.getResStatus() != null ? item.getResStatus() : "").distinct().findFirst().orElse("")); |
|
|
|
patrolData.setSuggestion(value.stream().map(item -> item.getSuggestion() != null ? item.getSuggestion() : "").distinct().findFirst().orElse("")); |
|
|
|
patrolData.setWarnStatus(value.stream().map(item -> item.getWarnStatus() != null ? item.getWarnStatus() : "").distinct().findFirst().orElse("")); |
|
|
|
|
|
|
|
resultList.add(patrolData); |
|
|
|
}); |
|
|
|
// 非 null 的值按降序排列(最新的时间在前),null的在最后面排列 |
|
|
|
resultList.sort(Comparator.comparing(PatrolData::getPatrolTime, |
|
|
|
Comparator.nullsLast(Comparator.reverseOrder()))); |
|
|
|
|
|
|
|
PageDomain pageDomain = TableSupport.buildPageRequest(); |
|
|
|
int pageNum = pageDomain.getPageNum(); |
|
|
|
int pageSize = pageDomain.getPageSize(); |
|
|
|
int toNum = Math.min(resultList.size(), pageNum * pageSize); |
|
|
|
List<PatrolData> pageList = resultList.subList((pageNum - 1) * pageSize, toNum); |
|
|
|
|
|
|
|
TableDataInfo rspData = new TableDataInfo(); |
|
|
|
rspData.setCode(200); |
|
|
|
rspData.setRows(pageList); |
|
|
|
rspData.setMsg("查询成功"); |
|
|
|
rspData.setTotal((new PageInfo<>(resultList)).getTotal()); |
|
|
|
|
|
|
|
return rspData; |
|
|
|
} |
|
|
|
|
|
|
|
//初筛大模型一起查询 |
|
|
|
@GetMapping({"/list_v2_ex"}) |
|
|
|
public TableDataInfo listV2Ex(PatrolTaskStatus patrolTaskStatus) { |
|
|
|
|