|
@@ -1,6 +1,5 @@
|
|
|
package com.fdkankan.contro.mq.service.impl;
|
|
|
|
|
|
-import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.io.FileUtil;
|
|
|
import cn.hutool.core.io.file.FileNameUtil;
|
|
@@ -11,14 +10,16 @@ import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
-import com.fdkankan.common.constant.*;
|
|
|
+import com.fdkankan.common.constant.ExpiredStatus;
|
|
|
+import com.fdkankan.common.constant.PayStatus;
|
|
|
+import com.fdkankan.common.constant.SceneStatus;
|
|
|
import com.fdkankan.common.util.FileUtils;
|
|
|
-import com.fdkankan.contro.bean.SceneJsonBean;
|
|
|
-import com.fdkankan.contro.entity.*;
|
|
|
+import com.fdkankan.contro.entity.CameraDetail;
|
|
|
+import com.fdkankan.contro.entity.ScenePro;
|
|
|
+import com.fdkankan.contro.entity.UserIncrement;
|
|
|
import com.fdkankan.contro.mq.service.IBuildSceneService;
|
|
|
import com.fdkankan.contro.service.*;
|
|
|
import com.fdkankan.contro.service.impl.FdkkV4Service;
|
|
|
-import com.fdkankan.contro.vo.SceneEditControlsVO;
|
|
|
import com.fdkankan.fyun.config.FYunFileConfig;
|
|
|
import com.fdkankan.fyun.constant.FYunTypeEnum;
|
|
|
import com.fdkankan.fyun.face.FYunFileServiceInterface;
|
|
@@ -33,7 +34,6 @@ import com.fdkankan.push.utils.PushMsgUtil;
|
|
|
import com.fdkankan.rabbitmq.bean.BuildSceneCallMessage;
|
|
|
import com.fdkankan.rabbitmq.bean.BuildSceneResultMqMessage;
|
|
|
import com.fdkankan.rabbitmq.util.RabbitMqProducer;
|
|
|
-import com.fdkankan.redis.constant.RedisKey;
|
|
|
import com.fdkankan.redis.util.RedisUtil;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.ObjectUtils;
|
|
@@ -74,22 +74,12 @@ public class BuildV3SceneServiceImpl implements IBuildSceneService {
|
|
|
private FYunFileServiceInterface fYunFileService;
|
|
|
@Autowired
|
|
|
private ICameraDetailService cameraDetailService;
|
|
|
- @Autowired
|
|
|
- private ISceneEditInfoService sceneEditInfoService;
|
|
|
- @Autowired
|
|
|
- private ISceneEditControlsService sceneEditControlsService;
|
|
|
|
|
|
@Autowired
|
|
|
private FYunFileConfig fYunFileConfig;
|
|
|
|
|
|
@Autowired
|
|
|
- private RedisUtil redisUtil;
|
|
|
- @Autowired
|
|
|
- private IScenePlusService scenePlusService;
|
|
|
- @Autowired
|
|
|
- private IScenePlusExtService scenePlusExtService;
|
|
|
- @Autowired
|
|
|
- private ISceneEditInfoExtService sceneEditInfoExtService;
|
|
|
+ private ISceneProService sceneProService;
|
|
|
|
|
|
@Autowired
|
|
|
private IUserIncrementService userIncrementService;
|
|
@@ -166,9 +156,9 @@ public class BuildV3SceneServiceImpl implements IBuildSceneService {
|
|
|
|
|
|
if (!buildSuccess) {
|
|
|
log.error("建模失败,修改状态为失败状态");
|
|
|
- scenePlusService.update(new LambdaUpdateWrapper<ScenePlus>()
|
|
|
- .set(ScenePlus::getSceneStatus, SceneStatus.FAILD.code())
|
|
|
- .eq(ScenePlus::getNum, sceneCode));
|
|
|
+ sceneProService.update(new LambdaUpdateWrapper<ScenePro>()
|
|
|
+ .set(ScenePro::getStatus, SceneStatus.FAILD.code())
|
|
|
+ .eq(ScenePro::getNum, sceneCode));
|
|
|
throw new RuntimeException("建模失败!");
|
|
|
}
|
|
|
|
|
@@ -190,36 +180,16 @@ public class BuildV3SceneServiceImpl implements IBuildSceneService {
|
|
|
JSONObject videosJson = this.getVideosJson(path, videoVersion, sceneCode, cameraType);
|
|
|
|
|
|
//写入数据库
|
|
|
- ScenePlus scenePlus = this.updateDbPlus(sceneCode, space, videosJson.toJSONString(), computeTime,fdageData.containsKey("exportMeshObj") && fdageData.getIntValue("exportMeshObj") == 1);
|
|
|
- ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
|
|
|
+ ScenePro scenePro = this.updateDbPlus(sceneCode, space, videosJson.toJSONString(), computeTime,fdageData.containsKey("exportMeshObj") && fdageData.getIntValue("exportMeshObj") == 1);
|
|
|
|
|
|
//变更容量,arrearCap为true时,代表容量不足
|
|
|
- boolean arrearCap = this.updateSpace(scenePlus.getCameraId(), space);
|
|
|
+ boolean arrearCap = this.updateSpace(scenePro.getCameraId(), space);
|
|
|
|
|
|
//如果相机容量不足,需要把场景的paystatus改为容量不足状态
|
|
|
if (arrearCap && cameraType != 14) {
|
|
|
- this.sealScene(arrearCap, scenePlus.getId(), scenePlus.getId());
|
|
|
+ this.sealScene(arrearCap, scenePro.getId(), scenePro.getId());
|
|
|
}
|
|
|
|
|
|
- Object[] editInfoArr = this.updateEditInfo(scenePlus);
|
|
|
- SceneEditInfo sceneEditInfo = (SceneEditInfo)editInfoArr[0];
|
|
|
- SceneEditInfoExt sceneEditInfoExt = (SceneEditInfoExt)editInfoArr[1];
|
|
|
- SceneEditControls sceneEditControls = (SceneEditControls)editInfoArr[2];
|
|
|
-
|
|
|
- String outPathZh = ConstantFilePath.BASE_PATH + File.separator + "sceneQRcode/"+sceneCode+".png";
|
|
|
- String outPathEn = ConstantFilePath.BASE_PATH + File.separator + "sceneQRcode/"+sceneCode+"_en.png";
|
|
|
- //生成新的分享的二维码-中文版本
|
|
|
- MatrixToImageWriterUtil.createQRCode(scenePlusExt.getWebSite(), outPathZh, false,null);
|
|
|
- //生成新的分享的二维码-英文版本
|
|
|
- MatrixToImageWriterUtil.createQRCode(scenePlusExt.getWebSite() + "&lang=en", outPathEn, false, null);
|
|
|
- //上传二维码
|
|
|
- fYunFileService.uploadFile(outPathZh, String.format(UploadFilePath.DOWNLOADS_QRCODE, sceneCode) + sceneCode + ".png");
|
|
|
- fYunFileService.uploadFile(outPathEn, String.format(UploadFilePath.DOWNLOADS_QRCODE, sceneCode) + sceneCode + "_en.png");
|
|
|
-
|
|
|
- //上传全景图俯视图
|
|
|
- this.uploadFloorCad(path, sceneCode, uploadFiles);
|
|
|
-
|
|
|
-
|
|
|
//上传文件
|
|
|
log.info("开始上传场景计算结果数据,num:{}", sceneCode);
|
|
|
fYunFileService.uploadMulFiles(uploadFiles);
|
|
@@ -240,26 +210,22 @@ public class BuildV3SceneServiceImpl implements IBuildSceneService {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- //拷贝部分文件到编辑目录,用于用户编辑
|
|
|
- this.copyToEditDir(sceneCode);
|
|
|
-
|
|
|
//生成houseTypejson并上传
|
|
|
uploadFiles.entrySet().stream().filter(entry-> FileNameUtil.getName(entry.getKey()).equals("floorplan_cad.json"))
|
|
|
.forEach(entry-> uploadHouseTypeJson(sceneCode,entry.getKey()));
|
|
|
|
|
|
//写scene.json
|
|
|
log.info("生成scene.json上传oss并设置缓存,num:{}", sceneCode);
|
|
|
- this.writeSceneJson(sceneCode, videosJson,sceneEditInfo, sceneEditInfoExt, sceneEditControls, scenePlus,
|
|
|
- scenePlusExt, arrearCap);
|
|
|
+ this.writeSceneJson(sceneCode, videosJson,scenePro, arrearCap);
|
|
|
|
|
|
//计算成功,通知APP
|
|
|
Integer pushChannel = fdageData.getInteger("pushChannel");
|
|
|
String pushToken = fdageData.getString("pushToken");
|
|
|
- this.pushMsgToApp(pushChannel,pushToken, cameraType, scenePlus.getTitle(), scenePlusExt.getWebSite());
|
|
|
+ this.pushMsgToApp(pushChannel,pushToken, cameraType, scenePro.getSceneName(), scenePro.getWebSite());
|
|
|
|
|
|
if (cameraType == 14) {
|
|
|
//计算成功 激光转台相机 同步 请求
|
|
|
- fdkkLaserService.syncBuildResult(scenePlus, scenePlusExt);
|
|
|
+ fdkkLaserService.syncBuildResult(scenePro.getNum(), scenePro.getDataSource());
|
|
|
}
|
|
|
|
|
|
CreateObjUtil.deleteFile(path.replace(ConstantFilePath.BUILD_MODEL_PATH, "/") + "/capture");
|
|
@@ -287,12 +253,13 @@ public class BuildV3SceneServiceImpl implements IBuildSceneService {
|
|
|
}
|
|
|
|
|
|
private Map<String, String> getUploadFiles(String path,Integer cameraType,JSONObject fdageData) throws Exception {
|
|
|
- ScenePlus scenePlus = scenePlusService.getByFileId(path);
|
|
|
- if (ObjectUtils.isEmpty(scenePlus)) {
|
|
|
+ ScenePro scenePro = sceneProService.getOne(
|
|
|
+ new LambdaQueryWrapper<ScenePro>().like(ScenePro::getDataSource, path));
|
|
|
+ if (ObjectUtils.isEmpty(scenePro)) {
|
|
|
throw new Exception("未找到场景信息:" + path);
|
|
|
}
|
|
|
|
|
|
- String projectNum = scenePlus.getNum();
|
|
|
+ String projectNum = scenePro.getNum();
|
|
|
|
|
|
|
|
|
String dataViewPath = String.format(ConstantFilePath.DATA_PATH_FORMAT, projectNum);
|
|
@@ -398,61 +365,30 @@ public class BuildV3SceneServiceImpl implements IBuildSceneService {
|
|
|
return dataJson;
|
|
|
}
|
|
|
|
|
|
- private void uploadFloorCad(String path, String num, Map<String, String> uploadFiles){
|
|
|
-
|
|
|
- //户型图上传
|
|
|
- String userEditPath = UploadFilePath.USER_EDIT_PATH + "floor-cad-%s.%s";
|
|
|
- String userViewPath = UploadFilePath.USER_VIEW_PATH + "floor-cad-%s.%s";
|
|
|
- String floorCadPath = path + "/results/floorplan_cad";
|
|
|
- List<String> floorCadList = FileUtils.getFileList(floorCadPath);
|
|
|
- if(CollUtil.isNotEmpty(floorCadList)){
|
|
|
- floorCadList.stream().forEach(str->{
|
|
|
- String substring = str.substring(str.lastIndexOf(File.separator) + 1);
|
|
|
- String[] arr = substring.split("floor");
|
|
|
- String[] arr2 = arr[1].split("\\.");
|
|
|
- uploadFiles.put(str, String.format(userEditPath, num, arr2[0], arr2[1]));
|
|
|
- uploadFiles.put(str, String.format(userViewPath, num, arr2[0], arr2[1]));
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- private void writeSceneJson(String num, JSONObject videosJson, SceneEditInfo sceneEditInfo, SceneEditInfoExt sceneEditInfoExt,
|
|
|
- SceneEditControls sceneEditControls, ScenePlus scenePlus, ScenePlusExt scenePlusExt, boolean arrearCap) throws Exception{
|
|
|
- String dataViewPath = String.format(UploadFilePath.DATA_VIEW_PATH, num);
|
|
|
+ private void writeSceneJson(String num, JSONObject videosJson, ScenePro scenePro,boolean arrearCap) throws Exception{
|
|
|
+ String dataViewPath = String.format(ConstantFilePath.DATA_PATH_FORMAT, num);
|
|
|
|
|
|
String sceneJsonKey = dataViewPath + "scene.json";
|
|
|
boolean exist = fYunFileService.fileExist(sceneJsonKey);
|
|
|
//如果云端没有scene.json文件,生成一份
|
|
|
if(!exist){
|
|
|
- SceneJsonBean sceneJson = new SceneJsonBean();
|
|
|
- BeanUtil.copyProperties(sceneEditInfoExt, sceneJson);
|
|
|
- BeanUtil.copyProperties(sceneEditInfo, sceneJson);
|
|
|
- SceneEditControlsVO sceneEditControlsVO = BeanUtil.copyProperties(sceneEditControls, SceneEditControlsVO.class);
|
|
|
- sceneJson.setControls(sceneEditControlsVO);
|
|
|
- sceneJson.setNum(num);
|
|
|
- sceneJson.setCreateTime(scenePlus.getCreateTime());
|
|
|
- sceneJson.setSceneResolution(scenePlusExt.getSceneResolution());
|
|
|
- sceneJson.setSceneFrom(scenePlusExt.getSceneFrom());
|
|
|
- sceneJson.setVideos(JSON.toJSONString(videosJson));
|
|
|
+ JSONObject sceneJson = JSONObject.parseObject(JSONObject.toJSONString(scenePro));
|
|
|
+ sceneJson.put("videos",videosJson);
|
|
|
if(arrearCap) {
|
|
|
- sceneJson.setPayStatus(PayStatus.NO_CAPACITY.code());
|
|
|
+ sceneJson.put("payStatus",PayStatus.NO_CAPACITY.code());
|
|
|
}
|
|
|
-
|
|
|
String sceneJsonStr = JSON.toJSONString(sceneJson);
|
|
|
//上传sceneJson文件
|
|
|
fYunFileService.uploadFile(sceneJsonStr.getBytes(), sceneJsonKey);
|
|
|
- //scenejson写入缓存
|
|
|
- redisUtil.set(String.format(RedisKey.SCENE_JSON, num), sceneJsonStr);
|
|
|
}
|
|
|
// 上传status JSON.
|
|
|
|
|
|
JSONObject statusJson = new JSONObject();
|
|
|
//临时将-2改成1,app还没完全更新
|
|
|
statusJson.put("status", 1);
|
|
|
- statusJson.put("webSite", scenePlusExt.getWebSite());
|
|
|
+ statusJson.put("webSite", scenePro.getWebSite());
|
|
|
statusJson.put("sceneNum", num);
|
|
|
- statusJson.put("thumb", scenePlusExt.getThumb());
|
|
|
+ statusJson.put("thumb", scenePro.getThumb());
|
|
|
statusJson.put("payStatus", 1);
|
|
|
FileUtils.writeFile(ConstantFilePath.SCENE_PATH + "data/data" + num + File.separator + "status.json", statusJson.toString());
|
|
|
|
|
@@ -611,10 +547,10 @@ public class BuildV3SceneServiceImpl implements IBuildSceneService {
|
|
|
}
|
|
|
|
|
|
private void sealScene(boolean arrearCap, Long scenePlusId, Long sceneProId){
|
|
|
- scenePlusService.update(
|
|
|
- new LambdaUpdateWrapper<ScenePlus>()
|
|
|
- .set(ScenePlus::getPayStatus, PayStatus.NO_CAPACITY.code())
|
|
|
- .eq(ScenePlus::getId, scenePlusId));
|
|
|
+ sceneProService.update(
|
|
|
+ new LambdaUpdateWrapper<ScenePro>()
|
|
|
+ .set(ScenePro::getPayStatus, PayStatus.NO_CAPACITY.code())
|
|
|
+ .eq(ScenePro::getId, scenePlusId));
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -627,72 +563,40 @@ public class BuildV3SceneServiceImpl implements IBuildSceneService {
|
|
|
* @param space
|
|
|
**/
|
|
|
private void updateDb4Sm(String num, long space){
|
|
|
- List<ScenePlus> ScenePlusList = scenePlusService.list(
|
|
|
- new LambdaQueryWrapper<ScenePlus>().select(ScenePlus::getId).eq(ScenePlus::getNum, num));
|
|
|
+ List<ScenePro> ScenePlusList = sceneProService.list(
|
|
|
+ new LambdaQueryWrapper<ScenePro>().select(ScenePro::getId).eq(ScenePro::getNum, num));
|
|
|
|
|
|
if(CollUtil.isEmpty(ScenePlusList)){
|
|
|
return ;
|
|
|
}
|
|
|
|
|
|
- List<Long> sceneIds = ScenePlusList.stream().map(ScenePlus::getId).collect(Collectors.toList());
|
|
|
+ List<Long> sceneIds = ScenePlusList.stream().map(ScenePro::getId).collect(Collectors.toList());
|
|
|
|
|
|
//更新场景创建时间
|
|
|
- scenePlusService.update(new LambdaUpdateWrapper<ScenePlus>().in(ScenePlus::getId, sceneIds)
|
|
|
- .set(ScenePlus::getSceneStatus, SceneStatus.NO_DISPLAY.code()));
|
|
|
-
|
|
|
- //更新使用容量
|
|
|
- scenePlusExtService.update(new LambdaUpdateWrapper<ScenePlusExt>().in(ScenePlusExt::getPlusId, sceneIds)
|
|
|
- .set(ScenePlusExt::getSpace, space)
|
|
|
- .set(ScenePlusExt::getAlgorithmTime, Calendar.getInstance().getTime()));
|
|
|
+ sceneProService.update(new LambdaUpdateWrapper<ScenePro>().in(ScenePro::getId, sceneIds)
|
|
|
+ .set(ScenePro::getStatus, SceneStatus.NO_DISPLAY.code())
|
|
|
+ .set(ScenePro::getSpace,space)
|
|
|
+ .set(ScenePro::getCreateTime,new Date())
|
|
|
+ );
|
|
|
}
|
|
|
|
|
|
- private ScenePlus updateDbPlus(String num, Long space, String videosJson, Long computeTime,boolean isObj){
|
|
|
- ScenePlus scenePlus = scenePlusService.getScenePlusByNum(num);
|
|
|
- ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
|
|
|
- List<ScenePlus> list = scenePlusService.list(new LambdaQueryWrapper<ScenePlus>()
|
|
|
- .select(ScenePlus::getId).eq(ScenePlus::getNum, num));
|
|
|
- if (CollUtil.isEmpty(list)) {
|
|
|
+ private ScenePro updateDbPlus(String num, Long space, String videosJson, Long computeTime,boolean isObj){
|
|
|
+ ScenePro scenePro = sceneProService.getByNum(num);
|
|
|
+ if (ObjectUtils.isEmpty(scenePro)) {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
- //修改场景状态 空间 支付状态 计算时间
|
|
|
- List<Long> scenePlusIds = list.stream().map(ScenePlus::getId).collect(Collectors.toList());
|
|
|
-
|
|
|
- scenePlusService.update(new LambdaUpdateWrapper<ScenePlus>()
|
|
|
- .in(ScenePlus::getId, scenePlusIds)
|
|
|
- .set(ScenePlus::getSceneStatus, SceneStatus.NO_DISPLAY.code())
|
|
|
- .set(ScenePlus::getUpdateTime, new Date())
|
|
|
- .set(ScenePlus::getPayStatus, PayStatus.PAY.code()));
|
|
|
-
|
|
|
- scenePlusExt.setSpace(space);
|
|
|
- scenePlusExt.setComputeTime(computeTime.toString());
|
|
|
- scenePlusExt.setAlgorithmTime(new Date());
|
|
|
- scenePlusExt.setVideos(videosJson);
|
|
|
- scenePlusExt.setIsObj(isObj ? 1 : 0);
|
|
|
-
|
|
|
- SceneSource sceneSource = SceneSource.get(scenePlus.getSceneSource());
|
|
|
- switch (sceneSource){
|
|
|
- case BM:
|
|
|
- scenePlusExt.setSceneResolution(SceneResolution.TILES_2K.code());
|
|
|
- scenePlusExt.setSceneFrom(SceneFrom.PRO.code());
|
|
|
- break;
|
|
|
- case SM:
|
|
|
- scenePlusExt.setSceneResolution(SceneResolution.TILES_1K.code());
|
|
|
- scenePlusExt.setSceneFrom(SceneFrom.LITE.code());
|
|
|
- break;
|
|
|
- case ZT:
|
|
|
- scenePlusExt.setSceneResolution(SceneResolution.TILES_4K.code());
|
|
|
- scenePlusExt.setSceneFrom(SceneFrom.MINION.code());
|
|
|
- break;
|
|
|
- case JG:
|
|
|
- scenePlusExt.setSceneResolution(SceneResolution.TILES_4K.code());
|
|
|
- scenePlusExt.setSceneFrom(SceneFrom.LASER.code());
|
|
|
- break;
|
|
|
- }
|
|
|
- scenePlusExtService.updateById(scenePlusExt);
|
|
|
-
|
|
|
-
|
|
|
- return scenePlus;
|
|
|
+ sceneProService.update(new LambdaUpdateWrapper<ScenePro>()
|
|
|
+ .in(ScenePro::getId, scenePro.getId())
|
|
|
+ .set(ScenePro::getStatus, SceneStatus.NO_DISPLAY.code())
|
|
|
+ .set(ScenePro::getUpdateTime, new Date())
|
|
|
+ .set(ScenePro::getSpace, space)
|
|
|
+ .set(ScenePro::getComputeTime, computeTime)
|
|
|
+ .set(ScenePro::getVideos, videosJson)
|
|
|
+ .set(ScenePro::getIsObj, isObj ? 1 : 0)
|
|
|
+ .set(ScenePro::getPayStatus, PayStatus.PAY.code()));
|
|
|
+
|
|
|
+ return scenePro;
|
|
|
}
|
|
|
|
|
|
private boolean updateSpace(Long cameraId, Long space) throws Exception{
|
|
@@ -708,37 +612,6 @@ public class BuildV3SceneServiceImpl implements IBuildSceneService {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- private Object[] updateEditInfo(ScenePlus scenePlus){
|
|
|
- SceneEditInfo sceneEditInfo = sceneEditInfoService.getByScenePlusId(scenePlus.getId());
|
|
|
- SceneEditControls sceneEditControls = null;
|
|
|
- SceneEditInfoExt sceneEditInfoExt = null;
|
|
|
- if(sceneEditInfo == null){
|
|
|
- sceneEditInfo = new SceneEditInfo();
|
|
|
- sceneEditInfo.setScenePlusId(scenePlus.getId());
|
|
|
- sceneEditInfo.setDescription(scenePlus.getDescription());
|
|
|
- sceneEditInfo.setTitle(scenePlus.getTitle());
|
|
|
- sceneEditInfoService.save(sceneEditInfo);
|
|
|
-
|
|
|
- }else{
|
|
|
- sceneEditControls = sceneEditControlsService.getBySceneEditId(sceneEditInfo.getId());
|
|
|
- sceneEditInfoExt = sceneEditInfoExtService.getByEditInfoId(sceneEditInfo.getId());
|
|
|
- sceneEditInfo.setVersion(sceneEditInfo.getVersion() + 1);
|
|
|
- sceneEditInfoService.updateById(sceneEditInfo);
|
|
|
- }
|
|
|
- if(sceneEditControls == null){
|
|
|
- sceneEditControls = new SceneEditControls();
|
|
|
- sceneEditControls.setEditInfoId(sceneEditInfo.getId());
|
|
|
- sceneEditControlsService.save(sceneEditControls);
|
|
|
- }
|
|
|
- if(sceneEditInfoExt == null){
|
|
|
- sceneEditInfoExt = new SceneEditInfoExt();
|
|
|
- sceneEditInfoExt.setScenePlusId(scenePlus.getId());
|
|
|
- sceneEditInfoExt.setEditInfoId(sceneEditInfo.getId());
|
|
|
- sceneEditInfoExtService.save(sceneEditInfoExt);
|
|
|
- }
|
|
|
- return new Object[]{sceneEditInfo, sceneEditInfoExt, sceneEditControls};
|
|
|
- }
|
|
|
-
|
|
|
public void uploadHouseTypeJson(String num, String floorPlanCardFilePath) {
|
|
|
if (!new File(floorPlanCardFilePath).exists()) {
|
|
|
log.error("floorplan_cad.json 文件不存在,文件路径:{}", floorPlanCardFilePath);
|