From bee3ac5ce53d1eaad2bce7674ed77fd958cf83cc Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 18 三月 2026 16:49:29 +0800
Subject: [PATCH] 修改订单bug
---
xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/XpPricingServiceImpl.java | 6 +-
xp-robotaxi-api/src/main/java/com/xiaopeng/api/factory/automaticPilot/VmpOpenServiceClientFallbackFactory.java | 40 ++++++++++++++++++++
xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/automaticPilot/VmpOpenServiceClient.java | 8 +++
xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpVehicleServiceImpl.java | 12 +++++-
4 files changed, 60 insertions(+), 6 deletions(-)
diff --git a/xp-robotaxi-api/src/main/java/com/xiaopeng/api/factory/automaticPilot/VmpOpenServiceClientFallbackFactory.java b/xp-robotaxi-api/src/main/java/com/xiaopeng/api/factory/automaticPilot/VmpOpenServiceClientFallbackFactory.java
new file mode 100644
index 0000000..4b4de8b
--- /dev/null
+++ b/xp-robotaxi-api/src/main/java/com/xiaopeng/api/factory/automaticPilot/VmpOpenServiceClientFallbackFactory.java
@@ -0,0 +1,40 @@
+package com.xiaopeng.api.factory.automaticPilot;
+
+import com.xiaopeng.api.dto.automaticPilot.VehicleBaseRespDto;
+import com.xiaopeng.api.feignClient.automaticPilot.OrderMissionClient;
+import com.xiaopeng.api.feignClient.automaticPilot.VmpOpenServiceClient;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+@Slf4j
+@Component
+public class VmpOpenServiceClientFallbackFactory implements FallbackFactory<VmpOpenServiceClient> {
+ @Override
+ public VmpOpenServiceClient create(Throwable cause) {
+ return new VmpOpenServiceClient(){
+
+ @Override
+ public VehicleBaseRespDto getVehicleInfoByVin(String vin, List<String> respList) {
+ log.info("通过vin获取车辆基本信息失败:" + cause.getMessage());
+ return null;
+ }
+
+ @Override
+ public Map<String, String> getVehicleBindInfoByVin(String vin, List<String> typeList) {
+ log.info("查询车辆绑定信息失败:" + cause.getMessage());
+ return Collections.emptyMap();
+ }
+
+ @Override
+ public String getVinByXpuId(String xpuId, Integer type) {
+ log.info("通过车辆绑定信息获取车架号失败:" + cause.getMessage());
+ return "";
+ }
+ };
+ }
+}
diff --git a/xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/automaticPilot/VmpOpenServiceClient.java b/xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/automaticPilot/VmpOpenServiceClient.java
index c93e852..78efaf4 100644
--- a/xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/automaticPilot/VmpOpenServiceClient.java
+++ b/xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/automaticPilot/VmpOpenServiceClient.java
@@ -1,6 +1,9 @@
package com.xiaopeng.api.feignClient.automaticPilot;
import com.xiaopeng.api.dto.automaticPilot.VehicleBaseRespDto;
+import com.xiaopeng.api.factory.automaticPilot.OrderMissionClientFallbackFactory;
+import com.xiaopeng.api.factory.automaticPilot.VmpOpenServiceClientFallbackFactory;
+import com.xiaopeng.common.core.dto.ServiceNameConstantsEnum;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
@@ -8,7 +11,10 @@
import java.util.List;
import java.util.Map;
-@FeignClient(name = "xp-vmp-open-boot")
+
+@FeignClient(contextId = "VmpOpenServiceClient",
+ value = "xp-vmp-open-boot",
+ fallbackFactory = VmpOpenServiceClientFallbackFactory.class)
public interface VmpOpenServiceClient {
/**
diff --git a/xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/XpPricingServiceImpl.java b/xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/XpPricingServiceImpl.java
index 4329ea3..b7464ef 100644
--- a/xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/XpPricingServiceImpl.java
+++ b/xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/XpPricingServiceImpl.java
@@ -367,9 +367,9 @@
// 10. 检查等待时间
Integer waitTime = getWaitTime(routeAndFareDto.getOrigin().getLongitude(), routeAndFareDto.getOrigin().getLatitude());
- if (waitTime > 3) {
- throw new ServiceException("当前区域正在等待中,请耐心等待", I18nKeyConstant.WAITING_TIME);
- }
+// if (waitTime > 3) {
+// throw new ServiceException("当前区域正在等待中,请耐心等待", I18nKeyConstant.WAITING_TIME);
+// }
fareVo.setWaitingTime(waitTime);
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 a1026c1..c8a99d0 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
@@ -378,7 +378,11 @@
xpVehicle.setWarehousingTime(LocalDateTime.now());
//绑定XPUID
String vin = xpVehicle.getVehicleVin();
- String xpuid = xpuVinClient.getXpuIdByVin(vin).getData();
+ R<String> xpuIdByVin = xpuVinClient.getXpuIdByVin(vin);
+ if(200 != xpuIdByVin.getCode()){
+ throw new RuntimeException(xpuIdByVin.getMsg());
+ }
+ String xpuid = xpuIdByVin.getData();
xpVehicle.setXpuId(xpuid);
this.save(xpVehicle);
if (isInfoComplete(xpVehicle)) {
@@ -419,7 +423,11 @@
if (vinChanged || existingVehicle == null || StringUtils.isBlank(existingVehicle.getXpuId())) {
// 仅在 VIN 变更或原 XPUID 为空时才重新绑定 XPUID,避免不必要的远程调用
String vin = xpVehicle.getVehicleVin();
- String xpuid = xpuVinClient.getXpuIdByVin(vin).getData();
+ R<String> xpuIdByVin = xpuVinClient.getXpuIdByVin(vin);
+ if(200 != xpuIdByVin.getCode()){
+ throw new RuntimeException(xpuIdByVin.getMsg());
+ }
+ String xpuid = xpuIdByVin.getData();
xpVehicle.setXpuId(xpuid);
} else {
xpVehicle.setXpuId(existingVehicle.getXpuId());
--
Gitblit v1.7.1