Commit 2bdd1f16 authored by duanruiming's avatar duanruiming

[update] 优化解析实时数据结构

parent 6ad84d48
......@@ -22,6 +22,8 @@ import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
......@@ -48,7 +50,9 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
try {
String crossRealTimeLaneData = String.valueOf(record.value());
if (StringUtils.isNotBlank(crossRealTimeLaneData)) {
List<CrossLaneDataRealTimePO> crossLaneDataRealTimePOS = JacksonUtils.getInstance().readValue(crossRealTimeLaneData, new TypeReference<List<CrossLaneDataRealTimePO>>() {});
Map<String, List<CrossLaneDataRealTimePO>> map = JacksonUtils.getInstance().readValue(crossRealTimeLaneData, new TypeReference<Map<String, List<CrossLaneDataRealTimePO>>>() {});
if (Objects.nonNull(map) && !map.isEmpty()) {
List<CrossLaneDataRealTimePO> crossLaneDataRealTimePOS = map.get("crossRealTimeLaneData");
if (!CollectionUtils.isEmpty(crossLaneDataRealTimePOS)) {
crossLaneDataRealTimeMapper.deleteBatch(crossLaneDataRealTimePOS.stream().map(CrossLaneDataRealTimePO::getCrossId).collect(Collectors.toList()));
crossLaneDataRealTimeMapper.insertBatch(crossLaneDataRealTimePOS);
......@@ -57,6 +61,7 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
crossLaneDataHistMapper.insertBatch(crossLaneDataHistPOS);
}
}
}
acknowledgment.acknowledge();
} catch (Exception e) {
log.error("kafka消费数据插入路口车道实时表异常", e);
......@@ -70,7 +75,9 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
try {
String crossRealTimeData = String.valueOf(record.value());
if (StringUtils.isNotBlank(crossRealTimeData)) {
List<CrossDataRealtimePO> crossDataRealtimePOS = JacksonUtils.getInstance().readValue(crossRealTimeData, new TypeReference<List<CrossDataRealtimePO>>() {});
Map<String, List<CrossDataRealtimePO>> map = JacksonUtils.getInstance().readValue(crossRealTimeData, new TypeReference<Map<String, List<CrossDataRealtimePO>>>() {});
if (Objects.nonNull(map) && !map.isEmpty()) {
List<CrossDataRealtimePO> crossDataRealtimePOS = map.get("crossRealTimeData");
if (!CollectionUtils.isEmpty(crossDataRealtimePOS)) {
crossDataRealTimeMapper.deleteBatch(crossDataRealtimePOS.stream().map(CrossDataRealtimePO::getCrossId).collect(Collectors.toList()));
crossDataRealTimeMapper.insertBatch(crossDataRealtimePOS);
......@@ -79,6 +86,8 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
crossDataHistMapper.insertBatch(crossDataHistPOS);
}
}
}
acknowledgment.acknowledge();
} catch (Exception e) {
log.error("kafka消费数据插入路口实时表异常", e);
......@@ -92,7 +101,9 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
try {
String crossRealTimeDirData = String.valueOf(record.value());
if (StringUtils.isNotBlank(crossRealTimeDirData)) {
List<CrossDirDataRealtimePO> crossDirDataRealtimePOS = JacksonUtils.getInstance().readValue(crossRealTimeDirData, new TypeReference<List<CrossDirDataRealtimePO>>() {});
Map<String, List<CrossDirDataRealtimePO>> map = JacksonUtils.getInstance().readValue(crossRealTimeDirData, new TypeReference<Map<String, List<CrossDirDataRealtimePO>>>() {});
if (Objects.nonNull(map) && !map.isEmpty()) {
List<CrossDirDataRealtimePO> crossDirDataRealtimePOS = map.get("crossRealTimeDirData");
if (!CollectionUtils.isEmpty(crossDirDataRealtimePOS)) {
crossDirDataRealTimeMapper.deleteBatch(crossDirDataRealtimePOS.stream().map(CrossDirDataRealtimePO::getCrossId).collect(Collectors.toList()));
crossDirDataRealTimeMapper.insertBatch(crossDirDataRealtimePOS);
......@@ -101,6 +112,7 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
crossDirDataHistMapper.insertBatch(list);
}
}
}
acknowledgment.acknowledge();
} catch (Exception e) {
log.error("kafka消费数据插入路口方向实时表异常", e);
......@@ -114,7 +126,9 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
try {
String crossRealTimeTurnData = String.valueOf(record.value());
if (StringUtils.isNotBlank(crossRealTimeTurnData)) {
List<CrossTurnDataRealtimePO> crossTurnDataRealtimePOS = JacksonUtils.getInstance().readValue(crossRealTimeTurnData, new TypeReference<List<CrossTurnDataRealtimePO>>() {});
Map<String, List<CrossTurnDataRealtimePO>> map = JacksonUtils.getInstance().readValue(crossRealTimeTurnData, new TypeReference<Map<String, List<CrossTurnDataRealtimePO>>>() {});
if (Objects.nonNull(map) && !map.isEmpty()) {
List<CrossTurnDataRealtimePO> crossTurnDataRealtimePOS = map.get("crossRealTimeTurnData");
if (!CollectionUtils.isEmpty(crossTurnDataRealtimePOS)) {
List<String> crossIds = crossTurnDataRealtimePOS.stream().map(CrossTurnDataRealtimePO::getCrossId).distinct().collect(Collectors.toList());
crossTurnDataRealTimeMapper.deleteBatch(crossIds);
......@@ -124,6 +138,7 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
crossTurnDataHistMapper.insertBatch(list);
}
}
}
acknowledgment.acknowledge();
} catch (Exception e) {
log.error("kafka消费数据插入路口转向实时表异常", e);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment