Bladeren bron

修改统计玫瑰图

hxf 1 jaar geleden
bovenliggende
commit
7480d9c531

+ 64 - 63
wrdep-biz/src/main/java/com/jiayue/biz/service/impl/DataRecalculationImpl.java

@@ -619,76 +619,77 @@ public class DataRecalculationImpl implements DataRecalculationService {
             //把传入的时间按照日或月分割
             log.info("开始重新计算统计数据");
             ArrayList<WindTowerCalculationData> allDataList = new ArrayList<>();
-            //小时风功率密度和平均风速
-            ArrayList<WindTowerCalculationData> dataList = windTowerCalculationDataService.calculateWindPowerDensity(startTime.getTime(), endTime.getTime(), equipmentNo, prophaseAnemometryDataList, prophaseWeatherDataList, equipmentAttributeList, windTowerCalculationDataList);
-            allDataList.addAll(dataList);
-            //小时风切变
-            ArrayList<WindTowerCalculationData> calculationData = windTowerCalculationDataService.calculateWindPowerShear(startTime, endTime, equipmentNo, prophaseAnemometryDataList, windTowerCalculationDataList);
-            allDataList.addAll(calculationData);
-            //日平均温度
-            ArrayList<WindTowerCalculationData> tDay = windTowerCalculationDataService.tDay(startTime, endTime, equipmentNo, prophaseWeatherDataList, equipmentAttributeList);
-            allDataList.addAll(tDay);
-            //日平均气压
-            ArrayList<WindTowerCalculationData> paDay = windTowerCalculationDataService.paDay(startTime, endTime, equipmentNo, prophaseWeatherDataList, equipmentAttributeList);
-            allDataList.addAll(paDay);
-            //发电量与满发小时数
-            ArrayList<WindTowerCalculationData> calculateBattery = windTowerCalculationDataService.calculateBattery(startTime.getTime(), endTime.getTime(), windTowerInfoList.get(0), prophaseAnemometryDataList, equipmentAttributeList, windTowerCalculationDataList);
-            allDataList.addAll(calculateBattery);
-            //日平均风速
-            ArrayList<WindTowerCalculationData> wsDay = windTowerCalculationDataService.wsDay(startTime, endTime, equipmentNo, windTowerCalculationDataList, equipmentAttributeList, windTowerInfoList);
-            allDataList.addAll(wsDay);
-            //日平均风速标差
-            ArrayList<WindTowerCalculationData> calculationData1 = windTowerCalculationDataService.calculateStaDay(startTime, endTime, equipmentNo, prophaseAnemometryDataList, equipmentAttributeList, windTowerInfoList, windTowerCalculationDataList);
-            allDataList.addAll(calculationData1);
-            //日平均湍流
-            ArrayList<WindTowerCalculationData> turbulenceDay = windTowerCalculationDataService.turbulenceDay(startTime, endTime, equipmentNo, equipmentAttributeList, windTowerInfoList, windTowerCalculationDataList);
-            allDataList.addAll(turbulenceDay);
-            //日平均空气密度
-            ArrayList<WindTowerCalculationData> airDensityDay = windTowerCalculationDataService.airDensityDay(startTime, endTime, equipmentNo, prophaseWeatherDataList, equipmentAttributeList, windTowerCalculationDataList);
-            allDataList.addAll(airDensityDay);
-            //日平均风功率密度
-            ArrayList<WindTowerCalculationData> wpdDay = windTowerCalculationDataService.wpdDay(startTime, endTime, equipmentNo, windTowerCalculationDataList, equipmentAttributeList, windTowerInfoList);
-            allDataList.addAll(wpdDay);
-            //日平均风切变
-            ArrayList<WindTowerCalculationData> shearDay = windTowerCalculationDataService.shearDay(startTime, endTime, equipmentNo, windTowerCalculationDataList, equipmentAttributeList, windTowerInfoList, prophaseAnemometryDataList);
-            allDataList.addAll(shearDay);
+//            //小时风功率密度和平均风速
+//            ArrayList<WindTowerCalculationData> dataList = windTowerCalculationDataService.calculateWindPowerDensity(startTime.getTime(), endTime.getTime(), equipmentNo, prophaseAnemometryDataList, prophaseWeatherDataList, equipmentAttributeList, windTowerCalculationDataList);
+//            allDataList.addAll(dataList);
+//            //小时风切变
+//            ArrayList<WindTowerCalculationData> calculationData = windTowerCalculationDataService.calculateWindPowerShear(startTime, endTime, equipmentNo, prophaseAnemometryDataList, windTowerCalculationDataList);
+//            allDataList.addAll(calculationData);
+//            //日平均温度
+//            ArrayList<WindTowerCalculationData> tDay = windTowerCalculationDataService.tDay(startTime, endTime, equipmentNo, prophaseWeatherDataList, equipmentAttributeList);
+//            allDataList.addAll(tDay);
+//            //日平均气压
+//            ArrayList<WindTowerCalculationData> paDay = windTowerCalculationDataService.paDay(startTime, endTime, equipmentNo, prophaseWeatherDataList, equipmentAttributeList);
+//            allDataList.addAll(paDay);
+//            //发电量与满发小时数
+//            ArrayList<WindTowerCalculationData> calculateBattery = windTowerCalculationDataService.calculateBattery(startTime.getTime(), endTime.getTime(), windTowerInfoList.get(0), prophaseAnemometryDataList, equipmentAttributeList, windTowerCalculationDataList);
+//            allDataList.addAll(calculateBattery);
+//            //日平均风速
+//            ArrayList<WindTowerCalculationData> wsDay = windTowerCalculationDataService.wsDay(startTime, endTime, equipmentNo, windTowerCalculationDataList, equipmentAttributeList, windTowerInfoList);
+//            allDataList.addAll(wsDay);
+//            //日平均风速标差
+//            ArrayList<WindTowerCalculationData> calculationData1 = windTowerCalculationDataService.calculateStaDay(startTime, endTime, equipmentNo, prophaseAnemometryDataList, equipmentAttributeList, windTowerInfoList, windTowerCalculationDataList);
+//            allDataList.addAll(calculationData1);
+//            //日平均湍流
+//            ArrayList<WindTowerCalculationData> turbulenceDay = windTowerCalculationDataService.turbulenceDay(startTime, endTime, equipmentNo, equipmentAttributeList, windTowerInfoList, windTowerCalculationDataList);
+//            allDataList.addAll(turbulenceDay);
+//            //日平均空气密度
+//            ArrayList<WindTowerCalculationData> airDensityDay = windTowerCalculationDataService.airDensityDay(startTime, endTime, equipmentNo, prophaseWeatherDataList, equipmentAttributeList, windTowerCalculationDataList);
+//            allDataList.addAll(airDensityDay);
+//            //日平均风功率密度
+//            ArrayList<WindTowerCalculationData> wpdDay = windTowerCalculationDataService.wpdDay(startTime, endTime, equipmentNo, windTowerCalculationDataList, equipmentAttributeList, windTowerInfoList);
+//            allDataList.addAll(wpdDay);
+//            //日平均风切变
+//            ArrayList<WindTowerCalculationData> shearDay = windTowerCalculationDataService.shearDay(startTime, endTime, equipmentNo, windTowerCalculationDataList, equipmentAttributeList, windTowerInfoList, prophaseAnemometryDataList);
+//            allDataList.addAll(shearDay);
+            //15m/s湍流
             ArrayList<WindTowerCalculationData> turForWsByFifteenDayList = windTowerCalculationDataService.turForWsByFifteenDay(startTime, endTime, equipmentNo, prophaseAnemometryDataList, equipmentAttributeList, windTowerInfoList);
             allDataList.addAll(turForWsByFifteenDayList);
 
             List<Long> dateTime = DateTimeUtil.getIntervalTimeByMonth(DateTimeUtil.beginOfMonth(startTime), DateTimeUtil.beginOfMonth(endTime));
             for (Long l : dateTime) {
-                //月平均风速
-                ArrayList<WindTowerCalculationData> wsMonth = windTowerCalculationDataService.wsMonth(DateTimeUtil.beginOfMonth(new Date(l)), DateTimeUtil.endOfMonth(new Date(l)), equipmentNo, windTowerCalculationDataList, equipmentAttributeList, windTowerInfoList);
-                allDataList.addAll(wsMonth);
-                //月平均风功率密度
-                ArrayList<WindTowerCalculationData> wpdMonth = windTowerCalculationDataService.wpdMonth(DateTimeUtil.beginOfMonth(new Date(l)), DateTimeUtil.endOfMonth(new Date(l)), equipmentNo, windTowerCalculationDataList, equipmentAttributeList, windTowerInfoList);
-                allDataList.addAll(wpdMonth);
-                //月平均湍流
-                ArrayList<WindTowerCalculationData> turbulenceMonth = windTowerCalculationDataService.turbulenceMonth(DateTimeUtil.beginOfMonth(new Date(l)), DateTimeUtil.endOfMonth(new Date(l)), equipmentNo, windTowerCalculationDataList, equipmentAttributeList, windTowerInfoList);
-                allDataList.addAll(turbulenceMonth);
-                //月平均空气密度
-                ArrayList<WindTowerCalculationData> airDensityMonth = windTowerCalculationDataService.airDensityMonth(DateTimeUtil.beginOfMonth(new Date(l)), DateTimeUtil.endOfMonth(new Date(l)), equipmentNo, windTowerCalculationDataList, equipmentAttributeList);
-                allDataList.addAll(airDensityMonth);
-                //月最大风速
-                ArrayList<WindTowerCalculationData> wsMaxMonth = windTowerCalculationDataService.wsMaxMonth(DateTimeUtil.beginOfMonth(new Date(l)), DateTimeUtil.endOfMonth(new Date(l)), equipmentNo, prophaseAnemometryDataList, equipmentAttributeList, windTowerInfoList);
-                allDataList.addAll(wsMaxMonth);
-                //月平均风切变
-                ArrayList<WindTowerCalculationData> shearMonth = windTowerCalculationDataService.shearMonth(DateTimeUtil.beginOfMonth(new Date(l)), DateTimeUtil.endOfMonth(new Date(l)), equipmentNo, windTowerCalculationDataList, equipmentAttributeList, windTowerInfoList, prophaseAnemometryDataList);
-                allDataList.addAll(shearMonth);
-                //月平均风速标差
-                ArrayList<WindTowerCalculationData> staMonth = windTowerCalculationDataService.staMonth(DateTimeUtil.beginOfMonth(new Date(l)), DateTimeUtil.endOfMonth(new Date(l)), equipmentNo, prophaseAnemometryDataList, equipmentAttributeList, windTowerInfoList);
-                allDataList.addAll(staMonth);
+//                //月平均风速
+//                ArrayList<WindTowerCalculationData> wsMonth = windTowerCalculationDataService.wsMonth(DateTimeUtil.beginOfMonth(new Date(l)), DateTimeUtil.endOfMonth(new Date(l)), equipmentNo, windTowerCalculationDataList, equipmentAttributeList, windTowerInfoList);
+//                allDataList.addAll(wsMonth);
+//                //月平均风功率密度
+//                ArrayList<WindTowerCalculationData> wpdMonth = windTowerCalculationDataService.wpdMonth(DateTimeUtil.beginOfMonth(new Date(l)), DateTimeUtil.endOfMonth(new Date(l)), equipmentNo, windTowerCalculationDataList, equipmentAttributeList, windTowerInfoList);
+//                allDataList.addAll(wpdMonth);
+//                //月平均湍流
+//                ArrayList<WindTowerCalculationData> turbulenceMonth = windTowerCalculationDataService.turbulenceMonth(DateTimeUtil.beginOfMonth(new Date(l)), DateTimeUtil.endOfMonth(new Date(l)), equipmentNo, windTowerCalculationDataList, equipmentAttributeList, windTowerInfoList);
+//                allDataList.addAll(turbulenceMonth);
+//                //月平均空气密度
+//                ArrayList<WindTowerCalculationData> airDensityMonth = windTowerCalculationDataService.airDensityMonth(DateTimeUtil.beginOfMonth(new Date(l)), DateTimeUtil.endOfMonth(new Date(l)), equipmentNo, windTowerCalculationDataList, equipmentAttributeList);
+//                allDataList.addAll(airDensityMonth);
+//                //月最大风速
+//                ArrayList<WindTowerCalculationData> wsMaxMonth = windTowerCalculationDataService.wsMaxMonth(DateTimeUtil.beginOfMonth(new Date(l)), DateTimeUtil.endOfMonth(new Date(l)), equipmentNo, prophaseAnemometryDataList, equipmentAttributeList, windTowerInfoList);
+//                allDataList.addAll(wsMaxMonth);
+//                //月平均风切变
+//                ArrayList<WindTowerCalculationData> shearMonth = windTowerCalculationDataService.shearMonth(DateTimeUtil.beginOfMonth(new Date(l)), DateTimeUtil.endOfMonth(new Date(l)), equipmentNo, windTowerCalculationDataList, equipmentAttributeList, windTowerInfoList, prophaseAnemometryDataList);
+//                allDataList.addAll(shearMonth);
+//                //月平均风速标差
+//                ArrayList<WindTowerCalculationData> staMonth = windTowerCalculationDataService.staMonth(DateTimeUtil.beginOfMonth(new Date(l)), DateTimeUtil.endOfMonth(new Date(l)), equipmentNo, prophaseAnemometryDataList, equipmentAttributeList, windTowerInfoList);
+//                allDataList.addAll(staMonth);
                 //月玫瑰图
                 windDirectionStatisticsDataService.roseMonth(DateTimeUtil.beginOfMonth(new Date(l)), DateTimeUtil.endOfMonth(new Date(l)), equipmentNo, prophaseAnemometryDataList, prophaseWeatherDataList, equipmentAttributeList);
-                //月平均环境数据
-                ArrayList<WindTowerCalculationData> environmentData = windTowerCalculationDataService.environmentData(DateTimeUtil.beginOfMonth(new Date(l)), DateTimeUtil.endOfMonth(new Date(l)), equipmentNo, prophaseWeatherDataList, equipmentAttributeList);
-                allDataList.addAll(environmentData);
-                //空气密度月逐时
-                ArrayList<WindTowerCalculationData> airDensityMonth1 = windTowerCalculationDataService.airDensityMonth(equipmentNo, DateTimeUtil.beginOfMonth(new Date(l)), DateTimeUtil.endOfMonth(new Date(l)), prophaseWeatherDataList);
-                allDataList.addAll(airDensityMonth1);
-                //湍流月逐时
-                ArrayList<WindTowerCalculationData> turbulenceHourForMonth = windTowerCalculationDataService.turbulenceHourForMonth(equipmentNo, DateTimeUtil.beginOfMonth(new Date(l)), DateTimeUtil.endOfMonth(new Date(l)), prophaseAnemometryDataList, equipmentAttributeList, windTowerInfoList);
-                allDataList.addAll(turbulenceHourForMonth);
+//                //月平均环境数据
+//                ArrayList<WindTowerCalculationData> environmentData = windTowerCalculationDataService.environmentData(DateTimeUtil.beginOfMonth(new Date(l)), DateTimeUtil.endOfMonth(new Date(l)), equipmentNo, prophaseWeatherDataList, equipmentAttributeList);
+//                allDataList.addAll(environmentData);
+//                //空气密度月逐时
+//                ArrayList<WindTowerCalculationData> airDensityMonth1 = windTowerCalculationDataService.airDensityMonth(equipmentNo, DateTimeUtil.beginOfMonth(new Date(l)), DateTimeUtil.endOfMonth(new Date(l)), prophaseWeatherDataList);
+//                allDataList.addAll(airDensityMonth1);
+//                //湍流月逐时
+//                ArrayList<WindTowerCalculationData> turbulenceHourForMonth = windTowerCalculationDataService.turbulenceHourForMonth(equipmentNo, DateTimeUtil.beginOfMonth(new Date(l)), DateTimeUtil.endOfMonth(new Date(l)), prophaseAnemometryDataList, equipmentAttributeList, windTowerInfoList);
+//                allDataList.addAll(turbulenceHourForMonth);
             }
             // 统计概述
             statisticsSituationService.statisticsSituation(windTowerInfoList.get(0), statisticsSituations, equipmentAttributeList);

+ 13 - 12
wrdep-biz/src/main/java/com/jiayue/biz/service/impl/WindDirectionStatisticsDataServiceImpl.java

@@ -1,6 +1,8 @@
 package com.jiayue.biz.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.jiayue.biz.domain.EquipmentAttribute;
 import com.jiayue.biz.domain.ProphaseAnemometryData;
 import com.jiayue.biz.domain.ProphaseWeatherData;
@@ -68,15 +70,17 @@ public class WindDirectionStatisticsDataServiceImpl extends ServiceImpl<WindDire
      * @return
      */
     public void removeByStartTimeBetweenAndEquipmentIdAndEbId(Date startTime, Date endTime, String equipmentId, String ebId) {
-        QueryWrapper<WindDirectionStatisticsData> wrapper = new QueryWrapper();
+        LambdaQueryWrapper<WindDirectionStatisticsData> wrapper = Wrappers.lambdaQuery();
+
+//        QueryWrapper<WindDirectionStatisticsData> wrapper = new QueryWrapper();
         if (startTime != null && endTime != null) {
-            wrapper.between("time", startTime, endTime);
+            wrapper.between(WindDirectionStatisticsData::getTime, startTime, endTime);
         }
         if (equipmentId != null && !equipmentId.equals("")) {
-            wrapper.eq("equipment_id", equipmentId);
+            wrapper.eq(WindDirectionStatisticsData::getEquipmentId, equipmentId);
         }
         if (ebId != null && !ebId.equals("")) {
-            wrapper.eq("eb_id", ebId);
+            wrapper.eq(WindDirectionStatisticsData::getEbId, ebId);
         }
 
         remove(wrapper);
@@ -85,12 +89,9 @@ public class WindDirectionStatisticsDataServiceImpl extends ServiceImpl<WindDire
     @Transactional
     /*玫瑰图*/
     public void roseMonth(Date startTime, Date endTime, String equipmentId, List<ProphaseAnemometryData> prophaseAnemometryDataList, List<ProphaseWeatherData> prophaseWeatherDataList, List<EquipmentAttribute> equipmentAttributeList) {
-        //该测风塔一年的数据
-//        List<Map<String, Object>> windTowerDataParentTableListMap = windTowerDataParentTableMaps.stream().filter(w -> Long.parseLong(w.get("time").toString()) >= startTime.getTime() &&
-//                Long.parseLong(w.get("time").toString()) <= endTime.getTime()).collect(Collectors.toList());
-
         //风数据
-        List<ProphaseAnemometryData> anemometryDataList = prophaseAnemometryDataList.stream().filter(p -> p.getTs().getTime() >= startTime.getTime() && p.getTs().getTime() <= endTime.getTime()).collect(Collectors.toList());
+        List<ProphaseAnemometryData> anemometryDataList = prophaseAnemometryDataList.stream().filter(p -> p.getTs().getTime() >= startTime.getTime() && p.getTs().getTime() <= endTime.getTime() &&
+                p.getWsAve() != -99 && p.getWsAve() != null).collect(Collectors.toList());
         //环境数据
         List<ProphaseWeatherData> weatherDataList = prophaseWeatherDataList.stream().filter(p -> p.getTs().getTime() >= startTime.getTime() && p.getTs().getTime() <= endTime.getTime()).collect(Collectors.toList());
 
@@ -110,7 +111,7 @@ public class WindDirectionStatisticsDataServiceImpl extends ServiceImpl<WindDire
             //风切变玫瑰图
             ArrayList<WindDirectionStatisticsData> windShearRose = windShearRose(startTime, endTime, equipmentId, anemometryDataList, equipmentAttributeList, heights);
             list.addAll(windShearRose);
-            saveBatch(list);
+            this.saveBatch(list);
         } else {
             log.info("设备编号{},{}月,玫瑰图计算失败,缺少测风塔数据^ ^", equipmentId, startTime.getMonth() + 1);
         }
@@ -155,7 +156,7 @@ public class WindDirectionStatisticsDataServiceImpl extends ServiceImpl<WindDire
     /**
      * 风功率玫瑰图统计计算
      */
-    public ArrayList<WindDirectionStatisticsData> powerRose(Date startTime, Date endTime, String equipmentId, List<ProphaseAnemometryData> anemometryDataList, List<ProphaseWeatherData> prophaseWeatherDataList,List<EquipmentAttribute> equipmentAttributeList, String[] heights) {
+    public ArrayList<WindDirectionStatisticsData> powerRose(Date startTime, Date endTime, String equipmentId, List<ProphaseAnemometryData> anemometryDataList, List<ProphaseWeatherData> prophaseWeatherDataList, List<EquipmentAttribute> equipmentAttributeList, String[] heights) {
         ArrayList<WindDirectionStatisticsData> list = new ArrayList<>();
         try {
             for (String height : heights) {
@@ -194,7 +195,7 @@ public class WindDirectionStatisticsDataServiceImpl extends ServiceImpl<WindDire
     /**
      * 湍流玫瑰图统计计算
      */
-    public ArrayList<WindDirectionStatisticsData> turRose(Date startTime, Date endTime, String equipmentId,  List<ProphaseAnemometryData> prophaseAnemometryDataList, List<EquipmentAttribute> equipmentAttributeList, String[] heights) {
+    public ArrayList<WindDirectionStatisticsData> turRose(Date startTime, Date endTime, String equipmentId, List<ProphaseAnemometryData> prophaseAnemometryDataList, List<EquipmentAttribute> equipmentAttributeList, String[] heights) {
         BigDecimal zero = new BigDecimal(0);
         ArrayList<WindDirectionStatisticsData> list = new ArrayList<>();
         try {

+ 1 - 1
wrdep-biz/src/main/java/com/jiayue/biz/util/CalculationUtil.java

@@ -46,7 +46,7 @@ public class CalculationUtil {
         List<ProphaseAnemometryData> collect = new ArrayList<>();
         if (windEnum.name().equals("N")) {
             // N的范围为 348.75<wd<360 + 0<wd<11.25
-            List.stream().filter(e -> e.getWdAve() != null).filter(w -> (getBigDecimal(w.getWdAve()).compareTo(windEnum.getLower()) >= 0 && getBigDecimal(w.getWdAve()).compareTo(new BigDecimal(360)) <= 0) || (getBigDecimal(w.getWdAve()).compareTo(windEnum.getUpper()) < 0 && getBigDecimal(w.getWdAve()).compareTo(new BigDecimal(0)) > 0)).collect(Collectors.toList());
+            collect = List.stream().filter(e -> e.getWdAve() != null).filter(w -> (getBigDecimal(w.getWdAve()).compareTo(windEnum.getLower()) >= 0 && getBigDecimal(w.getWdAve()).compareTo(new BigDecimal(360)) <= 0) || (getBigDecimal(w.getWdAve()).compareTo(windEnum.getUpper()) < 0 && getBigDecimal(w.getWdAve()).compareTo(new BigDecimal(0)) > 0)).collect(Collectors.toList());
         } else {
             collect = List.stream().filter(w -> w.getWdAve() != null && getBigDecimal(w.getWdAve()).compareTo(windEnum.getLower()) >= 0 && getBigDecimal(w.getWdAve()).compareTo(windEnum.getUpper()) < 0).collect(Collectors.toList());
         }