From db070ecf27c6df1e9f7db15678d4eccab25ef39a Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Thu, 29 Jul 2021 10:25:47 +0800
Subject: [PATCH] screen-api                 字典类型以及字典数据添加日志功能

---
 screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java |   29 +++++++++++++++--------------
 1 files changed, 15 insertions(+), 14 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 6e0e9b3..c7916b7 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
@@ -90,21 +90,21 @@
      * ���redis������������������
      * */
     private Map<String, Object> getDeviceInfoFromRedis(String mac) {
-        return (Map<String, Object>) redisTemplate.opsForValue().get(RedisConstants.DEVICE + mac);
+        return (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstants.DEVICE, mac);
     }
 
     /*
      * ������������������redis
      */
     private void setDeviceInfoToRedis(String mac, Map<String, Object> deviceInfo) {
-        redisTemplate.opsForValue().set(RedisConstants.DEVICE + mac, deviceInfo);
+        redisTemplate.opsForHash().put(RedisConstants.DEVICE, mac, deviceInfo);
     }
 
     /*
      * ���redis������������������
      */
     private void delDeviceInfoFromRedis(String mac) {
-        redisTemplate.delete(RedisConstants.DEVICE + mac);
+        redisTemplate.opsForHash().delete(RedisConstants.DEVICE, mac);
     }
 
     @Override
@@ -127,7 +127,7 @@
         //������������������
         HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
         StringBuilder content = new StringBuilder();
-        content.append("������������������").append(device.getName()).append("���").append("mac���").append(mac);
+        content.append("������������������").append(device.getName()).append(":").append("mac���").append(mac);
         logUtils.saveOperationForManage(request, content.toString(), Constants.INSERT_OPERATE_TYPE);
     }
 
@@ -203,7 +203,7 @@
                 Object o1 = method.invoke(oldDevice);
                 Object o2 = method.invoke(device);
                 if (o2 != null) {
-                    content.append(fieldName).append("���").append(o1).append("-->").append(o2).append("���");
+                    content.append(fieldName).append("���").append(o1).append("-->").append(o2).append(":");
                 }
 
             } catch (Exception e) {
@@ -428,9 +428,9 @@
             Object areaCode = monitorPoint.get("areaCode");
             Object cityCode = monitorPoint.get("cityCode");
 
-            Map<String, Object> aqiMap = redisTemplate.opsForHash().entries(RedisConstants.AQI_DATA + areaCode);
+            Map<String, Object> aqiMap = (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstants.AQI_DATA, areaCode);
             if (ObjectUtils.isEmpty(aqiMap)) {
-                aqiMap = redisTemplate.opsForHash().entries(RedisConstants.AQI_DATA + cityCode);
+                aqiMap = (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstants.AQI_DATA, cityCode);
             }
             return adjustDataUtils.adjust(deviceData, adjustFormula, ObjectUtils.isEmpty(aqiMap) ? null : aqiMap);
         }
@@ -438,6 +438,7 @@
     }
 
     @Override
+    @Transactional
     public void judgeDeviceState(Map<String, Object> deviceData) {
         String mac = deviceData.remove("mac").toString();
         Device device = (Device) redisTemplate.opsForHash().get(RedisConstants.DEVICE_INFO, mac);
@@ -451,19 +452,19 @@
             if (StringUtils.isEmpty(alarmLevel)) {
                 continue;
             }
-            List<Double> list = JSONObject.parseObject(alarmLevel, List.class);
+            List<Object> list = JSONObject.parseObject(alarmLevel, List.class);
             String sensorCode = sensor.getCode();
             //������������
             String formula = sensor.getFormula();
             //������������������������
             String sensorValue = (String) deviceData.get(sensorCode);
-            double value = Double.parseDouble(String.format("%.4f", sensorValue));
+            double value = Double.parseDouble(sensorValue);
             //������������
             if (formula != null) {
                 //������������������
                 sensorValue = formula.replace("{0}", sensorValue);
                 expression = AviatorEvaluator.compile(sensorValue);
-                value = Double.parseDouble(String.format("%.4f", expression.execute()));
+                value = Double.parseDouble(expression.execute().toString());
             }
             int sensorState = judgeState(list, value);
             if (sensorState > state) {
@@ -472,17 +473,17 @@
         }
         //������������������
         UpdateWrapper<Device> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.eq("id", device.getId()).set("state", state);
+        updateWrapper.eq("id", device.getId()).set("state", String.valueOf(state));
         deviceMapper.update(null, updateWrapper);
     }
 
     //���������������������������
-    private int judgeState(List<Double> levels, Double data) {
+    private int judgeState(List<Object> levels, Double data) {
         int state = 1;
         for (int i = levels.size() - 1; i >= 0; i--) {
-            Double level = levels.get(i);
+            Double level = Double.parseDouble(levels.get(i).toString());
             if (data >= level) {
-                state = i + 2;
+                state = i + 1;
                 break;
             }
         }

--
Gitblit v1.8.0