无关风月
2026-02-13 ea1e5b9525119d577fa6fd8b1c2d8a053a50905a
Merge remote-tracking branch 'origin/master'
2个文件已添加
7个文件已修改
84 ■■■■■ 已修改文件
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/XpOperationsUserController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/factory/automatic/OrderMissionClientFallbackFactory.java 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/factory/maintenance/XpCheckLocationClientFallbackFactory.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/account/XpOperationUserClient.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/maintenance/XpCheckLocationClient.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpCheckLocationController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpElectronicFenceController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-vehicleConvoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpFleetServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/XpOperationsUserController.java
@@ -53,7 +53,7 @@
     * @return 用户列表
     */
    @GetMapping("/inner/xpOperationsUser/queryById")
    R<XpOperationsUser> queryById(Long id){
    R<XpOperationsUser> queryById(@RequestParam Long id){
        return R.ok(xpOperationsUserService.getById(id));
    }
xp-robotaxi-api/src/main/java/com/xiaopeng/api/factory/automatic/OrderMissionClientFallbackFactory.java
@@ -2,7 +2,6 @@
import com.xiaopeng.api.dto.automaticPilot.PushOrderDto;
import com.xiaopeng.api.feignClient.automatic.OrderMissionClient;
import com.xiaopeng.api.feignClient.maintenance.XpChargingRecordClient;
import com.xiaopeng.common.core.domain.R;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
xp-robotaxi-api/src/main/java/com/xiaopeng/api/factory/maintenance/XpCheckLocationClientFallbackFactory.java
New file
@@ -0,0 +1,31 @@
package com.xiaopeng.api.factory.maintenance;
import com.xiaopeng.api.feignClient.maintenance.XpCheckLocationClient;
import com.xiaopeng.api.model.maintenance.XpCheckLocation;
import com.xiaopeng.common.core.domain.R;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
/**
 * 打卡地址Feign客户端降级工厂
 *
 * @author mitao
 * @since 2026-02-13
 */
@Slf4j
@Component
public class XpCheckLocationClientFallbackFactory implements FallbackFactory<XpCheckLocationClient> {
    @Override
    public XpCheckLocationClient create(Throwable cause) {
        log.error("打卡地址服务调用失败: {}", cause.getMessage());
        return new XpCheckLocationClient() {
            @Override
            public R<XpCheckLocation> queryById(Long id) {
                log.error("远程调用获取检查点位信息异常:{}", cause.getMessage());
                return R.fail("远程调用获取检查点位信息异常");
            }
        };
    }
}
xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/account/XpOperationUserClient.java
@@ -36,7 +36,7 @@
     * @return 用户列表
     */
    @GetMapping("/inner/xpOperationsUser/queryById")
    R<XpOperationsUser> queryById(Long id);
    R<XpOperationsUser> queryById(@RequestParam Long id);
    /**
     * 根据昵称查询运维用户信息
xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/maintenance/XpCheckLocationClient.java
New file
@@ -0,0 +1,24 @@
package com.xiaopeng.api.feignClient.maintenance;
import com.xiaopeng.api.factory.maintenance.XpCheckLocationClientFallbackFactory;
import com.xiaopeng.api.model.maintenance.XpCheckLocation;
import com.xiaopeng.common.core.domain.R;
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;
/**
 * 打卡地址管理 Feign Client
 *
 * @author mitao
 */
@FeignClient(contextId = "XpCheckLocationClient", value = ServiceNameConstantsEnum.XP_MAINTENANCE_SERVICE, fallbackFactory = XpCheckLocationClientFallbackFactory.class)
public interface XpCheckLocationClient {
    /**
     * 根据ID查询打卡地址
     */
    @GetMapping("/inner/check-location/queryById")
    R<XpCheckLocation> queryById(@RequestParam Long id);
}
xp-robotaxi-api/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -22,4 +22,5 @@
com.xiaopeng.api.factory.pushMessage.XpPushMessageClientFallbackFactory
com.xiaopeng.api.factory.account.UserResourcesClientFallbackFactory
com.xiaopeng.api.factory.vehicleConvoy.VehicleControlClientFallbackFactory
com.xiaopeng.api.factory.automaticPilot.XPUClientFallbackFactory
com.xiaopeng.api.factory.automaticPilot.XPUClientFallbackFactory
com.xiaopeng.api.factory.maintenance.XpCheckLocationClientFallbackFactory
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpCheckLocationController.java
@@ -9,6 +9,7 @@
import org.springframework.context.annotation.Lazy;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@@ -29,4 +30,10 @@
    public  R<List<XpCheckLocation>> getList(){
        return R.ok(xpCheckLocationService.lambdaQuery().eq(XpCheckLocation::getStatus, DisabledEnum.YES.getCode()).list());
    }
    @GetMapping("/inner/check-location/queryById")
    @ApiOperation(value = "根据ID查询打卡地址", tags = {"内部接口"})
    public R<XpCheckLocation> queryById(@RequestParam Long id) {
        return R.ok(xpCheckLocationService.getById(id));
    }
}
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpElectronicFenceController.java
@@ -189,7 +189,7 @@
    }
    @ApiOperation(value = "获取已启用的电子围栏列表",tags = {"管理后台-在库车辆管理"})
    @ApiOperation(value = "获取不分页的电子围栏列表",tags = {"管理后台-在库车辆管理"})
    @GetMapping("/list")
    R<List<XpElectronicFence>> getList(){
        return R.ok(xpElectronicFenceService.getList());
xp-robotaxi-vehicleConvoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpFleetServiceImpl.java
@@ -5,12 +5,12 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xiaopeng.api.dto.account.XpOperationsUserQueryDTO;
import com.xiaopeng.api.feignClient.account.XpOperationUserClient;
import com.xiaopeng.api.feignClient.maintenance.XpCheckLocationClient;
import com.xiaopeng.api.feignClient.operation.XpElectronicClient;
import com.xiaopeng.api.feignClient.operation.XpPointClient;
import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient;
import com.xiaopeng.api.model.account.XpOperationsUser;
import com.xiaopeng.api.model.maintenance.XpCheckLocation;
import com.xiaopeng.api.model.operation.XpElectronicFence;
import com.xiaopeng.api.model.operation.XpPoint;
import com.xiaopeng.api.model.vehicleConvoy.XpFleet;
import com.xiaopeng.api.model.vehicleConvoy.XpFleetOperations;
import com.xiaopeng.api.model.vehicleConvoy.XpFleetVehicle;
@@ -66,7 +66,7 @@
    private final XpElectronicClient xpElectronicClient;
    private final XpPointClient xpPointClient;
    private final XpCheckLocationClient xpCheckLocationClient;
    @Override
    public List<XpFleet> listByIds(List<Long> ids) {
@@ -250,9 +250,9 @@
        // 6. 查询打卡地信息
        if (fleet.getLocationId() != null) {
            R<XpPoint> pointResult = xpPointClient.queryById(fleet.getLocationId());
            if (pointResult.getData() != null) {
                vo.setLocationName(pointResult.getData().getPointName());
            R<XpCheckLocation> locationResult = xpCheckLocationClient.queryById(fleet.getLocationId());
            if (locationResult.getData() != null) {
                vo.setLocationName(locationResult.getData().getLocationAddress());
            }
        }