Jelajahi Sumber

北向代码提交

jingyuanchao 1 tahun lalu
induk
melakukan
d05ab23f0c

+ 12 - 10
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/enums/ElectricityMeterAttributes.java

@@ -74,13 +74,15 @@ public enum ElectricityMeterAttributes {
     METER_ATTRIBUTES_50(8074214277450756099L,"环境温度","temperature","℃",null),
     METER_ATTRIBUTES_51(8074214277450756097L,"环境湿度","humidity","%RH",null),
     METER_ATTRIBUTES_52(8070947354577793026L,"烟雾告警","SmokeSensorState",null,"{0:\"正常\",1:\"异常\"}"),
-    METER_ATTRIBUTES_53(8123843190642397184L,"水浸告警","status",null,"{0:\"正常\",1:\"异常\"}");
+    METER_ATTRIBUTES_53(8123843190642397184L,"水浸告警","status",null,"{0:\"正常\",1:\"异常\"}"),
+    METER_ATTRIBUTES_54(8123843190642397184L,"红外告警","infrared_state",null,"{\"0\":\"正常\",\"1\":\"有人\"}"),
+    ;
 
     private Long num;
 
     private String text;
 
-    private String attrtCode;
+    private String attributesCode;
 
     private String unit;
 
@@ -94,27 +96,27 @@ public enum ElectricityMeterAttributes {
         return e != null ? e.getText() : "";
     }
     public static ElectricityMeterAttributes getEnumByName(String text) {
-        return enumMapNew.get(text);
+        return enumMapText.get(text);
     }
-    public static ElectricityMeterAttributes getEnumByAttrtCode(String attrtCode) {
-        return enumMapNewA.get(attrtCode);
+    public static ElectricityMeterAttributes getEnumByAttributesCode(String attributesCode) {
+        return enumMapCode.get(attributesCode);
     }
 
     /**
      * 所有枚举
      */
     private static final Map<Long, ElectricityMeterAttributes> enumMap = new LinkedHashMap<>();
-    private static final Map<String, ElectricityMeterAttributes> enumMapNew = new LinkedHashMap<>();
-    private static final Map<String, ElectricityMeterAttributes> enumMapNewA = new LinkedHashMap<>();
+    private static final Map<String, ElectricityMeterAttributes> enumMapText = new LinkedHashMap<>();
+    private static final Map<String, ElectricityMeterAttributes> enumMapCode = new LinkedHashMap<>();
     static {
         for (ElectricityMeterAttributes typeEnum : ElectricityMeterAttributes.values()) {
             enumMap.put(typeEnum.num, typeEnum);
         }
         for (ElectricityMeterAttributes typeEnum : ElectricityMeterAttributes.values()) {
-            enumMapNew.put(typeEnum.text, typeEnum);
+            enumMapText.put(typeEnum.text, typeEnum);
         }
         for (ElectricityMeterAttributes typeEnum : ElectricityMeterAttributes.values()) {
-            enumMapNewA.put(typeEnum.attrtCode, typeEnum);
+            enumMapCode.put(typeEnum.attributesCode, typeEnum);
         }
     }
 
@@ -123,7 +125,7 @@ public enum ElectricityMeterAttributes {
         JSONObject enumText = (JSONObject) JSONObject.parse(value.getEnumText());
         System.out.println(enumText);
         System.out.println(enumText.get("1"));
-        System.out.println(value.attrtCode);
+        System.out.println(value.attributesCode);
         System.out.println(value.num);
         System.out.println(value.text);
     }

+ 18 - 1
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotCommonSensorServiceImpl.java

@@ -1,6 +1,7 @@
 package com.xunmei.iot.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson2.JSON;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.iot.domain.IotSensor;
@@ -15,6 +16,9 @@ import com.xunmei.system.api.domain.SysOrg;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -43,7 +47,20 @@ public class IotCommonSensorServiceImpl extends ServiceImpl<IotCommonSensorMappe
         }
 
         Page<SensorPageVo> page=  sensorMapper.selectPageData(request.getPageRequest(),request);
-
+        for (SensorPageVo record : page.getRecords()) {
+            final String info = record.getInfo();
+            final List<Map> list = JSON.parseArray(info, Map.class);
+            List<String> dataList = new ArrayList<>();
+            for (Map map : list) {
+                final String name = (String) map.get("name");
+                final String res = (String) map.get("res");
+                if (ObjectUtil.hasEmpty(name,res)){
+                    continue;
+                }
+                dataList.add(name+":"+res);
+            }
+            record.setInfo(String.join(";",dataList));
+        }
         return TableDataInfo.build(page);
     }
 }

+ 31 - 1
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotSensorServiceImpl.java

@@ -2,6 +2,8 @@ package com.xunmei.mediator.api.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.SecurityConstants;
@@ -26,6 +28,7 @@ import com.xunmei.system.api.dto.DataPageDto;
 import com.xunmei.system.api.dto.SensorDto;
 import com.xunmei.system.api.dto.SensorStatusDto;
 import com.xunmei.system.api.dto.protection.ReceiveErrorDto;
+import com.xunmei.system.api.enums.ElectricityMeterAttributes;
 import com.xunmei.system.api.util.LogUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
@@ -106,7 +109,7 @@ public class IotSensorServiceImpl extends ServiceImpl<IotSensorMapper, IotSensor
             iotSensor.setDeviceName(status.getDeviceName());
             iotSensor.setDeviceType(status.getDeviceType());
             iotSensor.setStateUpdateTime(LocalDateTime.now());
-            iotSensor.setInfos(infoStr);
+            iotSensor.setInfos(dealInfoData(infoStr));
             final IotSensorLog iotSensorLog = new IotSensorLog();
             BeanUtils.copyProperties(iotSensor, iotSensorLog, "id");
             iotSensorLog.setIotSensorId(iotSensor.getId());
@@ -120,6 +123,33 @@ public class IotSensorServiceImpl extends ServiceImpl<IotSensorMapper, IotSensor
         iotSensorLogService.saveBatch(sensorLogList);
     }
 
+    private String dealInfoData(String infoStr) {
+        final JSONArray jsonArray = new JSONArray();
+        final List<Map> list = JSON.parseArray(infoStr, Map.class);
+        for (Map map : list) {
+            final JSONObject obj = JSON.parseObject(JSON.toJSONString(map), JSONObject.class);
+            jsonArray.add(obj);
+            final String name = (String) map.get("name");
+            final String val = (String) map.get("val");
+
+            final ElectricityMeterAttributes attributesEnum = ElectricityMeterAttributes.getEnumByName(name);
+            if (ObjectUtil.isNull(attributesEnum)) {
+                return infoStr;
+            }
+            if (ObjectUtil.isNotEmpty(attributesEnum.getUnit())) {
+                //说明存在单位,那么把val拼接上单位set到原来的属性值中去
+                obj.put("unit", attributesEnum.getUnit());
+                obj.put("res", val + attributesEnum.getUnit());
+            } else {
+                obj.put("unit", attributesEnum.getEnumText());
+                final Map extraMap = JSON.parseObject(attributesEnum.getEnumText(), Map.class);
+                final String o = (String) extraMap.get(val);
+                obj.put("res", o);
+            }
+        }
+        return JSON.toJSONString(jsonArray);
+    }
+
     @Override
     public ReceiveErrorDto saveDirectHost(DataPageDto<SensorDto> request, String branchId, String msgId) {
         //验证基础分页信息