فهرست منبع

重构 气象站,墒情站设备要素通用信息功能

zhaiyifei 1 سال پیش
والد
کامیت
448697f02a
19فایلهای تغییر یافته به همراه406 افزوده شده و 1427 حذف شده
  1. 0 293
      src/main/java/com/yunfeiyun/agmp/iot/common/constant/device/ElementFactorUtil.java
  2. 174 0
      src/main/java/com/yunfeiyun/agmp/iot/common/constant/device/ElementFormatUtil.java
  3. 0 175
      src/main/java/com/yunfeiyun/agmp/iot/common/constant/device/adzngssq/AdzngssqUtil.java
  4. 0 146
      src/main/java/com/yunfeiyun/agmp/iot/common/constant/device/yfqxz/YfQxzFactorUtil.java
  5. 0 408
      src/main/java/com/yunfeiyun/agmp/iot/common/constant/device/yfqxz/YfqxzConst.java
  6. 0 196
      src/main/java/com/yunfeiyun/agmp/iot/common/constant/device/yfqxz/YfqxzUtil.java
  7. 47 0
      src/main/java/com/yunfeiyun/agmp/iot/common/domain/IotAdznGssqdata.java
  8. 0 35
      src/main/java/com/yunfeiyun/agmp/iot/common/domain/IotAdzngssqdata.java
  9. 35 0
      src/main/java/com/yunfeiyun/agmp/iot/common/domain/IotAdzngssqdata2.java
  10. 5 0
      src/main/java/com/yunfeiyun/agmp/iot/common/domain/IotQxzDataListRseVo.java
  11. 20 0
      src/main/java/com/yunfeiyun/agmp/iot/common/domain/dto/IotElementDto.java
  12. 27 25
      src/main/java/com/yunfeiyun/agmp/iot/common/domain/resvo/IotSensdataResVo.java
  13. 9 11
      src/main/java/com/yunfeiyun/agmp/iot/common/domain/resvo/IotYfqxzdataResVo.java
  14. 0 97
      src/main/java/com/yunfeiyun/agmp/iot/common/enums/AdzngssqEnumFactor.java
  15. 50 0
      src/main/java/com/yunfeiyun/agmp/iot/common/enums/EnumAdznGssqElement.java
  16. 2 2
      src/main/java/com/yunfeiyun/agmp/iot/common/enums/EnumCommonDataFactor.java
  17. 33 35
      src/main/java/com/yunfeiyun/agmp/iot/common/enums/element/YfQxzElementEnum.java
  18. 2 2
      src/main/java/com/yunfeiyun/agmp/iot/common/enums/XphEnumFactor.java
  19. 2 2
      src/main/java/com/yunfeiyun/agmp/iot/common/enums/YfqxzEnumFactor.java

+ 0 - 293
src/main/java/com/yunfeiyun/agmp/iot/common/constant/device/ElementFactorUtil.java

@@ -1,293 +0,0 @@
-package com.yunfeiyun.agmp.iot.common.constant.device;
-
-import com.alibaba.fastjson2.JSONObject;
-import com.yunfeiyun.agmp.common.enums.RedisCacheKey;
-import com.yunfeiyun.agmp.common.framework.manager.RedisCacheManager;
-import com.yunfeiyun.agmp.common.utils.DateUtils;
-import com.yunfeiyun.agmp.common.utils.StringUtils;
-import com.yunfeiyun.agmp.common.utils.spring.SpringUtils;
-import com.yunfeiyun.agmp.iot.common.constant.device.xph.XphRedisUtil;
-import com.yunfeiyun.agmp.iot.common.constant.devicetype.IotDeviceDictConst;
-import com.yunfeiyun.agmp.iot.common.domain.*;
-import com.yunfeiyun.agmp.iot.common.enums.YfqxzEnumFactor;
-
-import java.util.*;
-
-public class ElementFactorUtil {
-    private static Map<String, Integer> getEnumCounterMap(List<QxzDataDto> dataList){
-        Map<String, Integer> eNumCounterMap = new HashMap<>();
-        for (QxzDataDto dataitem : dataList) {
-            String eNum = dataitem.getENum();
-            eNumCounterMap.put(eNum, eNumCounterMap.getOrDefault(eNum, 0) + 1);
-        }
-        return eNumCounterMap;
-    }
-    public static Map<String, IotDevicefactor> getDevicefactorMap(List<IotDevicefactor> factorList){
-        Map<String, IotDevicefactor> devicefactorMap = new HashMap<>();
-        for (IotDevicefactor iotDevicefactor : factorList) {
-//            String dfCode = iotDevicefactor.getDfCode();
-//            String dfName = iotDevicefactor.getDfName();
-//            String key = "";
-//            if (StringUtils.isNotEmpty(dfCode)) {
-//                key += dfCode;
-//            }
-//            if (StringUtils.isNotEmpty(dfName)) {
-//                key += dfName;
-//            }
-            String key = iotDevicefactor.getDfAddress();
-            devicefactorMap.put(key, iotDevicefactor);
-        }
-        return devicefactorMap;
-    }
-
-    public static String getAddress(String eName, String eKey){
-        return eName + "-" + eKey;
-    }
-
-    private static IotXphhttpeleconfig getXphHttpEleNum(String eNum){
-        RedisCacheManager redisCacheManager = SpringUtils.getBean("redisCacheManager");
-        String redisKey = XphRedisUtil.eleConfigKey;
-        Map<String, IotXphhttpeleconfig> configMap = redisCacheManager.getCacheObject(RedisCacheKey.IOT_XPH_HTTP_DATA, redisKey);
-        IotXphhttpeleconfig iotXphhttpeleconfig = null;
-        if(configMap.containsKey(eNum)){
-            iotXphhttpeleconfig = configMap.get(eNum);
-        }
-        return iotXphhttpeleconfig;
-    }
-
-    public static Map<String, String> getXphHttpEleNameMap(IotDevice iotDeviceResVo){
-        String devtypeBid = iotDeviceResVo.getDevtypeBid();
-        String devCode = iotDeviceResVo.getDevCode();
-
-        List<JSONObject> deviceList = XphRedisUtil.getDeviceList(devtypeBid);
-
-        Map<String, Map<String, String>> eleNameMap = new HashMap<>();
-        if(deviceList == null || deviceList.isEmpty()){
-            ;
-        }else{
-            for(JSONObject jsonObject: deviceList){
-                Map<String, String> e = new HashMap<>();
-                String facId = jsonObject.getString("facId");
-                String eleName = jsonObject.getString("eleName");
-                String[] eleNameArrays = eleName.split("/");
-                for(int i=0; i<eleNameArrays.length; i++){
-                    String eKey = "e" + (i+1);
-                    String eName = eleNameArrays[i].trim();
-                    if(eName.equals("-")){
-                        continue;
-                    }
-                    e.put(eKey, eName);
-                }
-                if(!e.isEmpty()){
-                    eleNameMap.put(facId, e);
-                }
-            }
-        }
-
-        return eleNameMap.getOrDefault(devCode, new HashMap<String, String>());
-    }
-
-    private static IotDevicefactor setYfDisplayname(IotQxzDataListRseVo resVo, Map<String, IotDevicefactor> devicefactorMap){
-        IotDevicefactor iotDevicefactor = null;
-        /* 新浦会使用的是云飞气象站要素 */
-        YfqxzEnumFactor findEnum = YfqxzEnumFactor.findEnumByCode(resVo.getFactorCode());
-        if (findEnum != null) {
-            resVo.setFactorName(findEnum.getName());
-            resVo.setFactorUnit(findEnum.getUnit());
-            /* 转换成通用要素 */
-//            EnumCommonDataFactor commonDataFactor = XphEnumFactor.toCommonFactor(findEnum);
-//            if (commonDataFactor != null) {
-//                resVo.setFactorCode(commonDataFactor.getCode());
-//                resVo.setFactorName(commonDataFactor.getName());
-//                resVo.setFactorUnit(commonDataFactor.getUnit());
-//            }
-        }
-
-        /* 设置自定义要素名称 */
-//        String dfCode = resVo.getFactorCode();
-//        String dfName = resVo.getAddress();
-//        String key = "";
-//        if (StringUtils.isNotEmpty(dfCode)) {
-//            key += dfCode;
-//        }
-//        if (StringUtils.isNotEmpty(dfName)) {
-//            key += dfName;
-//        }
-        String key = resVo.getAddress();
-        if (devicefactorMap.containsKey(key)) {
-            iotDevicefactor = devicefactorMap.get(key);
-            resVo.setFactorDisplayname(iotDevicefactor.getDfDisplayname());
-        }
-        return iotDevicefactor;
-    }
-
-    private static IotDevicefactor setXphHttpDisplayname(IotQxzDataListRseVo resVo, Map<String, IotDevicefactor> devicefactorMap){
-        IotDevicefactor iotDevicefactor = null;
-        /* 新浦会使用的是云飞气象站要素 */
-        IotXphhttpeleconfig iotXphhttpeleconfig = getXphHttpEleNum(resVo.getFactorCode());
-        if (iotXphhttpeleconfig != null) {
-            resVo.setFactorName(iotXphhttpeleconfig.getXphEleCname());
-            resVo.setFactorUnit(iotXphhttpeleconfig.getXphEleUnit());
-        }
-
-        /* 设置自定义要素名称 */
-        String dfCode = resVo.getFactorCode();
-        String dfName = resVo.getAddress();
-        String key = "";
-        if (StringUtils.isNotEmpty(dfCode)) {
-            key += dfCode;
-        }
-        if (StringUtils.isNotEmpty(dfName)) {
-            key += dfName;
-        }
-        if (devicefactorMap.containsKey(key)) {
-            iotDevicefactor = devicefactorMap.get(key);
-            resVo.setFactorDisplayname(iotDevicefactor.getDfDisplayname());
-        }
-        return iotDevicefactor;
-    }
-
-    public static IotDevicefactor setDisplayname(IotQxzDataListRseVo resVo, Map<String, IotDevicefactor> devicefactorMap, QxzDataDto dataitem, String devtypeBid){
-        IotDevicefactor iotDevicefactor = null;
-        resVo.setAddress(getAddress(dataitem.getEName(), dataitem.getEKey()));
-        if(Objects.equals(devtypeBid, IotDeviceDictConst.TYPE_XPH_WSHJ_JC)
-                || Objects.equals(devtypeBid, IotDeviceDictConst.TYPE_XPH_TRSH_CL)
-                || Objects.equals(devtypeBid, IotDeviceDictConst.TYPE_XPH_GP_QXZ)
-        ){
-            iotDevicefactor = setXphHttpDisplayname(resVo, devicefactorMap);
-        }else{
-            iotDevicefactor = setYfDisplayname(resVo, devicefactorMap);
-        }
-        return iotDevicefactor;
-    }
-
-    /**
-     * 取通道信息MAP
-     * @param dataList
-     * @return
-     */
-    private static Map<String, List<String>> getEnumAddressMap(List<QxzDataDto> dataList){
-        Map<String, List<String>> eNumAddressMap = new HashMap<>();
-        for (QxzDataDto dataitem : dataList) {
-            String eNum = dataitem.getENum();
-            List<String> addressList = eNumAddressMap.getOrDefault(eNum, new ArrayList<>());
-            String address = String.join("-", dataitem.getEName(), dataitem.getEKey());
-            if(!addressList.contains(address)){
-                addressList.add(address);
-            }
-            eNumAddressMap.put(eNum, addressList);
-        }
-        return eNumAddressMap;
-    }
-
-    public static List<IotQxzDataListRseVo> qxzListProcessData(List<QxzDataDto> dataList, List<IotDevicefactor> factorList, IotDevice iotDeviceResVo, boolean isDisable){
-        String devtypeBid = iotDeviceResVo.getDevtypeBid();
-        Map<String, String> eleNameMap = getXphHttpEleNameMap(iotDeviceResVo);
-        Map<String, IotDevicefactor> devicefactorMap = getDevicefactorMap(factorList);
-        Map<String, Integer> eNumCounterMap = getEnumCounterMap(dataList);
-
-        List<IotQxzDataListRseVo> retList = new ArrayList<>();
-        for (QxzDataDto dataitem : dataList) {
-            String eNum = dataitem.getENum();
-            Integer eNumCount = eNumCounterMap.get(eNum);
-
-            IotQxzDataListRseVo iotQxzDataListRseVo = new IotQxzDataListRseVo();
-            iotQxzDataListRseVo.setFactorCode(dataitem.getENum());
-            iotQxzDataListRseVo.setNumber(dataitem.getEValue());
-            if(dataitem.getTime() != null){
-                iotQxzDataListRseVo.setTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, dataitem.getTime()));
-            }
-            iotQxzDataListRseVo.setDevBid(dataitem.getDevBid());
-
-            /* 设置要素名称 用于联合唯一 和前端区分显示 */
-            IotDevicefactor iotDevicefactor = setDisplayname(iotQxzDataListRseVo, devicefactorMap, dataitem, devtypeBid);
-            String dfDisable = "0";
-            if(iotDevicefactor != null){
-                dfDisable = iotDevicefactor.getDfDisable();
-                if(!isDisable && Objects.equals(dfDisable,"1")){
-                    continue;
-                }
-            }
-            iotQxzDataListRseVo.setDfDisable(dfDisable);
-
-            if(IotDeviceDictConst.TYPE_XPH_TRSH_CL.equals(devtypeBid)){
-                if(!StringUtils.isEmpty(iotQxzDataListRseVo.getFactorName())){
-                    iotQxzDataListRseVo.setFactorName(iotQxzDataListRseVo.getFactorName().replace("大气", ""));
-                }
-                if(StringUtils.isEmpty(iotQxzDataListRseVo.getFactorDisplayname())){
-                    if(eleNameMap.containsKey(dataitem.getEKey())){
-                        iotQxzDataListRseVo.setFactorDisplayname(eleNameMap.get(dataitem.getEKey()));
-                    }
-                }
-            }else if(Objects.equals(devtypeBid, IotDeviceDictConst.TYPE_XPH_GP_QXZ)){
-                if(eleNameMap.containsKey(dataitem.getEKey())){
-                    iotQxzDataListRseVo.setFactorName(eleNameMap.get(dataitem.getEKey()));
-                }
-            }
-
-            if(!Objects.equals(devtypeBid, IotDeviceDictConst.TYPE_XPH_GP_QXZ) && StringUtils.isEmpty(iotQxzDataListRseVo.getFactorDisplayname())){
-                if(eNumCount > 1){
-                    String dspName = (eNumCount * 10) + "厘米" + iotQxzDataListRseVo.getFactorName();
-                    iotQxzDataListRseVo.setFactorDisplayname(dspName);
-                    eNumCounterMap.put(eNum, eNumCount - 1);
-                }
-            }
-            retList.add(iotQxzDataListRseVo);
-        }
-        return retList;
-    }
-
-    public static List<IotQxzDataListRseVo> qxzChartProcessData(
-            List<QxzDataDto> dataList, List<IotDevicefactor> factorList, IotDevice iotDeviceResVo, boolean isDisable) {
-        String devtypeBid = iotDeviceResVo.getDevtypeBid();
-        Map<String, Integer> eNumCounterMap = getEnumCounterMap(dataList);
-        Map<String, String> eleNameMap = getXphHttpEleNameMap(iotDeviceResVo);
-        Map<String, IotDevicefactor> devicefactorMap = getDevicefactorMap(factorList);
-
-        List<IotQxzDataListRseVo> retList = new ArrayList<>();
-        for (QxzDataDto dataitem : dataList) {
-            String eNum = dataitem.getENum();
-            Integer eNumCount = eNumCounterMap.get(eNum);
-
-            IotQxzDataListRseVo resVo = new IotQxzDataListRseVo();
-            resVo.setFactorCode(dataitem.getENum());
-            /* 设置要素名称 用于联合唯一 和前端区分显示 */
-            IotDevicefactor iotDevicefactor = setDisplayname(resVo, devicefactorMap, dataitem, devtypeBid);
-            String dfDisable = "0";
-            if(iotDevicefactor != null){
-                dfDisable = iotDevicefactor.getDfDisable();
-                if(!isDisable && Objects.equals(dfDisable,"1")){
-                    continue;
-                }
-            }
-            resVo.setDfDisable(dfDisable);
-
-            resVo.setDatalist(dataitem.getDataList());
-            if(IotDeviceDictConst.TYPE_XPH_TRSH_CL.equals(devtypeBid)){
-                if(!StringUtils.isEmpty(resVo.getFactorName())){
-                    resVo.setFactorName(resVo.getFactorName().replace("大气", ""));
-                }
-                if(StringUtils.isEmpty(resVo.getFactorDisplayname())){
-                    if(eleNameMap.containsKey(dataitem.getEKey())){
-                        resVo.setFactorDisplayname(eleNameMap.get(dataitem.getEKey()));
-                    }
-                }
-            }else if(Objects.equals(devtypeBid, IotDeviceDictConst.TYPE_XPH_GP_QXZ)){
-                if(eleNameMap.containsKey(dataitem.getEKey())){
-                    resVo.setFactorName(eleNameMap.get(dataitem.getEKey()));
-                }
-            }
-
-            if(!Objects.equals(devtypeBid, IotDeviceDictConst.TYPE_XPH_GP_QXZ) && StringUtils.isEmpty(resVo.getFactorDisplayname())){
-                if(eNumCount > 1){
-                    String dspName = (eNumCount * 10) + "厘米" + resVo.getFactorName();
-                    resVo.setFactorDisplayname(dspName);
-                    eNumCounterMap.put(eNum, eNumCount - 1);
-                }
-            }
-
-            retList.add(resVo);
-        }
-        return retList;
-    }
-}

