Pārlūkot izejas kodu

'优化设备实时历史数据-对接客户接口,增加mqtt心跳信息封装推送到mqtt服务器功能'

james 1 gadu atpakaļ
vecāks
revīzija
c469f569d6

+ 8 - 13
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/DmpDataInfoServiceImpl.java

@@ -53,7 +53,7 @@ public class DmpDataInfoServiceImpl extends AbstractCrudService<DmpDataInfoMappe
 
     @Override
     public void data(DmpDeviceDataRequestVO dmpDeviceDataRequestVO){
-        List<DeviceDataInfoVO> dataInfo = new ArrayList<>();
+        DeviceDataInfoVO dataInfo = new DeviceDataInfoVO();
 
         LambdaQueryWrapper<DmpDeviceInfo> dmpDeviceQuery = Wrappers.lambdaQuery();
         dmpDeviceQuery.eq(DmpDeviceInfo::getDeleteFlag,0)
@@ -90,17 +90,14 @@ public class DmpDataInfoServiceImpl extends AbstractCrudService<DmpDataInfoMappe
             if(CollectionUtils.isNotEmpty(list1)){
                     Map<String,Float> metrics = dmpDeviceDataRequestVO.getMetrics();
                     if(metrics.size()>0){
-                        DeviceDataInfoVO deviceDataInfoVO = new DeviceDataInfoVO();
-                        List<Map<String,Object>> list2 = new ArrayList<>();
+                        Map<String,Object> mp = new HashMap<>();
                         for(Map.Entry<String,Float> map:metrics.entrySet()){
-                            Map<String,Object> mp = new HashMap<>();
                             boolean find = false;
                             String key = map.getKey();
                             float value = map.getValue();
                             for(int i=0;i<list1.size();i++){
                                 if(key.equals(list1.get(i).getAttributeCode())){   //属性名需和产品注册信息一致
                                     mp.put(key,value);
-                                    list2.add(mp);
                                     find = true;
                                 }
                             }
@@ -108,12 +105,11 @@ public class DmpDataInfoServiceImpl extends AbstractCrudService<DmpDataInfoMappe
                                 throw new BusinessException("对应这个产品下面的设备属性"+key+" 在产品属性表中不存在");
                             }
                         }
-                        deviceDataInfoVO.setMetrics(list2);
-                        deviceDataInfoVO.setDevice_id(dmpDeviceDataRequestVO.getDeviceId());
-                        deviceDataInfoVO.setProduct_id(list.get(0).getId().toString());
-                        deviceDataInfoVO.setTimestamp(dmpDeviceDataRequestVO.getTimestamp());
-                        deviceDataInfoVO.setDevice_type(list.get(0).getDeviceType()+"-"+shortName);
-                        dataInfo.add(deviceDataInfoVO);
+                        dataInfo.setMetrics(mp);
+                        dataInfo.setDevice_id(dmpDeviceDataRequestVO.getDeviceId());
+                        dataInfo.setProduct_id(list.get(0).getId().toString());
+                        dataInfo.setTimestamp(dmpDeviceDataRequestVO.getTimestamp());
+                        dataInfo.setDevice_type(list.get(0).getDeviceType()+"-"+shortName);
                     }
             }else{
                 throw new BusinessException("查找产品属性表失败,"+dmpDeviceDataRequestVO.getProductCode()+" 该产品对应的属性在产品信息表没有信息");
@@ -121,9 +117,8 @@ public class DmpDataInfoServiceImpl extends AbstractCrudService<DmpDataInfoMappe
         }else{
             throw new BusinessException("查找产品信息失败,"+dmpDeviceDataRequestVO.getProductCode()+" 在产品信息表中不存在");
         }
-        if(CollectionUtils.isNotEmpty(dataInfo)){
+        if(dataInfo != null){
             mqttGateway.sendToMqtt("data-collector", JSONArray.toJSON(dataInfo).toString());
-            String data = dataInfo.toString();
             System.out.println(JSONArray.toJSON(dataInfo).toString());
         }
     }

+ 1 - 1
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/DeviceDataInfoVO.java

@@ -17,7 +17,7 @@ public class DeviceDataInfoVO implements Serializable {
     /**
      * 属性值集合
      */
-    private List<Map<String,Object>> metrics;
+    private Map<String,Object> metrics;
 
     /**
      * 设备编号