|
@@ -1,18 +1,21 @@
|
|
|
package com.usky.backend.service.impl;
|
|
|
|
|
|
+import cn.hutool.db.meta.Table;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
-import com.usky.backend.domain.DataRealTime;
|
|
|
-import com.usky.backend.domain.MetricItemVo;
|
|
|
-import com.usky.backend.domain.StatusVO;
|
|
|
+import com.usky.backend.domain.*;
|
|
|
+import com.usky.backend.domain.request.HistoryQueryVo;
|
|
|
import com.usky.backend.domain.request.LastQueryVo;
|
|
|
+import com.usky.backend.domain.response.HistoryResultVo;
|
|
|
import com.usky.backend.domain.response.LastResultVo;
|
|
|
-import com.usky.backend.service.DataQueryService;
|
|
|
-import com.usky.backend.service.DataRealTimeService;
|
|
|
+import com.usky.backend.service.*;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
@@ -22,6 +25,212 @@ public class DataQueryServiceImpl implements DataQueryService {
|
|
|
@Autowired
|
|
|
private DataRealTimeService dataRealTimeService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private DataVdHistoryService dataVdHistoryService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private DataEgHistoryService dataEgHistoryService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private DataLgHistoryService dataLgHistoryService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private DataGrHistoryService dataGrHistoryService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private DataEvHistoryService dataEvHistoryService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private DataLcHistoryService dataLcHistoryService;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public HistoryResultVo historyMetric(String deviceId, String metric, String startTime, String endTime,Integer deviceType){
|
|
|
+
|
|
|
+ List<MetricItemVo> items = new ArrayList<>();
|
|
|
+ if(deviceType == 501){
|
|
|
+ LambdaQueryWrapper<DataVdHistory> vdQuery = Wrappers.lambdaQuery();
|
|
|
+ vdQuery.select(DataVdHistory::getAttributeData,DataVdHistory::getDataTime)
|
|
|
+ .eq(DataVdHistory::getDeviceId,deviceId)
|
|
|
+ .eq(DataVdHistory::getAttributeName,metric)
|
|
|
+ .between(DataVdHistory::getDataTime,startTime,endTime);
|
|
|
+ List<DataVdHistory> list = dataVdHistoryService.list(vdQuery);
|
|
|
+
|
|
|
+ if(CollectionUtils.isNotEmpty(list)){
|
|
|
+ for(int i=0;i<list.size();i++){
|
|
|
+ items.add(new MetricItemVo(list.get(i).getDataTime(),list.get(i).getAttributeData()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else if(deviceType == 502){
|
|
|
+ LambdaQueryWrapper<DataEgHistory> egQuery = Wrappers.lambdaQuery();
|
|
|
+ egQuery.select(DataEgHistory::getAttributeData,DataEgHistory::getDataTime)
|
|
|
+ .eq(DataEgHistory::getDeviceId,deviceId)
|
|
|
+ .eq(DataEgHistory::getAttributeName,metric)
|
|
|
+ .between(DataEgHistory::getDataTime,startTime,endTime);
|
|
|
+ List<DataEgHistory> list = dataEgHistoryService.list(egQuery);
|
|
|
+
|
|
|
+ if(CollectionUtils.isNotEmpty(list)){
|
|
|
+ for(int i=0;i<list.size();i++){
|
|
|
+ items.add(new MetricItemVo(list.get(i).getDataTime(),list.get(i).getAttributeData()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else if(deviceType == 503){
|
|
|
+ LambdaQueryWrapper<DataLgHistory> lgQuery = Wrappers.lambdaQuery();
|
|
|
+ lgQuery.select(DataLgHistory::getAttributeData,DataLgHistory::getDataTime)
|
|
|
+ .eq(DataLgHistory::getDeviceId,deviceId)
|
|
|
+ .eq(DataLgHistory::getAttributeName,metric)
|
|
|
+ .between(DataLgHistory::getDataTime,startTime,endTime);
|
|
|
+ List<DataLgHistory> list = dataLgHistoryService.list(lgQuery);
|
|
|
+
|
|
|
+ if(CollectionUtils.isNotEmpty(list)){
|
|
|
+ for(int i=0;i<list.size();i++){
|
|
|
+ items.add(new MetricItemVo(list.get(i).getDataTime(),list.get(i).getAttributeData()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else if(deviceType == 504){
|
|
|
+ LambdaQueryWrapper<DataGrHistory> grQuery = Wrappers.lambdaQuery();
|
|
|
+ grQuery.select(DataGrHistory::getAttributeData,DataGrHistory::getDataTime)
|
|
|
+ .eq(DataGrHistory::getDeviceId,deviceId)
|
|
|
+ .eq(DataGrHistory::getAttributeName,metric)
|
|
|
+ .between(DataGrHistory::getDataTime,startTime,endTime);
|
|
|
+ List<DataGrHistory> list = dataGrHistoryService.list(grQuery);
|
|
|
+
|
|
|
+ if(CollectionUtils.isNotEmpty(list)){
|
|
|
+ for(int i=0;i<list.size();i++){
|
|
|
+ items.add(new MetricItemVo(list.get(i).getDataTime(),list.get(i).getAttributeData()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else if(deviceType == 509){
|
|
|
+ LambdaQueryWrapper<DataEvHistory> evQuery = Wrappers.lambdaQuery();
|
|
|
+ evQuery.select(DataEvHistory::getAttributeData,DataEvHistory::getDataTime)
|
|
|
+ .eq(DataEvHistory::getDeviceId,deviceId)
|
|
|
+ .eq(DataEvHistory::getAttributeName,metric)
|
|
|
+ .between(DataEvHistory::getDataTime,startTime,endTime);
|
|
|
+ List<DataEvHistory> list = dataEvHistoryService.list(evQuery);
|
|
|
+
|
|
|
+ if(CollectionUtils.isNotEmpty(list)){
|
|
|
+ for(int i=0;i<list.size();i++){
|
|
|
+ items.add(new MetricItemVo(list.get(i).getDataTime(),list.get(i).getAttributeData()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else if(deviceType == 510){
|
|
|
+ LambdaQueryWrapper<DataLcHistory> lcQuery = Wrappers.lambdaQuery();
|
|
|
+ lcQuery.select(DataLcHistory::getAttributeData,DataLcHistory::getDataTime)
|
|
|
+ .eq(DataLcHistory::getDeviceId,deviceId)
|
|
|
+ .eq(DataLcHistory::getAttributeName,metric)
|
|
|
+ .between(DataLcHistory::getDataTime,startTime,endTime);
|
|
|
+ List<DataLcHistory> list = dataLcHistoryService.list(lcQuery);
|
|
|
+
|
|
|
+ if(CollectionUtils.isNotEmpty(list)){
|
|
|
+ for(int i=0;i<list.size();i++){
|
|
|
+ items.add(new MetricItemVo(list.get(i).getDataTime(),list.get(i).getAttributeData()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ HistoryResultVo historyResultVo = new HistoryResultVo(deviceId,metric,items);
|
|
|
+
|
|
|
+ return historyResultVo;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<HistoryResultVo> historyMetrics(HistoryQueryVo historyQueryVo){
|
|
|
+ List<HistoryResultVo> result = new ArrayList<>();
|
|
|
+ String deviceId = historyQueryVo.getDeviceId();
|
|
|
+ String startTime = historyQueryVo.getStartTime();
|
|
|
+ String endTime = historyQueryVo.getEndTime();
|
|
|
+ Integer deviceType = historyQueryVo.getDeviceType();
|
|
|
+ List<String> metrics = historyQueryVo.getMetrics();
|
|
|
+ if(CollectionUtils.isNotEmpty(metrics)){
|
|
|
+ for(int i=0;i<metrics.size();i++){
|
|
|
+ List<MetricItemVo> items = new ArrayList<>();
|
|
|
+ if(deviceType == 501){
|
|
|
+ LambdaQueryWrapper<DataVdHistory> vdQuery = Wrappers.lambdaQuery();
|
|
|
+ vdQuery.select(DataVdHistory::getAttributeData,DataVdHistory::getDataTime)
|
|
|
+ .eq(DataVdHistory::getDeviceId,deviceId)
|
|
|
+ .eq(DataVdHistory::getAttributeName,metrics.get(i))
|
|
|
+ .between(DataVdHistory::getDataTime,startTime,endTime);
|
|
|
+ List<DataVdHistory> list = dataVdHistoryService.list(vdQuery);
|
|
|
+
|
|
|
+ if(CollectionUtils.isNotEmpty(list)){
|
|
|
+ for(int j=0;j<list.size();j++){
|
|
|
+ items.add(new MetricItemVo(list.get(j).getDataTime(),list.get(j).getAttributeData()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else if(deviceType == 502){
|
|
|
+ LambdaQueryWrapper<DataEgHistory> egQuery = Wrappers.lambdaQuery();
|
|
|
+ egQuery.select(DataEgHistory::getAttributeData,DataEgHistory::getDataTime)
|
|
|
+ .eq(DataEgHistory::getDeviceId,deviceId)
|
|
|
+ .eq(DataEgHistory::getAttributeName,metrics.get(i))
|
|
|
+ .between(DataEgHistory::getDataTime,startTime,endTime);
|
|
|
+ List<DataEgHistory> list = dataEgHistoryService.list(egQuery);
|
|
|
+
|
|
|
+ if(CollectionUtils.isNotEmpty(list)){
|
|
|
+ for(int j=0;j<list.size();j++){
|
|
|
+ items.add(new MetricItemVo(list.get(j).getDataTime(),list.get(j).getAttributeData()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else if(deviceType == 503){
|
|
|
+ LambdaQueryWrapper<DataLgHistory> lgQuery = Wrappers.lambdaQuery();
|
|
|
+ lgQuery.select(DataLgHistory::getAttributeData,DataLgHistory::getDataTime)
|
|
|
+ .eq(DataLgHistory::getDeviceId,deviceId)
|
|
|
+ .eq(DataLgHistory::getAttributeName,metrics.get(i))
|
|
|
+ .between(DataLgHistory::getDataTime,startTime,endTime);
|
|
|
+ List<DataLgHistory> list = dataLgHistoryService.list(lgQuery);
|
|
|
+
|
|
|
+ if(CollectionUtils.isNotEmpty(list)){
|
|
|
+ for(int j=0;j<list.size();j++){
|
|
|
+ items.add(new MetricItemVo(list.get(j).getDataTime(),list.get(j).getAttributeData()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else if(deviceType == 504){
|
|
|
+ LambdaQueryWrapper<DataGrHistory> grQuery = Wrappers.lambdaQuery();
|
|
|
+ grQuery.select(DataGrHistory::getAttributeData,DataGrHistory::getDataTime)
|
|
|
+ .eq(DataGrHistory::getDeviceId,deviceId)
|
|
|
+ .eq(DataGrHistory::getAttributeName,metrics.get(i))
|
|
|
+ .between(DataGrHistory::getDataTime,startTime,endTime);
|
|
|
+ List<DataGrHistory> list = dataGrHistoryService.list(grQuery);
|
|
|
+
|
|
|
+ if(CollectionUtils.isNotEmpty(list)){
|
|
|
+ for(int j=0;j<list.size();j++){
|
|
|
+ items.add(new MetricItemVo(list.get(j).getDataTime(),list.get(j).getAttributeData()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else if(deviceType == 509){
|
|
|
+ LambdaQueryWrapper<DataEvHistory> evQuery = Wrappers.lambdaQuery();
|
|
|
+ evQuery.select(DataEvHistory::getAttributeData,DataEvHistory::getDataTime)
|
|
|
+ .eq(DataEvHistory::getDeviceId,deviceId)
|
|
|
+ .eq(DataEvHistory::getAttributeName,metrics.get(i))
|
|
|
+ .between(DataEvHistory::getDataTime,startTime,endTime);
|
|
|
+ List<DataEvHistory> list = dataEvHistoryService.list(evQuery);
|
|
|
+
|
|
|
+ if(CollectionUtils.isNotEmpty(list)){
|
|
|
+ for(int j=0;j<list.size();j++){
|
|
|
+ items.add(new MetricItemVo(list.get(j).getDataTime(),list.get(j).getAttributeData()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else if(deviceType == 510){
|
|
|
+ LambdaQueryWrapper<DataLcHistory> lcQuery = Wrappers.lambdaQuery();
|
|
|
+ lcQuery.select(DataLcHistory::getAttributeData,DataLcHistory::getDataTime)
|
|
|
+ .eq(DataLcHistory::getDeviceId,deviceId)
|
|
|
+ .eq(DataLcHistory::getAttributeName,metrics.get(i))
|
|
|
+ .between(DataLcHistory::getDataTime,startTime,endTime);
|
|
|
+ List<DataLcHistory> list = dataLcHistoryService.list(lcQuery);
|
|
|
+
|
|
|
+ if(CollectionUtils.isNotEmpty(list)){
|
|
|
+ for(int j=0;j<list.size();j++){
|
|
|
+ items.add(new MetricItemVo(list.get(j).getDataTime(),list.get(j).getAttributeData()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ HistoryResultVo historyResultVo = new HistoryResultVo(deviceId,metrics.get(i),items);
|
|
|
+ result.add(historyResultVo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public List<LastResultVo> last(LastQueryVo lastQueryVo){
|
|
|
List<LastResultVo> list = new ArrayList<>();
|