zhangnaisong
2024-03-31 4f0e32a1d289f2f63c0c79f41db37fa9f4492405
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
package com.ruoyi.device.uav.controller;
 
import com.alibaba.fastjson.JSON;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.device.uav.service.UavService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
 
import javax.annotation.PostConstruct;
import java.util.*;
 
 
import static org.springframework.http.HttpMethod.*;
 
/**
 * 相机设备Controller
 *
 * @author ruoyi
 * @date 2023-01-31
 */
@Slf4j(topic = "uav")
@RestController
@RequestMapping("/device/uav")
@Api(tags = "无人机外部接口")
public class ArdUavController extends BaseController {
 
    @Autowired
    private UavService uavService;
 
    @Value("${uav.enabled}")
    private Boolean uavEnabled;
 
    @PostConstruct
    public void created() {
        if(!uavEnabled){//无人机加入开关
            return;
        }
        this.uavService.login();
    }
 
 
    @GetMapping("/")
    @ApiOperation("无人机get接口")
    public Object get(@RequestParam String url) {
        return this.uavService.doUavRequest(GET, url, "{}");
 
    }
 
    @PostMapping("/")
    @ApiOperation("无人机post接口")
    public Object post(@RequestBody Map<String, String> param) {
        String url = param.get("url");
        String data = param.get("data");
        return this.uavService.doUavRequest(POST, url, data);
    }
 
    @DeleteMapping("/")
    @ApiOperation("无人机delete接口")
    public Object delete(@RequestBody Map<String, String> param) {
        String url = param.get("url");
        String data = param.get("data");
        return this.uavService.doUavRequest(DELETE, url, data);
    }
 
    @GetMapping("/getToken")
    @ApiOperation("无人机delete接口")
    public Object getToken() {
 
        return this.uavService.getToken();
    }
 
    @PostMapping("/checkPointValid")
    @ApiOperation("无人机检测航点有效性接口")
    public Object checkPointValid(@RequestBody Map<String,Map<String,Object>> param) {
        String url = "wayline/api/v1/waylines/planning/check_point_valid";
        return this.uavService.checkPointValid(url, param);
    }
 
    @PostMapping("/checkLineValid")
    @ApiOperation("无人机检测线路有效性接口")
    public Object checkLineValid(@RequestBody Map<String,List<Map<String,String>>> param) {
        String url = "wayline/api/v1/waylines/planning/check_line_valid";
        return this.uavService.checkLineValid(url, param);
    }
 
    @GetMapping("/getWorkspaceId")
    @ApiOperation("获取工作空间主键")
    public AjaxResult getWorkspaceId() {
        try{
            String workspaceId = this.uavService.getWorkspaceId();
            if(workspaceId != null){
                return AjaxResult.success(workspaceId);
            }else{
                return AjaxResult.success("");
            }
        }catch(Exception e){
            e.printStackTrace();
            return AjaxResult.error();
        }
    }
 
    @PostMapping("/addWaylinesPlanning")
    @ApiOperation("新增航线")
    public Object addWaylinesPlanning(@RequestBody Map<String,Object> param) {
        String url = "wayline/api/v1/waylines/planning";
        return this.uavService.addWaylinesPlanning(url, param);
    }
 
    @PostMapping("/deleteWaylinesPlanning")
    @ApiOperation("删除航线")
    public Object deleteWaylinesPlanning(@RequestBody Map<String,String> param) {
        String url = "wayline/api/v1/waylines/delete/";
        return this.uavService.deleteWaylinesPlanning(url, param);
    }
 
    @PutMapping("/updateWaylinesPlanning")
    @ApiOperation("修改航线")
    public Object updateWaylinesPlanning(@RequestBody Map<String,Object> param) {
        String url = "wayline/api/v1/waylines/update";
        return this.uavService.updateWaylinesPlanning(url, param);
    }
 
    @PostMapping("/addAlarm")
    @ApiOperation("单点任务")
    public Object addAlarm(@RequestBody Map<String,Object> param) {
        String url = "manage/api/v1/alarms/add";
        return this.uavService.addAlarm(url, param);
    }
 
    @PostMapping("/saveCurrentGroup")
    @ApiOperation("同步")
    public Object saveCurrentGroup(@RequestBody Map<String,Object> param) {
        String url = "wayline/api/v1/waylines/planning/save_current_group";
        return this.uavService.saveCurrentGroup(url, param);
    }
}