Jelajahi Sumber

尖峰谷平修改计算

yq 4 tahun lalu
induk
melakukan
83583a2328

+ 15 - 12
fiveep-service/src/main/java/com/bizmatics/service/job/RatAnalogTask.java

@@ -154,21 +154,24 @@ public class RatAnalogTask {
         Date oneTwo = DateUtils.setHours(date, 12);
         Date oneSeven = DateUtils.setHours(date, 17);
         //尖
-        Double nToe = htAnalogDataMapper.selectCount(siteId, nine, eleven);
-        Double nTot = htAnalogDataMapper.selectCount(siteId, nineTeen, twoOne);
-        timeShareVO.setNeed(Arith.sub(nToe,nTot));
+        Map<String, Double> nToe = htAnalogDataMapper.selectMaxAndMinAndAvg(siteId, nine, eleven);
+        Map<String, Double> nTot = htAnalogDataMapper.selectMaxAndMinAndAvg(siteId, nineTeen, twoOne);
+        timeShareVO.setNeed(Arith.add(timeSub(nToe),timeSub(nTot)));
         //高峰
-        Double eTot = htAnalogDataMapper.selectCount(siteId,eight, ten);
-        Double hnTot = htAnalogDataMapper.selectCount(siteId, oneEight, oneNine);
-        Double tTot = htAnalogDataMapper.selectCount(siteId, twoOne, twoThree);
-        timeShareVO.setPeak(Arith.sub(Arith.sub(eTot,hnTot),tTot));
+        Map<String, Double> eTot = htAnalogDataMapper.selectMaxAndMinAndAvg(siteId, eight, ten);
+        Map<String, Double> hnTot = htAnalogDataMapper.selectMaxAndMinAndAvg(siteId, oneEight, oneNine);
+        Map<String, Double> tTot = htAnalogDataMapper.selectMaxAndMinAndAvg(siteId, twoOne, twoThree);
+        timeShareVO.setPeak(Arith.add(Arith.add(timeSub(eTot), timeSub(hnTot)), timeSub(tTot)));
         //低谷
-        Double tTos = htAnalogDataMapper.selectCount(siteId, twoThree, seven);
-        timeShareVO.setGrain(tTos);
+        Map<String, Double> tTos = htAnalogDataMapper.selectMaxAndMinAndAvg(siteId, twoThree, seven);
+        timeShareVO.setGrain(timeSub(tTos));
         //平谷
-        Double oToo = htAnalogDataMapper.selectCount(siteId, oneTwo, oneSeven);
-        timeShareVO.setFlat(oToo);
-
+        Map<String, Double> oToo = htAnalogDataMapper.selectMaxAndMinAndAvg(siteId, oneTwo, oneSeven);
+        timeShareVO.setFlat(timeSub(oToo));
         hadSiteStatic.setTimeShare(JsonUtils.toJson(timeShareVO));
     }
+
+    public Double timeSub(Map<String,Double> map){
+        return Optional.ofNullable(map).map(hadTotal -> Arith.sub(map.get("eppMax"),map.get("eppMin"))).orElse(0.00);
+    }
 }