From b7f1bd1f00f3903b828d517f5b0e9cf9c5bfe6f6 Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Thu, 24 Jun 2021 09:23:09 +0800
Subject: [PATCH] update
---
screen-manage/src/main/java/com/moral/api/util/CacheUtils.java | 91 +++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 90 insertions(+), 1 deletions(-)
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 dab4e28..4975afd 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,11 +1,24 @@
package com.moral.api.util;
+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
@@ -20,14 +33,90 @@
private static RedisTemplate redisTemplate;
+ 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;
}
- public static void clearDictionariesCache(){
+ @Autowired
+ public void setDeviceMapper(DeviceMapper deviceMapper) {
+ CacheUtils.deviceMapper = deviceMapper;
+ }
+
+ @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 flushDeviceAlarmInfo() {
+ //������������
+ redisTemplate.delete(RedisConstants.DEVICE_INFO);
+ //������������������
+ List<Device> devices = deviceMapper.queryDeviceUnitAlarmInfo();
+ 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