yf_zn 1 год назад
Родитель
Сommit
9ce70102ff

+ 26 - 5
src/main/java/com/yunfeiyun/agmp/iot/common/constant/devicetype/IotDeviceDictEnum.java

@@ -1,5 +1,10 @@
 package com.yunfeiyun.agmp.iot.common.constant.devicetype;
 
+import com.yunfeiyun.agmp.common.constant.ErrorCode;
+import com.yunfeiyun.agmp.common.exception.BizException;
+import com.yunfeiyun.agmp.common.utils.spring.SpringUtils;
+import com.yunfeiyun.agmp.iot.common.service.TypeCoreService;
+
 /**
  * 设备类型枚举,主要用于获取名称
  * 注意:只要对接的设备都要在这里定义出来,与数据库保持一致
@@ -45,7 +50,7 @@ public enum IotDeviceDictEnum {
     TYPE_XPH_LDSW_JC(IotDeviceDictConst.TYPE_XPH_LDSW_JC, "新浦会雷达水位监测站", ServiceNameConst.SERVICE_XPH_LDSW_JC, IotDeviceTypeLv1Enum.JZC_LD_SW),
     TYPE_DAHUA_DEVICE(IotDeviceDictConst.TYPE_DAHUA_DEVICE, "大华球形摄像机", ServiceNameConst.SERVICE_DAHUA_ICC, IotDeviceTypeLv1Enum.JKSB),
     TYPE_OB_NTSWJ(IotDeviceDictConst.TYPE_OB_NTSWJ, "欧标农田水位计", ServiceNameConst.SERVICE_OB_NTSWJ, IotDeviceTypeLv1Enum.NTSWJ),
-    TYPE_OB_SZ(IotDeviceDictConst.TYPE_OB_SZ,"欧标水闸设备",ServiceNameConst.SERVICE_OB_SZ, IotDeviceTypeLv1Enum.SZ),
+    TYPE_OB_SZ(IotDeviceDictConst.TYPE_OB_SZ, "欧标水闸设备", ServiceNameConst.SERVICE_OB_SZ, IotDeviceTypeLv1Enum.SZ),
 
     TYPE_XPH_WSHJ_JC(IotDeviceDictConst.TYPE_XPH_WSHJ_JC, "新浦会温室环境监测", ServiceNameConst.SERVICE_XPH_WSHJ_JC, IotDeviceTypeLv1Enum.PNHJJC),
 
@@ -56,13 +61,15 @@ public enum IotDeviceDictEnum {
     TYPE_XPH_TRSH_CL(IotDeviceDictConst.TYPE_XPH_TRSH_CL, "土壤水势测量", ServiceNameConst.SERVICE_XPH_TRSH_CL, IotDeviceTypeLv1Enum.TRSH_CL),
 
     TYPE_ZJSF_XYCB(IotDeviceDictConst.TYPE_ZJSF_XYCB, "中捷四方性诱", ServiceNameConst.SERVICE_ZJSF_XYCB, IotDeviceTypeLv1Enum.XYCB),
-    /**大数据平台监控设备,用于通过mqtt接收设备定时上报的抓拍图片*/
-    TYPE_BIG_DATA_MONITOR_DEVICE(IotDeviceDictConst.TYPE_BIG_DATA_MONITOR_DEVICE,"大数据平台监控设备",ServiceNameConst.SERVICE_BIG_DATA_MONITOR, IotDeviceTypeLv1Enum.JKSB),
+    /**
+     * 大数据平台监控设备,用于通过mqtt接收设备定时上报的抓拍图片
+     */
+    TYPE_BIG_DATA_MONITOR_DEVICE(IotDeviceDictConst.TYPE_BIG_DATA_MONITOR_DEVICE, "大数据平台监控设备", ServiceNameConst.SERVICE_BIG_DATA_MONITOR, IotDeviceTypeLv1Enum.JKSB),
 
     TYPE_HPF_WSMJ_ZNKG(IotDeviceDictConst.TYPE_HPF_WSMJ_ZNKG, "海普发温室灭菌智能开关", ServiceNameConst.SERVICE_HPF_WSMJ_ZNKG, IotDeviceTypeLv1Enum.HPF_WSMJ_ZNKG),
     TYPE_XPH_GP_QXZ(IotDeviceDictConst.TYPE_XPH_GP_QXZ, "新普惠光谱气象站", ServiceNameConst.SERVICE_XPH_GP_QXZ, IotDeviceTypeLv1Enum.QXZ),
     TYPE_YR_SF_SERVICE(IotDeviceDictConst.TYPE_YR_SF, "源润水肥机", ServiceNameConst.SERVICE_YR_SF_SERVICE, IotDeviceTypeLv1Enum.YR_SF),
