|
@@ -1,13 +1,19 @@
|
|
|
package com.jiayue.biz.service.impl;
|
|
|
|
|
|
+import cn.hutool.db.Entity;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.jiayue.biz.domain.EnvironmentalData;
|
|
|
import com.jiayue.biz.mapper.EnvironmentalDataMapper;
|
|
|
import com.jiayue.biz.service.EnvironmentalDataService;
|
|
|
+import com.jiayue.common.utils.DateUtil;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.sql.Timestamp;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
|
public class EnvironmentalDataServiceImpl extends ServiceImpl<EnvironmentalDataMapper, EnvironmentalData> implements EnvironmentalDataService {
|
|
@@ -16,9 +22,124 @@ public class EnvironmentalDataServiceImpl extends ServiceImpl<EnvironmentalDataM
|
|
|
baseMapper.insertOne(environmentalData);
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public List<EnvironmentalData> selectData(String weatherLookNo, Timestamp startTime, Timestamp endTime) {
|
|
|
- return baseMapper.selectEnvironmentalData(weatherLookNo, startTime, endTime);
|
|
|
+
|
|
|
+ public List<EnvironmentalData> selectAllData(String weatherLookNo, Long startTime, Long endTime) {
|
|
|
+ return baseMapper.selectEnvironmentalData(weatherLookNo, new Timestamp(startTime), new Timestamp(endTime));
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param weatherLookNo 环境监测仪编号
|
|
|
+ * @param startTime 开始时间
|
|
|
+ * @param endTime 结束时间
|
|
|
+ * @return 风速 风向 时间 集合
|
|
|
+ */
|
|
|
+ public HashMap<String, List<String>> selectWindData(String weatherLookNo, Long startTime, Long endTime) {
|
|
|
+ List<EnvironmentalData> environmentalData = baseMapper.selectEnvironmentalData(weatherLookNo, new Timestamp(startTime), new Timestamp(endTime));
|
|
|
+ HashMap<String, List<String>> dataMap = new HashMap<>();
|
|
|
+ ArrayList<String> wsList = new ArrayList<>();
|
|
|
+ ArrayList<String> wdList = new ArrayList<>();
|
|
|
+ ArrayList<String> timeList = new ArrayList<>();
|
|
|
+ for (long i = startTime; i < endTime; i = i + 600000) {
|
|
|
+ String ws = "0";
|
|
|
+ String wd = "0";
|
|
|
+ long finalI = i;
|
|
|
+ List<EnvironmentalData> environmentalDataList = environmentalData.stream().filter(e -> e.getTs().getTime() >= finalI && e.getTs().getTime() < finalI + 600000).collect(Collectors.toList());
|
|
|
+ timeList.add(DateUtil.format(new Date(i), "yyyy-MM-dd HH:mm"));
|
|
|
+ if (environmentalDataList.size() != 0) {
|
|
|
+ ws = environmentalDataList.get(0).getWs().toString();
|
|
|
+ wd = environmentalDataList.get(0).getWd().toString();
|
|
|
+ }
|
|
|
+ wsList.add(ws);
|
|
|
+ wdList.add(wd);
|
|
|
+
|
|
|
+ }
|
|
|
+ dataMap.put("wsList", wsList);
|
|
|
+ dataMap.put("wdList", wdList);
|
|
|
+ dataMap.put("timeList", timeList);
|
|
|
+ return dataMap;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param weatherLookNo 环境监测仪编号
|
|
|
+ * @param startTime 开始时间
|
|
|
+ * @param endTime 结束时间
|
|
|
+ * @return 温湿压 时间 集合
|
|
|
+ */
|
|
|
+ public HashMap<String, List<String>> selectWeatherData(String weatherLookNo, Long startTime, Long endTime) {
|
|
|
+ List<EnvironmentalData> environmentalData = baseMapper.selectEnvironmentalData(weatherLookNo, new Timestamp(startTime), new Timestamp(endTime));
|
|
|
+ HashMap<String, List<String>> dataMap = new HashMap<>();
|
|
|
+ ArrayList<String> tList = new ArrayList<>();
|
|
|
+ ArrayList<String> rhList = new ArrayList<>();
|
|
|
+ ArrayList<String> paList = new ArrayList<>();
|
|
|
+ ArrayList<String> timeList = new ArrayList<>();
|
|
|
+ for (long i = startTime; i < endTime; i = i + 600000) {
|
|
|
+ String t = "0";
|
|
|
+ String rh = "0";
|
|
|
+ String pa = "0";
|
|
|
+ long finalI = i;
|
|
|
+ List<EnvironmentalData> environmentalDataList = environmentalData.stream().filter(e -> e.getTs().getTime() >= finalI && e.getTs().getTime() < finalI + 600000).collect(Collectors.toList());
|
|
|
+ if (environmentalDataList.size() != 0) {
|
|
|
+ t = environmentalDataList.get(0).getT().toString();
|
|
|
+ rh = environmentalDataList.get(0).getRh().toString();
|
|
|
+ pa = environmentalDataList.get(0).getPa().toString();
|
|
|
+ }
|
|
|
+ timeList.add(DateUtil.format(new Date(i), "yyyy-MM-dd HH:mm"));
|
|
|
+ tList.add(t);
|
|
|
+ rhList.add(rh);
|
|
|
+ paList.add(pa);
|
|
|
+
|
|
|
+ }
|
|
|
+ dataMap.put("tList", tList);
|
|
|
+ dataMap.put("rhList", rhList);
|
|
|
+ dataMap.put("paList", paList);
|
|
|
+ dataMap.put("timeList", timeList);
|
|
|
+ return dataMap;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param weatherLookNo 环境监测仪编号
|
|
|
+ * @return 风速风向时间 集合 温湿压
|
|
|
+ */
|
|
|
+ public HashMap<String, Object> selectHomePage(String weatherLookNo) {
|
|
|
+ Long startTime = DateUtil.beginOfDay(new Date()).getTime();
|
|
|
+ Long endTime = new Date().getTime();
|
|
|
+ List<EnvironmentalData> environmentalData = baseMapper.selectEnvironmentalData(weatherLookNo, new Timestamp(startTime), new Timestamp(endTime));
|
|
|
+ HashMap<String, Object> dataMap = new HashMap<>();
|
|
|
+ ArrayList<String> wsList = new ArrayList<>();
|
|
|
+ ArrayList<String> wdList = new ArrayList<>();
|
|
|
+ ArrayList<String> timeList = new ArrayList<>();
|
|
|
+ for (long i = startTime; i < endTime; i = i + 600000) {
|
|
|
+ String ws = "0";
|
|
|
+ String wd = "0";
|
|
|
+ long finalI = i;
|
|
|
+ List<EnvironmentalData> environmentalDataList = environmentalData.stream().filter(e -> e.getTs().getTime() >= finalI && e.getTs().getTime() < finalI + 600000).collect(Collectors.toList());
|
|
|
+ timeList.add(DateUtil.format(new Date(i), "yyyy-MM-dd HH:mm"));
|
|
|
+ if (environmentalDataList.size() != 0) {
|
|
|
+ ws = environmentalDataList.get(0).getWs().toString();
|
|
|
+ wd = environmentalDataList.get(0).getWd().toString();
|
|
|
+ }
|
|
|
+ wsList.add(ws);
|
|
|
+ wdList.add(wd);
|
|
|
+
|
|
|
+ }
|
|
|
+ //获取最后一条的时间
|
|
|
+ List<Entity> lastData = baseMapper.getLastData(weatherLookNo);
|
|
|
+ Timestamp timeEnd = (Timestamp) lastData.get(0).get("last (ts)");
|
|
|
+ List<EnvironmentalData> environmentalDataList = environmentalData.stream().filter(e -> e.getTs().getTime() == timeEnd.getTime()).collect(Collectors.toList());
|
|
|
+ if(environmentalDataList.size() != 0){
|
|
|
+ dataMap.put("t", environmentalDataList.get(0).getT());
|
|
|
+ dataMap.put("rh", environmentalDataList.get(0).getRh());
|
|
|
+ dataMap.put("pa", environmentalDataList.get(0).getPa());
|
|
|
+ }
|
|
|
+ dataMap.put("wsList", wsList);
|
|
|
+ dataMap.put("wdList", wdList);
|
|
|
+ dataMap.put("timeList", timeList);
|
|
|
+ return dataMap;
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|