james 1 年之前
父節點
當前提交
110cb38e2e

+ 0 - 1
service-backend/service-backend-api/src/main/java/com/usky/backend/client/DeviceDataClient.java

@@ -1,6 +1,5 @@
 package com.usky.backend.client;
 
-import com.usky.backend.domain.request.DeviceDataInfoVO;
 import org.springframework.cloud.openfeign.FeignClient;
 
 @FeignClient(contextId = "deviceDataClient", value = "usky-backend")

+ 19 - 12
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/DmpDataInfoServiceImpl.java

@@ -1,9 +1,11 @@
 package com.usky.iot.service.impl;
 
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 //import com.usky.backend.client.DeviceDataClient;
+import com.usky.iot.service.config.mqtt.MqttOutConfig;
 import com.usky.iot.service.vo.DeviceDataInfoVO;
 import com.usky.common.core.exception.BusinessException;
 import com.usky.common.mybatis.core.AbstractCrudService;
@@ -86,38 +88,43 @@ public class DmpDataInfoServiceImpl extends AbstractCrudService<DmpDataInfoMappe
                     .eq(DmpProductAttribute::getProductId,list.get(0).getId());
             List<DmpProductAttribute> list1 = dmpProductAttributeService.list(queryWrapper1);
             if(CollectionUtils.isNotEmpty(list1)){
-                for(int i=0;i<list1.size();i++){
                     Map<String,Float> metrics = dmpDeviceDataRequestVO.getMetrics();
                     if(metrics.size()>0){
                         DeviceDataInfoVO deviceDataInfoVO = new DeviceDataInfoVO();
-                        Map<String,Object> mp = new HashMap<>();
                         List<Map<String,Object>> list2 = new ArrayList<>();
                         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();
-                            if(key.equals(list1.get(i).getAttributeCode())){   //属性名需和产品注册信息一致
-                                mp.put(key,value);
-                                list2.add(mp);
-                            }else{
-                                throw new BusinessException("设备属性"+key+" 在产品属性表中不存在");
+                            for(int i=0;i<list1.size();i++){
+                                if(key.equals(list1.get(i).getAttributeCode())){   //属性名需和产品注册信息一致
+                                    mp.put(key,value);
+                                    list2.add(mp);
+                                    find = true;
+                                }
+                            }
+                            if(find == false){
+                                throw new BusinessException("对应这个产品下面的设备属性"+key+" 在产品属性表中不存在");
                             }
                         }
                         deviceDataInfoVO.setMetrics(list2);
                         deviceDataInfoVO.setDevice_id(dmpDeviceDataRequestVO.getDeviceId());
                         deviceDataInfoVO.setProduct_id(list.get(0).getId().toString());
-                        Calendar calendar = Calendar.getInstance();
-                        long timestamp = calendar.getTimeInMillis() / 1000;
-                        deviceDataInfoVO.setTimestamp(timestamp);
+                        deviceDataInfoVO.setTimestamp(dmpDeviceDataRequestVO.getTimestamp());
                         deviceDataInfoVO.setDevice_type(list.get(0).getDeviceType()+"-"+shortName);
                         dataInfo.add(deviceDataInfoVO);
                     }
-                }
+            }else{
+                throw new BusinessException("查找产品属性表失败,"+dmpDeviceDataRequestVO.getProductCode()+" 该产品对应的属性在产品信息表没有信息");
             }
         }else{
             throw new BusinessException("查找产品信息失败,"+dmpDeviceDataRequestVO.getProductCode()+" 在产品信息表中不存在");
         }
         if(CollectionUtils.isNotEmpty(dataInfo)){
-            mqttGateway.sendToMqtt("data-collector",dataInfo);
+            mqttGateway.sendToMqtt("data-collector", JSONArray.toJSON(dataInfo).toString());
+            String data = dataInfo.toString();
+            System.out.println(JSONArray.toJSON(dataInfo).toString());
         }
     }
 

+ 2 - 2
service-iot/service-iot-biz/src/main/resources/bootstrap.yml

@@ -14,10 +14,10 @@ spring:
     nacos:
       discovery:
         # 服务注册地址
-        server-addr: usky-cloud-nacos:8848
+        server-addr: 172.16.120.165:8848
       config:
         # 配置中心地址
-        server-addr: usky-cloud-nacos:8848
+        server-addr: 172.16.120.165:8848
         # 配置文件格式
         file-extension: yml
         # 共享配置