192.168.9.165 2 ماه پیش
والد
کامیت
c75ddb9764

+ 34 - 1
src/main/java/com/fdkankan/fusion/controller/CaseFusionController.java

@@ -2,10 +2,12 @@ package com.fdkankan.fusion.controller;
 
 
 import cn.hutool.core.date.DateUtil;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.fdkankan.fusion.common.ResultCode;
 import com.fdkankan.fusion.common.ResultData;
 import com.fdkankan.fusion.common.util.CameraUtil;
+import com.fdkankan.fusion.common.util.FileWriterUtil;
 import com.fdkankan.fusion.down.FusionDownService;
 import com.fdkankan.fusion.entity.*;
 import com.fdkankan.fusion.entity.jsonEntity.Transform;
@@ -55,6 +57,9 @@ public class CaseFusionController extends BaseController{
     IScenePlusExtService scenePlusExtService;
     @Autowired
     FusionDownService fusionDownService;
+    @Autowired
+    ICommonUploadService commonUploadService;
+
     @GetMapping("/list")
     public ResultData allList(@RequestParam(required = false) Integer fusionId){
         return ResultData.ok(caseFusionService.getSceneListVo(fusionId));
@@ -80,9 +85,37 @@ public class CaseFusionController extends BaseController{
         if( param.getFusionId() == null ){
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
         }
-        if(param.getIsObj() == null || StringUtils.isBlank(param.getNum())){
+        if((param.getIsObj() == null || StringUtils.isBlank(param.getNum())) && param.getUploadId() == null){
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
         }
+        if(param.getUploadId() != null){
+            CommonUpload commonUpload = commonUploadService.getById(param.getUploadId());
+            if(commonUpload == null || StringUtils.isBlank(commonUpload.getFileUrl())){
+                throw new BusinessException(ResultCode.MEDIO_NOT_EXIT);
+            }
+            Model model = modelService.getByUploadId(commonUpload.getId());
+            if(model == null){
+                model = new Model();
+                model.setModelTitle(commonUpload.getFileName());
+                model.setModelSize(FileWriterUtil.setFileSize(Long.valueOf(commonUpload.getFileSize())));
+                model.setModelDateType(commonUpload.getFileFormat());
+                model.setModelType(commonUpload.getResultFileFormat());
+                model.setWgs84(commonUpload.getWgs84());
+                model.setGcj02(commonUpload.getGcj02());
+                model.setConvertType(1);
+                model.setCreateStatus(1);
+                model.setUploadId(commonUpload.getId());
+
+                JSONArray jsonArray = new JSONArray();
+                jsonArray.add(commonUpload.getFileUrl());
+                model.setModelGlbUrl(jsonArray.toJSONString());
+                model.setType(3);
+                modelService.save(model);
+            }
+            return ResultData.ok(fusionNumService.addModel(param,model.getModelId(),model.getModelTitle()));
+        }
+
+
         ScenePlus scenePlus = scenePlusService.getByNum(param.getNum());
         ScenePlusExt scenePlusExt = scenePlusExtService.getByPlusId(scenePlus.getId());
         scenePlus.setScenePlusExt(scenePlusExt);

+ 2 - 2
src/main/java/com/fdkankan/fusion/entity/SceneFileBuild.java

@@ -109,13 +109,13 @@ public class SceneFileBuild implements Serializable {
     /**
      * 开始建模时间
      */
-    @TableField(value = "start_build_time", updateStrategy = FieldStrategy.IGNORED)
+    @TableField(value = "start_build_time")
     private Date startBuildTime;
 
     /**
      * 最后建模时间
      */
-    @TableField(value = "end_build_time", updateStrategy = FieldStrategy.IGNORED)
+    @TableField(value = "end_build_time")
     private String endBuildTime;
 
     /**

+ 2 - 0
src/main/java/com/fdkankan/fusion/service/IModelService.java

@@ -46,4 +46,6 @@ public interface IModelService extends IService<Model> {
     HashMap<String, Model> getMapByNum(List<String> numList);
 
     void copyModel(Integer modelId);
+
+    Model getByUploadId(Integer uploadId);
 }

+ 1 - 1
src/main/java/com/fdkankan/fusion/service/ISceneService.java

@@ -20,5 +20,5 @@ public interface ISceneService extends IService<Scene> {
 
     List<Scene> getByNumList(List<String> numList);
 
-    HashMap<String, String> getMappingMap(List<String> numList);
+    HashMap<String, Scene> getMappingMap(List<String> numList);
 }

+ 16 - 4
src/main/java/com/fdkankan/fusion/service/impl/CaseFusionServiceImpl.java

@@ -77,7 +77,11 @@ public class CaseFusionServiceImpl extends ServiceImpl<ICaseFusionMapper, CaseFu
         for (CaseFusion record : page.getRecords()) {
             CaseSettings caseSettings = map.get(record.getFusionId());
             if(caseSettings !=null){
-                record.setCover(caseSettings.getCover());
+                String cover = caseSettings.getCover();
+                if(StringUtils.isNotBlank(cover) && cover.startsWith("/")){
+                    cover = cover.substring(1);
+                }
+                record.setCover(cover);
             }
         }
         return PageInfo.PageInfo(page);
@@ -104,7 +108,7 @@ public class CaseFusionServiceImpl extends ServiceImpl<ICaseFusionMapper, CaseFu
         HashMap<Long,ScenePlusExt> mapext = new HashMap<>();
         extList.stream().forEach(e -> mapext.put(e.getPlusId(),e));
 
-        HashMap<String,String> mappingMap = sceneService.getMappingMap(numList);
+        HashMap<String,Scene> mappingMap = sceneService.getMappingMap(numList);
 
         for (FusionNum fusionNum : fusionNumList) {
             Transform transform = JSONObject.parseObject(fusionNum.getTransform(),Transform.class);
@@ -122,21 +126,29 @@ public class CaseFusionServiceImpl extends ServiceImpl<ICaseFusionMapper, CaseFu
                         sceneVo.setStatus(scenePlus.getSceneStatus() == 1 ? 2:scenePlus.getSceneStatus());
                         sceneVo.setName(scenePlus.getTitle());
                         sceneVo.setSceneName(scenePlus.getTitle());
-                        sceneVo.setCreateTime(scenePlus.getCreateTime());
                         ScenePlusExt scenePlusExt = mapext.get(scenePlus.getId());
                         if(scenePlusExt != null){
                             sceneVo.setRtkLocation(scenePlusExt.getRtkLocation());
                             sceneVo.setOrientation(scenePlusExt.getOrientation());
                         }
-                        sceneVo.setMapping( mappingMap.get(scenePlus.getNum()));
+                        Scene scene = mappingMap.get(scenePlus.getNum());
+                        if(scene !=null){
+                            sceneVo.setMapping(scene.getMapping());
+                            sceneVo.setCreateTime(scene.getShootTime());
+                        }
 
                         sceneVo.setSourceName(CameraUtil.getSourceName(model.getType()));
                         vo.setSceneData(sceneVo);
                         sceneVos.add(vo);
 
                     }
+                }else {
+                    sceneVo.setStatus(2);
                 }
+                sceneVo.setSourceName(CameraUtil.getSourceName(model.getType()));
             }
+            vo.setSceneData(sceneVo);
+            sceneVos.add(vo);
         }
 
         return sceneVos;

+ 1 - 1
src/main/java/com/fdkankan/fusion/service/impl/CaseServiceImpl.java

@@ -129,7 +129,7 @@ public class CaseServiceImpl extends ServiceImpl<ICaseMapper, CaseEntity> implem
             //设置模型
             HashMap<String,Model> map = modelService.getMapByNum(numList);
             for (SceneVo sceneVo : listAll) {
-                String createTime = sceneVo.getCreateTime();
+                String createTime = sceneVo.getShootTime();
                 Model model = map.get(sceneVo.getNum() + sceneVo.getType());
                 if(model == null){
                     continue;

+ 11 - 8
src/main/java/com/fdkankan/fusion/service/impl/ModelServiceImpl.java

@@ -376,15 +376,18 @@ public class ModelServiceImpl extends ServiceImpl<IModelMapper, Model> implement
     }
 
 
+    @Override
+    public Model getByUploadId(Integer uploadId) {
+        LambdaQueryWrapper<Model> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(Model::getUploadId,uploadId);
+        List<Model> list = this.list(wrapper);
+        if(list.isEmpty()){
+            return null;
+        }
+        return list.get(0);
+    }
 
-
-
-
-
-
-
-
-    private String getGlbUrl(Integer type, String num,Model model,String scenePath) {
+    private String getGlbUrl(Integer type, String num, Model model, String scenePath) {
         if(type == 0 || type == 1 || type == 4 || type == 6 || type == 7){ //看看,看见
             //ShellUtil.yunDownload(String.format(FilePath.OBJ_OSS_PATH, num)+"/data/mesh" ,objPath);
 

+ 6 - 2
src/main/java/com/fdkankan/fusion/service/impl/ScenePlusServiceImpl.java

@@ -4,6 +4,7 @@ package com.fdkankan.fusion.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.fusion.common.PageInfo;
+import com.fdkankan.fusion.entity.Scene;
 import com.fdkankan.fusion.entity.ScenePlus;
 import com.fdkankan.fusion.mapper.IScenePlusMapper;
 import com.fdkankan.fusion.request.CaseParam;
@@ -68,9 +69,12 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
         wrapper.orderByDesc(ScenePlus::getId);
         Page<ScenePlus> page =  this.page(new Page<>(param.getPageNum(), param.getPageSize()),wrapper);
         List<String> collect = page.getRecords().stream().map(ScenePlus::getNum).collect(Collectors.toList());
-        HashMap<String, String> mappingMap = sceneService.getMappingMap(collect);
+        HashMap<String, Scene> mappingMap = sceneService.getMappingMap(collect);
         for (ScenePlus record : page.getRecords()) {
-            record.setMapping(mappingMap.get(record.getNum()));
+            Scene sceneVo = mappingMap.get(record.getNum());
+            if(sceneVo != null){
+                record.setMapping(sceneVo.getMapping());
+            }
         }
         return page;
     }

+ 3 - 3
src/main/java/com/fdkankan/fusion/service/impl/SceneServiceImpl.java

@@ -44,10 +44,10 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
     }
 
     @Override
-    public HashMap<String, String> getMappingMap(List<String> numList) {
-        HashMap<String, String> map = new HashMap<>();
+    public HashMap<String, Scene> getMappingMap(List<String> numList) {
+        HashMap<String, Scene> map = new HashMap<>();
         List<Scene> byNumList = this.getByNumList(numList);
-        byNumList.forEach(e -> map.put(e.getSceneCode(),e.getMapping()));
+        byNumList.forEach(e -> map.put(e.getSceneCode(),e));
         return map;
     }
 }