24282 2 vuotta sitten
vanhempi
commit
018f1c39d0

+ 2 - 6
hx-iot/src/main/java/com/fjhx/iot/constants/RedisConstant.java

@@ -2,15 +2,11 @@ package com.fjhx.iot.constants;
 
 public interface RedisConstant {
 
-    String PREFIX = "syringe-production:";
-
-    String DATA_AUTOCLAVES = PREFIX + "dataAutoclaves:";
-
-    String DATA_PACKER = PREFIX + "dataPacker:";
+    String PREFIX = "Iot:";
 
     /**
      * 设备数据前缀
      */
-    String DEVICE_PREFIX = "device:";
+    String DEVICE_PREFIX = PREFIX + "device:";
 
 }

+ 22 - 5
hx-iot/src/main/java/com/fjhx/iot/controller/tda/TdaDeviceController.java

@@ -1,15 +1,21 @@
 package com.fjhx.iot.controller.tda;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
-import com.fjhx.common.constant.SourceConstant;
-import org.springframework.web.bind.annotation.*;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.iot.entity.tda.vo.TdaDeviceVo;
-import com.fjhx.iot.entity.tda.dto.TdaDeviceSelectDto;
+import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.iot.constants.RedisConstant;
 import com.fjhx.iot.entity.tda.dto.TdaDeviceDto;
-import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.iot.entity.tda.dto.TdaDeviceSelectDto;
+import com.fjhx.iot.entity.tda.po.TdaDevice;
+import com.fjhx.iot.entity.tda.vo.TdaDeviceVo;
 import com.fjhx.iot.service.tda.TdaDeviceService;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.ruoyi.common.core.redis.RedisCache;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 
 /**
@@ -28,6 +34,9 @@ public class TdaDeviceController {
     @Autowired
     private TdaDeviceService tdaDeviceService;
 
+    @Autowired
+    private RedisCache redisCache;
+
     /**
      * 设备管理分页
      */
@@ -37,6 +46,14 @@ public class TdaDeviceController {
     }
 
     /**
+     * 设备数据
+     */
+    @PostMapping("/data")
+    public Object getData(@RequestBody TdaDevice tdaDevice) {
+        return redisCache.getCacheObject(RedisConstant.DEVICE_PREFIX + tdaDevice.getDeviceId());
+    }
+
+    /**
      * 设备管理明细
      */
     @PostMapping("/detail")

+ 27 - 0
hx-iot/src/main/java/com/fjhx/iot/entity/tda/dto/BaseDtaBodyDto.java

@@ -0,0 +1,27 @@
+package com.fjhx.iot.entity.tda.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+@Getter
+@Setter
+public class BaseDtaBodyDto {
+
+    /**
+     * 推送时间
+     */
+    private Date eventTime;
+
+    /**
+     * 产品id
+     */
+    private String productId;
+
+    /**
+     * 设备id
+     */
+    private String deviceId;
+
+}

+ 163 - 0
hx-iot/src/main/java/com/fjhx/iot/entity/tda/dto/EbcDto.java

