Browse Source

数据筛选 定时计算

hxf 1 year ago
parent
commit
ef82e89551

+ 1 - 1
neim-biz/src/main/java/com/jiayue/biz/job/AirDensityJob.java

@@ -59,7 +59,7 @@ public class AirDensityJob {
 
     @Scheduled(cron = "0 0 15 * * ?")
     public void AirDensityCalculation() {
-        List<WindTowerInfo> windTowerInfoList = windTowerInfoService.list();
+        List<WindTowerInfo> windTowerInfoList = windTowerInfoService.lambdaQuery().list();
         // 统计概述信息
         List<StatisticsSituation> statisticsSituations = statisticsSituationService.list();
         // 设备属性信息

+ 3 - 1
neim-biz/src/main/java/com/jiayue/biz/service/impl/ProphaseWeatherDataServiceImpl.java

@@ -14,6 +14,7 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 @Service
 @AllArgsConstructor
@@ -51,7 +52,8 @@ public class ProphaseWeatherDataServiceImpl extends ServiceImpl<ProphaseWeatherD
 
     //查询空气密度
     public List<ProphaseWeatherData> selectAir(String equipmentId, Timestamp startTime, Timestamp endTime) {
-        return baseMapper.selectAir(equipmentId, startTime, endTime);
+        List<ProphaseWeatherData> weatherDataList = baseMapper.selectAir(equipmentId, startTime, endTime);
+        return weatherDataList.stream().filter(w -> w.getAirDensity() > 0).collect(Collectors.toList());
     }
 
     //查询最开始一条记录

+ 5 - 5
neim-biz/src/main/java/com/jiayue/biz/service/impl/WindTowerCalculationDataServiceImpl.java

@@ -1720,7 +1720,7 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
         long endHour = endTime.getTime();
         long dayTime = 86400000L;
         String[] heights = windTowerInfoList.get(0).getHeights().split(",");
-        prophaseAnemometryDataList = prophaseAnemometryDataList.stream().filter(p -> p.getWsAve() != null && p.getWsAve() != -99).collect(Collectors.toList());
+        List<ProphaseAnemometryData> prophaseAnemometryData = prophaseAnemometryDataList.stream().filter(p -> p.getWsAve() != null && p.getWsAve() != -99).collect(Collectors.toList());
         ArrayList<WindTowerCalculationData> list = new ArrayList<>();
         try {
             //获取日综合风切变
@@ -1733,7 +1733,7 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
 
                 //获取所有小时风切变数据
                 long start = start1;
-                List<ProphaseAnemometryData> collect = prophaseAnemometryDataList.stream().filter(p -> p.getTs().getTime() >= start && p.getTs().getTime() < start2).collect(Collectors.toList());
+                List<ProphaseAnemometryData> collect = prophaseAnemometryData.stream().filter(p -> p.getTs().getTime() >= start && p.getTs().getTime() < start2).collect(Collectors.toList());
                 BigDecimal windShear = CalculationUtil.getWindShear(collect, heights);
                 if (collect.size() > 0) {
                     WindTowerCalculationData windTowerCalculationData = new WindTowerCalculationData();
@@ -1778,7 +1778,7 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
             removeByStartTimeBetweenAndEquipmentIdAndEbId(startHour, endTime, equipmentId, ebIdMonth);
 
             String heights = windTowerInfoList.get(0).getHeights();
-            List<ProphaseAnemometryData> collect = prophaseAnemometryDataList.stream().filter(p -> p.getTs().getTime() >= startTime.getTime() && p.getTs().getTime() < endTime.getTime()).collect(Collectors.toList());
+            List<ProphaseAnemometryData> collect = prophaseAnemometryDataList.stream().filter(p -> p.getTs().getTime() >= startTime.getTime() && p.getTs().getTime() < endTime.getTime() && p.getWsAve() != null && p.getWsAve() > 0).collect(Collectors.toList());
             BigDecimal windShear = CalculationUtil.getWindShear(collect, heights.split(","));
 
             if (collect.size() > 0) {
@@ -1954,7 +1954,7 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
         String[] heights = windTowerInfoList.get(0).getHeights().split(",");
         ArrayList<WindTowerCalculationData> listAll = new ArrayList<>();
         //时间段内所有风数据
-        List<ProphaseAnemometryData> prophaseAnemometryData = prophaseAnemometryDataList.stream().filter(p -> p.getTs().getTime() >= startTime.getTime() && p.getTs().getTime() <= endTime.getTime() && p.getWsAve() != null && p.getWsAve() != -99).collect(Collectors.toList());
+        List<ProphaseAnemometryData> prophaseAnemometryData = prophaseAnemometryDataList.stream().filter(p -> p.getTs().getTime() >= startTime.getTime() && p.getTs().getTime() <= endTime.getTime() && p.getWsAve() != null && p.getWsAve() > 0).collect(Collectors.toList());
         EquipmentAttribute equipmentAttribute = equipmentAttributeService.lambdaQuery().eq(EquipmentAttribute::getFieldName, windShearFiledName).list().get(0);
         //删除综合风切变
         removeByStartTimeBetweenAndEquipmentIdAndEbId(startTime, endTime, equipmentId, equipmentAttribute.getId());
@@ -2285,7 +2285,7 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
     public ArrayList<WindTowerCalculationData> staMonth(Date startTime, Date endTime, String equipmentId, List<ProphaseAnemometryData> prophaseAnemometryDataList, List<EquipmentAttribute> equipmentAttributeList, List<WindTowerInfo> windTowerInfoList) {
         //时间-1防止0点数据查不到
         Date startHour = new Date(startTime.getTime() - 1);
-        List<ProphaseAnemometryData> collect = prophaseAnemometryDataList.stream().filter(p -> p.getTs().getTime() >= startTime.getTime() && p.getTs().getTime() <= endTime.getTime() && p.getWsSta() != null && p.getWsSta() != -99).collect(Collectors.toList());
+        List<ProphaseAnemometryData> collect = prophaseAnemometryDataList.stream().filter(p -> p.getTs().getTime() >= startTime.getTime() && p.getTs().getTime() <= endTime.getTime() && p.getWsSta() != null && p.getWsSta() > 0).collect(Collectors.toList());
 
         ArrayList<WindTowerCalculationData> windTowerCalculationDataList = new ArrayList<>();
         String h = windTowerInfoList.stream().filter(w -> w.getEquipmentNo().equals(equipmentId)).collect(Collectors.toList()).get(0).getHeights();