소스 검색

优化属性上报

zhou-hao 5 년 전
부모
커밋
1c3d5e258b

+ 3 - 5
jetlinks-manager/device-manager/src/main/java/org/jetlinks/community/device/message/DeviceMessageConnector.java

@@ -6,10 +6,7 @@ import org.jetlinks.core.message.*;
 import org.jetlinks.core.message.event.EventMessage;
 import org.jetlinks.core.message.function.FunctionInvokeMessage;
 import org.jetlinks.core.message.function.FunctionInvokeMessageReply;
-import org.jetlinks.core.message.property.ReadPropertyMessage;
-import org.jetlinks.core.message.property.ReadPropertyMessageReply;
-import org.jetlinks.core.message.property.WritePropertyMessage;
-import org.jetlinks.core.message.property.WritePropertyMessageReply;
+import org.jetlinks.core.message.property.*;
 import org.jetlinks.community.gateway.*;
 import reactor.core.publisher.EmitterProcessor;
 import reactor.core.publisher.Flux;
@@ -113,7 +110,8 @@ public class DeviceMessageConnector
                     if (message instanceof EventMessage) {   //事件
                         EventMessage event = ((EventMessage) message);
                         topic = "/device/" + deviceMessage.getDeviceId() + "/message/event/".concat(event.getEvent());
-
+                    } else if (message instanceof ReportPropertyMessage) {   //上报属性
+                        topic = "/device/" + deviceMessage.getDeviceId() + "/message/property/report";
                     } else if (message instanceof DeviceOnlineMessage) {   //设备上线
                         topic = "/device/" + deviceMessage.getDeviceId() + "/online";
                     } else if (message instanceof DeviceOfflineMessage) {   //设备离线

+ 9 - 0
jetlinks-manager/device-manager/src/main/java/org/jetlinks/community/device/message/writer/ElasticDeviceMessageWriterConnector.java

@@ -2,6 +2,7 @@ package org.jetlinks.community.device.message.writer;
 
 import com.alibaba.fastjson.JSON;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections.MapUtils;
 import org.jetlinks.core.device.DeviceRegistry;
 import org.jetlinks.core.message.DeviceMessage;
 import org.jetlinks.core.message.DeviceOfflineMessage;
@@ -10,6 +11,7 @@ import org.jetlinks.core.message.Headers;
 import org.jetlinks.core.message.event.EventMessage;
 import org.jetlinks.core.message.function.FunctionInvokeMessageReply;
 import org.jetlinks.core.message.property.ReadPropertyMessageReply;
+import org.jetlinks.core.message.property.ReportPropertyMessage;
 import org.jetlinks.core.message.property.WritePropertyMessageReply;
 import org.jetlinks.core.metadata.DataType;
 import org.jetlinks.core.metadata.EventMetadata;
@@ -111,6 +113,13 @@ public class ElasticDeviceMessageWriterConnector
                     thenJob = thenJob.then(doIndexPropertiesMessage(headers, message, ((Map) response)));
                 }
             }
+        }else if (message instanceof ReportPropertyMessage) {
+            ReportPropertyMessage reply = (ReportPropertyMessage) message;
+            Map<String, Object> properties = reply.getProperties();
+            if (reply.isSuccess() && MapUtils.isNotEmpty(properties)) {
+                operationLog.setContent(properties);
+                thenJob = doIndexPropertiesMessage(headers, message, properties);
+            }
         } else if (message instanceof DeviceOfflineMessage) {
             operationLog.setContent("设备离线");
         } else if (message instanceof DeviceOnlineMessage) {