SceneController.java 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. package com.fdkankan.manage.controller;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.fdkankan.fyun.face.FYunFileServiceInterface;
  4. import com.fdkankan.manage.common.ResultCode;
  5. import com.fdkankan.manage.entity.SceneCopyLog;
  6. import com.fdkankan.manage.entity.ScenePlusExt;
  7. import com.fdkankan.manage.exception.BusinessException;
  8. import com.fdkankan.manage.common.ResultData;
  9. import com.fdkankan.manage.entity.ScenePlus;
  10. import com.fdkankan.manage.entity.ScenePro;
  11. import com.fdkankan.manage.httpClient.client.FdKKClient;
  12. import com.fdkankan.manage.service.*;
  13. import com.fdkankan.manage.vo.request.SceneParam;
  14. import lombok.extern.slf4j.Slf4j;
  15. import org.apache.commons.lang3.StringUtils;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.web.bind.annotation.*;
  18. import javax.annotation.Resource;
  19. import java.util.Arrays;
  20. import java.util.HashMap;
  21. /**
  22. * 相机场景管理
  23. */
  24. @RestController
  25. @RequestMapping("/service/manage/scene")
  26. @Slf4j
  27. public class SceneController {
  28. @Autowired
  29. ISceneProService sceneProService;
  30. @Autowired
  31. IScenePlusService scenePlusService;
  32. @Autowired
  33. IScenePlusExtService scenePlusExtService;
  34. @Autowired
  35. IDownService downService;
  36. @Autowired
  37. FdKKClient fdKKClient;
  38. @Autowired
  39. FYunFileServiceInterface fYunFileServiceInterface;
  40. @Autowired
  41. ISceneCopyLogService sceneCopyLogService;
  42. @PostMapping("/list")
  43. public ResultData list(@RequestBody SceneParam param){
  44. return ResultData.ok(sceneProService.pageList(param));
  45. }
  46. /**
  47. * 场景迁移
  48. * num 迁移场景码
  49. * snCode 迁移至相机snCode
  50. */
  51. @PostMapping("/move")
  52. public ResultData move(@RequestBody SceneParam param){
  53. if(StringUtils.isEmpty(param.getNum()) || StringUtils.isEmpty(param.getSnCode())){
  54. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  55. }
  56. sceneProService.move(param);
  57. return ResultData.ok();
  58. }
  59. /**
  60. * 场景复制
  61. * num 场景码
  62. */
  63. @PostMapping("/copy")
  64. public ResultData copy(@RequestBody SceneParam param) throws Exception {
  65. if(StringUtils.isEmpty(param.getNum())){
  66. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  67. }
  68. sceneProService.copy(param.getNum());
  69. return ResultData.ok();
  70. }
  71. /**
  72. * 场景删除
  73. * num 场景码
  74. */
  75. @PostMapping("/delete")
  76. public ResultData delete(@RequestBody SceneParam param){
  77. if(StringUtils.isEmpty(param.getNum())){
  78. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  79. }
  80. sceneProService.deleteByNum(param.getNum());
  81. return ResultData.ok();
  82. }
  83. /**
  84. * 检查下载
  85. * num 场景码
  86. */
  87. @GetMapping("/checkDownLoad")
  88. public ResultData checkDownLoad(@RequestParam(required = false) String num,
  89. @RequestParam(required = false,defaultValue = "0") Integer isObj){
  90. return ResultData.ok(downService.checkDownLoad(num,isObj));
  91. }
  92. /**
  93. * 下载场景
  94. * num 场景码
  95. */
  96. @GetMapping("/downScene")
  97. public ResultData downScene(@RequestParam(required = false) String num,
  98. @RequestParam(required = false,defaultValue = "0") Integer isObj){
  99. return ResultData.ok(downService.down(num,isObj));
  100. }
  101. /**
  102. * 下载场景进度条
  103. * num 场景码
  104. */
  105. @GetMapping("/downloadProcess")
  106. public ResultData downloadProcess(@RequestParam(required = false) String num,
  107. @RequestParam(required = false,defaultValue = "0") Integer isObj){
  108. return ResultData.ok(downService.downloadProcess(num,isObj));
  109. }
  110. /**
  111. * 场景重算
  112. * num 场景码
  113. */
  114. @GetMapping("/rebuildScene")
  115. public ResultData rebuild(@RequestParam(required = false) String num){
  116. String dataSource = null;
  117. ScenePro scenePro = sceneProService.getByNum(num);
  118. if(scenePro!=null && scenePro.getSceneSource() != 4){
  119. throw new BusinessException(ResultCode.V3_SCENE_REBUILD);
  120. }
  121. ScenePlus scenePlus = scenePlusService.getByNum(num);
  122. if(scenePlus == null && scenePro == null){
  123. throw new BusinessException(ResultCode.SCENE_NOT_EXIST);
  124. }
  125. if(scenePro != null){
  126. dataSource = scenePro.getDataSource();
  127. }
  128. if(scenePlus != null){
  129. ScenePlusExt scenePlusExt= scenePlusExtService.getByPlusId(scenePlus.getId());
  130. if(scenePlusExt!= null){
  131. dataSource = scenePlusExt.getDataSource();
  132. }
  133. }
  134. if(StringUtils.isBlank(dataSource)){
  135. throw new BusinessException(ResultCode.SCENE_REBUILD_ERROR);
  136. }
  137. Long countByNewNum = sceneCopyLogService.getCountByNewNum(num);
  138. if(countByNewNum >0){
  139. throw new BusinessException(ResultCode.COPY_NUM_NOTREBUILD);
  140. }
  141. if(!fYunFileServiceInterface.fileExist(dataSource.replace("/mnt/data","home")+"/data.fdage")){
  142. throw new BusinessException(ResultCode.SCENE_REBUILD_ERROR);
  143. }
  144. HashMap<String,Object> paramMap = new HashMap<>();
  145. paramMap.put("num",num);
  146. try {
  147. JSONObject jsonObject = fdKKClient.rebuildScene(paramMap);
  148. Integer code = jsonObject.getInteger("code");
  149. if(code != 0){
  150. log.error("场景重算失败:{},{}",num,jsonObject);
  151. throw new BusinessException(ResultCode.SCENE_REBUILD_ERROR);
  152. }
  153. }catch (Exception e){
  154. throw new BusinessException(ResultCode.SCENE_REBUILD_ERROR);
  155. }
  156. return ResultData.ok();
  157. }
  158. }