From 9cc9f173f8db89135610eba2c8af79c17b24dfdf Mon Sep 17 00:00:00 2001 From: kaiyu <404897439@qq.com> Date: Wed, 08 Sep 2021 17:21:19 +0800 Subject: [PATCH] screen-api 增加获取组织所有无人机飞行时间接口 --- screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java | 90 +++++++++++++++++++++++++++++++++------------ 1 files changed, 66 insertions(+), 24 deletions(-) diff --git a/screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java index 7b0bdc8..fd19d65 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java @@ -3,25 +3,26 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.moral.api.entity.HistorySecondSpecial; -import com.moral.api.entity.Sensor; +import com.moral.api.entity.Organization; import com.moral.api.entity.SpecialDevice; -import com.moral.api.entity.SysDictData; +import com.moral.api.entity.SpecialDeviceHistory; import com.moral.api.mapper.HistorySecondSpecialMapper; import com.moral.api.mapper.SpecialDeviceMapper; -import com.moral.api.service.HistorySecondSpecialService; -import com.moral.api.service.SensorService; +import com.moral.api.service.OrganizationService; +import com.moral.api.service.SpecialDeviceHistoryService; import com.moral.api.service.SpecialDeviceService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.moral.api.service.SysDictDataService; import com.moral.constant.Constants; -import com.moral.util.DateUtils; +import com.moral.constant.RedisConstants; import com.moral.util.GeodesyUtils; +import com.moral.util.TokenUtils; 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.Date; import java.util.List; import java.util.Map; @@ -40,38 +41,79 @@ private HistorySecondSpecialMapper historySecondSpecialMapper; @Autowired - private SensorService sensorService; + private SpecialDeviceHistoryService specialDeviceHistoryService; @Autowired - private SysDictDataService sysDictDataService; + OrganizationService organizationService; + + @Autowired + SpecialDeviceMapper specialDeviceMapper; + @Autowired + RedisTemplate redisTemplate; private final static Double dis = 50d; @Override + public List<Map<String, Object>> getCarsInfo() { + //������������������������ + Map<String, Object> userInfo = (Map<String, Object>) TokenUtils.getUserInfo(); + Map<String, Object> orgInfo = (Map<String, Object>) userInfo.get("organization"); + Integer orgId = (Integer) orgInfo.get("id"); + QueryWrapper<SpecialDeviceHistory> queryWrapper = new QueryWrapper<>(); + queryWrapper.select("mac", "name") + .eq("organization_id", orgId) + .eq("special_type", Constants.SPECIAL_DEVICE_CAR) + .eq("is_delete", Constants.NOT_DELETE); + return specialDeviceHistoryService.listMaps(queryWrapper); + } + + @Override public List<Map<String, Object>> carTrajectory(Map<String, Object> params) { params.put("dateFormat", "%Y-%m-%d %H:%i:%s"); - - //��������������������� - /*QueryWrapper<Sensor> queryWrapper = new QueryWrapper<>(); - queryWrapper.select("default_unit_key").eq("code", sensorCode); - String defaultUnitKey = sensorService.getOne(queryWrapper).getDefaultUnitKey(); - QueryWrapper<SysDictData> sysDictDataQueryWrapper = new QueryWrapper<>(); - sysDictDataQueryWrapper.select("dataValue").eq("dict_type_id", 14).eq("dataKey", defaultUnitKey); - String sensorUnit = sysDictDataService.getOne(sysDictDataQueryWrapper).getDataValue(); - - params.put("sensorUnit", sensorUnit);*/ + Map<String, Object> userInfo = (Map<String, Object>) TokenUtils.getUserInfo(); + Map<String, Object> orgInfo = (Map<String, Object>) userInfo.get("organization"); + Integer orgId = (Integer) orgInfo.get("id"); + params.put("orgId", orgId); //������������������������������������ List<Map<String, Object>> data = historySecondSpecialMapper.getSpecialDeviceData(params); + if (ObjectUtils.isEmpty(data)) { + return data; + } data.removeIf(o -> { - //������ - double lng = Double.parseDouble(o.get(Constants.SENSOR_CODE_LON).toString()); - //������ - double lat = Double.parseDouble(o.get(Constants.SENSOR_CODE_LAT).toString()); - return lng < 70 || lng > 150 || lat > 60 || lat < 20; + Map<String, Object> value = JSONObject.parseObject(o.remove("value").toString(), Map.class); + Object flylon = value.get("flylon"); + Object flylat = value.get("flylat"); + if (ObjectUtils.isEmpty(flylon) || ObjectUtils.isEmpty(flylat)) { + return true; + } + double lon = Double.parseDouble(flylon.toString()); + double lat = Double.parseDouble(flylat.toString()); + if (lon < 70 || lon > 150 || lat < 20 || lat > 60) { + return true; + } + o.putAll(value); + return false; }); return filterData(data); } + @Override + public Map<String,Object> getSpecialDeviceMapByMac(String mac) { + //������������������ + Map<String,Object> specialDeviceMap = (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstants.DEVICE,mac); + return specialDeviceMap; + } + + @Override + public SpecialDevice getSpecialDeviceByMac(String mac) { + QueryWrapper<SpecialDevice> queryWrapper = new QueryWrapper(); + queryWrapper.eq("mac",mac); + queryWrapper.eq("is_delete",Constants.NOT_DELETE); + SpecialDevice specialDevice = specialDeviceMapper.selectOne(queryWrapper); + return specialDevice; + } + + //������������������������ private List<Map<String, Object>> filterData(List<Map<String, Object>> data) { List<Map<String, Object>> result = new ArrayList<>(); -- Gitblit v1.8.0