Explorar o código

1.同步pdf与后台页面查询显示,差风切变和湍流数据核对

wangt hai 11 meses
pai
achega
432619b2b6

+ 10 - 10
TwoParameterWeibullProbabilityPlotOutput.txt

@@ -1,25 +1,25 @@
 Two Parameter Weibull Probability Plot
 
-Wednesday, 22 May 2024, 15.41
+Friday, 24 May 2024, 17.03
 
 Unweighted constrained simplex regression
 
-Gradient:  1.0089        s.e. 0.0024
-Intercept: -0.0709       s.e. 0.0175
+Gradient:  1.0171        s.e. 0.0064
+Intercept: -0.1419       s.e. 0.0473
 
-Correlation Coefficient, r: 0.9965
-Critical Value for r:       0.0119
+Correlation Coefficient, r: 0.9943
+Critical Value for r:       0.0352
 Significance level used:    5.0%
-Sum of squares:             613.3209
+Sum of squares:             145.8259
 
 Best Estimates of the Parameters
-sigma:  7.4932      'pseudo-linear' s.e. 0.0079
-gamma:  2.357       'pseudo-linear' s.e. 0.0065
+sigma:  7.4393      'pseudo-linear' s.e. 0.0239
+gamma:  2.0655      'pseudo-linear' s.e. 0.0149
 
 The 'pseudo-linear' s.e.s are a lower limit to the s.e. and may significantly underestimate the s.e.
 See documentation, http://www.ee.ucl.ac.uk/~mflanaga/java/ProbabilityPlot.html, for details
 
 'Pseudo-linear' Parameter-Parameter Correlation Coefficients
         sigma       gamma       
-sigma   1.0         0.3525      
-gamma   0.3525      1.0         
+sigma   1.0         0.4351      
+gamma   0.4351      1.0         

+ 16 - 19
neim-biz/src/main/java/com/jiayue/biz/eunms/WindDirectionEnum.java

@@ -1,7 +1,6 @@
 package com.jiayue.biz.eunms;
 
 import lombok.AllArgsConstructor;
-import lombok.Data;
 import lombok.Getter;
 
 import java.math.BigDecimal;
