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 list = ardSyCarLockService.car(); analysis(list); return AjaxResult.success(list); } @GetMapping("/carAddOne") @ApiOperation("查询所有未挂锁的车辆加本车辆信息") public AjaxResult carAddOne(String carId){ List 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 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 list = ardSyCarLockService.carList(); analysis(list); return Results.succeed(list); } @PostMapping("/addLock") @ApiOperation("添加修改锁") public Results addLock(@RequestBody List 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 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 ardAccessFences = ardAccessFenceService.all(url); List carIdList = new ArrayList<>(); for (int i = 0; i < ardAccessFences.size(); i++) { String carId = ardAccessFences.get(i).getCarId(); carIdList.add(carId); } List list = ardSyCarLockService.queryCar(carIdList); analysis(list); return AjaxResult.success(list); } @PostMapping("/addCar") @ApiOperation("清淤手动添加车辆保存") public AjaxResult addCar(@RequestBody AddCarParam addCarParam){ List 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 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) { return AjaxResult.success(ardSyCarLockService.onOff(lockTypeParam)); } @PostMapping("/seal") @ApiOperation("远程封印") public AjaxResult seal(@RequestBody RtuTypeParam rtuTypeParam) { return AjaxResult.success(ardSyCarLockService.seal(rtuTypeParam)); } @GetMapping("/lockIng") @ApiOperation("实时锁状态") public AjaxResult lockIng(String carId) { return AjaxResult.success(ardSyCarLockService.lockIng(carId)); } //获取31车辆车牌号驾驶员和电话 public List analysis(List 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 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; } }