From 9a906b9d83ccd8a638a407eb16a44a44025225c0 Mon Sep 17 00:00:00 2001 From: bsw215583320 <baoshiwei121@163.com> Date: 星期四, 07 十一月 2024 09:03:11 +0800 Subject: [PATCH] 增加设备信息获取mqtt主题和订阅,租户上传设备实时数据时,若服务端无相关设备信息,可通过此接口获取 --- jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java | 46 ++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 40 insertions(+), 6 deletions(-) diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java index 5c6d723..1c222f0 100644 --- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java +++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java @@ -8,16 +8,23 @@ import org.apache.mina.core.service.IoAcceptor; import org.apache.mina.core.service.IoHandler; import org.apache.mina.core.session.IoSession; +import org.apache.shiro.SecurityUtils; +import org.eclipse.paho.client.mqttv3.MqttClient; +import org.eclipse.paho.client.mqttv3.MqttException; +import org.eclipse.paho.client.mqttv3.MqttMessage; import org.jeecg.common.api.CommonAPI; import org.jeecg.common.api.vo.Result; import org.jeecg.common.config.TenantContext; import org.jeecg.common.config.mqtoken.UserTokenContext; import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.constant.MqttConstant; import org.jeecg.common.system.util.JwtUtil; +import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.RedisUtil; import org.jeecg.common.util.SpringContextUtils; import org.jeecg.modules.dry.common.CacheConstants; import org.jeecg.modules.dry.entity.*; +import org.jeecg.modules.dry.mqtt.MqttUtil; import org.jeecg.modules.dry.service.*; import org.jeecg.modules.dry.socket.ServerHandler; import org.jeecg.modules.dry.socket.SocketServerConfig; @@ -25,9 +32,11 @@ import org.jeecg.modules.dry.vo.*; import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.security.auth.login.LoginContext; import java.io.IOException; import java.io.ObjectOutputStream; import java.net.Socket; @@ -63,7 +72,11 @@ private String token; + @Value(value = "${jeecg.mqtt.role}") + private String role; + @Autowired + private MqttUtil mqttUtil; public String getTemporaryToken() { if (token == null) { @@ -238,17 +251,23 @@ */ private DryOrderVo saveNewOrder(RealTimeDataVo realTimeDataVo) { DryOrderVo orderVo; - // 鏌ヨ鑽潗 - DryHerbFormula herbFormula = queryHerbByIndexTenant(realTimeDataVo); + // 鏌ヨ璁惧 DryEquipment equ = queryEquipmentByCodeTenant(realTimeDataVo); + if (equ == null) { + log.error("鏈壘鍒拌澶囷細"+realTimeDataVo.getIndex() +","+realTimeDataVo.getName() +",鏈哄彴锛�" + realTimeDataVo.getMachineid()); + return null; + } + // 鏌ヨ鑽潗 + DryHerbFormula herbFormula = queryHerbByIndexTenant(realTimeDataVo); - // 鍒涘缓鏂板伐鍗� - orderVo = new DryOrderVo(realTimeDataVo); if (herbFormula == null) { log.error("鏈壘鍒拌嵂鏉愶細"+realTimeDataVo.getIndex() +","+realTimeDataVo.getName() +",鏈哄彴锛�" + realTimeDataVo.getMachineid()); return null; } + // 鍒涘缓鏂板伐鍗� + orderVo = new DryOrderVo(realTimeDataVo); + orderVo.setHerbId(herbFormula.getId()); orderVo.setEquId(equ.getId()); DryOrder dryOrder = BeanUtil.toBean(orderVo, DryOrder.class); @@ -268,8 +287,23 @@ queryWrapper.eq(DryEquipment::getCode, realTimeDataVo.getMachineid()); DryEquipment one = equipmentService.getOne(queryWrapper); if (one == null) { - one = new DryEquipment(realTimeDataVo); - equipmentService.save(one); + log.error(role+"淇濆瓨瀹炴椂鏁版嵁锛屾湭鎵惧埌璁惧锛�"+realTimeDataVo.getMachineid()); +// one = new DryEquipment(realTimeDataVo); +// equipmentService.save(one); + if (MqttConstant.ROLE_ADMIN.equals(role)) { + MqttMessage mqttMessage = new MqttMessage(); + mqttMessage.setQos(0); + JSONObject object = new JSONObject(); + object.put("code", realTimeDataVo.getMachineid()); + mqttMessage.setPayload(object.toJSONString().getBytes()); + try { + mqttUtil.getMqttClient().publish(String.format(MqttConstant.SERVICE_REQ_EQUIPMENT, TenantContext.getTenant()) ,mqttMessage); + }catch (MqttException e) { + e.printStackTrace(); + } + + } + return null; } return one; } -- Gitblit v1.9.3