From bf4249273b9664073993c71db2cb444f5c66d2af Mon Sep 17 00:00:00 2001
From: lizijie <lzjiiie@163.com>
Date: Fri, 17 Sep 2021 14:14:17 +0800
Subject: [PATCH] 特殊设备历史表查询接口修改,无人机走航车秒数据补偿接口修改

---
 screen-manage/src/main/java/com/moral/api/service/SpecialDeviceService.java                 |    3 +
 screen-manage/src/main/java/com/moral/api/service/impl/HistorySecondCruiserServiceImpl.java |    5 +-
 screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceHistoryServiceImpl.java |   17 ++++++++
 screen-manage/src/main/java/com/moral/api/service/impl/HistorySecondUavServiceImpl.java     |    5 +-
 screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java        |   32 ++++++++++++++++
 5 files changed, 58 insertions(+), 4 deletions(-)

diff --git a/screen-manage/src/main/java/com/moral/api/service/SpecialDeviceService.java b/screen-manage/src/main/java/com/moral/api/service/SpecialDeviceService.java
index ef103fc..8733c0a 100644
--- a/screen-manage/src/main/java/com/moral/api/service/SpecialDeviceService.java
+++ b/screen-manage/src/main/java/com/moral/api/service/SpecialDeviceService.java
@@ -35,4 +35,7 @@
     //������������id���������������������������������������
     SpecialDeviceInfoDTO selectDeviceInfoDTOById(Integer deviceId);
 
+    //������������������������
+    Map<String,Object> adjustSpecialDeviceData(Map<String,Object> deviceData);
+
 }
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/HistorySecondCruiserServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/HistorySecondCruiserServiceImpl.java
index 5292088..e9d6ac2 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/HistorySecondCruiserServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/HistorySecondCruiserServiceImpl.java
@@ -8,6 +8,7 @@
 import com.moral.api.service.DeviceService;
 import com.moral.api.service.HistorySecondCruiserService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.moral.api.service.SpecialDeviceService;
 import com.moral.constant.Constants;
 import com.moral.constant.RedisConstants;
 import com.moral.util.DateUtils;
@@ -35,7 +36,7 @@
     private HistorySecondCruiserMapper historySecondCruiserMapper;
 
     @Autowired
-    private DeviceService deviceService;
+    private SpecialDeviceService specialDeviceService;
 
     @Autowired
     private RedisTemplate redisTemplate;
@@ -67,7 +68,7 @@
                 }).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
 
         //������������
-        data = deviceService.adjustSpecialDeviceData(data);
+        data = specialDeviceService.adjustSpecialDeviceData(data);
 
         HistorySecondCruiser historySecondCruiser = new HistorySecondCruiser();
         historySecondCruiser.setMac(mac);
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/HistorySecondUavServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/HistorySecondUavServiceImpl.java
index f3d7cb4..b65ee17 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/HistorySecondUavServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/HistorySecondUavServiceImpl.java
@@ -8,6 +8,7 @@
 import com.moral.api.service.DeviceService;
 import com.moral.api.service.HistorySecondUavService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.moral.api.service.SpecialDeviceService;
 import com.moral.constant.Constants;
 import com.moral.constant.RedisConstants;
 import com.moral.util.DateUtils;
@@ -35,7 +36,7 @@
     private HistorySecondUavMapper historySecondUavMapper;
 
     @Autowired
-    private DeviceService deviceService;
+    private SpecialDeviceService specialDeviceService;
 
     @Autowired
     private RedisTemplate redisTemplate;
@@ -67,7 +68,7 @@
                 }).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
 
         //������������
-        data = deviceService.adjustSpecialDeviceData(data);
+        data = specialDeviceService.adjustSpecialDeviceData(data);
 
         HistorySecondUav historySecondUav = new HistorySecondUav();
         historySecondUav.setMac(mac);
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceHistoryServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceHistoryServiceImpl.java
index ea69baa..cfc7870 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceHistoryServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceHistoryServiceImpl.java
@@ -47,6 +47,9 @@
     @Autowired(required = false)
     private OrganizationMapper organizationMapper;
 
+    @Autowired(required = false)
+    private GovMonitorPointMapper govMonitorPointMapper;
+
     @Autowired
     LogUtils logUtils;
 
