Browse Source

标签展示

wangyangyang 4 years ago
parent
commit
534b3e03a1

+ 17 - 6
sms_water/src/main/java/com/huaxu/controller/MonitorInfoController.java

@@ -1,7 +1,6 @@
 package com.huaxu.controller;
 
-import com.huaxu.entity.DeviceParmEntity;
-import com.huaxu.entity.SceneTypeEntity;
+import com.huaxu.entity.*;
 import com.huaxu.model.AjaxMessage;
 import com.huaxu.model.LoginUser;
 import com.huaxu.model.ResultStatus;
@@ -20,7 +19,6 @@ import org.springframework.ui.ModelMap;
 import java.util.*;
 
 import org.springframework.web.bind.annotation.*;
-import com.huaxu.entity.MonitorInfoEntity;
 import com.huaxu.service.MonitorInfoService;
 
 import javax.jws.Oneway;
@@ -60,9 +58,22 @@ public class MonitorInfoController {
             monitorInfoEntity.setDeviceId(deviceId);
         }
         List<MonitorInfoEntity> page = monitorInfoService.findList(monitorInfoEntity);
-
-        //ByteArrayUtils.bytesToObject(redisUtil.get("sms_water_").getBytes());
-
+        for (MonitorInfoEntity item : page) {
+            byte[] bytes = redisUtil.get(("sms_water_"+item.getDeviceCode()).getBytes());
+            if(bytes != null && bytes.length>0) {
+                MonitorDataEntity monitorDataEntity = (MonitorDataEntity) ByteArrayUtils.bytesToObject(bytes).get();
+                Map<Long, MonitorDataValueEntity> map = new HashMap<>();
+                //将缓存中的实时数据放到map中方便进行遍历
+                for (MonitorDataValueEntity dateValue : monitorDataEntity.getDataValues()) {
+                    map.put(dateValue.getAttributeId(), dateValue);
+                }
+                //判断如果是标签则进行map中取值
+                if (item.getMonitorType().equals(0L))//标签
+                {
+                    item.setMonitorValue(map.get(item.getAttributeId()).getDataValue() + map.get(item.getAttributeId()).getUnit());
+                }
+            }
+        }
         return new AjaxMessage<>(ResultStatus.OK, page);
     }
 

+ 6 - 0
sms_water/src/main/java/com/huaxu/entity/MonitorInfoEntity.java

@@ -39,6 +39,12 @@ public class MonitorInfoEntity{
     @ApiModelProperty(value = "设备信息")
     private Long deviceId;
 
+    /** 设备信息 */
+    @ApiModelProperty(value = "设备编号")
+    @JsonIgnore
+    @TableField(exist = false)
+    private String deviceCode;
+
     /** 设备属性 */
     @ApiModelProperty(value = "设备属性")
     private Long attributeId;

+ 8 - 2
sms_water/src/main/resources/mapper/MonitorInfoMapper.xml

@@ -42,13 +42,18 @@
          a.date_create as "dateCreate" ,
          a.create_by as "createBy" ,
          a.date_update as "dateUpdate" ,
-         a.update_by as "updateBy" 
+         a.update_by as "updateBy" ,
+         b.DEVICE_CODE as "deviceCode"
      </sql>
+    <sql id="leftJoins">
+          INNER JOIN sms_device b on a.DEVICE_ID=b.ID
+    </sql>
     <!--  根据主键获取实体   -->
     <select id="findMonitorInfoById" resultType="com.huaxu.entity.MonitorInfoEntity">
         SELECT
         <include refid="monitorInfoColumns"/>
         FROM sms_monitor_info a
+        <include refid="leftJoins"/>
         WHERE a.id = #{id}
     </select>
 
@@ -57,6 +62,7 @@
         SELECT
         <include refid="monitorInfoColumns"/>
         FROM sms_monitor_info a
+        <include refid="leftJoins"/>
         <where>
             a.status=1
             <if test="tenantId != null  and tenantId != ''">and a.tenant_id = #{tenantId}</if>
@@ -73,7 +79,7 @@
         SELECT
         <include refid="monitorInfoColumns"/>
         FROM sms_monitor_info a
-
+        <include refid="leftJoins"/>
         <where>
             a.status=1
             <if test="monitorInfo.tenantId != null  and monitorInfo.tenantId != ''">and a.tenant_id =