Commit 73a65014 authored by duanruiming's avatar duanruiming

[update] 保存实时数据到历史表

parent 5d48a063
...@@ -3,18 +3,17 @@ package net.wanji.opt.task; ...@@ -3,18 +3,17 @@ package net.wanji.opt.task;
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import net.wanji.common.utils.tool.BeanListUtils;
import net.wanji.common.utils.tool.JacksonUtils; import net.wanji.common.utils.tool.JacksonUtils;
import net.wanji.common.utils.tool.StringUtils; import net.wanji.common.utils.tool.StringUtils;
import net.wanji.databus.dao.mapper.*; import net.wanji.databus.dao.mapper.*;
import net.wanji.databus.po.CrossDataRealtimePO; import net.wanji.databus.po.*;
import net.wanji.databus.po.CrossDirDataRealtimePO;
import net.wanji.databus.po.CrossLaneDataRealTimePO;
import net.wanji.databus.po.CrossTurnDataRealtimePO;
import net.wanji.opt.kafka.ConsumerHandler; import net.wanji.opt.kafka.ConsumerHandler;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
...@@ -25,14 +24,22 @@ import java.util.List; ...@@ -25,14 +24,22 @@ import java.util.List;
@RequiredArgsConstructor @RequiredArgsConstructor
public class DataCenterProcessTask { public class DataCenterProcessTask {
private final CrossBaseLaneInfoMapper crossBaseLaneInfoMapper;
private final CrossDirDataRealtimeMapper crossDirDataRealTimeMapper; private final CrossDirDataRealtimeMapper crossDirDataRealTimeMapper;
private final CrossDirDataHistMapper crossDirDataHistMapper;
private final CrossTurnDataRealtimeMapper crossTurnDataRealTimeMapper; private final CrossTurnDataRealtimeMapper crossTurnDataRealTimeMapper;
private final CrossTurnDataHistMapper crossTurnDataHistMapper;
private final CrossLaneDataRealTimeMapper crossLaneDataRealTimeMapper; private final CrossLaneDataRealTimeMapper crossLaneDataRealTimeMapper;
private final CrossLaneDataHistMapper crossLaneDataHistMapper;
private final CrossDataRealtimeMapper crossDataRealTimeMapper; private final CrossDataRealtimeMapper crossDataRealTimeMapper;
private final CrossDataHistMapper crossDataHistMapper;
/**
* @description 收到数据中心kafka中的实时数据插入实时数据表、实时历史表
* @param []
* @return void
*/
@Scheduled(fixedRate = 1 * 60 * 1000) @Scheduled(fixedRate = 5 * 60 * 1000)
public void realTimeDataSave() throws Exception { public void realTimeDataSave() throws Exception {
ObjectMapper instance = JacksonUtils.getInstance(); ObjectMapper instance = JacksonUtils.getInstance();
...@@ -40,7 +47,10 @@ public class DataCenterProcessTask { ...@@ -40,7 +47,10 @@ public class DataCenterProcessTask {
if (StringUtils.isNotBlank(crossRealTimeData)) { if (StringUtils.isNotBlank(crossRealTimeData)) {
List<CrossDataRealtimePO> crossDataRealtimePOS = instance.readValue(crossRealTimeData, new TypeReference<List<CrossDataRealtimePO>>() {}); List<CrossDataRealtimePO> crossDataRealtimePOS = instance.readValue(crossRealTimeData, new TypeReference<List<CrossDataRealtimePO>>() {});
if (!CollectionUtils.isEmpty(crossDataRealtimePOS)) { if (!CollectionUtils.isEmpty(crossDataRealtimePOS)) {
// crossDataRealTimeMapper.insertBatch(crossDataRealtimePOS); crossDataRealTimeMapper.insertBatch(crossDataRealtimePOS);
List<CrossDataHistPO> crossDataHistPOS = new ArrayList<>(crossDataRealtimePOS.size());
BeanListUtils.populateList(crossDataRealtimePOS, crossDataHistPOS, CrossDataHistPO.class);
crossDataHistMapper.insertBatch(crossDataHistPOS);
} }
} }
...@@ -48,7 +58,10 @@ public class DataCenterProcessTask { ...@@ -48,7 +58,10 @@ public class DataCenterProcessTask {
if (StringUtils.isNotBlank(crossRealTimeDirData)) { if (StringUtils.isNotBlank(crossRealTimeDirData)) {
List<CrossDirDataRealtimePO> crossDirDataRealtimePOS = instance.readValue(crossRealTimeDirData, new TypeReference<List<CrossDirDataRealtimePO>>() {}); List<CrossDirDataRealtimePO> crossDirDataRealtimePOS = instance.readValue(crossRealTimeDirData, new TypeReference<List<CrossDirDataRealtimePO>>() {});
if (!CollectionUtils.isEmpty(crossDirDataRealtimePOS)) { if (!CollectionUtils.isEmpty(crossDirDataRealtimePOS)) {
// crossDirDataRealTimeMapper.insertBatch(crossDirDataRealtimePOS); crossDirDataRealTimeMapper.insertBatch(crossDirDataRealtimePOS);
List<CrossDirDataHistPO> list = new ArrayList<>(crossDirDataRealtimePOS.size());
BeanListUtils.populateList(crossDirDataRealtimePOS, list, CrossDirDataHistPO.class);
crossDirDataHistMapper.insertBatch(list);
} }
} }
...@@ -56,7 +69,10 @@ public class DataCenterProcessTask { ...@@ -56,7 +69,10 @@ public class DataCenterProcessTask {
if (StringUtils.isNotBlank(crossRealTimeTurnData)) { if (StringUtils.isNotBlank(crossRealTimeTurnData)) {
List<CrossTurnDataRealtimePO> crossTurnDataRealtimePOS = instance.readValue(crossRealTimeTurnData, new TypeReference<List<CrossTurnDataRealtimePO>>() {}); List<CrossTurnDataRealtimePO> crossTurnDataRealtimePOS = instance.readValue(crossRealTimeTurnData, new TypeReference<List<CrossTurnDataRealtimePO>>() {});
if (!CollectionUtils.isEmpty(crossTurnDataRealtimePOS)) { if (!CollectionUtils.isEmpty(crossTurnDataRealtimePOS)) {
// crossTurnDataRealTimeMapper.insertBatch(crossTurnDataRealtimePOS); crossTurnDataRealTimeMapper.insertBatch(crossTurnDataRealtimePOS);
List<CrossTurnDataHistPO> list = new ArrayList<>(crossTurnDataRealtimePOS.size());
BeanListUtils.populateList(crossTurnDataRealtimePOS, list, CrossTurnDataHistPO.class);
crossTurnDataHistMapper.insertBatch(list);
} }
} }
...@@ -64,7 +80,10 @@ public class DataCenterProcessTask { ...@@ -64,7 +80,10 @@ public class DataCenterProcessTask {
if (StringUtils.isNotBlank(crossRealTimeLaneData)) { if (StringUtils.isNotBlank(crossRealTimeLaneData)) {
List<CrossLaneDataRealTimePO> crossLaneDataRealTimePOS = instance.readValue(crossRealTimeLaneData, new TypeReference<List<CrossLaneDataRealTimePO>>() {}); List<CrossLaneDataRealTimePO> crossLaneDataRealTimePOS = instance.readValue(crossRealTimeLaneData, new TypeReference<List<CrossLaneDataRealTimePO>>() {});
if (!CollectionUtils.isEmpty(crossLaneDataRealTimePOS)) { if (!CollectionUtils.isEmpty(crossLaneDataRealTimePOS)) {
// crossLaneDataRealTimeMapper.insertBatch(crossLaneDataRealTimePOS); crossLaneDataRealTimeMapper.insertBatch(crossLaneDataRealTimePOS);
List<CrossLaneDataHistPO> crossLaneDataHistPOS = new ArrayList<>(crossLaneDataRealTimePOS.size());
BeanListUtils.populateList(crossLaneDataRealTimePOS, crossLaneDataHistPOS, CrossLaneDataHistPO.class);
crossLaneDataHistMapper.insertBatch(crossLaneDataHistPOS);
} }
} }
......
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