package com.xiaopeng.maintenance.controller; import com.xiaopeng.api.feignClient.account.XpOperationUserClient; import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient; import com.xiaopeng.maintenance.model.query.XpChargingRecordPageQuery; import com.xiaopeng.common.core.domain.R; import com.xiaopeng.common.core.web.page.PageInfo; import com.xiaopeng.common.security.service.TokenService; import com.xiaopeng.maintenance.dto.XpChargingRecordStartDTO; import com.xiaopeng.maintenance.dto.XpChargingRecordStopDTO; import com.xiaopeng.maintenance.model.vo.XpChargingRecordVO; import com.xiaopeng.maintenance.service.IXpChargingRecordService; import com.xiaopeng.maintenance.service.XpTaskService; import com.xiaopeng.maintenance.vo.ChargingStatusVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; /** *

* 车辆充电记录 前端控制器 *

* * @author xiaochen * @since 2026-02-06 */ @Api(tags = "车辆充电记录") @RestController @RequestMapping("") public class XpChargingRecordController { @Autowired private IXpChargingRecordService xpChargingRecordService; @Autowired private XpVehicleClient xpVehicleClient; @Autowired private XpOperationUserClient xpOperationUserClient; @Autowired private TokenService tokenService; @Autowired private XpTaskService xpTaskService; /** * 车辆运维-车辆运维-车辆开始充电 */ @ApiOperation(value = "车辆运维-车辆运维-车辆开始充电", tags = {"运维APP-车辆管理"}) @PostMapping("/api/v1/chargingRecord/startCharging") public R startCharging(@RequestBody XpChargingRecordStartDTO dto) { Long id = tokenService.getLoginOperationUser().getId(); xpChargingRecordService.startCharging(dto, id); return R.ok(); } /** * 车辆运维-车辆运维-车辆结束充电 */ @ApiOperation(value = "车辆运维-车辆运维-车辆结束充电", tags = {"运维APP-车辆管理"}) @PostMapping("/api/v1/chargingRecord/stopCharging") public R stopCharging(@RequestBody XpChargingRecordStopDTO dto) { Long id = tokenService.getLoginOperationUser().getId(); xpChargingRecordService.stopCharging(dto, id); //更新任务状态 xpTaskService.updateTaskStatus(dto.getTaskId(), 2); return R.ok(); } /** * 车辆运维-车辆运维-车辆充电查询当前状态 */ @ApiOperation(value = "车辆运维-车辆运维-车辆充电查询当前状态", tags = {"运维APP-车辆管理"}) @GetMapping("/api/v1/chargingRecord/queryChargingStatus") public R queryChargingStatus(@RequestParam Long vehicleId) { Long id = tokenService.getLoginOperationUser().getId(); ChargingStatusVO chargingStatusVO = xpChargingRecordService.queryChargingStatus(vehicleId); return R.ok(chargingStatusVO); } /** * 车辆运维-车辆运维-充电记录详情 */ @ApiOperation(value = "车辆运维-运维记录-充电记录详情", tags = {"运维APP-车辆管理"}) @GetMapping("/api/v1/chargingRecord/chargingDetail") public R chargingDetail(@RequestParam Long id) { XpChargingRecordVO xpChargingRecordVO = xpChargingRecordService.chargingDetail(id); return R.ok(xpChargingRecordVO); } /** * 通过车辆id查询充电分页列表 * * @param query 查询参数 * @return 充电记录分页列表 */ @ApiOperation(value = "通过车辆id查询充电分页列表", tags = {"管理后台-车辆管理-运营车辆管理"}) @PostMapping("/api/v1/vehicle/queryChargingByVehicleId") public R> queryChargingByVehicleId( @Valid @RequestBody XpChargingRecordPageQuery query) { return R.ok(xpChargingRecordService.queryChargingByVehicleId(query)); } /** * 管理后台-车辆管理-运营车辆管理-删除充电记录 * @param id * @return */ @ApiOperation(value = "删除充电记录", tags = {"管理后台-车辆管理-运营车辆管理"}) @DeleteMapping("/api/v1/chargingRecord/delete/{id}") public R deleteRecordById(@PathVariable Long id){ xpChargingRecordService.deleteRecordById(id); return R.ok(); } }