From 359bfc2d1e95b1d64fbdef27ab25cfdd1adee34b Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期三, 18 二月 2026 20:49:44 +0800
Subject: [PATCH] 维修,充电状态返回

---
 xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpChargingRecordController.java    |   13 ++++
 xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/IXpChargingRecordService.java         |    8 ++
 xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpVehicleRepairServiceImpl.java  |   33 +++++++++++
 xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/vo/RepairStatusVO.java                        |   24 ++++++++
 xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/vo/ChargingStatusVO.java                      |   23 +++++++
 xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpChargingRecordServiceImpl.java |   31 ++++++++++
 xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/IXpVehicleRepairService.java          |    9 +++
 xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleRepairController.java     |   12 ++++
 8 files changed, 153 insertions(+), 0 deletions(-)

diff --git a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpChargingRecordController.java b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpChargingRecordController.java
index 6414b2a..4ed3e8e 100644
--- a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpChargingRecordController.java
+++ b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpChargingRecordController.java
@@ -11,6 +11,7 @@
 import com.xiaopeng.maintenance.dto.XpChargingRecordStopDTO;
 import com.xiaopeng.maintenance.model.vo.XpChargingRecordVO;
 import com.xiaopeng.maintenance.service.IXpChargingRecordService;
+import com.xiaopeng.maintenance.vo.ChargingStatusVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -65,6 +66,18 @@
     }
 
     /**
+     * 车辆运维-车辆运维-车辆充电查询当前状态
+     */
+    @ApiOperation(value = "车辆运维-车辆运维-车辆充电查询当前状态", tags = {"运维APP-车辆管理"})
+    @GetMapping("/api/v1/chargingRecord/queryChargingStatus")
+    public R<ChargingStatusVO> queryChargingStatus(@RequestParam Long vehicleId) {
+        Long id = tokenService.getLoginOperationUser().getId();
+        ChargingStatusVO chargingStatusVO = xpChargingRecordService.queryChargingStatus(vehicleId);
+        return R.ok(chargingStatusVO);
+    }
+
+
+    /**
      * 车辆运维-车辆运维-充电记录详情
      */
     @ApiOperation(value = "车辆运维-运维记录-充电记录详情", tags = {"运维APP-车辆管理"})
diff --git a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleRepairController.java b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleRepairController.java
index 99a4e3b..2141394 100644
--- a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleRepairController.java
+++ b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleRepairController.java
@@ -10,6 +10,7 @@
 import com.xiaopeng.maintenance.model.query.XpVehicleRepairPageQuery;
 import com.xiaopeng.maintenance.model.vo.XpVehicleRepairVO;
 import com.xiaopeng.maintenance.service.IXpVehicleRepairService;
+import com.xiaopeng.maintenance.vo.RepairStatusVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -76,6 +77,17 @@
     }
 
     /**
+     * 车辆详情-车辆运维-查询车辆维修状态
+     */
+    @ApiOperation(value = "车辆运维-车辆运维-查询车辆维修状态", tags = {"运维APP-车辆管理"})
+    @GetMapping("/api/v1/vehicleRepair/queryRepairStatus")
+    public R<RepairStatusVO> queryRepairStatus(@RequestParam Long vehicleId) {
+        Long id = tokenService.getLoginOperationUser().getId();
+        RepairStatusVO repairStatusVO = xpVehicleRepairService.queryRepairStatus(vehicleId);
+        return R.ok(repairStatusVO);
+    }
+
+    /**
      * 车辆运维-车辆运维-维修记录详情
      */
     @ApiOperation(value = "车辆运维-运维记录-维修记录详情", tags = {"运维APP-车辆管理"})
diff --git a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/IXpChargingRecordService.java b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/IXpChargingRecordService.java
index 502d9b9..1309bdc 100644
--- a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/IXpChargingRecordService.java
+++ b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/IXpChargingRecordService.java
@@ -7,6 +7,7 @@
 import com.xiaopeng.maintenance.dto.XpChargingRecordStartDTO;
 import com.xiaopeng.maintenance.dto.XpChargingRecordStopDTO;
 import com.xiaopeng.maintenance.model.vo.XpChargingRecordVO;
