123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- package com.fdkankan.fusion.controller;
- 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.entity.*;
- import com.fdkankan.fusion.entity.jsonEntity.Transform;
- import com.fdkankan.fusion.exception.BusinessException;
- import com.fdkankan.fusion.request.FusionParam;
- import com.fdkankan.fusion.response.FusionNumVo;
- import com.fdkankan.fusion.response.SceneVo;
- import com.fdkankan.fusion.service.*;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.BeanUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.*;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.HashMap;
- import java.util.List;
- import java.util.stream.Collectors;
- /**
- * <p>
- * 前端控制器
- * </p>
- *
- * @author
- * @since 2022-08-04
- */
- @RestController
- @RequestMapping("/caseFusion")
- public class CaseFusionController extends BaseController{
- @Autowired
- ICaseFusionService caseFusionService;
- @Autowired
- IFusionNumService fusionNumService;
- @Autowired
- IFusionMeterService fusionMeterService;
- @Autowired
- ICaseTagPointService caseTagPointService;
- @Autowired
- IModelService modelService;
- @Autowired
- IScenePlusService scenePlusService;
- @Autowired
- IScenePlusExtService scenePlusExtService;
- @GetMapping("/list")
- public ResultData allList(@RequestParam(required = false) Integer fusionId){
- return ResultData.ok(getSceneListVo(fusionId));
- }
- @GetMapping("/info")
- public ResultData info(@RequestParam(required = false) Integer fusionId){
- CaseFusion caseFusion = caseFusionService.getById(fusionId);
- if(caseFusion == null){
- throw new BusinessException(ResultCode.RECORD_NOT_EXIST);
- }
- return ResultData.ok(caseFusion);
- }
- @PostMapping("/add")
- public ResultData add(@RequestBody FusionParam param){
- if( param.getFusionId() == null ){
- throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
- }
- if((param.getIsObj() == null || StringUtils.isBlank(param.getNum())) && param.getUploadId() == null){
- throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
- }
- ScenePlus scenePlus = scenePlusService.getByNum(param.getNum());
- ScenePlusExt scenePlusExt = scenePlusExtService.getByPlusId(scenePlus.getId());
- scenePlus.setScenePlusExt(scenePlusExt);
- return ResultData.ok(fusionNumService.add(param,scenePlus,param.getIsObj()));
- }
- @PostMapping("/updateInfo")
- 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();
- }
- @PostMapping("/delFusion")
- public ResultData delFusion(@RequestBody CaseFusion caseFusion){
- if(caseFusion.getFusionId() == null){
- throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
- }
- caseFusionService.removeById(caseFusion.getFusionId());
- return ResultData.ok();
- }
- /**
- * 修改模型相关信息
- */
- @PostMapping("/update")
- public ResultData update(@RequestBody FusionParam param){
- fusionNumService.updateModel(param);
- return ResultData.ok();
- }
- @PostMapping("/delete")
- public ResultData delete(@RequestBody FusionParam param){
- if(param.getFusionNumId() == null){
- throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
- }
- fusionNumService.deleteById(param.getFusionNumId());
- 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));
- List<Long> plusIds = scenePlusList.stream().map(ScenePlus::getId).collect(Collectors.toList());
- List<ScenePlusExt> extList = scenePlusExtService.getByPlusIds(plusIds);
- HashMap<Long,ScenePlusExt> mapext = new HashMap<>();
- extList.stream().forEach(e -> mapext.put(e.getPlusId(),e));
- for (FusionNum fusionNum : fusionNumList) {
- Transform transform = JSONObject.parseObject(fusionNum.getTransform(),Transform.class);
- FusionNumVo vo = new FusionNumVo();
- vo.setTransform(transform);
- 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());
- sceneVo.setCreateTime(scenePlus.getCreateTime());
- ScenePlusExt scenePlusExt = mapext.get(scenePlus.getId());
- if(scenePlusExt != null){
- sceneVo.setRtkLocation(scenePlusExt.getRtkLocation());
- sceneVo.setOrientation(scenePlusExt.getOrientation());
- }
- }
- }else {
- sceneVo.setStatus(2);
- }
- sceneVo.setSourceName(CameraUtil.getSourceName(model.getType()));
- }
- vo.setSceneData(sceneVo);
- sceneVos.add(vo);
- }
- return sceneVos;
- }
- }
|