Просмотр исходного кода

新增设备基础抽象类,用于提供外部接口使用

liuyaowen 1 год назад
Родитель
Сommit
bbff39bca9

+ 4 - 0
src/main/java/com/yunfeiyun/agmp/iots/device/common/Device.java

@@ -39,4 +39,8 @@ public interface Device {
      * @return
      */
     public IotDevice findIotDevice(String topic, JSONObject jobjMsg,String connectionId);
+    /**
+     * 更新所有设备数据
+     * */
+    public void sysAllDevice();
 }

+ 36 - 0
src/main/java/com/yunfeiyun/agmp/iots/device/common/DeviceAbstractImpl.java

@@ -0,0 +1,36 @@
+package com.yunfeiyun.agmp.iots.device.common;
+
+import com.alibaba.fastjson2.JSONObject;
+import com.yunfeiyun.agmp.iot.common.domain.IotDevice;
+import com.yunfeiyun.agmp.iot.common.model.cmd.CmdModel;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author 123
+ */
+@Service
+public  abstract class DeviceAbstractImpl implements Device{
+    @Override
+    public Object sendCmd(CmdModel cmdModel) throws Exception {
+        return null;
+    }
+
+    @Override
+    public Object receiveData(String topic, JSONObject cmdJson, String connectionId) throws Exception {
+        return null;
+    }
+
+    @Override
+    public boolean isDeviceProps(JSONObject cmdJson) {
+        return false;
+    }
+
+    @Override
+    public IotDevice findIotDevice(String topic, JSONObject jobjMsg, String connectionId) {
+        return null;
+    }
+    @Override
+    public void sysAllDevice(){
+
+    }
+}

+ 1 - 2
src/main/java/com/yunfeiyun/agmp/iots/device/common/HttpDevice.java

@@ -5,6 +5,5 @@ package com.yunfeiyun.agmp.iots.device.common;
  * 如果需要统一调用,则在对应设备的接口类上继承HttpDevice,并在实现类中继承HttpDeviceAbstractImpl
  * */
 public interface HttpDevice extends Device{
-    // 更新所有设备数据接口,如无需要,不必实现
-    public void sysAllDevice();
+
 }

+ 2 - 4
src/main/java/com/yunfeiyun/agmp/iots/device/common/HttpDeviceAbstractImpl.java

@@ -5,8 +5,6 @@ import org.springframework.stereotype.Service;
 
 @Slf4j
 @Service
