From 6fe3e9841f25481cf78bd1f102886d4ce35e9e17 Mon Sep 17 00:00:00 2001
From: cjl <276999030@qq.com>
Date: Fri, 28 Jul 2023 13:38:01 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/qa' into qa
---
screen-api/src/main/java/com/moral/api/service/impl/MonitorPointServiceImpl.java | 26 ++++++++++++++++++++++----
1 files changed, 22 insertions(+), 4 deletions(-)
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/MonitorPointServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/MonitorPointServiceImpl.java
index 3632a25..8a068b7 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/MonitorPointServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/MonitorPointServiceImpl.java
@@ -266,7 +266,7 @@
if(map.containsKey(k)){
Object o = map.get(k).get(sensor);
timeValueMap.put(c,Objects.nonNull(o)?Double.valueOf(o.toString()):0);
- if(Objects.nonNull(o)){
+ if(Objects.nonNull(o)&& (!Double.valueOf(o.toString()).equals(0d))){
doubleArrayList.add(Double.valueOf(o.toString()));
}
}else {
@@ -395,7 +395,7 @@
if(map.containsKey(k)){
Object o = map.get(k).get(sensor);
num = Objects.nonNull(o)?Double.valueOf(o.toString()):0d;
- if(Objects.nonNull(num)){
+ if(Objects.nonNull(num)&& !num.equals(0d)){
ArrayList<Double> doubleArrayList = Objects.isNull(listMap.get(numCount+"_"+sensorMap.get(sensor)))?new ArrayList<>():listMap.get(numCount+"_"+sensorMap.get(sensor));
doubleArrayList.add(num);
listMap.put(numCount+"_"+sensorMap.get(sensor),doubleArrayList);
@@ -414,8 +414,14 @@
double rsAvg = 0L;
String son = numCount+"_"+sensorMap.get(sensorsList.get(z));
if(listMap.containsKey(numCount+"_"+sensorMap.get(sensorsList.get(z)))){
- Double ListAvg = listMap.get(numCount+"_"+sensorMap.get(sensorsList.get(z))).stream().collect(Collectors.averagingDouble(Double::doubleValue));
- rsAvg = new BigDecimal(ListAvg).setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue();
+ if(son.contains("������")){
+ rsAvg = percentile(listMap.get(numCount+"_"+sensorMap.get(sensorsList.get(z))),90d);
+ }else if(son.contains("������������")){
+ rsAvg = percentile(listMap.get(numCount+"_"+sensorMap.get(sensorsList.get(z))),95d);
+ }else {
+ Double ListAvg = listMap.get(numCount+"_"+sensorMap.get(sensorsList.get(z))).stream().collect(Collectors.averagingDouble(Double::doubleValue));
+ rsAvg = new BigDecimal(ListAvg).setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue();
+ }
}
timeValueMap.put(sensorMap.get(sensorsList.get(z)),rsAvg);
}
@@ -526,6 +532,18 @@
monitorPointMapper.selectList(monitorPointQueryWrapper).forEach(it->map.put(it.getId(),it.getName()));
return map;
}
+ private Double percentile(List<Double> date,double num){
+ Collections.sort(date);
+ double position = (num / 100) * (date.size() - 1);
+ int index = (int) position;
+ // ���������������������������������
+ double fraction = position - index;
+
+ // ������������������
+ double percentileValue = date.get(index) + fraction * (date.get(index + 1) - date.get(index));
+ return new BigDecimal(percentileValue).setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue();
+ }
+
}
--
Gitblit v1.8.0