TraceController.java 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. package com.iden.bms.controller;
  2. import com.iden.bms.service.TraceService;
  3. import com.iden.common.annotation.Permission;
  4. import com.iden.common.exception.BDException;
  5. import com.iden.common.logaspect.LogAnnotation;
  6. import com.iden.common.logaspect.OperateType;
  7. import com.iden.common.util.Result;
  8. import com.iden.common.util.WebPageUtils;
  9. import com.iden.common.vo.CameraVideoVO;
  10. import com.iden.common.vo.TraceVO;
  11. import com.iden.common.vo.UserLoginedConvertVO;
  12. import io.swagger.annotations.*;
  13. import lombok.extern.slf4j.Slf4j;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.web.bind.annotation.*;
  16. import org.springframework.web.multipart.MultipartFile;
  17. import javax.servlet.http.HttpServletRequest;
  18. import javax.servlet.http.HttpServletResponse;
  19. import java.util.List;
  20. import java.util.Map;
  21. /**
  22. * @Author: lilt
  23. * @Date: 2021/5/26
  24. * @Desc:
  25. */
  26. @RestController
  27. @Api(value = "TraceController", tags = { "轨迹管理" })
  28. @Slf4j
  29. @RequestMapping("/bms/trace")
  30. @Permission
  31. public class TraceController {
  32. @Autowired
  33. private TraceService traceService;
  34. @ApiOperation(value = "图像上传")
  35. @ApiImplicitParams({
  36. @ApiImplicitParam(name = "token", value = "放在请求头中的令牌",
  37. dataType = "String", paramType = "header",
  38. required = true)
  39. })
  40. @CrossOrigin
  41. @PostMapping(value = "/uploadImage", headers="content-type=multipart/form-data",produces = "application/json;charset=UTF-8")
  42. @LogAnnotation(
  43. type = OperateType.UPLOAD,
  44. moduleName = "上传图像获取目标轨迹",
  45. description = "上传图像获取目标轨迹"
  46. )
  47. public Result<String> uploadImage(@ApiParam(value="图像",required=true) MultipartFile file,
  48. HttpServletRequest request, @RequestHeader(name = "token") String token) {
  49. try {
  50. String imageUrl = traceService.uploadImage(file);
  51. return Result.success("上传成功!",imageUrl);
  52. } catch (BDException e) {
  53. log.error("图像上传出现异常",e);
  54. return Result.error(e.getMessage());
  55. } catch (Exception e) {
  56. log.error("轨迹管理: 图像上传出现异常",e);
  57. return Result.error("图像上传失败!");
  58. }
  59. }
  60. @GetMapping("/listUploadImagesTrace")
  61. @ApiOperation(value = "使用上传图像获取目标轨迹列表(地图打点划线) ")
  62. @ApiImplicitParams(value = {
  63. @ApiImplicitParam(paramType = "query", name = "imageNames", value = "图像名称,多个用逗号分割,格式: 新名字__老名字,新名字__老名字,新名字__老名字"),
  64. @ApiImplicitParam(paramType = "query", name = "beginTime", value = "开始时间(yyyy-MM-dd HH:mm:ss)"),
  65. @ApiImplicitParam(paramType = "query", name = "endTime", value = "结束时间(yyyy-MM-dd HH:mm:ss)")
  66. })
  67. public Result<Map<String,List<TraceVO>>> listUploadImagesTrace(HttpServletRequest request, @RequestHeader(value = "token") String token,
  68. @RequestParam(value = "imageNames", required = true) String imageNames,
  69. @RequestParam(value = "beginTime", required = false) String beginTime,
  70. @RequestParam(value = "endTime", required = false) String endTime){
  71. try {
  72. UserLoginedConvertVO loginUser = WebPageUtils.getCurrentLoginedUser(request);
  73. Map<String,List<TraceVO>> datas = this.traceService.listUploadImagesTrace(imageNames,beginTime,endTime,loginUser);
  74. return Result.success(datas);
  75. }catch (Exception e) {
  76. log.error("轨迹管理: 使用上传图像获取目标轨迹列表出现异常",e);
  77. return Result.error( "获取列表失败");
  78. }
  79. }
  80. @GetMapping("/getCameraVideoList")
  81. @ApiOperation(value = "获取摄像机视频列表")
  82. @ApiImplicitParams(value = {
  83. @ApiImplicitParam(paramType = "query", name = "cameraId", value = "摄像机ID",required = true),
  84. @ApiImplicitParam(paramType = "query", name = "uid", value = "唯一生物学标识"),
  85. @ApiImplicitParam(paramType = "query", name = "beginTime", value = "开始时间(yyyy-MM-dd HH:mm:ss"),
  86. @ApiImplicitParam(paramType = "query", name = "endTime", value = "结束时间(yyyy-MM-dd HH:mm:ss)")
  87. })
  88. public Result<List<CameraVideoVO>> getCameraVideoList(HttpServletRequest request, @RequestHeader("token") String token,
  89. @RequestParam(value = "cameraId", required = true) Long cameraId,
  90. @RequestParam(value = "uid", required = false) Long uid,
  91. @RequestParam(value = "beginTime", required = false) String beginTime,
  92. @RequestParam(value = "endTime", required = false) String endTime){
  93. List<CameraVideoVO> datas = this.traceService.getCameraVideoList(cameraId,uid,beginTime,endTime);
  94. return Result.success("查询成功!",datas);
  95. }
  96. /**
  97. * 轨迹下载
  98. * @param
  99. * @return
  100. */
  101. @ApiOperation(value = "轨迹下载")
  102. @PostMapping({"/exportToExcel"})
  103. @LogAnnotation(
  104. type = OperateType.EXPORT,
  105. moduleName = "轨迹下载",
  106. description = "轨迹下载"
  107. )
  108. public void exportToExcel( HttpServletRequest request,@RequestHeader(name = "token", required = true) String token,
  109. HttpServletResponse response,
  110. @RequestBody Map<String,List<TraceVO>> traceVOSMap) {
  111. try {
  112. UserLoginedConvertVO loginUser = WebPageUtils.getCurrentLoginedUser(request);
  113. this.traceService.exportToExcel(traceVOSMap,loginUser ,response);
  114. } catch (BDException e) {
  115. log.error("轨迹下载出现异常",e);
  116. } catch (Exception e) {
  117. log.error("轨迹管理: 轨迹下载出现异常",e);
  118. }
  119. }
  120. @GetMapping("/cutVideo")
  121. @ApiOperation(value = "剪辑视频 ")
  122. @ApiImplicitParams(value = {
  123. @ApiImplicitParam(paramType = "query", name = "videoId", value = "视频ID",required = true),
  124. @ApiImplicitParam(paramType = "query", name = "beginTime", value = "开始时间(HH:mm:ss)",required = true),
  125. @ApiImplicitParam(paramType = "query", name = "endTime", value = "结束时间(HH:mm:ss)",required = true)
  126. })
  127. public Result<String> cutVideo(HttpServletRequest request, @RequestHeader(value = "token") String token,
  128. @RequestParam(value = "videoId", required = true) Long videoId,
  129. @RequestParam(value = "beginTime", required = true) String beginTime,
  130. @RequestParam(value = "endTime", required = true) String endTime){
  131. try {
  132. UserLoginedConvertVO loginUser = WebPageUtils.getCurrentLoginedUser(request);
  133. String datas = this.traceService.cutVideo(videoId,beginTime,endTime,loginUser);
  134. return Result.success("剪辑成功",datas);
  135. }catch (Exception e) {
  136. log.error("轨迹管理: 剪辑视频出现异常",e);
  137. return Result.error( "剪辑视频失败");
  138. }
  139. }
  140. }