From 133982999dc61cd4e8acbf8a8d72aeb0251db47f Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Tue, 22 Jun 2021 14:07:02 +0800
Subject: [PATCH] screen-manage 增加报警以及因子显示单位缓存
---
screen-manage/src/main/java/com/moral/api/service/SensorService.java | 16 ++++---
screen-manage/src/main/java/com/moral/api/util/CacheUtils.java | 83 +++++++++++++++++++++++++++++++++++++++--
screen-common/src/main/java/com/moral/constant/RedisConstants.java | 9 ++++
screen-manage/src/main/java/com/moral/api/service/impl/SensorServiceImpl.java | 1
4 files changed, 97 insertions(+), 12 deletions(-)
diff --git a/screen-common/src/main/java/com/moral/constant/RedisConstants.java b/screen-common/src/main/java/com/moral/constant/RedisConstants.java
index db0ec8c..dd34339 100644
--- a/screen-common/src/main/java/com/moral/constant/RedisConstants.java
+++ b/screen-common/src/main/java/com/moral/constant/RedisConstants.java
@@ -38,4 +38,13 @@
* ������������������������
* */
public static final String STATE = "state";
+
+ /*
+ * ���������������������������������������������������������������
+ * ���������������hash
+ * key���mac
+ * value���Device
+ * ���������������Map<String,Device>
+ * */
+ public static final String DEVICE_INFO = "device_alarm_info";
}
diff --git a/screen-manage/src/main/java/com/moral/api/service/SensorService.java b/screen-manage/src/main/java/com/moral/api/service/SensorService.java
index f36fe77..c95ad47 100644
--- a/screen-manage/src/main/java/com/moral/api/service/SensorService.java
+++ b/screen-manage/src/main/java/com/moral/api/service/SensorService.java
@@ -9,7 +9,7 @@
/**
* <p>
- * ���������
+ * ���������
* </p>
*
* @author moral
@@ -19,17 +19,19 @@
public interface SensorService extends IService<Sensor> {
@Transactional
- Map<String,Object> insertOne(Sensor sensor);
+ Map<String, Object> insertOne(Sensor sensor);
@Transactional
- Map<String,Object> updateSensor(Map<String,Object> updateSensorMap);
+ Map<String, Object> updateSensor(Map<String, Object> updateSensorMap);
- Map<String,Object> getAllSensor(Map map);
+ Map<String, Object> getAllSensor(Map map);
- Map<String,Object> getAllSensorWithoutPage();
+ Map<String, Object> getAllSensorWithoutPage();
@Transactional
- Map<String,Object> deleteSensor(Map map);
+ Map<String, Object> deleteSensor(Map map);
- Map<String,Object> getSensorByFuzzy(Map map);
+ Map<String, Object> getSensorByFuzzy(Map map);
+
+ Map<String, Sensor> getAllSensorFromCache();
}
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/SensorServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/SensorServiceImpl.java
index 5086ec4..537ffe4 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/SensorServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/SensorServiceImpl.java
@@ -329,6 +329,7 @@
return resultMap;
}
+ @Override
public Map<String,Sensor> getAllSensorFromCache(){
Map<String,Sensor> sensors = redisTemplate.opsForHash().entries(RedisConstants.SENSOR_KEY);
if(ObjectUtils.isEmpty(sensors))
diff --git a/screen-manage/src/main/java/com/moral/api/util/CacheUtils.java b/screen-manage/src/main/java/com/moral/api/util/CacheUtils.java
index 958845a..8fa6e54 100644
--- a/screen-manage/src/main/java/com/moral/api/util/CacheUtils.java
+++ b/screen-manage/src/main/java/com/moral/api/util/CacheUtils.java
@@ -1,15 +1,24 @@
package com.moral.api.util;
-import com.moral.api.entity.Device;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.moral.api.entity.*;
import com.moral.api.mapper.DeviceMapper;
+import com.moral.api.mapper.SensorMapper;
+import com.moral.api.mapper.UnitConversionMapper;
+import com.moral.api.service.SensorService;
+import com.moral.api.service.SysDictDataService;
+import com.moral.constant.Constants;
import com.moral.constant.RedisConstants;
import com.moral.util.TokenUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
/**
* @ClassName CacheUtils
@@ -26,21 +35,85 @@
private static DeviceMapper deviceMapper;
+ private static SysDictDataService sysDictDataService;
+
+ private static UnitConversionMapper unitConversionMapper;
+
+ private static SensorService sensorService;
+
+ @Autowired
+ public void setSensorService(SensorService sensorService) {
+ CacheUtils.sensorService = sensorService;
+ }
+
@Autowired
public void setRedisTemplate(RedisTemplate redisTemplate) {
CacheUtils.redisTemplate = redisTemplate;
}
@Autowired
- public void setDeviceMapper(DeviceMapper deviceMapper) { CacheUtils.deviceMapper = deviceMapper; }
+ public void setDeviceMapper(DeviceMapper deviceMapper) {
+ CacheUtils.deviceMapper = deviceMapper;
+ }
- public static void clearDictionariesCache(){
+ @Autowired
+ public void setSysDictDataService(SysDictDataService sysDictDataService) {
+ CacheUtils.sysDictDataService = sysDictDataService;
+ }
+
+ @Autowired
+ public void setUnitConversionMapper(UnitConversionMapper unitConversionMapper) {
+ CacheUtils.unitConversionMapper = unitConversionMapper;
+ }
+
+ public static void clearDictionariesCache() {
redisTemplate.delete(RedisConstants.DICT_DATA_KEY);
redisTemplate.delete(RedisConstants.DICT_TYPE_KEY);
}
- public static void flushDeviceAlarmUnit(){
+ public static void flushDeviceAlarmUnit() {
List<Device> devices = deviceMapper.queryDeviceUnitAlarmInfo();
- System.out.println(devices);
+ Map<String, SysDictData> unitMap = sysDictDataService.getDictDatasByType("unit");
+ //���������������������������������������������
+ Map<String,Device> result = new HashMap<>();
+ for (Device device : devices) {
+ Version version = device.getVersion();
+ List<Sensor> sensors = version.getSensors();
+ for (Sensor sensor : sensors) {
+ //������������������
+ String unitKey = sensor.getUnitKey();
+ String showUnitKey = sensor.getShowUnitKey();
+ SysDictData unitData = unitMap.get(unitKey);
+ SysDictData showUnitData = unitMap.get(showUnitKey);
+ sensor.setUnit(unitData.getDataValue());
+ sensor.setShowUnit(showUnitData.getDataValue());
+ //������������������
+ Map<String, Sensor> allSensors = sensorService.getAllSensorFromCache();
+ String sensorName = allSensors.get(sensor.getCode()).getName();
+ sensor.setName(sensorName);
+ //������������������
+ if (!unitKey.equals(showUnitKey)) {
+ QueryWrapper<UnitConversion> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("is_delete", Constants.NOT_DELETE);
+ queryWrapper.eq("original_unit_key", unitKey);
+ queryWrapper.eq("target_unit_key", showUnitKey);
+ List<UnitConversion> unitConversions = unitConversionMapper.selectList(queryWrapper);
+ if (unitConversions.size() == 1) {
+ UnitConversion unitConversion = unitConversions.get(0);
+ if (ObjectUtils.isEmpty(unitConversion.getSensorCode()))
+ sensor.setFormula(unitConversion.getFormula());
+
+ } else {
+ for (UnitConversion unitConversion : unitConversions) {
+ if (sensor.getCode().equals(unitConversion.getSensorCode()))
+ sensor.setFormula(unitConversion.getFormula());
+ }
+ }
+ }
+ }
+ result.put(device.getMac(),device);
+ }
+ //������redis
+ redisTemplate.opsForHash().putAll(RedisConstants.DEVICE_INFO,result);
}
}
--
Gitblit v1.8.0