-    TYPE_JSY_ST_QF(IotDeviceDictConst.TYPE_JSY_ST_QF,"及时雨三通球阀",ServiceNameConst.SERVICE_JSY_ST_QF,IotDeviceTypeLv1Enum.QF);
+    TYPE_JSY_ST_QF(IotDeviceDictConst.TYPE_JSY_ST_QF, "及时雨三通球阀", ServiceNameConst.SERVICE_JSY_ST_QF, IotDeviceTypeLv1Enum.QF);
 
     private String code;
     private String name;
@@ -125,8 +132,14 @@ public enum IotDeviceDictEnum {
         return code;
     }
 
+    /**
+     * 重写name,从缓存/数据库获取
+     *
+     * @return
+     */
     public String getName() {
-        return name;
+        String typeName = getTypeCoreService().getTypeLv2NameByTypeCode(this.code);
+        return typeName;
     }
 
     public String getServiceName() {
@@ -148,4 +161,12 @@ public enum IotDeviceDictEnum {
         }
         return null;
     }
+
+    TypeCoreService getTypeCoreService() {
+        TypeCoreService typeCoreService = SpringUtils.getBean(TypeCoreService.class);
+        if (typeCoreService == null) {
+            throw new BizException(ErrorCode.FAILURE.getCode(), "获取typeCoreService需要再bean实例化之后");
+        }
+        return typeCoreService;
+    }
 }

+ 11 - 0
src/main/java/com/yunfeiyun/agmp/iot/common/service/TypeCacheService.java

@@ -0,0 +1,11 @@
+package com.yunfeiyun.agmp.iot.common.service;
+
+import org.springframework.stereotype.Service;
+
+/**
+ * 统一维护type(lv2)的缓存,增删改查
+ */
+@Service
+public class TypeCacheService {
+
+}

+ 56 - 0
src/main/java/com/yunfeiyun/agmp/iot/common/service/TypeCoreService.java

@@ -0,0 +1,56 @@
+package com.yunfeiyun.agmp.iot.common.service;
+
+import org.springframework.stereotype.Service;
+
+/**
+ * 负责型号相关操作
+ */
+@Service
+public class TypeCoreService {
+
+    /**
+     * 获取型号(二级)的名称根据他的code
+     *
+     * @return
+     */
+    public String getTypeLv2NameByTypeCode(String typeCode) {
+        // 从缓存取出来
+        return typeCode;
+    }
+
+    /**
+     * 获取型号(二级)的id根据他的code
+     *
+     * @return
+     */
+    public String getTypeLv2IdByTypeCode(String typeCode) {
+        // 从缓存取出来
+        return typeCode;
+
+    }
+
+    /**
+     * 根据型号(二级)的id查询所属大类的类型id
+     * <p>
+     * 该方法用来兼用根据查询设备的大类信息
+     * IotDeviceDictEnum.getLv1NameByCode
+     *
+     * @param lv2TypeId
+     * @return
+     */
+    public String getLv1CodeByTypeLv2Id(String lv2TypeId) {
+        // 从缓存取出来
+        return lv2TypeId;
+    }
+
+    /**
+     * 根据型号(二级)的id查询所属大类的类型名称
+     *
+     * @return
+     */
+    public String getLv1NameByTypeLv2Id(String lv2TypeId) {
+        // 从缓存取出来
+        return lv2TypeId;
+    }
+
+}