工业级运维app手机api
沈斌
2017-10-27 9edd667ef716da6d235f52847582962f924759c6
src/main/java/com/moral/monitor/listener/TaskListener.java
@@ -3,6 +3,8 @@
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.Sensor;
import com.moral.monitor.util.RedisUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -17,10 +19,8 @@
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 +29,9 @@
    @Resource
    JobDao jobDao;
    @Resource
    TaskDao taskDao;
    @Resource
    RedisTemplate<String, String> redisTemplate;
@@ -47,6 +50,7 @@
        Map<String, String> msgData = JSON.parseObject(message, new TypeReference<Map<String, String>>() {});
        String mac = msgData.get("mac");
        String ver = msgData.get("ver");
        Map<String, Float> adjustMap;
        if(RedisUtil.hasKey(redisTemplate, mac)) {
@@ -73,10 +77,23 @@
//        rabbitTemplate.convertAndSend("monitors_data", "", JSON.toJSONString(msgData).getBytes());
//        rabbitTemplate.send("monitors_data_3", "", new Message(JSON.toJSONString(msgData).getBytes(), new MessageProperties()));
        int state = (new Random()).nextInt(4) % 5;
        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<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));
            }
        }
    }
    private Map<String, Float> getAdjustData(String mac) {
@@ -94,4 +111,10 @@
        }
        return dataMap;
    }
    private String getDate() {
        Date d = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return formatter.format(d);
    }
}