From 2ddf896f0edfa33e5421a7e34018e2d8f93684e6 Mon Sep 17 00:00:00 2001
From: fengxiang <fengxiang@blit.7drlb>
Date: Tue, 14 Nov 2017 13:10:29 +0800
Subject: [PATCH] 校准值
---
src/main/java/com/moral/monitor/service/impl/RedisServiceImpl.java | 34 +++++------
src/main/java/com/moral/monitor/listener/TaskListener.java | 117 ++++++++++++++++++++------------------
2 files changed, 76 insertions(+), 75 deletions(-)
diff --git a/src/main/java/com/moral/monitor/listener/TaskListener.java b/src/main/java/com/moral/monitor/listener/TaskListener.java
index a769e17..3dfe83a 100644
--- a/src/main/java/com/moral/monitor/listener/TaskListener.java
+++ b/src/main/java/com/moral/monitor/listener/TaskListener.java
@@ -56,71 +56,75 @@
RedisService redisService;
@Override
public void onMessage(Message msg) {
+ try {
+ String message = null;
+ try {
+ message = new String(msg.getBody(), "utf-8");
+ } catch (UnsupportedEncodingException e) {
+ logger.warn(e.getMessage());
+ }
- String message = null;
- try {
- message = new String(msg.getBody(), "utf-8");
- } catch (UnsupportedEncodingException e) {
- logger.warn(e.getMessage());
- }
+ Map<String, String> msgData = JSON.parseObject(message, new TypeReference<Map<String, String>>() {});
+ String mac = msgData.get("mac");
+ String ver = msgData.get("ver");
- Map<String, String> msgData = JSON.parseObject(message, new TypeReference<Map<String, String>>() {});
- String mac = msgData.get("mac");
- String ver = msgData.get("ver");
-
- if(StringUtils.isEmpty(ver) || StringUtils.isEmpty(mac)) {
- return;
- }
- //���������������������������map
- Map<String, Float> adjustMap = redisService.getAdjustsByMac(mac);
- if(adjustMap!=null&&!adjustMap.isEmpty()) {
- for (Map.Entry<String, Float> entry : adjustMap.entrySet()) {
- String key = entry.getKey();
- if(msgData.containsKey(key)) {
- Float value = entry.getValue();
- Float dataValue = Float.valueOf(msgData.get(key)) ;
- msgData.put(key, String.valueOf(dataValue + value));
+ if(StringUtils.isEmpty(ver) || StringUtils.isEmpty(mac)) {
+ return;
+ }
+ //���������������������������map
+ Map<String, Float> adjustMap = redisService.getAdjustsByMac(mac);
+ if(adjustMap!=null&&!adjustMap.isEmpty()) {
+ for (Map.Entry<String, Float> entry : adjustMap.entrySet()) {
+ String key = entry.getKey();
+ if(msgData.containsKey(key)) {
+ Float value = entry.getValue();
+ Float dataValue = Float.valueOf(msgData.get(key)) ;
+ msgData.put(key, String.valueOf(dataValue + value));
+ }
}
}
- }
-// System.out.println(message);
-// System.out.println(JSON.toJSONString(msgData));
+// System.out.println(message);
+// System.out.println(JSON.toJSONString(msgData));
- String new_message = JSON.toJSONString(msgData);
- rabbitTemplate.convertAndSend("monitors_data2", "", new_message.getBytes());
-// rabbitTemplate.send("monitors_data2", "", new Message(JSON.toJSONString(msgData).getBytes(), new MessageProperties()));
+ String new_message = JSON.toJSONString(msgData);
+ rabbitTemplate.convertAndSend("monitors_data2", "", new_message.getBytes());
+// rabbitTemplate.send("monitors_data2", "", new Message(JSON.toJSONString(msgData).getBytes(), new MessageProperties()));
-// int state = (new Random()).nextInt(4) % 5; //TODO
- int state = detEquState(msgData);
-// rabbitTemplate.convertAndSend("monitors_alarm", "", "{\"mac\": \"" + mac + "\", \"state\": " + state + "}");
+// int state = (new Random()).nextInt(4) % 5; //TODO
+ int state = detEquState(msgData);
+// rabbitTemplate.convertAndSend("monitors_alarm", "", "{\"mac\": \"" + mac + "\", \"state\": " + state + "}");
- //������������������
- jobDao.updateStateByMac(mac, state);
+ //������������������
+ jobDao.updateStateByMac(mac, state);
-// //������������������
-// taskDao.insertTologger(mac, message, getDate());
- mongoTemplate.insert(message, "logger");
+// //������������������
+// taskDao.insertTologger(mac, message, getDate());
+ mongoTemplate.insert(message, "logger");
- //������������������
- List<History> histories = new ArrayList<History>();
- List<Sensor> sensorList = taskDao.selectFromsensorByver(ver);
- for (Sensor sensor : sensorList) {
- String key = sensor.getMac_key();
- if(msgData.containsKey(key)) {
- //taskDao.insertTohistory(mac, sensor.getSensor(), key, msgData.get(key));
- History history = new History();
- history.setMac(mac);
- history.setMac_key(key);
- history.setTime(new Date(Long.parseLong(msgData.get("time"))));
- history.setSensor(sensor.getSensor());
- history.setMac_value(Double.valueOf(msgData.get(key)));
- histories.add(history);
+ //������������������
+ List<History> histories = new ArrayList<History>();
+ List<Sensor> sensorList = taskDao.selectFromsensorByver(ver);
+ for (Sensor sensor : sensorList) {
+ String key = sensor.getMac_key();
+ if(msgData.containsKey(key)) {
+ //taskDao.insertTohistory(mac, sensor.getSensor(), key, msgData.get(key));
+ History history = new History();
+ history.setMac(mac);
+ history.setMac_key(key);
+ history.setTime(new Date(Long.parseLong(msgData.get("time"))));
+ history.setSensor(sensor.getSensor());
+ history.setMac_value(Double.valueOf(msgData.get(key)));
+ histories.add(history);
+ }
}
- }
- jobDao.batchInsertHistory(histories);
+ jobDao.batchInsertHistory(histories);
- //mongoTemplate.insert(JSON.toJSONString(histories), "data");
- mongoTemplate.insert(new_message, "data");
+ //mongoTemplate.insert(JSON.toJSONString(histories), "data");
+ mongoTemplate.insert(new_message, "data");
+ } catch (Exception e) {
+ //������������
+ logger.error(e.getMessage());
+ }
}
//���������������������
private static Map<String,Double[]> alarmLevles =new HashMap<String, Double[]>();
@@ -151,8 +155,9 @@
//���������������������������������������������
private int detEquState(Map<String,String> data) {
int state = 0;
- data.remove("mac");//���������������mac������
Map<String, Object> equMap = new HashMap<String, Object>();
+ String mac = data.get("mac");
+ data.remove("mac");//���������������mac������
equMap.putAll(data);
if(data!=null) {
for(String key:alarmLevles.keySet()) {
@@ -182,7 +187,7 @@
}
}
equMap.put("state", state);//������������
- redisService.setEquState(data.get("mac"),equMap);
+ redisService.setEquState(mac,equMap);
return state;
}
}
diff --git a/src/main/java/com/moral/monitor/service/impl/RedisServiceImpl.java b/src/main/java/com/moral/monitor/service/impl/RedisServiceImpl.java
index b31ba9e..0859574 100644
--- a/src/main/java/com/moral/monitor/service/impl/RedisServiceImpl.java
+++ b/src/main/java/com/moral/monitor/service/impl/RedisServiceImpl.java
@@ -13,6 +13,7 @@
import org.springframework.stereotype.Service;
import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.moral.monitor.dao.JobDao;
import com.moral.monitor.service.RedisService;
@@ -38,6 +39,9 @@
return "static_equ_"+mac;
}
public void setStaticEqu(String mac,Map<String,Object> equMap) {
+ if(mac==null) {
+ throw new RuntimeException("Value for mac cannot be null");
+ }
RedisUtil.set(redis, getStaticEquKey(mac),JSON.toJSONString(equMap));
}
public Map<String,Object> getStaticEqu(String mac) {
@@ -47,18 +51,18 @@
if(StringUtils.isEmpty(staticEquJson)) {
equMap = jobDao.findEquWithAdjustsByMac(mac);
if(equMap!=null) {
- //���������������adjust������������
+ //list���map���������������adjust������������,
List<Map<String,Object>> adjustList = (List<Map<String, Object>>) equMap.get(ADJUSTS);
- List<Object> adjustListWithData = new ArrayList<Object>();
+ Map<String,String> adjustMap = new HashMap();
//list to map
for(Map<String,Object> adjust:adjustList) {
- if(adjust.get("value")!=null) {
+ if(adjust.get("value")!=null&&Float.parseFloat(adjust.get("value").toString())!=0.0) {
//������������������
- adjustListWithData.add(adjust);
+ adjustMap.put(adjust.get("key").toString(), adjust.get("value").toString());
}
}
- equMap.put(ADJUSTS,adjustListWithData);
- setStaticEqu(mac,equMap);
+ equMap.put(ADJUSTS,adjustMap);
+ setStaticEqu(mac,equMap);
}
}else {
equMap = JSON.parseObject(staticEquJson,new TypeReference<Map<String,Object>>(){});
@@ -70,20 +74,12 @@
*/
public Map<String,Float> getAdjustsByMac(String mac){
Map<String,Object> equMap = getStaticEqu(mac);
+ Object adjusts = equMap.get(ADJUSTS);
Map<String,Float> adjustMap = null;
- if(equMap!=null) {
- List<Map<String,Object>> adjustList = (List<Map<String, Object>>) equMap.get(ADJUSTS);
- if(adjustList!=null) {
- adjustMap = new HashMap<String, Float>();
- //list to map
- for(Map<String,Object> adjust:adjustList) {
- if(adjust.get("value")!=null) {
- adjustMap.put(adjust.get("key").toString(), Float.valueOf(adjust.get("value").toString()));
- }
- }
- }
- }
- return adjustMap;
+ if(adjusts!=null&&adjusts instanceof JSONObject) {
+ adjustMap = ((JSONObject)adjusts).toJavaObject(new TypeReference<Map<String,Float>>(){});
+ }
+ return adjustMap;
}
//���������state_������ID_������ID_���������ID_mac
private String getEquStateKey(String mac) {
--
Gitblit v1.8.0