From 327267727c36cef76ee554e1ad97099180cd4f13 Mon Sep 17 00:00:00 2001 From: kaiyu <404897439@qq.com> Date: Tue, 13 Jul 2021 09:08:37 +0800 Subject: [PATCH] screen-manage 单位转换信息添加缓存 --- screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java | 27 ++++++++++++++------------- 1 files changed, 14 insertions(+), 13 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 fcf29d3..8e20802 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 @@ -123,7 +123,7 @@ //������������������redis setDeviceInfoToRedis(mac, deviceInfo); //������deviceInfo������ - CacheUtils.flushDeviceAlarmInfo(); + CacheUtils.refreshDeviceAlarmInfo(); //������������������ HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); StringBuilder content = new StringBuilder(); @@ -146,7 +146,7 @@ Integer orgId = device.getOrganizationId(); deleteOrganizationUnitAlarm(orgId, versionId); //������deviceInfo������ - CacheUtils.flushDeviceAlarmInfo(); + CacheUtils.refreshDeviceAlarmInfo(); //������������������ HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); StringBuilder content = new StringBuilder(); @@ -182,7 +182,7 @@ //������������������redis setDeviceInfoToRedis(mac, deviceInfo); //������deviceInfo������ - CacheUtils.flushDeviceAlarmInfo(); + CacheUtils.refreshDeviceAlarmInfo(); //������������������ HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); StringBuilder content = new StringBuilder(); @@ -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("%.3f", sensorValue)); + double value = Double.parseDouble(sensorValue); //������������ if (formula != null) { //������������������ sensorValue = formula.replace("{0}", sensorValue); expression = AviatorEvaluator.compile(sensorValue); - value = Double.parseDouble(String.format("%.3f", expression.execute())); + value = Double.parseDouble(expression.execute().toString()); } int sensorState = judgeState(list, value); if (sensorState > state) { @@ -477,10 +478,10 @@ } //��������������������������� - 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; break; -- Gitblit v1.8.0