瀏覽代碼

每日计算数据时 ,异常退出影响其它测风塔计算数据,添加try

wangt 1 年之前
父節點
當前提交
a4190c81e6

+ 10 - 10
TwoParameterWeibullProbabilityPlotOutput.txt

@@ -1,25 +1,25 @@
 Two Parameter Weibull Probability Plot
 
-Thursday, 16 November 2023, 14.41
+Monday, 22 January 2024, 9.36
 
 Unweighted constrained simplex regression
 
-Gradient:  1.014         s.e. 0.0072
-Intercept: -0.1007       s.e. 0.0459
+Gradient:  1.0123        s.e. 0.1434
+Intercept: -0.1064       s.e. 1.2217
 
-Correlation Coefficient, r: 0.9919
-Critical Value for r:       0.0352
+Correlation Coefficient, r: 0.9547
+Critical Value for r:       0.3365
 Significance level used:    5.0%
-Sum of squares:             159.8244
+Sum of squares:             2.3631
 
 Best Estimates of the Parameters
-sigma:  6.3335      'pseudo-linear' s.e. 0.0242
-gamma:  1.9796      'pseudo-linear' s.e. 0.0163
+sigma:  8.9982      'pseudo-linear' s.e. 0.2148
+gamma:  6.619       'pseudo-linear' s.e. 0.9988
 
 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.4669      
-gamma   0.4669      1.0         
+sigma   1.0         -0.1817     
+gamma   -0.1817     1.0         

+ 2 - 2
neim-biz/src/main/java/com/jiayue/biz/service/WindDataCalculationService.java

@@ -12,7 +12,7 @@ public interface WindDataCalculationService {
 
     ArrayList<WindTowerCalculationData> calcu(ArrayList<WindTowerCalculationData> dataList, Date startDate, Date endDate, String equipmentNo
             , List<ProphaseAnemometryData> prophaseAnemometryDataList, List<ProphaseWeatherData> prophaseWeatherDataList, Map<String, EquipmentAttribute> equipmentAttributeMap
-            , List<WindTowerCalculationData> windTowerCalculationDataList, WindTowerInfo windTowerInfo);
+            , List<WindTowerCalculationData> windTowerCalculationDataList, WindTowerInfo windTowerInfo) throws Exception;
 
     /**
      * 重算
@@ -59,5 +59,5 @@ public interface WindDataCalculationService {
      */
     ArrayList<WindTowerCalculationData> calcuForMonth(ArrayList<WindTowerCalculationData> dataList, String equipmentNo
             , List<ProphaseAnemometryData> prophaseAnemometryDataList, List<ProphaseWeatherData> prophaseWeatherDataList, Map<String, EquipmentAttribute> equipmentAttributeMap
-            , WindTowerInfo windTowerInfo);
+            , WindTowerInfo windTowerInfo) throws Exception;
 }

+ 29 - 20
neim-biz/src/main/java/com/jiayue/biz/service/impl/WindDataCalculationServiceImpl.java

