Ver código fonte

Merge branch 'xinchuang'

# Conflicts:
#	src/main/java/com/fdkankan/modeldemo/utils/ConvertUtil.java
dengsixing 8 meses atrás
pai
commit
465cff9b32

+ 20 - 31
pom.xml

@@ -19,20 +19,6 @@
   <!-- FIXME change it to the project's website -->
   <url>http://www.example.com</url>
 
-  <repositories>
-    <repository>
-      <id>releases</id>
-      <url>http://192.168.0.115:8081/nexus-2.14.2-01/content/repositories/releases/</url>
-    </repository>
-    <repository>
-      <id>snapshots</id>
-      <url>http://192.168.0.115:8081/nexus-2.14.2-01/content/repositories/snapshots/</url>
-    </repository>
-    <repository>
-      <id>nexus-aliyun</id>
-      <url>http://maven.aliyun.com/nexus/content/groups/public</url>
-    </repository>
-  </repositories>
 
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -113,17 +99,23 @@
 <!--      <version>11.2.0.3</version>-->
 <!--    </dependency>-->
 
-    <dependency>
-      <groupId>com.oracle.ojdbc</groupId>
-      <artifactId>ojdbc8</artifactId>
-      <version>19.3.0.0</version>
-    </dependency>
+<!--    <dependency>-->
+<!--      <groupId>com.oracle.ojdbc</groupId>-->
+<!--      <artifactId>ojdbc8</artifactId>-->
+<!--      <version>19.3.0.0</version>-->
+<!--    </dependency>-->
+
+<!--    <dependency>-->
+<!--      <groupId>cn.easyproject</groupId>-->
+<!--      <artifactId>orai18n</artifactId>-->
+<!--      <version>12.1.0.2.0</version>-->
+<!--      <scope>provided</scope>-->
+<!--    </dependency>-->
 
     <dependency>
-      <groupId>cn.easyproject</groupId>
-      <artifactId>orai18n</artifactId>
-      <version>12.1.0.2.0</version>
-      <scope>provided</scope>
+      <groupId>com.chinatower.product.chinatower_visual3d</groupId>
+      <artifactId>vastbase</artifactId>
+      <version>1.0</version>
     </dependency>
 
 
@@ -216,15 +208,12 @@
 
   </build>
 
-  <distributionManagement>
+  <repositories>
     <repository>
-      <id>releases</id>
-      <url>http://192.168.0.115:8081/nexus-2.14.2-01/content/repositories/releases/</url>
+      <id>chinatower</id>
+      <name>铁塔</name>
+      <url>http://10.38.77.5:8081/repository/maven-public/</url>
     </repository>
 
-    <snapshotRepository>
-      <id>snapshots</id>
-      <url>http://192.168.0.115:8081/nexus-2.14.2-01/content/repositories/snapshots/</url>
-    </snapshotRepository>
-  </distributionManagement>
+  </repositories>
 </project>

+ 2 - 0
src/main/java/com/fdkankan/modeldemo/bean/SceneJsonBean.java

@@ -228,5 +228,7 @@ public class SceneJsonBean {
      */
     private JSONObject started;
 
+    private Integer subgroup;
+
 
 }

+ 10 - 0
src/main/java/com/fdkankan/modeldemo/controller/SceneController.java

@@ -2,6 +2,8 @@ package com.fdkankan.modeldemo.controller;
 
 
 import com.fdkankan.modeldemo.bean.ResultData;
