|
@@ -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"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|