From 46e512321221b9ae01a513f04c80a8f73f20e0a0 Mon Sep 17 00:00:00 2001
From: bsw215583320 <baoshiwei121@163.com>
Date: 星期四, 07 十一月 2024 08:48:55 +0800
Subject: [PATCH] 增加设备信息获取mqtt主题和订阅,租户上传设备实时数据时,若服务端无相关设备信息,可通过此接口获取

---
 jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mqtt/MqttSampleCallback.java |   60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 60 insertions(+), 0 deletions(-)

diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mqtt/MqttSampleCallback.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mqtt/MqttSampleCallback.java
index e1ccd32..cb5861d 100644
--- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mqtt/MqttSampleCallback.java
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mqtt/MqttSampleCallback.java
@@ -3,22 +3,30 @@
 import cn.hutool.core.thread.ThreadUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import lombok.extern.slf4j.Slf4j;
 import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
 import org.eclipse.paho.client.mqttv3.MqttCallback;
 import org.eclipse.paho.client.mqttv3.MqttMessage;
+import org.jeecg.common.config.TenantContext;
 import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.constant.MqttConstant;
 import org.jeecg.common.util.DateUtils;
 import org.jeecg.common.util.RedisUtil;
 import org.jeecg.modules.base.service.BaseCommonService;
 import org.jeecg.modules.dry.api.EmqxApi;
+import org.jeecg.modules.dry.entity.DryEquipment;
+import org.jeecg.modules.dry.entity.DryShop;
+import org.jeecg.modules.dry.service.IDryEquipmentService;
 import org.jeecg.modules.dry.service.IDryRealTimeDataService;
+import org.jeecg.modules.dry.service.IDryShopService;
+import org.jeecg.modules.dry.vo.DryEquipmentVo;
 import org.jeecg.modules.dry.vo.RealTimeDataVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Component;
 
+@Slf4j
 @Component
 @Scope("prototype")
 public class MqttSampleCallback implements MqttCallback {
@@ -35,6 +43,15 @@
 
   @Autowired
   private IDryRealTimeDataService realTimeDataService;
+
+
+  @Autowired
+  private IDryEquipmentService equipmentService;
+
+  @Autowired
+  private IDryShopService dryShopService;
+
+
 
 
   @Override
@@ -174,7 +191,26 @@
         }
 
         break;
+      case MqttConstant.TENANT_UP_PREFIX_EQU:
+        try {
+          DryEquipment equipment = (DryEquipment) messageJson.get("equipment");
 
+          DryEquipment dryEquipment = equipmentService.selectByTenantIdEquipmentId(equipment.getTenantId() + "", equipment.getCode());
+
+          if (dryEquipment == null) {
+            equipmentService.save(equipment);
+          }
+
+
+
+          // 鑾峰彇璁惧鎵�灞炶溅闂�
+          DryShop shop = (DryShop) messageJson.get("shop");
+          shop.setTenantId(equipment.getTenantId());
+          dryShopService.save(shop);
+
+        } catch (Exception e) {
+          e.printStackTrace();
+        }
     }
 
   }
@@ -218,6 +254,30 @@
 
 
         break;
+      case MqttConstant.SERVICE_REQ_EQU_TOPIC:
+        log.debug("鏀跺埌璁惧璇︾粏淇℃伅鏌ヨ璇锋眰");
+        // 鏍规嵁璁惧缂栫爜鏌ヨ璁惧淇℃伅
+        String code = messageJson.getString("code");
+        DryEquipment equipmentVo = equipmentService.selectByTenantIdEquipmentId(TenantContext.getTenant(),code);
+        // 鏍规嵁璁惧杞﹂棿id鏌ヨ杞﹂棿淇℃伅
+        DryShop shop = dryShopService.getById(equipmentVo.getShopId());
+
+        JSONObject res = new JSONObject();
+
+        res.put("tenant", TenantContext.getTenant());
+        res.put("equipment", equipmentVo);
+        res.put("shop", shop);
+        try {
+          MqttMessage sendMessage = new MqttMessage(res.toJSONString().getBytes());
+          sendMessage.setQos(0);
+          mqttUtil.getMqttClient().publish(MqttConstant.TENANT_UP_PREFIX_EQU, sendMessage);
+          // baseCommonService.addLog(res.toString(), CommonConstant.LOG_TYPE_MQTT, CommonConstant.OPERATE_MQTT_2);
+        } catch (Exception e) {
+          e.printStackTrace();
+        }
+
+        break;
+
     }
 
   }

--
Gitblit v1.9.3