+ 174 - 0
src/main/java/com/yunfeiyun/agmp/iot/common/constant/device/ElementFormatUtil.java

@@ -0,0 +1,174 @@
+package com.yunfeiyun.agmp.iot.common.constant.device;
+
+import com.yunfeiyun.agmp.common.utils.DateUtils;
+import com.yunfeiyun.agmp.iot.common.constant.devicetype.IotDeviceDictConst;
+import com.yunfeiyun.agmp.iot.common.domain.IotDevice;
+import com.yunfeiyun.agmp.iot.common.domain.IotDevicefactor;
+import com.yunfeiyun.agmp.iot.common.domain.IotQxzDataListRseVo;
+import com.yunfeiyun.agmp.iot.common.domain.QxzDataDto;
+import com.yunfeiyun.agmp.iot.common.domain.dto.IotElementDto;
+import com.yunfeiyun.agmp.iot.common.enums.EnumAdznGssqElement;
+import com.yunfeiyun.agmp.iot.common.enums.EnumYfQxzElement;
+
+import java.util.*;
+
+public class ElementFormatUtil {
+
+    public static String getAddress(String eName, String eKey){
+        return eName + "-" + eKey;
+    }
+    public static Map<String, IotDevicefactor> getDevicefactorMap(List<IotDevicefactor> factorList){
+        Map<String, IotDevicefactor> devicefactorMap = new HashMap<>();
+        for (IotDevicefactor iotDevicefactor : factorList) {
+            String key = iotDevicefactor.getDfAddress();
+            devicefactorMap.put(key, iotDevicefactor);
+        }
+        return devicefactorMap;
+    }
+
+    private static IotElementDto getAdznGssqElement(QxzDataDto dataitem, Map<String, List<Integer>> elementMap){
+        EnumAdznGssqElement element = EnumAdznGssqElement.findEnumByeName(dataitem.getEName());
+        String eNum = dataitem.getENum();
+        String eName = dataitem.getEName();
+        String eKey = dataitem.getEKey();
+        String cName = "未知要素";
+        String eUnit = "";
+        if(element != null){
+            cName = element.getcName();
+            eUnit = element.geteUnit();
+        }
+
+        IotElementDto iotElementDto = new IotElementDto();
+        iotElementDto.setENum(eNum);
+        iotElementDto.setEName(eName);
+        iotElementDto.setCName(cName);
+        iotElementDto.setAddress(getAddress(eName, eKey));
+        iotElementDto.setEUnit(eUnit);
+
+        if(eNum.equals(EnumAdznGssqElement.DataTEMPSTR.geteNum())
+                || eNum.equals(EnumAdznGssqElement.DataSWCSTR.geteNum())){
+
+            if(!elementMap.containsKey(eNum)){
+                elementMap.put(eNum, new ArrayList<>());
+            }
+            elementMap.get(eNum).add(Integer.parseInt(eKey.replace("e", "")));
+        }
+        return iotElementDto;
+    }
+
+    /**
+     * 云飞气象站,墒情站
+     * 新普惠mqtt设备 公用此要素
+     * @param dataitem
+     * @param elementMap
+     * @return
+     */
+    private static IotElementDto getYfQxzElement(QxzDataDto dataitem, Map<String, List<Integer>> elementMap){
+        String eNum = dataitem.getENum();
+        EnumYfQxzElement element = EnumYfQxzElement.findEnumByeNum(eNum);
+        String eName = dataitem.getEName();
+        String eKey = dataitem.getEKey();
+        String cName = "未知要素";
+        String eUnit = "";
+        if(element != null){
+            cName = element.getcName();
+            eUnit = element.geteUnit();
+        }
+
+        IotElementDto iotElementDto = new IotElementDto();
+        iotElementDto.setENum(eNum);
+        iotElementDto.setEName(eName);
+        iotElementDto.setCName(cName);
+        iotElementDto.setAddress(getAddress(eName, eKey));
+        iotElementDto.setEUnit(eUnit);
+
+        if(eNum.equals(EnumYfQxzElement.TYPE6.geteNum())
+                || eNum.equals(EnumYfQxzElement.TYPE6_7.geteNum())){
+
+            if(!elementMap.containsKey(eNum)){
+                elementMap.put(eNum, new ArrayList<>());
+            }
+            elementMap.get(eNum).add(Integer.parseInt(eKey.replace("e", "")));
+        }
+        return iotElementDto;
+    }
+
+    private static IotElementDto getElement(IotDevice iotDevice, QxzDataDto dataitem, Map<String, List<Integer>> elementMap){
+        IotElementDto iotElementDto = null;
+        String devtypeBid = iotDevice.getDevtypeBid();
+        switch (devtypeBid){
+            case IotDeviceDictConst.TYPE_YF_QXZ:
+            case IotDeviceDictConst.TYPE_YF_SQZ:
+            case IotDeviceDictConst.TYPE_XPH_YF_QXZ:
+            case IotDeviceDictConst.TYPE_XPH_YF_SQZ:
+                iotElementDto = getYfQxzElement(dataitem, elementMap);
+                break;
+            case IotDeviceDictConst.TYPE_ADZN_GSSQ:
+                iotElementDto = getAdznGssqElement(dataitem, elementMap);
+                break;
+            default:
+                break;
+        }
+        return iotElementDto;
+    }
+
+    public static List<IotQxzDataListRseVo> elementFormat(IotDevice iotDevice, List<? extends QxzDataDto> dataList, List<IotDevicefactor> factorList, boolean isDisable) {
+        Map<String, List<Integer>> elementMap = new HashMap<>();
+        List<IotQxzDataListRseVo> iotQxzDataListRseVoList = new ArrayList<>();
+        Map<String, IotDevicefactor> devicefactorMap = getDevicefactorMap(factorList);
+
+        for(QxzDataDto dataitem: dataList) {
+            IotElementDto iotElementDto = getElement(iotDevice, dataitem, elementMap);
+
+            String eNum = dataitem.getENum();
+            String address = iotElementDto.getAddress();
+
+            IotQxzDataListRseVo iotQxzDataListRseVo = new IotQxzDataListRseVo();
+            IotDevicefactor iotDevicefactor = devicefactorMap.get(address);
+            String dfDisable = "0";
+            if(iotDevicefactor != null){
+                dfDisable = iotDevicefactor.getDfDisable();
+                iotQxzDataListRseVo.setFactorDisplayname(iotDevicefactor.getDfDisplayname());
+                if(!isDisable && Objects.equals(dfDisable,"1")){
+                    continue;
+                }
+            }
+
+            iotQxzDataListRseVo.setDevBid(dataitem.getDevBid());
+            iotQxzDataListRseVo.setAddress(address);
+            iotQxzDataListRseVo.setDfDisable(dfDisable);
+            iotQxzDataListRseVo.setFactorCode(eNum);
+            iotQxzDataListRseVo.setFactorUnit(iotElementDto.getEUnit());
+            iotQxzDataListRseVo.setFactorName(iotElementDto.getCName());
+            iotQxzDataListRseVo.setNumber(dataitem.getEValue());
+            iotQxzDataListRseVo.setDatalist(dataitem.getDataList());
+            Date timeDate = dataitem.getTime();
+            if(timeDate != null){
+                iotQxzDataListRseVo.setTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, timeDate));
+            }
+            iotQxzDataListRseVoList.add(iotQxzDataListRseVo);
+        }
+
+        for(IotQxzDataListRseVo vo: iotQxzDataListRseVoList){
+            String eNum = vo.getFactorCode();
+            String cName = vo.getFactorName();
+            if(elementMap.containsKey(eNum)) {
+                String eKey = vo.getAddress().split("-")[1].trim();
+                Integer e = Integer.parseInt(eKey.replace("e", ""));
+                List<Integer> indexList = elementMap.get(eNum);
+                if(indexList.size() == 1){
+                    continue;
+                }
+                indexList.sort(Comparator.comparingInt(o -> o));
+                int index = indexList.indexOf(e);
+                if(index >= 0){
+                    int level = index + 1;
+                    cName = (level * 10) + "厘米" + cName;
+                    vo.setFactorName(cName);
+                    vo.setLevel(String.valueOf(level));
+                }
+            }
+        }
+        return iotQxzDataListRseVoList;
+    }
+}

