|
@@ -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) {
|