+import com.xiaopeng.maintenance.vo.ChargingStatusVO;
 
 /**
  * <p>
@@ -55,4 +56,11 @@
      * @param id
      */
     void deleteRecordById(Long id);
+
+    /**
+     * 查询充电状态
+     * @param vehicleId
+     * @return
+     */
+    ChargingStatusVO queryChargingStatus(Long vehicleId);
 }
diff --git a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/IXpVehicleRepairService.java b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/IXpVehicleRepairService.java
index bdb41ec..fb35859 100644
--- a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/IXpVehicleRepairService.java
+++ b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/IXpVehicleRepairService.java
@@ -5,6 +5,7 @@
 import com.xiaopeng.common.core.web.page.PageInfo;
 import com.xiaopeng.maintenance.model.query.XpVehicleRepairPageQuery;
 import com.xiaopeng.maintenance.model.vo.XpVehicleRepairVO;
+import com.xiaopeng.maintenance.vo.RepairStatusVO;
 
 import javax.validation.Valid;
 
@@ -32,4 +33,12 @@
      * @return
      */
     PageInfo<XpVehicleRepairVO> queryDetectionByVehicleId(@Valid XpVehicleRepairPageQuery query);
+
+    /**
+     * 获取车辆维修状态
+     *
+     * @param vehicleId
+     * @return
+     */
+    RepairStatusVO queryRepairStatus(Long vehicleId);
 }
diff --git a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpChargingRecordServiceImpl.java b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpChargingRecordServiceImpl.java
index 011d083..3f0ffc8 100644
--- a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpChargingRecordServiceImpl.java
+++ b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpChargingRecordServiceImpl.java
@@ -16,6 +16,7 @@
 import com.xiaopeng.maintenance.mapper.XpChargingRecordMapper;
 import com.xiaopeng.maintenance.model.vo.XpChargingRecordVO;
 import com.xiaopeng.maintenance.service.IXpChargingRecordService;
+import com.xiaopeng.maintenance.vo.ChargingStatusVO;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -191,4 +192,34 @@
     public void deleteRecordById(Long id) {
         removeById(id);
     }
+
+    @Override
+    public ChargingStatusVO queryChargingStatus(Long vehicleId) {
+
+        ChargingStatusVO chargingStatusVO = new ChargingStatusVO();
+
+        // 查询车辆当前充电信息
+        XpChargingRecord xpChargingRecord = this.getOne(new LambdaQueryWrapper<XpChargingRecord>()
+                .eq(XpChargingRecord::getVehicleId, vehicleId)
+                .isNull(XpChargingRecord::getEndRemainingBattery)
+                .isNull(XpChargingRecord::getTaskId)
+                .orderByDesc(XpChargingRecord::getCreateTime)
+                .last("LIMIT 1"));
+
+        if(Objects.nonNull(xpChargingRecord)){
+            chargingStatusVO.setStatus(2);
+            // 查询开始充电操作人名称
+            XpOperationsUser operationsUser = xpOperationUserClient.queryById(xpChargingRecord.getStartOperationsUserId()).getData();
+            if(Objects.nonNull(operationsUser)){
+                chargingStatusVO.setOperatorStartName(operationsUser.getNickName());
+            }
+        }else{
+            chargingStatusVO.setStatus(1);
+        }
+
+        // 设置充电信息
+        chargingStatusVO.setXpChargingRecord(xpChargingRecord);
+
+        return chargingStatusVO;
+    }
 }
diff --git a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpVehicleRepairServiceImpl.java b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpVehicleRepairServiceImpl.java
index c4a2444..19dfbfc 100644
--- a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpVehicleRepairServiceImpl.java
+++ b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpVehicleRepairServiceImpl.java
@@ -6,6 +6,7 @@
 import com.xiaopeng.api.feignClient.account.XpOperationUserClient;
 import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient;
 import com.xiaopeng.api.model.account.XpOperationsUser;
