| | |
| | | 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; |
| | |
| | | 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.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | |
| | | public class TaskListener implements MessageListener { |
| | | |
| | |
| | | RabbitTemplate rabbitTemplate; |
| | | |
| | | @Resource |
| | | CachingConnectionFactory rabbitConnectionFactory; |
| | | JobDao jobDao; |
| | | |
| | | @Resource |
| | | JobDao jobDao; |
| | | TaskDao taskDao; |
| | | |
| | | @Resource |
| | | RedisTemplate<String, String> redisTemplate; |
| | |
| | | |
| | | 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)) { |
| | |
| | | } |
| | | } |
| | | |
| | | System.out.println(message); |
| | | System.out.println(JSON.toJSONString(msgData)); |
| | | // System.out.println(message); |
| | | // System.out.println(JSON.toJSONString(msgData)); |
| | | |
| | | rabbitTemplate.convertAndSend("monitors_data_2", "", 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; //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) { |
| | |
| | | } |
| | | return dataMap; |
| | | } |
| | | |
| | | private String getDate() { |
| | | Date d = new Date(); |
| | | SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | return formatter.format(d); |
| | | } |
| | | } |