|
@@ -84,7 +84,7 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
*/
|
|
|
public ArrayList<WindTowerCalculationData> calculateWindPowerDensity(Long startTime, Long endTime, String eqNo, List<ProphaseAnemometryData> prophaseAnemometryDataList, List<ProphaseWeatherData> prophaseWeatherDataList, List<EquipmentAttribute> equipmentAttributeList, List<WindTowerCalculationData> windTowerCalculationDataList) {
|
|
|
//获取对应测风塔数据
|
|
|
- List<ProphaseAnemometryData> anemometryDataList = prophaseAnemometryDataList.stream().filter(p -> p.getTs().getTime() >= startTime && p.getTs().getTime() <= endTime && null == p.getWsAve() && p.getWsAve() != -99).collect(Collectors.toList());
|
|
|
+ List<ProphaseAnemometryData> anemometryDataList = prophaseAnemometryDataList.stream().filter(p -> p.getTs().getTime() >= startTime && p.getTs().getTime() <= endTime && null != p.getWsAve() && p.getWsAve() != -99).collect(Collectors.toList());
|
|
|
List<ProphaseWeatherData> weatherDataList = prophaseWeatherDataList.stream().filter(p -> p.getTs().getTime() >= startTime && p.getTs().getTime() <= endTime && p.getAirDensity() != null && p.getAirDensity() >= 0).collect(Collectors.toList());
|
|
|
long hour = 3600000L;
|
|
|
List<WindTowerInfo> windTowerInfos = windTowerInfoService.lambdaQuery().eq(WindTowerInfo::getEquipmentNo, eqNo).list();
|
|
@@ -1471,7 +1471,7 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
for (long start1 = startHour; start1 < endHour; start1 = start1 + dayTime) {
|
|
|
long finalStart = start1;
|
|
|
List<ProphaseAnemometryData> anemometryDataList = prophaseAnemometryDataList.stream().filter(p -> p.getTs().getTime() >= finalStart && p.getTs().getTime() < finalStart + dayTime &&
|
|
|
- p.getLayerHeight().equals(h) && (p.getWsAve()==null?0:p.getWsAve()) > 14.5 && p.getWsAve() <= 15.5).collect(Collectors.toList());
|
|
|
+ p.getLayerHeight().equals(h) && (p.getWsAve() == null ? 0 : p.getWsAve()) > 14.5 && p.getWsAve() <= 15.5).collect(Collectors.toList());
|
|
|
|
|
|
if (anemometryDataList.size() > 0) {
|
|
|
BigDecimal wsAve = anemometryDataList.stream().map(p -> {
|
|
@@ -1580,26 +1580,26 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
for (String h : heights) {
|
|
|
//获取对应层高的属性
|
|
|
List<EquipmentAttribute> equipmentAttributes = equipmentAttributeList.stream().filter(w -> w.getFieldName().equals(h + "staDay")).collect(Collectors.toList());
|
|
|
- if(null != equipmentAttributes && equipmentAttributes.size()>0) {
|
|
|
- //删除数据
|
|
|
- removeByStartTimeBetweenAndEquipmentIdAndEbId(startTime, endTime, equipmentId, equipmentAttributes.get(0).getId());
|
|
|
- //每天循环
|
|
|
- for (long time = startHour; time < endHour; time = time + Hour) {
|
|
|
- long startDate = time;
|
|
|
- //过滤一天的数据
|
|
|
- List<ProphaseAnemometryData> collect = prophaseAnemometryDataList.stream().filter(p -> p.getTs().getTime() >= startDate && p.getTs().getTime() < startDate + Hour && p.getLayerHeight().equals(h)).collect(Collectors.toList());
|
|
|
- BigDecimal staSum = CalculationUtil.getBigDecimal(collect.stream().filter(c -> c.getWsSta() != null && c.getWsSta() != 0).mapToDouble(ProphaseAnemometryData::getWsSta).sum());
|
|
|
- if (collect.size() > 0) {
|
|
|
- WindTowerCalculationData windTowerCalculationData = new WindTowerCalculationData();
|
|
|
- windTowerCalculationData.setEquipmentId(equipmentId);
|
|
|
- windTowerCalculationData.setTime(new Date(startDate));
|
|
|
- windTowerCalculationData.setValue(staSum.divide(CalculationUtil.getBigDecimal(collect.size()), 2, RoundingMode.HALF_UP));
|
|
|
- windTowerCalculationData.setEbId(equipmentAttributes.get(0).getId());
|
|
|
- windTowerCalculationDataList.add(windTowerCalculationData);
|
|
|
- dataList.add(windTowerCalculationData);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ if (null != equipmentAttributes && equipmentAttributes.size() > 0) {
|
|
|
+ //删除数据
|
|
|
+ removeByStartTimeBetweenAndEquipmentIdAndEbId(startTime, endTime, equipmentId, equipmentAttributes.get(0).getId());
|
|
|
+ //每天循环
|
|
|
+ for (long time = startHour; time < endHour; time = time + Hour) {
|
|
|
+ long startDate = time;
|
|
|
+ //过滤一天的数据
|
|
|
+ List<ProphaseAnemometryData> collect = prophaseAnemometryDataList.stream().filter(p -> p.getTs().getTime() >= startDate && p.getTs().getTime() < startDate + Hour && p.getLayerHeight().equals(h)).collect(Collectors.toList());
|
|
|
+ BigDecimal staSum = CalculationUtil.getBigDecimal(collect.stream().filter(c -> c.getWsSta() != null && c.getWsSta() != 0).mapToDouble(ProphaseAnemometryData::getWsSta).sum());
|
|
|
+ if (collect.size() > 0) {
|
|
|
+ WindTowerCalculationData windTowerCalculationData = new WindTowerCalculationData();
|
|
|
+ windTowerCalculationData.setEquipmentId(equipmentId);
|
|
|
+ windTowerCalculationData.setTime(new Date(startDate));
|
|
|
+ windTowerCalculationData.setValue(staSum.divide(CalculationUtil.getBigDecimal(collect.size()), 2, RoundingMode.HALF_UP));
|
|
|
+ windTowerCalculationData.setEbId(equipmentAttributes.get(0).getId());
|
|
|
+ windTowerCalculationDataList.add(windTowerCalculationData);
|
|
|
+ dataList.add(windTowerCalculationData);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
log.error("设备编号{}日平均风速标差计算失败^ ^", equipmentId);
|
|
@@ -1634,8 +1634,8 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
List<EquipmentAttribute> turList = equipmentAttributeList.stream().filter(equipmentAttribute -> equipmentAttribute.getFieldName().equals(h + turbulenceDay)).collect(Collectors.toList());
|
|
|
List<EquipmentAttribute> staList = equipmentAttributeList.stream().filter(equipmentAttribute -> equipmentAttribute.getFieldName().equals(h + staDay)).collect(Collectors.toList());
|
|
|
List<EquipmentAttribute> wsList = equipmentAttributeList.stream().filter(equipmentAttribute -> equipmentAttribute.getFieldName().equals(h + "awsDay")).collect(Collectors.toList());
|
|
|
- if(null == turList || null == staList|| null == wsList|| turList.size()==0 ||staList.size()==0 ||wsList.size()==0 ){
|
|
|
- log.info("计算评价湍流数据异常:staList:{},wsList:{},:turList:{}",staList,wsList,turList);
|
|
|
+ if (null == turList || null == staList || null == wsList || turList.size() == 0 || staList.size() == 0 || wsList.size() == 0) {
|
|
|
+ log.info("计算评价湍流数据异常:staList:{},wsList:{},:turList:{}", staList, wsList, turList);
|
|
|
continue;
|
|
|
}
|
|
|
|
|
@@ -2302,7 +2302,7 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
//计算标差
|
|
|
for (String height : heights) {
|
|
|
List<EquipmentAttribute> equipmentAttributeList1 = equipmentAttributeList.stream().filter(e -> e.getFieldName().equals(height + "staMonth")).collect(Collectors.toList());
|
|
|
- if (!collect.isEmpty() && null != equipmentAttributeList1 && equipmentAttributeList1.size()>0) {
|
|
|
+ if (!collect.isEmpty() && null != equipmentAttributeList1 && equipmentAttributeList1.size() > 0) {
|
|
|
BigDecimal sumSta = CalculationUtil.getBigDecimal(collect.stream().filter(c -> c.getWsSta() != null && c.getLayerHeight().equals(height)).mapToDouble(ProphaseAnemometryData::getWsSta).sum());
|
|
|
WindTowerCalculationData windTowerCalculationData = new WindTowerCalculationData();
|
|
|
windTowerCalculationData.setEbId(equipmentAttributeList1.get(0).getId());
|