@@ -0,0 +1,163 @@
+package com.fjhx.iot.entity.tda.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+@Getter
+@Setter
+public class EbcDto extends BaseDtaBodyDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private Parameter parameter;
+    private Control control;
+    private Status status;
+
+    @Getter
+    @Setter
+    public static class Parameter {
+        private String dec_rat;
+        private String axis_interlen_8;
+        private String bumi;
+        private String axis_allnum_8;
+        private String axis_allnum_6;
+        private String axis_allnum_7;
+        private String axis_allnum_4;
+        private String axis_allnum_5;
+        private String axis_allnum_2;
+        private String axis_allnum_3;
+        private String axis_F_8;
+        private String luola_rat;
+        private String axis_F_7;
+        private String axis_allnum_1;
+        private String add_speed;
+        private String juanbu_weitiao;
+        private String axis_interlen_1;
+        private String input_mac;
+        private String axis_interlen_3;
+        private String axis_interlen_2;
+        private String axis_interlen_5;
+        private String axis_interlen_4;
+        private String axis_interlen_7;
+        private String max_bulen;
+        private String axis_interlen_6;
+        private String input_xor;
+        private String juanbu_len;
+        private String axis_F_2;
+        private String axis_outsidelen_4;
+        private String axis_F_1;
+        private String axis_outsidelen_3;
+        private String axis_outsidelen_2;
+        private String axis_outsidelen_1;
+        private String axis_F_6;
+        private String axis_outsidelen_8;
+        private String axis_F_5;
+        private String axis_outsidelen_7;
+        private String axis_F_4;
+        private String axis_outsidelen_6;
+        private String juanbu_rat;
+        private String axis_F_3;
+        private String axis_outsidelen_5;
+        private String min_leftnum;
+        private String luola_len;
+    }
+
+    @Getter
+    @Setter
+    public static class Control {
+        private String wei_sta_6;
+        private String wei_sta_5;
+        private String wei_sta_4;
+        private String wei_sta_3;
+        private String wei_sta_9;
+        private String wei_sta_8;
+        private String wei_sta_7;
+        private String wei_sta_2;
+        private String wei_sta_16;
+        private String wei_sta_1;
+        private String wei_sta_17;
+        private String wei_sta_12;
+        private String wei_sta_13;
+        private String wei_sta_14;
+        private String wei_sta_15;
+        private String wei_sta_10;
+        private String wei_sta_11;
+    }
+
+    @Getter
+    @Setter
+    public static class Status {
+        private String curr_sel;
+        private String curr_len_6;
+        private String curr_len_5;
+        private String curr_len_4;
+        private String curr_len_3;
+        private String curr_len_2;
+        private String stop_time_1;
+        private String curr_len_1;
+        private String stop_time_2;
+        private String stop_time_3;
+        private String stop_time_4;
+        private String sifu_sta_8;
+        private String sifu_sta_7;
+        private String sifu_sta_6;
+        private String sifu_sta_5;
+        private String sifu_sta_4;
+        private String sifu_sta_3;
+        private String sifu_sta_2;
+        private String sifu_sta_1;
+        private String curr_num_8;
+        private String curr_num_7;
+        private String curr_num_6;
+        private String curr_num_1;
+        private String curr_num_5;
+        private String curr_num_4;
+        private String sys_display;
+        private String curr_num_3;
+        private String curr_num_2;
+        private String hengyi;
+        private String sifu_sta_10;
+        private String all_bantime_3;
+        private String all_bantime_4;
+        private String all_bantime_1;
+        private String all_bantime_2;
+        private String ban_time_1;
+        private String sys_sta;
+        private String stop_times_3;
+        private String all_stoptime_3;
+        private String stop_times_2;
+        private String all_stoptime_2;
+        private String stop_times_4;
+        private String all_stoptime_4;
+        private String stop_times_1;
+        private String all_stoptimes_3;
+        private String all_stoptimes_4;
+        private String all_stoptimes_1;
+        private String all_stoptimes_2;
+        private String ban_time_3;
+        private String ban_time_2;
+        private String ban_time_4;
+        private String jiaka;
+        private String main_speed;
+        private String left_time_8;
+        private String left_time_6;
+        private String left_time_7;
+        private String left_time_4;
+        private String left_time_5;
+        private String left_time_2;
+        private String left_time_3;
+        private String sifu_sta_9;
+        private String left_time_1;
+        private String bu_len;
+        private String ban_len_4;
+        private String curr_len_8;
+        private String ban_len_3;
+        private String all_stoptime_1;
+        private String curr_len_7;
+        private String ban_len_2;
+        private String ban_len_1;
+    }
+
+}

+ 23 - 0
hx-iot/src/main/java/com/fjhx/iot/entity/tda/vo/TdaDeviceVo.java

@@ -4,6 +4,9 @@ import com.fjhx.iot.entity.tda.po.TdaDevice;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.Date;
+import java.util.Map;
+
 /**
  * 设备管理列表查询返回值实体
  *
@@ -24,4 +27,24 @@ public class TdaDeviceVo extends TdaDevice {
      */
     private String productName;
 
+    /**
+     * 华为tda产品设备类型
+     */
+    private String deviceType;
+
+    /**
+     * 设备状态
+     */
+    private String status;
+
+    /**
+     * 推送时间
+     */
+    private Date eventTime;
+
+    /**
+     * 其他字段
+     */
+    private Map<String, Object> other;
+
 }