@@ -57,7 +57,7 @@ public class WindDataCalculationServiceImpl implements WindDataCalculationServic
     @Override
     public ArrayList<WindTowerCalculationData> calcu(ArrayList<WindTowerCalculationData> dataList, Date startDate, Date endDate, String equipmentNo
             , List<ProphaseAnemometryData> prophaseAnemometryDataList, List<ProphaseWeatherData> prophaseWeatherDataList, Map<String, EquipmentAttribute> equipmentAttributeMap
-            , List<WindTowerCalculationData> windTowerCalculationDataList, WindTowerInfo windTowerInfo) {
+            , List<WindTowerCalculationData> windTowerCalculationDataList, WindTowerInfo windTowerInfo) throws Exception {
 
         //获取对应测风塔数据
         List<ProphaseAnemometryData> anemometryDataList = prophaseAnemometryDataList.stream().filter(p -> p.getTs().getTime() >= startDate.getTime()
@@ -253,22 +253,28 @@ public class WindDataCalculationServiceImpl implements WindDataCalculationServic
         prophaseAnemometryDataList = prophaseAnemometryDataList.stream().filter(p -> null != p.getWsSta() && p.getWsSta() >= 0).collect(Collectors.toList());
         Map<String, List<ProphaseAnemometryData>> collect = prophaseAnemometryDataList.stream().collect(Collectors.groupingBy(x -> DateTimeUtil.getFormatDateStrForMonth(x.getTs().getTime())));
         collect.forEach((month, value) -> {
+
             if (!value.isEmpty()) {
                 Map<String, List<ProphaseAnemometryData>> heightMap = value.stream()
                         .collect(Collectors.groupingBy(x -> x.getLayerHeight()));
                 heightMap.forEach((height, hvalue) -> {
-                    if (!hvalue.isEmpty()) {
-                        EquipmentAttribute equipmentAttribute = equipmentAttributeMap.get(height + "staMonth");
-                        BigDecimal sumSta = CalculationUtil.getBigDecimal(hvalue.stream().mapToDouble(ProphaseAnemometryData::getWsSta).sum());
-                        BigDecimal valueAvgSta = sumSta.divide(new BigDecimal(collect.size()), 2, RoundingMode.HALF_UP);
-                        windTowerCalculationDataList.add(new WindTowerCalculationData(DateUtil.parse(month + "-01 00:00:00"), equipmentId, equipmentAttribute.getId(), valueAvgSta));
-                    } else {
-                        log.warn("设备:{} 层高:{} 计算月平均风速标差 的数据为空", equipmentId, height);
+                    try {
+                        if (!hvalue.isEmpty()) {
+                            EquipmentAttribute equipmentAttribute = equipmentAttributeMap.get(height + "staMonth");
+                            BigDecimal sumSta = CalculationUtil.getBigDecimal(hvalue.stream().mapToDouble(ProphaseAnemometryData::getWsSta).sum());
+                            BigDecimal valueAvgSta = sumSta.divide(new BigDecimal(collect.size()), 2, RoundingMode.HALF_UP);
+                            windTowerCalculationDataList.add(new WindTowerCalculationData(DateUtil.parse(month + "-01 00:00:00"), equipmentId, equipmentAttribute.getId(), valueAvgSta));
+                        } else {
+                            log.warn("设备:{} 层高:{} 计算月平均风速标差 的数据为空", equipmentId, height);
+                        }
+                    } catch (Exception e) {
+                        log.error("设备:{} 层高:{} 计算月平均风速标差 错误:{}", equipmentId, height, e);
                     }
                 });
             } else {
                 log.warn("设备:{} 月份:{} 计算月平均风速标差 的数据为空", equipmentId, month);
             }
+
         });
 
         return windTowerCalculationDataList;
@@ -612,8 +618,7 @@ public class WindDataCalculationServiceImpl implements WindDataCalculationServic
     /**
      * 计算上一个小时 每10分钟的风切变指数
      */
-    public ArrayList<WindTowerCalculationData> calculateWindPowerShear(String
-                                                                               equipmentId
+    public ArrayList<WindTowerCalculationData> calculateWindPowerShear(String equipmentId
             , List<ProphaseAnemometryData> prophaseAnemometryDataList
             , Map<String, EquipmentAttribute> equipmentAttributeMap, WindTowerInfo windTowerInfo) {
         log.info("开始计算小时风切变指数");
@@ -661,18 +666,22 @@ public class WindDataCalculationServiceImpl implements WindDataCalculationServic
         String maxHeight = CalculationUtil.getNumberFromString(Arrays.asList(windTowerInfo.getHeights().split(",")).get(0));
 
         proAnemomentryDataDayMap.forEach((day, value) -> {
-            BigDecimal batterySum = value.stream().filter(p -> p.getLayerHeight().equals(maxHeight)).map(p -> CalculationUtil.getBattery(BigDecimal.valueOf(p.getWsAve()))).reduce(BigDecimal.ZERO, BigDecimal::add);
+            try {
+                BigDecimal batterySum = value.stream().filter(p -> p.getLayerHeight().equals(maxHeight)).map(p -> CalculationUtil.getBattery(BigDecimal.valueOf(p.getWsAve()))).reduce(BigDecimal.ZERO, BigDecimal::add);
 
-            //日发电量
-            if (batterySum.compareTo(BigDecimal.ZERO) != 0) {
-                batterySum = batterySum.divide(BigDecimal.valueOf(6 * 1000), 2, RoundingMode.HALF_UP);
+                //日发电量
+                if (batterySum.compareTo(BigDecimal.ZERO) != 0) {
+                    batterySum = batterySum.divide(BigDecimal.valueOf(6 * 1000), 2, RoundingMode.HALF_UP);
 
-                WindTowerCalculationData windTowerCalculationData = new WindTowerCalculationData();
-                windTowerCalculationData.setValue(batterySum);
-                windTowerCalculationData.setEbId(batteryDay.getId());
-                windTowerCalculationData.setTime(DateUtil.beginOfDay(DateUtil.parse(day)));
-                windTowerCalculationData.setEquipmentId(windTowerInfo.getEquipmentNo());
-                batteryList.add(windTowerCalculationData);
+                    WindTowerCalculationData windTowerCalculationData = new WindTowerCalculationData();
+                    windTowerCalculationData.setValue(batterySum);
+                    windTowerCalculationData.setEbId(batteryDay.getId());
+                    windTowerCalculationData.setTime(DateUtil.beginOfDay(DateUtil.parse(day)));
+                    windTowerCalculationData.setEquipmentId(windTowerInfo.getEquipmentNo());
+                    batteryList.add(windTowerCalculationData);
+                }
+            } catch (Exception e) {
+                log.error("计算日发电量与满发小时数 错误:{}", e);
             }
         });
         return batteryList;

+ 3 - 3
neim-biz/src/main/resources/application-dev.yml

@@ -12,9 +12,9 @@ spring:
       primary: mysql #设置默认的数据源或者数据源组,默认值即为master
       datasource:
         mysql:
-          url: jdbc:mysql://192.168.10.73:3306/neim_db?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true
+          url: jdbc:mysql://192.168.1.48:3306/nerp_db_v2?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true
           username: root
-          password: 'poi123.mnb'
+          password: '123456'
           driver-class-name: com.mysql.cj.jdbc.Driver
           type: com.alibaba.druid.pool.DruidDataSource
           druid:
@@ -75,7 +75,7 @@ spring:
     #host: 168.178.8.2
     # 端口,默认为6379
     port: 6379
-#    port: 17137
+    #    port: 17137
     # 数据库索引
     database: 0
     # 密码

+ 0 - 8
neim-system/neim-system.iml

@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module version="4">
-  <component name="FacetManager">
-    <facet type="Spring" name="Spring">
-      <configuration />
-    </facet>
-  </component>
-</module>