From 0d24ea21533d9135c8963a28d8d45bfd207b8ec6 Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Thu, 01 Jul 2021 14:17:22 +0800
Subject: [PATCH] update

---
 screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java |   65 ++++++++++++++++----------------
 1 files changed, 32 insertions(+), 33 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 c1b48df..6e0e9b3 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
@@ -12,6 +12,7 @@
 import com.moral.api.service.DeviceService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
+import com.moral.api.util.CacheUtils;
 import com.moral.api.util.AdjustDataUtils;
 import com.moral.api.util.LogUtils;
 import com.moral.constant.Constants;
@@ -33,12 +34,10 @@
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
-import java.util.stream.Collectors;
 
 import javax.servlet.http.HttpServletRequest;
 
@@ -91,46 +90,21 @@
      * ���redis������������������
      * */
     private Map<String, Object> getDeviceInfoFromRedis(String mac) {
-        Map<String, Object> deviceInfo = (Map<String, Object>) redisTemplate.opsForValue().get(getDeviceKey(mac));
-        return deviceInfo;
+        return (Map<String, Object>) redisTemplate.opsForValue().get(RedisConstants.DEVICE + mac);
     }
 
     /*
      * ������������������redis
      */
     private void setDeviceInfoToRedis(String mac, Map<String, Object> deviceInfo) {
-        redisTemplate.opsForValue().set(getDeviceKey(mac), deviceInfo);
+        redisTemplate.opsForValue().set(RedisConstants.DEVICE + mac, deviceInfo);
     }
 
     /*
      * ���redis������������������
      */
     private void delDeviceInfoFromRedis(String mac) {
-        redisTemplate.delete(getDeviceKey(mac));
-    }
-
-    /*
-     * ���������������������redis������key
-     */
-    private String getDeviceKey(String mac) {
-        return keysConnect(RedisConstants.DEVICE, mac);
-    }
-
-    /*
-     * ���redis������������������
-     * */
-    private Map<String, Object> getOrgAlarmConfigFromRedis(String orId) {
-        return null;
-    }
-
-    //redis key������
-    private String keysConnect(String... keys) {
-        StringBuilder key = new StringBuilder(keys[0]);
-        for (int i = 1; i < keys.length; i++) {
-            key.append("_");
-            key.append(keys[i]);
-        }
-        return key.toString().toLowerCase();
+        redisTemplate.delete(RedisConstants.DEVICE + mac);
     }
 
     @Override
@@ -148,6 +122,8 @@
         delDeviceInfoFromRedis(mac);
         //������������������redis
         setDeviceInfoToRedis(mac, deviceInfo);
+        //������deviceInfo������
+        CacheUtils.refreshDeviceAlarmInfo();
         //������������������
         HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
         StringBuilder content = new StringBuilder();
@@ -165,6 +141,12 @@
         String mac = device.getMac();
         //���redis���������������������
         delDeviceInfoFromRedis(mac);
+        //���������������������������
+        Integer versionId = device.getDeviceVersionId();
+        Integer orgId = device.getOrganizationId();
+        deleteOrganizationUnitAlarm(orgId, versionId);
+        //������deviceInfo������
+        CacheUtils.refreshDeviceAlarmInfo();
         //������������������
         HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
         StringBuilder content = new StringBuilder();
@@ -199,6 +181,8 @@
         Map<String, Object> deviceInfo = selectDeviceInfoById(deviceId);
         //������������������redis
         setDeviceInfoToRedis(mac, deviceInfo);
+        //������deviceInfo������
+        CacheUtils.refreshDeviceAlarmInfo();
         //������������������
         HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
         StringBuilder content = new StringBuilder();
@@ -435,7 +419,22 @@
 
     @Override
     public Map<String, Object> adjustDeviceData(Map<String, Object> deviceData) {
-        return adjustDataUtils.adjust(deviceData);
+        String mac = deviceData.get("mac").toString();
+        //���redis������������������
+        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");
+            Object areaCode = monitorPoint.get("areaCode");
+            Object cityCode = monitorPoint.get("cityCode");
+
+            Map<String, Object> aqiMap = redisTemplate.opsForHash().entries(RedisConstants.AQI_DATA + areaCode);
+            if (ObjectUtils.isEmpty(aqiMap)) {
+                aqiMap = redisTemplate.opsForHash().entries(RedisConstants.AQI_DATA + cityCode);
+            }
+            return adjustDataUtils.adjust(deviceData, adjustFormula, ObjectUtils.isEmpty(aqiMap) ? null : aqiMap);
+        }
+        return deviceData;
     }
 
     @Override
@@ -458,13 +457,13 @@
             String formula = sensor.getFormula();
             //������������������������
             String sensorValue = (String) deviceData.get(sensorCode);
-            double value = Double.parseDouble(String.format("%.3f", sensorValue));
+            double value = Double.parseDouble(String.format("%.4f", sensorValue));
             //������������
             if (formula != null) {
                 //������������������
                 sensorValue = formula.replace("{0}", sensorValue);
                 expression = AviatorEvaluator.compile(sensorValue);
-                value = Double.parseDouble(String.format("%.3f", expression.execute()));
+                value = Double.parseDouble(String.format("%.4f", expression.execute()));
             }
             int sensorState = judgeState(list, value);
             if (sensorState > state) {

--
Gitblit v1.8.0