|
@@ -1,14 +1,12 @@
|
|
package com.jiayue.biz.service.impl;
|
|
package com.jiayue.biz.service.impl;
|
|
|
|
|
|
import cn.hutool.core.date.DateTime;
|
|
import cn.hutool.core.date.DateTime;
|
|
|
|
+import cn.hutool.db.Entity;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.jiayue.biz.domain.*;
|
|
import com.jiayue.biz.domain.*;
|
|
import com.jiayue.biz.eunms.WindDirectionEnum;
|
|
import com.jiayue.biz.eunms.WindDirectionEnum;
|
|
import com.jiayue.biz.mapper.WindTowerDataParentTableMapper;
|
|
import com.jiayue.biz.mapper.WindTowerDataParentTableMapper;
|
|
-import com.jiayue.biz.service.EquipmentAttributeService;
|
|
|
|
-import com.jiayue.biz.service.PdfService;
|
|
|
|
-import com.jiayue.biz.service.RealTimeDisplayService;
|
|
|
|
-import com.jiayue.biz.service.WindTowerDataParentTableService;
|
|
|
|
|
|
+import com.jiayue.biz.service.*;
|
|
import com.jiayue.biz.util.CalculationUtil;
|
|
import com.jiayue.biz.util.CalculationUtil;
|
|
import com.jiayue.biz.util.DateMomentUtil;
|
|
import com.jiayue.biz.util.DateMomentUtil;
|
|
import com.jiayue.biz.util.DateTimeUtil;
|
|
import com.jiayue.biz.util.DateTimeUtil;
|
|
@@ -20,6 +18,7 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
import java.math.RoundingMode;
|
|
import java.math.RoundingMode;
|
|
|
|
+import java.sql.Timestamp;
|
|
import java.text.SimpleDateFormat;
|
|
import java.text.SimpleDateFormat;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
@@ -44,8 +43,10 @@ public class PdfServiceImpl extends ServiceImpl<WindTowerDataParentTableMapper,
|
|
private final RealTimeDisplayService realTimeDisplayService;
|
|
private final RealTimeDisplayService realTimeDisplayService;
|
|
|
|
|
|
private final WindDirectionStatisticsDataServiceImpl windDirectionStatisticsDataService;
|
|
private final WindDirectionStatisticsDataServiceImpl windDirectionStatisticsDataService;
|
|
- private final WindTowerDataParentTableService windTowerDataParentTableService;
|
|
|
|
|
|
|
|
|
|
+ private final ProphaseAnemometryDataService prophaseAnemometryDataService;
|
|
|
|
+
|
|
|
|
+ private final ProphaseWeatherDataService prophaseWeatherDataService;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -71,10 +72,13 @@ public class PdfServiceImpl extends ServiceImpl<WindTowerDataParentTableMapper,
|
|
List<WindTowerInfo> windTowerInfos = windTowerInfoList.stream().filter(w -> w.getEquipmentNo().equals(equipmentId)).collect(Collectors.toList());
|
|
List<WindTowerInfo> windTowerInfos = windTowerInfoList.stream().filter(w -> w.getEquipmentNo().equals(equipmentId)).collect(Collectors.toList());
|
|
// List<WindTowerInfo> windTowerInfos = windTowerInfoService.getByEquipmentNo(equipmentId);
|
|
// List<WindTowerInfo> windTowerInfos = windTowerInfoService.getByEquipmentNo(equipmentId);
|
|
//计算完整性
|
|
//计算完整性
|
|
- List<Map<String, Object>> maps = windTowerDataParentTableService.countDataIntegrity(equipmentId, sdfTime.format(startDay), sdfTime.format(endDay));
|
|
|
|
- for (Map<String, Object> map1 : maps) {
|
|
|
|
- realityCount += (long) map1.get("num");
|
|
|
|
|
|
+ List<Entity> entities = prophaseWeatherDataService.selectCount(equipmentId);
|
|
|
|
+
|
|
|
|
+ for (Entity entity : entities) {
|
|
|
|
+ // td engine 取出的时间需要截取字段
|
|
|
|
+ realityCount += (long) entity.get("count(*)");
|
|
}
|
|
}
|
|
|
|
+
|
|
//测风塔信息概要
|
|
//测风塔信息概要
|
|
Map<String, Object> windTowerInfo = getWindTowerInfo(windTowerCalculationDatas, equipmentAttributeList, windTowerInfos, height, realityCount, startDay, endDay);
|
|
Map<String, Object> windTowerInfo = getWindTowerInfo(windTowerCalculationDatas, equipmentAttributeList, windTowerInfos, height, realityCount, startDay, endDay);
|
|
map.put("windTowerInfo", windTowerInfo);
|
|
map.put("windTowerInfo", windTowerInfo);
|
|
@@ -148,8 +152,12 @@ public class PdfServiceImpl extends ServiceImpl<WindTowerDataParentTableMapper,
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
//如果查询月份等于当前时间月份就拿数据库最后一天数据的时间作为结束时间
|
|
//如果查询月份等于当前时间月份就拿数据库最后一天数据的时间作为结束时间
|
|
if (endDay.getMonth() == new Date().getMonth()) {
|
|
if (endDay.getMonth() == new Date().getMonth()) {
|
|
- WindTowerDataParentTable lastData = windTowerDataParentTableService.getLastData(windTowerInfos.get(0).getEquipmentNo());
|
|
|
|
- endDay = lastData.getTime();
|
|
|
|
|
|
+ List<Entity> lastData = prophaseWeatherDataService.getLastData(windTowerInfos.get(0).getEquipmentNo());
|
|
|
|
+ Timestamp timestamp = new Timestamp(new Date().getTime());
|
|
|
|
+ if (lastData != null && lastData.size() > 0) {
|
|
|
|
+ timestamp = (Timestamp) lastData.get(0).get("last (ts)");
|
|
|
|
+ }
|
|
|
|
+ endDay = new Date(timestamp.getTime());
|
|
}
|
|
}
|
|
Date dayLastTime = DateTimeUtil.getDayLastTime(endDay.getTime());
|
|
Date dayLastTime = DateTimeUtil.getDayLastTime(endDay.getTime());
|
|
long count = (dayLastTime.getTime() + 1000 - startDay.getTime()) / (86400000);
|
|
long count = (dayLastTime.getTime() + 1000 - startDay.getTime()) / (86400000);
|
|
@@ -206,8 +214,12 @@ public class PdfServiceImpl extends ServiceImpl<WindTowerDataParentTableMapper,
|
|
List<Map<String, Object>> dataList = new ArrayList<>();
|
|
List<Map<String, Object>> dataList = new ArrayList<>();
|
|
//如果查询月份等于当前时间月份就拿数据库最后一天数据的时间作为结束时间
|
|
//如果查询月份等于当前时间月份就拿数据库最后一天数据的时间作为结束时间
|
|
if (endDay.getMonth() == new Date().getMonth()) {
|
|
if (endDay.getMonth() == new Date().getMonth()) {
|
|
- WindTowerDataParentTable lastData = windTowerDataParentTableService.getLastData(windTowerInfos.get(0).getEquipmentNo());
|
|
|
|
- endDay = lastData.getTime();
|
|
|
|
|
|
+ List<Entity> lastData = prophaseWeatherDataService.getLastData(windTowerInfos.get(0).getEquipmentNo());
|
|
|
|
+ Timestamp timestamp = new Timestamp(new Date().getTime());
|
|
|
|
+ if (lastData != null && lastData.size() > 0) {
|
|
|
|
+ timestamp = (Timestamp) lastData.get(0).get("last (ts)");
|
|
|
|
+ }
|
|
|
|
+ endDay = new Date(timestamp.getTime());
|
|
}
|
|
}
|
|
Date dayLastTime = DateTimeUtil.getDayLastTime(endDay.getTime());
|
|
Date dayLastTime = DateTimeUtil.getDayLastTime(endDay.getTime());
|
|
long count = (dayLastTime.getTime() + 1000 - startDay.getTime()) / (86400000);
|
|
long count = (dayLastTime.getTime() + 1000 - startDay.getTime()) / (86400000);
|
|
@@ -368,9 +380,8 @@ public class PdfServiceImpl extends ServiceImpl<WindTowerDataParentTableMapper,
|
|
for (WindTowerInfo windTowerInfo : windTowerInfoList) {
|
|
for (WindTowerInfo windTowerInfo : windTowerInfoList) {
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
HashMap<String, Object> hashMap = new HashMap<>();
|
|
HashMap<String, Object> hashMap = new HashMap<>();
|
|
- WindTowerDataParentTable firstData = windTowerDataParentTableService.getFirstData(windTowerInfo.getEquipmentNo());
|
|
|
|
- WindTowerDataParentTable lastData = windTowerDataParentTableService.getLastData(windTowerInfo.getEquipmentNo());
|
|
|
|
- hashMap.put("time", sdf.format(firstData.getTime()) + " - " + sdf.format(lastData.getTime()));
|
|
|
|
|
|
+ Map<String, Long> startAndEnd = prophaseWeatherDataService.getDataTimeStartAndEnd(windTowerInfo.getEquipmentNo());
|
|
|
|
+ hashMap.put("time", sdf.format(new Date(startAndEnd.get("startTime"))) + " - " + sdf.format(new Date(startAndEnd.get("endTime"))));
|
|
hashMap.put("eqId", windTowerInfo.getEquipmentNo());
|
|
hashMap.put("eqId", windTowerInfo.getEquipmentNo());
|
|
timeList.add(hashMap);
|
|
timeList.add(hashMap);
|
|
}
|
|
}
|
|
@@ -389,21 +400,19 @@ public class PdfServiceImpl extends ServiceImpl<WindTowerDataParentTableMapper,
|
|
ArrayList<Map<String, Object>> timeList = new ArrayList<>();
|
|
ArrayList<Map<String, Object>> timeList = new ArrayList<>();
|
|
for (WindTowerInfo windTowerInfo : collect) {
|
|
for (WindTowerInfo windTowerInfo : collect) {
|
|
HashMap<String, Object> hashMap = new HashMap<>();
|
|
HashMap<String, Object> hashMap = new HashMap<>();
|
|
- WindTowerDataParentTable firstData = windTowerDataParentTableService.getFirstData(windTowerInfo.getEquipmentNo());
|
|
|
|
- WindTowerDataParentTable lastData = windTowerDataParentTableService.getLastData(windTowerInfo.getEquipmentNo());
|
|
|
|
-
|
|
|
|
|
|
+ Map<String, Long> startAndEnd = prophaseWeatherDataService.getDataTimeStartAndEnd(windTowerInfo.getEquipmentNo());
|
|
//获取去年数据截止的时间
|
|
//获取去年数据截止的时间
|
|
- Date yearDay = DateTimeUtil.getYearDay(lastData.getTime().getTime());
|
|
|
|
|
|
+ Date yearDay = DateTimeUtil.getYearDay(startAndEnd.get("endTime"));
|
|
Date startTime;
|
|
Date startTime;
|
|
|
|
|
|
- if (firstData.getTime().getTime() < yearDay.getTime()) {
|
|
|
|
|
|
+ if (startAndEnd.get("startTime") < yearDay.getTime()) {
|
|
startTime = DateUtil.offsetMonth(yearDay, 1);
|
|
startTime = DateUtil.offsetMonth(yearDay, 1);
|
|
} else {
|
|
} else {
|
|
- startTime = firstData.getTime();
|
|
|
|
|
|
+ startTime = new Date(startAndEnd.get("startTime"));
|
|
}
|
|
}
|
|
|
|
|
|
hashMap.put("startTime", startTime);
|
|
hashMap.put("startTime", startTime);
|
|
- hashMap.put("endTime", lastData.getTime());
|
|
|
|
|
|
+ hashMap.put("endTime", new Date(startAndEnd.get("endTime")));
|
|
hashMap.put("eqId", windTowerInfo.getEquipmentNo());
|
|
hashMap.put("eqId", windTowerInfo.getEquipmentNo());
|
|
timeList.add(hashMap);
|
|
timeList.add(hashMap);
|
|
}
|
|
}
|
|
@@ -1416,7 +1425,7 @@ public class PdfServiceImpl extends ServiceImpl<WindTowerDataParentTableMapper,
|
|
BigDecimal aveYearTurInsity = new BigDecimal(0);
|
|
BigDecimal aveYearTurInsity = new BigDecimal(0);
|
|
//过滤为0的数据
|
|
//过滤为0的数据
|
|
List<BigDecimal> collect = yearResults.stream().filter(w -> w.compareTo(new BigDecimal(0)) != 0).collect(Collectors.toList());
|
|
List<BigDecimal> collect = yearResults.stream().filter(w -> w.compareTo(new BigDecimal(0)) != 0).collect(Collectors.toList());
|
|
- if(collect.size() > 0){
|
|
|
|
|
|
+ if (collect.size() > 0) {
|
|
aveYearTurInsity = collect.stream().reduce(BigDecimal.ZERO, BigDecimal::add).divide(BigDecimal.valueOf(collect.size()), 2, RoundingMode.HALF_UP);
|
|
aveYearTurInsity = collect.stream().reduce(BigDecimal.ZERO, BigDecimal::add).divide(BigDecimal.valueOf(collect.size()), 2, RoundingMode.HALF_UP);
|
|
}
|
|
}
|
|
map.put("yearTurInsity", yearResults);
|
|
map.put("yearTurInsity", yearResults);
|