| | |
| | | import org.slf4j.LoggerFactory;
|
| | | import org.springframework.amqp.core.Message;
|
| | | import org.springframework.amqp.core.MessageListener;
|
| | | import org.springframework.amqp.core.MessageProperties;
|
| | | import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
| | | import org.springframework.beans.factory.annotation.Value;
|
| | | import org.springframework.core.io.ClassPathResource;
|
| | | import org.springframework.data.mongodb.core.MongoTemplate;
|
| | | import org.springframework.data.redis.core.RedisTemplate;
|
| | | import org.springframework.util.StringUtils;
|
| | |
|
| | |
| | |
|
| | | @Resource
|
| | | RedisTemplate<String, String> redisTemplate;
|
| | |
|
| | | @Resource
|
| | | protected MongoTemplate mongoTemplate;
|
| | |
|
| | | private Logger logger = LoggerFactory.getLogger(TaskListener.class);
|
| | |
|
| | |
| | | // System.out.println(message);
|
| | | // System.out.println(JSON.toJSONString(msgData));
|
| | |
|
| | | rabbitTemplate.convertAndSend("monitors_data2", "", JSON.toJSONString(msgData).getBytes());
|
| | | // rabbitTemplate.send("monitors_data_3", "", new Message(JSON.toJSONString(msgData).getBytes(), new MessageProperties()));
|
| | | // rabbitTemplate.convertAndSend("monitors_data2", "", JSON.toJSONString(msgData).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);
|
| | |
| | |
|
| | | // //保存原始数据
|
| | | // 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.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);
|
| | | 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);
|
| | |
|
| | | mongoTemplate.insert(JSON.toJSONString(history), "data");
|
| | | }
|
| | | }
|
| | | jobDao.batchInsertHistory(histories);
|
| | |
|
| | | //mongoTemplate.insert(JSON.toJSONString(histories), "data");
|
| | | }
|
| | |
|
| | | private Map<String, Float> getAdjustData(String mac) {
|
| | |
| | | /*
|
| | | * 设置三级警报阀值,把map数据结构转换成数组结构
|
| | | */
|
| | | @Value(value="alarmLevles.json")
|
| | | @Value(value= "system/alarmLevels.json")
|
| | | public void setAlarmLevles(String path) throws IOException {
|
| | | org.springframework.core.io.Resource resource = new ClassPathResource(path);
|
| | | InputStreamReader reader=new InputStreamReader(resource.getInputStream());
|
| | |
| | | double level1 = levels.get("level1");
|
| | | double level2 = levels.get("level2");
|
| | | double level3 = levels.get("level3");
|
| | | //三级警报数组
|
| | | Double arr[] = {0.0,level1,level2,level3};
|
| | | alarmLevles.put(key, arr);
|
| | | //当三个值都为零时,不加入阀值
|
| | | if(levels.get("enable")!=null&&levels.get("enable")==1) {
|
| | | //三级警报数组
|
| | | Double arr[] = {0.0,level1,level2,level3};
|
| | | alarmLevles.put(key, arr);
|
| | | }
|
| | | }
|
| | | }
|
| | | //根据三级警报阀值,确定设备状态
|