+ 0 - 175
src/main/java/com/yunfeiyun/agmp/iot/common/constant/device/adzngssq/AdzngssqUtil.java

@@ -1,175 +0,0 @@
-package com.yunfeiyun.agmp.iot.common.constant.device.adzngssq;
-
-import com.yunfeiyun.agmp.common.utils.StringUtils;
-import com.yunfeiyun.agmp.iot.common.domain.IotAdzngssqdata;
-import com.yunfeiyun.agmp.iot.common.domain.IotDevicefactor;
-import com.yunfeiyun.agmp.iot.common.domain.resvo.IotSensdataResVo;
-import com.yunfeiyun.agmp.iot.common.enums.EnumCommonDataFactor;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.http.util.TextUtils;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-@Slf4j
-public class AdzngssqUtil {
-
-
-    /**
-     * 把数据加工一下:附加上数据要素的 中文名称、自定义名称、单位
-     *
-     * @param jarrData   原数据
-     * @param factorList 自定义要素列表
-     * @return
-     */
-    public static List<IotSensdataResVo> processInstData(String devBid, List<IotAdzngssqdata> jarrData, List<IotDevicefactor> factorList) {
-
-
-        List<IotSensdataResVo> retList = new ArrayList<>();
-
-        for (IotAdzngssqdata dataitem :
-                jarrData) {
-
-            if (dataitem != null) {
-
-                IotSensdataResVo addItem = new IotSensdataResVo(dataitem);
-
-                if (TextUtils.isEmpty(addItem.getFactorCode())) {
-                    log.info("【爱迪智农】要素编码empty");
-                    continue;
-                }
-
-/*                EnumCommonDataFactor commonDataFactor = AdzngssqEnumFactor.toCommonFactor(addItem.getFactorCode());
-                if(commonDataFactor!=null){
-                    addItem.setFactorCode(commonDataFactor.getCode());
-                    addItem.setFactorName(commonDataFactor.getName());
-                    addItem.setFactorUnit(commonDataFactor.getUnit());
-                }else{
-                    log.info("【爱迪智农】未查到此要素,code:{}",addItem.getFactorCode());
-                    continue;
-                }*/
-
-                if (dataitem.getAddress() != null
-                        && dataitem.getAddress() > 0) {
-                    addItem.setFactorDisplayname(getFactorDisplayname(addItem.getFactorCode(), "" + dataitem.getAddress(), factorList));
-                    addItem.setDfDisable(getFactorDisabled(addItem.getFactorCode(), "" + dataitem.getAddress(), factorList));
-                } else {
-                    addItem.setFactorDisplayname(getFactorDisplayname(addItem.getFactorCode(), "", factorList));
-                    addItem.setDfDisable(getFactorDisabled(addItem.getFactorCode(), "", factorList));
-                }
-
-
-                retList.add(addItem);
-            }
-
-
-        }
-
-
-        return retList;
-    }
-
-    /**
-     * 处理土壤分层数据
-     *
-     * @param jarrData2
-     * @return
-     */
-    public static List<IotSensdataResVo> processSoilDatalist(List<IotSensdataResVo> jarrData2) {
-
-        Iterator<IotSensdataResVo> it2 = jarrData2.iterator();
-        while (it2.hasNext()) {
-            IotSensdataResVo item = it2.next();
-
-            //只处理 土壤温、湿度字段
-            if (item.getAddress() != null) {
-                /*if(item.getFactorCode().equals(AdzngssqEnumFactor.TYPE4.getCode())
-                        ||item.getFactorCode().equals(AdzngssqEnumFactor.TYPE5.getCode())){*/
-                if (item.getFactorCode().equals(EnumCommonDataFactor.TYPE_106.getCode())
-                        || item.getFactorCode().equals(EnumCommonDataFactor.TYPE_107.getCode())) {
-/*                    if(!TextUtils.isEmpty(item.getFactorName()) ){
-                        item.setFactorName(""+item.getAddress()+"0cm"+item.getFactorName());
-                    }*/
-                    if (TextUtils.isEmpty(item.getFactorDisplayname())) {
-                        item.setFactorDisplayname("" + item.getAddress() + "0cm" + item.getFactorName());
-                    }
-                }
-            }
-
-        }
-
-        return jarrData2;
-    }
-
-
-    /**
-     * 根据要素code取出“自定义名称” (支持 分层数据 )
-     *
-     * @param factorCode
-     * @param factorList
-     * @return
-     */
-    public static String getFactorDisplayname(String factorCode, String address, List<IotDevicefactor> factorList) {
-        String ret = "";
-
-        if (TextUtils.isEmpty(factorCode) || factorList == null || factorList.size() == 0) {
-            return ret;
-        }
-
-        for (IotDevicefactor item : factorList
-        ) {
-
-            if (StringUtils.isEmpty(address)) {
-                if (factorCode.equals(item.getDfCode())) {
-                    ret = item.getDfDisplayname();
-                    break;
-                }
-            } else {
-                if (factorCode.equals(item.getDfCode()) && address.equals(item.getDfAddress())) {
-                    ret = item.getDfDisplayname();
-                    break;
-                }
-            }
-
-
-        }
-
-        return ret;
-    }
-
-    /**
-     * 根据要素code取出“禁用标志” (支持 分层数据 )
-     *
-     * @param factorCode
-     * @param factorList
-     * @return
-     */
-    public static String getFactorDisabled(String factorCode, String address, List<IotDevicefactor> factorList) {
-        String ret = "0";   //默认"不禁用"
-
-        if (TextUtils.isEmpty(factorCode) || factorList == null || factorList.isEmpty()) {
-            return ret;
-        }
-
-        for (IotDevicefactor item : factorList
-        ) {
-
-            if (StringUtils.isEmpty(address)) {
-                if (factorCode.equals(item.getDfCode())) {
-                    ret = item.getDfDisable();
-                    break;
-                }
-            } else {
-                if (factorCode.equals(item.getDfCode()) && address.equals(item.getDfAddress())) {
-                    ret = item.getDfDisable();
-                    break;
-                }
-            }
-
-
-        }
-
-        return ret;
-    }
-}