-public abstract class HttpDeviceAbstractImpl implements HttpDevice{
-    public void sysAllDevice(){
-        log.error("设备未实现同步所有设备接口");
-    }
+public abstract class HttpDeviceAbstractImpl extends DeviceAbstractImpl implements HttpDevice{
+
 }

+ 2 - 1
src/main/java/com/yunfeiyun/agmp/iots/device/serviceImp/BzyDeviceImpl.java

@@ -17,6 +17,7 @@ import com.yunfeiyun.agmp.iot.common.service.MongoService;
 import com.yunfeiyun.agmp.iot.common.constant.devicetype.ServiceNameConst;
 import com.yunfeiyun.agmp.iots.core.manager.MqttManager;
 import com.yunfeiyun.agmp.iots.core.mqtt.network.MqttPublisher;
+import com.yunfeiyun.agmp.iots.device.common.DeviceAbstractImpl;
 import com.yunfeiyun.agmp.iots.device.domain.bzy.YfBzyReqMsg;
 import com.yunfeiyun.agmp.iots.device.domain.bzy.YfBzyTakephotoMsg;
 import com.yunfeiyun.agmp.iots.device.service.*;
@@ -36,7 +37,7 @@ import java.util.*;
  */
 @Component(ServiceNameConst.SERVICE_YF_BZY)
 @Slf4j
-public class BzyDeviceImpl implements IBzyDevice {
+public class BzyDeviceImpl extends DeviceAbstractImpl implements IBzyDevice {
 
     private static final String SERVICE_NAME = ServiceNameConst.SERVICE_YF_BZY;
 

+ 2 - 1
src/main/java/com/yunfeiyun/agmp/iots/device/serviceImp/CqCbdDeviceImpl.java

@@ -16,6 +16,7 @@ import com.yunfeiyun.agmp.iot.common.service.MongoService;
 import com.yunfeiyun.agmp.iot.common.service.IotAddressService;
 import com.yunfeiyun.agmp.iot.common.constant.devicetype.ServiceNameConst;
 import com.yunfeiyun.agmp.iots.config.TestConst;
+import com.yunfeiyun.agmp.iots.device.common.DeviceAbstractImpl;
 import com.yunfeiyun.agmp.iots.device.domain.cbd.YfCbdMsgUtil;
 import com.yunfeiyun.agmp.iots.device.domain.cbd.YfCbdTakephotoMsg;
 import com.yunfeiyun.agmp.iots.device.service.*;
@@ -39,7 +40,7 @@ import java.util.*;
  */
 @Component(ServiceNameConst.SERVICE_YF_CBD)
 @Slf4j
-public class CqCbdDeviceImpl implements ICbdDevice {
+public class CqCbdDeviceImpl extends DeviceAbstractImpl implements ICbdDevice {
 
     private static final String SERVICE_NAME = ServiceNameConst.SERVICE_YF_CBD;
 

+ 2 - 1
src/main/java/com/yunfeiyun/agmp/iots/device/serviceImp/IotBigDataMonitorDeviceImpl.java

@@ -10,13 +10,14 @@ import com.yunfeiyun.agmp.iot.common.domain.IotMonitorCapture;
 import com.yunfeiyun.agmp.iot.common.model.cmd.CmdModel;
 import com.yunfeiyun.agmp.iot.common.service.MongoService;
 import com.yunfeiyun.agmp.iots.device.common.Device;
+import com.yunfeiyun.agmp.iots.device.common.DeviceAbstractImpl;
 import com.yunfeiyun.agmp.iots.service.IIotDeviceService;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 
 @Service(value = ServiceNameConst.SERVICE_BIG_DATA_MONITOR)
-public class IotBigDataMonitorDeviceImpl implements Device {
+public class IotBigDataMonitorDeviceImpl extends DeviceAbstractImpl implements Device {
     @Resource
     private IIotDeviceService iotDeviceService;
     @Resource

+ 2 - 1
src/main/java/com/yunfeiyun/agmp/iots/device/serviceImp/YfQxzDeviceImpl.java

@@ -24,6 +24,7 @@ import com.yunfeiyun.agmp.iot.common.service.MongoService;
 import com.yunfeiyun.agmp.iot.common.constant.devicetype.ServiceNameConst;
 import com.yunfeiyun.agmp.iots.core.manager.MqttManager;
 import com.yunfeiyun.agmp.iots.core.mqtt.network.MqttPublisher;
+import com.yunfeiyun.agmp.iots.device.common.DeviceAbstractImpl;
 import com.yunfeiyun.agmp.iots.device.domain.bzy.YfBzyTakephotoMsg;
 import com.yunfeiyun.agmp.iots.device.domain.yfqxz.YfQxzConfigMsg;
 import com.yunfeiyun.agmp.iots.device.domain.yfqxz.YfQxzLedMsg;
@@ -50,7 +51,7 @@ import java.util.*;
  */
 @Component(ServiceNameConst.SERVICE_YF_QXZ)
 @Slf4j
-public class YfQxzDeviceImpl implements IYfQxzDevice {
+public class YfQxzDeviceImpl extends DeviceAbstractImpl implements IYfQxzDevice {
 
     private static final String TAG = "【云飞气象站/墒情站】";
 

+ 2 - 1
src/main/java/com/yunfeiyun/agmp/iots/device/serviceImp/YfScdDeviceImpl.java

@@ -14,6 +14,7 @@ import com.yunfeiyun.agmp.iot.common.service.IotAddressService;
 import com.yunfeiyun.agmp.iot.common.constant.devicetype.ServiceNameConst;
 import com.yunfeiyun.agmp.iots.core.manager.MqttManager;
 import com.yunfeiyun.agmp.iots.core.mqtt.network.MqttPublisher;
+import com.yunfeiyun.agmp.iots.device.common.DeviceAbstractImpl;
 import com.yunfeiyun.agmp.iots.device.service.*;
 import com.yunfeiyun.agmp.iots.service.*;
 import lombok.extern.slf4j.Slf4j;
@@ -29,7 +30,7 @@ import java.util.Objects;
 /** 云飞杀虫灯 */
 @Component(ServiceNameConst.SERVICE_YF_SCD)
 @Slf4j
-public class YfScdDeviceImpl implements IYfScdDevice {
+public class YfScdDeviceImpl extends DeviceAbstractImpl implements IYfScdDevice {
 
     @Autowired
     private MqttManager mqttManager;

+ 6 - 2
src/main/java/com/yunfeiyun/agmp/iots/mq/listener/IotmBaseDataChannelAwareMessageListener.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSONObject;
 import com.rabbitmq.client.Channel;
 import com.yunfeiyun.agmp.common.framework.mq.rabbitmq.model.SynGlobalTenantInfoDto;
 import com.yunfeiyun.agmp.common.utils.JSONUtils;
+import com.yunfeiyun.agmp.common.utils.spring.SpringUtils;
 import com.yunfeiyun.agmp.iot.common.constant.mq.IotActionEnums;
 import com.yunfeiyun.agmp.iot.common.domain.IotDevice;
 import com.yunfeiyun.agmp.iot.common.domain.IotDeviceconn;
@@ -16,10 +17,12 @@ import com.yunfeiyun.agmp.iots.core.manager.ConnectionManager;
 import com.yunfeiyun.agmp.iots.core.manager.MqttManager;
 import com.yunfeiyun.agmp.iots.core.mqtt.DeviceTopicService;
 import com.yunfeiyun.agmp.iots.core.mqtt.modal.MqttTopicValue;
+import com.yunfeiyun.agmp.iots.device.common.Device;
 import com.yunfeiyun.agmp.iots.device.serviceImp.IotCbdImgService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.amqp.core.Message;
 import org.springframework.amqp.rabbit.listener.api.ChannelAwareMessageListener;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.stereotype.Component;
@@ -50,7 +53,8 @@ public class IotmBaseDataChannelAwareMessageListener implements ChannelAwareMess
     private DeviceTopicService deviceTopicService;
     @Resource
     private ConnectionManager connectionManager;
-
+    @Resource
+    private TypeCacheService typeCacheService;
     @Override
     public void onMessage(Message message, Channel channel) throws Exception {
         try {
@@ -90,7 +94,7 @@ public class IotmBaseDataChannelAwareMessageListener implements ChannelAwareMess
                         break;
                     //更新所有设备信息
                     case DEVICE_ALL_SYN:
-
+                        Device device = SpringUtils.getBean(typeCacheService.getServiceNameByDevTypeCode(synGlobalTenantInfoDto.getData().toString()));
                         break;
                     //测报灯重新识别
                     case DEVICE_CBD_AGAIN_RECORD: