소스 검색

优化data-transfer模块中网关设备命令下发逻辑,增加deviceUuid字段值的判断录入,以及下发控制topic修改;优化kat门禁服务模块控制逻辑处理;

james 1 주 전
부모
커밋
76306336e0

+ 1 - 1
data-gateway/data-gateway-eg-kat/src/main/java/com/usky/gateway/service/config/mqtt/MqttInConfig.java

@@ -53,7 +53,7 @@ public class MqttInConfig {
         List<EgDeviceConfig> list = egDeviceConfigMapper.selectList(queryWrapper);
         String[] tops = new String[list.size()];
         for (int i = 0; i < list.size(); i++) {
-            tops[i] = "/"+list.get(i).getDeviceUuid()+"/control";
+            tops[i] = "/usky/devices/"+list.get(i).getDeviceUuid()+"/control";
         }
 
         String clientId = "gateway-eg-kat-mqtt-in-" + System.currentTimeMillis();

+ 3 - 2
data-gateway/data-gateway-eg-kat/src/main/java/com/usky/gateway/service/mqtt/control/control.java

@@ -44,10 +44,10 @@ public class control implements MqttStrategy {
 
     //处理下发命令消息,下发命令控制设备
     public String disposeMessage(MqttBaseVO mqttBaseVO) {
-        String[] topics = mqttBaseVO.getTopic().split("/");
-        String deviceUuid = topics[1];
+
         JSONObject obj_data = JSONObject.parseObject(mqttBaseVO.getData().toString());
         Integer commandId = Integer.parseInt(obj_data.get("id").toString());
+        String deviceUuid = obj_data.get("deviceUuid").toString();
         Object params = JSONObject.toJSONString(obj_data.get("params"));
         JSONObject params_data = JSON.parseObject(params.toString());
         String commandCode = params_data.getString("commandCode");
@@ -85,6 +85,7 @@ public class control implements MqttStrategy {
 
                 }
 
+                jsonObject.put("deviceUuid",deviceUuid);
                 jsonObject.put("timeStamp",System.currentTimeMillis());
                 jsonObject.put("id",commandId);
 

+ 3 - 5
data-transfer/data-transfer-biz/src/main/java/com/usky/transfer/service/impl/QueryInfluxdbDataServiceImpl.java

@@ -63,13 +63,12 @@ public class QueryInfluxdbDataServiceImpl extends AbstractCrudService<QueryInflu
     public Map<String,Object> deviceControl(String productCode, String deviceUuid, String commandStr,Integer tenantId, Long userId, String userName){
         Map<String,Object> rec_map = new HashMap<>();
 
+        JSONObject dataJson = JSONObject.parseObject(commandStr);
 
         //存储下发设备控制命令到数据库表中
         DmpDeviceCommand command = new DmpDeviceCommand();
         command.setProductCode(productCode);
-        if(StringUtils.isNotBlank(deviceUuid)){
-            command.setDeviceUuid(deviceUuid);
-        }
+        command.setDeviceUuid(dataJson.get("deviceUuid").toString());
 
         command.setCommandContent(commandStr);
         command.setCreatedTime(LocalDateTime.now());
@@ -83,14 +82,13 @@ public class QueryInfluxdbDataServiceImpl extends AbstractCrudService<QueryInflu
         dmpDeviceCommandService.save(command);
         int commandId = command.getId();
 
-        JSONObject dataJson = JSONObject.parseObject(commandStr);
         dataJson.put("id",commandId);
 
         command.setCommandContent(dataJson.toJSONString());
         dmpDeviceCommandService.updateById(command);
         //推送下发设备控制mqtt
         if(StringUtils.isNotBlank(commandStr)){
-            String topic = "/"+deviceUuid+"/control";
+            String topic = "/usky/devices/"+deviceUuid+"/control";
             mqttGateway.sendToMqtt(topic,dataJson.toJSONString());
         }