Pu Zhibing
2025-03-10 922de4e688e18f508070972876002fa6a3810135
guns-admin/src/main/java/com/stylefeng/guns/modular/api/PatrolTaskController.java
@@ -1,5 +1,6 @@
package com.stylefeng.guns.modular.api;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.plugins.Page;
import com.stylefeng.guns.core.base.controller.BaseController;
import com.stylefeng.guns.core.common.constant.JwtConstants;
@@ -15,9 +16,11 @@
import com.stylefeng.guns.modular.system.util.videoGateway.VideoGateway;
import com.stylefeng.guns.modular.system.util.videoGateway.model.Ship;
import com.stylefeng.guns.modular.system.util.videoGateway.model.Vehicle;
import com.stylefeng.guns.modular.system.warpper.VehicleSpeed;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@@ -29,8 +32,9 @@
 * @author zhibing.pu
 * @Date 2024/12/17 20:18
 */
@Slf4j
@RestController
@RequestMapping("/base/patrolTask")
@RequestMapping("")
public class PatrolTaskController extends BaseController {
   @Resource
@@ -41,27 +45,31 @@
   
   
   
   @GetMapping("/getTaskDetailList")
   @GetMapping("/api/patrolTask/getTaskDetailList")
   @ApiOperation(value = "获取任务列表数据", tags = {"任务管理"})
   public PageInfoBT<TaskDetailList> getTaskDetailList(TaskDetailListVo vo){
      Page<TaskDetailList> pageInfo = new Page(vo.getOffset(), vo.getPageSize());
      Page<TaskDetailList> pageInfo = new Page(vo.getLimit(), vo.getOffset());
      List<TaskDetailList> taskDetailList = taskDetailService.getTaskDetailList(pageInfo, vo);
      pageInfo.setRecords(taskDetailList);
      return super.packForBT(pageInfo);
      PageInfoBT<TaskDetailList> taskDetailListPageInfoBT = super.packForBT(pageInfo);
      taskDetailListPageInfoBT.setSize(vo.getOffset());
      taskDetailListPageInfoBT.setCurrent(vo.getLimit());
      return taskDetailListPageInfoBT;
   }
   
   
   