@@ -82,6 +85,20 @@
             String updateTime = SDF.format(specialDeviceHistory.getUpdateTime());
             specialDeviceHistoryMap.put("createTime",createTime);
             specialDeviceHistoryMap.put("updateTime",updateTime);
+            Map<String,Object> govMonitorPointMap = new HashMap<>();
+            if (!ObjectUtils.isEmpty(specialDeviceHistory.getGuid()) && specialDeviceHistory.getGuid()!=null && !"".equals(specialDeviceHistory.getGuid())){
+                String  guid = specialDeviceHistory.getGuid().toString();
+                QueryWrapper<GovMonitorPoint> wapper_govMonitorPoint = new QueryWrapper<>();
+                wapper_govMonitorPoint.eq("is_delete",Constants.NOT_DELETE);
+                wapper_govMonitorPoint.eq("guid",guid);
+                GovMonitorPoint govMonitorPoint = govMonitorPointMapper.selectOne(wapper_govMonitorPoint);
+                if (!ObjectUtils.isEmpty(govMonitorPoint)){
+                    govMonitorPointMap.put("id",govMonitorPoint.getId());
+                    govMonitorPointMap.put("guid",govMonitorPoint.getGuid());
+                    govMonitorPointMap.put("name",govMonitorPoint.getName());
+                }
+            }
+            specialDeviceHistoryMap.put("govMonitorPoint",govMonitorPointMap);
             List<Map<String,Object>> operateList = new ArrayList<>();
             if (!ObjectUtils.isEmpty(specialDeviceHistory.getOperateIds()) && specialDeviceHistory.getOperateIds()!=null){
                 String operateIds = specialDeviceHistory.getOperateIds();
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java
index d216871..41aad0c 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java
@@ -11,6 +11,7 @@
 import com.moral.api.pojo.vo.device.DeviceVO;
 import com.moral.api.service.SpecialDeviceService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.moral.api.util.AdjustDataUtils;
 import com.moral.api.util.CacheUtils;
 import com.moral.api.util.LogUtils;
 import com.moral.constant.Constants;
@@ -75,6 +76,9 @@
 
     @Autowired
     private LogUtils logUtils;
+
+    @Autowired
+    private AdjustDataUtils adjustDataUtils;
 
     /*
      * ���redis������������������
@@ -543,6 +547,34 @@
         return specialDeviceInfoDTO;
     }
 
+    @Override
+    public Map<String, Object> adjustSpecialDeviceData(Map<String, Object> deviceData) {
+        String mac = deviceData.remove("mac").toString();
+        //���redis������������������
+        Map<String, Object> adjustFormula = redisTemplate.opsForHash().entries(RedisConstants.ADJUST + "_" + mac);
+        if (!org.springframework.util.ObjectUtils.isEmpty(adjustFormula)) {
+            SpecialDeviceInfoDTO specialDeviceInfo = getDeviceInfoFromRedis(mac);
+            if (org.springframework.util.ObjectUtils.isEmpty(specialDeviceInfo)) {
+                QueryWrapper<SpecialDevice> queryWrapper = new QueryWrapper<>();
+                queryWrapper.eq("mac", mac).eq("is_delete", Constants.NOT_DELETE);
+                SpecialDevice specialDevice = specialDeviceMapper.selectOne(queryWrapper);
+                if (specialDevice != null) {
+                    specialDeviceInfo = selectDeviceInfoDTOById(specialDevice.getId());
+                    setDeviceInfoToRedis(mac, specialDeviceInfo);
+                }
+            }
+            //������������������������������������
+            Map<String, Object> govMpInfo = (Map<String, Object>) specialDeviceInfo.getGovMonitorPoint();
+            Map<String, Object> aqiMap = null;
+            if (govMpInfo.get("guid") != null) {
+                aqiMap = (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstants.AQI_DATA, govMpInfo.get("guid").toString());
+            }
+            return adjustDataUtils.adjust(deviceData, adjustFormula, org.springframework.util.ObjectUtils.isEmpty(aqiMap) ? null : aqiMap);
+        }
+        deviceData.remove("DataTime");
+        return deviceData;
+    }
+
     private void insertOrganizationUnitAlarm(Integer orgId, Integer versionId) {
         QueryWrapper<OrganizationUnitAlarm> queryOrganizationVersionWrapper = new QueryWrapper<>();
         queryOrganizationVersionWrapper.eq("organization_id", orgId);

--
Gitblit v1.8.0