From 297e64789d01866faaeabd484cbf656a51a60632 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 13 三月 2026 17:17:40 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpChargingRecordServiceImpl.java |   30 +++++++++++++++++++++++++++++-
 1 files changed, 29 insertions(+), 1 deletions(-)

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 6a63c48..f4f5a1a 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
@@ -8,6 +8,7 @@
 import com.xiaopeng.api.model.maintenance.XpChargingRecord;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
+import com.xiaopeng.api.vo.automaticPilot.VehiclePosition;
 import com.xiaopeng.maintenance.model.query.XpChargingRecordPageQuery;
 import com.xiaopeng.common.core.domain.R;
 import com.xiaopeng.common.core.web.page.PageInfo;
@@ -20,6 +21,9 @@
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
@@ -42,6 +46,8 @@
     private XpVehicleClient xpVehicleClient;
     @Autowired
     private XpOperationUserClient xpOperationUserClient;
+    @Autowired
+    private MongoTemplate mongoTemplate;
     @Override
     public void startCharging(XpChargingRecordStartDTO dto, Long id) {
         // 创建车辆充电记录
@@ -51,6 +57,17 @@
         xpChargingRecord.setVehicleId(dto.getVehicleId());
         xpChargingRecord.setStartTime(LocalDateTime.now());
         xpChargingRecord.setStartOperationsUserId(id);
+        // 查询车辆信息
+        XpVehicle xpVehicle = xpVehicleClient.queryById(dto.getVehicleId()).getData();
+        if(Objects.nonNull(xpVehicle)){
+            // 查询车辆的续航里程
+            VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(xpVehicle.getVehicleVin())), VehiclePosition.class);
+            if(Objects.nonNull(vehiclePosition)){
+                xpChargingRecord.setStartMileageRange(vehiclePosition.getMileageRange());
+            }else {
+                xpChargingRecord.setStartMileageRange(0F);
+            }
+        }
         this.save(xpChargingRecord);
     }
 
@@ -58,11 +75,22 @@
     public void stopCharging(XpChargingRecordStopDTO dto, Long id) {
         // 查询车辆充电记录  进行修改
         XpChargingRecord xpChargingRecord = this.getById(dto.getId());
+        // 查询车辆信息
+        XpVehicle xpVehicle = xpVehicleClient.queryById(xpChargingRecord.getVehicleId()).getData();
         xpChargingRecord.setVehicleId(null);
         xpChargingRecord.setEndChargingPicture(dto.getEndChargingPicture());
         xpChargingRecord.setEndRemainingBattery(dto.getEndRemainingBattery());
         xpChargingRecord.setEndTime(LocalDateTime.now());
         xpChargingRecord.setEndOperationsUserId(id);
+        if(Objects.nonNull(xpVehicle)){
+            // 查询车辆的续航里程
+            VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(xpVehicle.getVehicleVin())), VehiclePosition.class);
+            if(Objects.nonNull(vehiclePosition)){
+                xpChargingRecord.setStartMileageRange(vehiclePosition.getMileageRange());
+            }else {
+                xpChargingRecord.setStartMileageRange(0F);
+            }
+        }
         this.updateById(xpChargingRecord);
     }
 
@@ -88,7 +116,7 @@
         }
         XpOperationsUser operationsUserEnd = xpOperationUserClient.queryById(xpChargingRecordVO.getEndOperationsUserId()).getData();
         if (Objects.nonNull(operationsUserEnd)) {
-            xpChargingRecordVO.setOperatorStartName(operationsUserEnd.getNickName());
+            xpChargingRecordVO.setOperatorEndName(operationsUserEnd.getNickName());
         }
         return xpChargingRecordVO;
     }

--
Gitblit v1.7.1