From faec027b63bb19d061098724754895ae801ad493 Mon Sep 17 00:00:00 2001
From: 沈斌 <bluelazysb@hotmail.com>
Date: Mon, 30 Oct 2017 14:03:30 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
src/main/java/com/moral/monitor/listener/TaskListener.java | 58 ++++++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 48 insertions(+), 10 deletions(-)
diff --git a/src/main/java/com/moral/monitor/listener/TaskListener.java b/src/main/java/com/moral/monitor/listener/TaskListener.java
index a600c9c..e346459 100644
--- a/src/main/java/com/moral/monitor/listener/TaskListener.java
+++ b/src/main/java/com/moral/monitor/listener/TaskListener.java
@@ -3,6 +3,9 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.moral.monitor.dao.JobDao;
+import com.moral.monitor.dao.TaskDao;
+import com.moral.monitor.entity.History;
+import com.moral.monitor.entity.Sensor;
import com.moral.monitor.util.RedisUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -13,14 +16,13 @@
import org.springframework.amqp.rabbit.connection.Connection;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Random;
+import java.text.SimpleDateFormat;
+import java.util.*;
public class TaskListener implements MessageListener {
@@ -29,6 +31,9 @@
@Resource
JobDao jobDao;
+
+ @Resource
+ TaskDao taskDao;
@Resource
RedisTemplate<String, String> redisTemplate;
@@ -47,13 +52,19 @@
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<String, Float> adjustMap;
- if(RedisUtil.hasKey(redisTemplate, mac)) {
- adjustMap = JSON.parseObject(RedisUtil.get(redisTemplate, mac), new TypeReference<Map<String, Float>>() {});
+ String adjust_key = "adjust_" + mac;
+ if(RedisUtil.hasKey(redisTemplate, adjust_key)) {
+ adjustMap = JSON.parseObject(RedisUtil.get(redisTemplate, adjust_key), new TypeReference<Map<String, Float>>() {});
} else {
adjustMap = getAdjustData(mac);
- RedisUtil.set(redisTemplate, mac, JSON.toJSONString(adjustMap));
+ RedisUtil.set(redisTemplate, adjust_key, JSON.toJSONString(adjustMap));
}
if(!adjustMap.isEmpty()) {
@@ -70,13 +81,34 @@
// System.out.println(message);
// System.out.println(JSON.toJSONString(msgData));
- rabbitTemplate.convertAndSend("monitors_data", "", JSON.toJSONString(msgData).getBytes());
+ rabbitTemplate.convertAndSend("monitors_data2", "", JSON.toJSONString(msgData).getBytes());
// rabbitTemplate.send("monitors_data_3", "", new Message(JSON.toJSONString(msgData).getBytes(), new MessageProperties()));
- int state = (new Random()).nextInt(4) % 5;
- rabbitTemplate.convertAndSend("monitors_alarm", "", "{\"mac\": \"" + mac + "\", \"state\": " + state + "}");
+ int state = (new Random()).nextInt(4) % 5; //TODO
+// rabbitTemplate.convertAndSend("monitors_alarm", "", "{\"mac\": \"" + mac + "\", \"state\": " + state + "}");
+ //������������������
jobDao.updateStateByMac(mac, state);
+
+ //������������������
+ taskDao.insertTologger(mac, message, getDate());
+
+ //������������������
+ 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.setSensor(sensor.getSensor());
+ history.setMac_value(Double.valueOf(msgData.get(key)));
+ histories.add(history);
+ }
+ }
+ jobDao.batchInsertHistory(histories);
}
private Map<String, Float> getAdjustData(String mac) {
@@ -94,4 +126,10 @@
}
return dataMap;
}
+
+ private String getDate() {
+ Date d = new Date();
+ SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ return formatter.format(d);
+ }
}
--
Gitblit v1.8.0