Sfoglia il codice sorgente

feat:根据easy-es.enable开关控制http心跳和Netty心跳页面分页数据来源,进行分页查询

lihao16 2 mesi fa
parent
commit
aab5863031
17 ha cambiato i file con 459 aggiunte e 46 eliminazioni
  1. 6 0
      smsb-modules/smsb-device/pom.xml
  2. 33 15
      smsb-modules/smsb-device/src/main/java/com/inspur/device/controller/SmsbDeviceHeartRecordController.java
  3. 79 0
      smsb-modules/smsb-device/src/main/java/com/inspur/device/domain/es/EsDeviceHeartRecord.java
  4. 120 0
      smsb-modules/smsb-device/src/main/java/com/inspur/device/domain/es/EsDeviceRunInfo.java
  5. 1 1
      smsb-modules/smsb-device/src/main/java/com/inspur/device/domain/vo/SmsbDeviceHeartRecordVo.java
  6. 12 0
      smsb-modules/smsb-device/src/main/java/com/inspur/device/esmapper/EsDeviceHeartRecordMapper.java
  7. 11 0
      smsb-modules/smsb-device/src/main/java/com/inspur/device/esmapper/EsDeviceRunInfoMapper.java
  8. 39 0
      smsb-modules/smsb-device/src/main/java/com/inspur/device/service/IEsSmsbDeviceService.java
  9. 0 1
      smsb-modules/smsb-device/src/main/java/com/inspur/device/service/ISmsbDeviceLoginService.java
  10. 1 2
      smsb-modules/smsb-device/src/main/java/com/inspur/device/service/ISmsbDeviceService.java
  11. 103 0
      smsb-modules/smsb-device/src/main/java/com/inspur/device/service/impl/EsSmsbDeviceServiceImpl.java
  12. 9 10
      smsb-modules/smsb-device/src/main/java/com/inspur/device/service/impl/SmsbDeviceHeartRecordServiceImpl.java
  13. 15 7
      smsb-modules/smsb-device/src/main/java/com/inspur/device/service/impl/SmsbDeviceServiceImpl.java
  14. 12 5
      smsb-modules/smsb-netty/src/main/java/com/inspur/netty/controller/SmsbEsController.java
  15. 15 0
      smsb-modules/smsb-netty/src/main/java/com/inspur/netty/domain/es/EsSmsbDeviceHeartRecord.java
  16. 0 4
      smsb-modules/smsb-netty/src/main/java/com/inspur/netty/handler/ConnectServerHandler.java
  17. 3 1
      smsb-modules/smsb-netty/src/main/java/com/inspur/netty/handler/HeartServerHandler.java

+ 6 - 0
smsb-modules/smsb-device/pom.xml

@@ -28,6 +28,12 @@
             <artifactId>smsb-common-doc</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>com.inspur</groupId>
+            <artifactId>smsb-common-elasticsearch</artifactId>
+            <version>${revision}</version>
+        </dependency>
+
         <dependency>
             <groupId>com.inspur</groupId>
             <artifactId>smsb-common-sms</artifactId>

+ 33 - 15
smsb-modules/smsb-device/src/main/java/com/inspur/device/controller/SmsbDeviceHeartRecordController.java

@@ -1,26 +1,31 @@
 package com.inspur.device.controller;
 
-import java.util.List;
-
-import lombok.RequiredArgsConstructor;
-import jakarta.servlet.http.HttpServletResponse;
-import jakarta.validation.constraints.*;
 import cn.dev33.satoken.annotation.SaCheckPermission;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.validation.annotation.Validated;
-import org.dromara.common.idempotent.annotation.RepeatSubmit;
-import org.dromara.common.log.annotation.Log;
-import org.dromara.common.web.core.BaseController;
-import org.dromara.common.mybatis.core.page.PageQuery;
+import com.inspur.device.domain.bo.SmsbDeviceHeartRecordBo;
+import com.inspur.device.domain.vo.SmsbDeviceHeartRecordVo;
+import com.inspur.device.service.IEsSmsbDeviceService;
+import com.inspur.device.service.ISmsbDeviceHeartRecordService;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.NotNull;
+import lombok.RequiredArgsConstructor;
 import org.dromara.common.core.domain.R;
 import org.dromara.common.core.validate.AddGroup;
 import org.dromara.common.core.validate.EditGroup;