   @DeleteMapping("/delTaskDetail")
   @DeleteMapping("/api/patrolTask/delTaskDetail")
   @ApiOperation(value = "删除任务", tags = {"任务管理"})
   public ResultUtil delTaskDetail(List<Integer> ids){
      taskDetailService.delTaskDetail(ids);
   public ResultUtil delTaskDetail(String ids){
      List<String> id = Arrays.asList(ids.split(","));
      taskDetailService.delTaskDetail(id);
      return ResultUtil.success();
   }
   
   
   
   @PostMapping("/addPatrolTask")
   @PostMapping("/api/patrolTask/addPatrolTask")
   @ApiOperation(value = "添加巡查任务", tags = {"任务管理"})
   public ResultUtil addPatrolTask(@RequestBody PatrolTaskVo vo, HttpServletRequest request){
      String token = request.getHeader(JwtConstants.AUTH_HEADER);
@@ -73,7 +81,7 @@
      return ResultUtil.success();
   }
   
   @GetMapping("/getImageModel")
   @GetMapping("/api/patrolTask/getImageModel")
   @ApiOperation(value = "获取图片模型", tags = {"任务管理"})
   public ResultUtil<List<Map<String, Object>>> getImageModel(){
      ImageModelEnum[] values = ImageModelEnum.values();
@@ -91,7 +99,7 @@
   
   
   
   @GetMapping("/getVideoChannel")
   @GetMapping("/api/patrolTask/getVideoChannel")
   @ApiOperation(value = "获取视频通道", tags = {"任务管理"})
   public ResultUtil<List<Map<String, Object>>> getVideoChannel(){
      VideoChannelEnum[] values = VideoChannelEnum.values();
@@ -108,71 +116,104 @@
   }
   
   
   @GetMapping("/getVehicleList")
   @GetMapping("/api/patrolTask/getVehicleList")
   @ApiOperation(value = "获取车辆列表", tags = {"任务管理"})
   public ResultUtil<List<Vehicle>> getVehicleList(){
   public ResultUtil<List<Vehicle>> getVehicleList(Integer year){
      List<Vehicle> vehicleList = VideoGateway.getVehicleList(null, null, null, 0);
      return ResultUtil.success(vehicleList);
      List<Vehicle> list = new ArrayList<>();
      if(null != year){
         for (Vehicle vehicle : vehicleList) {
            String vehicleGpsProtocol = vehicle.getVehicleGpsProtocol();
            if(2023 == year && null != vehicleGpsProtocol && vehicleGpsProtocol.equals("2")){
               list.add(vehicle);
            }
         }
      }else{
         list = vehicleList;
      }
      return ResultUtil.success(list);
   }
   
   
   
   @GetMapping("/getShipList")
   @GetMapping("/api/patrolTask/getShipList")
   @ApiOperation(value = "获取船舶列表", tags = {"任务管理"})
   public ResultUtil<List<Ship>> getShipList(){
   public ResultUtil<List<Ship>> getShipList(Integer year){
      List<Ship> shipList = VideoGateway.getShipList(null, null, null, 0);
      return ResultUtil.success(shipList);
      List<Ship> list = new ArrayList<>();
      if(null != year){
         for (Ship ship : shipList) {
            String vehicleGpsProtocol = ship.getVehicleGpsProtocol();
            if(2023 == year && null != vehicleGpsProtocol && vehicleGpsProtocol.equals("2")){
               list.add(ship);
            }
         }
      }else{
         list = shipList;
      }
      return ResultUtil.success(list);
   }
   
   
   
   @GetMapping("/getTaskRecordList")
   @GetMapping("/api/patrolTask/getTaskRecordList")
   @ApiOperation(value = "获取任务记录列表", tags = {"任务记录"})
   public PageInfoBT<TaskRecordList> getTaskRecordList(TaskRecordListVo vo){
      Page<TaskRecordList> pageInfo = new Page(vo.getOffset(), vo.getPageSize());
      Page<TaskRecordList> pageInfo = new Page(vo.getLimit(), vo.getOffset());
      List<TaskRecordList> taskRecordList = taskDetailService.getTaskRecordList(pageInfo, vo);
      pageInfo.setRecords(taskRecordList);
      return super.packForBT(pageInfo);
      PageInfoBT<TaskRecordList> taskRecordListPageInfoBT = super.packForBT(pageInfo);
      taskRecordListPageInfoBT.setSize(vo.getOffset());
      taskRecordListPageInfoBT.setCurrent(vo.getLimit());
      return taskRecordListPageInfoBT;
   }
   
   
   
   @GetMapping("/getTaskRecordInfo")
   @GetMapping("/api/patrolTask/getTaskRecordInfo")
   @ApiOperation(value = "获取任务记录详情", tags = {"任务记录"})
   public ResultUtil<TaskRecordInfo> getTaskRecordInfo(Integer id){
      TaskRecordInfo taskRecordInfo = taskDetailService.getTaskRecordInfo(id);
      return ResultUtil.success(taskRecordInfo);
   }
   
   @GetMapping("/getPictureDetailsVehicle")
   @PostMapping("/api/patrolTask/getPictureDetailsVehicle")
   @ApiOperation(value = "获取任务记录详情中的车船数据", tags = {"任务记录"})
   public ResultUtil<PictureDetailsVehicle> getPictureDetailsVehicle(PictureDetailsVo vo){
   public ResultUtil<PictureDetailsVehicle> getPictureDetailsVehicle(@RequestBody PictureDetailsVo vo){
      PictureDetailsVehicle pictureDetailsVehicle = taskDetailService.getPictureDetailsVehicle(vo);
      return ResultUtil.success(pictureDetailsVehicle);
   }
   
   
   
   @GetMapping("/getPictureDetails")
   @PostMapping("/api/patrolTask/getPictureDetails")
   @ApiOperation(value = "获取任务记录详情中的视频通道数据", tags = {"任务记录"})
   public PageInfoBT<PictureDetails> getPictureDetails(PictureDetailsVo vo){
      Page<PictureDetails> pageInfo = new Page(vo.getOffset(), vo.getPageSize());
   public PageInfoBT<PictureDetails> getPictureDetails(@RequestBody PictureDetailsVo vo){
      Page<PictureDetails> pageInfo = new Page(vo.getLimit(), vo.getOffset());
      List<PictureDetails> pictureDetails = taskDetailService.getPictureDetails(pageInfo, vo);
      pageInfo.setRecords(pictureDetails);
      return super.packForBT(pageInfo);
      PageInfoBT<PictureDetails> pictureDetailsPageInfoBT = super.packForBT(pageInfo);
      pictureDetailsPageInfoBT.setSize(vo.getOffset());
      pictureDetailsPageInfoBT.setCurrent(vo.getLimit());
      return pictureDetailsPageInfoBT;
   }
   
   
   
   @PostMapping("/manualAudit")
   @PostMapping("/api/patrolTask/manualAudit")
   @ApiOperation(value = "人工审核视频通道数据", tags = {"任务记录"})
   public ResultUtil manualAudit(@RequestBody ManualAuditVo vo){
      return taskDetailService.manualAudit(vo);
   public ResultUtil manualAudit(@RequestBody ManualAuditVo vo, HttpServletRequest request){
      String token = request.getHeader(JwtConstants.AUTH_HEADER);
      if (token != null && token.startsWith("Bearer ")) {
         token = token.substring(token.indexOf(" ") + 1);
      }
      String userId = JwtTokenUtil.getPrivateClaimFromToken(token, "userId");
      return taskDetailService.manualAudit(vo, userId);
   }
   
   
   
   @GetMapping("/downloadTaskRecord")
   @GetMapping("/api/patrolTask/downloadTaskRecord")
   @ApiOperation(value = "下载任务记录数据", tags = {"任务记录"})
   @ApiImplicitParams({
         @ApiImplicitParam(value = "列表数据id,多个逗号分隔", name = "ids", dataType = "String"),
@@ -187,4 +228,23 @@
      }
      taskDetailService.downloadTaskRecord(id, code, status, response);
   }
   @PostMapping("/base/patrolTask/vehicleSpeed")
   @ApiOperation(value = "变更车辆状态", tags = {"互联互通接口"})
   @ApiImplicitParams({
         @ApiImplicitParam(value = "车牌号", name = "vehicleNum", dataType = "String", required = true),
         @ApiImplicitParam(value = "状态(1=行驶中,2=已停止)", name = "vehicleStatus", dataType = "int", required = true),
         @ApiImplicitParam(value = "车辆类型(1=车,2=船)", name = "vehicleType", dataType = "int", required = true),
         @ApiImplicitParam(value = "通信号", name = "communicationNum", dataType = "String", required = true),
         @ApiImplicitParam(value = "gps协议", name = "vehicleGpsProtocol", dataType = "String", required = true),
         @ApiImplicitParam(value = "纬度", name = "latitude", dataType = "double", required = true),
         @ApiImplicitParam(value = "经度", name = "longitude", dataType = "double", required = true),
   })
   public ResultUtil vehicleSpeed(@RequestBody VehicleSpeed vehicleSpeed){
      log.info("推送车辆状态:{}", JSON.toJSONString(vehicleSpeed));
      patrolTaskService.vehicleSpeed(vehicleSpeed.getVehicleNum(), vehicleSpeed.getVehicleStatus(), vehicleSpeed.getVehicleType(),
            vehicleSpeed.getCommunicationNum(), vehicleSpeed.getVehicleGpsProtocol(), vehicleSpeed.getLatitude(), vehicleSpeed.getLongitude());
      return ResultUtil.success();
   }
}