Commit 2bdd1f16 authored by duanruiming's avatar duanruiming

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

parent 6ad84d48
...@@ -22,6 +22,8 @@ import org.springframework.util.CollectionUtils; ...@@ -22,6 +22,8 @@ import org.springframework.util.CollectionUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -48,7 +50,9 @@ public class ConsumerHandler implements KafkaListenerErrorHandler { ...@@ -48,7 +50,9 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
try { try {
String crossRealTimeLaneData = String.valueOf(record.value()); String crossRealTimeLaneData = String.valueOf(record.value());
if (StringUtils.isNotBlank(crossRealTimeLaneData)) { 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)) { if (!CollectionUtils.isEmpty(crossLaneDataRealTimePOS)) {
crossLaneDataRealTimeMapper.deleteBatch(crossLaneDataRealTimePOS.stream().map(CrossLaneDataRealTimePO::getCrossId).collect(Collectors.toList())); crossLaneDataRealTimeMapper.deleteBatch(crossLaneDataRealTimePOS.stream().map(CrossLaneDataRealTimePO::getCrossId).collect(Collectors.toList()));
crossLaneDataRealTimeMapper.insertBatch(crossLaneDataRealTimePOS); crossLaneDataRealTimeMapper.insertBatch(crossLaneDataRealTimePOS);
...@@ -57,6 +61,7 @@ public class ConsumerHandler implements KafkaListenerErrorHandler { ...@@ -57,6 +61,7 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
crossLaneDataHistMapper.insertBatch(crossLaneDataHistPOS); crossLaneDataHistMapper.insertBatch(crossLaneDataHistPOS);
} }
} }
}
acknowledgment.acknowledge(); acknowledgment.acknowledge();
} catch (Exception e) { } catch (Exception e) {
log.error("kafka消费数据插入路口车道实时表异常", e); log.error("kafka消费数据插入路口车道实时表异常", e);
...@@ -70,7 +75,9 @@ public class ConsumerHandler implements KafkaListenerErrorHandler { ...@@ -70,7 +75,9 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
try { try {
String crossRealTimeData = String.valueOf(record.value()); String crossRealTimeData = String.valueOf(record.value());
if (StringUtils.isNotBlank(crossRealTimeData)) { 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)) { if (!CollectionUtils.isEmpty(crossDataRealtimePOS)) {
crossDataRealTimeMapper.deleteBatch(crossDataRealtimePOS.stream().map(CrossDataRealtimePO::getCrossId).collect(Collectors.toList())); crossDataRealTimeMapper.deleteBatch(crossDataRealtimePOS.stream().map(CrossDataRealtimePO::getCrossId).collect(Collectors.toList()));
crossDataRealTimeMapper.insertBatch(crossDataRealtimePOS); crossDataRealTimeMapper.insertBatch(crossDataRealtimePOS);
...@@ -79,6 +86,8 @@ public class ConsumerHandler implements KafkaListenerErrorHandler { ...@@ -79,6 +86,8 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
crossDataHistMapper.insertBatch(crossDataHistPOS); crossDataHistMapper.insertBatch(crossDataHistPOS);
} }
} }
}
acknowledgment.acknowledge(); acknowledgment.acknowledge();
} catch (Exception e) { } catch (Exception e) {
log.error("kafka消费数据插入路口实时表异常", e); log.error("kafka消费数据插入路口实时表异常", e);
...@@ -92,7 +101,9 @@ public class ConsumerHandler implements KafkaListenerErrorHandler { ...@@ -92,7 +101,9 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
try { try {
String crossRealTimeDirData = String.valueOf(record.value()); String crossRealTimeDirData = String.valueOf(record.value());
if (StringUtils.isNotBlank(crossRealTimeDirData)) { 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)) { if (!CollectionUtils.isEmpty(crossDirDataRealtimePOS)) {
crossDirDataRealTimeMapper.deleteBatch(crossDirDataRealtimePOS.stream().map(CrossDirDataRealtimePO::getCrossId).collect(Collectors.toList())); crossDirDataRealTimeMapper.deleteBatch(crossDirDataRealtimePOS.stream().map(CrossDirDataRealtimePO::getCrossId).collect(Collectors.toList()));
crossDirDataRealTimeMapper.insertBatch(crossDirDataRealtimePOS); crossDirDataRealTimeMapper.insertBatch(crossDirDataRealtimePOS);
...@@ -101,6 +112,7 @@ public class ConsumerHandler implements KafkaListenerErrorHandler { ...@@ -101,6 +112,7 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
crossDirDataHistMapper.insertBatch(list); crossDirDataHistMapper.insertBatch(list);
} }
} }
}
acknowledgment.acknowledge(); acknowledgment.acknowledge();
} catch (Exception e) { } catch (Exception e) {
log.error("kafka消费数据插入路口方向实时表异常", e); log.error("kafka消费数据插入路口方向实时表异常", e);
...@@ -114,7 +126,9 @@ public class ConsumerHandler implements KafkaListenerErrorHandler { ...@@ -114,7 +126,9 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
try { try {
String crossRealTimeTurnData = String.valueOf(record.value()); String crossRealTimeTurnData = String.valueOf(record.value());
if (StringUtils.isNotBlank(crossRealTimeTurnData)) { 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)) { if (!CollectionUtils.isEmpty(crossTurnDataRealtimePOS)) {
List<String> crossIds = crossTurnDataRealtimePOS.stream().map(CrossTurnDataRealtimePO::getCrossId).distinct().collect(Collectors.toList()); List<String> crossIds = crossTurnDataRealtimePOS.stream().map(CrossTurnDataRealtimePO::getCrossId).distinct().collect(Collectors.toList());
crossTurnDataRealTimeMapper.deleteBatch(crossIds); crossTurnDataRealTimeMapper.deleteBatch(crossIds);
...@@ -124,6 +138,7 @@ public class ConsumerHandler implements KafkaListenerErrorHandler { ...@@ -124,6 +138,7 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
crossTurnDataHistMapper.insertBatch(list); crossTurnDataHistMapper.insertBatch(list);
} }
} }
}
acknowledgment.acknowledge(); acknowledgment.acknowledge();
} catch (Exception e) { } catch (Exception e) {
log.error("kafka消费数据插入路口转向实时表异常", 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