-import org.dromara.common.log.enums.BusinessType;
 import org.dromara.common.excel.utils.ExcelUtil;
-import com.inspur.device.domain.vo.SmsbDeviceHeartRecordVo;
-import com.inspur.device.domain.bo.SmsbDeviceHeartRecordBo;
-import com.inspur.device.service.ISmsbDeviceHeartRecordService;
+import org.dromara.common.idempotent.annotation.RepeatSubmit;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.easyes.core.biz.EsPageInfo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
 
 /**
  * 设备心跳
@@ -36,12 +41,25 @@ public class SmsbDeviceHeartRecordController extends BaseController {
 
     private final ISmsbDeviceHeartRecordService smsbDeviceHeartRecordService;
 
+    @Autowired(required = false)
+    private IEsSmsbDeviceService esSmsbDeviceService;
+
+    @Value("${easy-es.enable}")
+    private Boolean esEnable;
+
     /**
      * 查询设备心跳列表
      */
     @SaCheckPermission("device:heart:list")
     @GetMapping("/list")
     public TableDataInfo<SmsbDeviceHeartRecordVo> list(SmsbDeviceHeartRecordBo bo, PageQuery pageQuery) {
+        if (esEnable) {
+            EsPageInfo<SmsbDeviceHeartRecordVo> esResult = esSmsbDeviceService.queryEsDeviceHeartPageList(bo, pageQuery);
+            TableDataInfo<SmsbDeviceHeartRecordVo> pageInfo = new TableDataInfo<SmsbDeviceHeartRecordVo>();
+            pageInfo.setRows(esResult.getList());
+            pageInfo.setTotal((long) esResult.getPages() * esResult.getPageSize());
+            return pageInfo;
+        }
         return smsbDeviceHeartRecordService.queryPageList(bo, pageQuery);
     }
 

+ 79 - 0
smsb-modules/smsb-device/src/main/java/com/inspur/device/domain/es/EsDeviceHeartRecord.java

