package com.xiaopeng.maintenance.controller; import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient; import com.xiaopeng.api.model.vehicleConvoy.XpVehicle; import com.xiaopeng.common.core.domain.R; import com.xiaopeng.common.core.web.page.PageInfo; import com.xiaopeng.maintenance.dto.VehicleDispatchAcceptDTO; import com.xiaopeng.maintenance.dto.VehicleDispatchDepartureDTO; import com.xiaopeng.maintenance.model.query.OperationRecordsQuery; import com.xiaopeng.maintenance.service.IXpVehiclePreparationService; import com.xiaopeng.maintenance.model.vo.OperationRecordsVO; 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.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; /** *

* 车辆管理 前端控制器 *

* * @author mitao * @since 2026-02-03 */ @Slf4j @RestController @Api(tags = "车辆运维") public class XpVehicleOperationsController { @Autowired private IXpVehiclePreparationService xpVehiclePreparationService; @Autowired private XpVehicleClient xpVehicleClient; /** * 车辆详情-车辆调度-发车 收车 */ @ApiOperation(value = "车辆运维-车辆调度-发车/收车", tags = {"运维APP-车辆管理"}) @PostMapping("/api/v1/vehicle/vehicleDispatchDeparture") public R vehicleDispatchDeparture(@RequestBody VehicleDispatchDepartureDTO dto) { // 判断是否有正在进行的正常订单 // 查询车辆 XpVehicle xpVehicle = xpVehicleClient.queryById(dto.getVehicleId()).getData(); if(xpVehicle.getState()==1){ return R.fail("车辆正在接单中"); } xpVehicle.setOperatingStatus(dto.getDepartureStatus()); xpVehicleClient.updateVehicleById(xpVehicle); // 发车 if(dto.getDepartureStatus()==1){ // 找车辆的任务 生成巡游单子 下发命令 TODO }else if(dto.getDepartureStatus()==3){ // 收车 关闭巡游单子 TODO } return R.ok(); } /** * 车辆详情-车辆调度-接单、测试 */ @ApiOperation(value = "车辆运维-车辆调度-接单、测试", tags = {"运维APP-车辆管理"}) @PostMapping("/api/v1/vehicle/vehicleDispatchAccept") public R vehicleDispatchAccept(@RequestBody VehicleDispatchAcceptDTO dto) { // 查询车辆 XpVehicle xpVehicle = xpVehicleClient.queryById(dto.getVehicleId()).getData(); xpVehicle.setAcceptOrTest(dto.getAcceptOrTest()); xpVehicle.setAcceptOrTestStatus(dto.getAcceptOrTestStatus()); xpVehicleClient.updateVehicleById(xpVehicle); return R.ok(); } /** * 车辆详情-车辆调度-运维记录 */ @ApiOperation(value = "车辆运维-车辆调度-运维记录", tags = {"运维APP-车辆管理"}) @PostMapping("/api/v1/vehicle/operationRecords") public R> operationRecords(@Validated @RequestBody OperationRecordsQuery query) { PageInfo operationRecords = xpVehiclePreparationService.operationRecords(query); return R.ok(operationRecords); } }