CaseFusionController.java 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. package com.fdkankan.fusion.controller;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.fdkankan.fusion.common.ResultCode;
  4. import com.fdkankan.fusion.common.ResultData;
  5. import com.fdkankan.fusion.common.util.CameraUtil;
  6. import com.fdkankan.fusion.entity.*;
  7. import com.fdkankan.fusion.entity.jsonEntity.Transform;
  8. import com.fdkankan.fusion.exception.BusinessException;
  9. import com.fdkankan.fusion.request.FusionParam;
  10. import com.fdkankan.fusion.response.FusionNumVo;
  11. import com.fdkankan.fusion.response.SceneVo;
  12. import com.fdkankan.fusion.service.*;
  13. import org.apache.commons.lang3.StringUtils;
  14. import org.springframework.beans.BeanUtils;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.web.bind.annotation.*;
  17. import java.util.ArrayList;
  18. import java.util.Arrays;
  19. import java.util.HashMap;
  20. import java.util.List;
  21. import java.util.stream.Collectors;
  22. /**
  23. * <p>
  24. * 前端控制器
  25. * </p>
  26. *
  27. * @author
  28. * @since 2022-08-04
  29. */
  30. @RestController
  31. @RequestMapping("/caseFusion")
  32. public class CaseFusionController extends BaseController{
  33. @Autowired
  34. ICaseFusionService caseFusionService;
  35. @Autowired
  36. IFusionNumService fusionNumService;
  37. @Autowired
  38. IFusionMeterService fusionMeterService;
  39. @Autowired
  40. ICaseTagPointService caseTagPointService;
  41. @Autowired
  42. IModelService modelService;
  43. @Autowired
  44. IScenePlusService scenePlusService;
  45. @Autowired
  46. IScenePlusExtService scenePlusExtService;
  47. @GetMapping("/list")
  48. public ResultData allList(@RequestParam(required = false) Integer fusionId){
  49. return ResultData.ok(getSceneListVo(fusionId));
  50. }
  51. @GetMapping("/info")
  52. public ResultData info(@RequestParam(required = false) Integer fusionId){
  53. CaseFusion caseFusion = caseFusionService.getById(fusionId);
  54. if(caseFusion == null){
  55. throw new BusinessException(ResultCode.RECORD_NOT_EXIST);
  56. }
  57. return ResultData.ok(caseFusion);
  58. }
  59. @PostMapping("/add")
  60. public ResultData add(@RequestBody FusionParam param){
  61. if( param.getFusionId() == null ){
  62. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  63. }
  64. if((param.getIsObj() == null || StringUtils.isBlank(param.getNum())) && param.getUploadId() == null){
  65. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  66. }
  67. ScenePlus scenePlus = scenePlusService.getByNum(param.getNum());
  68. ScenePlusExt scenePlusExt = scenePlusExtService.getByPlusId(scenePlus.getId());
  69. scenePlus.setScenePlusExt(scenePlusExt);
  70. return ResultData.ok(fusionNumService.add(param,scenePlus,param.getIsObj()));
  71. }
  72. @PostMapping("/updateInfo")
  73. public ResultData updateInfo(@RequestBody CaseFusion caseFusion){
  74. if(caseFusion.getFusionId() == null){
  75. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  76. }
  77. caseFusion.setUpdateTime(null);
  78. caseFusionService.updateById(caseFusion);
  79. return ResultData.ok();
  80. }
  81. @PostMapping("/delFusion")
  82. public ResultData delFusion(@RequestBody CaseFusion caseFusion){
  83. if(caseFusion.getFusionId() == null){
  84. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  85. }
  86. caseFusionService.removeById(caseFusion.getFusionId());
  87. return ResultData.ok();
  88. }
  89. /**
  90. * 修改模型相关信息
  91. */
  92. @PostMapping("/update")
  93. public ResultData update(@RequestBody FusionParam param){
  94. fusionNumService.updateModel(param);
  95. return ResultData.ok();
  96. }
  97. @PostMapping("/delete")
  98. public ResultData delete(@RequestBody FusionParam param){
  99. if(param.getFusionNumId() == null){
  100. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  101. }
  102. fusionNumService.deleteById(param.getFusionNumId());
  103. return ResultData.ok();
  104. }
  105. private List<FusionNumVo> getSceneListVo(Integer fusionId) {
  106. List<FusionNumVo> sceneVos = new ArrayList<>();
  107. List<FusionNum> fusionNumList = fusionNumService.getByFusionId(fusionId);
  108. List<Integer> modelIds = fusionNumList.stream().map(FusionNum::getModelId).collect(Collectors.toList());
  109. List<Model> listByModelIds = modelService.getListByModelIds(modelIds);
  110. HashMap<Integer,Model> modelMap = new HashMap<>();
  111. listByModelIds.stream().forEach(e -> modelMap.put(e.getModelId(),e));
  112. List<String> numList = listByModelIds.stream().filter(e -> e.getNum() != null).map(Model::getNum).collect(Collectors.toList());
  113. List<ScenePlus> scenePlusList = scenePlusService.getByNumList(numList);
  114. HashMap<String,ScenePlus> map = new HashMap<>();
  115. scenePlusList.stream().forEach(e -> map.put(e.getNum(),e));
  116. List<Long> plusIds = scenePlusList.stream().map(ScenePlus::getId).collect(Collectors.toList());
  117. List<ScenePlusExt> extList = scenePlusExtService.getByPlusIds(plusIds);
  118. HashMap<Long,ScenePlusExt> mapext = new HashMap<>();
  119. extList.stream().forEach(e -> mapext.put(e.getPlusId(),e));
  120. for (FusionNum fusionNum : fusionNumList) {
  121. Transform transform = JSONObject.parseObject(fusionNum.getTransform(),Transform.class);
  122. FusionNumVo vo = new FusionNumVo();
  123. vo.setTransform(transform);
  124. BeanUtils.copyProperties(fusionNum,vo);
  125. SceneVo sceneVo = new SceneVo();
  126. Model model = modelMap.get(fusionNum.getModelId());
  127. if(model != null){
  128. BeanUtils.copyProperties(model,sceneVo);
  129. if(model.getNum() != null ){
  130. ScenePlus scenePlus = map.get(model.getNum());
  131. if(scenePlus != null){
  132. BeanUtils.copyProperties(scenePlus,sceneVo);
  133. sceneVo.setStatus(scenePlus.getSceneStatus() == -2 ? 2:scenePlus.getSceneStatus());
  134. sceneVo.setName(scenePlus.getTitle());
  135. sceneVo.setSceneName(scenePlus.getTitle());
  136. sceneVo.setCreateTime(scenePlus.getCreateTime());
  137. ScenePlusExt scenePlusExt = mapext.get(scenePlus.getId());
  138. if(scenePlusExt != null){
  139. sceneVo.setRtkLocation(scenePlusExt.getRtkLocation());
  140. sceneVo.setOrientation(scenePlusExt.getOrientation());
  141. }
  142. }
  143. }else {
  144. sceneVo.setStatus(2);
  145. }
  146. sceneVo.setSourceName(CameraUtil.getSourceName(model.getType()));
  147. }
  148. vo.setSceneData(sceneVo);
  149. sceneVos.add(vo);
  150. }
  151. return sceneVos;
  152. }
  153. }