TaskTrackController.java 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. package com.huaxu.track.controller;
  2. import com.huaxu.common.ConvertXY;
  3. import com.huaxu.common.MyPoint;
  4. import com.huaxu.entity.Message;
  5. import com.huaxu.model.AjaxMessage;
  6. import com.huaxu.model.LoginUser;
  7. import com.huaxu.model.ResultStatus;
  8. import com.huaxu.track.dto.GpsDataHisDto;
  9. import com.huaxu.track.entity.GpsDataHis;
  10. import com.huaxu.track.entity.TaskTrack;
  11. import com.huaxu.track.service.GpsDataHisService;
  12. import com.huaxu.track.service.TaskTrackService;
  13. import com.huaxu.util.UserUtil;
  14. import io.swagger.annotations.Api;
  15. import io.swagger.annotations.ApiOperation;
  16. import io.swagger.annotations.ApiParam;
  17. import org.apache.commons.lang3.StringUtils;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.web.bind.annotation.*;
  20. import java.util.ArrayList;
  21. import java.util.Date;
  22. import java.util.List;
  23. @RestController
  24. @RequestMapping("/track/TaskTrack")
  25. @Api(tags = "任务轨迹")
  26. public class TaskTrackController {
  27. @Autowired
  28. TaskTrackService taskTrackService;
  29. @Autowired
  30. GpsDataHisService gpsDataHisService;
  31. /**
  32. * 新增一条数据
  33. *
  34. * @param
  35. * @return Response对象
  36. */
  37. @RequestMapping(value = "startTrack", method = RequestMethod.GET)
  38. @ApiOperation(value = "开始轨迹")
  39. public AjaxMessage<Integer> startTrack(@ApiParam(value = "任务id", required = true) @RequestParam Integer taskId) {
  40. TaskTrack taskTrack=new TaskTrack();
  41. LoginUser currentUser = UserUtil.getCurrentUser();
  42. taskTrack.setUserId(currentUser.getId());
  43. taskTrack.setTaskId(taskId);
  44. taskTrack.setTaskStartDate(new Date());
  45. TaskTrack track=taskTrackService.selectTaskTrack(taskId,currentUser.getId());
  46. if(track == null) {
  47. taskTrackService.insert(taskTrack);
  48. }else{
  49. taskTrack.setId(track.getId());
  50. taskTrack.setTaskEndDate(null);
  51. taskTrackService.updateTrack(taskTrack);
  52. }
  53. return new AjaxMessage<>(ResultStatus.OK,taskTrack.getId());
  54. }
  55. /**
  56. * 修改一条数据
  57. *
  58. * @param
  59. * @return Response对象
  60. */
  61. @RequestMapping(value = "endTrack", method = RequestMethod.GET)
  62. @ApiOperation(value = "结束轨迹")
  63. public AjaxMessage<Boolean> endTrack( @ApiParam(value = "任务id", required = true) @RequestParam Integer taskId) {
  64. TaskTrack taskTrack=new TaskTrack();
  65. LoginUser currentUser = UserUtil.getCurrentUser();
  66. taskTrack.setTaskEndDate(new Date());
  67. TaskTrack track=taskTrackService.selectTaskTrack(taskId,currentUser.getId());
  68. if(track != null) {
  69. taskTrack.setId(track.getId());
  70. taskTrackService.updateTrack(taskTrack);
  71. }
  72. return new AjaxMessage<>(ResultStatus.OK);
  73. }
  74. /**
  75. * 查询任务轨迹
  76. *
  77. * @param
  78. * @return Response对象
  79. */
  80. @RequestMapping(value = "selectTaskTrack", method = RequestMethod.GET)
  81. @ApiOperation(value = "查询任务轨迹")
  82. public AjaxMessage<List<GpsDataHisDto>> selectTaskTrack(
  83. @ApiParam(value = "任务id", required = true) @RequestParam Integer taskId,
  84. @ApiParam(value = "用户id", required = false) @RequestParam(required = false) Integer userId,
  85. @ApiParam(value = "wkid", required = false) @RequestParam(required = false) String wkid,
  86. @ApiParam(value = "偏移量(x,y)", required = false) @RequestParam(required = false) String moveXY) {
  87. LoginUser currentUser = UserUtil.getCurrentUser();
  88. userId=userId==null?currentUser.getId():userId;
  89. TaskTrack track=taskTrackService.selectTaskTrack(taskId,userId);
  90. List<GpsDataHis> gpsList=gpsDataHisService.selectGpsDataHis(track);
  91. List<GpsDataHisDto> result=new ArrayList<>();
  92. //转换坐标
  93. for (GpsDataHis gpsDataHis:gpsList) {
  94. GpsDataHisDto gpsDataHisDto=new GpsDataHisDto();
  95. gpsDataHisDto.setId(gpsDataHis.getId());
  96. gpsDataHisDto.setUserId(gpsDataHis.getUserId());
  97. gpsDataHisDto.setUploadDate(gpsDataHis.getUploadDate());
  98. gpsDataHisDto.setLatitude(gpsDataHis.getLatitude());
  99. gpsDataHisDto.setLongtitude(gpsDataHis.getLongtitude());
  100. if(!StringUtils.isEmpty(wkid) && wkid.equals("2360")){
  101. MyPoint myPoint= ConvertXY.ConvertXYToXian80(gpsDataHis.getLongtitude().toString(),
  102. gpsDataHis.getLatitude().toString(),moveXY);
  103. gpsDataHisDto.setConvertX(myPoint.getX());
  104. gpsDataHisDto.setConvertY(myPoint.getY());
  105. }else if(!StringUtils.isEmpty(wkid) && wkid.equals("3857")){
  106. MyPoint myPoint= ConvertXY.ConvertXYToMercato(gpsDataHis.getLongtitude().toString(),
  107. gpsDataHis.getLatitude().toString(),moveXY);
  108. gpsDataHisDto.setConvertX(myPoint.getX());
  109. gpsDataHisDto.setConvertY(myPoint.getY());
  110. }
  111. result.add(gpsDataHisDto);
  112. }
  113. return new AjaxMessage<>(ResultStatus.OK, result);
  114. }
  115. }