|
|
@@ -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;
|
|
|
+ }
|
|
|
+}
|