Commit 51c36799 by dxh

["20220831004-ZY20220905012"]:1、上报报警信息乱码 2、个别数据没有正常上报,变量值mongo存储为Null时,除状态为4的设备变量外,都应该上报空字符串

parent 21b836fd
......@@ -164,12 +164,12 @@ public class Base64decrypt {
JSONObject jsonObject = JSONObject.parseObject(value);
Map<String,Object> keyValue = new HashMap<>();
for (Map.Entry<String, Object> objectEntry : jsonObject.entrySet()) {
keyValue.put(String.valueOf(objectEntry.getValue()),mongoMap.get(objectEntry.getValue()));
keyValue.put(String.valueOf(objectEntry.getValue()),mongoMap.get(objectEntry.getValue())==null?"":mongoMap.get(objectEntry.getValue()));
}
treeMap.put(stringObjectEntry.getKey(),keyValue);
treeMap.put(stringObjectEntry.getKey(),keyValue==null?"":keyValue);
}catch (Exception e){
Map<String,Object> keyValue = new HashMap<>();
keyValue.put(String.valueOf(stringObjectEntry.getValue()),mongoMap.get(stringObjectEntry.getValue()));
keyValue.put(String.valueOf(stringObjectEntry.getValue()),mongoMap.get(stringObjectEntry.getValue())==null?"":mongoMap.get(stringObjectEntry.getValue()));
keyValue.put("ts",millis);
allDto.add(keyValue);
}
......
......@@ -189,40 +189,13 @@ public class MqttStartClient {
if (separate == 1) {
//TODO 同时MQTT上报和推送前端数据
Map<String, Object> objectMap = base64decrypt.jqrSendString( jsonDataDto,sites, millis ,reportDto);
Map<String,Object> re = new HashMap<>();
objectMap.forEach((key,value)->{
if(key.equals("reported")){
List<Map<String,Object>> jk = new ArrayList<>();
String json = JSONObject.toJSONString(value);
JSONArray objects = JSONArray.parseArray(json);
for (Object object : objects) {
JSONObject jsonObject = JSONObject.parseObject(object.toString());
Map<String,Object> map = new HashMap<>();
jsonObject.forEach((k,v)->{
if(EmptyUtil.isEmpty(v)){
map.put(k,"");
}else {
map.put(k,v);
}
});
jk.add(map);
}
re.put(key,jk);
}else {
re.put(key,value);
}
});
StaticData.data.put(jsonDataDto.getMongdbTableb(), re);
String str = JSONObject.toJSONString(re, SerializerFeature.WriteMapNullValue);
String str = JSONObject.toJSONString(objectMap, SerializerFeature.WriteMapNullValue);
System.out.println("IOT上报数据:"+str);
xbMqttDataUtil.publish( str);
} else if (separate == 2) {
// TODO 只推送前端数据
Map<String, Object> objectMap = base64decrypt.jqrSendString( jsonDataDto,sites,millis,reportDto);
StaticData.data.put(jsonDataDto.getMongdbTableb(), objectMap);
StaticData.data.put(jsonDataDto.getMongdbTableb(),objectMap);
} else if (separate == 3) {
//TODO 只发送mqtt
Map<String, Object> objectMap = base64decrypt.jqrSendString( jsonDataDto,sites,millis,reportDto);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论