+ 0 - 146
src/main/java/com/yunfeiyun/agmp/iot/common/constant/device/yfqxz/YfQxzFactorUtil.java

@@ -1,146 +0,0 @@
-package com.yunfeiyun.agmp.iot.common.constant.device.yfqxz;
-
-import com.yunfeiyun.agmp.common.utils.DateUtils;
-import com.yunfeiyun.agmp.common.utils.StringUtils;
-import com.yunfeiyun.agmp.iot.common.constant.devicetype.IotDeviceDictConst;
-import com.yunfeiyun.agmp.iot.common.domain.EnumFactorDto;
-import com.yunfeiyun.agmp.iot.common.domain.IotDevicefactor;
-import com.yunfeiyun.agmp.iot.common.domain.IotXphEnumDataDto;
-import com.yunfeiyun.agmp.iot.common.domain.IotXphLast24hDto;
-import com.yunfeiyun.agmp.iot.common.domain.resvo.IotCommonLast24hResVo;
-import com.yunfeiyun.agmp.iot.common.domain.resvo.IotDeviceResVo;
-import com.yunfeiyun.agmp.iot.common.domain.resvo.IotSensdataResVo;
-import com.yunfeiyun.agmp.iot.common.domain.resvo.IotXphLast24hResVo;
-import com.yunfeiyun.agmp.iot.common.enums.EnumCommonDataFactor;
-import com.yunfeiyun.agmp.iot.common.enums.YfqxzEnumFactor;
-import org.apache.http.util.TextUtils;
-
-import java.util.*;
-
-public class YfQxzFactorUtil {
-    public static Map<String, IotDevicefactor> getDevicefactorMap(List<IotDevicefactor> factorList){
-        Map<String, IotDevicefactor> devicefactorMap = new HashMap<>();
-        for (IotDevicefactor iotDevicefactor : factorList) {
-            String dfCode = iotDevicefactor.getDfCode();
-            String dfName = iotDevicefactor.getDfAddress();
-
-            String key = "";
-            if (StringUtils.isNotEmpty(dfCode)) {
-                key += dfCode;
-            }
-            if (StringUtils.isNotEmpty(dfName)) {
-                key += dfName;
-            }
-            devicefactorMap.put(key, iotDevicefactor);
-        }
-        return devicefactorMap;
-    }
-
-    private static IotDevicefactor setYfDisplayname(EnumFactorDto resVo, Map<String, IotDevicefactor> devicefactorMap){
-        /* 新浦会使用的是云飞气象站要素 */
-        IotDevicefactor iotDevicefactor = null;
-        YfqxzEnumFactor findEnum = YfqxzEnumFactor.findEnumByCode(resVo.getFactorCode());
-        if (findEnum != null) {
-            resVo.setFactorName(findEnum.getName());
-            resVo.setFactorUnit(findEnum.getUnit());
-
-            /* 转换成通用要素 */
-            EnumCommonDataFactor commonDataFactor = YfqxzEnumFactor.toCommonFactor(findEnum);
-            if (commonDataFactor != null) {
-                resVo.setFactorCode(commonDataFactor.getCode());
-                resVo.setFactorName(commonDataFactor.getName());
-                resVo.setFactorUnit(commonDataFactor.getUnit());
-            }
-        }
-
-        /* 设置自定义要素名称 */
-        String dfCode = resVo.getFactorCode();
-        String dfName = resVo.getAddress();
-        String key = "";
-        if (StringUtils.isNotEmpty(dfCode)) {
-            key += dfCode;
-        }
-        if (StringUtils.isNotEmpty(dfName)) {
-            key += dfName;
-        }
-        if (devicefactorMap.containsKey(key)) {
-            iotDevicefactor = devicefactorMap.get(key);
-            resVo.setFactorDisplayname(devicefactorMap.get(key).getDfDisplayname());
-        }
-        return iotDevicefactor;
-    }
-
-    public static String getAddress(String eName, String eKey){
-        return eName + "-" + eKey;
-    }
-
-    public static IotDevicefactor setDisplayname(EnumFactorDto resVo, Map<String, IotDevicefactor> devicefactorMap, IotXphEnumDataDto dataitem, String devtypeBid){
-        resVo.setAddress(getAddress(dataitem.getEName(), dataitem.getEKey()));
-        return setYfDisplayname(resVo, devicefactorMap);
-    }
-
-    public static List<IotXphLast24hResVo> processLast24hData(List<IotXphLast24hDto> dataList, List<IotDevicefactor> factorList, IotDeviceResVo iotDeviceResVo){
-        String devtypeBid = iotDeviceResVo.getDevtypeBid();
-        String devCode = iotDeviceResVo.getDevCode();
-
-        HashMap<String, ArrayList<String>> hmData = new HashMap<>();
-        //统计多组(分层)信息
-        for (IotXphLast24hDto item:dataList){
-
-            IotSensdataResVo<IotXphLast24hDto> addItem = new IotSensdataResVo<>(item);//设备原始数据类型转换成标准数据类型
-
-            if(TextUtils.isEmpty(addItem.getFactorCode())){
-                //非法数据
-                continue;
-            }
-
-            if(StringUtils.isEmpty(addItem.getFactorDisplayname())){
-
-                ArrayList<String> al = hmData.get(addItem.getFactorCode());
-                if(al==null){
-                    al = new ArrayList<>();
-                }
-                if(!al.contains(addItem.getAddress())){
-                    al.add(addItem.getAddress());
-                }
-                //先收集 “层标识”
-                hmData.put(addItem.getFactorCode(),al);
-            }
-        }
-        //如果存在分层数据,对address进行排序
-        if(hmData.size()>0){
-            for(ArrayList<String> addrList:hmData.values()) {
-                Collections.sort(addrList);
-            }
-        }
-
-        Map<String, IotDevicefactor> devicefactorMap = getDevicefactorMap(factorList);
-
-        List<IotXphLast24hResVo> retList = new ArrayList<>();
-        for (IotXphLast24hDto dataitem : dataList) {
-
-            IotSensdataResVo<IotXphLast24hDto> commonItem = new IotSensdataResVo<>(dataitem);
-            IotXphLast24hResVo iotXphLast24hResVo = new IotXphLast24hResVo();
-            iotXphLast24hResVo.setFactorCode(dataitem.getENum());
-            iotXphLast24hResVo.setMaxVal(dataitem.getMaxVal());
-            iotXphLast24hResVo.setMinVal(dataitem.getMinVal());
-            iotXphLast24hResVo.setMaxValdate(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, dataitem.getMaxValdate()));
-            iotXphLast24hResVo.setMinValdate(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, dataitem.getMinValdate()));
-
-            /* 设置要素名称 用于联合唯一 和前端区分显示 */
-            IotDevicefactor iotDevicefactor = setDisplayname(iotXphLast24hResVo, devicefactorMap, dataitem, devtypeBid);
-            if(iotDevicefactor != null && Objects.equals(iotDevicefactor.getDfDisable(), "1")) {
-                continue;
-            }
-
-            if(StringUtils.isEmpty(iotXphLast24hResVo.getFactorDisplayname())){//自动附加自定义名称
-                ArrayList<String> al = hmData.get(commonItem.getFactorCode());
-                if(al!=null&&al.size()>1){//超过1层
-                    iotXphLast24hResVo.setFactorDisplayname(""+ (al.indexOf(commonItem.getAddress())+1) +"0厘米"+commonItem.getFactorName());
-                }
-            }
-            retList.add(iotXphLast24hResVo);
-        }
-        return retList;
-    }
-}

+ 0 - 408
src/main/java/com/yunfeiyun/agmp/iot/common/constant/device/yfqxz/YfqxzConst.java

