Kaynağa Gözat

实时监控与工况-设备实时状态接口开发

jichaobo 2 yıl önce
ebeveyn
işleme
4d5e4ae3bc

+ 13 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/DataRtController.java

@@ -6,6 +6,7 @@ import com.usky.common.core.bean.ApiResult;
 import com.usky.common.core.bean.CommonPage;
 import com.usky.fire.domain.DataRt;
 import com.usky.fire.service.DataRtService;
+import com.usky.fire.service.vo.RealTimeStatus;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -64,5 +65,17 @@ public class DataRtController {
         util.exportExcel(response, list, exportTitle, exportTitle);
     }
 
+    /**
+     * 实时监控与工况-设备实时状态
+     *
+     * @param deviceCode 设备编号
+     * @return
+     */
+    @GetMapping("deviceInfoData")
+    public ApiResult<RealTimeStatus> deviceInfoData(@RequestParam(value = "deviceCode") String deviceCode) {
+        return ApiResult.success(dataRtService.deviceInfoData(deviceCode));
+    }
+
+
 }
 

+ 11 - 2
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/BaseDeviceService.java

@@ -1,11 +1,13 @@
 package com.usky.fire.service;
 
-import com.usky.fire.domain.BaseDevice;
 import com.usky.common.mybatis.core.CrudService;
+import com.usky.fire.domain.BaseDevice;
+
+import java.util.List;
 
 /**
  * <p>
- *  服务类
+ * 服务类
  * </p>
  *
  * @author JCB
@@ -13,4 +15,11 @@ import com.usky.common.mybatis.core.CrudService;
  */
 public interface BaseDeviceService extends CrudService<BaseDevice> {
 
+    /**
+     * 根据设备编号查询设备信息
+     *
+     * @param deviceCode 设备编号
+     * @return
+     */
+    List<BaseDevice> deviceData(String deviceCode);
 }

+ 17 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/DataRtService.java

@@ -3,6 +3,7 @@ package com.usky.fire.service;
 import com.usky.common.core.bean.CommonPage;
 import com.usky.common.mybatis.core.CrudService;
 import com.usky.fire.domain.DataRt;
+import com.usky.fire.service.vo.RealTimeStatus;
 
 import java.util.List;
 
@@ -35,4 +36,20 @@ public interface DataRtService extends CrudService<DataRt> {
      * @return
      */
     List<DataRt> dataRtListOne(String deviceCode, Integer systemType);
+
+    /**
+     * 根据设备编号查询实时数据
+     *
+     * @param deviceCode 设备编号
+     * @return
+     */
+    List<DataRt> dataRt(String deviceCode);
+
+    /**
+     * 实时监控与工况-设备实时状态
+     *
+     * @param deviceCode 设备编号
+     * @return
+     */
+    RealTimeStatus deviceInfoData(String deviceCode);
 }

+ 17 - 2
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/BaseDeviceServiceImpl.java

@@ -1,14 +1,18 @@
 package com.usky.fire.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.usky.common.mybatis.core.AbstractCrudService;
 import com.usky.fire.domain.BaseDevice;
 import com.usky.fire.mapper.BaseDeviceMapper;
 import com.usky.fire.service.BaseDeviceService;
-import com.usky.common.mybatis.core.AbstractCrudService;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
- *  服务实现类
+ * 服务实现类
  * </p>
  *
  * @author JCB
@@ -17,4 +21,15 @@ import org.springframework.stereotype.Service;
 @Service
 public class BaseDeviceServiceImpl extends AbstractCrudService<BaseDeviceMapper, BaseDevice> implements BaseDeviceService {
 
+    @Override
+    public List<BaseDevice> deviceData(String deviceCode) {
+        LambdaQueryWrapper<BaseDevice> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.select(BaseDevice::getDeviceCode, BaseDevice::getDeviceCode, BaseDevice::getInstallAddress,
+                BaseDevice::getDeviceType, BaseDevice::getDeviceName)
+                .eq(BaseDevice::getEnable, 1)
+                .eq(BaseDevice::getDeviceCode, deviceCode);
+        List<BaseDevice> list = this.list(queryWrapper);
+        return list;
+    }
+
 }

