aijinhui
2023-12-15 4269d20178cfab9253aacac15e1c02905c192428
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
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
package com.ruoyi.sy.controller;
 
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.sy.domain.ArdAccessFence;
import com.ruoyi.sy.domain.ArdSyCarLock;
import com.ruoyi.sy.domain.ArdSyCarRtu;
import com.ruoyi.sy.domain.ArdSyUser;
import com.ruoyi.sy.mapper.ArdAccessFenceMapper;
import com.ruoyi.sy.param.AddCarParam;
import com.ruoyi.sy.param.AddRtuParam;
import com.ruoyi.sy.param.LockTypeParam;
import com.ruoyi.sy.param.RtuTypeParam;
import com.ruoyi.sy.service.*;
import com.ruoyi.sy.service.impl.ArdSyCarRtuServiceImpl;
import com.ruoyi.sy.vo.CarLockVo;
import com.ruoyi.sy.vo.CarVo;
import com.ruoyi.sy.vo.RtuVo;
import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.utils.mqtt.MqttConsumer;
import com.ruoyi.utils.result.Results;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
@RestController
@RequestMapping("syLock")
@Api(tags = "车辆锁管理")
public class ArdSyCarLockController {
 
    @Autowired
    private IArdSyUserService iArdSyUserService;
    @Autowired
    private ISysConfigService sysConfigService;
    @Autowired
    private IArdSyCarService ardSyCarService;
    @Autowired
    private ArdSyCarLockService ardSyCarLockService;
    @Autowired
    private ArdAccessFenceService ardAccessFenceService;
    @Autowired
    private ArdSyCarRtuService ardSyCarRtuService;
 
    @GetMapping("/car")
    @ApiOperation("查询所有未挂锁的车辆")
    public AjaxResult car(){
        List<CarVo> list = ardSyCarLockService.car();
        analysis(list);
        return AjaxResult.success(list);
    }
 
    @GetMapping("/carAddOne")
    @ApiOperation("查询所有未挂锁的车辆加本车辆信息")
    public AjaxResult carAddOne(String carId){
        List<CarVo> list = ardSyCarLockService.carAddOne(carId);
        analysis(list);
        return AjaxResult.success(list);
    }
 
    @PostMapping("/add")
    @ApiOperation("添加rtu")
    public AjaxResult add(@RequestBody AddRtuParam addRtuParam){
        return AjaxResult.success("成功添加"+ardSyCarLockService.addRtu(addRtuParam)+"条数据,订阅车辆"+addRtuParam.getCarId()+"成功");
    }
 
    @DeleteMapping("/del")
    @ApiOperation("删除rtu")
    public AjaxResult del(String id){
        return AjaxResult.success("成功删除"+ardSyCarLockService.delCar(id)+"条数据");
    }
 