@@ -1,408 +0,0 @@
-package com.yunfeiyun.agmp.iot.common.constant.device.yfqxz;
-
-import com.alibaba.fastjson2.JSONObject;
-import com.yunfeiyun.agmp.iot.common.enums.XmznEnumDeviceData;
-
-import java.util.HashMap;
-
-public class YfqxzConst {
-
-    /**
-     * 云飞气象站通讯协议中定义的要素信息: 编号,名称,单位
-     */
-    public static final String FACTOR_DEFINE = "{\n" +
-            "    \"100\": [\n" +
-            "        \"100\",\n" +
-            "        \"未定义\",\n" +
-            "        \"\"\n" +
-            "    ],\n" +
-            "    \"101\": [\n" +
-            "        \"101\",\n" +
-            "        \"大气温度\",\n" +
-            "        \"°C\"\n" +
-            "    ],\n" +
-            "    \"102\": [\n" +
-            "        \"102\",\n" +
-            "        \"大气湿度\",\n" +
-            "        \"%RH\"\n" +
-            "    ],\n" +
-            "    \"103\": [\n" +
-            "        \"103\",\n" +
-            "        \"模拟气压\",\n" +
-            "        \"hpa\"\n" +
-            "    ],\n" +
-            "    \"104\": [\n" +
-            "        \"104\",\n" +
-            "        \"雨量\",\n" +
-            "        \"mm\"\n" +
-            "    ],\n" +
-            "    \"105\": [\n" +
-            "        \"105\",\n" +
-            "        \"简易总辐射\",\n" +
-            "        \"w/㎡\"\n" +
-            "    ],\n" +
-            "    \"106\": [\n" +
-            "        \"106\",\n" +
-            "        \"土壤温度\",\n" +
-            "        \"°C\"\n" +
-            "    ],\n" +
-            "    \"107\": [\n" +
-            "        \"107\",\n" +
-            "        \"土壤湿度\",\n" +
-            "        \"%RH\"\n" +
-            "    ],\n" +
-            "    \"108\": [\n" +
-            "        \"108\",\n" +
-            "        \"风速\",\n" +
-            "        \"m/s\"\n" +
-            "    ],\n" +
-            "    \"109\": [\n" +
-            "        \"109\",\n" +
-            "        \"风向\",\n" +
-            "        \"°\"\n" +
-            "    ],\n" +
-            "    \"110\": [\n" +
-            "        \"110\",\n" +
-            "        \"蒸发\",\n" +
-            "        \"mm\"\n" +
-            "    ],\n" +
-            "    \"111\": [\n" +
-            "        \"111\",\n" +
-            "        \"雪量\",\n" +
-            "        \"mm\"\n" +
-            "    ],\n" +
-            "    \"112\": [\n" +
-            "        \"112\",\n" +
-            "        \"照度\",\n" +
-            "        \"LUX\"\n" +
-            "    ],\n" +
-            "    \"113\": [\n" +
-            "        \"113\",\n" +
-            "        \"日照时数\",\n" +
-            "        \"h\"\n" +
-            "    ],\n" +
-            "    \"114\": [\n" +
-            "        \"114\",\n" +
-            "        \"光合\",\n" +
-            "        \"w/㎡\"\n" +
-            "    ],\n" +
-            "    \"115\": [\n" +
-            "        \"115\",\n" +
-            "        \"雨量累计\",\n" +
-            "        \"mm\"\n" +
-            "    ],\n" +
-            "    \"116\": [\n" +
-            "        \"116\",\n" +
-            "        \"辐射累计\",\n" +
-            "        \"MJ/㎡\"\n" +
-            "    ],\n" +
-            "    \"117\": [\n" +
-            "        \"117\",\n" +
-            "        \"有无雨雪\",\n" +
-            "        \"\"\n" +
-            "    ],\n" +
-            "    \"118\": [\n" +
-            "        \"118\",\n" +
-            "        \"噪声\",\n" +
-            "        \"分贝\"\n" +
-            "    ],\n" +
-            "    \"119\": [\n" +
-            "        \"119\",\n" +
-            "        \"水位\",\n" +
-            "        \"cm\"\n" +
-            "    ],\n" +
-            "    \"120\": [\n" +
-            "        \"120\",\n" +
-            "        \"二氧化碳\",\n" +
-            "        \"PPM\"\n" +
-            "    ],\n" +
-            "    \"121\": [\n" +
-            "        \"121\",\n" +
-            "        \"曝辐量\",\n" +
-            "        \"cal/cm2\"\n" +
-            "    ],\n" +
-            "    \"122\": [\n" +
-            "        \"122\",\n" +
-            "        \"液位\",\n" +
-            "        \"mm\"\n" +
-            "    ],\n" +
-            "    \"123\": [\n" +
-            "        \"123\",\n" +
-            "        \"光合有效辐射\",\n" +
-            "        \"W/m2\"\n" +
-            "    ],\n" +
-            "    \"124\": [\n" +
-            "        \"124\",\n" +
-            "        \"电压\",\n" +
-            "        \"V\"\n" +
-            "    ],\n" +
-            "    \"125\": [\n" +
-            "        \"125\",\n" +
-            "        \"紫外线\",\n" +
-            "        \"w/㎡\"\n" +
-            "    ],\n" +
-            "    \"126\": [\n" +
-            "        \"126\",\n" +
-            "        \"粉尘\",\n" +
-            "        \"ug/m3\"\n" +
-            "    ],\n" +
-            "    \"127\": [\n" +
-            "        \"127\",\n" +
-            "        \"数字气压\",\n" +
-            "        \"hpa\"\n" +
-            "    ],\n" +
-            "    \"128\": [\n" +
-            "        \"128\",\n" +
-            "        \"PH值\",\n" +
-            "        \"\"\n" +
-            "    ],\n" +
-            "    \"129\": [\n" +
-            "        \"129\",\n" +
-            "        \"最大风速\",\n" +
-            "        \"m/s\"\n" +
-            "    ],\n" +
-            "    \"130\": [\n" +
-            "        \"130\",\n" +
-            "        \"平均风速\",\n" +
-            "        \"m/s\"\n" +
-            "    ],\n" +
-            "    \"131\": [\n" +
-            "        \"131\",\n" +
-            "        \"经度\",\n" +
-            "        \"°\"\n" +
-            "    ],\n" +
-            "    \"132\": [\n" +
-            "        \"132\",\n" +
-            "        \"纬度\",\n" +
-            "        \"°\"\n" +
-            "    ],\n" +
-            "    \"133\": [\n" +
-            "        \"133\",\n" +
-            "        \"海拔高度\",\n" +
-            "        \"m\"\n" +
-            "    ],\n" +
-            "    \"134\": [\n" +
-            "        \"134\",\n" +
-            "        \"TBQ总辐射\",\n" +
-            "        \"W/m2\"\n" +
-            "    ],\n" +
-            "    \"135\": [\n" +
-            "        \"135\",\n" +
-            "        \"直接辐射\",\n" +
-            "        \"W/m2\"\n" +
-            "    ],\n" +
-            "    \"136\": [\n" +
-            "        \"136\",\n" +
-            "        \"散射辐射\",\n" +
-            "        \"W/m2\"\n" +
-            "    ],\n" +
-            "    \"138\": [\n" +
-            "        \"138\",\n" +
-            "        \"紫外辐射\",\n" +
-            "        \"W/m2\"\n" +
-            "    ],\n" +
-            "    \"139\": [\n" +
-            "        \"139\",\n" +
-            "        \"贴片温度\",\n" +
-            "        \"°C\"\n" +
-            "    ],\n" +
-            "    \"140\": [\n" +
-            "        \"140\",\n" +
-            "        \"露点温度\",\n" +
-            "        \"°C\"\n" +
-            "    ],\n" +
-            "    \"141\": [\n" +
-            "        \"141\",\n" +
-            "        \"一氧化碳\",\n" +
-            "        \"PPM\"\n" +
-            "    ],\n" +
-            "    \"142\": [\n" +
-            "        \"142\",\n" +
-            "        \"电流\",\n" +
-            "        \"mA\"\n" +
-            "    ],\n" +
-            "    \"143\": [\n" +
-            "        \"143\",\n" +
-            "        \"超声波风速\",\n" +
-            "        \"m/s\"\n" +
-            "    ],\n" +
-            "    \"144\": [\n" +
-            "        \"144\",\n" +
-            "        \"水温\",\n" +
-            "        \"°C\"\n" +
-            "    ],\n" +
-            "    \"145\": [\n" +
-            "        \"145\",\n" +
-            "        \"PM2.5\",\n" +
-            "        \"ug/m3\"\n" +
-            "    ],\n" +
-            "    \"146\": [\n" +
-            "        \"146\",\n" +
-            "        \"PM10\",\n" +
-            "        \"ug/m3\"\n" +
-            "    ],\n" +
-            "    \"147\": [\n" +
-            "        \"147\",\n" +
-            "        \"PH\",\n" +
-            "        \"\"\n" +
-            "    ],\n" +
-            "    \"148\": [\n" +
-            "        \"148\",\n" +
-            "        \"溶解氧\",\n" +
-            "        \"mg/l\"\n" +
-            "    ],\n" +
-            "    \"149\": [\n" +
-            "        \"149\",\n" +
-            "        \"氨氮\",\n" +
-            "        \"mg/l\"\n" +
-            "    ],\n" +
-            "    \"150\": [\n" +
-            "        \"150\",\n" +
-            "        \"电导率\",\n" +
-            "        \"mS/cm\"\n" +
-            "    ],\n" +
-            "    \"151\": [\n" +
-            "        \"151\",\n" +
-            "        \"浊度\",\n" +
-            "        \"NTU\"\n" +
-            "    ],\n" +
-            "    \"152\": [\n" +
-            "        \"152\",\n" +
-            "        \"能见度\",\n" +
-            "        \"m\"\n" +
-            "    ],\n" +
-            "    \"153\": [\n" +
-            "        \"153\",\n" +
-            "        \"氨气\",\n" +
-            "        \"ppm\"\n" +
-            "    ],\n" +
-            "    \"154\": [\n" +
-            "        \"154\",\n" +
-            "        \"盐分\",\n" +
-            "        \"mg/L\"\n" +
-            "    ],\n" +
-            "    \"155\": [\n" +
-            "        \"155\",\n" +
-            "        \"氮\",\n" +
-            "        \"mg/kg\"\n" +
-            "    ],\n" +
-            "    \"156\": [\n" +
-            "        \"156\",\n" +
-            "        \"磷\",\n" +
-            "        \"mg/kg\"\n" +
-            "    ],\n" +
-            "    \"157\": [\n" +
-            "        \"157\",\n" +
-            "        \"钾\",\n" +
-            "        \"mg/kg\"\n" +
-            "    ],\n" +
-            "    \"158\": [\n" +
-            "        \"158\",\n" +
-            "        \"热通量\",\n" +
-            "        \"W/m2\"\n" +
-            "    ],\n" +
-            "    \"159\": [\n" +
-            "        \"159\",\n" +
-            "        \"叶面温度\",\n" +
-            "        \"°C\"\n" +
-            "    ],\n" +
-            "    \"160\": [\n" +
-            "        \"160\",\n" +
-            "        \"叶面湿度\",\n" +
-            "        \"%RH\"\n" +
-            "    ],\n" +
-            "    \"161\": [\n" +
-            "        \"161\",\n" +
-            "        \"茎秆\",\n" +
-            "        \"cm\"\n" +
-            "    ],\n" +
-            "    \"162\": [\n" +
-            "        \"162\",\n" +
-            "        \"负氧离子\",\n" +
-            "        \"个/cm3\"\n" +
-            "    ],\n" +
-            "    \"201\": [\n" +
-            "        \"201\",\n" +
-            "        \"土壤水势\",\n" +
-            "        \"KPA\"\n" +
-            "    ],\n" +
-            "    \"202\": [\n" +
-            "        \"202\",\n" +
-            "        \"露点温度\",\n" +
-            "        \"°C\"\n" +
-            "    ],\n" +
-            "    \"203\": [\n" +
-            "        \"203\",\n" +
-            "        \"PM100\",\n" +
-            "        \"ug/m3\"\n" +
-            "    ],\n" +
-            "    \"208\": [\n" +
-            "        \"208\",\n" +
-            "        \"照度\",\n" +
-            "        \"Lux\"\n" +
-            "    ],\n" +
-            "    \"224\": [\n" +
-            "        \"224\",\n" +
-            "        \"信号强度\",\n" +
-            "        \"\"\n" +
-            "    ],\n" +
-            "    \"228\": [\n" +
-            "        \"228\",\n" +
-            "        \"水质pH\",\n" +
-            "        \"\"\n" +
-            "    ],\n" +
-            "    \"256\": [\n" +
-            "        \"256\",\n" +
-            "        \"悬浮物\",\n" +
-            "        \"mg/L\"\n" +
-            "    ],\n" +
-            "    \"257\": [\n" +
-            "        \"257\",\n" +
-            "        \"透明度\",\n" +
-            "        \"NTU\"\n" +
-            "    ],\n" +
-            "    \"211\": [\n" +
-            "        \"211\",\n" +
-            "        \"电导率\",\n" +
-            "        \"mS/cm\"\n" +
-            "    ]\n" +
-            "}";
-
-    public static HashMap<String, XmznEnumDeviceData> hmFactors = new HashMap<>();
-    static {
-        hmFactors.put("101",XmznEnumDeviceData.TYPE1);
-        hmFactors.put("102",XmznEnumDeviceData.TYPE2);
-        hmFactors.put("103",XmznEnumDeviceData.TYPE20);
-        hmFactors.put("104",XmznEnumDeviceData.TYPE13);
-        hmFactors.put("105",null);//简易总辐射
-        hmFactors.put("106",XmznEnumDeviceData.TYPE5);
-        hmFactors.put("107",XmznEnumDeviceData.TYPE6);
-        hmFactors.put("108",XmznEnumDeviceData.TYPE9);
-        hmFactors.put("109",XmznEnumDeviceData.TYPE11);
-        hmFactors.put("110",null);//蒸发
-        hmFactors.put("111",null);//雪量
-        hmFactors.put("112",XmznEnumDeviceData.TYPE4);
-        hmFactors.put("113",null);//日照时数
-        hmFactors.put("114",null);//光合
-        hmFactors.put("115",null);//雨量累计
-        hmFactors.put("116",null);//辐射累计
-        hmFactors.put("117",XmznEnumDeviceData.TYPE12);
-        hmFactors.put("118",XmznEnumDeviceData.TYPE19);
-        hmFactors.put("119",null);//水位
-        hmFactors.put("120",XmznEnumDeviceData.TYPE3);
-        hmFactors.put("121",null);//曝辐量
-        hmFactors.put("122",null);//液位
-        hmFactors.put("123",null);//光合有效辐射
-        hmFactors.put("124",null);//电压
-        hmFactors.put("125",null);//紫外线
-        hmFactors.put("126",null);//粉尘
-        hmFactors.put("127",null);//数字气压
-        hmFactors.put("128",null);//PH值
-        hmFactors.put("131",XmznEnumDeviceData.TYPE28);
-        hmFactors.put("132",XmznEnumDeviceData.TYPE29);
-        hmFactors.put("142",XmznEnumDeviceData.TYPE25);
-        hmFactors.put("145",XmznEnumDeviceData.TYPE17);
-        hmFactors.put("146",XmznEnumDeviceData.TYPE18);
-    }
-
-}

