Browse Source

fix:支持resultList同一算法多个分析结果合并解析(例绍兴站switch算法)

master
yinhuaiwei 3 days ago
parent
commit
e837e03db4
1 changed files with 20 additions and 25 deletions
  1. +20
    -25
      inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/domain/AnalyseResult.java

+ 20
- 25
inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/domain/AnalyseResult.java View File

@ -1,19 +1,20 @@
package com.inspect.analysis.domain; package com.inspect.analysis.domain;
import com.inspect.partrolresult.domain.AnalyseReqItem; import com.inspect.partrolresult.domain.AnalyseReqItem;
import com.inspect.partrolresult.domain.AnalyseRequest; import com.inspect.partrolresult.domain.AnalyseRequest;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString;
import lombok.extern.slf4j.Slf4j;
import java.io.Serializable; import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.*;
import java.util.stream.Collectors;
@Getter @Getter
@Setter @Setter
@Slf4j
@ToString
public class AnalyseResult implements Serializable { public class AnalyseResult implements Serializable {
private String requestId; private String requestId;
private List<AnalyseResItem> resultList; private List<AnalyseResItem> resultList;
@ -30,7 +31,6 @@ public class AnalyseResult implements Serializable {
if (resultsList != null) { if (resultsList != null) {
this.resultList = resultsList; this.resultList = resultsList;
} }
} }
public void reloadReq(AnalyseRequest analyseRequest) { public void reloadReq(AnalyseRequest analyseRequest) {
@ -39,19 +39,27 @@ public class AnalyseResult implements Serializable {
List<AnalyseResItem> resultList = new ArrayList<>(); List<AnalyseResItem> resultList = new ArrayList<>();
this.setResultsList(resultList); this.setResultsList(resultList);
// 根据请求时的点位循环
for (int i = 0; i < analyseRequest.getObjectList().size(); ++i) { for (int i = 0; i < analyseRequest.getObjectList().size(); ++i) {
AnalyseResItem resItem = analyseResItem.clone(); AnalyseResItem resItem = analyseResItem.clone();
resultList.add(resItem); resultList.add(resItem);
AnalyseReqItem analyseReqItem = analyseRequest.getObjectList().get(i); AnalyseReqItem analyseReqItem = analyseRequest.getObjectList().get(i);
List<AnalyseResPoint> results = new ArrayList<>(); List<AnalyseResPoint> results = new ArrayList<>();
// 根据请求时的点位算法类型循环
for (String type : analyseReqItem.getTypeList()) { for (String type : analyseReqItem.getTypeList()) {
AnalyseResPoint resPoint = analyseResItem.getResults().get(0); AnalyseResPoint resPoint = analyseResItem.getResults().get(0);
Optional<AnalyseResPoint> optional = analyseResItem.getResults().stream().filter(result -> type.equals(Optional.ofNullable(result.getType()).orElse(""))).findFirst();
if (optional.isPresent()) {
resPoint = optional.get();
}
if ("-9999".equals(resPoint.getValue())) {
resPoint.setValue("");
List<AnalyseResPoint> resPointList = analyseResItem.getResults().stream().filter(res -> Arrays.asList(res.getType().split(",")).contains(type)).collect(Collectors.toList());
if (!resPointList.isEmpty()) {
resPoint = resPointList.get(0);
// 合并同一算法的value
AnalyseResPoint finalResPoint = resPoint;
String value = resPointList.stream().map(res ->
"-9999".equals(finalResPoint.getValue()) ? "" : res.getValue()
).collect(Collectors.joining(","));
resPoint.setValue(value);
// 合并同一算法的pos
List<Pos> pos = resPointList.stream().map(res -> res.getPos()).filter(Objects::nonNull).flatMap(Collection::stream).collect(Collectors.toList());
resPoint.setPos(pos);
} }
AnalyseResPoint clone = resPoint.clone(); AnalyseResPoint clone = resPoint.clone();
clone.setType(type); clone.setType(type);
@ -97,17 +105,4 @@ public class AnalyseResult implements Serializable {
public int hashCode() { public int hashCode() {
return Objects.hash(requestId, resultList, resultsList, taskPatrolId, filter, result); return Objects.hash(requestId, resultList, resultsList, taskPatrolId, filter, result);
} }
@Override
public String toString() {
return "AnalyseResult{" +
"requestId='" + requestId + '\'' +
", resultList=" + resultList +
", resultsList=" + resultsList +
", taskPatrolId='" + taskPatrolId + '\'' +
", isCompensate='" + isCompensate + '\'' +
", filter='" + filter + '\'' +
", result='" + result + '\'' +
'}';
}
} }

Loading…
Cancel
Save