@@ -11,24 +10,22 @@ import java.math.BigDecimal;
 /*玫瑰图风向枚举*/
 public enum WindDirectionEnum {
     // N的范围为 348.75<wd<360 + 0<wd<11.25
-    N(new BigDecimal(348.75),new BigDecimal(11.25),"北"),
-    NNE(new BigDecimal(11.25),new BigDecimal(33.75),"北东北"),
-    NE(new BigDecimal(33.75),new BigDecimal(56.25),"东北"),
-    ENE(new BigDecimal(56.25),new BigDecimal(78.75),"东东北"),
-    E(new BigDecimal(78.75),new BigDecimal(101.25),"东"),
-    ESE(new BigDecimal(101.25),new BigDecimal(123.75),"东东南"),
-    SE(new BigDecimal(123.75),new BigDecimal(146.25),"东南"),
-    SSE(new BigDecimal(146.25),new BigDecimal(168.75),"南东南"),
-    S(new BigDecimal(168.75),new BigDecimal(191.25),"南"),
-    SSW(new BigDecimal(191.25),new BigDecimal(213.75),"南西南"),
-    SW(new BigDecimal(213.75),new BigDecimal(236.25),"西南"),
-    WSW(new BigDecimal(236.25),new BigDecimal(258.75),"西西南"),
-    W(new BigDecimal(258.75),new BigDecimal(281.25),"西"),
-    WNW(new BigDecimal(281.25),new BigDecimal(303.75),"西西北"),
-    NW(new BigDecimal(303.75),new BigDecimal(326.25),"西北"),
-    NNW(new BigDecimal(326.25),new BigDecimal(348.75),"北西北");
-
-
+    N(new BigDecimal(348.75), new BigDecimal(11.25), "北"),
+    NNE(new BigDecimal(11.25), new BigDecimal(33.75), "北东北"),
+    NE(new BigDecimal(33.75), new BigDecimal(56.25), "东北"),
+    ENE(new BigDecimal(56.25), new BigDecimal(78.75), "东东北"),
+    E(new BigDecimal(78.75), new BigDecimal(101.25), "东"),
+    ESE(new BigDecimal(101.25), new BigDecimal(123.75), "东东南"),
+    SE(new BigDecimal(123.75), new BigDecimal(146.25), "东南"),
+    SSE(new BigDecimal(146.25), new BigDecimal(168.75), "南东南"),
+    S(new BigDecimal(168.75), new BigDecimal(191.25), "南"),
+    SSW(new BigDecimal(191.25), new BigDecimal(213.75), "南西南"),
+    SW(new BigDecimal(213.75), new BigDecimal(236.25), "西南"),
+    WSW(new BigDecimal(236.25), new BigDecimal(258.75), "西西南"),
+    W(new BigDecimal(258.75), new BigDecimal(281.25), "西"),
+    WNW(new BigDecimal(281.25), new BigDecimal(303.75), "西西北"),
+    NW(new BigDecimal(303.75), new BigDecimal(326.25), "西北"),
+    NNW(new BigDecimal(326.25), new BigDecimal(348.75), "北西北");
     private BigDecimal lower;
     private BigDecimal upper;
     private String message;

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

@@ -135,6 +135,8 @@ public class AirDensityJob {
                 log.info("数据计算完成,开始保存:{}", dataList.size());
                 // 统计概述
                 statisticsSituationService.statisticsSituation(windTowerInfo, statisticsSituations, equipmentAttributeList);
+                //删除时间段所有数据后保存新数据
+                windTowerCalculationDataService.removeByStartTimeBetweenAndEquipmentIdAndEbId(startDate, endDate, equipmentNo, "");
                 //保存
                 windTowerCalculationDataService.saveBatchByEquipmentId(dataList, equipmentNo);
             } catch (Exception e) {
@@ -236,12 +238,12 @@ public class AirDensityJob {
                     , towerJsonInfo.getZfx(),
                     fdn
                     , realTimeTotal.toString()
-                    ,new BigDecimal(towerJsonInfo.getZdfs()).setScale(2, RoundingMode.HALF_UP).toString()
-                    ,new BigDecimal(towerJsonInfo.getZxfs()).setScale(2, RoundingMode.HALF_UP).toString()
-                    ,fdr
-                    ,fdy
-                    ,realTimeTotalr.toString()
-                    ,realTimeTotaly.toString()
+                    , new BigDecimal(towerJsonInfo.getZdfs()).setScale(2, RoundingMode.HALF_UP).toString()
+                    , new BigDecimal(towerJsonInfo.getZxfs()).setScale(2, RoundingMode.HALF_UP).toString()
+                    , fdr
+                    , fdy
+                    , realTimeTotalr.toString()
+                    , realTimeTotaly.toString()
             );
             List<FanModelData> modelDataList = fanModelDataList.stream().filter(f -> f.getStationId().equals(stationInfo.getId())
                     && f.getModelName().equals(modelName)).collect(Collectors.toList());

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

@@ -5,7 +5,6 @@ import cn.hutool.core.util.ZipUtil;
 import cn.hutool.json.JSONUtil;
 import cn.hutool.poi.excel.ExcelReader;
 import cn.hutool.poi.excel.ExcelUtil;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.jiayue.biz.domain.*;
 import com.jiayue.biz.mapper.ProphaseAnemometryDataMapper;
 import com.jiayue.biz.service.*;
@@ -595,7 +594,7 @@ public class DataRecalculationImpl implements DataRecalculationService {
 
     public AjaxResult statisticsCheck(Date startTime, Date endTime, String equipmentNo) {
         try {
-            log.info("开始重新计算统计数据:startTime-{};endTime-{};equipmentNo-{};", endTime, endTime, equipmentNo);
+            log.info("开始重新计算统计数据:startTime-{};endTime-{};equipmentNo-{};", startTime, endTime, equipmentNo);
             //获取到结束时间的当天最后时间
             endTime = DateTimeUtil.getDayLastTime(endTime.getTime());
             List<WindTowerInfo> windTowerInfoList = windTowerInfoService.getByEquipmentNo(equipmentNo);
@@ -606,10 +605,12 @@ public class DataRecalculationImpl implements DataRecalculationService {
                 return AjaxResult.error("测风塔信息查询异常:{}", JSONUtil.toJsonStr(windTowerInfoList));
             }
             //风数据查询
-            List<ProphaseAnemometryData> prophaseAnemometryDataList = prophaseAnemometryDataMapper.selectList(Wrappers.<ProphaseAnemometryData>lambdaQuery()
+            List<ProphaseAnemometryData> prophaseAnemometryDataList = prophaseAnemometryDataMapper.selectAll(equipmentNo, new Timestamp(startTime.getTime()), new Timestamp(endTime.getTime()));
+            /*List<ProphaseAnemometryData> prophaseAnemometryDataList = prophaseAnemometryDataMapper.selectList(Wrappers.<ProphaseAnemometryData>lambdaQuery()
                     .eq(ProphaseAnemometryData::getEquipmentId, equipmentNo)
                     .le(ProphaseAnemometryData::getTs, new Timestamp(endTime.getTime()))
-                    .ge(ProphaseAnemometryData::getTs, new Timestamp(startTime.getTime())));
+                    .ge(ProphaseAnemometryData::getTs, new Timestamp(startTime.getTime())));*/
+
             //环境数据查询
             List<ProphaseWeatherData> prophaseWeatherDataList = prophaseWeatherDataService.selectPublicData(equipmentNo, new Timestamp(startTime.getTime()), new Timestamp(endTime.getTime()));
 

+ 41 - 13
neim-biz/src/main/java/com/jiayue/biz/service/impl/PdfServiceImpl.java

@@ -65,8 +65,10 @@ public class PdfServiceImpl extends ServiceImpl<WindTowerDataParentTableMapper,
         startDay = DateUtil.beginOfMonth(startDay);
         endDay = DateUtil.endOfMonth(endDay);
         List<WindTowerCalculationData> windTowerCalculationDatas = windTowerCalculationDataService.getByBetweenTimeAndEquipmentId(startDay, endDay, equipmentId);
+        windTowerCalculationDatas = windTowerCalculationDatas.stream().filter(e -> null != e.getValue()).collect(Collectors.toList());
         // 一年的风向统计数据
         List<WindDirectionStatisticsData> windDirectionStatisticsDataList = windDirectionStatisticsDataService.getByBetweenTimeAndEquipmentId(startDay, endDay, equipmentId);
+        windDirectionStatisticsDataList = windDirectionStatisticsDataList.stream().filter(e -> null != e.getValue() && e.getValue().doubleValue() > 0).collect(Collectors.toList());
         //所有类型数据
         List<EquipmentAttribute> equipmentAttributeDataList = equipmentAttributeService.list();
         Map<String, EquipmentAttribute> equipmentAttributeMap = equipmentAttributeDataList.stream().collect(Collectors.toMap(x -> x.getFieldName(), x -> x, (x1, x2) -> x1));
@@ -395,13 +397,19 @@ public class PdfServiceImpl extends ServiceImpl<WindTowerDataParentTableMapper,
                 BigDecimal tAveDataAge = tAveData.stream().map(WindTowerCalculationData::getValue).reduce(BigDecimal.ZERO, BigDecimal::add).divide(BigDecimal.valueOf(tAveData.size()), 2, RoundingMode.HALF_UP);
                 tMap.put("ave", tAveDataAge);
             }
-            BigDecimal airDensityAveDataAge = airDensityAveData.stream().map(WindTowerCalculationData::getValue).reduce(BigDecimal.ZERO, BigDecimal::add).divide(BigDecimal.valueOf(airDensityAveData.size()), 2, RoundingMode.HALF_UP);
-
             Map<String, Object> airDensityMap = new HashMap<>();
             airDensityMap.put("parameter", "空气密度(kg/m³)");
-            airDensityMap.put("min", airDensityAveDataAge.multiply(BigDecimal.valueOf(0.8)));
-            airDensityMap.put("max", airDensityAveDataAge.multiply(BigDecimal.valueOf(1.2)));
-            airDensityMap.put("ave", airDensityAveDataAge);
+            if (null != airDensityAveData && airDensityAveData.size() > 0) {
+                BigDecimal airDensityAveDataAge = airDensityAveData.stream().map(WindTowerCalculationData::getValue).reduce(BigDecimal.ZERO, BigDecimal::add).divide(BigDecimal.valueOf(airDensityAveData.size()), 2, RoundingMode.HALF_UP);
+                airDensityMap.put("min", airDensityAveDataAge.multiply(BigDecimal.valueOf(0.8)));
+                airDensityMap.put("max", airDensityAveDataAge.multiply(BigDecimal.valueOf(1.2)));
+                airDensityMap.put("ave", airDensityAveDataAge);
+            } else {
+                airDensityMap.put("min", "--");
+                airDensityMap.put("max", "--");
+                airDensityMap.put("ave", "--");
+            }
+
             environmentData.add(paMap);
             environmentData.add(rhMap);
             environmentData.add(tMap);
@@ -492,6 +500,10 @@ public class PdfServiceImpl extends ServiceImpl<WindTowerDataParentTableMapper,
             }
             String wsEbId = wsDayAtt.getId();
             List<WindTowerCalculationData> wsListValue = weatherCollectMonthMap.get(wsEbId);
+            if (null == wsListValue || wsListValue.isEmpty()) {
+                log.error("wsListValue 为空:{} ", wsListValue);
+                return map;
+            }
             Map<Date, List<WindTowerCalculationData>> windTowerCalculationDataMap = wsListValue.stream().collect(Collectors.groupingBy(x -> x.getTime()));
             // 过滤一周数据
             List<List<Object>> wsDataList = new ArrayList<>();
@@ -504,6 +516,10 @@ public class PdfServiceImpl extends ServiceImpl<WindTowerDataParentTableMapper,
             }
             String wpdEbId = wpdMonthAtt.getId();
             List<WindTowerCalculationData> wpdListValue = weatherCollectMonthMap.get(wpdEbId);
+            if (null == wpdListValue || wpdListValue.isEmpty()) {
+                log.error("wpdListValue 为空:{} ", wpdListValue);
+                return map;
+            }
             Map<Date, List<WindTowerCalculationData>> wpdDataMap = wpdListValue.stream().collect(Collectors.groupingBy(x -> x.getTime()));
             for (Long l = startDay.getTime(); l <= endDay.getTime(); l += 86400000L) {
                 Date finalL = DateTimeUtil.getDayStartTime(l);
@@ -568,6 +584,10 @@ public class PdfServiceImpl extends ServiceImpl<WindTowerDataParentTableMapper,
             }
             String wsEbId = wsEquipmentAttribute.getId();
             List<WindTowerCalculationData> wsListValue = weatherCollectMonthMap.get(wsEbId);
+            if (null == wsListValue || wsListValue.isEmpty()) {
+                log.error("wsListValue 为空:{} ", wsListValue);
+                return map;
+            }
             Map<Date, List<WindTowerCalculationData>> windTowerCalculationDataMap = wsListValue.stream().collect(Collectors.groupingBy(x -> x.getTime()));
 
             //取出heigth层高的平均风速标差属性
@@ -578,7 +598,11 @@ public class PdfServiceImpl extends ServiceImpl<WindTowerDataParentTableMapper,
             }
             String staEbId = equipmentAttributeMap.get(height + "staDay").getId();
             List<WindTowerCalculationData> wsStaListValue = weatherCollectMonthMap.get(staEbId);
-            Map<Date, List<WindTowerCalculationData>> wsStaListValueMap = wsListValue.stream().collect(Collectors.groupingBy(x -> x.getTime()));
+            if (null == wsStaListValue || wsStaListValue.isEmpty()) {
+                log.error("wsStaListValue 为空:{} ", wsStaListValue);
+                return map;
+            }
+            Map<Date, List<WindTowerCalculationData>> wsStaListValueMap = wsStaListValue.stream().collect(Collectors.groupingBy(x -> x.getTime()));
             List<List<Object>> wsDataList = new ArrayList<>();
             List<List<Object>> wsStaDataList = new ArrayList<>();
             for (Long l = startDay.getTime(); l <= endDay.getTime(); l += 86400000L) {
@@ -1159,12 +1183,13 @@ public class PdfServiceImpl extends ServiceImpl<WindTowerDataParentTableMapper,
             // 提取过滤的value值
             List<BigDecimal> filterwdValueList = filterWdList.stream().map(WindDirectionStatisticsData::getValue).filter(w -> w != null).collect(Collectors.toList());
             // 累加保留两位小数
-            BigDecimal sumWd = null;
+            BigDecimal sumWd = BigDecimal.valueOf(12);
             if (!filterwdValueList.isEmpty()) {
                 sumWd = filterwdValueList.stream().reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
+                wdMap.put(value.name(), sumWd.divide(BigDecimal.valueOf(filterwdValueList.size()), 2, RoundingMode.HALF_UP));
+            } else {
+                wdMap.put(value.name(), BigDecimal.ZERO);
             }
-
-            wdMap.put(value.name(), sumWd);
             list.add(wdMap);
         }
         return list;
@@ -1194,8 +1219,10 @@ public class PdfServiceImpl extends ServiceImpl<WindTowerDataParentTableMapper,
             BigDecimal sumPower = null;
             if (!filterPowerValueList.isEmpty()) {
                 sumPower = filterPowerValueList.stream().reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
+                powerMap.put(value.name(), sumPower.divide(BigDecimal.valueOf(filterPowerValueList.size()), 2, RoundingMode.HALF_UP));
+            } else {
+                powerMap.put(value.name(), BigDecimal.ZERO);
             }
-            powerMap.put(value.name(), sumPower);
             list.add(powerMap);
         }
         return list;
@@ -1361,20 +1388,21 @@ public class PdfServiceImpl extends ServiceImpl<WindTowerDataParentTableMapper,
                 return list;
             }
             // 获取风向统计数据