+ 42 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/DataRtServiceImpl.java

@@ -8,16 +8,21 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.usky.common.core.bean.CommonPage;
 import com.usky.common.core.util.StringUtils;
 import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.fire.domain.BaseDevice;
 import com.usky.fire.domain.DataRt;
 import com.usky.fire.mapper.DataRtMapper;
+import com.usky.fire.service.BaseDeviceService;
 import com.usky.fire.service.BaseUserCompanyService;
 import com.usky.fire.service.DataRtService;
 import com.usky.fire.service.util.OnlineMethod;
+import com.usky.fire.service.vo.RealTimeStatus;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -33,6 +38,9 @@ public class DataRtServiceImpl extends AbstractCrudService<DataRtMapper, DataRt>
     @Autowired
     private BaseUserCompanyService baseUserCompanyService;
 
+    @Autowired
+    private BaseDeviceService baseDeviceService;
+
     @Override
     public CommonPage<DataRt> dataRtList(String deviceCode, Integer systemType, Integer pageNum, Integer pageSize) {
         List<String> companyIdList = baseUserCompanyService.companyIdList();
@@ -67,4 +75,38 @@ public class DataRtServiceImpl extends AbstractCrudService<DataRtMapper, DataRt>
         return list;
     }
 
+    @Override
+    public List<DataRt> dataRt(String deviceCode){
+        LambdaQueryWrapper<DataRt> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.select(DataRt::getDeviceCode, DataRt::getPorts, DataRt::getPortName, DataRt::getPortData,
+                DataRt::getDataTime, DataRt::getContent)
+                .eq(DataRt::getDeviceCode, deviceCode);
+        List<DataRt> list = this.list(queryWrapper);
+        return list;
+    }
+
+    @Override
+    public RealTimeStatus deviceInfoData(String deviceCode){
+        RealTimeStatus realTimeStatus = new RealTimeStatus();
+        List<BaseDevice> baseDevices = baseDeviceService.deviceData(deviceCode);
+        if (CollectionUtils.isNotEmpty(baseDevices)){
+            List<DataRt> dataRtsList = this.dataRt(deviceCode);
+            realTimeStatus.setDeviceName(baseDevices.get(0).getDeviceName());
+            realTimeStatus.setInstallAddress(baseDevices.get(0).getInstallAddress());
+            realTimeStatus.setDeviceType(baseDevices.get(0).getDeviceType());
+            realTimeStatus.setStatusTime(dataRtsList.get(0).getDataTime());
+            List<Object> list = new ArrayList<>();
+            for (int i = 0; i < dataRtsList.size(); i++) {
+                Map<String, Object> map = new HashMap<String, Object>();
+                map.put("ports",dataRtsList.get(i).getPorts());
+                map.put("portName",dataRtsList.get(i).getPortName());
+                map.put("portData",dataRtsList.get(i).getPortData());
+                map.put("content",dataRtsList.get(i).getContent());
+                list.add(map);
+            }
+            realTimeStatus.setDataList(list);
+        }
+        return realTimeStatus;
+    }
+
 }

+ 49 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/vo/RealTimeStatus.java

@@ -0,0 +1,49 @@
+package com.usky.fire.service.vo;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-08-15
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class RealTimeStatus implements Serializable {
+
+    /**
+     * 设备名称
+     */
+    private String deviceName;
+
+    /**
+     * 安装位置
+     */
+    private String installAddress;
+
+    /**
+     * 设备类型
+     */
+    private Integer deviceType;
+
+    /**
+     * 最新更新数据时间
+     */
+    private LocalDateTime statusTime;
+
+    /**
+     * 设备最新采集值
+     */
+    private Object dataList;
+
+
+}