From 34e183fcd9286ec4f419b048884c661101bddc42 Mon Sep 17 00:00:00 2001 From: kaiyu <404897439@qq.com> Date: Mon, 13 Sep 2021 14:12:30 +0800 Subject: [PATCH] screen-api 获取无人机飞行日期按照时间排序 --- screen-api/src/main/java/com/moral/api/service/impl/HistoryFiveMinutelyServiceImpl.java | 48 +++++++++++++++++++++++++++++++++--------------- 1 files changed, 33 insertions(+), 15 deletions(-) diff --git a/screen-api/src/main/java/com/moral/api/service/impl/HistoryFiveMinutelyServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/HistoryFiveMinutelyServiceImpl.java index dac6205..c9701ec 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/HistoryFiveMinutelyServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/HistoryFiveMinutelyServiceImpl.java @@ -1,6 +1,8 @@ package com.moral.api.service.impl; import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.moral.api.entity.Device; import com.moral.api.entity.HistoryFiveMinutely; import com.moral.api.entity.MonitorPoint; @@ -14,19 +16,13 @@ import com.moral.api.service.MonitorPointService; import com.moral.constant.RedisConstants; import com.moral.util.DateUtils; - import io.lettuce.core.GeoCoordinates; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * <p> @@ -41,12 +37,10 @@ @Autowired MonitorPointService monitorPointService; - @Autowired RedisTemplate redisTemplate; - @Autowired - private HistoryFiveMinutelyMapper historyFiveMinutelyMapper; + HistoryFiveMinutelyMapper historyFiveMinutelyMapper; @Override public List<DeviceAndFiveMinuteDataDTO> queryDeviceAndFiveMinuteData(QueryDeviceAndFiveMinuteDataForm form) { @@ -67,18 +61,38 @@ for (Device device : devices) { DeviceAndFiveMinuteDataDTO dto = new DeviceAndFiveMinuteDataDTO(); String mac = device.getMac(); + //������������������ Map<String, Object> sensorValues = (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstants.DATA_FIVE_MINUTES, mac); - Map<String, Object> value = new HashMap<>(); - if (sensorValues != null && sensorValues.get(sensorCode) != null) - value.put(sensorCode, sensorValues.get(sensorCode)); + //������������������������������������ + HistoryFiveMinutely dbHistoryFiveMinutely = queryLastDataByMac(mac); + if(ObjectUtils.isEmpty(dbHistoryFiveMinutely)) + continue; + String dbDataStr = dbHistoryFiveMinutely.getValue(); + sensorValues = JSON.parseObject(dbDataStr, HashMap.class); + Map<String,Object> sensorValue = new HashMap<>(); + if (sensorValues!=null&&sensorValues.get(sensorCode) != null) + sensorValue.put(sensorCode,sensorValues.get(sensorCode)); else - value.put(sensorCode, null); + sensorValue.put(sensorCode,null); dto.setDevice(device); - dto.setSensorValue(value); + dto.setSensorValue(sensorValue); dtos.add(dto); } return dtos; } + + @Override + public HistoryFiveMinutely queryLastDataByMac(String mac) { + QueryWrapper<HistoryFiveMinutely> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("mac",mac); + queryWrapper.orderByDesc("time"); + queryWrapper.last("limit 0,1"); + List<HistoryFiveMinutely> historyFiveMinutelies = historyFiveMinutelyMapper.selectList(queryWrapper); + if(ObjectUtils.isEmpty(historyFiveMinutelies)) + return null; + return historyFiveMinutelies.get(0); + } + @Override public List<Object> getAreaWindData(Map<String, Object> params) { @@ -272,4 +286,8 @@ list.add(laLaMap); return list; } + + + + } -- Gitblit v1.8.0