ソースを参照

Merge branch 'feature-floorplan-20230209-dsx' into feature-slimming-nas-20220130-dsx

# Conflicts:
#	src/main/java/com/fdkankan/contro/mq/service/ICommonService.java
#	src/main/java/com/fdkankan/contro/mq/service/impl/BuildObjServiceImpl.java
#	src/main/java/com/fdkankan/contro/mq/service/impl/BuildSceneServiceImpl.java
#	src/main/java/com/fdkankan/contro/mq/service/impl/CommonServiceImpl.java
dsx 2 年 前
コミット
c0af57c01c

+ 2 - 0
src/main/java/com/fdkankan/contro/mq/service/ICommonService.java

@@ -22,4 +22,6 @@ public interface ICommonService {
      *               value: Map<String ,Object> 参数map
      */
     public void initUserEditData(String num, Set<String> bizs, Map<String, Map<String ,Object>> params);
+
+    public void uploadFloorplanJson(String num, String dataSource) throws Exception;
 }

+ 7 - 1
src/main/java/com/fdkankan/contro/mq/service/impl/BuildObjServiceImpl.java

@@ -12,6 +12,7 @@ import com.fdkankan.contro.entity.ScenePlus;
 import com.fdkankan.contro.entity.ScenePro;
 import com.fdkankan.contro.entity.SceneProEdit;
 import com.fdkankan.contro.mq.service.IBuildSceneService;
+import com.fdkankan.contro.mq.service.ICommonService;
 import com.fdkankan.contro.service.*;
 import com.fdkankan.contro.service.impl.FdkkV4Service;
 import com.fdkankan.fyun.face.FYunFileServiceInterface;
