From 03791ab057f15d102bc20b83c687f8a8028a4b8f Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Tue, 28 Dec 2021 13:47:38 +0800
Subject: [PATCH] 行业贡献率update

---
 screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java |   68 +++++++++++++++++++++++++++++----
 1 files changed, 59 insertions(+), 9 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 4ff6a07..99b8bef 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
@@ -2,24 +2,34 @@
 
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+
+import com.moral.api.entity.HistorySecondCruiser;
+import com.moral.api.entity.Organization;
 import com.moral.api.entity.SpecialDevice;
 import com.moral.api.entity.SpecialDeviceHistory;
-import com.moral.api.mapper.HistorySecondSpecialMapper;
+import com.moral.api.mapper.HistorySecondCruiserMapper;
 import com.moral.api.mapper.SpecialDeviceMapper;
+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.constant.Constants;
+
+import com.moral.util.DateUtils;
 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.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -33,24 +43,40 @@
 public class SpecialDeviceServiceImpl extends ServiceImpl<SpecialDeviceMapper, SpecialDevice> implements SpecialDeviceService {
 
     @Autowired
-    private HistorySecondSpecialMapper historySecondSpecialMapper;
+    private HistorySecondCruiserMapper HistorySecondCruiserMapper;
 
     @Autowired
     private SpecialDeviceHistoryService specialDeviceHistoryService;
 
+    @Autowired
+    OrganizationService organizationService;
+
+    @Autowired
+    SpecialDeviceMapper specialDeviceMapper;
+
+    @Autowired
+    private HistorySecondCruiserMapper historySecondCruiserMapper;
+
+    @Autowired
+    RedisTemplate redisTemplate;
+
     private final static Double dis = 50d;
 
     @Override
-    public List<Map<String, Object>> getCarsInfo() {
+    public List<Map<String, Object>> selectCruisers() {
         //������������������������
         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");
+        //���������������������
+        List<Organization> organizations = organizationService.getChildrenOrganizationsById(orgId);
+        List<Integer> orgIds = organizations.stream().map(Organization::getId).collect(Collectors.toList());
+        orgIds.add(orgId);
         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);
+                .eq("special_type", Constants.SPECIAL_DEVICE_CRUISER)
+                .eq("is_delete", Constants.NOT_DELETE)
+                .in("organization_id", orgIds);
         return specialDeviceHistoryService.listMaps(queryWrapper);
     }
 
@@ -62,14 +88,14 @@
         Integer orgId = (Integer) orgInfo.get("id");
         params.put("orgId", orgId);
         //������������������������������������
-        List<Map<String, Object>> data = historySecondSpecialMapper.getSpecialDeviceData(params);
+        List<Map<String, Object>> data = HistorySecondCruiserMapper.getCruiserData(params);
         if (ObjectUtils.isEmpty(data)) {
             return data;
         }
         data.removeIf(o -> {
             Map<String, Object> value = JSONObject.parseObject(o.remove("value").toString(), Map.class);
-            Object flylon = value.get("flylon");
-            Object flylat = value.get("flylat");
+            Object flylon = value.get(Constants.SENSOR_CODE_LON);
+            Object flylat = value.get(Constants.SENSOR_CODE_LAT);
             if (ObjectUtils.isEmpty(flylon) || ObjectUtils.isEmpty(flylat)) {
                 return true;
             }
@@ -84,6 +110,30 @@
         return filterData(data);
     }
 
+    @Override
+    public SpecialDevice getSpecialDeviceMapByMac(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;
+    }
+
+    @Override
+    public List<String> getDatesByMac(String mac) {
+        Map<String, Object> userInfo = (Map) TokenUtils.getUserInfo();
+        Map<String, Object> orgInfo = (Map) userInfo.get("organization");
+        Integer orgId = (Integer) orgInfo.get("id");
+
+        Map<String, Object> params = new HashMap<>();
+        params.put("orgId", orgId);
+        params.put("mac", mac);
+        Date start = DateUtils.addMonths(new Date(), -6);
+        params.put("start", DateUtils.dateToDateString(start));
+        return historySecondCruiserMapper.getDates(params);
+    }
+
+
     //������������������������
     private List<Map<String, Object>> filterData(List<Map<String, Object>> data) {
         List<Map<String, Object>> result = new ArrayList<>();

--
Gitblit v1.8.0