From c7dd4a195d8d893d92c49963447cdf6486844584 Mon Sep 17 00:00:00 2001
From: cjl <276999030@qq.com>
Date: Fri, 20 Oct 2023 09:45:53 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/wb' into cjl
---
screen-manage/src/main/java/com/moral/api/kafka/consumer/DeviceConsumer.java | 417 +++++++++++++++++++++++++++++++----------------------------
1 files changed, 221 insertions(+), 196 deletions(-)
diff --git a/screen-manage/src/main/java/com/moral/api/kafka/consumer/DeviceConsumer.java b/screen-manage/src/main/java/com/moral/api/kafka/consumer/DeviceConsumer.java
index 0548b82..886bc72 100644
--- a/screen-manage/src/main/java/com/moral/api/kafka/consumer/DeviceConsumer.java
+++ b/screen-manage/src/main/java/com/moral/api/kafka/consumer/DeviceConsumer.java
@@ -1,201 +1,226 @@
-//package com.moral.api.kafka.consumer;
-//
-//import com.moral.api.service.*;
-//import lombok.extern.slf4j.Slf4j;
-//import org.apache.kafka.clients.consumer.ConsumerRecord;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.data.redis.core.RedisTemplate;
-//import org.springframework.kafka.annotation.KafkaListener;
-//import org.springframework.kafka.support.Acknowledgment;
-//import org.springframework.stereotype.Component;
-//import org.springframework.util.ObjectUtils;
-//
-//import java.util.HashMap;
-//import java.util.Iterator;
-//import java.util.Map;
-//
-//import com.alibaba.fastjson.JSON;
-//import com.moral.constant.KafkaConstants;
-//import com.moral.constant.RedisConstants;
-//
-//
-//
-//@Component
-//@Slf4j
-//public class DeviceConsumer {
-//
-// @Autowired
-// private HistoryMinutelyService historyMinutelyService;
-//
-// @Autowired
-// private HistoryHourlyService historyHourlyService;
-//
-// @Autowired
-// private DeviceService deviceService;
-//
-// @Autowired
-// private RedisTemplate redisTemplate;
-//
-// @Autowired
-// private HistorySecondCruiserService historySecondCruiserService;
-//
-// @Autowired
-// private HistorySecondUavService historySecondUavService;
-//
-// //������������
-// @KafkaListener(topics = KafkaConstants.TOPIC_MINUTE, containerFactory = "insertListenerContainerFactory")
-// public void listenMinute(ConsumerRecord<String, String> record, Acknowledgment ack) {
-// String msg = record.value();
-// try {
-// Map<String, Object> data = JSON.parseObject(msg, Map.class);
-// Object mac = data.get("mac");
-// Object time = data.get("DataTime");
-// if (ObjectUtils.isEmpty(time) || ObjectUtils.isEmpty(mac)) {
-// log.warn("some properties is null, param{}", msg);
-// ack.acknowledge();
-// return;
-// }
-//
-// //������������
-//// data.remove("time");
-// data.remove("entryTime");
-// Iterator<Map.Entry<String, Object>> iterator = data.entrySet().iterator();
-// Map<String, Object> newMap = new HashMap<>();
-// Map.Entry<String, Object> next;
-// while (iterator.hasNext()) {
-// next = iterator.next();
-// String key = next.getKey();
-// Object value = next.getValue();
-// if (key.contains("-Avg")) {
-// newMap.put(key.replaceAll("-Avg", ""), Double.parseDouble(value.toString()));
-// } else {
-// newMap.put(key, value);
-// }
-// iterator.remove();
-// }
-// //���������������
-// historyMinutelyService.insertHistoryMinutely(newMap);
-// ack.acknowledge();
-// } catch (Exception e) {
-// log.error("param{}" + msg);
-// }
-// }
-//
-// //������������
-// @KafkaListener(topics = KafkaConstants.TOPIC_HOUR, containerFactory = "insertListenerContainerFactory")
-// public void listenHour(ConsumerRecord<String, String> record, Acknowledgment ack) {
-// String msg = record.value();
-// try {
-// Map<String, Object> data = JSON.parseObject(msg, Map.class);
-// Object mac = data.get("mac");
-// Object time = data.get("DataTime");
-// if (ObjectUtils.isEmpty(time) || ObjectUtils.isEmpty(mac)) {
-// log.warn("some properties is null, param{}", msg);
-// ack.acknowledge();
-// return;
-// }
-//
-// //������������
-//// data.remove("time");
-// data.remove("entryTime");
-// Iterator<Map.Entry<String, Object>> iterator = data.entrySet().iterator();
-// Map<String, Object> newMap = new HashMap<>();
-// Map.Entry<String, Object> next;
-// while (iterator.hasNext()) {
-// next = iterator.next();
-// String key = next.getKey();
-// Object value = next.getValue();
-// if (key.contains("-Avg")) {
-// newMap.put(key.replaceAll("-Avg", ""), Double.parseDouble(value.toString()));
-// } else {
-// newMap.put(key, value);
-// }
-// iterator.remove();
-// }
-// //���������������
-// historyHourlyService.insertHistoryHourly(newMap);
-// ack.acknowledge();
-// } catch (Exception e) {
-// log.error("param{}" + msg);
-// }
-// }
-//
-// //������������������������������������������������������
-// @KafkaListener(topics = KafkaConstants.TOPIC_SECOND, containerFactory = "stateListenerContainerFactory")
-// public void listenSecond(ConsumerRecord<String, String> record) {
-// String msg = record.value();
-// try {
-// Map<String, Object> data = JSON.parseObject(msg, Map.class);
-// Object mac = data.get("mac");
-// Object time = data.get("DataTime");
-// if (ObjectUtils.isEmpty(time) || ObjectUtils.isEmpty(mac)) {
-// log.warn("some properties is null, param{}", msg);
-// return;
-// }
-// //������������
+package com.moral.api.kafka.consumer;
+
+import com.alibaba.fastjson.JSON;
+import com.moral.api.service.*;
+import com.moral.constant.KafkaConstants;
+import com.moral.constant.RedisConstants;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.kafka.clients.consumer.CommitFailedException;
+import org.apache.kafka.clients.consumer.ConsumerRecord;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.kafka.annotation.KafkaListener;
+import org.springframework.kafka.support.Acknowledgment;
+import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
+
+import java.util.*;
+
+
+@Component
+@Slf4j
+public class DeviceConsumer {
+
+ @Value("${result.device.list}")
+ private String deviceList;
+ @Autowired
+ private HistoryMinutelyService historyMinutelyService;
+
+ @Autowired
+ private HistoryHourlyService historyHourlyService;
+
+ @Autowired
+ private DeviceService deviceService;
+
+ @Autowired
+ private RedisTemplate redisTemplate;
+
+ @Autowired
+ private HistorySecondCruiserService historySecondCruiserService;
+
+ @Autowired
+ private HistorySecondUavService historySecondUavService;
+
+ //������������
+ @KafkaListener(topics = KafkaConstants.TOPIC_MINUTE, containerFactory = "insertListenerContainerFactory")
+ public void listenMinute(ConsumerRecord<String, String> record, Acknowledgment ack) {
+ String msg = record.value();
+ try {
+ Map<String, Object> data = JSON.parseObject(msg, Map.class);
+ Object mac = data.get("mac");
+ Object time = data.get("DataTime");
+ if (ObjectUtils.isEmpty(time) || ObjectUtils.isEmpty(mac)) {
+ log.warn("some properties is null, param{}", msg);
+ ack.acknowledge();
+ return;
+ }
+
+ //������������
// data.remove("time");
-// data.remove("entryTime");
-//
-// //������������
-// data = deviceService.adjustDeviceData(data,"0");
-// //������redis
-// data.put("DataTime", time);
-// redisTemplate.opsForHash().put(RedisConstants.DATA_SECOND, mac, data);
-// //���������������������������
-// data.put("mac", mac);
-// deviceService.judgeDeviceState(data);
-// } catch (Exception e) {
-// log.error("param{}" + msg);
-// }
-// }
-//
-// //������������������
-// @KafkaListener(topics = KafkaConstants.UAV_TOPIC_SECOND, groupId = KafkaConstants.GROUP_INSERT, containerFactory = "insertListenerContainerFactory")
-// public void listenSecondSpecial(ConsumerRecord<String, String> record, Acknowledgment ack) {
-// String msg = record.value();
-// try {
-// Map<String, Object> data = JSON.parseObject(msg, Map.class);
-// Object mac = data.get("mac");
-// Object time = data.get("DataTime");
-// if (ObjectUtils.isEmpty(time) || ObjectUtils.isEmpty(mac)) {
-// log.warn("some properties is null, param{}", msg);
-// ack.acknowledge();
-// return;
-// }
-//
-// //������������
+ data.remove("entryTime");
+ Iterator<Map.Entry<String, Object>> iterator = data.entrySet().iterator();
+ Map<String, Object> newMap = new HashMap<>();
+ Map.Entry<String, Object> next;
+ while (iterator.hasNext()) {
+ next = iterator.next();
+ String key = next.getKey();
+ Object value = next.getValue();
+ if (key.contains("-Avg")) {
+ newMap.put(key.replaceAll("-Avg", ""), Double.parseDouble(value.toString()));
+ } else {
+ newMap.put(key, value);
+ }
+ iterator.remove();
+ }
+ //���������������
+ historyMinutelyService.insertHistoryMinutely(newMap);
+ ack.acknowledge();
+ } catch (Exception e) {
+ log.error("param{}" + msg);
+ }
+ }
+
+ //������������
+ @KafkaListener(topics = KafkaConstants.TOPIC_HOUR, containerFactory = "insertListenerContainerFactory")
+ public void listenHour(ConsumerRecord<String, String> record, Acknowledgment ack) {
+ String msg = record.value();
+ try {
+ Map<String, Object> data = JSON.parseObject(msg, Map.class);
+ Object mac = data.get("mac");
+ Object time = data.get("DataTime");
+ if (ObjectUtils.isEmpty(time) || ObjectUtils.isEmpty(mac)) {
+ log.warn("some properties is null, param{}", msg);
+ ack.acknowledge();
+ return;
+ }
+
+ //������������
// data.remove("time");
-// data.remove("entryTime");
+ data.remove("entryTime");
+ Map<String, Object> deviceByMac = deviceService.getDeviceByMac(mac.toString());
+ HashMap<String, Object> map = (HashMap<String, Object>) deviceByMac.get("organization");
+ String id = map.get("id").toString();
+ if (id.equals("71")){
+ log.warn(id, msg);
+ ack.acknowledge();
+ return;
+ }
+// SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+// String format = dateFormat.format(new Date().getTime());
+// //������������
+// String substring = format.substring(0, 4);
//
-// historySecondUavService.insertHistorySecond(data);
-// ack.acknowledge();
-// } catch (Exception e) {
-// log.error("param{}" + msg);
-// }
-// }
+// String substring1 = time.toString().substring(0, 4);
//
-// //������������������
-// @KafkaListener(topics = KafkaConstants.CRUISER_TOPIC_SECOND, containerFactory = "insertListenerContainerFactory")
-// public void listenSecondCruiser(ConsumerRecord<String, String> record, Acknowledgment ack) {
-// String msg = record.value();
-// try {
-// Map<String, Object> data = JSON.parseObject(msg, Map.class);
-// Object mac = data.get("mac");
-// Object time = data.get("DataTime");
-// if (ObjectUtils.isEmpty(time) || ObjectUtils.isEmpty(mac)) {
-// log.warn("some properties is null, param{}", msg);
-// ack.acknowledge();
-// return;
-// }
+// String replace = time.toString().replace(substring1, substring);
//
-// //������������
-// data.remove("time");
-// data.remove("entryTime");
-//
-// historySecondCruiserService.insertHistorySecond(data);
-// ack.acknowledge();
-// } catch (Exception e) {
-// log.error("param{}" + e);
-// }
-// }
-//}
+// data.put("DataTime",replace);
+
+ Iterator<Map.Entry<String, Object>> iterator = data.entrySet().iterator();
+ Map<String, Object> newMap = new HashMap<>();
+ Map.Entry<String, Object> next;
+ while (iterator.hasNext()) {
+ next = iterator.next();
+ String key = next.getKey();
+ Object value = next.getValue();
+ if (key.contains("-Avg")) {
+ newMap.put(key.replaceAll("-Avg", ""), Double.parseDouble(value.toString()));
+ } else {
+ newMap.put(key, value);
+ }
+ iterator.remove();
+ }
+ //���������������
+ historyHourlyService.insertHistoryHourly(newMap);
+ ack.acknowledge();
+ } catch (Exception e) {
+ log.error("param{}" + msg);
+ }
+ }
+
+ //������������������������������������������������������
+ @KafkaListener(topics = KafkaConstants.TOPIC_SECOND, containerFactory = "stateListenerContainerFactory")
+ public void listenSecond(ConsumerRecord<String, String> record, Acknowledgment ack) {
+ String msg = record.value();
+ try {
+ ack.acknowledge();
+ Map<String, Object> data = JSON.parseObject(msg, Map.class);
+ Object mac = data.get("mac");
+ Object time = data.get("DataTime");
+ if (ObjectUtils.isEmpty(time) || ObjectUtils.isEmpty(mac)) {
+ log.warn("some properties is null, param{}", msg);
+ return;
+ }
+ //������������
+ data.remove("time");
+ data.remove("entryTime");
+ data.put("DataTime", time);
+ List<String> listDictDevice = Arrays.asList(deviceList.split(","));
+ if(listDictDevice.contains(mac.toString())){
+ //���������������������������
+ data.put("mac", mac);
+ deviceService.judgeDeviceState(data);
+ }
+ //������������
+ //data = deviceService.adjustDeviceData(data,"0");
+ //������redis
+ //redisTemplate.opsForHash().put(RedisConstants.DATA_SECOND, mac, data);
+ }catch (CommitFailedException e){
+ log.error("param{}" + msg);
+ } catch (Exception e) {
+ log.error("param{}" + msg);
+ ack.acknowledge();
+ }
+ }
+
+ //������������������
+ @KafkaListener(topics = KafkaConstants.UAV_TOPIC_SECOND, groupId = KafkaConstants.GROUP_INSERT, containerFactory = "insertListenerContainerFactory")
+ public void listenSecondSpecial(ConsumerRecord<String, String> record, Acknowledgment ack) {
+ String msg = record.value();
+ try {
+ Map<String, Object> data = JSON.parseObject(msg, Map.class);
+ Object mac = data.get("mac");
+ Object time = data.get("DataTime");
+ if (ObjectUtils.isEmpty(time) || ObjectUtils.isEmpty(mac)) {
+ log.warn("some properties is null, param{}", msg);
+ ack.acknowledge();
+ return;
+ }
+
+ //������������
+ data.remove("time");
+ data.remove("entryTime");
+
+ historySecondUavService.insertHistorySecond(data);
+ ack.acknowledge();
+ } catch (Exception e) {
+ log.error("param{}" + msg);
+ }
+ }
+
+ //������������������
+ @KafkaListener(topics = KafkaConstants.CRUISER_TOPIC_SECOND, containerFactory = "insertListenerContainerFactory")
+ public void listenSecondCruiser(ConsumerRecord<String, String> record, Acknowledgment ack) {
+ String msg = record.value();
+ try {
+ Map<String, Object> data = JSON.parseObject(msg, Map.class);
+ Object mac = data.get("mac");
+ Object time = data.get("DataTime");
+ if (ObjectUtils.isEmpty(time) || ObjectUtils.isEmpty(mac)) {
+ log.warn("some properties is null, param{}", msg);
+ ack.acknowledge();
+ return;
+ }
+
+ //������������
+ data.remove("time");
+ data.remove("entryTime");
+
+ historySecondCruiserService.insertHistorySecond(data);
+ ack.acknowledge();
+ } catch (Exception e) {
+ log.error("param{}" + e);
+ }
+ }
+}
--
Gitblit v1.8.0