@@ -78,13 +79,15 @@ public class BuildObjServiceImpl implements IBuildSceneService {
     @Autowired
     private ISceneProEditService sceneProEditService;
 
-
     @Autowired
     private IScenePlusService scenePlusService;
 
     @Autowired
     private ISceneBuildProcessLogService sceneBuildProcessLogService;
 
+    @Autowired
+    private ICommonService commonService;
+
     @Override
     public void buildScenePre(BuildSceneCallMessage message) throws Exception{
         boolean success = false;
@@ -236,6 +239,9 @@ public class BuildObjServiceImpl implements IBuildSceneService {
             //上传mesh文件
             fYunFileService.uploadFileByCommand(laserObjFilePath + "/results/mesh", String.format(UploadFilePath.DATA_VIEW_PATH,  projectNum) + "mesh");
 
+            //生成floorplan.json
+            commonService.uploadFloorplanJson(projectNum, laserObjFilePath);
+
             if(!ObjectUtils.isEmpty(scenePro)){
                 LambdaUpdateWrapper<ScenePro> updateWrapper = new LambdaUpdateWrapper<ScenePro>()
                         .set(ScenePro::getStatus, -2).eq(ScenePro::getNum, projectNum);

+ 5 - 1
src/main/java/com/fdkankan/contro/mq/service/impl/BuildSceneServiceImpl.java

@@ -34,6 +34,7 @@ import com.fdkankan.model.constants.UploadFilePath;
 import com.fdkankan.model.enums.ModelTypeEnums;
 import com.fdkankan.model.utils.CreateHouseJsonUtil;
 import com.fdkankan.model.utils.CreateObjUtil;
+import com.fdkankan.model.utils.FloorPlanUserUtil;
 import com.fdkankan.model.utils.SceneUtil;
 import com.fdkankan.push.config.PushMessageConfig;
 import com.fdkankan.push.utils.PushMsgUtil;
@@ -303,6 +304,9 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
             boolean existHouseType = this.uploadHouseTypeJson(sceneCode, scenePlusExt.getDataSource());
             scenePlus.setHouseType(existHouseType ? CommonStatus.YES.code().intValue() : CommonStatus.NO.code().intValue());
 
+            //生成floorpan.json
+            commonService.uploadFloorplanJson(sceneCode, scenePlusExt.getDataSource());
+
             //重置异步操作记录
             this.removeSceneAsynOperLog(sceneCode);
 
@@ -493,7 +497,7 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
         if(!new File("/mnt/4Dkankan/scene/data" + File.separator + "data" + projectNum).exists()){
             FileUtil.mkdir("/mnt/4Dkankan/scene/data" + File.separator + "data" + projectNum);
         }
-        map.put(resultsPath + "floorplan.json", dataViewPath + "floor.json");
+//        map.put(resultsPath + "floorplan.json", dataViewPath + "floor.json");
         map.put(resultsPath + "floorplan_cad.json", dataViewPath + "floorplan_cad.json");
         map.put(path + File.separator + "capture/stitch_params.txt", dataViewPath + "stitch_params.txt");
         map.put(path + File.separator + "capture/Up.xml", dataViewPath + "Up.xml");

+ 1 - 1
src/main/java/com/fdkankan/contro/mq/service/impl/BuildV3SceneServiceImpl.java

@@ -405,7 +405,7 @@ public class BuildV3SceneServiceImpl implements IBuildSceneService {
         log.info("数据转换完成:" + projectNum);
 
         FileUtil.touch("/mnt/4Dkankan/scene/data" + File.separator + "data" + projectNum);
-        map.put(resultsPath + "floorplan.json", dataViewPath + "floor.json");
+//        map.put(resultsPath + "floorplan.json", dataViewPath + "floor.json");
         map.put(resultsPath + "floorplan_cad.json", dataViewPath + "floorplan_cad.json");
         map.put(path + File.separator + "capture/stitch_params.txt", dataViewPath + "stitch_params.txt");
         map.put(path + File.separator + "capture/Up.xml", dataViewPath + "Up.xml");

+ 19 - 0
src/main/java/com/fdkankan/contro/mq/service/impl/CommonServiceImpl.java

@@ -6,10 +6,12 @@ import com.fdkankan.common.util.FileUtils;
 import cn.hutool.core.util.StrUtil;
 import com.fdkankan.contro.factory.UserEditData.UserEditDataHandler;
 import com.fdkankan.contro.factory.UserEditData.UserEditDataHandlerFactory;
+import com.alibaba.fastjson.JSONObject;
 import com.fdkankan.contro.mq.service.ICommonService;
 import com.fdkankan.fyun.face.FYunFileServiceInterface;
 import com.fdkankan.model.constants.ConstantFilePath;
 import com.fdkankan.model.constants.UploadFilePath;
+import com.fdkankan.model.utils.FloorPlanUserUtil;
 import com.fdkankan.model.utils.SceneUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -20,6 +22,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.Objects;
 
 @Slf4j
 @Service
@@ -127,4 +130,20 @@ public class CommonServiceImpl implements ICommonService {
             handler.init(num, CollUtil.isEmpty(params) ? null : params.get(biz));
         }
     }
+
+    @Override
+    public void uploadFloorplanJson(String num, String dataSource) throws Exception{
+        String floorPlanCardFilePath = dataSource + File.separator + "results/floorplan_cad.json";
+        if (!new File(floorPlanCardFilePath).exists()) {
+            log.error("floorplan_cad.json 文件不存在,文件路径:{}", floorPlanCardFilePath);
+            throw new Exception("floorplan_cad.json 文件不存在,文件路径:" + floorPlanCardFilePath);
+        }
+        JSONObject json = FloorPlanUserUtil.createFloorPlanUserJson(floorPlanCardFilePath);
+        if(Objects.isNull(json)){
+            log.error("生成floorplan.json失败,cadPath:", floorPlanCardFilePath);
+            throw new Exception("生成floorplan.json失败,cadPath:" + floorPlanCardFilePath);
+        }
+        String hourseTypeJsonPath = String.format(UploadFilePath.DATA_VIEW_PATH, num) + "floorplan.json";
+        fYunFileServiceInterface.uploadFile(json.toJSONString().getBytes(), hourseTypeJsonPath);
+    }
 }