From 6f4e852b84c577454a4876f83c7085bd360fe4fb Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Tue, 17 Aug 2021 17:07:02 +0800
Subject: [PATCH] 特殊设备数据insert

---
 screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java |   33 ++++++++++++++++++++++++++++-----
 1 files changed, 28 insertions(+), 5 deletions(-)

diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
index c7916b7..9339dc2 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
@@ -84,6 +84,9 @@
     private VersionSensorUnitMapper versionSensorUnitMapper;
 
     @Autowired
+    private SpecialDeviceMapper specialDeviceMapper;
+
+    @Autowired
     private AdjustDataUtils adjustDataUtils;
 
     /*
@@ -177,7 +180,7 @@
             insertOrganizationUnitAlarm(newOrgId, newVersionId);
         }
         //���redis���������������������
-        delDeviceInfoFromRedis(mac);
+        delDeviceInfoFromRedis(oldDevice.getMac());
         Map<String, Object> deviceInfo = selectDeviceInfoById(deviceId);
         //������������������redis
         setDeviceInfoToRedis(mac, deviceInfo);
@@ -186,7 +189,7 @@
         //������������������
         HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
         StringBuilder content = new StringBuilder();
-        content.append("������������������").append(mac).append("���");
+        content.append("������������������" + oldDevice.getMac()).append("==>").append(mac).append("���");
         Field[] fields = Device.class.getDeclaredFields();
         for (Field field : fields) {
             if (field.getName().equals("id")) {
@@ -405,7 +408,7 @@
     @Override
     public Map<String, Object> getDeviceByMac(String mac) {
         Map<String, Object> deviceInfo = getDeviceInfoFromRedis(mac);
-        if (deviceInfo == null) {
+        if (ObjectUtils.isEmpty(deviceInfo)) {
             QueryWrapper<Device> queryWrapper = new QueryWrapper<>();
             queryWrapper.eq("mac", mac).eq("is_delete", Constants.NOT_DELETE);
             Device device = deviceMapper.selectOne(queryWrapper);
@@ -419,9 +422,9 @@
 
     @Override
     public Map<String, Object> adjustDeviceData(Map<String, Object> deviceData) {
-        String mac = deviceData.get("mac").toString();
+        String mac = deviceData.remove("mac").toString();
         //���redis������������������
-        Map<String, Object> adjustFormula = redisTemplate.opsForHash().entries(RedisConstants.ADJUST + mac);
+        Map<String, Object> adjustFormula = redisTemplate.opsForHash().entries(RedisConstants.ADJUST + "_" + mac);
         if (!ObjectUtils.isEmpty(adjustFormula)) {
             Map<String, Object> deviceInfo = getDeviceByMac(mac);
             Map<String, Object> monitorPoint = (Map<String, Object>) deviceInfo.get("monitorPoint");
@@ -434,6 +437,26 @@
             }
             return adjustDataUtils.adjust(deviceData, adjustFormula, ObjectUtils.isEmpty(aqiMap) ? null : aqiMap);
         }
+        deviceData.remove("DataTime");
+        return deviceData;
+    }
+
+    @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 (!ObjectUtils.isEmpty(adjustFormula)) {
+            Organization organization = specialDeviceMapper.selectOrgByMac(mac);
+            Integer areaCode = organization.getAreaCode();
+            Integer cityCode = organization.getCityCode();
+            Map<String, Object> aqiMap = (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstants.AQI_DATA, areaCode);
+            if (ObjectUtils.isEmpty(aqiMap)) {
+                aqiMap = (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstants.AQI_DATA, cityCode);
+            }
+            return adjustDataUtils.adjust(deviceData, adjustFormula, ObjectUtils.isEmpty(aqiMap) ? null : aqiMap);
+        }
+        deviceData.remove("DataTime");
         return deviceData;
     }
 

--
Gitblit v1.8.0