    @GetMapping("/one")
    @ApiOperation("查询一条rtu及锁")
    public AjaxResult one(String carId){
        CarLockVo carLockVo = new CarLockVo();
        CarVo carVo = ardSyCarLockService.carOne(carId);
        String usersId = SecurityUtils.getUserId();
        ArdSyUser ardSyUser = iArdSyUserService.userById(usersId);
        String syURL = sysConfigService.getSYURL();
        Map<String,Object> map = ardSyCarService.getCarGPSBycarId(usersId,carId,syURL,ardSyUser);
        List list1 = (List) map.get("list");
        JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(list1.get(0)));
        String carPlate = (String) jsonObject.get("carPlate");
        carVo.setCarPlate(carPlate);
        String drvName = (String) jsonObject.get("drvName");
        carVo.setDrvName(drvName);
        String drvPhone = (String) jsonObject.get("drvPhone");
        carVo.setDrvPhone(drvPhone);
        carLockVo.setCar(carVo);
        String rtu = carVo.getRtu();
        carLockVo.setCarLockList(ardSyCarLockService.carLock(rtu));
        return AjaxResult.success(carLockVo);
    }
 
    @GetMapping("/query")
    @ApiOperation("查询所有rtu挂载的车辆")
    public Results query(){
        List<CarVo> list = ardSyCarLockService.carList();
        analysis(list);
        return Results.succeed(list);
    }
 
    @PostMapping("/addLock")
    @ApiOperation("添加修改锁")
    public Results addLock(@RequestBody List<ArdSyCarLock> locks){
        return Results.succeed("成功添加/修改"+ardSyCarLockService.addUpdLock(locks)+"条数据");
    }
 
    @GetMapping("/onrRtu")
    @ApiOperation("更改Rtu前查询")
    public Results onrRtu(String carId){
        RtuVo rtuVo = ardSyCarLockService.updRtu(carId);
        String usersId = SecurityUtils.getUserId();
        ArdSyUser ardSyUser = iArdSyUserService.userById(usersId);
        String syURL = sysConfigService.getSYURL();
        Map<String,Object> map = ardSyCarService.getCarGPSBycarId(usersId,carId,syURL,ardSyUser);
        List list1 = (List) map.get("list");
        JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(list1.get(0)));
        String carPlate = (String) jsonObject.get("carPlate");
        rtuVo.setCarPlate(carPlate);
        String drvName = (String) jsonObject.get("drvName");
        rtuVo.setDrvName(drvName);
        String drvPhone = (String) jsonObject.get("drvPhone");
        rtuVo.setDrvPhone(drvPhone);
        return Results.succeed(rtuVo);
    }
 
    @PutMapping("/updRtu")
    @ApiOperation("更改Rtu")
    public Results updRtu(@RequestBody ArdSyCarRtu ardSyCarRtu){
        return Results.succeed("成功修改"+ardSyCarLockService.updRtuCar(ardSyCarRtu)+"条数据");
    }
 
    @GetMapping("/queryCar")
    @ApiOperation("清淤手动添加车辆查询")
    public AjaxResult queryCar(){
        String url  = sysConfigService.selectConfigByKey("minioIn")+"/";
        List<ArdAccessFence> ardAccessFences = ardAccessFenceService.all(url);
        List<String> carIdList = new ArrayList<>();
        for (int i = 0; i < ardAccessFences.size(); i++) {
            String carId = ardAccessFences.get(i).getCarId();
            carIdList.add(carId);
        }
        List<CarVo> list = ardSyCarLockService.queryCar(carIdList);
        analysis(list);
        return AjaxResult.success(list);
    }
 
    @PostMapping("/addCar")
    @ApiOperation("清淤手动添加车辆保存")
    public AjaxResult addCar(@RequestBody AddCarParam addCarParam){
        List<CarVo> list = ardSyCarLockService.addCarBefore(addCarParam.getCarId());
        analysis(list);
        if(list.size()>0){
            String usersId = SecurityUtils.getUserId();
            ArdSyUser ardSyUser = iArdSyUserService.userById(usersId);
            String syURL = sysConfigService.getSYURL();
            Map<String, Object> map = ardSyCarService.getCarGPSBycarId(usersId,addCarParam.getCarId(),syURL,ardSyUser);
            List list1 = (List) map.get("list");
            JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(list1.get(0)));
            String lng = (String) jsonObject.get("lng");
            String lat = (String) jsonObject.get("lat");
            return AjaxResult.success(ardAccessFenceService.addCar(list.get(0),addCarParam.getIsAlarm(),lng,lat));
        }
        return AjaxResult.success();
    }
 
    @DeleteMapping("/delCar")
    @ApiOperation("清淤手动添加车辆删除")
    public AjaxResult delCar(String id){
        return AjaxResult.success(ardAccessFenceService.delCar(id));
    }
 
    @PutMapping("/cleanAlarm")
    @ApiOperation("清空报警")
    public AjaxResult updCarAlarm(String id){
        return AjaxResult.success(ardAccessFenceService.updCarAlarm(id));
    }
 
    @PostMapping("/onOff")
    @ApiOperation("远程开锁")
    public AjaxResult onOff(@RequestBody LockTypeParam lockTypeParam) throws MqttException {
        return ardSyCarLockService.onOff(lockTypeParam);
    }
 
    @PostMapping("/seal")
    @ApiOperation("远程封印")
    public AjaxResult seal(@RequestBody RtuTypeParam rtuTypeParam)  {
        return ardSyCarLockService.seal(rtuTypeParam);
    }
 
    @GetMapping("/lockIng")
    @ApiOperation("实时锁状态")
    public AjaxResult lockIng(String carId)  {
        return AjaxResult.success(ardSyCarLockService.lockIng(carId));
    }
 
 
    //获取31车辆车牌号驾驶员和电话
    public List<CarVo> analysis(List<CarVo> list){
        String usersId = SecurityUtils.getUserId();
        ArdSyUser ardSyUser = iArdSyUserService.userById(usersId);
        String syURL = sysConfigService.getSYURL();
        for (int i = 0; i < list.size(); i++) {
            CarVo carVo = list.get(i);
            String carId = carVo.getCarId();
            Map<String,Object> map = ardSyCarService.getCarGPSBycarId(usersId,carId,syURL,ardSyUser);
            List list1 = (List) map.get("list");
            JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(list1.get(0)));
            String carPlate = (String) jsonObject.get("carPlate");
            carVo.setCarPlate(carPlate);
            String drvName = (String) jsonObject.get("drvName");
            carVo.setDrvName(drvName);
            String drvPhone = (String) jsonObject.get("drvPhone");
            carVo.setDrvPhone(drvPhone);
        }
        return list;
    }
 
 
}