|
|
@ -71,43 +71,25 @@ public class AnalysisDataController { |
|
|
analysisDataRespMap.put("min",null); |
|
|
analysisDataRespMap.put("min",null); |
|
|
analysisDataRespMap.put("average",null); |
|
|
analysisDataRespMap.put("average",null); |
|
|
|
|
|
|
|
|
List<Map<String,Object>> list = MapUtil.get(analysisDataRespMap, "result", List.class); |
|
|
|
|
|
|
|
|
List<TsKvDTO> list = MapUtil.get(analysisDataRespMap, "result", List.class); |
|
|
if (CollectionUtil.isNotEmpty(list)){ |
|
|
if (CollectionUtil.isNotEmpty(list)){ |
|
|
DecimalFormat decimalFormat = new DecimalFormat("#.##"); |
|
|
DecimalFormat decimalFormat = new DecimalFormat("#.##"); |
|
|
// 计算最大值 |
|
|
// 计算最大值 |
|
|
OptionalDouble maxVal = list.stream() |
|
|
OptionalDouble maxVal = list.stream() |
|
|
.filter(m -> m.get("val") != null) // 过滤掉 "val" 为空的元素 |
|
|
|
|
|
.mapToDouble(m -> { |
|
|
|
|
|
if(m.get("val") instanceof Number){ |
|
|
|
|
|
return ((Number)m.get("val")).doubleValue(); |
|
|
|
|
|
}else{ |
|
|
|
|
|
return Double.parseDouble(m.get("val").toString()); |
|
|
|
|
|
} |
|
|
|
|
|
}).max(); |
|
|
|
|
|
|
|
|
.filter(m -> m.getVal() != null) // 过滤掉 "val" 为空的元素 |
|
|
|
|
|
.mapToDouble(m -> Double.parseDouble(m.getVal())).max(); |
|
|
String formattedMax = decimalFormat.format(maxVal.getAsDouble()); |
|
|
String formattedMax = decimalFormat.format(maxVal.getAsDouble()); |
|
|
analysisDataRespMap.put("max",formattedMax); |
|
|
analysisDataRespMap.put("max",formattedMax); |
|
|
// 计算最小值 |
|
|
// 计算最小值 |
|
|
OptionalDouble minVal = list.stream() |
|
|
OptionalDouble minVal = list.stream() |
|
|
.filter(m -> m.get("val") != null) // 过滤掉 "val" 为空的元素 |
|
|
|
|
|
.mapToDouble(m -> { |
|
|
|
|
|
if(m.get("val") instanceof Number){ |
|
|
|
|
|
return ((Number)m.get("val")).doubleValue(); |
|
|
|
|
|
}else{ |
|
|
|
|
|
return Double.parseDouble(m.get("val").toString()); |
|
|
|
|
|
} |
|
|
|
|
|
}).min(); |
|
|
|
|
|
|
|
|
.filter(m -> m.getVal() != null) // 过滤掉 "val" 为空的元素 |
|
|
|
|
|
.mapToDouble(m -> Double.parseDouble(m.getVal())).min(); |
|
|
String formattedMin = decimalFormat.format(minVal.getAsDouble()); |
|
|
String formattedMin = decimalFormat.format(minVal.getAsDouble()); |
|
|
analysisDataRespMap.put("min",formattedMin); |
|
|
analysisDataRespMap.put("min",formattedMin); |
|
|
// 计算平均值 |
|
|
// 计算平均值 |
|
|
Double averageVal = list.stream() |
|
|
Double averageVal = list.stream() |
|
|
.filter(m -> m.get("val") != null) // 过滤掉 "val" 为空的元素 |
|
|
|
|
|
.mapToDouble(m -> { |
|
|
|
|
|
if(m.get("val") instanceof Number){ |
|
|
|
|
|
return ((Number)m.get("val")).doubleValue(); |
|
|
|
|
|
}else{ |
|
|
|
|
|
return Double.parseDouble(m.get("val").toString()); |
|
|
|
|
|
} |
|
|
|
|
|
}).average().orElse(0D); |
|
|
|
|
|
|
|
|
.filter(m -> m.getVal() != null) // 过滤掉 "val" 为空的元素 |
|
|
|
|
|
.mapToDouble(m -> Double.parseDouble(m.getVal())).average().orElse(0D); |
|
|
|
|
|
|
|
|
String formattedAverage = decimalFormat.format(averageVal); |
|
|
String formattedAverage = decimalFormat.format(averageVal); |
|
|
analysisDataRespMap.put("average",formattedAverage); |
|
|
analysisDataRespMap.put("average",formattedAverage); |
|
|
|