Переглянути джерело

floorplan_user.json生成floorplan.json 增加id、name、subgroup字段

dsx 2 роки тому
батько
коміт
db4715c3bb

+ 1 - 1
src/main/java/com/fdkankan/job/job/FloorPanUserHandler.java

@@ -46,7 +46,7 @@ public class FloorPanUserHandler {
     private ISceneEditInfoService sceneEditInfoService;
 
     @XxlJob("floorPanUser")
-    private void repairModelKind(){
+    private void floorPanUser(){
         XxlJobHelper.log("floorPanUser start.....");
 
         List<String> faildNumList = new ArrayList<>();

+ 31 - 4
src/main/java/com/fdkankan/job/job/FloorpanHandler.java

@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fdkankan.common.util.FileUtils;
@@ -23,6 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.io.File;
+import java.nio.charset.StandardCharsets;
 import java.util.*;
 
 /**
@@ -45,7 +47,7 @@ public class FloorpanHandler {
     private FYunFileServiceInterface fYunFileService;
 
     @XxlJob("createFloorpan")
-    private void repairModelKind(){
+    private void createFloorpan(){
         XxlJobHelper.log("createFloorpan start.....");
 
         List<String> faildNumList = new ArrayList<>();
@@ -71,7 +73,6 @@ public class FloorpanHandler {
                     String dataViewPath = String.format(UploadFilePath.DATA_VIEW_PATH, num);
                     String floorplanCadPath = String.format(ConstantFilePath.SCENE_DATA_PATH_V4, num) + "floorplan_cad.json";
                     ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(plus.getId());
-                    String dataSource = scenePlusExt.getDataSource();
                     fYunFileService.downloadFile(dataViewPath + "floorplan_cad.json", floorplanCadPath);
                     if (!new File(floorplanCadPath).exists()) {
                         throw new Exception("生成floorplan.json失败,cadPath:" + floorplanCadPath);
@@ -82,18 +83,29 @@ public class FloorpanHandler {
                     }
                     String floorplanJsonPath = dataViewPath + "floorplan.json";
                     fYunFileService.uploadFile(json.toJSONString().getBytes(), floorplanJsonPath);
+                    JSONArray cadFloors = json.getJSONArray("floors");
 
                     //生成用户编辑
                     String editFloorplanUserPath = String.format(UploadFilePath.USER_EDIT_PATH, num) + "floorplan_user.json";
                     String targetEditFloorplanUserPath = String.format(UploadFilePath.USER_EDIT_PATH, num) + "floorplan.json";
                     if(fYunFileService.fileExist(editFloorplanUserPath)){
-                        fYunFileService.copyFileInBucket(editFloorplanUserPath, targetEditFloorplanUserPath);
+                        String fileContent = fYunFileService.getFileContent(editFloorplanUserPath);
+                        JSONObject object = JSON.parseObject(fileContent);
+                        JSONArray floors = object.getJSONArray("floors");
+                        this.set(cadFloors, floors);
+                        fYunFileService.uploadFile(object.toJSONString().getBytes(StandardCharsets.UTF_8), targetEditFloorplanUserPath);
+//                        fYunFileService.copyFileInBucket(editFloorplanUserPath, targetEditFloorplanUserPath);
                     }
 
                     String viewFloorplanUserPath = String.format(UploadFilePath.USER_VIEW_PATH, num) + "floorplan_user.json";
                     String targetViewFloorplanUserPath = String.format(UploadFilePath.USER_VIEW_PATH, num) + "floorplan.json";
                     if(fYunFileService.fileExist(viewFloorplanUserPath)){
-                        fYunFileService.copyFileInBucket(viewFloorplanUserPath, targetViewFloorplanUserPath);
+                        String fileContent = fYunFileService.getFileContent(viewFloorplanUserPath);
+                        JSONObject object = JSON.parseObject(fileContent);
+                        JSONArray floors = object.getJSONArray("floors");
+                        this.set(cadFloors, floors);
+                        fYunFileService.uploadFile(object.toJSONString().getBytes(StandardCharsets.UTF_8), targetViewFloorplanUserPath);
+//                        fYunFileService.copyFileInBucket(viewFloorplanUserPath, targetViewFloorplanUserPath);
                     }
 
                 }catch (Exception e){
@@ -107,5 +119,20 @@ public class FloorpanHandler {
         XxlJobHelper.log("生成floorplan.json失败:" + JSON.toJSONString(faildNumList));
     }
 
+    private void set(JSONArray cadFloors, JSONArray userFloors){
+        for(int i = 0; i < userFloors.size(); i++){
+            Object floor = userFloors.get(i);
+            JSONObject floorJson = (JSONObject) floor;
+            if(Objects.nonNull(floorJson.getInteger("id"))){
+                continue;
+            }
+            Object cadFloor = cadFloors.get(i);
+            JSONObject cadFloorJson = (JSONObject) cadFloor;
+            floorJson.put("id",cadFloorJson.getInteger("id"));
+            floorJson.put("name",cadFloorJson.getString("name"));
+            floorJson.put("subgroup",cadFloorJson.getInteger("subgroup"));
+        }
+    }
+
 
 }