+ 91 - 32
hx-iot/src/main/java/com/fjhx/iot/listener/DtaListener.java

@@ -1,25 +1,33 @@
 package com.fjhx.iot.listener;
 
-import cn.hutool.extra.spring.SpringUtil;
+import cn.hutool.core.io.IoUtil;
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
 import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.iot.constants.RedisConstant;
+import com.fjhx.iot.entity.tda.dto.EbcDto;
 import com.fjhx.iot.entity.tda.dto.MessageBody;
 import com.fjhx.iot.entity.tda.po.TdaConfig;
+import com.fjhx.iot.entity.tda.po.TdaProduct;
 import com.fjhx.iot.service.tda.TdaConfigService;
+import com.fjhx.iot.service.tda.TdaProductService;
 import com.fjhx.iot.utils.amqp.AmqpClient;
 import com.fjhx.iot.utils.amqp.AmqpClientOptions;
-import com.fjhx.iot.utils.amqp.AmqpConstants;
+import com.fjhx.iot.utils.amqp.AmqpConstant;
 import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.framework.mybatis.holder.TenantHolder;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.PostConstruct;
 import javax.jms.JMSException;
 import javax.jms.Message;
 import javax.jms.MessageConsumer;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
@@ -33,9 +41,14 @@ import java.util.concurrent.ConcurrentHashMap;
 @Component
 public class DtaListener {
 
-    private static final RedisCache redisCache = SpringUtil.getBean(RedisCache.class);
+    @Autowired
+    private RedisCache redisCache;
 
-    private static final TdaConfigService tdaConfigService = SpringUtil.getBean(TdaConfigService.class);
+    @Autowired
+    private TdaConfigService tdaConfigService;
+
+    @Autowired
+    private TdaProductService tdaProductService;
 
     public static final Map<Long, MessageConsumer> listenerMap = new ConcurrentHashMap<>();
 
@@ -57,32 +70,20 @@ public class DtaListener {
 
     }
 
-    public static MessageConsumer getMessageConsumer(TdaConfig tdaConfig) {
+    public MessageConsumer getMessageConsumer(TdaConfig tdaConfig) {
 
         MessageConsumer consumer = null;
         try {
-            AmqpClientOptions options = AmqpClientOptions.builder()
-                    .host(tdaConfig.getEndPoint())
-                    .port(AmqpConstants.PORT)
-                    .accessKey(tdaConfig.getAccessKey())
-                    .accessCode(tdaConfig.getAccessCode())
-                    .queuePrefetch(1000)
-                    .build();
+            AmqpClientOptions options = AmqpClientOptions.builder().host(tdaConfig.getEndPoint()).port(AmqpConstant.PORT).accessKey(tdaConfig.getAccessKey()).accessCode(tdaConfig.getAccessCode()).queuePrefetch(1000).build();
             AmqpClient amqpClient = new AmqpClient(options);
             amqpClient.initialize();
-            consumer = amqpClient.newConsumer(AmqpConstants.DEFAULT_QUEUE);
+            consumer = amqpClient.newConsumer(AmqpConstant.DEFAULT_QUEUE);
             // 此处进行消息处理。如果处理比较耗时,最好进行开启新的线程处理,否则可能造成心跳超时链接断开。
-            consumer.setMessageListener(DtaListener::handleData);
+            consumer.setMessageListener(this::handleData);
             return consumer;
         } catch (Exception e) {
-            try {
-                if (consumer != null) {
-                    consumer.close();
-                }
-            } catch (JMSException ex) {
-                log.error("关闭失败", ex);
-            }
-            log.error("链接失败,tdaConfig:{}", tdaConfig.getId(), e);
+            IoUtil.close(consumer);
+            log.error("链接失败,tdaConfigId:{}", tdaConfig.getId(), e);
             throw new ServiceException("连接iot失败");
         }
     }
@@ -95,12 +96,14 @@ public class DtaListener {
      *
      * @param message 推送消息
      */
-    public static void handleData(Message message) {
+    public void handleData(Message message) {
         try {
 
             String messageBodyStr = message.getBody(String.class);
             MessageBody messageBody = JSONObject.parseObject(messageBodyStr, MessageBody.class);
+
             if (messageBody == null) {
+                log.error(" messageBody == null ");
                 return;
             }
 
@@ -112,14 +115,14 @@ public class DtaListener {
                     reportHandel(messageBody);
                     break;
                 default:
-                    log.error("未知事件类型:{}\r\nmessageBody:{}", event, messageBodyStr);
+                    log.error("未知事件类型:{}\r\n messageBody:{}", event, messageBodyStr);
                     return;
             }
 
             message.acknowledge();
 
         } catch (JMSException e) {
-            e.printStackTrace();
+            log.error("iot监听发生未知异常", e);
         }
 
     }
@@ -127,44 +130,100 @@ public class DtaListener {
     /**
      * 处理报告数据
      */
-    private static void reportHandel(MessageBody messageBody) {
+    private void reportHandel(MessageBody messageBody) {
 
         MessageBody.NotifyData notifyData = messageBody.getNotifyData();
 
         if (notifyData == null) {
-            log.error(" notifyData == null , messageBody = {}", messageBody);
+            log.error(" notifyData == null , messageBody = {} ", JSON.toJSONString(messageBody));
             return;
         }
 
         MessageBody.Header header = notifyData.getHeader();
         if (header == null) {
-            log.error(" header == null , messageBody = {}", messageBody);
+            log.error(" header == null , messageBody = {} ", JSON.toJSONString(messageBody));
             return;
         }
 
         MessageBody.Body body = notifyData.getBody();
         if (body == null) {
-            log.error(" body == null , messageBody = {}", messageBody);
+            log.error(" body == null , messageBody = {} ", JSON.toJSONString(messageBody));
             return;
         }
 
         List<MessageBody.Service> services = body.getServices();
         if (services == null || services.size() == 0) {
-            log.error(" services == null || services.size() == 0 , messageBody = {}", messageBody);
+            log.error(" services == null || services.size() == 0 , messageBody = {} ", JSON.toJSONString(messageBody));
             return;
         }
 
+        // 数据列表
+        MessageBody.Service service = services.get(0);
 
+        // 产品id
         String productId = header.getProductId();
+        if (StrUtil.isBlank(productId)) {
+            log.error(" StrUtil.isBlank(productId) , messageBody = {} ", JSON.toJSONString(messageBody));
+            return;
+        }
 
+        // 设备id
         String deviceId = header.getDeviceId();
 
-        MessageBody.Service service = services.get(0);
+        // 数据推送时间
+        Date eventTime = messageBody.getEventTime();
 
+        // 实际生产数据
+        JSONObject properties = service.getProperties();
 
-        System.out.println(service);
+        TenantHolder.setIgnore(true);
+        DynamicDataSourceContextHolder.push(SourceConstant.IOT);
+
+        TdaProduct tdaProduct = tdaProductService.getOne(q -> q.eq(TdaProduct::getProductId, productId));
+        if (tdaProduct == null) {
+            log.error(" tdaProduct == null , messageBody = {} ", JSON.toJSONString(messageBody));
+            return;
+        }
+
+        String deviceType = tdaProduct.getDeviceType();
+        if (StrUtil.isBlank(deviceType)) {
+            log.error(" StrUtil.isBlank(deviceType) , messageBody = {} ", JSON.toJSONString(messageBody));
+        }
+
+        switch (deviceType) {
+            case "ebc":
+                doEbc(productId, deviceId, eventTime, properties.toJavaObject(EbcDto.class));
+                break;
+            default:
+                log.error("未知 deviceType:{}", deviceType);
+        }
+
+        DynamicDataSourceContextHolder.clear();
+        TenantHolder.clear();
 
     }
 
+    /**
+     * 经编机
+     *
+     * @param productId 产品id
+     * @param deviceId  设备id
+     * @param eventTime 推送时间
+     * @param ebcDto    推送数据
+     */
+    private void doEbc(String productId, String deviceId, Date eventTime, EbcDto ebcDto) {
+
+        EbcDto oldEbcDto = redisCache.getCacheObject(RedisConstant.DEVICE_PREFIX + deviceId);
+
+        if (oldEbcDto != null && eventTime.before(oldEbcDto.getEventTime())) {
+            return;
+        }
+
+        ebcDto.setDeviceId(deviceId);
+        ebcDto.setProductId(productId);
+        ebcDto.setEventTime(eventTime);
+        redisCache.setCacheObject(RedisConstant.DEVICE_PREFIX + deviceId, ebcDto);
+
+    }
 
 }

+ 11 - 7
hx-iot/src/main/java/com/fjhx/iot/service/tda/impl/TdaConfigServiceImpl.java

@@ -1,7 +1,6 @@
 package com.fjhx.iot.service.tda.impl;
 
 import cn.hutool.core.bean.BeanUtil;
-import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.iot.entity.tda.dto.TdaConfigDto;
@@ -13,6 +12,8 @@ import com.fjhx.iot.mapper.tda.TdaConfigMapper;
 import com.fjhx.iot.service.tda.TdaConfigService;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.ruoyi.common.utils.wrapper.SqlField;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -31,6 +32,10 @@ import javax.jms.MessageConsumer;
 @Service
 public class TdaConfigServiceImpl extends ServiceImpl<TdaConfigMapper, TdaConfig> implements TdaConfigService {
 
+    @Lazy
+    @Autowired
+    private DtaListener dtaListener;
+
     @Override
     public Page<TdaConfigVo> getPage(TdaConfigSelectDto dto) {
         IWrapper<TdaConfig> wrapper = getWrapper();
@@ -50,16 +55,18 @@ public class TdaConfigServiceImpl extends ServiceImpl<TdaConfigMapper, TdaConfig
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void add(TdaConfigDto tdaConfigDto) {
-        tdaConfigDto.setId(IdWorker.getId());
-        MessageConsumer messageConsumer = DtaListener.getMessageConsumer(tdaConfigDto);
         this.save(tdaConfigDto);
+        MessageConsumer messageConsumer = dtaListener.getMessageConsumer(tdaConfigDto);
         DtaListener.listenerMap.put(tdaConfigDto.getId(), messageConsumer);
     }
 
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void edit(TdaConfigDto tdaConfigDto) {
-        MessageConsumer messageConsumer = DtaListener.getMessageConsumer(tdaConfigDto);
+        this.updateById(tdaConfigDto);
+
+        MessageConsumer messageConsumer = dtaListener.getMessageConsumer(tdaConfigDto);
+        DtaListener.listenerMap.put(tdaConfigDto.getId(), messageConsumer);
 
         MessageConsumer oldMessageConsumer = DtaListener.listenerMap.get(tdaConfigDto.getId());
         if (oldMessageConsumer != null) {
@@ -70,9 +77,6 @@ public class TdaConfigServiceImpl extends ServiceImpl<TdaConfigMapper, TdaConfig
             }
             DtaListener.listenerMap.remove(tdaConfigDto.getId());
         }
-
-        this.updateById(tdaConfigDto);
-        DtaListener.listenerMap.put(tdaConfigDto.getId(), messageConsumer);
     }
 
     @Transactional(rollbackFor = Exception.class)

+ 50 - 0
hx-iot/src/main/java/com/fjhx/iot/service/tda/impl/TdaDeviceServiceImpl.java

@@ -1,8 +1,11 @@
 package com.fjhx.iot.service.tda.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.iot.constants.RedisConstant;
+import com.fjhx.iot.entity.tda.dto.EbcDto;
 import com.fjhx.iot.entity.tda.dto.TdaDeviceDto;
 import com.fjhx.iot.entity.tda.dto.TdaDeviceSelectDto;
 import com.fjhx.iot.entity.tda.po.TdaApplication;
@@ -14,6 +17,7 @@ import com.fjhx.iot.service.tda.TdaApplicationService;
 import com.fjhx.iot.service.tda.TdaDeviceService;
 import com.fjhx.iot.service.tda.TdaProductService;
 import com.fjhx.iot.utils.IoTDAUtil;
+import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.ruoyi.common.utils.wrapper.SqlField;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -21,6 +25,9 @@ import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.HashMap;
+import java.util.List;
+
 
 /**
  * <p>
@@ -41,6 +48,8 @@ public class TdaDeviceServiceImpl extends ServiceImpl<TdaDeviceMapper, TdaDevice
     @Autowired
     private TdaApplicationService tdaApplicationService;
 
+    @Autowired
+    private RedisCache redisCache;
 
     @Override
     public Page<TdaDeviceVo> getPage(TdaDeviceSelectDto dto) {
@@ -48,6 +57,47 @@ public class TdaDeviceServiceImpl extends ServiceImpl<TdaDeviceMapper, TdaDevice
         wrapper.orderByDesc("td", TdaDevice::getId);
         wrapper.keyword(dto, new SqlField("td.device_name"));
         Page<TdaDeviceVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+
+        List<TdaDeviceVo> records = page.getRecords();
+
+        if (records.size() == 0) {
+            return page;
+        }
+
+        for (TdaDeviceVo record : records) {
+
+            HashMap<String, Object> other = new HashMap<>();
+            record.setOther(other);
+
+            // 设备id
+            String deviceId = record.getDeviceId();
+
+            // 产品设备类型
+            String deviceType = record.getDeviceType();
+
+            if (StrUtil.isBlank(deviceId)) {
+                continue;
+            }
+
+            Object obj = redisCache.getCacheObject(RedisConstant.DEVICE_PREFIX + deviceId);
+
+            switch (deviceType) {
+                case "ebc":
+                    EbcDto ebcDto = (EbcDto) obj;
+                    EbcDto.Status status = ebcDto.getStatus();
+                    String sysSta = status.getSys_sta();
+                    record.setStatus(sysSta);
+                    record.setEventTime(ebcDto.getEventTime());
+
+                    other.put("ebc", "1");
+                    other.put("jiaka", status.getJiaka());
+                    other.put("hengyi", status.getHengyi());
+                    break;
+            }
+
+        }
+
+
         return page;
     }
 

+ 17 - 0
hx-iot/src/main/java/com/fjhx/iot/utils/amqp/AmqpConstant.java

@@ -0,0 +1,17 @@
+package com.fjhx.iot.utils.amqp;
+
+
+public interface AmqpConstant {
+
+    /**
+     * AMQP接入端口
+     * 参考:https://support.huaweicloud.com/usermanual-iothub/iot_01_00100_2.html#section2
+     */
+    int PORT = 5671;
+
+    /**
+     * 默认队列
+     */
+    String DEFAULT_QUEUE = "DefaultQueue";
+
+}

+ 0 - 37
hx-iot/src/main/java/com/fjhx/iot/utils/amqp/AmqpConstants.java

@@ -1,37 +0,0 @@
-package com.fjhx.iot.utils.amqp;
-
-
-public interface AmqpConstants {
-
-    // /**
-    //  * AMQP接入域名
-    //  * 参考:https://support.huaweicloud.com/usermanual-iothub/iot_01_00100_2.html#section2
-    //  * eg: "****.iot-amqps.cn-north-4.myhuaweicloud.com";
-    //  */
-    // String HOST = "a1625d5cc8.iot-amqps.cn-north-4.myhuaweicloud.com";
-
-    /**
-     * AMQP接入端口
-     * 参考:https://support.huaweicloud.com/usermanual-iothub/iot_01_00100_2.html#section2
-     */
-    int PORT = 5671;
-
-    // /**
-    //  * 接入凭证键值
-    //  * 参考:https://support.huaweicloud.com/usermanual-iothub/iot_01_00100_2.html#section3
-    //  * 不需要拼接时间戳timestamp
-    //  */
-    // String ACCESS_KEY = "SwGUHYzA";
-    //
-    // /**
-    //  * 接入凭证密钥
-    //  * 参考:https://support.huaweicloud.com/usermanual-iothub/iot_01_00100_2.html#section3
-    //  */
-    // String ACCESS_CODE = "mGYgxmOtPhWDNHaAMU76aiSy0P3OtaWE";
-
-    /**
-     * 默认队列
-     */
-    String DEFAULT_QUEUE = "DefaultQueue";
-
-}

+ 2 - 1
hx-iot/src/main/resources/mapper/tda/TdaDeviceMapper.xml

@@ -13,7 +13,8 @@
                td.create_time,
                td.update_user,
                td.update_time,
-               tp.name productName,
+               tp.name        productName,
+               tp.device_type deviceType,
                ta.app_name
         from tda_device td
                  left join tda_product tp on td.tda_product_id = tp.id