|
@@ -3,11 +3,9 @@ package com.gyee.edge.loader.adapter;
|
|
|
|
|
|
import com.gyee.edge.loader.data.GeneralTsData;
|
|
|
import com.gyee.edge.loader.data.TsPointData;
|
|
|
+import com.gyee.edge.loader.golden.ILatestDao;
|
|
|
import com.gyee.edge.loader.mapper.DBPointMapper;
|
|
|
-
|
|
|
-import com.gyee.edge.loader.service.SqlService;
|
|
|
-
|
|
|
-import com.gyee.edge.loader.sqlite.ReadDBPointData;
|
|
|
+import com.gyee.edge.loader.sqlite.cache.CacheService;
|
|
|
import com.gyee.protocol.gyfp2.message.GYMessage;
|
|
|
import com.gyee.protocol.gyfp2.message.MessageData;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
@@ -20,19 +18,20 @@ import java.util.*;
|
|
|
/**
|
|
|
* @author :
|
|
|
* @date :Created in 2022/8/25 17:34
|
|
|
- * @description: 写数据
|
|
|
+ * @description: 数据写入
|
|
|
*/
|
|
|
|
|
|
@Slf4j
|
|
|
@Component
|
|
|
public class DataWrite {
|
|
|
@Autowired
|
|
|
- private SqlService sqlService;
|
|
|
+ private ILatestDao iLatestDao;
|
|
|
|
|
|
@Autowired
|
|
|
- private ReadDBPointData readDBPointData;
|
|
|
+ private CacheService cacheService;
|
|
|
|
|
|
- public void DataWriteGloden(GYMessage gyMessage) throws Exception {
|
|
|
+
|
|
|
+ public void DataWriteGloden(GYMessage gyMessage,String topic) throws Exception {
|
|
|
List<TsPointData> tsDataList = new ArrayList<>();
|
|
|
List<MessageData> messageDataList = gyMessage.getMessageDataList();
|
|
|
try {
|
|
@@ -40,18 +39,18 @@ public class DataWrite {
|
|
|
for(MessageData messageData:messageDataList){
|
|
|
TsPointData tsPointData = new TsPointData();
|
|
|
GeneralTsData generalTsData = new GeneralTsData();
|
|
|
- DBPointMapper dbPointMapper = readDBPointData.selectBykey(messageData.getDataKey());
|
|
|
- if(dbPointMapper.getPoint_key() != null && dbPointMapper.getPoint_key().length()>0) {
|
|
|
- tsPointData.setTagName(dbPointMapper.getPoint_key());
|
|
|
+ String key = getPoint_key(messageData.getDataKey(),topic);
|
|
|
+ if(key != null && key.length()>0) {
|
|
|
+ tsPointData.setTagName(key);
|
|
|
generalTsData.setTs(messageData.getTs());
|
|
|
if (messageData.getDataType() == 0) {
|
|
|
- generalTsData.setBooleanValue(messageData.getGYFP2_TYPE_BOOLEAN().get());
|
|
|
+ generalTsData.setBooleanValue(messageData.getGYFP2_TYPE_BOOLEAN());
|
|
|
} else if (messageData.getDataType() == 10) {
|
|
|
- generalTsData.setFloatValue(messageData.getGYFP2_TYPE_FLOAT32().get());
|
|
|
+ generalTsData.setFloatValue(messageData.getGYFP2_TYPE_FLOAT32());
|
|
|
} else if (messageData.getDataType() == 8) {
|
|
|
- generalTsData.setLongValue(messageData.getGYFP2_TYPE_INT64().get());
|
|
|
+ generalTsData.setLongValue(messageData.getGYFP2_TYPE_INT64());
|
|
|
} else if (messageData.getDataType() == 11) {
|
|
|
- generalTsData.setDoubleValue(messageData.getGYFP2_TYPE_FLOAT64().get());
|
|
|
+ generalTsData.setDoubleValue(messageData.getGYFP2_TYPE_FLOAT64());
|
|
|
}
|
|
|
generalTsData.setStatus((short) 1);
|
|
|
tsPointData.setTsData(generalTsData);
|
|
@@ -62,19 +61,19 @@ public class DataWrite {
|
|
|
for(int i = 0; i < gyMessage.getMessageDataList().size();i++){
|
|
|
TsPointData tsPointData = new TsPointData();
|
|
|
GeneralTsData generalTsData = new GeneralTsData();
|
|
|
- DBPointMapper dbPointMapper = readDBPointData.selectBykey(gyMessage.getMessageMutable().getKey() + i);
|
|
|
- if(dbPointMapper.getPoint_key() != null && dbPointMapper.getPoint_key().length()>0) {
|
|
|
+ String key = getPoint_key(gyMessage.getMessageMutable().getKey() + i,topic);
|
|
|
+ if(key != null && key.length()>0) {
|
|
|
MessageData messageData = gyMessage.getMessageDataList().get(i);
|
|
|
- tsPointData.setTagName(dbPointMapper.getPoint_key());
|
|
|
+ tsPointData.setTagName(key);
|
|
|
generalTsData.setTs(messageData.getTs());
|
|
|
if (messageData.getDataType() == 0) {
|
|
|
- generalTsData.setBooleanValue(messageData.getGYFP2_TYPE_BOOLEAN().get());
|
|
|
+ generalTsData.setBooleanValue(messageData.getGYFP2_TYPE_BOOLEAN());
|
|
|
} else if (messageData.getDataType() == 10) {
|
|
|
- generalTsData.setFloatValue(messageData.getGYFP2_TYPE_FLOAT32().get());
|
|
|
+ generalTsData.setFloatValue(messageData.getGYFP2_TYPE_FLOAT32());
|
|
|
} else if (messageData.getDataType() == 8) {
|
|
|
- generalTsData.setLongValue(messageData.getGYFP2_TYPE_INT64().get());
|
|
|
+ generalTsData.setLongValue(messageData.getGYFP2_TYPE_INT64());
|
|
|
} else if (messageData.getDataType() == 11) {
|
|
|
- generalTsData.setDoubleValue(messageData.getGYFP2_TYPE_FLOAT64().get());
|
|
|
+ generalTsData.setDoubleValue(messageData.getGYFP2_TYPE_FLOAT64());
|
|
|
}
|
|
|
generalTsData.setStatus((short) 1);
|
|
|
tsPointData.setTsData(generalTsData);
|
|
@@ -86,18 +85,18 @@ public class DataWrite {
|
|
|
for(MessageData messageData:messageDataList){
|
|
|
TsPointData tsPointData = new TsPointData();
|
|
|
GeneralTsData generalTsData = new GeneralTsData();
|
|
|
- DBPointMapper dbPointMapper = readDBPointData.selectBykey(messageData.getDataKey());
|
|
|
- if(dbPointMapper.getPoint_key() != null && dbPointMapper.getPoint_key().length()>0) {
|
|
|
- tsPointData.setTagName(dbPointMapper.getPoint_key());
|
|
|
+ String key = getPoint_key(messageData.getDataKey(),topic);
|
|
|
+ if(key != null && key.length()>0) {
|
|
|
+ tsPointData.setTagName(key);
|
|
|
generalTsData.setTs(messageData.getTs());
|
|
|
if (messageType == 0) {
|
|
|
- generalTsData.setBooleanValue(messageData.getGYFP2_TYPE_BOOLEAN().get());
|
|
|
+ generalTsData.setBooleanValue(messageData.getGYFP2_TYPE_BOOLEAN());
|
|
|
} else if (messageType == 10) {
|
|
|
- generalTsData.setFloatValue(messageData.getGYFP2_TYPE_FLOAT32().get());
|
|
|
+ generalTsData.setFloatValue(messageData.getGYFP2_TYPE_FLOAT32());
|
|
|
} else if (messageType == 8) {
|
|
|
- generalTsData.setLongValue(messageData.getGYFP2_TYPE_INT64().get());
|
|
|
+ generalTsData.setLongValue(messageData.getGYFP2_TYPE_INT64());
|
|
|
} else if (messageType == 11) {
|
|
|
- generalTsData.setDoubleValue(messageData.getGYFP2_TYPE_FLOAT64().get());
|
|
|
+ generalTsData.setDoubleValue(messageData.getGYFP2_TYPE_FLOAT64());
|
|
|
}
|
|
|
generalTsData.setStatus((short) 1);
|
|
|
tsPointData.setTsData(generalTsData);
|
|
@@ -109,19 +108,19 @@ public class DataWrite {
|
|
|
for(int i = 0; i < gyMessage.getMessageDataList().size();i++){
|
|
|
TsPointData tsPointData = new TsPointData();
|
|
|
GeneralTsData generalTsData = new GeneralTsData();
|
|
|
- DBPointMapper dbPointMapper = readDBPointData.selectBykey(gyMessage.getMessageMutable().getKey()+ i);
|
|
|
- if(dbPointMapper.getPoint_key() != null && dbPointMapper.getPoint_key().length()>0) {
|
|
|
+ String key = getPoint_key(gyMessage.getMessageMutable().getKey()+ i,topic);
|
|
|
+ if(key != null && key.length()>0) {
|
|
|
MessageData messageData = gyMessage.getMessageDataList().get(i);
|
|
|
- tsPointData.setTagName(dbPointMapper.getPoint_key());
|
|
|
+ tsPointData.setTagName(key);
|
|
|
generalTsData.setTs(messageData.getTs());
|
|
|
if (messageType == 0) {
|
|
|
- generalTsData.setBooleanValue(messageData.getGYFP2_TYPE_BOOLEAN().get());
|
|
|
+ generalTsData.setBooleanValue(messageData.getGYFP2_TYPE_BOOLEAN());
|
|
|
} else if (messageType == 10) {
|
|
|
- generalTsData.setFloatValue(messageData.getGYFP2_TYPE_FLOAT32().get());
|
|
|
+ generalTsData.setFloatValue(messageData.getGYFP2_TYPE_FLOAT32());
|
|
|
} else if (messageType == 8) {
|
|
|
- generalTsData.setLongValue(messageData.getGYFP2_TYPE_INT64().get());
|
|
|
+ generalTsData.setLongValue(messageData.getGYFP2_TYPE_INT64());
|
|
|
} else if (messageType == 11) {
|
|
|
- generalTsData.setDoubleValue(messageData.getGYFP2_TYPE_FLOAT64().get());
|
|
|
+ generalTsData.setDoubleValue(messageData.getGYFP2_TYPE_FLOAT64());
|
|
|
}
|
|
|
generalTsData.setStatus((short) 1);
|
|
|
tsPointData.setTsData(generalTsData);
|
|
@@ -133,18 +132,18 @@ public class DataWrite {
|
|
|
for(MessageData messageData:messageDataList){
|
|
|
TsPointData tsPointData = new TsPointData();
|
|
|
GeneralTsData generalTsData = new GeneralTsData();
|
|
|
- DBPointMapper dbPointMapper = readDBPointData.selectBykey(messageData.getDataKey());
|
|
|
- if(dbPointMapper.getPoint_key() != null && dbPointMapper.getPoint_key().length()>0) {
|
|
|
- tsPointData.setTagName(dbPointMapper.getPoint_key());
|
|
|
+ String key = getPoint_key(messageData.getDataKey(),topic);
|
|
|
+ if(key != null && key.length()>0) {
|
|
|
+ tsPointData.setTagName(key);
|
|
|
generalTsData.setTs(ts);
|
|
|
if (messageData.getDataType() == 0) {
|
|
|
- generalTsData.setBooleanValue(messageData.getGYFP2_TYPE_BOOLEAN().get());
|
|
|
+ generalTsData.setBooleanValue(messageData.getGYFP2_TYPE_BOOLEAN());
|
|
|
} else if (messageData.getDataType() == 10) {
|
|
|
- generalTsData.setFloatValue(messageData.getGYFP2_TYPE_FLOAT32().get());
|
|
|
+ generalTsData.setFloatValue(messageData.getGYFP2_TYPE_FLOAT32());
|
|
|
} else if (messageData.getDataType() == 8) {
|
|
|
- generalTsData.setLongValue(messageData.getGYFP2_TYPE_INT64().get());
|
|
|
+ generalTsData.setLongValue(messageData.getGYFP2_TYPE_INT64());
|
|
|
} else if (messageData.getDataType() == 11) {
|
|
|
- generalTsData.setDoubleValue(messageData.getGYFP2_TYPE_FLOAT64().get());
|
|
|
+ generalTsData.setDoubleValue(messageData.getGYFP2_TYPE_FLOAT64());
|
|
|
}
|
|
|
generalTsData.setStatus((short) 1);
|
|
|
tsPointData.setTsData(generalTsData);
|
|
@@ -156,19 +155,19 @@ public class DataWrite {
|
|
|
for(int i = 0; i < gyMessage.getMessageDataList().size();i++){
|
|
|
TsPointData tsPointData = new TsPointData();
|
|
|
GeneralTsData generalTsData = new GeneralTsData();
|
|
|
- DBPointMapper dbPointMapper = readDBPointData.selectBykey(gyMessage.getMessageMutable().getKey() + i);
|
|
|
- if(dbPointMapper.getPoint_key() != null && dbPointMapper.getPoint_key().length()>0) {
|
|
|
+ String key = getPoint_key(gyMessage.getMessageMutable().getKey() + i,topic);
|
|
|
+ if(key != null && key.length()>0) {
|
|
|
MessageData messageData = gyMessage.getMessageDataList().get(i);
|
|
|
- tsPointData.setTagName(dbPointMapper.getPoint_key());
|
|
|
+ tsPointData.setTagName(key);
|
|
|
generalTsData.setTs(ts);
|
|
|
if (messageData.getDataType() == 0) {
|
|
|
- generalTsData.setBooleanValue(messageData.getGYFP2_TYPE_BOOLEAN().get());
|
|
|
+ generalTsData.setBooleanValue(messageData.getGYFP2_TYPE_BOOLEAN());
|
|
|
} else if (messageData.getDataType() == 10) {
|
|
|
- generalTsData.setFloatValue(messageData.getGYFP2_TYPE_FLOAT32().get());
|
|
|
+ generalTsData.setFloatValue(messageData.getGYFP2_TYPE_FLOAT32());
|
|
|
} else if (messageData.getDataType() == 8) {
|
|
|
- generalTsData.setLongValue(messageData.getGYFP2_TYPE_INT64().get());
|
|
|
+ generalTsData.setLongValue(messageData.getGYFP2_TYPE_INT64());
|
|
|
} else if (messageData.getDataType() == 11) {
|
|
|
- generalTsData.setDoubleValue(messageData.getGYFP2_TYPE_FLOAT64().get());
|
|
|
+ generalTsData.setDoubleValue(messageData.getGYFP2_TYPE_FLOAT64());
|
|
|
}
|
|
|
generalTsData.setStatus((short) 1);
|
|
|
tsPointData.setTsData(generalTsData);
|
|
@@ -181,18 +180,18 @@ public class DataWrite {
|
|
|
for(MessageData messageData:messageDataList){
|
|
|
TsPointData tsPointData = new TsPointData();
|
|
|
GeneralTsData generalTsData = new GeneralTsData();
|
|
|
- DBPointMapper dbPointMapper = readDBPointData.selectBykey(messageData.getDataKey());
|
|
|
- if(dbPointMapper.getPoint_key() != null && dbPointMapper.getPoint_key().length()>0) {
|
|
|
- tsPointData.setTagName(dbPointMapper.getPoint_key());
|
|
|
+ String key = getPoint_key(messageData.getDataKey(),topic);
|
|
|
+ if(key != null && key.length()>0) {
|
|
|
+ tsPointData.setTagName(key);
|
|
|
generalTsData.setTs(ts);
|
|
|
if (messageType == 0) {
|
|
|
- generalTsData.setBooleanValue(messageData.getGYFP2_TYPE_BOOLEAN().get());
|
|
|
+ generalTsData.setBooleanValue(messageData.getGYFP2_TYPE_BOOLEAN());
|
|
|
} else if (messageType == 10) {
|
|
|
- generalTsData.setFloatValue(messageData.getGYFP2_TYPE_FLOAT32().get());
|
|
|
+ generalTsData.setFloatValue(messageData.getGYFP2_TYPE_FLOAT32());
|
|
|
} else if (messageType == 8) {
|
|
|
- generalTsData.setLongValue(messageData.getGYFP2_TYPE_INT64().get());
|
|
|
+ generalTsData.setLongValue(messageData.getGYFP2_TYPE_INT64());
|
|
|
} else if (messageType == 11) {
|
|
|
- generalTsData.setDoubleValue(messageData.getGYFP2_TYPE_FLOAT64().get());
|
|
|
+ generalTsData.setDoubleValue(messageData.getGYFP2_TYPE_FLOAT64());
|
|
|
}
|
|
|
generalTsData.setStatus((short) 1);
|
|
|
tsPointData.setTsData(generalTsData);
|
|
@@ -206,18 +205,18 @@ public class DataWrite {
|
|
|
TsPointData tsPointData = new TsPointData();
|
|
|
GeneralTsData generalTsData = new GeneralTsData();
|
|
|
MessageData messageData = gyMessage.getMessageDataList().get(i);
|
|
|
- DBPointMapper dbPointMapper = readDBPointData.selectBykey(gyMessage.getMessageMutable().getKey() + i);
|
|
|
- if(dbPointMapper.getPoint_key() != null && dbPointMapper.getPoint_key().length()>0){
|
|
|
- tsPointData.setTagName(dbPointMapper.getPoint_key());
|
|
|
+ String key = getPoint_key(gyMessage.getMessageMutable().getKey() + i,topic);
|
|
|
+ if(key != null && key.length()>0){
|
|
|
+ tsPointData.setTagName(key);
|
|
|
generalTsData.setTs(ts);
|
|
|
if(messageType == 0){
|
|
|
- generalTsData.setBooleanValue(messageData.getGYFP2_TYPE_BOOLEAN().get());
|
|
|
+ generalTsData.setBooleanValue(messageData.getGYFP2_TYPE_BOOLEAN());
|
|
|
}else if(messageType == 10){
|
|
|
- generalTsData.setFloatValue(messageData.getGYFP2_TYPE_FLOAT32().get());
|
|
|
+ generalTsData.setFloatValue(messageData.getGYFP2_TYPE_FLOAT32());
|
|
|
}else if(messageType == 8){
|
|
|
- generalTsData.setLongValue(messageData.getGYFP2_TYPE_INT64().get());
|
|
|
+ generalTsData.setLongValue(messageData.getGYFP2_TYPE_INT64());
|
|
|
}else if(messageType == 11){
|
|
|
- generalTsData.setDoubleValue(messageData.getGYFP2_TYPE_FLOAT64().get());
|
|
|
+ generalTsData.setDoubleValue(messageData.getGYFP2_TYPE_FLOAT64());
|
|
|
}
|
|
|
generalTsData.setStatus((short) 1);
|
|
|
tsPointData.setTsData(generalTsData);
|
|
@@ -225,12 +224,23 @@ public class DataWrite {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- Date sTdate = new Date();
|
|
|
- sqlService.saveDataSnaps(tsDataList);
|
|
|
- Date enDate = new Date();
|
|
|
- log.info("写入golden时间"+(enDate.getTime()-sTdate.getTime()));
|
|
|
+ iLatestDao.writeLatest(tsDataList);
|
|
|
}catch (Exception e){
|
|
|
- log.error("datawrite发生异常",e);
|
|
|
+ log.error("datawrite error",e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public String getPoint_key(int datakey,String topic) {
|
|
|
+ Map<String, DBPointMapper> map = cacheService.getMap();
|
|
|
+ if (map.isEmpty()) {
|
|
|
+ return null;
|
|
|
+ } else {
|
|
|
+ for (Map.Entry<String, DBPointMapper> entry : map.entrySet()) {
|
|
|
+ if (entry.getValue().getGyfp2_id().equals(topic) && entry.getValue().getGyfp2_address() == datakey) {
|
|
|
+ return entry.getKey();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return null;
|
|
|
}
|
|
|
}
|
|
|
|