zhaiyifei 8 месяцев назад
Родитель
Сommit
118c9f7115

+ 34 - 9
src/main/java/com/yunfeiyun/agmp/iot/common/util/dev/RunHaoSfElementUtil.java

@@ -3,10 +3,7 @@ package com.yunfeiyun.agmp.iot.common.util.dev;
 import com.yunfeiyun.agmp.iot.common.domain.IotSfElementfactor;
 import com.yunfeiyun.agmp.iot.common.enums.EnumSfElementType;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 public class RunHaoSfElementUtil {
 
@@ -146,7 +143,7 @@ public class RunHaoSfElementUtil {
         }
 
         sfElementfactor.setSfType(elementType.getCode());
-        sfElementfactor.setSfName(elementType.getName());
+        sfElementfactor.setSfName(sfName);
         sfElementfactor.setSfDisplayname(sfName);
         sfElementfactor.setSfCode(key);
 
@@ -181,7 +178,7 @@ public class RunHaoSfElementUtil {
         }
 
         sfElementfactor.setSfType(elementType.getCode());
-        sfElementfactor.setSfName(elementType.getName());
+        sfElementfactor.setSfName(sfName);
         sfElementfactor.setSfDisplayname(sfName);
         sfElementfactor.setSfCode(key);
 
@@ -216,7 +213,7 @@ public class RunHaoSfElementUtil {
         }
 
         sfElementfactor.setSfType(elementType.getCode());
-        sfElementfactor.setSfName(elementType.getName());
+        sfElementfactor.setSfName(sfName);
         sfElementfactor.setSfDisplayname(sfName);
         sfElementfactor.setSfCode(key);
 
@@ -251,7 +248,7 @@ public class RunHaoSfElementUtil {
         }
 
         sfElementfactor.setSfType(elementType.getCode());
-        sfElementfactor.setSfName(elementType.getName());
+        sfElementfactor.setSfName(sfName);
         sfElementfactor.setSfDisplayname(sfName);
         sfElementfactor.setSfCode(key);
 
@@ -278,7 +275,7 @@ public class RunHaoSfElementUtil {
 
             IotSfElementfactor sfElementfactor = new IotSfElementfactor();
             sfElementfactor.setSfType(EnumSfElementType.SENSOR.getCode());
-            sfElementfactor.setSfName(EnumSfElementType.SENSOR.getName());
+            sfElementfactor.setSfName(sfName);
             sfElementfactor.setSfDisplayname(sfName);
             sfElementfactor.setSfCode(sfCode);
 
@@ -287,4 +284,32 @@ public class RunHaoSfElementUtil {
 
         return factorList;
     }
+
+    public static IotSfElementfactor getElementFactor(String sfType, String sfCode) {
+        EnumSfElementType enumSfElementType = EnumSfElementType.findEnumByCode(sfType);
+        if(enumSfElementType == null){
+            return null;
+        }
+        Map<String, EnumSfElementType> sfPumpTypeMap = getPumpTypeMap();
+        Map<String, EnumSfElementType> sfValveTypeMap = getValveTypeMap();
+        Map<String, EnumSfElementType> sfSensorTypeMap = getSensorTypeMap();
+        Map<String, EnumSfElementType> sfGroupTypeMap = getGroupTypeMap();
+
+        Set<EnumSfElementType> pumpTypeSet = new HashSet<>(sfPumpTypeMap.values());
+        Set<EnumSfElementType> valveTypeSet = new HashSet<>(sfValveTypeMap.values());
+        Set<EnumSfElementType> sensorTypeSet = new HashSet<>(sfSensorTypeMap.values());
+        Set<EnumSfElementType> groupTypeSet = new HashSet<>(sfGroupTypeMap.values());
+
+        IotSfElementfactor iotSfElementfactor = null;
+        if(pumpTypeSet.contains(enumSfElementType)){
+            iotSfElementfactor = getPumpElementFactor(sfCode);
+        }else if(valveTypeSet.contains(enumSfElementType)){
+            iotSfElementfactor = getValveElementFactor(sfCode);
+        }else if(sensorTypeSet.contains(enumSfElementType)){
+            iotSfElementfactor = getSensorElementFactor(sfCode);
+        }else if(groupTypeSet.contains(enumSfElementType)){
+            iotSfElementfactor = getGroupElementFactor(sfCode);
+        }
+        return iotSfElementfactor;
+    }
 }