@@ -0,0 +1,79 @@
+package com.inspur.device.domain.es;
+
+import lombok.Data;
+import org.dromara.easyes.annotation.IndexField;
+import org.dromara.easyes.annotation.IndexId;
+import org.dromara.easyes.annotation.IndexName;
+import org.dromara.easyes.annotation.Settings;
+import org.dromara.easyes.annotation.rely.FieldType;
+import org.dromara.easyes.annotation.rely.IdType;
+
+import java.io.Serial;
+
+/**
+ * 设备心跳对象 smsb_device_heart_record
+ *
+ * @author Hao Li
+ * @date 2025-04-28
+ */
+@Data
+@IndexName(value = "smsb_device_heart_record", aliasName = "deviceHeartRecord")
+@Settings(shardsNum = 3, replicasNum = 0)
+public class EsDeviceHeartRecord {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @IndexId(type = IdType.NONE)
+    private String id;
+
+    /**
+     * 设备唯一标识
+     */
+    private String identifier;
+
+    /**
+     * 设备IP
+     */
+    private String clientIp;
+
+    /**
+     * 心跳类型 1-http 2-Netty
+     */
+    private String heartType;
+
+    /**
+     * 心跳间隔
+     */
+    private String timeInterval;
+
+    /**
+     * 创建时间
+     */
+    @IndexField(fieldType = FieldType.DATE, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private String createTime;
+
+    /**
+     * 租户ID
+     */
+    private String tenantId;
+
+    /**
+     * 设备名称
+     */
+    private String deviceName;
+
+    /**
+     * 设备SN
+     */
+    private String deviceSn;
+
+    /**
+     * 设备MAC
+     */
+    private String deviceMac;
+
+}

+ 120 - 0
smsb-modules/smsb-device/src/main/java/com/inspur/device/domain/es/EsDeviceRunInfo.java

@@ -0,0 +1,120 @@
+package com.inspur.device.domain.es;
+
+import lombok.Data;
+import org.dromara.easyes.annotation.IndexField;
+import org.dromara.easyes.annotation.IndexId;
+import org.dromara.easyes.annotation.IndexName;
+import org.dromara.easyes.annotation.Settings;
+import org.dromara.easyes.annotation.rely.FieldType;
+import org.dromara.easyes.annotation.rely.IdType;
+
+import java.io.Serial;
+
+/**
+ * 设备运行信息对象 smsb_device_run_info
+ *
+ * @author Hao Li
+ * @date 2025-04-27
+ */
+@Data
+@Settings(shardsNum = 3, replicasNum = 0)
+@IndexName(value = "smsb_device_run_info", aliasName = "deviceRunInfo")
+public class EsDeviceRunInfo {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @IndexId(type = IdType.NONE)
+    private String id;
+
+    /**
+     * 设备ID
+     */
+    private String deviceId;
+
+    /**
+     * 设备名称
+     */
+    private String deviceName;
+
+    /**
+     * 设备SN
+     */
+    private String deviceSn;
+
+    /**
+     * 设备MAC
+     */
+    private String deviceMac;
+
+    /**
+     * 亮度
+     */
+    private String bright;
+
+    /**
+     * 音量
+     */
+    private String volume;
+
+    /**
+     * CPU使用率
+     */
+    private String cpuUsage;
+
+    /**
+     * 外部存储 总量
+     */
+    private String externalMemoryTotal;
+
+    /**
+     * 外部存储 已使用
+     */
+    private String externalMemoryUsage;
+
+    /**
+     * 外部存储 使用百分比
+     */
+    private String externalUsage;
+
+    /**
+     * 内存 总量
+     */
+    private String ramTotalOfByte;
+
+    /**
+     * 内存 已使用
+     */
+    private String ramUsageOfByte;
+
+    /**
+     * 系统构建时间
+     */
+    private String systemBuildDate;
+
+    /**
+     * 系统构建版本
+     */
+    private String systemBuildVersion;
+
+    /**
+     * 版本code
+     */
+    private String versionCode;
+
+    /**
+     * 版本名称
+     */
+    private String versionName;
+
+    /**
+     * 创建时间
+     */
+    @IndexField(fieldType = FieldType.DATE, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private String createTime;
+
+    private String tenantId;
+}

+ 1 - 1
smsb-modules/smsb-device/src/main/java/com/inspur/device/domain/vo/SmsbDeviceHeartRecordVo.java

@@ -29,7 +29,7 @@ public class SmsbDeviceHeartRecordVo implements Serializable {
      * 主键ID
      */
     @ExcelProperty(value = "主键ID")
-    private Long id;
+    private String id;
 
     /**
      * 设备唯一标识

+ 12 - 0
smsb-modules/smsb-device/src/main/java/com/inspur/device/esmapper/EsDeviceHeartRecordMapper.java

@@ -0,0 +1,12 @@
+package com.inspur.device.esmapper;
+
+import com.inspur.device.domain.es.EsDeviceHeartRecord;
+import org.dromara.easyes.core.kernel.BaseEsMapper;
+
+/**
+ * es 设备心跳记录
+ *
+ * @author lihao16
+ */
+public interface EsDeviceHeartRecordMapper extends BaseEsMapper<EsDeviceHeartRecord> {
+}

+ 11 - 0
smsb-modules/smsb-device/src/main/java/com/inspur/device/esmapper/EsDeviceRunInfoMapper.java

@@ -0,0 +1,11 @@
+package com.inspur.device.esmapper;
+
+import com.inspur.device.domain.es.EsDeviceRunInfo;
+import org.dromara.easyes.core.kernel.BaseEsMapper;
+
+/**
+ * 设备运行信息 es mapper
+ * @author lihao16
+ */
+public interface EsDeviceRunInfoMapper extends BaseEsMapper<EsDeviceRunInfo> {
+}

+ 39 - 0
smsb-modules/smsb-device/src/main/java/com/inspur/device/service/IEsSmsbDeviceService.java

@@ -0,0 +1,39 @@
+package com.inspur.device.service;
+
+
+import com.inspur.device.domain.SmsbDeviceHeartRecord;
+import com.inspur.device.domain.SmsbDeviceRunInfo;
+import com.inspur.device.domain.bo.SmsbDeviceHeartRecordBo;
+import com.inspur.device.domain.vo.SmsbDeviceHeartRecordVo;
+import com.inspur.device.domain.vo.SmsbDeviceVo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.easyes.core.biz.EsPageInfo;
+
+/**
+ * 描述: Es device service
+ * @author lihao16
+ */
+public interface IEsSmsbDeviceService {
+
+    /**
+     * 插入设备心跳记录 ES
+     * @param smsbDeviceHeartRecord
+     * @param smsbDeviceVo
+     */
+    void insertEsDeviceHeartRecord(SmsbDeviceHeartRecord smsbDeviceHeartRecord, SmsbDeviceVo smsbDeviceVo);
+
+    /**
+     * 插入设备运行信息 ES
+     * @param deviceRunInfo
+     * @param smsbDeviceVo
+     */
+    void insertEsDeviceRunInfo(SmsbDeviceRunInfo deviceRunInfo, SmsbDeviceVo smsbDeviceVo);
+
+    /**
+     * 查询设备心跳记录 ES
+     * @param bo
+     * @param pageQuery
+     * @return
+     */
+    EsPageInfo<SmsbDeviceHeartRecordVo> queryEsDeviceHeartPageList(SmsbDeviceHeartRecordBo bo, PageQuery pageQuery);
+}

+ 0 - 1
smsb-modules/smsb-device/src/main/java/com/inspur/device/service/ISmsbDeviceLoginService.java

@@ -2,7 +2,6 @@ package com.inspur.device.service;
 
 import com.inspur.device.domain.bo.HttpHeartbeatReq;
 import com.inspur.device.domain.bo.SmsbDeviceLoginBo;
-import com.inspur.device.domain.vo.HttpHeartbeatRspVo;
 import com.inspur.device.domain.vo.SmsbDeviceLoginVo;
 import org.dromara.common.core.domain.R;
 import org.dromara.common.mybatis.core.page.PageQuery;

+ 1 - 2
smsb-modules/smsb-device/src/main/java/com/inspur/device/service/ISmsbDeviceService.java

@@ -1,12 +1,11 @@
 package com.inspur.device.service;
 
-import com.inspur.device.domain.SmsbDevice;
 import com.inspur.device.domain.bo.HttpHeartbeatReq;
 import com.inspur.device.domain.bo.SmsbDeviceBo;
 import com.inspur.device.domain.vo.*;
 import org.dromara.common.core.domain.R;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.util.Collection;

+ 103 - 0
smsb-modules/smsb-device/src/main/java/com/inspur/device/service/impl/EsSmsbDeviceServiceImpl.java

@@ -0,0 +1,103 @@
+package com.inspur.device.service.impl;
+
+import com.inspur.device.domain.SmsbDeviceHeartRecord;
+import com.inspur.device.domain.SmsbDeviceRunInfo;
+import com.inspur.device.domain.bo.SmsbDeviceHeartRecordBo;
+import com.inspur.device.domain.es.EsDeviceHeartRecord;
+import com.inspur.device.domain.es.EsDeviceRunInfo;
+import com.inspur.device.domain.vo.SmsbDeviceHeartRecordVo;
+import com.inspur.device.domain.vo.SmsbDeviceVo;
+import com.inspur.device.esmapper.EsDeviceHeartRecordMapper;
+import com.inspur.device.esmapper.EsDeviceRunInfoMapper;
+import com.inspur.device.service.IEsSmsbDeviceService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.core.utils.DateUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.easyes.core.biz.EsPageInfo;
+import org.dromara.easyes.core.conditions.select.LambdaEsQueryWrapper;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 描述: Es 设备服务实现类
+ *
+ * @author lihao16
+ */
+@RequiredArgsConstructor
+@Service
+@Slf4j
+@ConditionalOnProperty(value = "easy-es.enable", havingValue = "true")
+public class EsSmsbDeviceServiceImpl implements IEsSmsbDeviceService {
+
+    @Autowired
+    private EsDeviceRunInfoMapper esDeviceRunInfoMapper;
+    @Autowired
+    private EsDeviceHeartRecordMapper esDeviceHeartRecordMapper;
+
+    @Override
+    public void insertEsDeviceHeartRecord(SmsbDeviceHeartRecord smsbDeviceHeartRecord, SmsbDeviceVo smsbDeviceVo) {
+        EsDeviceHeartRecord esSmsbDeviceHeartRecord = new EsDeviceHeartRecord();
+        BeanUtils.copyProperties(smsbDeviceHeartRecord, esSmsbDeviceHeartRecord);
+        esSmsbDeviceHeartRecord.setHeartType("1");
+        esSmsbDeviceHeartRecord.setTimeInterval(smsbDeviceHeartRecord.getTimeInterval() + "");
+        esSmsbDeviceHeartRecord.setCreateTime(DateUtils.getTime());
+        esSmsbDeviceHeartRecord.setTenantId(smsbDeviceVo.getTenantId());
+        esSmsbDeviceHeartRecord.setDeviceSn(smsbDeviceVo.getSerialNumber());
+        esSmsbDeviceHeartRecord.setDeviceName(smsbDeviceVo.getName());
+        esSmsbDeviceHeartRecord.setDeviceMac(smsbDeviceVo.getMac());
+        esDeviceHeartRecordMapper.insert(esSmsbDeviceHeartRecord);
+    }
+
+    @Override
+    public void insertEsDeviceRunInfo(SmsbDeviceRunInfo deviceRunInfo, SmsbDeviceVo smsbDeviceVo) {
+        EsDeviceRunInfo esSmsbDeviceRunInfo = new EsDeviceRunInfo();
+        BeanUtils.copyProperties(deviceRunInfo, esSmsbDeviceRunInfo);
+        esSmsbDeviceRunInfo.setCreateTime(DateUtils.getTime());
+        esSmsbDeviceRunInfo.setDeviceId(deviceRunInfo.getDeviceId().toString());
+        esSmsbDeviceRunInfo.setBright(deviceRunInfo.getBright().toString());
+        esSmsbDeviceRunInfo.setVolume(deviceRunInfo.getVolume().toString());
+        esSmsbDeviceRunInfo.setTenantId(smsbDeviceVo.getTenantId());
+        esSmsbDeviceRunInfo.setDeviceName(smsbDeviceVo.getName());
+        esSmsbDeviceRunInfo.setDeviceSn(smsbDeviceVo.getSerialNumber());
+        esSmsbDeviceRunInfo.setDeviceMac(smsbDeviceVo.getMac());
+        esDeviceRunInfoMapper.insert(esSmsbDeviceRunInfo);
+    }
+
+    @Override
+    public EsPageInfo<SmsbDeviceHeartRecordVo> queryEsDeviceHeartPageList(SmsbDeviceHeartRecordBo bo, PageQuery pageQuery) {
+        LambdaEsQueryWrapper<EsDeviceHeartRecord> wrapper = new LambdaEsQueryWrapper<>();
+        wrapper.match(EsDeviceHeartRecord::getHeartType, bo.getHeartType().toString());
+        if (!StringUtils.isEmpty(bo.getIdentifier())) {
+            wrapper.match(EsDeviceHeartRecord::getIdentifier, bo.getIdentifier());
+        }
+        if (!StringUtils.isEmpty(bo.getClientIp())) {
+            wrapper.match(EsDeviceHeartRecord::getClientIp, bo.getClientIp());
+        }
+        if (!StringUtils.isEmpty(bo.getDeviceName())) {
+            wrapper.match(EsDeviceHeartRecord::getDeviceName, bo.getDeviceName());
+        }
+        wrapper.orderByDesc(EsDeviceHeartRecord::getCreateTime);
+        EsPageInfo<EsDeviceHeartRecord> pageInfo = esDeviceHeartRecordMapper.pageQuery(wrapper, pageQuery.getPageNum(), pageQuery.getPageSize());
+        List<SmsbDeviceHeartRecordVo> resultList = new ArrayList<>();
+        for (EsDeviceHeartRecord esDeviceHeartRecord : pageInfo.getList()) {
+            SmsbDeviceHeartRecordVo smsbDeviceHeartRecordVo = new SmsbDeviceHeartRecordVo();
+            BeanUtils.copyProperties(esDeviceHeartRecord, smsbDeviceHeartRecordVo);
+            smsbDeviceHeartRecordVo.setTimeInterval(Long.parseLong(esDeviceHeartRecord.getTimeInterval()));
+            smsbDeviceHeartRecordVo.setCreateTime(DateUtils.parseDate(esDeviceHeartRecord.getCreateTime()));
+            smsbDeviceHeartRecordVo.setSerialNumber(esDeviceHeartRecord.getDeviceSn());
+            smsbDeviceHeartRecordVo.setMac(esDeviceHeartRecord.getDeviceMac());
+            resultList.add(smsbDeviceHeartRecordVo);
+        }
+        EsPageInfo<SmsbDeviceHeartRecordVo> result = new EsPageInfo<>();
+        BeanUtils.copyProperties(pageInfo, result);
+        result.setList(resultList);
+        return result;
+    }
+}

+ 9 - 10
smsb-modules/smsb-device/src/main/java/com/inspur/device/service/impl/SmsbDeviceHeartRecordServiceImpl.java

@@ -1,23 +1,23 @@
 package com.inspur.device.service.impl;
 
-import org.dromara.common.core.utils.MapstructUtils;
-import org.dromara.common.core.utils.StringUtils;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.common.mybatis.core.page.PageQuery;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import lombok.RequiredArgsConstructor;
-import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.inspur.device.domain.SmsbDeviceHeartRecord;
 import com.inspur.device.domain.bo.SmsbDeviceHeartRecordBo;
 import com.inspur.device.domain.vo.SmsbDeviceHeartRecordVo;
-import com.inspur.device.domain.SmsbDeviceHeartRecord;
 import com.inspur.device.mapper.SmsbDeviceHeartRecordMapper;
 import com.inspur.device.service.ISmsbDeviceHeartRecordService;
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.springframework.stereotype.Service;
 
+import java.util.Collection;
 import java.util.List;
 import java.util.Map;
-import java.util.Collection;
 
 /**
  * 设备心跳Service业务层处理
@@ -28,7 +28,6 @@ import java.util.Collection;
 @RequiredArgsConstructor
 @Service
 public class SmsbDeviceHeartRecordServiceImpl implements ISmsbDeviceHeartRecordService {
-
     private final SmsbDeviceHeartRecordMapper baseMapper;
 
     /**

+ 15 - 7
smsb-modules/smsb-device/src/main/java/com/inspur/device/service/impl/SmsbDeviceServiceImpl.java

@@ -23,6 +23,7 @@ import com.inspur.device.domain.vo.*;
 import com.inspur.device.mapper.SmsbDeviceHeartRecordMapper;
 import com.inspur.device.mapper.SmsbDeviceMapper;
 import com.inspur.device.mapper.SmsbDeviceRunInfoMapper;
+import com.inspur.device.service.IEsSmsbDeviceService;
 import com.inspur.device.service.ISmsbDeviceManufacturerService;
 import com.inspur.device.service.ISmsbDeviceService;
 import lombok.RequiredArgsConstructor;
@@ -44,6 +45,7 @@ import org.dromara.common.sse.dto.SseMessageDto;
 import org.dromara.common.sse.utils.SseMessageUtils;
 import org.dromara.common.tenant.helper.TenantHelper;
 import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.CachePut;
@@ -69,18 +71,16 @@ import java.util.*;
 public class SmsbDeviceServiceImpl implements ISmsbDeviceService {
 
     private final SmsbDeviceMapper baseMapper;
-
     private final ISmsbDeviceManufacturerService deviceManufacturerService;
-
     private final SmsbDeviceRunInfoMapper smsbDeviceRunInfoMapper;
-
     private final SmsbDeviceHeartRecordMapper smsbDeviceHeartRecordMapper;
-
+    @Autowired(required = false)
+    private IEsSmsbDeviceService esSmsbDeviceService;
     @Value("${server.minio.ip}")
     private String minioServerIp;
-
+    @Value("${easy-es.enable}")
+    private boolean esEnable;
     private final static String REDIS_KEY_IDENTIFIER = "global:msr:device:identifier";
-
     private final static String REDIS_KEY_ID = "global:msr:device:id";
 
     /**
@@ -427,11 +427,15 @@ public class SmsbDeviceServiceImpl implements ISmsbDeviceService {
         smsbDeviceHeartRecord.setHeartType(1);
         if (null != lastHttpHeartTime) {
             smsbDeviceHeartRecord.setTimeInterval(currentTime - lastHttpHeartTime);
-        }else {
+        } else {
             smsbDeviceHeartRecord.setTimeInterval(0L);
         }
         smsbDeviceHeartRecord.setTenantId(smsbDeviceVo.getTenantId());
         smsbDeviceHeartRecordMapper.insert(smsbDeviceHeartRecord);
+        // 4-1 es
+        if (esEnable) {
+            esSmsbDeviceService.insertEsDeviceHeartRecord(smsbDeviceHeartRecord, smsbDeviceVo);
+        }
         // 5 记录设备状态
         SmsbDeviceRunInfo deviceRunInfo = new SmsbDeviceRunInfo();
         BeanUtils.copyProperties(requestParam, deviceRunInfo);
@@ -444,6 +448,10 @@ public class SmsbDeviceServiceImpl implements ISmsbDeviceService {
         deviceRunInfo.setRamTotalOfByte(requestParam.getRamTotalOfByte().toString());
         deviceRunInfo.setRamUsageOfByte(requestParam.getRamUsageOfByte().toString());
         smsbDeviceRunInfoMapper.insert(deviceRunInfo);
+        // 5-1 es
+        if (esEnable) {
+            esSmsbDeviceService.insertEsDeviceRunInfo(deviceRunInfo, smsbDeviceVo);
+        }
         // 6 Redis 缓存
         RedisUtils.setCacheObject(DeviceConstants.REDIS_DEVICE_RUN_INFO_KEY + requestParam.getIdentifier(), deviceRunInfo, Duration.ofMinutes(1));
         // 返回当前设备的Redis缓存的任务中心任务

+ 12 - 5
smsb-modules/smsb-netty/src/main/java/com/inspur/netty/controller/SmsbEsController.java

@@ -1,7 +1,9 @@
 package com.inspur.netty.controller;
 
 
+import cn.dev33.satoken.annotation.SaIgnore;
 import cn.hutool.json.JSONObject;
+import com.inspur.device.esmapper.EsDeviceRunInfoMapper;
 import com.inspur.netty.esmapper.EsSmsbDeviceHeartRecordMapper;
 import com.inspur.netty.esmapper.EsSmsbSourcePlayRecordMapper;
 import lombok.RequiredArgsConstructor;
@@ -25,25 +27,30 @@ import org.springframework.web.bind.annotation.RestController;
 public class SmsbEsController {
 
     private final static String INDEX_NAME_SOURCE_PLAY_RECORD = "smsb_source_play_record";
-
     private final static String INDEX_NAME_DEVICE_HEART_RECORD = "smsb_device_heart_record";
-
+    private final static String INDEX_NAME_DEVICE_RUN_INFO = "smsb_device_run_info";
     @Autowired
     private final EsSmsbSourcePlayRecordMapper esSmsbSourcePlayRecordMapper;
-
     @Autowired
     private final EsSmsbDeviceHeartRecordMapper esSmsbDeviceHeartRecordMapper;
+    @Autowired
+    private final EsDeviceRunInfoMapper esSmsbDeviceRunInfoMapper;
 
     @GetMapping("/createIndex")
+    @SaIgnore
     public R<String> createIndex() {
         JSONObject resultJson = new JSONObject();
         if (!esSmsbSourcePlayRecordMapper.existsIndex(INDEX_NAME_SOURCE_PLAY_RECORD)) {
             esSmsbSourcePlayRecordMapper.createIndex();
-            resultJson.set("smsb_source_play_record", "创建成功");
+            resultJson.set(INDEX_NAME_SOURCE_PLAY_RECORD, "创建成功");
         }
         if (!esSmsbDeviceHeartRecordMapper.existsIndex(INDEX_NAME_DEVICE_HEART_RECORD)) {
             esSmsbDeviceHeartRecordMapper.createIndex();
-            resultJson.set("smsb_device_heart_record", "创建成功");
+            resultJson.set(INDEX_NAME_DEVICE_HEART_RECORD, "创建成功");
+        }
+        if (!esSmsbDeviceRunInfoMapper.existsIndex(INDEX_NAME_DEVICE_RUN_INFO)) {
+            esSmsbDeviceRunInfoMapper.createIndex();
+            resultJson.set(INDEX_NAME_DEVICE_RUN_INFO, "创建成功");
         }
         return R.ok(resultJson.toString());
     }

+ 15 - 0
smsb-modules/smsb-netty/src/main/java/com/inspur/netty/domain/es/EsSmsbDeviceHeartRecord.java

@@ -61,4 +61,19 @@ public class EsSmsbDeviceHeartRecord {
      */
     private String tenantId;
 
+    /**
+     * 设备名称
+     */
+    private String deviceName;
+
+    /**
+     * 设备SN
+     */
+    private String deviceSn;
+
+    /**
+     * 设备MAC
+     */
+    private String deviceMac;
+
 }

+ 0 - 4
smsb-modules/smsb-netty/src/main/java/com/inspur/netty/handler/ConnectServerHandler.java

@@ -1,8 +1,6 @@
 package com.inspur.netty.handler;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.inspur.device.domain.SmsbDevice;
 import com.inspur.device.domain.SmsbDeviceErrorRecord;
 import com.inspur.device.domain.constants.DeviceConstants;
 import com.inspur.device.domain.vo.SmsbDeviceErrorRecordVo;
@@ -22,8 +20,6 @@ import io.netty.channel.ChannelInboundHandlerAdapter;
 import lombok.extern.slf4j.Slf4j;
 import org.dromara.common.core.utils.SpringUtils;
 import org.dromara.common.core.utils.StringUtils;
-import org.dromara.system.domain.SysOss;
-import org.springframework.transaction.annotation.Transactional;
 
 import java.nio.charset.Charset;
 import java.util.Date;

+ 3 - 1
smsb-modules/smsb-netty/src/main/java/com/inspur/netty/handler/HeartServerHandler.java

@@ -3,7 +3,6 @@ package com.inspur.netty.handler;
 import com.inspur.device.domain.SmsbDeviceHeartRecord;
 import com.inspur.device.domain.vo.SmsbDeviceVo;
 import com.inspur.device.mapper.SmsbDeviceHeartRecordMapper;
-import com.inspur.device.mapper.SmsbDeviceMapper;
 import com.inspur.device.service.ISmsbDeviceService;
 import com.inspur.netty.domain.es.EsSmsbDeviceHeartRecord;
 import com.inspur.netty.esmapper.EsSmsbDeviceHeartRecordMapper;
@@ -124,6 +123,9 @@ public class HeartServerHandler extends ChannelInboundHandlerAdapter {
         esSmsbDeviceHeartRecord.setCreateTime(DateUtils.getTime());
         smsbDeviceHeartRecordMapper.insert(smsbDeviceHeartRecord);
         if (easyEsProperties != null && easyEsProperties.isEnable()) {
+            esSmsbDeviceHeartRecord.setDeviceName(smsbDeviceVo.getName());
+            esSmsbDeviceHeartRecord.setDeviceSn(smsbDeviceVo.getSerialNumber());
+            esSmsbDeviceHeartRecord.setDeviceMac(smsbDeviceVo.getMac());
             esSmsbDeviceHeartRecordMapper.insert(esSmsbDeviceHeartRecord);
         }
     }