From 67f37d5ff7418fd03158af226ab67b48019c7b06 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 29 四月 2026 20:23:03 +0800
Subject: [PATCH] 修改bug和新增加流量接入部分接口
---
xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpVehicleServiceImpl.java | 42 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 42 insertions(+), 0 deletions(-)
diff --git a/xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpVehicleServiceImpl.java b/xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpVehicleServiceImpl.java
index c2a0fa7..4c3718a 100644
--- a/xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpVehicleServiceImpl.java
+++ b/xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpVehicleServiceImpl.java
@@ -38,6 +38,7 @@
import com.xiaopeng.api.vo.automaticPilot.VehiclePosition;
import com.xiaopeng.api.vo.operation.ElectronicFenceDetailVo;
import com.xiaopeng.api.vo.operation.RouteVo;
+import com.xiaopeng.api.vo.operation.VehiclePositionVo;
import com.xiaopeng.api.vo.vehicleConvoy.*;
import com.xiaopeng.common.core.constant.CacheConstants;
import com.xiaopeng.common.core.domain.R;
@@ -54,6 +55,7 @@
import com.xiaopeng.vehicleConvoy.model.importExcel.XpVehicleImportExcel;
import com.xiaopeng.vehicleConvoy.model.query.*;
import com.xiaopeng.api.vo.vehicleConvoy.XpVehicleVO;
+import com.xiaopeng.vehicleConvoy.model.vo.VehiclePositionDto;
import com.xiaopeng.vehicleConvoy.service.AsyncVehicleStateService;
import com.xiaopeng.vehicleConvoy.service.IXpFleetVehicleService;
import com.xiaopeng.vehicleConvoy.service.IXpVehicleAnnualRecordService;
@@ -70,6 +72,7 @@
import org.springframework.data.mongodb.core.geo.GeoJsonPoint;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
+import org.springframework.data.mongodb.core.query.Update;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -1446,4 +1449,43 @@
vo.setTrunk(trunk_ajar_st_new == 5 ? 1 : 0);
return vo;
}
+
+
+ /**
+ * 上报车辆实时位置
+ * @param dto
+ */
+ @Override
+ public void reportVehicleLocation(VehiclePositionDto dto) {
+ if(StringUtils.isEmpty(dto.getVin())){
+ throw new ServiceException("无效数据");
+ }
+ if(null == dto.getLatitude() || null == dto.getLongitude()){
+ throw new ServiceException("无效数据");
+ }
+ XpVehicle vehicle = this.getOne(new QueryWrapper<XpVehicle>().eq("vehicle_vin", dto.getVin()).eq("is_deleted", 0));
+ if(null == vehicle){
+ throw new ServiceException("无效数据");
+ }
+ VehiclePosition vehiclePosition = mongoTemplate.findOne(Query.query(Criteria.where("vin").is(dto.getVin())), VehiclePosition.class);
+ if(null == vehiclePosition){
+ BeanUtil.copyProperties(dto, vehiclePosition);
+ vehiclePosition.setPoint(new GeoJsonPoint(dto.getLongitude(), dto.getLatitude()));
+ vehiclePosition.setAddTime(System.currentTimeMillis());
+ mongoTemplate.save(vehiclePosition);
+ }else{
+ Update update = new Update()
+ .set("point", new GeoJsonPoint(dto.getLongitude(), dto.getLatitude()))
+ .set("course", dto.getCourse())
+ .set("alt", dto.getAlt())
+ .set("speed", dto.getSpeed())
+ .set("currentElectricity", dto.getCurrentElectricity())
+ .set("mileageRange", dto.getMileageRange())
+ .set("orderId", dto.getOrderId())
+ .set("totalOdometer", dto.getTotalOdometer())
+ .set("addTime", System.currentTimeMillis());
+ mongoTemplate.updateFirst(new Query(Criteria.where("vin").is(dto.getVin())), update, VehiclePosition.class);
+ }
+
+ }
}
--
Gitblit v1.7.1