Explorar o código

带知象用SPLIT_V33,不带知象用SPLIT_V16

dengsixing hai 6 días
pai
achega
73d40f2e53

+ 2 - 1
src/main/java/com/fdkankan/contro/service/impl/BuildServiceImpl.java

@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.fdkankan.contro.service.IBuildService;
+import com.fdkankan.contro.util.ScenePluginUtil;
 import com.fdkankan.model.enums.ModelTypeEnums;
 import com.fdkankan.model.utils.ComputerUtil;
 import com.fdkankan.rabbitmq.bean.BuildSceneCallMessage;
@@ -65,7 +66,7 @@ public class BuildServiceImpl implements IBuildService {
                 }
                 if(location == 8){//四维深巡
                     splitType = "SPLIT_V16";
-                    if(fdageData.getIntValue("zxState") == 1){//带知象光电
+                    if(ScenePluginUtil.hasOBPlugin(fdageData)){//带知象光电
                         splitType = "SPLIT_V33";
                     }
                 }

+ 18 - 0
src/main/java/com/fdkankan/contro/util/ScenePluginUtil.java

@@ -0,0 +1,18 @@
+package com.fdkankan.contro.util;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.common.constant.CommonStatus;
+import com.fdkankan.contro.constant.ScenePlugin;
+
+public class ScenePluginUtil {
+
+    public static boolean hasOBPlugin(JSONObject dataFdage) {
+        return dataFdage.getJSONArray("plugin")
+                .stream()
+                .map(obj -> ((JSONObject) obj).getString("name"))
+                .anyMatch(name -> name != null && name.startsWith(ScenePlugin.OB.code()))//新的app版本是以数组元素的结构记录插件
+        || dataFdage.getIntValue("zxState") == CommonStatus.YES.code().intValue();//旧版本app以zxState字段标识是否使用了知像光电插件
+    }
+
+
+}