|
@@ -1,7 +1,6 @@
|
|
|
package com.jiayue.biz.service.impl;
|
|
|
|
|
|
import cn.hutool.core.convert.Convert;
|
|
|
-import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.jiayue.biz.conf.RequestDataHelper;
|
|
@@ -12,15 +11,12 @@ import com.jiayue.biz.service.EquipmentAttributeService;
|
|
|
import com.jiayue.biz.service.WindTowerCalculationDataService;
|
|
|
import com.jiayue.biz.service.WindTowerInfoService;
|
|
|
import com.jiayue.biz.util.CalculationUtil;
|
|
|
-import com.jiayue.biz.util.DateMomentUtil;
|
|
|
import com.jiayue.biz.util.DateTimeUtil;
|
|
|
import com.jiayue.biz.util.SEDateUtil;
|
|
|
import com.jiayue.common.utils.DateUtil;
|
|
|
import flanagan.analysis.ProbabilityPlot;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
-import org.apache.commons.lang3.time.DateUtils;
|
|
|
-import org.apache.ibatis.annotations.Param;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
@@ -30,7 +26,6 @@ import java.text.ParseException;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
-import java.util.stream.DoubleStream;
|
|
|
|
|
|
/**
|
|
|
* 统计数据实现类
|
|
@@ -52,6 +47,12 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
private final String wsMonthFunction = "wsMonth";
|
|
|
private final String wpdFunction = "WindPowerDensity";
|
|
|
private final String wsMaxMonthFunction = "maxWsMonth";
|
|
|
+ private final String turbulenceDay = "turbulenceDay";
|
|
|
+ private final String staDay = "staDay";
|
|
|
+
|
|
|
+ private final String windShearFiledName = "windShear";
|
|
|
+ private final String windShearDayFiledName = "windShearDay";
|
|
|
+
|
|
|
//风切变计算指数
|
|
|
private final BigDecimal lg30 = new BigDecimal("0.47712125471966244");//lg(30/10)
|
|
|
private final BigDecimal lg50 = new BigDecimal("0.6989700043360189");//lg(50/10)
|
|
@@ -78,7 +79,7 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
/**
|
|
|
* 风功率密度和平均风速计算方法
|
|
|
*/
|
|
|
- public void calculateWindPowerDensity(Long startTime, Long endTime, String eqNo, List<ProphaseAnemometryData> prophaseAnemometryDataList, List<ProphaseWeatherData> prophaseWeatherDataList, List<EquipmentAttribute> equipmentAttributeList, List<WindTowerCalculationData> windTowerCalculationDataList) {
|
|
|
+ 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).collect(Collectors.toList());
|
|
|
List<ProphaseWeatherData> weatherDataList = prophaseWeatherDataList.stream().filter(p -> p.getTs().getTime() >= startTime && p.getTs().getTime() <= endTime).collect(Collectors.toList());
|
|
@@ -86,7 +87,7 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
List<WindTowerInfo> windTowerInfos = windTowerInfoService.lambdaQuery().eq(WindTowerInfo::getEquipmentNo, eqNo).list();
|
|
|
String[] height = windTowerInfos.get(0).getHeights().split(",");
|
|
|
//定义数据空集合用来装载 结果数据
|
|
|
- List<WindTowerCalculationData> list = new ArrayList<>();
|
|
|
+ ArrayList<WindTowerCalculationData> list = new ArrayList<>();
|
|
|
try {
|
|
|
//遍历出过滤出的平均风速属性
|
|
|
for (String h : height) {
|
|
@@ -143,8 +144,11 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
//保存
|
|
|
- saveBatchByEquipmentId(list, eqNo);
|
|
|
- log.info("平均风速和风功率密度成功^ ^");
|
|
|
+// saveBatchByEquipmentId(list, eqNo);
|
|
|
+ if (list.size() > 0) {
|
|
|
+ log.info("平均风速和风功率密度成功^ ^");
|
|
|
+ }
|
|
|
+ return list;
|
|
|
}
|
|
|
|
|
|
|
|
@@ -1058,65 +1062,53 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
ArrayList<Object> list1 = new ArrayList<>();
|
|
|
List<String> heightSort = new ArrayList<>();
|
|
|
List<WindTowerInfo> windTowerInfos = windTowerInfoService.lambdaQuery().eq(WindTowerInfo::getEquipmentNo, eqId).list();
|
|
|
- if (height == null || height.equals("")) {
|
|
|
- for (WindTowerInfo windTowerInfo : windTowerInfos) {
|
|
|
- height = windTowerInfo.getHeights();
|
|
|
- }
|
|
|
- }
|
|
|
- String[] heightAll = height.split(",");
|
|
|
- for (String s : heightAll) {
|
|
|
- heightSort.add(s);
|
|
|
- }
|
|
|
//给前端用的日期格式
|
|
|
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM");
|
|
|
|
|
|
//获取统计属性表
|
|
|
- List<EquipmentAttribute> equipmentAttributeList = equipmentAttributeService.lambdaQuery().eq(EquipmentAttribute::getAttributeFunction, "shear").list();
|
|
|
+ List<EquipmentAttribute> shearDayFieldNameList = equipmentAttributeService.lambdaQuery().eq(EquipmentAttribute::getFieldName, "windShearMonth").list();
|
|
|
//获取统计数据表
|
|
|
- List<WindTowerCalculationData> windTowerCalculationDataList = getByBetweenTimeAndEquipmentId(new Date(startTime), new Date(endTime), eqId).stream().sorted(Comparator.comparing(WindTowerCalculationData::getTime)).collect(Collectors.toList());
|
|
|
- ;
|
|
|
+ List<WindTowerCalculationData> windTowerCalculationDataList = getByBetweenTimeAndEquipmentId(new Date(startTime), new Date(endTime), eqId).stream().sorted(Comparator.comparing(WindTowerCalculationData::getTime)).collect(Collectors.toList());;
|
|
|
// 根据开始时间、结束时间分割的月份
|
|
|
List<Long> timeList = DateTimeUtil.getIntervalTimeByMonth(new Date(startTime), new Date(endTime));
|
|
|
- for (String h : heightSort) {
|
|
|
- String shearMonthFieldName = h + "shearMonth";
|
|
|
- //存放数据
|
|
|
- List<EquipmentAttribute> shearDayFieldNameList = equipmentAttributeList.stream().filter(w -> w.getFieldName().equals(shearMonthFieldName)).collect(Collectors.toList());
|
|
|
- if (!shearDayFieldNameList.isEmpty()) {
|
|
|
- String shearDayEbId = shearDayFieldNameList.get(0).getId();
|
|
|
- //平均风速集合
|
|
|
- List<WindTowerCalculationData> shearMonthList = new ArrayList<>();
|
|
|
|
|
|
- List<WindTowerCalculationData> filterList = windTowerCalculationDataList.stream().filter(w -> w.getEbId().equals(shearDayEbId)).collect(Collectors.toList());
|
|
|
- BigDecimal shearAve = BigDecimal.ZERO;
|
|
|
- ArrayList<Object> list = new ArrayList<>();
|
|
|
- for (long time : timeList) {
|
|
|
- shearMonthList = filterList.stream().filter(w -> w.getTime().compareTo(new Date(time)) == 0).collect(Collectors.toList());
|
|
|
- HashMap<Object, Object> map = new HashMap<>();
|
|
|
- String format = sdf1.format(time);
|
|
|
- BigDecimal value = BigDecimal.ZERO;
|
|
|
- if (!shearMonthList.isEmpty()) {
|
|
|
- value = shearMonthList.get(0).getValue();
|
|
|
- }
|
|
|
- map.put("shear", value);
|
|
|
- map.put("time", format);
|
|
|
- list.add(map);
|
|
|
- }
|
|
|
- // 曲线
|
|
|
- HashMap<Object, Object> finalMap = new HashMap<>();
|
|
|
- finalMap.put("height", h);
|
|
|
- finalMap.put("arr", list);
|
|
|
- arrList.add(finalMap);
|
|
|
- //平均值
|
|
|
- List<BigDecimal> aveWsList = filterList.stream().map(WindTowerCalculationData::getValue).collect(Collectors.toList());
|
|
|
- if (!aveWsList.isEmpty()) {
|
|
|
- shearAve = aveWsList.stream().reduce(BigDecimal.ZERO, BigDecimal::add).divide(BigDecimal.valueOf(aveWsList.size()), 2, RoundingMode.HALF_UP);
|
|
|
+ //存放数据
|
|
|
+ if (!shearDayFieldNameList.isEmpty()) {
|
|
|
+ String shearDayEbId = shearDayFieldNameList.get(0).getId();
|
|
|
+ //风切变集合
|
|
|
+ List<WindTowerCalculationData> shearMonthList = new ArrayList<>();
|
|
|
+
|
|
|
+ List<WindTowerCalculationData> filterList = windTowerCalculationDataList.stream().filter(w -> w.getEbId().equals(shearDayEbId)).collect(Collectors.toList());
|
|
|
+ BigDecimal shearAve = BigDecimal.ZERO;
|
|
|
+ ArrayList<Object> list = new ArrayList<>();
|
|
|
+ for (long time : timeList) {
|
|
|
+ shearMonthList = filterList.stream().filter(w -> w.getTime().compareTo(new Date(time)) == 0).collect(Collectors.toList());
|
|
|
+ HashMap<Object, Object> map = new HashMap<>();
|
|
|
+ String format = sdf1.format(time);
|
|
|
+ BigDecimal value = BigDecimal.ZERO;
|
|
|
+ if (!shearMonthList.isEmpty()) {
|
|
|
+ value = shearMonthList.get(0).getValue();
|
|
|
}
|
|
|
- HashMap<Object, Object> finalAveMap = new HashMap<>();
|
|
|
- finalAveMap.put("height", h);
|
|
|
- finalAveMap.put("shearAve", shearAve);
|
|
|
- list1.add(finalAveMap);
|
|
|
+ map.put("shear", value);
|
|
|
+ map.put("time", format);
|
|
|
+ list.add(map);
|
|
|
}
|
|
|
+ // 曲线
|
|
|
+ HashMap<Object, Object> finalMap = new HashMap<>();
|
|
|
+ finalMap.put("height", "综合风切变");
|
|
|
+ finalMap.put("arr", list);
|
|
|
+ arrList.add(finalMap);
|
|
|
+ //平均值
|
|
|
+ List<BigDecimal> aveWsList = filterList.stream().map(WindTowerCalculationData::getValue).collect(Collectors.toList());
|
|
|
+ if (!aveWsList.isEmpty()) {
|
|
|
+ shearAve = aveWsList.stream().reduce(BigDecimal.ZERO, BigDecimal::add).divide(BigDecimal.valueOf(aveWsList.size()), 2, RoundingMode.HALF_UP);
|
|
|
+ }
|
|
|
+ HashMap<Object, Object> finalAveMap = new HashMap<>();
|
|
|
+ finalAveMap.put("height", "综合风切变");
|
|
|
+ finalAveMap.put("shearAve", shearAve);
|
|
|
+ list1.add(finalAveMap);
|
|
|
}
|
|
|
+
|
|
|
onlyData.add(arrList);
|
|
|
onlyData.add(list1);
|
|
|
|
|
@@ -1131,8 +1123,9 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
* @param startTime 开始时间
|
|
|
* @param endTime 结束时间
|
|
|
* @param equipmentId 设备ID
|
|
|
+ * @return
|
|
|
*/
|
|
|
- public void airDensityDay(Date startTime, Date endTime, String equipmentId, List<ProphaseWeatherData> prophaseWeatherDataList, List<EquipmentAttribute> equipmentAttributeList, List<WindTowerCalculationData> windTowerCalculationDataList) {
|
|
|
+ public ArrayList<WindTowerCalculationData> airDensityDay(Date startTime, Date endTime, String equipmentId, List<ProphaseWeatherData> prophaseWeatherDataList, List<EquipmentAttribute> equipmentAttributeList, List<WindTowerCalculationData> windTowerCalculationDataList) {
|
|
|
|
|
|
long startHour = startTime.getTime();
|
|
|
long endHour = endTime.getTime();
|
|
@@ -1161,8 +1154,6 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
windTowerCalculationData.setEquipmentId(equipmentId);
|
|
|
windTowerCalculationDataList.add(windTowerCalculationData);
|
|
|
list.add(windTowerCalculationData);
|
|
|
- } else {
|
|
|
- log.info("计算日平均空气密度缺少数据,无法计算");
|
|
|
}
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
@@ -1170,9 +1161,9 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
|
|
|
- saveBatchByEquipmentId(list, equipmentId);
|
|
|
+// saveBatchByEquipmentId(list, equipmentId);
|
|
|
log.info("计算日平均空气密度完成");
|
|
|
-
|
|
|
+ return list;
|
|
|
}
|
|
|
|
|
|
|
|
@@ -1182,8 +1173,9 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
* @param startTime 开始时间
|
|
|
* @param endTime 结束时间
|
|
|
* @param equipmentId 设备id
|
|
|
+ * @return
|
|
|
*/
|
|
|
- public void wsMaxMonth(Date startTime, Date endTime, String equipmentId, List<ProphaseAnemometryData> prophaseAnemometryDataList, List<EquipmentAttribute> equipmentAttributeList, List<WindTowerInfo> windTowerInfoList) {
|
|
|
+ public ArrayList<WindTowerCalculationData> wsMaxMonth(Date startTime, Date endTime, String equipmentId, List<ProphaseAnemometryData> prophaseAnemometryDataList, List<EquipmentAttribute> equipmentAttributeList, List<WindTowerInfo> windTowerInfoList) {
|
|
|
|
|
|
//获取时间段所有统计数据
|
|
|
// List<Map<String, Object>> collects = mapList.stream().filter(w -> Long.parseLong(w.get("time").toString()) >= startTime.getTime()
|
|
@@ -1215,8 +1207,9 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
} catch (Exception e) {
|
|
|
log.error("设备编号{}月最大风速计算失败^ ^", equipmentId);
|
|
|
}
|
|
|
- saveBatchByEquipmentId(list, equipmentId);
|
|
|
+// saveBatchByEquipmentId(list, equipmentId);
|
|
|
log.info("设备编号{}月最大风速计算成功^ ^", equipmentId);
|
|
|
+ return list;
|
|
|
}
|
|
|
|
|
|
|
|
@@ -1226,8 +1219,10 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
* @param startTime 开始时间
|
|
|
* @param endTime 结束时间
|
|
|
* @param equipmentId 设备ID
|
|
|
+ * @return
|
|
|
*/
|
|
|
- public void airDensityMonth(Date startTime, Date endTime, String equipmentId, List<WindTowerCalculationData> windTowerCalculationDataList, List<EquipmentAttribute> equipmentAttributeList) {
|
|
|
+ public ArrayList<WindTowerCalculationData> airDensityMonth(Date startTime, Date endTime, String equipmentId, List<WindTowerCalculationData> windTowerCalculationDataList, List<EquipmentAttribute> equipmentAttributeList) {
|
|
|
+ ArrayList<WindTowerCalculationData> list = new ArrayList<>();
|
|
|
//时间-1防止0点数据查不到
|
|
|
Date startHour = new Date(startTime.getTime() - 1);
|
|
|
//获取时间段所有统计数据
|
|
@@ -1255,7 +1250,8 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
windTowerCalculationData.setTime(startTime);
|
|
|
windTowerCalculationData.setValue(airDensityMonth.divide(new BigDecimal(windCalDataList.size()), 2, RoundingMode.HALF_UP));
|
|
|
windTowerCalculationData.setEquipmentId(equipmentId);
|
|
|
- saveByEquipmentId(windTowerCalculationData, equipmentId);
|
|
|
+ list.add(windTowerCalculationData);
|
|
|
+// saveByEquipmentId(windTowerCalculationData, equipmentId);
|
|
|
log.info("计算月平均空气密度完成");
|
|
|
} else {
|
|
|
log.info("月平均空气密度缺少数据,无法计算");
|
|
@@ -1264,7 +1260,7 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
log.error("计算月平均空气密度失败");
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
-
|
|
|
+ return list;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -1273,9 +1269,9 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
* @param startTime 开始时间
|
|
|
* @param endTime 结束时间
|
|
|
* @param equipmentId 设备id
|
|
|
+ * @return
|
|
|
*/
|
|
|
- @Transactional
|
|
|
- public void wsDay(Date startTime, Date endTime, String equipmentId, List<WindTowerCalculationData> windTowerCalculationDataList, List<EquipmentAttribute> equipmentAttributeList, List<WindTowerInfo> windTowerInfoList) {
|
|
|
+ public ArrayList<WindTowerCalculationData> wsDay(Date startTime, Date endTime, String equipmentId, List<WindTowerCalculationData> windTowerCalculationDataList, List<EquipmentAttribute> equipmentAttributeList, List<WindTowerInfo> windTowerInfoList) {
|
|
|
long startHour = startTime.getTime();
|
|
|
long endHour = endTime.getTime();
|
|
|
Long dayTime = 86400000L;
|
|
@@ -1305,7 +1301,6 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
w.getEbId().equals(awsList.get(0).getId()))
|
|
|
.collect(Collectors.toList()
|
|
|
);
|
|
|
-
|
|
|
//小时风功率总值
|
|
|
BigDecimal awsSum = BigDecimal.ZERO;
|
|
|
for (WindTowerCalculationData ws : wsCalDataList) {
|
|
@@ -1331,8 +1326,9 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
|
|
|
- saveBatchByEquipmentId(list, equipmentId);
|
|
|
+// saveBatchByEquipmentId(list, equipmentId);
|
|
|
log.info("设备编号{}米层高日平均风速计算成功^ ^", equipmentId);
|
|
|
+ return list;
|
|
|
}
|
|
|
|
|
|
|
|
@@ -1342,9 +1338,9 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
* @param startTime 开始时间
|
|
|
* @param endTime 结束时间
|
|
|
* @param equipmentId 设备编号
|
|
|
+ * @return
|
|
|
*/
|
|
|
- @Transactional
|
|
|
- public void wsMonth(Date startTime, Date endTime, String equipmentId, List<WindTowerCalculationData> windTowerCalculationDataList, List<EquipmentAttribute> equipmentAttributeList, List<WindTowerInfo> windTowerInfoList) {
|
|
|
+ public ArrayList<WindTowerCalculationData> wsMonth(Date startTime, Date endTime, String equipmentId, List<WindTowerCalculationData> windTowerCalculationDataList, List<EquipmentAttribute> equipmentAttributeList, List<WindTowerInfo> windTowerInfoList) {
|
|
|
//时间-1防止0点数据查不到
|
|
|
Date startHour = new Date(startTime.getTime() - 1);
|
|
|
//获取时间段所有统计数据
|
|
@@ -1385,8 +1381,9 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
log.error("设备编号{}月平均风速计算失败^ ^", equipmentId);
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
- saveBatchByEquipmentId(list, equipmentId);
|
|
|
+// saveBatchByEquipmentId(list, equipmentId);
|
|
|
log.info("{}设备月平均风速统计完成", equipmentId);
|
|
|
+ return list;
|
|
|
|
|
|
}
|
|
|
|
|
@@ -1396,9 +1393,9 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
* @param startTime 开始时间
|
|
|
* @param endTime 结束时间
|
|
|
* @param equipmentId 设备id
|
|
|
+ * @return
|
|
|
*/
|
|
|
- @Transactional
|
|
|
- public void wpdDay(Date startTime, Date endTime, String equipmentId, List<WindTowerCalculationData> windTowerCalculationDataList, List<EquipmentAttribute> equipmentAttributeList, List<WindTowerInfo> windTowerInfoList) {
|
|
|
+ public ArrayList<WindTowerCalculationData> wpdDay(Date startTime, Date endTime, String equipmentId, List<WindTowerCalculationData> windTowerCalculationDataList, List<EquipmentAttribute> equipmentAttributeList, List<WindTowerInfo> windTowerInfoList) {
|
|
|
long startHour = startTime.getTime();
|
|
|
long endHour = endTime.getTime();
|
|
|
long dayTime = 86400000L;
|
|
@@ -1447,8 +1444,9 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
log.error("设备编号{}日平均风功率计算失败^ ^", equipmentId);
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
- saveBatchByEquipmentId(list, equipmentId);
|
|
|
+// saveBatchByEquipmentId(list, equipmentId);
|
|
|
log.info("设备编号{}日平均风功率计算成功^ ^", equipmentId);
|
|
|
+ return list;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -1457,9 +1455,10 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
* @param startTime 开始时间
|
|
|
* @param endTime 结束时间
|
|
|
* @param equipmentId 设备id
|
|
|
+ * @return
|
|
|
*/
|
|
|
@Transactional
|
|
|
- public void wpdMonth(Date startTime, Date endTime, String equipmentId, List<WindTowerCalculationData> windTowerCalculationDataList, List<EquipmentAttribute> equipmentAttributeList, List<WindTowerInfo> windTowerInfoList) {
|
|
|
+ public ArrayList<WindTowerCalculationData> wpdMonth(Date startTime, Date endTime, String equipmentId, List<WindTowerCalculationData> windTowerCalculationDataList, List<EquipmentAttribute> equipmentAttributeList, List<WindTowerInfo> windTowerInfoList) {
|
|
|
//时间-1防止0点数据查不到
|
|
|
Date startHour = new Date(startTime.getTime() - 1);
|
|
|
//获取时间段所有统计数据
|
|
@@ -1501,8 +1500,9 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
log.error("设备编号{}月平均风功率计算失败^ ^", equipmentId);
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
- saveBatchByEquipmentId(list, equipmentId);
|
|
|
+// saveBatchByEquipmentId(list, equipmentId);
|
|
|
log.info("设备编号{}高月平均风功率计算成功^ ^", equipmentId);
|
|
|
+ return list;
|
|
|
}
|
|
|
|
|
|
|
|
@@ -1514,8 +1514,9 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
* @param equipmentId 测风塔编号
|
|
|
* @param equipmentAttributeList 属性表
|
|
|
* @param windTowerInfoList 测风塔数据
|
|
|
+ * @return
|
|
|
*/
|
|
|
- public void calculateStaDay(Date startTime, Date endTime, String equipmentId, List<ProphaseAnemometryData> prophaseAnemometryDataList, List<EquipmentAttribute> equipmentAttributeList, List<WindTowerInfo> windTowerInfoList) {
|
|
|
+ public ArrayList<WindTowerCalculationData> calculateStaDay(Date startTime, Date endTime, String equipmentId, List<ProphaseAnemometryData> prophaseAnemometryDataList, List<EquipmentAttribute> equipmentAttributeList, List<WindTowerInfo> windTowerInfoList, List<WindTowerCalculationData> windTowerCalculationDataList) {
|
|
|
ArrayList<WindTowerCalculationData> dataList = new ArrayList<>();
|
|
|
long startHour = startTime.getTime();
|
|
|
long endHour = endTime.getTime();
|
|
@@ -1539,9 +1540,8 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
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);
|
|
|
- } else {
|
|
|
- log.info("设备编号{},{}米缺少风速标差数据,无法计算", equipmentId, h);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1549,8 +1549,10 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
log.error("设备编号{}日平均风速标差计算失败^ ^", equipmentId);
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
- saveBatch(dataList);
|
|
|
+// saveBatchByEquipmentId(dataList);
|
|
|
log.info("设备编号{},风速标差数据计算完成", equipmentId);
|
|
|
+ return dataList;
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|
|
@@ -1560,8 +1562,9 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
* @param startTime 开始时间
|
|
|
* @param endTime 结束时间
|
|
|
* @param equipmentId 设备id
|
|
|
+ * @return
|
|
|
*/
|
|
|
- public void turbulenceDay(Date startTime, Date endTime, String equipmentId, List<ProphaseAnemometryData> prophaseAnemometryDataList, List<EquipmentAttribute> equipmentAttributeList, List<WindTowerInfo> windTowerInfoList, List<WindTowerCalculationData> windTowerCalculationDataList) {
|
|
|
+ public ArrayList<WindTowerCalculationData> turbulenceDay(Date startTime, Date endTime, String equipmentId, List<EquipmentAttribute> equipmentAttributeList, List<WindTowerInfo> windTowerInfoList, List<WindTowerCalculationData> windTowerCalculationDataList) {
|
|
|
long startHour = startTime.getTime();
|
|
|
long endHour = endTime.getTime();
|
|
|
long dayTime = 86400000L;
|
|
@@ -1572,47 +1575,25 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
try {
|
|
|
for (String h : heightAll) {
|
|
|
|
|
|
- List<EquipmentAttribute> turList = equipmentAttributeList.stream().filter(equipmentAttribute -> equipmentAttribute.getFieldName().equals(h + "turbulenceDay")).collect(Collectors.toList());
|
|
|
+ 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());
|
|
|
|
|
|
removeByStartTimeBetweenAndEquipmentIdAndEbId(startTime, endTime, equipmentId, turList.get(0).getId());
|
|
|
for (long start1 = startHour; start1 < endHour; start1 = start1 + dayTime) {
|
|
|
- //每天的结束时间
|
|
|
- long start2 = start1 + dayTime - 1L;
|
|
|
- long start = start1 - 1;
|
|
|
-
|
|
|
- List<ProphaseAnemometryData> collect = prophaseAnemometryDataList.stream().filter(p -> p.getTs().getTime() >= start && p.getTs().getTime() <= start2 && p.getLayerHeight().equals(h)).collect(Collectors.toList());
|
|
|
- List<BigDecimal> wsList = new ArrayList<>();
|
|
|
- List<BigDecimal> staList = new ArrayList<>();
|
|
|
- //过滤风速平均值
|
|
|
- for (ProphaseAnemometryData pro : collect) {
|
|
|
- wsList.add(CalculationUtil.getBigDecimal(pro.getWsAve()));
|
|
|
- staList.add(CalculationUtil.getBigDecimal(pro.getWsSta()));
|
|
|
- }
|
|
|
- BigDecimal wsSum = BigDecimal.ZERO;
|
|
|
- BigDecimal staSum = BigDecimal.ZERO;
|
|
|
- for (BigDecimal ws : wsList) {
|
|
|
- if (ws != null && !ws.toString().equals("")) {
|
|
|
- wsSum = wsSum.add(ws);
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
- for (BigDecimal sta : staList) {
|
|
|
- if (sta != null && !sta.toString().equals("")) {
|
|
|
- staSum = staSum.add(sta);
|
|
|
- }
|
|
|
- }
|
|
|
- BigDecimal wsAve;
|
|
|
- BigDecimal staAve;
|
|
|
+ long finalStart = start1;
|
|
|
+ List<WindTowerCalculationData> staDay = windTowerCalculationDataList.stream().filter(w -> w.getEbId().equals(staList.get(0).getId()) && w.getTime().getTime() == finalStart).collect(Collectors.toList());
|
|
|
+ List<WindTowerCalculationData> wsDay = windTowerCalculationDataList.stream().filter(w -> w.getEbId().equals(wsList.get(0).getId()) && w.getTime().getTime() == finalStart).collect(Collectors.toList());
|
|
|
+
|
|
|
+ if (!staDay.isEmpty() && !wsDay.isEmpty()) {
|
|
|
|
|
|
- if (!wsList.isEmpty() && !staList.isEmpty()) {
|
|
|
- wsAve = wsSum.divide(BigDecimal.valueOf(wsList.size()), 2, RoundingMode.HALF_UP);
|
|
|
- staAve = staSum.divide(BigDecimal.valueOf(staList.size()), 2, RoundingMode.HALF_UP);
|
|
|
//数据入库
|
|
|
WindTowerCalculationData windTowerCalculationData = new WindTowerCalculationData();
|
|
|
windTowerCalculationData.setTime(new Date(start1));
|
|
|
windTowerCalculationData.setEbId(turList.get(0).getId());
|
|
|
windTowerCalculationData.setEquipmentId(equipmentId);
|
|
|
- windTowerCalculationData.setValue(CalculationUtil.caTurbulenceIntensity(staAve, wsAve));
|
|
|
+ windTowerCalculationData.setValue(CalculationUtil.caTurbulenceIntensity(staDay.get(0).getValue(), wsDay.get(0).getValue()));
|
|
|
windTowerCalculationDataList.add(windTowerCalculationData);
|
|
|
list.add(windTowerCalculationData);
|
|
|
} else {
|
|
@@ -1626,9 +1607,9 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
log.error("设备编号{}日平均湍流计算失败^ ^", equipmentId);
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
- saveBatchByEquipmentId(list, equipmentId);
|
|
|
+// saveBatchByEquipmentId(list, equipmentId);
|
|
|
log.info("设备编号{}日平均湍流计算成功^ ^", equipmentId);
|
|
|
-
|
|
|
+ return list;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -1637,8 +1618,9 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
* @param startTime 开始时间
|
|
|
* @param endTime 结束时间
|
|
|
* @param equipmentId 设备编号
|
|
|
+ * @return
|
|
|
*/
|
|
|
- public void turbulenceMonth(Date startTime, Date endTime, String equipmentId, List<WindTowerCalculationData> windTowerCalculationDataList, List<EquipmentAttribute> equipmentAttributeList, List<WindTowerInfo> windTowerInfoList) {
|
|
|
+ public ArrayList<WindTowerCalculationData> turbulenceMonth(Date startTime, Date endTime, String equipmentId, List<WindTowerCalculationData> windTowerCalculationDataList, List<EquipmentAttribute> equipmentAttributeList, List<WindTowerInfo> windTowerInfoList) {
|
|
|
//时间-1防止0点数据查不到
|
|
|
Date startHour = new Date(startTime.getTime() - 1);
|
|
|
//获取时间段所有统计数据
|
|
@@ -1680,8 +1662,9 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
} catch (Exception e) {
|
|
|
log.error("设备编号{}月平均湍流计算失败^ ^", equipmentId);
|
|
|
}
|
|
|
- saveBatchByEquipmentId(list, equipmentId);
|
|
|
+// saveBatchByEquipmentId(list, equipmentId);
|
|
|
log.info("设备编号{}月平均湍流计算成功^ ^", equipmentId);
|
|
|
+ return list;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -1690,69 +1673,58 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
* @param startTime 开始时间
|
|
|
* @param endTime 结束时间
|
|
|
* @param equipmentId 设备id
|
|
|
+ * @return
|
|
|
*/
|
|
|
- public void shearDay(Date startTime, Date endTime, String equipmentId, List<WindTowerCalculationData> windTowerCalculationDataList, List<EquipmentAttribute> equipmentAttributeList, List<WindTowerInfo> windTowerInfoList) {
|
|
|
+ public ArrayList<WindTowerCalculationData> shearDay(Date startTime, Date endTime, String equipmentId, List<WindTowerCalculationData> windTowerCalculationDataList, List<EquipmentAttribute> equipmentAttributeList, List<WindTowerInfo> windTowerInfoList) {
|
|
|
long startHour = startTime.getTime();
|
|
|
long endHour = endTime.getTime();
|
|
|
long dayTime = 86400000L;
|
|
|
- //获取所有层高
|
|
|
- String heights = windTowerInfoList.stream().filter(w -> w.getEquipmentNo().equals(equipmentId)).collect(Collectors.toList()).get(0).getHeights();
|
|
|
- String[] strings = heights.split(",");
|
|
|
//日平均所需要的集合
|
|
|
List<WindTowerCalculationData> windTowerCalculationDataList1 = windTowerCalculationDataList.stream().filter(w -> w.getEquipmentId().equals(equipmentId) && w.getTime().after(startTime) && w.getTime().before(endTime)).collect(Collectors.toList());
|
|
|
ArrayList<WindTowerCalculationData> list = new ArrayList<>();
|
|
|
- Integer heightMin = Integer.parseInt(getNumberFromString(strings[0]));
|
|
|
- for (String h : strings) {
|
|
|
- if (Integer.parseInt(getNumberFromString(h)) < heightMin) {
|
|
|
- heightMin = Integer.parseInt(getNumberFromString(h));
|
|
|
- }
|
|
|
- }
|
|
|
try {
|
|
|
//遍历层高
|
|
|
- for (String h : strings) {
|
|
|
- if (h.equals(String.valueOf(heightMin))) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- //获取所有小时风切变表
|
|
|
- List<EquipmentAttribute> shearList = equipmentAttributeList.stream().filter(equipmentAttribute -> equipmentAttribute.getFieldName().equals(h + "shear")).collect(Collectors.toList());
|
|
|
- //获取所有日风切变表
|
|
|
- List<EquipmentAttribute> shearDayList = equipmentAttributeList.stream().filter(equipmentAttribute -> equipmentAttribute.getFieldName().equals(h + "shearDay")).collect(Collectors.toList());
|
|
|
- //删除统计时间段所有数据
|
|
|
- removeByStartTimeBetweenAndEquipmentIdAndEbId(startTime, endTime, equipmentId, shearDayList.get(0).getId());
|
|
|
|
|
|
- for (long start1 = startHour; start1 < endHour; start1 = start1 + dayTime) {
|
|
|
- long start2 = start1 + dayTime - 1L;
|
|
|
+ //获取所有小时综合风切变
|
|
|
+ List<EquipmentAttribute> shearList = equipmentAttributeList.stream().filter(equipmentAttribute -> equipmentAttribute.getFieldName().equals(windShearFiledName)).collect(Collectors.toList());
|
|
|
+ //获取日综合风切变
|
|
|
+ List<EquipmentAttribute> shearDayList = equipmentAttributeList.stream().filter(equipmentAttribute -> equipmentAttribute.getFieldName().equals(windShearDayFiledName)).collect(Collectors.toList());
|
|
|
+ //删除统计时间段所有数据
|
|
|
+ removeByStartTimeBetweenAndEquipmentIdAndEbId(startTime, endTime, equipmentId, shearDayList.get(0).getId());
|
|
|
|
|
|
- //获取所有小时风切变数据
|
|
|
- long start = start1;
|
|
|
- List<WindTowerCalculationData> shearCalDataList = windTowerCalculationDataList1.stream().filter(w -> w.getTime().after(new Date(start)) &&
|
|
|
- w.getTime().before(new Date(start2)) && w.getEquipmentId().equals(equipmentId) && w.getEbId().equals(shearList.get(0).getId())).collect(Collectors.toList());
|
|
|
- //小时风切变总值
|
|
|
- BigDecimal shearSum = BigDecimal.ZERO;
|
|
|
- for (WindTowerCalculationData shear : shearCalDataList) {
|
|
|
- shearSum = shearSum.add(shear.getValue());
|
|
|
- }
|
|
|
- if (!shearCalDataList.isEmpty()) {
|
|
|
- WindTowerCalculationData windTowerCalculationData = new WindTowerCalculationData();
|
|
|
- windTowerCalculationData.setEquipmentId(equipmentId);
|
|
|
- windTowerCalculationData.setValue(shearSum.divide(new BigDecimal(shearCalDataList.size()), 2, RoundingMode.HALF_UP));
|
|
|
- windTowerCalculationData.setEbId(shearDayList.get(0).getId());
|
|
|
- windTowerCalculationData.setTime(new Date(start1));
|
|
|
- windTowerCalculationDataList.add(windTowerCalculationData);
|
|
|
- list.add(windTowerCalculationData);
|
|
|
- } else {
|
|
|
- log.info("设备编号{},{},{}米层高日平均风切变计算失败,缺少数据^ ^", equipmentId, DateTimeUtil.dateToStrLong(new Date(start1)), h);
|
|
|
- }
|
|
|
+ for (long start1 = startHour; start1 < endHour; start1 = start1 + dayTime) {
|
|
|
+ long start2 = start1 + dayTime - 1L;
|
|
|
|
|
|
+ //获取所有小时风切变数据
|
|
|
+ long start = start1;
|
|
|
+ List<WindTowerCalculationData> shearCalDataList = windTowerCalculationDataList1.stream().filter(w -> w.getTime().after(new Date(start)) &&
|
|
|
+ w.getTime().before(new Date(start2)) && w.getEquipmentId().equals(equipmentId) && w.getEbId().equals(shearList.get(0).getId())).collect(Collectors.toList());
|
|
|
+ //小时风切变总值
|
|
|
+ BigDecimal shearSum = BigDecimal.ZERO;
|
|
|
+ for (WindTowerCalculationData shear : shearCalDataList) {
|
|
|
+ shearSum = shearSum.add(shear.getValue());
|
|
|
}
|
|
|
+ if (!shearCalDataList.isEmpty()) {
|
|
|
+ WindTowerCalculationData windTowerCalculationData = new WindTowerCalculationData();
|
|
|
+ windTowerCalculationData.setEquipmentId(equipmentId);
|
|
|
+ windTowerCalculationData.setValue(shearSum.divide(new BigDecimal(shearCalDataList.size()), 2, RoundingMode.HALF_UP));
|
|
|
+ windTowerCalculationData.setEbId(shearDayList.get(0).getId());
|
|
|
+ windTowerCalculationData.setTime(new Date(start1));
|
|
|
+ windTowerCalculationDataList.add(windTowerCalculationData);
|
|
|
+ list.add(windTowerCalculationData);
|
|
|
+ } else {
|
|
|
+ log.info("设备编号{},{},{}米层高日平均风切变计算失败,缺少数据^ ^", equipmentId, DateTimeUtil.dateToStrLong(new Date(start1)));
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
+
|
|
|
} catch (Exception e) {
|
|
|
log.error("设备编号{}日平均风切变计算失败^ ^", equipmentId);
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
- saveBatchByEquipmentId(list, equipmentId);
|
|
|
+// saveBatchByEquipmentId(list, equipmentId);
|
|
|
log.info("设备编号{}日平均风切变计算成功^ ^", equipmentId);
|
|
|
-
|
|
|
+ return list;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -1761,59 +1733,48 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
* @param startTime 开始时间
|
|
|
* @param endTime 结束时间
|
|
|
* @param equipmentId 设备id
|
|
|
+ * @return
|
|
|
*/
|
|
|
- public void shearMonth(Date startTime, Date endTime, String equipmentId, List<WindTowerCalculationData> windTowerCalculationDataList, List<EquipmentAttribute> equipmentAttributeList, List<WindTowerInfo> windTowerInfoList) {
|
|
|
+ public ArrayList<WindTowerCalculationData> shearMonth(Date startTime, Date endTime, String equipmentId, List<WindTowerCalculationData> windTowerCalculationDataList, List<EquipmentAttribute> equipmentAttributeList, List<WindTowerInfo> windTowerInfoList) {
|
|
|
//时间-1防止0点数据查不到
|
|
|
Date startHour = new Date(startTime.getTime() - 1);
|
|
|
//获取时间段所有统计数据
|
|
|
List<WindTowerCalculationData> windTowerCalculationDataList1 = windTowerCalculationDataList.stream().filter(w -> w.getEquipmentId().equals(equipmentId) && w.getTime().after(startHour) && w.getTime().before(endTime)).collect(Collectors.toList());
|
|
|
- //获取所有层高
|
|
|
- String[] height = windTowerInfoList.stream().filter(w -> w.getEquipmentNo().equals(equipmentId)).collect(Collectors.toList()).get(0).getHeights().split(",");
|
|
|
ArrayList<WindTowerCalculationData> list = new ArrayList<>();
|
|
|
try {
|
|
|
- //设置默认值
|
|
|
- int heightMin = 100;
|
|
|
- for (String h : height) {
|
|
|
- if (Integer.parseInt(getNumberFromString(h)) < heightMin) {
|
|
|
- heightMin = Integer.parseInt(getNumberFromString(h));
|
|
|
- }
|
|
|
+ //获取月平均综合风切变字段
|
|
|
+ String ebIdMonth = equipmentAttributeList.stream().filter(w -> w.getFieldName().equals("windShearMonth")).collect(Collectors.toList()).get(0).getId();
|
|
|
+ String ebIdDay = equipmentAttributeList.stream().filter(w -> w.getFieldName().equals("windShearDay")).collect(Collectors.toList()).get(0).getId();
|
|
|
+ //删除时间段所有数据
|
|
|
+ removeByStartTimeBetweenAndEquipmentIdAndEbId(startHour, endTime, equipmentId, ebIdMonth);
|
|
|
+ //获取所有日平均风切变
|
|
|
+ List<WindTowerCalculationData> windTowerCalculationDatas = windTowerCalculationDataList1.stream().filter(w -> w.getEbId().equals(ebIdDay) && w.getTime().after(startHour) && w.getTime().before(endTime) && w.getEquipmentId().equals(equipmentId))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ BigDecimal sum = new BigDecimal(0);
|
|
|
+
|
|
|
+ for (WindTowerCalculationData w : windTowerCalculationDatas) {
|
|
|
+ sum = sum.add(w.getValue());
|
|
|
}
|
|
|
- for (String h : height) {
|
|
|
- if (h.equals(String.valueOf(heightMin))) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- //获取对应层高的月平均风速字段
|
|
|
- String ebIdMonth = equipmentAttributeList.stream().filter(w -> w.getFieldName().equals(h + "shearMonth")).collect(Collectors.toList()).get(0).getId();
|
|
|
- String ebIdDay = equipmentAttributeList.stream().filter(w -> w.getFieldName().equals(h + "shearDay")).collect(Collectors.toList()).get(0).getId();
|
|
|
- //删除时间段所有数据
|
|
|
- removeByStartTimeBetweenAndEquipmentIdAndEbId(startHour, endTime, equipmentId, ebIdMonth);
|
|
|
- //获取所有日平均风速
|
|
|
- List<WindTowerCalculationData> windTowerCalculationDatas = windTowerCalculationDataList1.stream().filter(w -> w.getEbId().equals(ebIdDay) && w.getTime().after(startHour) && w.getTime().before(endTime) && w.getEquipmentId().equals(equipmentId)).collect(Collectors.toList());
|
|
|
- BigDecimal sum = new BigDecimal(0);
|
|
|
|
|
|
- for (WindTowerCalculationData w : windTowerCalculationDatas) {
|
|
|
- sum = sum.add(w.getValue());
|
|
|
- }
|
|
|
-
|
|
|
- if (!windTowerCalculationDatas.isEmpty()) {
|
|
|
- WindTowerCalculationData windTowerCalculationData = new WindTowerCalculationData();
|
|
|
- windTowerCalculationData.setEbId(ebIdMonth);
|
|
|
- windTowerCalculationData.setTime(startTime);
|
|
|
- windTowerCalculationData.setEquipmentId(equipmentId);
|
|
|
- windTowerCalculationData.setValue(sum.divide(new BigDecimal(windTowerCalculationDatas.size()), 2, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP));
|
|
|
- list.add(windTowerCalculationData);
|
|
|
- } else {
|
|
|
- log.info("设备编号{},{}月,{}米层高月平均风切变指数计算失败,缺少数据^ ^", equipmentId, startTime.getMonth() + 1, h);
|
|
|
- }
|
|
|
+ if (!windTowerCalculationDatas.isEmpty()) {
|
|
|
+ WindTowerCalculationData windTowerCalculationData = new WindTowerCalculationData();
|
|
|
+ windTowerCalculationData.setEbId(ebIdMonth);
|
|
|
+ windTowerCalculationData.setTime(startTime);
|
|
|
+ windTowerCalculationData.setEquipmentId(equipmentId);
|
|
|
+ windTowerCalculationData.setValue(sum.divide(new BigDecimal(windTowerCalculationDatas.size()), 2, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ list.add(windTowerCalculationData);
|
|
|
+ } else {
|
|
|
+ log.info("设备编号{},{}月平均风切变指数计算失败,缺少数据^ ^", equipmentId, startTime.getMonth() + 1);
|
|
|
+ }
|
|
|
|
|
|
|
|
|
- }
|
|
|
} catch (Exception e) {
|
|
|
log.error("设备编号{}月平均风月切变计算失败^ ^", equipmentId);
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
- saveBatchByEquipmentId(list, equipmentId);
|
|
|
+// saveBatchByEquipmentId(list, equipmentId);
|
|
|
log.info("设备编号{}月平均风切变计算成功^ ^", equipmentId);
|
|
|
+ return list;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -1889,10 +1850,10 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
* @param equipmentId 设备Id
|
|
|
* @param equipmentAttributeList 属性集合
|
|
|
*/
|
|
|
- public void tDay(Date startTime, Date endTime, String equipmentId, List<ProphaseWeatherData> prophaseWeatherDataList, List<EquipmentAttribute> equipmentAttributeList) {
|
|
|
+ public ArrayList<WindTowerCalculationData> tDay(Date startTime, Date endTime, String equipmentId, List<ProphaseWeatherData> prophaseWeatherDataList, List<EquipmentAttribute> equipmentAttributeList) {
|
|
|
String ebId = equipmentAttributeList.stream().filter(w -> w.getFieldName().equals("tDay")).collect(Collectors.toList()).get(0).getId();
|
|
|
long day = 86400000L;
|
|
|
- ArrayList<WindTowerCalculationData> list = new ArrayList<>();
|
|
|
+ ArrayList<WindTowerCalculationData> tList = new ArrayList<>();
|
|
|
removeByStartTimeBetweenAndEquipmentIdAndEbId(startTime, endTime, equipmentId, ebId);
|
|
|
try {
|
|
|
for (long time = startTime.getTime(); time < endTime.getTime(); time += day) {
|
|
@@ -1907,16 +1868,16 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
windTowerCalculationData.setTime(new Date(dayTime));
|
|
|
windTowerCalculationData.setValue(tSum.divide(BigDecimal.valueOf(collect.size()), 2, RoundingMode.HALF_UP));
|
|
|
windTowerCalculationData.setEquipmentId(equipmentId);
|
|
|
- list.add(windTowerCalculationData);
|
|
|
+ tList.add(windTowerCalculationData);
|
|
|
}
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
log.error("设备{}日平均温度统计异常", equipmentId);
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
- saveBatchByEquipmentId(list, equipmentId);
|
|
|
+// saveBatchByEquipmentId(list, equipmentId);
|
|
|
log.info("{}设备日平均温度计算完成", equipmentId);
|
|
|
-
|
|
|
+ return tList;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -1927,7 +1888,7 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
* @param equipmentId 设备Id
|
|
|
* @param equipmentAttributeList 属性集合
|
|
|
*/
|
|
|
- public void paDay(Date startTime, Date endTime, String equipmentId, List<ProphaseWeatherData> prophaseWeatherDataList, List<EquipmentAttribute> equipmentAttributeList) {
|
|
|
+ public ArrayList<WindTowerCalculationData> paDay(Date startTime, Date endTime, String equipmentId, List<ProphaseWeatherData> prophaseWeatherDataList, List<EquipmentAttribute> equipmentAttributeList) {
|
|
|
String ebId = equipmentAttributeList.stream().filter(w -> w.getFieldName().equals("paDay")).collect(Collectors.toList()).get(0).getId();
|
|
|
long day = 86400000L;
|
|
|
ArrayList<WindTowerCalculationData> list = new ArrayList<>();
|
|
@@ -1952,92 +1913,61 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
log.error("设备{}日平均气压统计异常", equipmentId);
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
- saveBatchByEquipmentId(list, equipmentId);
|
|
|
+// saveBatchByEquipmentId(list, equipmentId);
|
|
|
log.info("{}设备日平均气压计算完成", equipmentId);
|
|
|
-
|
|
|
+ return list;
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 计算上一个小时 每10分钟的风切变指数
|
|
|
*/
|
|
|
- @Transactional
|
|
|
- public void calculateWindPowerShear(Date startTime, Date endTime, String equipmentId, List<ProphaseAnemometryData> prophaseAnemometryDataList, List<WindTowerCalculationData> windTowerCalculationDataList) {
|
|
|
+ public ArrayList<WindTowerCalculationData> calculateWindPowerShear(Date startTime, Date endTime, String equipmentId, List<ProphaseAnemometryData> prophaseAnemometryDataList, List<WindTowerCalculationData> windTowerCalculationDataList) {
|
|
|
log.info("开始计算小时风切变指数");
|
|
|
long startHour = startTime.getTime();
|
|
|
long endHour = endTime.getTime();
|
|
|
-
|
|
|
List<WindTowerInfo> windTowerInfoList = windTowerInfoService.lambdaQuery().eq(WindTowerInfo::getEquipmentNo, equipmentId).list();
|
|
|
- String height = windTowerInfoList.get(0).getHeights();
|
|
|
- String[] heights = height.split(",");
|
|
|
- List<WindTowerCalculationData> listAll = new ArrayList<>();
|
|
|
- Integer heightMin = Integer.parseInt(getNumberFromString(heights[0]));
|
|
|
- for (String h : heights) {
|
|
|
- if (Integer.parseInt(getNumberFromString(h)) < heightMin) {
|
|
|
- heightMin = Integer.parseInt(getNumberFromString(h));
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
+ String[] heights = windTowerInfoList.get(0).getHeights().split(",");
|
|
|
+ ArrayList<WindTowerCalculationData> listAll = new ArrayList<>();
|
|
|
//时间段内所有风数据
|
|
|
-// List<Map<String, Object>> collect = mapList.stream().filter(w -> Long.parseLong(w.get("time").toString()) >= startTime.getTime() && Long.parseLong(w.get("time").toString()) <= endTime.getTime() && w.get("equipment_id").equals(equipmentId)).collect(Collectors.toList());
|
|
|
List<ProphaseAnemometryData> prophaseAnemometryData = prophaseAnemometryDataList.stream().filter(p -> p.getTs().getTime() >= startTime.getTime() && p.getTs().getTime() <= endTime.getTime()).collect(Collectors.toList());
|
|
|
-
|
|
|
- List<WindTowerCalculationData> windTowerCalculationDataList1 = windTowerCalculationDataList.stream().filter(w -> w.getTime().after(startTime) &&
|
|
|
- w.getTime().before(endTime) && w.getEquipmentId().equals(equipmentId)).collect(Collectors.toList());
|
|
|
- for (String h : heights) {
|
|
|
- String filedName = h + "shear";
|
|
|
- List<EquipmentAttribute> list = equipmentAttributeService.lambdaQuery().eq(EquipmentAttribute::getFieldName, filedName).list();
|
|
|
- //风切变没有10米层高数据
|
|
|
- if (!h.equals(String.valueOf(heightMin))) {
|
|
|
- removeByStartTimeBetweenAndEquipmentIdAndEbId(startTime, endTime, equipmentId, list.get(0).getId());
|
|
|
- }
|
|
|
- }
|
|
|
+ EquipmentAttribute equipmentAttribute = equipmentAttributeService.lambdaQuery().eq(EquipmentAttribute::getFieldName, windShearFiledName).list().get(0);
|
|
|
+ //删除综合风切变
|
|
|
+ removeByStartTimeBetweenAndEquipmentIdAndEbId(startTime, endTime, equipmentId, equipmentAttribute.getId());
|
|
|
try {
|
|
|
for (long start1 = startHour; start1 <= endHour; start1 = start1 + 3600000) {
|
|
|
//开始时间--->start1 结束时间---->start2
|
|
|
long start2 = start1 + 3600000L;
|
|
|
-
|
|
|
- //查询指定时间的风速数据,如果是1号0点-1点执行则查询上一个月的数据 windTowerStatusDataList key=层高 + 毫秒数 + 设备编号 + 当前日的时间 value= 每个层高的平均风速
|
|
|
- Map<String, BigDecimal> windTowerStatusDataList = queryWindForShear(new Date(start1), new Date(start2), equipmentId, prophaseAnemometryData,heights);
|
|
|
- //计算每10分钟的风切变指数 windTowerShearMap---> key=层高 + 设备编号 value = shear
|
|
|
- Map<String, List<BigDecimal>> windTowerShearMap = traverseWindDataListCalcuShear(windTowerStatusDataList, heightMin);
|
|
|
- //查询历史记录,以作更新操作 windTowerCalculationDataMap--->key= 时间 设备编号 EbId value=windTowerCalculationData(所有数据)
|
|
|
- Map<String, WindTowerCalculationData> windTowerCalculationDataMap = queryHistoryWindTowerCalculationDatas(windTowerCalculationDataList1);
|
|
|
- //获取设备属性列表 equipmentAttributeMap key=fieldName value=id
|
|
|
- Map<String, String> equipmentAttributeMap = queryEquipmentAttributeMap();
|
|
|
-
|
|
|
-
|
|
|
- Integer curentHour = new Date(start1).getHours();
|
|
|
- Date date = new Date(start1);
|
|
|
- //遍历风切变数据集合求平均值并保存入库
|
|
|
- windTowerShearMap.forEach((key, value) -> {
|
|
|
- WindTowerCalculationData windTowerCalculationData = new WindTowerCalculationData();
|
|
|
- String[] keys = key.split("-");
|
|
|
- //保存风速
|
|
|
- Date time = DateTimeUtil.strToDateLongYMDH(startTime.getMonth(), curentHour, keys[1]);
|
|
|
- String equmentId = keys[2];
|
|
|
- String ebId = equipmentAttributeMap.get(keys[0] + shearFunction);
|
|
|
- if (null != windTowerCalculationDataMap.get(time + equmentId + ebId)) {
|
|
|
- windTowerCalculationData = windTowerCalculationDataMap.get(time + equmentId + ebId);
|
|
|
- } else {
|
|
|
- //默认每月第一天
|
|
|
- windTowerCalculationData.setTime(date);
|
|
|
- windTowerCalculationData.setEquipmentId(equmentId);
|
|
|
- windTowerCalculationData.setEbId(ebId);
|
|
|
+ BigDecimal oneHourWindShear = BigDecimal.ZERO;
|
|
|
+ BigDecimal total = BigDecimal.ZERO;
|
|
|
+ for (long i = start1; i < start2; i = i + 600000) {
|
|
|
+ long finalI = i;
|
|
|
+ List<ProphaseAnemometryData> collect = prophaseAnemometryData.stream().filter(p -> p.getTs().getTime() >= finalI && p.getTs().getTime() <= finalI + 600000 - 1).collect(Collectors.toList());
|
|
|
+ //计算十分钟综合风切变
|
|
|
+ BigDecimal windShear = CalculationUtil.getWindShear(collect, heights);
|
|
|
+ if (windShear.compareTo(BigDecimal.ZERO) != 0) {
|
|
|
+ oneHourWindShear = oneHourWindShear.add(windShear);
|
|
|
+ total = total.add(BigDecimal.ONE);
|
|
|
}
|
|
|
- //计算风切变平均值
|
|
|
- windTowerCalculationData.setValue(BigDecimal.valueOf(value.stream().mapToDouble(BigDecimal::doubleValue).average().orElse(0L)).setScale(4, RoundingMode.HALF_UP));
|
|
|
+ }
|
|
|
+ if (total.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
+ WindTowerCalculationData windTowerCalculationData = new WindTowerCalculationData();
|
|
|
+ windTowerCalculationData.setEquipmentId(equipmentId);
|
|
|
+ windTowerCalculationData.setTime(new Date(start1));
|
|
|
+ windTowerCalculationData.setValue(oneHourWindShear.divide(total, 2, RoundingMode.HALF_UP));
|
|
|
+ windTowerCalculationData.setEbId(equipmentAttribute.getId());
|
|
|
windTowerCalculationDataList.add(windTowerCalculationData);
|
|
|
listAll.add(windTowerCalculationData);
|
|
|
- });
|
|
|
+ }
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
log.error("设备{}小时风切变统计异常", equipmentId);
|
|
|
}
|
|
|
//保存风切变指数
|
|
|
- saveBatchByEquipmentId(listAll, equipmentId);
|
|
|
+// saveBatchByEquipmentId(listAll, equipmentId);
|
|
|
log.info("{}设备风切变指数计算完成", equipmentId);
|
|
|
+ return listAll;
|
|
|
}
|
|
|
|
|
|
|
|
@@ -2333,20 +2263,21 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
* @param startTime 开始时间
|
|
|
* @param endTime 结束时间
|
|
|
* @param equipmentId 设备id
|
|
|
+ * @return
|
|
|
*/
|
|
|
- public void staMonth(Date startTime, Date endTime, String equipmentId, List<ProphaseAnemometryData> prophaseAnemometryDataList, List<EquipmentAttribute> equipmentAttributeList, List<WindTowerInfo> windTowerInfoList) {
|
|
|
+ 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()).collect(Collectors.toList());
|
|
|
|
|
|
- List<WindTowerCalculationData> windTowerCalculationDataList = new ArrayList<>();
|
|
|
+ ArrayList<WindTowerCalculationData> windTowerCalculationDataList = new ArrayList<>();
|
|
|
String h = windTowerInfoList.stream().filter(w -> w.getEquipmentNo().equals(equipmentId)).collect(Collectors.toList()).get(0).getHeights();
|
|
|
String[] heights = h.split(",");
|
|
|
//计算标差
|
|
|
for (String height : heights) {
|
|
|
List<EquipmentAttribute> equipmentAttributeList1 = equipmentAttributeList.stream().filter(e -> e.getFieldName().equals(height + "staMonth")).collect(Collectors.toList());
|
|
|
if (!collect.isEmpty()) {
|
|
|
- BigDecimal sumSta = CalculationUtil.getBigDecimal(collect.stream().filter(c -> c.getLayerHeight().equals(height)).mapToDouble(ProphaseAnemometryData::getWsSta).sum());
|
|
|
+ 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());
|
|
|
windTowerCalculationData.setTime(startHour);
|
|
@@ -2362,7 +2293,8 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
removeByStartTimeBetweenAndEquipmentIdAndEbId(startTime, endTime, equipmentId, e.getId());
|
|
|
}
|
|
|
}
|
|
|
- saveBatchByEquipmentId(windTowerCalculationDataList, equipmentId);
|
|
|
+// saveBatchByEquipmentId(windTowerCalculationDataList, equipmentId);
|
|
|
+ return windTowerCalculationDataList;
|
|
|
}
|
|
|
|
|
|
|
|
@@ -2371,8 +2303,10 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
* @param endTime 结束时间
|
|
|
* @param equipmentId 设备id
|
|
|
* @param equipmentAttributeList 属性集合
|
|
|
+ * @return
|
|
|
*/
|
|
|
- public void environmentData(Date startTime, Date endTime, String equipmentId, List<ProphaseWeatherData> prophaseWeatherDataList, List<EquipmentAttribute> equipmentAttributeList) {
|
|
|
+ public ArrayList<WindTowerCalculationData> environmentData(Date startTime, Date endTime, String equipmentId, List<ProphaseWeatherData> prophaseWeatherDataList, List<EquipmentAttribute> equipmentAttributeList) {
|
|
|
+ ArrayList<WindTowerCalculationData> windTowerCalculationDataList = null;
|
|
|
try {
|
|
|
//时间-1防止0点数据查不到
|
|
|
Date startHour = new Date(startTime.getTime() - 1);
|
|
@@ -2386,13 +2320,13 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
BigDecimal aveRh = new BigDecimal(0);
|
|
|
BigDecimal sumT = new BigDecimal(0);
|
|
|
BigDecimal aveT = new BigDecimal(0);
|
|
|
+ windTowerCalculationDataList = new ArrayList<>();
|
|
|
if (!prophaseWeatherData.isEmpty()) {
|
|
|
List<BigDecimal> paList = new ArrayList<>();
|
|
|
List<BigDecimal> rhList = new ArrayList<>();
|
|
|
List<BigDecimal> tList = new ArrayList<>();
|
|
|
/*计算平均值数值为null 不计算*/
|
|
|
for (ProphaseWeatherData map : prophaseWeatherData) {
|
|
|
- String abnormal_type = "";
|
|
|
if (map.getPaAve() != null && map.getPaAve() != 0) {
|
|
|
paList.add(CalculationUtil.getBigDecimal(map.getPaAve()));
|
|
|
}
|
|
@@ -2503,7 +2437,7 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
tAveData.setValue(aveT);
|
|
|
tAveData.setTime(startTime);
|
|
|
tAveData.setEquipmentId(equipmentId);
|
|
|
- List<WindTowerCalculationData> windTowerCalculationDataList = new ArrayList<>();
|
|
|
+
|
|
|
windTowerCalculationDataList.add(paAveData);
|
|
|
windTowerCalculationDataList.add(paMaxData);
|
|
|
windTowerCalculationDataList.add(paMinData);
|
|
@@ -2513,11 +2447,12 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
windTowerCalculationDataList.add(tAveData);
|
|
|
windTowerCalculationDataList.add(tMaxData);
|
|
|
windTowerCalculationDataList.add(tMinData);
|
|
|
- saveBatchByEquipmentId(windTowerCalculationDataList, equipmentId);
|
|
|
+// saveBatchByEquipmentId(windTowerCalculationDataList, equipmentId);
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
+ return windTowerCalculationDataList;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -2528,8 +2463,9 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
* @param endTime 结束时间
|
|
|
* @param equipmentAttributeList 属性集合
|
|
|
* @param windTowerInfoList 测风塔信息
|
|
|
+ * @return
|
|
|
*/
|
|
|
- public void turbulenceHourForMonth(String equipmentId, Date startTime, Date endTime, List<ProphaseAnemometryData> prophaseAnemometryDataList, List<EquipmentAttribute> equipmentAttributeList, List<WindTowerInfo> windTowerInfoList) {
|
|
|
+ public ArrayList<WindTowerCalculationData> turbulenceHourForMonth(String equipmentId, Date startTime, Date endTime, List<ProphaseAnemometryData> prophaseAnemometryDataList, List<EquipmentAttribute> equipmentAttributeList, List<WindTowerInfo> windTowerInfoList) {
|
|
|
String height = windTowerInfoList.stream().filter(w -> w.getEquipmentNo().equals(equipmentId)).collect(Collectors.toList()).get(0).getHeights();
|
|
|
String[] heights = height.split(",");
|
|
|
long hour = 3600000L;
|
|
@@ -2556,8 +2492,8 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
if (anemometryDataList.size() > 0) {
|
|
|
BigDecimal turAve = BigDecimal.ZERO;
|
|
|
//循环实时数据计算总风速和标差
|
|
|
- BigDecimal wsSun = CalculationUtil.getBigDecimal(anemometryDataList.stream().mapToDouble(ProphaseAnemometryData::getWsAve).sum());
|
|
|
- BigDecimal staSun = CalculationUtil.getBigDecimal(anemometryDataList.stream().mapToDouble(ProphaseAnemometryData::getWsSta).sum());
|
|
|
+ BigDecimal wsSun = CalculationUtil.getBigDecimal(anemometryDataList.stream().filter(a -> a.getWsAve() != null).mapToDouble(ProphaseAnemometryData::getWsAve).sum());
|
|
|
+ BigDecimal staSun = CalculationUtil.getBigDecimal(anemometryDataList.stream().filter(a -> a.getWsSta() != null).mapToDouble(ProphaseAnemometryData::getWsSta).sum());
|
|
|
//除以一小时的个数 求小时的平均值
|
|
|
BigDecimal wsAve = wsSun.divide(BigDecimal.valueOf(anemometryDataList.size()), 2, RoundingMode.HALF_UP);
|
|
|
BigDecimal staAve = staSun.divide(BigDecimal.valueOf(anemometryDataList.size()), 2, RoundingMode.HALF_UP);
|
|
@@ -2604,8 +2540,9 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
log.error("设备编号{},湍流年逐时计算错误", equipmentId);
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
- saveBatchByEquipmentId(list, equipmentId);
|
|
|
+// saveBatchByEquipmentId(list, equipmentId);
|
|
|
log.info("设备编号{},湍流年逐时,计算完成", equipmentId);
|
|
|
+ return list;
|
|
|
}
|
|
|
|
|
|
|
|
@@ -2615,8 +2552,9 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
* @param equipmentId 设备id
|
|
|
* @param startTime 开始时间
|
|
|
* @param endTime 结束时间
|
|
|
+ * @return
|
|
|
*/
|
|
|
- public void airDensityMonth(String equipmentId, Date startTime, Date endTime, List<ProphaseWeatherData> prophaseWeatherDataList) {
|
|
|
+ public ArrayList<WindTowerCalculationData> airDensityMonth(String equipmentId, Date startTime, Date endTime, List<ProphaseWeatherData> prophaseWeatherDataList) {
|
|
|
//获取ebId
|
|
|
String ebId = equipmentAttributeService.lambdaQuery().eq(EquipmentAttribute::getFieldName, "airDensityDayForYear").list().get(0).getId();
|
|
|
removeByStartTimeBetweenAndEquipmentIdAndEbId(startTime, new Date(endTime.getTime() + 86400000L), equipmentId, ebId);
|
|
@@ -2677,8 +2615,9 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
|
|
|
log.error("设备编号{},空气密度月逐时计算错误", equipmentId);
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
- saveBatchByEquipmentId(list, equipmentId);
|
|
|
+// saveBatchByEquipmentId(list, equipmentId);
|
|
|
log.info("设备编号{},空气密度月逐时,计算完成", equipmentId);
|
|
|
+ return list;
|
|
|
|
|
|
}
|
|
|
|