Pu Zhibing
2024-12-23 05e753e2a094de490d34a50a60571835217cd1b8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
package com.stylefeng.guns.modular.api;
 
import com.baomidou.mybatisplus.plugins.Page;
import com.stylefeng.guns.core.base.controller.BaseController;
import com.stylefeng.guns.core.common.constant.JwtConstants;
import com.stylefeng.guns.core.page.PageInfoBT;
import com.stylefeng.guns.core.util.JwtTokenUtil;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.system.model.enums.ImageModelEnum;
import com.stylefeng.guns.modular.system.model.enums.VideoChannelEnum;
import com.stylefeng.guns.modular.system.model.vo.*;
import com.stylefeng.guns.modular.system.service.IPatrolTaskService;
import com.stylefeng.guns.modular.system.service.ITaskDetailService;
import com.stylefeng.guns.modular.system.util.ResultUtil;
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 io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
 
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
 
/**
 * @author zhibing.pu
 * @Date 2024/12/17 20:18
 */
@RestController
@RequestMapping("/base/patrolTask")
public class PatrolTaskController extends BaseController {
 
    @Resource
    private IPatrolTaskService patrolTaskService;
    
    @Resource
    private ITaskDetailService taskDetailService;
    
    
    
    @GetMapping("/getTaskDetailList")
    @ApiOperation(value = "获取任务列表数据", tags = {"任务管理"})
    public PageInfoBT<TaskDetailList> getTaskDetailList(TaskDetailListVo vo){
        Page<TaskDetailList> pageInfo = new Page(vo.getOffset(), vo.getPageSize());
        List<TaskDetailList> taskDetailList = taskDetailService.getTaskDetailList(pageInfo, vo);
        pageInfo.setRecords(taskDetailList);
        return super.packForBT(pageInfo);
    }
    
    
    
    @DeleteMapping("/delTaskDetail")
    @ApiOperation(value = "删除任务", tags = {"任务管理"})
    public ResultUtil delTaskDetail(List<Integer> ids){
        taskDetailService.delTaskDetail(ids);
        return ResultUtil.success();
    }
    
    
    
    @PostMapping("/addPatrolTask")
    @ApiOperation(value = "添加巡查任务", tags = {"任务管理"})
    public ResultUtil addPatrolTask(@RequestBody PatrolTaskVo 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");
        patrolTaskService.addPatrolTask(vo, userId);
        return ResultUtil.success();
    }
    
    @GetMapping("/getImageModel")
    @ApiOperation(value = "获取图片模型", tags = {"任务管理"})
    public ResultUtil<List<Map<String, Object>>> getImageModel(){
        ImageModelEnum[] values = ImageModelEnum.values();
        List<Map<String, Object>> list = new ArrayList<>();
        for (ImageModelEnum modelEnum : values) {
            String name = modelEnum.getName();
            String code = modelEnum.getCode();
            Map<String, Object> map = new HashMap<>();
            map.put("name", name);
            map.put("code", code);
            list.add(map);
        }
        return ResultUtil.success(list);
    }
    
    
    
    @GetMapping("/getVideoChannel")
    @ApiOperation(value = "获取视频通道", tags = {"任务管理"})
    public ResultUtil<List<Map<String, Object>>> getVideoChannel(){
        VideoChannelEnum[] values = VideoChannelEnum.values();
        List<Map<String, Object>> list = new ArrayList<>();
        for (VideoChannelEnum modelEnum : values) {
            String name = modelEnum.getName();
            Integer id = modelEnum.getId();
            Map<String, Object> map = new HashMap<>();
            map.put("name", name);
            map.put("id", id);
            list.add(map);
        }
        return ResultUtil.success(list);
    }
    
    
    @GetMapping("/getVehicleList")
    @ApiOperation(value = "获取车辆列表", tags = {"任务管理"})
    public ResultUtil<List<Vehicle>> getVehicleList(){
        List<Vehicle> vehicleList = VideoGateway.getVehicleList(null, null, null, 0);
        return ResultUtil.success(vehicleList);
    }
    
    
    
    @GetMapping("/getShipList")
    @ApiOperation(value = "获取船舶列表", tags = {"任务管理"})
    public ResultUtil<List<Ship>> getShipList(){
        List<Ship> shipList = VideoGateway.getShipList(null, null, null, 0);
        return ResultUtil.success(shipList);
    }
    
    
    
    @GetMapping("/getTaskRecordList")
    @ApiOperation(value = "获取任务记录列表", tags = {"任务记录"})
    public PageInfoBT<TaskRecordList> getTaskRecordList(TaskRecordListVo vo){
        Page<TaskRecordList> pageInfo = new Page(vo.getOffset(), vo.getPageSize());
        List<TaskRecordList> taskRecordList = taskDetailService.getTaskRecordList(pageInfo, vo);
        pageInfo.setRecords(taskRecordList);
        return super.packForBT(pageInfo);
    }
    
    
    
    @GetMapping("/getTaskRecordInfo")
    @ApiOperation(value = "获取任务记录详情", tags = {"任务记录"})
    public ResultUtil<TaskRecordInfo> getTaskRecordInfo(Integer id){
        TaskRecordInfo taskRecordInfo = taskDetailService.getTaskRecordInfo(id);
        return ResultUtil.success(taskRecordInfo);
    }
    
    @GetMapping("/getPictureDetailsVehicle")
    @ApiOperation(value = "获取任务记录详情中的车船数据", tags = {"任务记录"})
    public ResultUtil<PictureDetailsVehicle> getPictureDetailsVehicle(PictureDetailsVo vo){
        PictureDetailsVehicle pictureDetailsVehicle = taskDetailService.getPictureDetailsVehicle(vo);
        return ResultUtil.success(pictureDetailsVehicle);
    }
    
    
    
    @GetMapping("/getPictureDetails")
    @ApiOperation(value = "获取任务记录详情中的视频通道数据", tags = {"任务记录"})
    public PageInfoBT<PictureDetails> getPictureDetails(PictureDetailsVo vo){
        Page<PictureDetails> pageInfo = new Page(vo.getOffset(), vo.getPageSize());
        List<PictureDetails> pictureDetails = taskDetailService.getPictureDetails(pageInfo, vo);
        pageInfo.setRecords(pictureDetails);
        return super.packForBT(pageInfo);
    }
    
    
    
    @PostMapping("/manualAudit")
    @ApiOperation(value = "人工审核视频通道数据", tags = {"任务记录"})
    public ResultUtil manualAudit(@RequestBody ManualAuditVo vo){
        return taskDetailService.manualAudit(vo);
    }
    
    
    
    @GetMapping("/downloadTaskRecord")
    @ApiOperation(value = "下载任务记录数据", tags = {"任务记录"})
    @ApiImplicitParams({
            @ApiImplicitParam(value = "列表数据id,多个逗号分隔", name = "ids", dataType = "String"),
            @ApiImplicitParam(value = "状态(1=待执行,2=进行中,3=成功,4=失败)", name = "status", dataType = "int"),
            @ApiImplicitParam(value = "规则编号", name = "code", dataType = "String"),
    })
    public void downloadTaskRecord(String ids, String code, Integer status, HttpServletResponse response){
        List<String> id = null;
        if(ToolUtil.isNotEmpty(ids)){
            String[] split = ids.split(",");
            id = Arrays.asList(split);
        }
        taskDetailService.downloadTaskRecord(id, code, status, response);
    }
}