|
@@ -1,22 +1,24 @@
|
|
package com.fdkankan.fusion.controller;
|
|
package com.fdkankan.fusion.controller;
|
|
|
|
|
|
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
import com.fdkankan.fusion.aop.PushJm;
|
|
import com.fdkankan.fusion.aop.PushJm;
|
|
import com.fdkankan.fusion.common.ResultCode;
|
|
import com.fdkankan.fusion.common.ResultCode;
|
|
import com.fdkankan.fusion.common.ResultData;
|
|
import com.fdkankan.fusion.common.ResultData;
|
|
-import com.fdkankan.fusion.entity.CaseFusion;
|
|
|
|
-import com.fdkankan.fusion.entity.FusionNum;
|
|
|
|
-import com.fdkankan.fusion.entity.Model;
|
|
|
|
-import com.fdkankan.fusion.entity.ScenePlus;
|
|
|
|
|
|
+import com.fdkankan.fusion.common.util.FileWriterUtil;
|
|
|
|
+import com.fdkankan.fusion.entity.*;
|
|
import com.fdkankan.fusion.exception.BusinessException;
|
|
import com.fdkankan.fusion.exception.BusinessException;
|
|
import com.fdkankan.fusion.request.FusionParam;
|
|
import com.fdkankan.fusion.request.FusionParam;
|
|
|
|
+import com.fdkankan.fusion.request.SceneNumParam;
|
|
import com.fdkankan.fusion.response.CaseFusionVo;
|
|
import com.fdkankan.fusion.response.CaseFusionVo;
|
|
|
|
+import com.fdkankan.fusion.response.FusionNumVo;
|
|
import com.fdkankan.fusion.response.SceneVo;
|
|
import com.fdkankan.fusion.response.SceneVo;
|
|
import com.fdkankan.fusion.service.*;
|
|
import com.fdkankan.fusion.service.*;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
+import scala.Int;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.Arrays;
|
|
import java.util.Arrays;
|
|
@@ -48,65 +50,71 @@ public class CaseFusionController extends BaseController{
|
|
IModelService modelService;
|
|
IModelService modelService;
|
|
@Autowired
|
|
@Autowired
|
|
IScenePlusService scenePlusService;
|
|
IScenePlusService scenePlusService;
|
|
-
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ ICommonUploadService commonUploadService;
|
|
@GetMapping("/list")
|
|
@GetMapping("/list")
|
|
- public ResultData allList(@RequestParam(required = false) Integer caseId){
|
|
|
|
- return ResultData.ok(fusionNumService.getListByCaseId(caseId,null));
|
|
|
|
|
|
+ public ResultData allList(@RequestParam(required = false) Integer fusionId){
|
|
|
|
+ return ResultData.ok(getSceneListVo(fusionId));
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+
|
|
@GetMapping("/info")
|
|
@GetMapping("/info")
|
|
public ResultData info(@RequestParam(required = false) Integer fusionId){
|
|
public ResultData info(@RequestParam(required = false) Integer fusionId){
|
|
CaseFusion caseFusion = caseFusionService.getById(fusionId);
|
|
CaseFusion caseFusion = caseFusionService.getById(fusionId);
|
|
if(caseFusion == null){
|
|
if(caseFusion == null){
|
|
throw new BusinessException(ResultCode.RECORD_NOT_EXIST);
|
|
throw new BusinessException(ResultCode.RECORD_NOT_EXIST);
|
|
}
|
|
}
|
|
- CaseFusionVo vo = new CaseFusionVo();
|
|
|
|
- BeanUtils.copyProperties(caseFusion,vo);
|
|
|
|
- List<SceneVo> sceneVos = new ArrayList<>();
|
|
|
|
-
|
|
|
|
- List<FusionNum> fusionNumList = fusionNumService.getByFusionId(fusionId);
|
|
|
|
- List<Integer> modelIds = fusionNumList.stream().map(FusionNum::getModelId).collect(Collectors.toList());
|
|
|
|
- List<Model> listByModelIds = modelService.getListByModelIds(modelIds);
|
|
|
|
-
|
|
|
|
- List<String> numList = listByModelIds.stream().filter(e -> e.getNum() != null).map(Model::getNum).collect(Collectors.toList());
|
|
|
|
-
|
|
|
|
- List<ScenePlus> scenePlusList = scenePlusService.getByNumList(numList);
|
|
|
|
- HashMap<String,ScenePlus> map = new HashMap<>();
|
|
|
|
- scenePlusList.stream().forEach(e -> map.put(e.getNum(),e));
|
|
|
|
-
|
|
|
|
- for (Model model : listByModelIds) {
|
|
|
|
- SceneVo sceneVo = new SceneVo();
|
|
|
|
- BeanUtils.copyProperties(model,sceneVo);
|
|
|
|
- ScenePlus scenePlus = map.get(model.getNum());
|
|
|
|
- if(model.getNum() != null && scenePlus != null){
|
|
|
|
- BeanUtils.copyProperties(scenePlus,sceneVo);
|
|
|
|
- sceneVo.setStatus(scenePlus.getSceneStatus() == -2 ? 2:scenePlus.getSceneStatus());
|
|
|
|
- sceneVo.setName(scenePlus.getTitle());
|
|
|
|
- sceneVo.setSceneName(scenePlus.getTitle());
|
|
|
|
- }
|
|
|
|
- if(model.getNum() == null){
|
|
|
|
- sceneVo.setStatus(2);
|
|
|
|
- }
|
|
|
|
- sceneVos.add(sceneVo);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- vo.setSceneVoList(sceneVos);
|
|
|
|
-
|
|
|
|
- return ResultData.ok(vo);
|
|
|
|
|
|
+// CaseFusionVo vo = new CaseFusionVo();
|
|
|
|
+// BeanUtils.copyProperties(caseFusion,vo);
|
|
|
|
+// vo.setSceneVoList(getSceneListVo(fusionId));
|
|
|
|
+ return ResultData.ok(caseFusion);
|
|
}
|
|
}
|
|
|
|
|
|
@PostMapping("/add")
|
|
@PostMapping("/add")
|
|
@PushJm(event_content = "添加模型")
|
|
@PushJm(event_content = "添加模型")
|
|
public ResultData add(@RequestBody FusionParam param){
|
|
public ResultData add(@RequestBody FusionParam param){
|
|
- if( param.getFusionId() == null || StringUtils.isNotBlank(param.getNum())){
|
|
|
|
|
|
+ if( param.getFusionId() == null ){
|
|
throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
|
|
throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
|
|
}
|
|
}
|
|
- ScenePlus scenePlus = scenePlusService.getByNum(param.getNum());
|
|
|
|
- if(scenePlus == null){
|
|
|
|
- throw new BusinessException(ResultCode.RECORD_NOT_EXIST);
|
|
|
|
|
|
+ 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(commonUpload.getConvertType());
|
|
|
|
+ JSONArray jsonArray = new JSONArray();
|
|
|
|
+ jsonArray.add(commonUpload.getFileUrl());
|
|
|
|
+ model.setModelGlbUrl(jsonArray.toJSONString());
|
|
|
|
+ modelService.save(model);
|
|
|
|
+ }
|
|
|
|
+ return ResultData.ok(fusionNumService.addModel(param,model.getModelId()));
|
|
}
|
|
}
|
|
|
|
+ ScenePlus scenePlus = scenePlusService.getByNum(param.getNum());
|
|
|
|
+ return ResultData.ok(fusionNumService.add(param,scenePlus,param.getIsObj()));
|
|
|
|
+ }
|
|
|
|
|
|
- return ResultData.ok(fusionNumService.add(param,scenePlus));
|
|
|
|
|
|
+ @PostMapping("/updateInfo")
|
|
|
|
+ @PushJm(event_content = "修改模型")
|
|
|
|
+ public ResultData updateInfo(@RequestBody CaseFusion caseFusion){
|
|
|
|
+ if(caseFusion.getFusionId() == null){
|
|
|
|
+ throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
|
|
|
|
+ }
|
|
|
|
+ caseFusion.setUpdateTime(null);
|
|
|
|
+ caseFusionService.updateById(caseFusion);
|
|
|
|
+ return ResultData.ok();
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -128,5 +136,50 @@ public class CaseFusionController extends BaseController{
|
|
fusionNumService.deleteById(param.getFusionNumId());
|
|
fusionNumService.deleteById(param.getFusionNumId());
|
|
return ResultData.ok();
|
|
return ResultData.ok();
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ private List<FusionNumVo> getSceneListVo(Integer fusionId) {
|
|
|
|
+ List<FusionNumVo> sceneVos = new ArrayList<>();
|
|
|
|
+ List<FusionNum> fusionNumList = fusionNumService.getByFusionId(fusionId);
|
|
|
|
+
|
|
|
|
+ List<Integer> modelIds = fusionNumList.stream().map(FusionNum::getModelId).collect(Collectors.toList());
|
|
|
|
+ List<Model> listByModelIds = modelService.getListByModelIds(modelIds);
|
|
|
|
+ HashMap<Integer,Model> modelMap = new HashMap<>();
|
|
|
|
+ listByModelIds.stream().forEach(e -> modelMap.put(e.getModelId(),e));
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ List<String> numList = listByModelIds.stream().filter(e -> e.getNum() != null).map(Model::getNum).collect(Collectors.toList());
|
|
|
|
+ List<ScenePlus> scenePlusList = scenePlusService.getByNumList(numList);
|
|
|
|
+ HashMap<String,ScenePlus> map = new HashMap<>();
|
|
|
|
+ scenePlusList.stream().forEach(e -> map.put(e.getNum(),e));
|
|
|
|
+
|
|
|
|
+ for (FusionNum fusionNum : fusionNumList) {
|
|
|
|
+ FusionNumVo vo = new FusionNumVo();
|
|
|
|
+ BeanUtils.copyProperties(fusionNum,vo);
|
|
|
|
+ SceneVo sceneVo = new SceneVo();
|
|
|
|
+ Model model = modelMap.get(fusionNum.getModelId());
|
|
|
|
+ if(model != null){
|
|
|
|
+ BeanUtils.copyProperties(model,sceneVo);
|
|
|
|
+ if(model.getNum() != null ){
|
|
|
|
+ ScenePlus scenePlus = map.get(model.getNum());
|
|
|
|
+ if(scenePlus != null){
|
|
|
|
+ BeanUtils.copyProperties(scenePlus,sceneVo);
|
|
|
|
+ sceneVo.setStatus(scenePlus.getSceneStatus() == -2 ? 2:scenePlus.getSceneStatus());
|
|
|
|
+ sceneVo.setName(scenePlus.getTitle());
|
|
|
|
+ sceneVo.setSceneName(scenePlus.getTitle());
|
|
|
|
+ }
|
|
|
|
+ }else {
|
|
|
|
+ sceneVo.setStatus(2);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ vo.setSceneData(sceneVo);
|
|
|
|
+ sceneVos.add(vo);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return sceneVos;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|