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