package com.muyu.controller; import com.muyu.common.PageList; import com.muyu.common.Result; import com.muyu.domain.req.CheckPositionReq; import com.muyu.domain.req.GearReq; import com.muyu.domain.req.MsgReq; import com.muyu.domain.req.VehicleInstanceListReq; import com.muyu.domain.resp.UnifiedTaskResp; import com.muyu.domain.resp.VehicleInstanceResp; import com.muyu.service.VehicleInstanceService; import com.muyu.vehicle.core.LocalContainer; import com.muyu.vehicle.model.VehicleData; import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; /** * @author DongZl * @description: 车辆实例控制层 * @Date 2023-11-25 上午 10:01 */ @Log4j2 @RestController @RequestMapping("/vehicle/instance") public class VehicleInstanceController { @Autowired private VehicleInstanceService vehicleInstanceService; /** * 查询车辆集合 * @param vehicleInstanceListReq 车辆列表查询对象 * @return 结果 */ @PostMapping("/list") public Result> list(@RequestBody VehicleInstanceListReq vehicleInstanceListReq){ PageList pageList = vehicleInstanceService.queryList(vehicleInstanceListReq); return Result.success(pageList); } /** * 根据车辆VIN获取车辆数据 * @param vin VIN * @return 车辆数据 */ @GetMapping("/data/{vin}") public Result getVehicleData(@PathVariable("vin") String vin){ return Result.success(LocalContainer.getVehicleInstance(vin).getVehicleData()); } /** * 车辆连接初始化 * @param vin vin * @return 初始化 */ @PostMapping("/client/init/{vin}") public Result vehicleClientInit(@PathVariable("vin") String vin){ this.vehicleInstanceService.vehicleClientInit(vin); return Result.success(); } /** * 车辆连接初始化 * @param vin vin * @return 初始化 */ @PostMapping("/client/close/{vin}") public Result vehicleClientClose(@PathVariable("vin") String vin){ this.vehicleInstanceService.vehicleClientClose(vin); return Result.success(); } /** * 选择车辆轨迹 * @param checkPositionReq 轨迹选择 * @return 操作提示 */ @PostMapping("/position/check") public Result checkPosition(@RequestBody CheckPositionReq checkPositionReq){ this.vehicleInstanceService.checkPosition(checkPositionReq); return Result.success(); } /** * 车辆报文操作 * @return 操作提示 */ @PostMapping("/msg") public Result msg(@RequestBody MsgReq msgReq){ this.vehicleInstanceService.msg(msgReq); return Result.success(); } /** * 车辆档位操作 * @return 操作提示 */ @PostMapping("/gear") public Result gear(@RequestBody GearReq gearReq){ this.vehicleInstanceService.gear(gearReq); return Result.success(); } /** * 设置车辆故障状态 * @param statusKey * @param vin * @param statusValue * @return */ @PutMapping("/status/{vin}/{statusKey}/{statusValue}") public Result editStatus(@PathVariable("statusKey") String statusKey, @PathVariable("vin") String vin, @PathVariable("statusValue") Integer statusValue){ this.vehicleInstanceService.editStatus(vin, statusKey, statusValue); return Result.success(); } /** * 一键上线 */ @PostMapping("/unified/online") public Result unifiedOnline(){ this.vehicleInstanceService.unifiedOnline(); return Result.success(null,"已成功发布一键上线任务"); } /** * 一键离线 */ @PostMapping("/unified/offline") public Result unifiedOffline(){ this.vehicleInstanceService.unifiedOffline(); return Result.success(null,"已成功发布一键离线任务"); } /** * 一键上报 */ @PostMapping("/unified/send") public Result unifiedSend(){ this.vehicleInstanceService.unifiedSend(); return Result.success(null,"已成功发布一键上报任务"); } /** * 一键重置路径 */ @PostMapping("/unified/position") public Result unifiedPosition(){ this.vehicleInstanceService.unifiedPosition(); return Result.success(null,"已成功发布一键上报任务"); } /** * 一键取消上报 */ @PostMapping("/unified/stop") public Result unifiedStop(){ this.vehicleInstanceService.unifiedStop(); return Result.success(null,"已成功发布取消上报任务"); } /** * 获取一键执行状态 * @return 执行结果 */ @GetMapping("/unified/status") public Result unifiedStatus(){ return Result.success(this.vehicleInstanceService.unifiedStatus()); } }