+import com.xiaopeng.api.model.maintenance.XpChargingRecord;
 import com.xiaopeng.api.model.maintenance.XpVehicleRepair;
 import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
 import com.xiaopeng.common.core.domain.R;
@@ -14,6 +15,8 @@
 import com.xiaopeng.maintenance.model.query.XpVehicleRepairPageQuery;
 import com.xiaopeng.maintenance.model.vo.XpVehicleRepairVO;
 import com.xiaopeng.maintenance.service.IXpVehicleRepairService;
+import com.xiaopeng.maintenance.vo.ChargingStatusVO;
+import com.xiaopeng.maintenance.vo.RepairStatusVO;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -165,4 +168,34 @@
 
         return pageInfo;
     }
+
+    @Override
+    public RepairStatusVO queryRepairStatus(Long vehicleId) {
+
+        RepairStatusVO repairStatusVO = new RepairStatusVO();
+
+        // 查询车辆当前维修信息
+        XpVehicleRepair xpVehicleRepair = this.getOne(new LambdaQueryWrapper<XpVehicleRepair>()
+                .eq(XpVehicleRepair::getVehicleId, vehicleId)
+                .isNull(XpVehicleRepair::getReturnTime)
+                .isNull(XpVehicleRepair::getTaskId)
+                .orderByDesc(XpVehicleRepair::getCreateTime)
+                .last("LIMIT 1"));
+
+        if(Objects.nonNull(xpVehicleRepair)){
+            repairStatusVO.setStatus(2);
+            // 查询开始充电操作人名称
+            XpOperationsUser operationsUser = xpOperationUserClient.queryById(xpVehicleRepair.getSendUserId()).getData();
+            if(Objects.nonNull(operationsUser)){
+                repairStatusVO.setSendUserName(operationsUser.getNickName());
+            }
+        }else{
+            repairStatusVO.setStatus(1);
+        }
+
+        // 设置维修信息
+        repairStatusVO.setXpVehicleRepair(xpVehicleRepair);
+
+        return repairStatusVO;
+    }
 }
diff --git a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/vo/ChargingStatusVO.java b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/vo/ChargingStatusVO.java
new file mode 100644
index 0000000..fb3eac2
--- /dev/null
+++ b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/vo/ChargingStatusVO.java
@@ -0,0 +1,23 @@
+package com.xiaopeng.maintenance.vo;
+
+import com.xiaopeng.api.model.maintenance.XpChargingRecord;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel(value = "运维APP-车辆充电状态VO")
+public class ChargingStatusVO implements Serializable {
+
+    @ApiModelProperty(value = "车辆充电状态 1=未开始 2=已开始")
+    private Integer status;
+
+    @ApiModelProperty(value = "车辆充电信息")
+    private XpChargingRecord xpChargingRecord;
+
+    @ApiModelProperty(value = "开始操作人")
+    private String operatorStartName;
+
+}
diff --git a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/vo/RepairStatusVO.java b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/vo/RepairStatusVO.java
new file mode 100644
index 0000000..8600bdb
--- /dev/null
+++ b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/vo/RepairStatusVO.java
@@ -0,0 +1,24 @@
+package com.xiaopeng.maintenance.vo;
+
+import com.xiaopeng.api.model.maintenance.XpChargingRecord;
+import com.xiaopeng.api.model.maintenance.XpVehicleRepair;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel(value = "运维APP-车辆维修状态VO")
+public class RepairStatusVO implements Serializable {
+
+    @ApiModelProperty(value = "车辆维修状态 1=未开始 2=已送出")
+    private Integer status;
+
+    @ApiModelProperty(value = "车辆维修信息")
+    private XpVehicleRepair xpVehicleRepair;
+
+    @ApiModelProperty(value = "开始操作人")
+    private String sendUserName;
+
+}

--
Gitblit v1.7.1