+import com.fdkankan.modeldemo.service.SceneConvertLogService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -18,11 +20,19 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("/convert")
 public class SceneController {
 
+    @Autowired
+    private SceneConvertLogService sceneConvertLogService;
+
     @GetMapping(value = "/ping")
     public ResultData ping(){
         return ResultData.ok();
     }
 
+    @GetMapping(value = "/test")
+    public ResultData test(){
+        return ResultData.ok(sceneConvertLogService.list());
+    }
+
 
 
 

+ 3 - 0
src/main/java/com/fdkankan/modeldemo/entity/Scene.java

@@ -57,6 +57,9 @@ public class Scene extends Model<Scene> {
     @TableField("FLOORPLANANGLE")
     private Integer floorplanangle;
 
+    @TableField("SUBGROUP")
+    private Integer subgroup;
+
 
 //    @Override
 //    protected Serializable pkVal() {

+ 3 - 0
src/main/java/com/fdkankan/modeldemo/entity/SceneFileMapping.java

@@ -41,6 +41,9 @@ public class SceneFileMapping extends Model<SceneFileMapping> {
     @TableField("URL")
     private String url;
 
+    @TableField("SUBGROUP")
+    private Integer subgroup;
+
 
 //    @Override
 //    protected Serializable pkVal() {

+ 1 - 1
src/main/java/com/fdkankan/modeldemo/service/SceneFileMappingService.java

@@ -15,6 +15,6 @@ import java.util.List;
  */
 public interface SceneFileMappingService extends IService<SceneFileMapping> {
 
-    List<SceneFileMapping> getByNumAndKey(String num, String key);
+    List<SceneFileMapping> getByNumAndKey(String num, Integer subgroup, String key);
 
 }

+ 2 - 2
src/main/java/com/fdkankan/modeldemo/service/impl/SceneFileMappingServiceImpl.java

@@ -21,7 +21,7 @@ import java.util.List;
 public class SceneFileMappingServiceImpl extends ServiceImpl<SceneFileMappingMapper, SceneFileMapping> implements SceneFileMappingService {
 
     @Override
-    public List<SceneFileMapping> getByNumAndKey(String num, String key) {
-        return this.list(new LambdaQueryWrapper<SceneFileMapping>().eq(SceneFileMapping::getNum, num).eq(SceneFileMapping::getKey, key));
+    public List<SceneFileMapping> getByNumAndKey(String num, Integer subgroup, String key) {
+        return this.list(new LambdaQueryWrapper<SceneFileMapping>().eq(SceneFileMapping::getNum, num).eq(SceneFileMapping::getKey, key).eq(SceneFileMapping::getSubgroup, subgroup));
     }
 }

+ 245 - 61
src/main/java/com/fdkankan/modeldemo/utils/ConvertUtil.java

@@ -14,16 +14,14 @@ import com.fdkankan.modeldemo.entity.Scene;
 import com.fdkankan.modeldemo.entity.SceneFileMapping;
 import com.fdkankan.modeldemo.service.SceneFileMappingService;
 import com.fdkankan.modeldemo.service.SceneService;
+import com.google.common.collect.Lists;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
 import java.io.File;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Component
@@ -36,23 +34,97 @@ public class ConvertUtil {
     private SceneFileMappingService sceneFileMappingService;
     @Resource
     private FdfsUtil fdfsUtil;
+
+    private static String[] convertVisableHandler(JSONArray visibles, Map<Integer, String> uuidMap){
+        int size = visibles.size();
+        String[] visibleArr = new String[size];
+        for(int j = 0; j < size; j++){
+            int index = (Integer)visibles.get(j);
+            String uuid = uuidMap.get(index);
+            visibleArr[j] = uuid;
+        }
+        return visibleArr;
+    }
     public static void main(String[] args) throws Exception {
 
-        String srcPath = args[0];
-        System.out.println(srcPath);
-        String targetPath = args[1];
-        System.out.println(targetPath);
+        String sourcePath = "D:\\test\\";
+        String visionPath = "D:\\test\\images\\vision.txt";
+
+//        String visionStr = FileUtil.readUtf8String(visionPath);
+//        JSONObject visionObj = JSON.parseObject(visionStr);
+//        JSONArray array = visionObj.getJSONArray("sweepLocations");
+//        Map<Integer, String> uuidMap = new HashMap<>();
+//        for(int i = 0; i < array.size(); i++){
+//            JSONObject o = (JSONObject)array.get(i);
+//            uuidMap.put(i, o.getString("uuid"));
+//        }
+//
+//        for(int i = 0; i < array.size(); i++){
+//            JSONObject o = (JSONObject)array.get(i);
+//            JSONArray visibles = o.getJSONArray("visibles");
+//            o.put("visibles", convertVisableHandler(visibles,uuidMap));
+//
+//            JSONArray visibles2 = o.getJSONArray("visibles2");
+//            o.put("visibles2", convertVisableHandler(visibles2,uuidMap));
+//
+//            JSONArray visibles3 = o.getJSONArray("visibles3");
+//            o.put("visibles3", convertVisableHandler(visibles3,uuidMap));
+//        }
+//
+//        FileUtil.writeUtf8String(JSON.toJSONString(visionObj), visionPath);
+
+
+        //生成vison.modeldata
+        String visionStr = FileUtil.readUtf8String(sourcePath + "images/vision.txt");
+        JSONObject visionObj = JSON.parseObject(visionStr);
+        JSONArray sweepLocationsArr = visionObj.getJSONArray("sweepLocations");
+        //分割中高低点位
+        Map<Integer, List<String>> visibleMap = new HashMap();
+        Map<Integer, List<JSONObject>> subgroupMap = new HashMap<>();
+        for (Object item : sweepLocationsArr) {
+            JSONObject obj = (JSONObject) item;
+            int subgroup = obj.getIntValue("subgroup");
+            List<JSONObject> jsonObjects = subgroupMap.get(subgroup);
+            if(jsonObjects == null){
+                jsonObjects = new ArrayList<>();
+                subgroupMap.put(subgroup, jsonObjects);
+            }
+            obj.put("subgroup", 0);
+            jsonObjects.add(obj);
+
+            List<String> visible = visibleMap.get(subgroup);
+            if(visible == null){
+                visible = new ArrayList<>();
+                visibleMap.put(subgroup, visible);
+            }
+            visible.add(obj.getString("uuid"));
+        }
 
-//        convert(srcPath, targetPath);
-//		scanner.close();
+        for (Integer subgroup : subgroupMap.keySet()) {
+            List<JSONObject> jsonObjects = subgroupMap.get(subgroup);
+            List<String> uuidList = visibleMap.get(subgroup);
+            for (JSONObject jsonObject : jsonObjects) {
+                String uuid = jsonObject.getString("uuid");
+                List<String> list = Lists.newArrayList(uuidList);
+                list.remove(uuid);
+                jsonObject.put("visibles",list);
+                jsonObject.put("visibles2",list);
+                jsonObject.put("visibles3",list);
+            }
+        }
+
+        //如果是高中低场景,需要上传三份数据
+        for (Integer subgroup : subgroupMap.keySet()) {
+            //拆分vision.txt
+            String visionTxtPath = sourcePath + "images/vision" + "-" + subgroup + ".txt";
+            String visionmodeldataPath = sourcePath + "images/visionmodeldata" + "-" + subgroup + ".txt";
+            JSONObject visionTxtJson = new JSONObject();
+            visionTxtJson.put("sweepLocations", subgroupMap.get(subgroup));
+            FileUtil.writeUtf8String(visionTxtJson.toJSONString(), visionTxtPath);
+            CreateObjUtil.convertTxtToVisionmodeldata(visionTxtPath, visionmodeldataPath);
+        }
     }
 
-    /**
-     *
-     * @param sourcePath 原始资源目录
-     * @param targetPath 目标资源目录
-     * @return boolean true-转换成功  false-转换失败
-     */
     public Map<String, String> convert(String sourcePath, String num) throws Exception {
 
         Map<String, String> map = new HashMap<>();
@@ -117,16 +189,44 @@ public class ConvertUtil {
         map.put(damKey, damPath);
 
         //复制文件
-        if(FileUtil.exist(sourcePath + "data/" + "floorplan.json")){
-            String floorplanJson = FileUtil.readUtf8String(sourcePath + "data/" + "floorplan.json");
+        JSONObject standarFloor = null;
+        Integer maxWallNum = 0;
+        if(FileUtil.exist(sourcePath + "data/floorplan.json")){
+            String floorplanJson = FileUtil.readUtf8String(sourcePath + "data/floorplan.json");
             JSONObject jsonObject = JSON.parseObject(floorplanJson);
             Integer currentId = jsonObject.getInteger("currentId");
             if(Objects.nonNull(currentId) && currentId == 0){
                 FileUtil.del(sourcePath + "data/" + "floorplan.json");
+            }else{
+                JSONArray floors = jsonObject.getJSONArray("floors");
+                for (Object floor : floors) {
+                    JSONObject floorObj = (JSONObject) floor;
+                    Map walls = floorObj.getObject("walls", Map.class);
+                    if(walls.keySet().size() > maxWallNum){
+                        maxWallNum = walls.keySet().size();
+                        standarFloor = floorObj;
+                    }
+                }
+                //切割,按subgroup分成多份
+                for (Object floor : floors) {
+                    JSONObject floorObj = (JSONObject) floor;
+                    Integer subgroup = floorObj.getIntValue("subgroup");
+                    floorObj.put("walls", standarFloor.getJSONObject("walls"));
+                    floorObj.put("points", standarFloor.getJSONObject("points"));
+                    floorObj.put("subgroup", 0);
+                    floorObj.put("id", 0);
+                    jsonObject.replace("floors", Arrays.asList(floorObj));
+                    String floorplanPath = sourcePath + "data/floorplan" + "-" + subgroup + ".json";
+                    FileUtil.writeUtf8String(jsonObject.toJSONString(), floorplanPath);
+                }
             }
         }
+
         List<File> dataFiles = FileUtil.loopFiles(sourcePath + "data/");
         for (File dataFile : dataFiles) {
+            if(dataFile.getAbsolutePath().contains("floorplan")){
+                continue;
+            }
             map.put(dataFile.getAbsolutePath().replace(sourcePath + "data/", dataViewPath) , dataFile.getAbsolutePath());
         }
 
@@ -152,71 +252,155 @@ public class ConvertUtil {
             });
 
         }
-        map.put(imgViewPath + "vision.txt", sourcePath + "images/vision.txt");
 //            FileUtil.copy(sourcePath + "images/vision.txt", targetImagePath + "/vision.txt", true);
+        //单独上传一份全的vision.txt
+        this.uploadVisionTxt(num, sourcePath + "images/vision.txt");
 
         //生成vison.modeldata
-        CreateObjUtil.convertTxtToVisionmodeldata(sourcePath + "images/vision.txt", sourcePath + "images/visionmodeldata.txt");
-        map.put(imgViewPath + "vision.modeldata", sourcePath + "images/visionmodeldata.txt");
+        String visionStr = FileUtil.readUtf8String(sourcePath + "images/vision.txt");
+        JSONObject visionObj = JSON.parseObject(visionStr);
+        JSONArray sweepLocationsArr = visionObj.getJSONArray("sweepLocations");
+        //分割中高低点位
+        Map<Integer, List<String>> visibleMap = new HashMap();
+        Map<Integer, List<JSONObject>> subgroupMap = new HashMap<>();
+        for (Object item : sweepLocationsArr) {
+            JSONObject obj = (JSONObject) item;
+            int subgroup = obj.getIntValue("subgroup");
+            List<JSONObject> jsonObjects = subgroupMap.get(subgroup);
+            if(jsonObjects == null){
+                jsonObjects = new ArrayList<>();
+                subgroupMap.put(subgroup, jsonObjects);
+            }
+            obj.put("subgroup", 0);
+            jsonObjects.add(obj);
+
+            List<String> visible = visibleMap.get(subgroup);
+            if(visible == null){
+                visible = new ArrayList<>();
+                visibleMap.put(subgroup, visible);
+            }
+            visible.add(obj.getString("uuid"));
+        }
+
+        for (Integer subgroup : subgroupMap.keySet()) {
+            List<JSONObject> jsonObjects = subgroupMap.get(subgroup);
+            List<String> uuidList = visibleMap.get(subgroup);
+            for (JSONObject jsonObject : jsonObjects) {
+                String uuid = jsonObject.getString("uuid");
+                List<String> list = Lists.newArrayList(uuidList);
+                list.remove(uuid);
+                jsonObject.put("visibles",list);
+                jsonObject.put("visibles2",list);
+                jsonObject.put("visibles3",list);
+            }
+        }
+
 
         //生成场景标题
         String title = this.getTitle(num, sourcePath);
 
-        //生成scene.json
-        SceneJsonBean sceneJsonBean = this.genSceneJson(num, title);
-        FileUtil.writeUtf8String(JSON.toJSONString(sceneJsonBean), sourcePath + "data/scene.json");
-        map.put(dataViewPath + "scene.json", sourcePath + "data/scene.json");
-
-        String finalRoomId = num;
-        map.keySet().stream().forEach(key->{
-            List<SceneFileMapping> sceneFileMappingList = sceneFileMappingService.getByNumAndKey(finalRoomId, key);
-            if(CollUtil.isNotEmpty(sceneFileMappingList)){
-                List<String> deleteIds = sceneFileMappingList.stream().map(v -> v.getId()).collect(Collectors.toList());
-                sceneFileMappingService.removeByIds(deleteIds);
+        //如果是高中低场景,需要上传三份数据
+        for (Integer subgroup : subgroupMap.keySet()) {
+
+            //拆分vision.txt
+            String visionTxtPath = sourcePath + "images/vision" + "-" + subgroup + ".txt";
+            String visionmodeldataPath = sourcePath + "images/visionmodeldata" + "-" + subgroup + ".txt";
+            JSONObject visionTxtJson = new JSONObject();
+            visionTxtJson.put("sweepLocations", subgroupMap.get(subgroup));
+            FileUtil.writeUtf8String(visionTxtJson.toJSONString(), visionTxtPath);
+            CreateObjUtil.convertTxtToVisionmodeldata(visionTxtPath, visionmodeldataPath);
+            map.put(imgViewPath + "vision.modeldata", visionmodeldataPath);
+            map.put(imgViewPath + "vision.txt", visionTxtPath);
+
+            //拆分floorplan.json
+            String floorplanPath = sourcePath + "data/floorplan" + "-" + subgroup + ".json";
+            if(FileUtil.exist(floorplanPath)){
+                map.put(dataViewPath + "floorplan.json", floorplanPath);
             }
-            SceneFileMapping sceneFileMapping = new SceneFileMapping();
-            Map<String, String> mapping = fdfsUtil.uploadFile(map.get(key));
-            sceneFileMapping.setNum(finalRoomId);
-            sceneFileMapping.setFileid(mapping.get("file_id"));
-            sceneFileMapping.setUrl(mapping.get("http_url"));
-            sceneFileMapping.setKey(key);
-            sceneFileMappingService.save(sceneFileMapping);
-        });
-
-        List<Scene> list = sceneService.list(new LambdaQueryWrapper<Scene>().eq(Scene::getNum, num));
-//        Scene scene = sceneService.getByNum(num);
-        Scene scene = null;
-        if(CollUtil.isEmpty(list)){
-            scene = new Scene();
-        }else{
-            if(list.size() > 1){
-                sceneService.remove(new LambdaQueryWrapper<Scene>().eq(Scene::getNum, num));
+
+            //生成scene.json
+            String sceneJsonPath = sourcePath + "data/scene" + "-" + subgroup + ".json";
+            SceneJsonBean sceneJsonBean = this.genSceneJson(num, title, subgroup);
+            FileUtil.writeUtf8String(JSON.toJSONString(sceneJsonBean), sceneJsonPath);
+            map.put(dataViewPath + "scene.json", sceneJsonPath);
+
+            String finalRoomId = num;
+            map.keySet().stream().forEach(key->{
+                List<SceneFileMapping> sceneFileMappingList = sceneFileMappingService.getByNumAndKey(finalRoomId, subgroup, key);
+                if(CollUtil.isNotEmpty(sceneFileMappingList)){
+                    List<String> deleteIds = sceneFileMappingList.stream().map(v -> v.getId()).collect(Collectors.toList());
+                    sceneFileMappingService.removeByIds(deleteIds);
+                }
+                SceneFileMapping sceneFileMapping = new SceneFileMapping();
+                Map<String, String> mapping = fdfsUtil.uploadFile(map.get(key));
+                sceneFileMapping.setNum(finalRoomId);
+                sceneFileMapping.setFileid(mapping.get("file_id"));
+                sceneFileMapping.setUrl(mapping.get("http_url"));
+                sceneFileMapping.setKey(key);
+                sceneFileMapping.setSubgroup(subgroup);
+                sceneFileMappingService.save(sceneFileMapping);
+            });
+
+
+            List<Scene> list = sceneService.list(new LambdaQueryWrapper<Scene>().eq(Scene::getNum, num).eq(Scene::getSubgroup, subgroup));
+            Scene scene = null;
+            if(CollUtil.isEmpty(list)){
                 scene = new Scene();
             }else{
-                scene = list.get(0);
+                if(list.size() > 1){
+                    sceneService.remove(new LambdaQueryWrapper<Scene>().eq(Scene::getNum, num));
+                    scene = new Scene();
+                }else{
+                    scene = list.get(0);
+                }
             }
+
+            scene.setTitle(title);
+            scene.setNum(num);
+            scene.setFloorlogosize(100);
+            scene.setScenekind("pano");
+            scene.setSceneresolution("4k");
+            scene.setScenefrom("realsee");
+            scene.setModelkind("dam");
+            scene.setFloorplanangle(0);
+            scene.setSubgroup(subgroup);
+            sceneService.saveOrUpdate(scene);
         }
 
-        scene.setTitle(title);
-        scene.setNum(num);
-        scene.setFloorlogosize(100);
-        scene.setScenekind("pano");
-        scene.setSceneresolution("4k");
-        scene.setScenefrom("realsee");
-        scene.setModelkind("dam");
-        scene.setFloorplanangle(0);
-        sceneService.saveOrUpdate(scene);
+
+//        map.put(imgViewPath + "vision.modeldata", sourcePath + "images/visionmodeldata.txt");
+
+
+
+
 
         return map;
     }
 
-    private SceneJsonBean genSceneJson(String roomId, String title){
+    private void uploadVisionTxt(String num, String localVisionTxtPath){
+        String key = String.format(Constant.IMG_VIEW_PATH, num) + "vision.txt";
+        List<SceneFileMapping> sceneFileMappingList =  sceneFileMappingService.list(new LambdaQueryWrapper<SceneFileMapping>().eq(SceneFileMapping::getKey, key).eq(SceneFileMapping::getNum, num).eq(SceneFileMapping::getSubgroup, -1));
+        if(CollUtil.isNotEmpty(sceneFileMappingList)){
+            List<String> deleteIds = sceneFileMappingList.stream().map(v -> v.getId()).collect(Collectors.toList());
+            sceneFileMappingService.removeByIds(deleteIds);
+        }
+        SceneFileMapping sceneFileMapping = new SceneFileMapping();
+        Map<String, String> mapping = fdfsUtil.uploadFile(localVisionTxtPath);//sourcePath + "images/vision.txt"
+        sceneFileMapping.setNum(num);
+        sceneFileMapping.setFileid(mapping.get("file_id"));
+        sceneFileMapping.setUrl(mapping.get("http_url"));
+        sceneFileMapping.setKey(key);
+        sceneFileMapping.setSubgroup(-1);
+        sceneFileMappingService.save(sceneFileMapping);
+    }
+
+    private SceneJsonBean genSceneJson(String roomId, String title, Integer subgroup){
         SceneEditControlsBean sceneEditControlsBean = SceneEditControlsBean.builder()
                 .showDollhouse(1).showMap(1).showPanorama(1).showVR(1).showTitle(1).showFloorplan(1).build();
 
         SceneJsonBean sceneJsonBean = SceneJsonBean.builder()
                 .title(title).description(null)
-                .num(roomId).floorLogoSize(100).sceneKind("pano")
+                .num(roomId).subgroup(subgroup).floorLogoSize(100).sceneKind("pano")
                 .sceneResolution("4k").sceneFrom("realsee")
                 .modelKind("dam").floorPlanAngle(0).controls(sceneEditControlsBean).build();
 

+ 25 - 11
src/main/java/com/fdkankan/modeldemo/utils/CreateObjUtil.java

@@ -10,8 +10,7 @@ import com.google.protobuf.TextFormat;
 import lombok.extern.slf4j.Slf4j;
 
 import java.io.*;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
 
 @Slf4j
 public class CreateObjUtil {
@@ -171,28 +170,43 @@ public class CreateObjUtil {
 		for (Object o : sweepLocationArr) {
 			JSONObject sweepLocationObj = (JSONObject)o;
 			JSONArray visibles =  sweepLocationObj.getJSONArray("visibles");
-			int[] visiblesArr = new int[visibles.size()];
+//			int[] visiblesArr = new int[visibles.size()];
+			List<Integer> visiblesList = new ArrayList<>();
 			for(int i = 0; i < visibles.size(); i++){
-				visiblesArr[i] = uuidIndexMap.get(visibles.get(i));
+				Integer index = uuidIndexMap.get(visibles.get(i));
+				if(Objects.isNull(index)){
+					continue;
+				}
+				visiblesList.add(index);
 			}
-			sweepLocationObj.put("visibles", visiblesArr);
+			sweepLocationObj.put("visibles", visiblesList);
 
 			if(sweepLocationObj.containsKey("visibles2")){
 				JSONArray visibles2 =  sweepLocationObj.getJSONArray("visibles2");
-				int[] visiblesArr2 = new int[visibles2.size()];
+//				int[] visiblesArr2 = new int[visibles2.size()];
+				List<Integer> visibles2List = new ArrayList<>();
 				for(int i = 0; i < visibles2.size(); i++){
-					visiblesArr2[i] = uuidIndexMap.get(visibles2.get(i));
+					Integer index = uuidIndexMap.get(visibles2.get(i));
+					if(Objects.isNull(index)){
+						continue;
+					}
+					visibles2List.add(index);
 				}
-				sweepLocationObj.put("visibles2", visiblesArr2);
+				sweepLocationObj.put("visibles2", visibles2List);
 			}
 
 			if(sweepLocationObj.containsKey("visibles3")){
 				JSONArray visibles3 =  sweepLocationObj.getJSONArray("visibles3");
-				int[] visiblesArr3 = new int[visibles3.size()];
+//				int[] visiblesArr3 = new int[visibles3.size()];
+				List<Integer> visibles3List = new ArrayList<>();
 				for(int i = 0; i < visibles3.size(); i++){
-					visiblesArr3[i] = uuidIndexMap.get(visibles3.get(i));
+					Integer index = uuidIndexMap.get(visibles3.get(i));
+					if(Objects.isNull(index)){
+						continue;
+					}
+					visibles3List.add(index);
 				}
-				sweepLocationObj.put("visibles3", visiblesArr3);
+				sweepLocationObj.put("visibles3", visibles3List);
 			}
 
 		}

+ 4 - 4
src/main/resources/application-dev.yml

@@ -16,10 +16,10 @@ spring:
     #开启消息投递确认机制
     publisher-confirm-type: correlated
   datasource:
-    url: jdbc:oracle:thin:@//10.180.41.39:1521/resdb
-    username: RES_VR
-    password: IDCqawsed@123.
-    driver-class-name: oracle.jdbc.OracleDriver
+    url: jdbc:postgresql://10.180.145.98:5432/chinatower_vr
+    username: res_vr
+    password: qawsed@123.
+    driver-class-name: org.postgresql.Driver
     hikari:
       maximum-pool-size: 20 #连接池最大连接数
       minimum-idle: 5 #连接池最小连接数

+ 4 - 4
src/main/resources/application-preprod.yml

@@ -16,10 +16,10 @@ spring:
     #开启消息投递确认机制
     publisher-confirm-type: correlated
   datasource:
-    url: jdbc:oracle:thin:@//10.38.52.243:1521/res
-    username: RES_VR
-    password: qawsed@123.
-    driver-class-name: oracle.jdbc.OracleDriver
+    url: jdbc:postgresql://10.161.32.224:5432/chinatower_vr
+    username: res_vr
+    password: Qwer!@#123
+    driver-class-name: org.postgresql.Driver
     hikari:
       maximum-pool-size: 20 #连接池最大连接数
       minimum-idle: 5 #连接池最小连接数

+ 4 - 4
src/main/resources/application-prod.yml

@@ -16,10 +16,10 @@ spring:
     #开启消息投递确认机制
     publisher-confirm-type: correlated
   datasource:
-    url: jdbc:oracle:thin:@//192.168.29.122:1521/resdb
-    username: RES_VR
-    password: qawsed@123.
-    driver-class-name: oracle.jdbc.OracleDriver
+    url: jdbc:postgresql://10.159.32.174:5432/chinatower_vr
+    username: res_vr
+    password: Qwer!@#123
+    driver-class-name: org.postgresql.Driver
     hikari:
       maximum-pool-size: 20 #连接池最大连接数
       minimum-idle: 5 #连接池最小连接数

+ 4 - 4
src/main/resources/application-test.yml

@@ -16,10 +16,10 @@ spring:
     #开启消息投递确认机制
     publisher-confirm-type: correlated
   datasource:
-    url: jdbc:oracle:thin:@//10.180.41.39:1521/resdb
+    url: jdbc:postgresql://10.190.134.143:5432/chinatower_vr?currentSchema=res_vr
     username: RES_VR
-    password: IDCqawsed@123.
-    driver-class-name: oracle.jdbc.OracleDriver
+    password: Qwer!@#123
+    driver-class-name: org.postgresql.Driver
     hikari:
       maximum-pool-size: 20 #连接池最大连接数
       minimum-idle: 5 #连接池最小连接数
@@ -28,7 +28,7 @@ spring:
       max-lifetime: 1800000
       login-timeout: 60000
       pool-name: MyHikariCP
-      connection-test-query: SELECT 1 FROM DUAL
+      connection-test-query: SELECT 1
 
 mybatis-plus:
   mapper-locations: classpath:mapper/*Mapper.xml