|
|
|
@ -1,19 +1,20 @@ |
|
|
|
package com.inspect.analysis.domain; |
|
|
|
|
|
|
|
|
|
|
|
import com.inspect.partrolresult.domain.AnalyseReqItem; |
|
|
|
import com.inspect.partrolresult.domain.AnalyseRequest; |
|
|
|
import lombok.Getter; |
|
|
|
import lombok.Setter; |
|
|
|
import lombok.ToString; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
|
|
|
|
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 |
|
|
|
@Setter |
|
|
|
@Slf4j |
|
|
|
@ToString |
|
|
|
public class AnalyseResult implements Serializable { |
|
|
|
private String requestId; |
|
|
|
private List<AnalyseResItem> resultList; |
|
|
|
@ -30,7 +31,6 @@ public class AnalyseResult implements Serializable { |
|
|
|
if (resultsList != null) { |
|
|
|
this.resultList = resultsList; |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public void reloadReq(AnalyseRequest analyseRequest) { |
|
|
|
@ -39,19 +39,27 @@ public class AnalyseResult implements Serializable { |
|
|
|
List<AnalyseResItem> resultList = new ArrayList<>(); |
|
|
|
this.setResultsList(resultList); |
|
|
|
|
|
|
|
// 根据请求时的点位循环 |
|
|
|
for (int i = 0; i < analyseRequest.getObjectList().size(); ++i) { |
|
|
|
AnalyseResItem resItem = analyseResItem.clone(); |
|
|
|
resultList.add(resItem); |
|
|
|
AnalyseReqItem analyseReqItem = analyseRequest.getObjectList().get(i); |
|
|
|
List<AnalyseResPoint> results = new ArrayList<>(); |
|
|
|
// 根据请求时的点位算法类型循环 |
|
|
|
for (String type : analyseReqItem.getTypeList()) { |
|
|
|
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(); |
|
|
|
clone.setType(type); |
|
|
|
@ -97,17 +105,4 @@ public class AnalyseResult implements Serializable { |
|
|
|
public int hashCode() { |
|
|
|
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 + '\'' + |
|
|
|
'}'; |
|
|
|
} |
|
|
|
} |