-            List<WindDirectionStatisticsData> shearList = windDirectionStatisticsData.stream().filter(e -> e.getEbId().equals(shearEquipmentAttribute.getId())).collect(Collectors.toList());
+            List<WindDirectionStatisticsData> shearList = windDirectionStatisticsData.stream()
+                    .filter(e -> e.getEbId().equals(shearEquipmentAttribute.getId()) && null != e.getValue() && e.getValue().doubleValue() > 0).collect(Collectors.toList());
 
             for (WindDirectionEnum value : WindDirectionEnum.values()) {
                 Map<String, Object> map = new HashMap<>();
                 // 根据风向过滤统计表
                 List<WindDirectionStatisticsData> filterShearList = shearList.stream().filter(e -> e.getDirection().equals(value.name())).collect(Collectors.toList());
                 // 提取过滤的value值
-                List<BigDecimal> filterShearValueList = filterShearList.stream().map(WindDirectionStatisticsData::getValue).filter(w -> w != null).collect(Collectors.toList());
+                List<BigDecimal> filterShearValueList = filterShearList.stream().map(WindDirectionStatisticsData::getValue).collect(Collectors.toList());
                 // 累加保留两位小数
                 BigDecimal sumShear = null;
                 if (!filterShearValueList.isEmpty()) {
                     sumShear = filterShearValueList.stream().reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
                 }
-                map.put(value.name(), sumShear);
+                map.put(value.name(), sumShear.divide(BigDecimal.valueOf(filterShearValueList.size()), 2, RoundingMode.HALF_UP));
                 list.add(map);
             }
         } catch (Exception e) {

+ 1 - 0
neim-biz/src/main/java/com/jiayue/biz/service/impl/RealTimeDisplayServiceImpl.java

@@ -753,6 +753,7 @@ public class RealTimeDisplayServiceImpl implements RealTimeDisplayService {
      */
     public List<Map<String, Object>> getWindShear(Long startTime, Long endTime, String eqId, String height, String heightMin) {
         List<ProphaseAnemometryData> anemometryData = prophaseAnemometryDataService.selectWdAveAndWdAveAndWsSta(eqId, new Timestamp(startTime), new Timestamp(endTime));
+        anemometryData = anemometryData.stream().filter(p -> null != p.getWsAve() && p.getWsAve() > 0 && p.getWsAve() < 30).collect(Collectors.toList());
         BigDecimal zero = new BigDecimal(0);
         List<Map<String, Object>> list = new ArrayList<>();
         //获取低层高风速所有数据

+ 6 - 9
neim-biz/src/main/java/com/jiayue/biz/service/impl/WindDataCalculationServiceImpl.java

@@ -914,10 +914,10 @@ public class WindDataCalculationServiceImpl implements WindDataCalculationServic
                     hListMap.forEach((h, collect) -> {
                         //获取对应层高的字段
                         String ebIdMonth = equipmentAttributeMap.get(h + "maxwsMonth").getId();
-
-                        BigDecimal max = CalculationUtil.getBigDecimal(collect.stream().mapToDouble(ProphaseAnemometryData::getWsMax).sum());
-                        BigDecimal maxWsValue = max.divide(BigDecimal.valueOf(collect.size()), 2, RoundingMode.HALF_UP);
-                        list.add(new WindTowerCalculationData(DateUtil.parse(month + "-01 00:00:00"), equipmentId, ebIdMonth, maxWsValue));
+                        BigDecimal max = CalculationUtil.getBigDecimal(collect.stream().max(Comparator.comparing(x -> x.getWsMax().doubleValue())).get().getWsMax());
+                        if (max.doubleValue() < 60 && max.doubleValue() > 0) {
+                            list.add(new WindTowerCalculationData(DateUtil.parse(month + "-01 00:00:00"), equipmentId, ebIdMonth, max));
+                        }
                     });
 
                 } else {
@@ -927,9 +927,6 @@ public class WindDataCalculationServiceImpl implements WindDataCalculationServic
                 log.error("设备编号{}月最大风速计算错误:{}", equipmentId, e);
             }
         });