+ 0 - 196
src/main/java/com/yunfeiyun/agmp/iot/common/constant/device/yfqxz/YfqxzUtil.java

@@ -1,196 +0,0 @@
-package com.yunfeiyun.agmp.iot.common.constant.device.yfqxz;
-
-import com.yunfeiyun.agmp.common.utils.DateUtils;
-import com.yunfeiyun.agmp.common.utils.StringUtils;
-import com.yunfeiyun.agmp.iot.common.domain.IotDevicefactor;
-import com.yunfeiyun.agmp.iot.common.domain.IotYfqxzdata;
-import com.yunfeiyun.agmp.iot.common.domain.resvo.IotSensdataResVo;
-import com.yunfeiyun.agmp.iot.common.enums.EnumCommonDataFactor;
-import com.yunfeiyun.agmp.iot.common.enums.YfqxzEnumFactor;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.http.util.TextUtils;
-
-import java.util.*;
-
-@Slf4j
-public class YfqxzUtil {
-
-    public static List<IotSensdataResVo> processInstData(String devBid, List<IotYfqxzdata> jarrData, List<IotDevicefactor> factorList){
-        return processInstData(devBid,jarrData,factorList,true);
-    }
-
-    /**
-     * 把数据加工一下:附加上数据要素的 中文名称、自定义名称、单位
-     *
-     * @param jarrData    原数据
-     * @param factorList  自定义要素列表
-     * @return
-     */
-    public static List<IotSensdataResVo> processInstData(String devBid, List<IotYfqxzdata> jarrData, List<IotDevicefactor> factorList, boolean isDisable){
-
-
-        List<IotSensdataResVo> retList = new ArrayList<>();
-
-        HashMap<String,ArrayList<String>> hmData = new HashMap<>();
-
-        for (IotYfqxzdata dataitem: jarrData) {
-
-            if(dataitem!=null){
-
-                IotSensdataResVo addItem = new IotSensdataResVo(dataitem);
-
-                if(TextUtils.isEmpty(addItem.getFactorCode())){
-                    log.debug("要素编码empty");
-                    continue;
-                }
-
-                YfqxzEnumFactor findEnum = YfqxzEnumFactor.findEnumByCode(addItem.getFactorCode());
-
-                if(findEnum!=null){
-
-
-                    addItem.setFactorName(findEnum.getName());
-                    addItem.setFactorUnit(findEnum.getUnit());
-
-                    EnumCommonDataFactor commonDataFactor = YfqxzEnumFactor.toCommonFactor(findEnum);
-                    if(commonDataFactor!=null){
-                        addItem.setFactorCode(commonDataFactor.getCode());
-                        addItem.setFactorName(commonDataFactor.getName());
-                        addItem.setFactorUnit(commonDataFactor.getUnit());
-                    }
-
-                }
-
-                IotDevicefactor iotDevicefactor = getFactorDisplayname(addItem.getFactorCode(),addItem.getAddress(),factorList);
-                String dfDisable = "0";
-                if(iotDevicefactor != null && Objects.equals(iotDevicefactor.getDfDisable(), "1")){
-                    dfDisable = iotDevicefactor.getDfDisable();
-                }
-                if(!isDisable && Objects.equals(dfDisable,"1")){
-                    continue;
-                }
-                addItem.setDfDisable(dfDisable);
-
-                String dfDisplayname = "";
-                if (iotDevicefactor != null) {
-                    dfDisplayname = iotDevicefactor.getDfDisplayname();
-                }
-                addItem.setFactorDisplayname(dfDisplayname);
-
-                if(StringUtils.isEmpty(addItem.getFactorDisplayname())){
-
-                    //对于土壤温湿度,如果存在多层(多个传感器)数据,默认 设置 显示名称 为 层数+0厘米土壤温/湿度
-                    if(EnumCommonDataFactor.TYPE_106.getCode().equals(addItem.getFactorCode())
-                            ||EnumCommonDataFactor.TYPE_107.getCode().equals(addItem.getFactorCode())
-                    ){
-                        ArrayList<String> al = hmData.get(addItem.getFactorCode());
-                        if(al==null){
-                            al = new ArrayList<>();
-                        }
-                        if(!al.contains(addItem.getAddress())){
-                            log.info("{}:新加入{}",addItem.getFactorCode(),addItem.getAddress());
-                            al.add(addItem.getAddress());
-                        }else{
-                            log.info("{}:已加入过{}",addItem.getFactorCode(),addItem.getAddress());
-                        }
-
-                        //先收集 “层标识”
-                        hmData.put(addItem.getFactorCode(),al);
-                        //addItem.setFactorDisplayname(""+al.size()+"0厘米"+addItem.getFactorName());
-                    }
-                }
-
-                retList.add(addItem);
-            }
-
-            //如果存在分层数据,对address进行排序
-            if(hmData.size()>0){
-                for(ArrayList<String> addrList:hmData.values()) {
-                    Collections.sort(addrList);
-                }
-            }
-
-            for(IotSensdataResVo item:retList){
-                if(StringUtils.isEmpty(item.getFactorDisplayname())){
-
-                    //对于土壤温湿度,如果存在多层(多个传感器)数据,默认 设置 显示名称 为 层数+0厘米土壤温/湿度
-                    if(EnumCommonDataFactor.TYPE_106.getCode().equals(item.getFactorCode())
-                            ||EnumCommonDataFactor.TYPE_107.getCode().equals(item.getFactorCode())
-                    ){
-                        ArrayList<String> al = hmData.get(item.getFactorCode());
-                        if(al!=null&&al.size()>1){//超过1层
-                            log.info("{}共{}层,当前第{}层",item.getFactorCode(),al.size(),(al.indexOf(item.getAddress())+1));
-                            item.setFactorDisplayname(""+ (al.indexOf(item.getAddress())+1) +"0厘米"+item.getFactorName());
-                        }
-
-                    }
-                }
-            }
-
-
-        }
-
-
-
-        return retList;
-    }
-
-    /**
-     * 根据图表要展示的数据的时间跨度,采取不同的图表数据的细节程度
-     * @param startDate
-     * @param endDate
-     * @return
-     */
-    public static String selectChartDataInterval(String startDate,String endDate){
-
-
-        String ret = "day";
-
-        if(StringUtils.isNotEmpty(startDate) && StringUtils.isNotEmpty(endDate)){
-
-            long diffTime = DateUtils.parseDate(endDate).getTime() - DateUtils.parseDate(startDate).getTime();
-            if(diffTime <= 48 * 60 * 60 * 1000){
-                ret = "minute";
-            }else if(diffTime <= 30L * 24 * 60 * 60 * 1000){
-                ret = "hour";
-            }
-        }
-        return ret;
-    }
-
-
-    /**
-     * 根据要素code和address取出“自定义名称”
-     * @param factorCode
-     * @param address
-     * @param factorList
-     * @return
-     */
-    public static IotDevicefactor getFactorDisplayname(String factorCode,String address, List<IotDevicefactor> factorList){
-        IotDevicefactor iotDevicefactor = null;
-        if(StringUtils.isEmpty(factorCode)||factorList==null||factorList.isEmpty() ||StringUtils.isEmpty(address)){
-            return iotDevicefactor;
-        }
-
-        for (IotDevicefactor item:factorList) {
-            if(factorCode.equals(item.getDfCode()) && address.equals(item.getDfAddress())){
-                iotDevicefactor = item;
-                break;
-            }
-        }
-        return iotDevicefactor;
-    }
-
-    public static boolean hasData(IotYfqxzdata data, List<IotYfqxzdata> list){
-
-        for (IotYfqxzdata item:list){
-            if((item.getENum()+item.getEName()+item.getEKey())
-                    .equals(data.getENum()+data.getEName()+data.getEKey())){
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-}

+ 47 - 0
src/main/java/com/yunfeiyun/agmp/iot/common/domain/IotAdznGssqdata.java

@@ -0,0 +1,47 @@
+package com.yunfeiyun.agmp.iot.common.domain;
+
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * mongo
+ * 爱迪智农-管式墒情仪-采集数据
+ *                 "eValue": "123",
+ *                 "eKey": "e1",
+ *                 "eName": "Temperature",
+ *                 "eNum": "101"
+ */
+
+@Data
+@TableName("IotAdzngssqdata")
+public class IotAdznGssqdata extends IotBaseEntity {
+
+    public String id;
+
+    public String cId;
+
+    /**
+     * 设备标识
+     */
+    public String devBid;
+
+    /**
+     * 采集时间
+     */
+    public Date time;
+
+
+    //依照通讯协议定义以下字段
+
+    public String eNum;
+
+    public String eName;
+
+    public String eKey;
+
+    public String eValue;
+
+}

+ 0 - 35
src/main/java/com/yunfeiyun/agmp/iot/common/domain/IotAdzngssqdata.java

@@ -1,35 +0,0 @@
-package com.yunfeiyun.agmp.iot.common.domain;
-
-
-import com.alibaba.fastjson2.annotation.JSONField;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- * mongo
- * 爱迪智农-管式墒情仪-采集数据
- * TODO 采集类数据,封装一个基类(数据结构是一致的,才方便做统一的查询、统计)
- */
-
-@Data
-@TableName("IotAdzngssqdata")
-public class IotAdzngssqdata extends IotBaseEntity {
-
-    public String id;
-
-    public String cId;
-
-    public String devBid;
-
-    @JSONField
-    public Date time;
-
-    public String code;
-
-    public Integer address;
-
-    public String value ;
-
-}

+ 35 - 0
src/main/java/com/yunfeiyun/agmp/iot/common/domain/IotAdzngssqdata2.java

@@ -0,0 +1,35 @@
+//package com.yunfeiyun.agmp.iot.common.domain;
+//
+//
+//import com.alibaba.fastjson2.annotation.JSONField;
+//import com.baomidou.mybatisplus.annotation.TableName;
+//import lombok.Data;
+//
+//import java.util.Date;
+//
+///**
+// * mongo
+// * 爱迪智农-管式墒情仪-采集数据
+// * TODO 采集类数据,封装一个基类(数据结构是一致的,才方便做统一的查询、统计)
+// */
+//
+//@Data
+//@TableName("IotAdzngssqdata")
+//public class IotAdzngssqdata extends IotBaseEntity {
+//
+//    public String id;
+//
+//    public String cId;
+//
+//    public String devBid;
+//
+//    @JSONField
+//    public Date time;
+//
+//    public String code;
+//
+//    public Integer address;
+//
+//    public String value ;
+//
+//}

+ 5 - 0
src/main/java/com/yunfeiyun/agmp/iot/common/domain/IotQxzDataListRseVo.java

@@ -75,4 +75,9 @@ public class IotQxzDataListRseVo {
     public String minValdate;
     public String maxVal;
     public String maxValdate;
+
+    /**
+     * 多层土壤温湿度,层级
+     */
+    public String level;
 }

+ 20 - 0
src/main/java/com/yunfeiyun/agmp/iot/common/domain/dto/IotElementDto.java

@@ -0,0 +1,20 @@
+package com.yunfeiyun.agmp.iot.common.domain.dto;
+
+import lombok.Data;
+
+@Data
+public class IotElementDto {
+    public String eNum;
+
+    public String eName;
+
+    public String cName;
+
+    public String eKey;
+
+    public String eValue;
+
+    private String address;
+
+    private String eUnit;
+}

+ 27 - 25
src/main/java/com/yunfeiyun/agmp/iot/common/domain/resvo/IotSensdataResVo.java

@@ -163,31 +163,33 @@ public class IotSensdataResVo<T> {
             this.cId = dataitem.getCId();
             this.address = "" + dataitem.getAddress();
 
-        } else if (dataitemT instanceof IotAdzngssqdata) {//爱迪智农管式墒情:address直接使用
-            IotAdzngssqdata dataitem = (IotAdzngssqdata) dataitemT;
-
-            //this.factorCode = dataitem.getCode();
-
-            //对应到【标准要素code】
-            EnumCommonDataFactor commonFactor = AdzngssqEnumFactor.toCommonFactor(dataitem.getCode());
-            if (commonFactor == null) {
-                log.error("找不到相应的标准要素:【{}】", dataitem.getCode());
-                return;
-            }
-            this.factorCode = commonFactor.getCode();
-            this.factorName = commonFactor.getName();
-            this.factorUnit = commonFactor.getUnit();
-
-            this.number = dataitem.getValue();
-            this.datetime = dataitem.getTime();
-            if (dataitem.getTime() != null) {
-                this.time = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, dataitem.getTime());
-            }
-            this.devBid = dataitem.getDevBid();
-            this.cId = dataitem.getCId();
-            this.address = "" + dataitem.getAddress();
-
-        } else if (dataitemT instanceof IotXphdata) {// 新浦会,也基本是 云飞气象站协议:address是自己拼的,目前是 借用 ename 和 ekey 组合起来行标识
+        }
+//        else if (dataitemT instanceof IotAdzngssqdata) {//爱迪智农管式墒情:address直接使用
+//            IotAdzngssqdata dataitem = (IotAdzngssqdata) dataitemT;
+//
+//            //this.factorCode = dataitem.getCode();
+//
+//            //对应到【标准要素code】
+//            EnumCommonDataFactor commonFactor = AdzngssqEnumFactor.toCommonFactor(dataitem.getCode());
+//            if (commonFactor == null) {
+//                log.error("找不到相应的标准要素:【{}】", dataitem.getCode());
+//                return;
+//            }
+//            this.factorCode = commonFactor.getCode();
+//            this.factorName = commonFactor.getName();
+//            this.factorUnit = commonFactor.getUnit();
+//
+//            this.number = dataitem.getValue();
+//            this.datetime = dataitem.getTime();
+//            if (dataitem.getTime() != null) {
+//                this.time = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, dataitem.getTime());
+//            }
+//            this.devBid = dataitem.getDevBid();
+//            this.cId = dataitem.getCId();
+//            this.address = "" + dataitem.getAddress();
+//
+//        }
+        else if (dataitemT instanceof IotXphdata) {// 新浦会,也基本是 云飞气象站协议:address是自己拼的,目前是 借用 ename 和 ekey 组合起来行标识
             IotXphdata dataitem = (IotXphdata) dataitemT;
 
             //this.factorCode = dataitem.getENum();

+ 9 - 11
src/main/java/com/yunfeiyun/agmp/iot/common/domain/resvo/IotYfqxzdataResVo.java

@@ -1,10 +1,8 @@
 package com.yunfeiyun.agmp.iot.common.domain.resvo;
 
 import com.yunfeiyun.agmp.common.utils.DateUtils;
-import com.yunfeiyun.agmp.iot.common.domain.IotAdzngssqdata;
 import com.yunfeiyun.agmp.iot.common.domain.IotYfqxzdata;
 import lombok.Data;
-import lombok.NonNull;
 
 
 /**
@@ -69,13 +67,13 @@ public class IotYfqxzdataResVo {
         this.cId = dataitem.getCId();
     }
 
-    public IotYfqxzdataResVo(@NonNull IotAdzngssqdata dataitem) {
-        this.factorCode = dataitem.getCode();
-        this.number = dataitem.getValue();
-        if(dataitem.getTime()!=null){
-            this.time = DateUtils.parseDateToStr( DateUtils.YYYY_MM_DD_HH_MM_SS, dataitem.getTime());
-        }
-        this.devBid = dataitem.getDevBid();
-        this.cId = dataitem.getCId();
-    }
+//    public IotYfqxzdataResVo(@NonNull IotAdzngssqdata dataitem) {
+//        this.factorCode = dataitem.getCode();
+//        this.number = dataitem.getValue();
+//        if(dataitem.getTime()!=null){
+//            this.time = DateUtils.parseDateToStr( DateUtils.YYYY_MM_DD_HH_MM_SS, dataitem.getTime());
+//        }
+//        this.devBid = dataitem.getDevBid();
+//        this.cId = dataitem.getCId();
+//    }
 }

+ 0 - 97
src/main/java/com/yunfeiyun/agmp/iot/common/enums/AdzngssqEnumFactor.java

@@ -1,97 +0,0 @@
-package com.yunfeiyun.agmp.iot.common.enums;
-
-
-/**
- * 爱迪智农-管式墒情仪    采集数据定义
- */
-public enum AdzngssqEnumFactor {
-
-    TYPE1("AT","大气温度","℃"),
-    TYPE2("ATS","大气湿度","%RH"),
-    TYPE3("ATM","大气压强","Pa"),
-    TYPE4("TEMP","土壤温度","°C"),
-    TYPE5("SWC","土壤湿度","%RH"),
-    TYPE6("EC","电导率","mS/cm");
-
-
-    private String code;
-    private String name;
-
-    private String unit;
-
-    private AdzngssqEnumFactor(String code, String name, String unit){
-        this.code = code;
-        this.name = name;
-        this.unit = unit;
-    }
-
-    public String getCode(){
-        return this.code;
-    }
-    public String getName(){
-        return this.name;
-    }
-
-    public String getUnit(){
-        return this.unit;
-    }
-
-
-    /**
-     * 根据code查找
-     * @param code 枚举code
-     * @return 枚举对象
-     */
-    public static AdzngssqEnumFactor findEnumByCode(String code) {
-        for (AdzngssqEnumFactor statusEnum : AdzngssqEnumFactor.values()) {
-            if (statusEnum.getCode().equals(code)) {
-                return statusEnum;
-            }
-        }
-       return null;
-    }
-
-
-    public static AdzngssqEnumFactor  fromCommonCode(String commonCode){
-        AdzngssqEnumFactor ret = null;
-
-        EnumCommonDataFactor commonFactor = EnumCommonDataFactor.findEnumByCode(commonCode);
-
-        if(commonFactor!=null){
-            if(EnumCommonDataFactor.TYPE_106.getCode().equals(commonCode)){
-                ret = AdzngssqEnumFactor.TYPE4;
-            }else if(EnumCommonDataFactor.TYPE_107.getCode().equals(commonCode)){
-                ret = AdzngssqEnumFactor.TYPE5;
-            }else if(EnumCommonDataFactor.TYPE_101.getCode().equals(commonCode)){
-                ret = AdzngssqEnumFactor.TYPE1;
-            }else if(EnumCommonDataFactor.TYPE_102.getCode().equals(commonCode)){
-                ret = AdzngssqEnumFactor.TYPE2;
-            }else if(EnumCommonDataFactor.TYPE_301.getCode().equals(commonCode)){
-                ret = AdzngssqEnumFactor.TYPE3;
-            }else if(EnumCommonDataFactor.TYPE_150.getCode().equals(commonCode)){
-                ret = AdzngssqEnumFactor.TYPE6;
-            }
-        }
-
-        return ret;
-    }
-
-    public static EnumCommonDataFactor  toCommonFactor(String adzncode){
-        EnumCommonDataFactor ret = null;
-            if(AdzngssqEnumFactor.TYPE4.getCode().equals(adzncode)){
-                ret = EnumCommonDataFactor.TYPE_106;
-            }else if(AdzngssqEnumFactor.TYPE5.getCode().equals(adzncode)){
-                ret = EnumCommonDataFactor.TYPE_107;
-            }else if(AdzngssqEnumFactor.TYPE1.getCode().equals(adzncode)){
-                ret = EnumCommonDataFactor.TYPE_101;
-            }else if(AdzngssqEnumFactor.TYPE2.getCode().equals(adzncode)){
-                ret = EnumCommonDataFactor.TYPE_102;
-            }else if(AdzngssqEnumFactor.TYPE3.getCode().equals(adzncode)){
-                ret = EnumCommonDataFactor.TYPE_301;
-            }else if(AdzngssqEnumFactor.TYPE6.getCode().equals(adzncode)){
-                ret = EnumCommonDataFactor.TYPE_150;
-            }
-        return ret;
-    }
-
-}

+ 50 - 0
src/main/java/com/yunfeiyun/agmp/iot/common/enums/EnumAdznGssqElement.java

@@ -0,0 +1,50 @@
+package com.yunfeiyun.agmp.iot.common.enums;
+
+public enum EnumAdznGssqElement {
+    DATAAT("101", "DataAT","大气温度","℃"),
+    DATAATS("102", "DataATS","大气湿度","%RH"),
+    DATAATM("127", "DataATM","大气压强","hpa"),
+    DataTEMPSTR("106", "DataTEMPStr","土壤温度","°C"),
+    DataSWCSTR("107", "DataSWCStr","土壤湿度","%RH");
+
+    private String eNum;
+    private String eName;
+    private String cName;
+    private String eUnit;
+
+    private EnumAdznGssqElement(String eNum, String eName, String cName, String eUnit) {
+        this.eNum = eNum;
+        this.eName = eName;
+        this.cName = cName;
+        this.eUnit = eUnit;
+    }
+
+    public String geteNum() {
+        return eNum;
+    }
+
+    public String geteName() {
+        return eName;
+    }
+
+    public String getcName() {
+        return cName;
+    }
+
+    public String geteUnit() {
+        return eUnit;
+    }
+
+    public static EnumAdznGssqElement findEnumByeName(String eName) {
+        for (EnumAdznGssqElement statusEnum : EnumAdznGssqElement.values()) {
+            if (statusEnum.geteName().equals(eName)) {
+                return statusEnum;
+            }
+        }
+        return null;
+    }
+
+    public static String getAddress(String eName, String eKey){
+        return eName + "-" + eKey;
+    }
+}

+ 2 - 2
src/main/java/com/yunfeiyun/agmp/iot/common/enums/EnumCommonDataFactor.java

@@ -11,7 +11,7 @@ public enum EnumCommonDataFactor {
     TYPE_2("humidity","湿度","%RH"),
     TYPE_101("air_temperature","大气温度","℃"),
     TYPE_102("air_humidity","大气湿度","%RH"),
-    TYPE_103("air_pressure_analog","模拟气压","hpa"),
+    TYPE_103("air_pressure_analog","大气压强","hpa"),
     TYPE_104("rainfall","雨量","mm"),
     TYPE_105("radiation","简易总辐射","w/㎡"),
     TYPE_106("soil_temperature","土壤温度","°C"),
@@ -35,7 +35,7 @@ public enum EnumCommonDataFactor {
     TYPE_124("voltage","电压","V"),
     TYPE_125("uv","紫外线","W/㎡"),
     TYPE_126("dust","粉尘","ug/m³"),
-    TYPE_127("air_pressure_digital","数字气压","hpa"),
+    TYPE_127("air_pressure_digital","大气压强","hpa"),
     TYPE_128("ph","PH值",""),
     TYPE_129("wind_velocity_max","最大风速","m/s"),
     TYPE_130("wind_velocity_avg","平均风速","m/s"),

+ 33 - 35
src/main/java/com/yunfeiyun/agmp/iot/common/enums/element/YfQxzElementEnum.java

@@ -1,11 +1,16 @@
-package com.yunfeiyun.agmp.iot.common.enums.element;
+package com.yunfeiyun.agmp.iot.common.enums;
 
-import com.yunfeiyun.agmp.iot.common.enums.YfqxzEnumFactor;
+/**
+ * 云飞气象站 墒情站
+ * 新普惠MQTT 协议设备 共用此要素
+ *
+ * 注意:每个项目 需要根据 实际安装的设备的enum定义 来重新整理
+ */
+public enum EnumYfQxzElement {
 
-public enum YfQxzElementEnum {
     TYPE1("101","大气温度","℃"),
     TYPE2("102","大气湿度","%RH"),
-    TYPE3("103","模拟气压","hpa"),
+    TYPE3("103","大气压强","hpa"),
     TYPE4("104","雨量","mm"),
     TYPE5("105","简易总辐射","w/㎡"),
     TYPE6("106","土壤温度","°C"),
@@ -29,7 +34,7 @@ public enum YfQxzElementEnum {
     TYPE27("124","电压","V"),
     TYPE28("125","紫外线","w/㎡"),
     TYPE29("126","粉尘","ug/m3"),
-    TYPE30("127","数字气压","hpa"),
+    TYPE30("127","大气压强","hpa"),
     TYPE31("128","PH值",""),
     TYPE32("129","最大风速","m/s"),
     TYPE33("130","平均风速","m/s"),
@@ -51,7 +56,7 @@ public enum YfQxzElementEnum {
     TYPE49("147","PH",""),
     TYPE50("148","溶解氧","mg/l"),
     TYPE51("149","氨氮","mg/l"),
-    //TYPE52("150","电导率","mS/cm"),
+    TYPE52("150","电导率","mS/cm"),
     TYPE53("151","浊度","NTU"),
     TYPE54("152","能见度","m"),
     TYPE55("153","氨气","ppm"),
@@ -64,50 +69,43 @@ public enum YfQxzElementEnum {
     TYPE62("160","叶面湿度","%RH"),
     TYPE63("161","茎秆","cm"),
     TYPE64("162","负氧离子","个/cm3"),
-    TYPE65("201","土壤水势","KPa"),
+    TYPE65("201","土壤水势","KPA"),
     TYPE66("202","露点温度","°C"),
     TYPE67("203","PM100","ug/m³"),
-    //TYPE68("208","照度","Lux"),
+    TYPE68("208","照度","Lux"),
     TYPE69("224","信号强度",""),
     TYPE70("228","水质pH","Lux"),
     TYPE71("256","悬浮物","mg/L"),
     TYPE72("257","透明度","NTU"),
-    TYPE73("211","电导率","uS/cm"),
-    TYPE74("220","土壤电导率","uS/cm"),
-    TYPE75("232","二氧化氮","PPM");
+    TYPE73("211","电导率","mS/cm"),
+    TYPE74("220","土壤电导率","mS/cm")/*新浦会-土壤水势*/,
+    TYPE75("277","土壤水势","KPa")/*新浦会-土壤水势,  跟201重复了,废弃201 */;
 
+    private String eNum;
+    private String cName;
+    private String eUnit;
 
-    private String code;
-    private String name;
-
-    private String unit;
-
-    private YfQxzElementEnum(String code, String name, String unit){
-        this.code = code;
-        this.name = name;
-        this.unit = unit;
+    private EnumYfQxzElement(String eNum, String cName, String eUnit){
+        this.eNum = eNum;
+        this.cName = cName;
+        this.eUnit = eUnit;
     }
 
-    public String getCode(){
-        return this.code;
-    }
-    public String getName(){
-        return this.name;
+    public String geteNum() {
+        return eNum;
     }
 
-    public String getUnit(){
-        return this.unit;
+    public String getcName() {
+        return cName;
     }
 
+    public String geteUnit() {
+        return eUnit;
+    }
 
-    /**
-     * 根据code查找
-     * @param code 枚举code
-     * @return 枚举对象
-     */
-    public static YfqxzEnumFactor findEnumByCode(String code) {
-        for (YfqxzEnumFactor statusEnum : YfqxzEnumFactor.values()) {
-            if (statusEnum.getCode().equals(code)) {
+    public static EnumYfQxzElement findEnumByeNum(String eNum) {
+        for (EnumYfQxzElement statusEnum : EnumYfQxzElement.values()) {
+            if (statusEnum.geteNum().equals(eNum)) {
                 return statusEnum;
             }
         }

+ 2 - 2
src/main/java/com/yunfeiyun/agmp/iot/common/enums/XphEnumFactor.java

@@ -10,7 +10,7 @@ public enum XphEnumFactor {
 
     TYPE1("101","大气温度","℃"),
     TYPE2("102","大气湿度","%RH"),
-    TYPE3("103","模拟气压","hpa"),
+    TYPE3("103","大气压强","hpa"),
     TYPE4("104","雨量","mm"),
     TYPE5("105","简易总辐射","w/㎡"),
     TYPE6("106","土壤温度","°C"),
@@ -34,7 +34,7 @@ public enum XphEnumFactor {
     TYPE27("124","电压","V"),
     TYPE28("125","紫外线","w/㎡"),
     TYPE29("126","粉尘","ug/m3"),
-    TYPE30("127","数字气压","hpa"),
+    TYPE30("127","大气压强","hpa"),
     TYPE31("128","PH值",""),
     TYPE32("129","最大风速","m/s"),
     TYPE33("130","平均风速","m/s"),

+ 2 - 2
src/main/java/com/yunfeiyun/agmp/iot/common/enums/YfqxzEnumFactor.java

@@ -10,7 +10,7 @@ public enum YfqxzEnumFactor {
     // code 每个设备厂商不一样,name 都是固定的,要建立一个通用的 name工具类
     TYPE1("101","大气温度","℃"),
     TYPE2("102","大气湿度","%RH"),
-    TYPE3("103","模拟气压","hpa"),
+    TYPE3("103","大气压强","hpa"),
     TYPE4("104","雨量","mm"),
     TYPE5("105","简易总辐射","w/㎡"),
     TYPE6("106","土壤温度","°C"),
@@ -34,7 +34,7 @@ public enum YfqxzEnumFactor {
     TYPE27("124","电压","V"),
     TYPE28("125","紫外线","w/㎡"),
     TYPE29("126","粉尘","ug/m3"),
-    TYPE30("127","数字气压","hpa"),
+    TYPE30("127","大气压强","hpa"),
     TYPE31("128","PH值",""),
     TYPE32("129","最大风速","m/s"),
     TYPE33("130","平均风速","m/s"),