-        //获取所有层高
-        String[] height = windTowerInfo.getHeights().split(",");
-
 
         log.info("设备编号{}月最大风速计算完成^ ^", equipmentId);
         return list;
@@ -1206,7 +1203,7 @@ public class WindDataCalculationServiceImpl implements WindDataCalculationServic
                     List<ProphaseAnemometryData> forHeightAndWindDirectionEnum = CalculationUtil.getForHeightAndWindDirectionEnum(anemometryDataList, value);
                     if (!forHeightAndWindDirectionEnum.isEmpty()) {
                         //根据风向获取风能数
-                        BigDecimal bigDecimal = CalculationUtil.windEnergyDensity(forHeightAndWindDirectionEnum, prophaseWeatherDataMap);
+                        BigDecimal bigDecimal = CalculationUtil.windEnergyDensity(forHeightAndWindDirectionEnum, prophaseWeatherDataMap, prophaseWeatherDataList.size());
                         // 数据集合
                         WindDirectionStatisticsData windDirectionStatisticsData = new WindDirectionStatisticsData();
                         windDirectionStatisticsData.setEbId(ebIdMonth);
@@ -1368,7 +1365,7 @@ public class WindDataCalculationServiceImpl implements WindDataCalculationServic
         speedAndDensityDto.setWindSpeed(avgWindSpeed);
         Map<String, ProphaseWeatherData> prophaseWeatherDataMap = weatherData.stream().collect(Collectors.toMap(x -> x.getTs().getTime() + "", x -> x, (x1, x2) -> x1));
         if (null != prophaseWeatherDataMap) {
-            speedAndDensityDto.setWindPowerDensity(CalculationUtil.windEnergyDensity(anemometryData, prophaseWeatherDataMap));
+            speedAndDensityDto.setWindPowerDensity(CalculationUtil.windEnergyDensity(anemometryData, prophaseWeatherDataMap, weatherData.size()));
         } else {
             log.error("获取风况数据错误,未查询到环境数据,时间点:{}", anemometryData.get(0).getTs());
         }

+ 2 - 2
neim-biz/src/main/java/com/jiayue/biz/util/CalculationUtil.java

@@ -84,7 +84,7 @@ public class CalculationUtil {
      *
      * @return 风能密度
      */
-    public static BigDecimal windEnergyDensity(List<ProphaseAnemometryData> anemometryData, Map<String, ProphaseWeatherData> prophaseWeatherDataMap) {
+    public static BigDecimal windEnergyDensity(List<ProphaseAnemometryData> anemometryData, Map<String, ProphaseWeatherData> prophaseWeatherDataMap, int size) {
 
         BigDecimal density = new BigDecimal(-99);
         try {
@@ -97,7 +97,7 @@ public class CalculationUtil {
                         wpdSum = wpdSum.add(getWpdCalculate(getBigDecimal(prophaseWeatherData.getAirDensity()), getBigDecimal(anemometryDatum.getWsAve())));
                     }
                 }
-                density = wpdSum.divide(BigDecimal.valueOf(anemometryData.size()), 2, RoundingMode.HALF_UP);
+                density = wpdSum.divide(BigDecimal.valueOf(size), 2, RoundingMode.HALF_UP);
             }
         } catch (Exception e) {
             log.error("计算风风能密度时发生错误:{}", e);

+ 1 - 1
neim-ui/package.json

@@ -5,7 +5,7 @@
   "author": "jiayuepowertech",
   "license": "MIT",
   "scripts": {
-    "dev": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
+    "dev": "vue-cli-service serve",
     "build:prod": "vue-cli-service build",
     "build:stage": "vue-cli-service build --mode staging",
     "preview": "node build/index.js --preview",