puzhibing
2026-05-11 0a1f6920bcd509558b9b9e9c2efdbef81ca6ee69
合并代码
5个文件已修改
63 ■■■■■ 已修改文件
xp-robotaxi-api/src/main/java/com/xiaopeng/api/factory/map/XpStationClientFallbackFactory.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/map/XpStationClient.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/vo/operation/ElectronicFenceDetailVo.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpStationController.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpElectronicFenceController.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/factory/map/XpStationClientFallbackFactory.java
@@ -6,6 +6,8 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import java.util.List;
@Slf4j
public class XpStationClientFallbackFactory implements FallbackFactory<XpStationClient> {
    @Override
@@ -17,6 +19,12 @@
                log.error("根据id获取数据失败", cause);
                return R.fail("根据id获取数据失败");
            }
            @Override
            public R<List<XpStation>> getXpStationByElectronicId(Long electronicId) {
                log.error("根据围栏id获取场站失败:" + cause.getMessage());
                return R.fail("根据围栏id获取场站失败");
            }
        };
    }
}
xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/map/XpStationClient.java
@@ -7,6 +7,10 @@
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
@FeignClient(contextId = "XpStationClient", value = ServiceNameConstantsEnum.XP_MAP_SERVICE, fallbackFactory = XpStationClientFallbackFactory.class)
public interface XpStationClient {
@@ -18,4 +22,12 @@
     */
    @GetMapping("/logan/inner/v1/xpStation/getXpStationById/{id}")
    R<XpStation> getXpStationById(@PathVariable("id") Long id);
    /**
     * 根据围栏id获取场站
     * @param electronicId
     * @return
     */
    @PostMapping("/logan/inner/v1/xpStation/getXpStationByElectronicId")
    R<List<XpStation>> getXpStationByElectronicId(@RequestParam("electronicId") Long electronicId);
}
xp-robotaxi-api/src/main/java/com/xiaopeng/api/vo/operation/ElectronicFenceDetailVo.java
@@ -2,6 +2,8 @@
import com.xiaopeng.api.model.operation.XpElectronicFence;
import com.xiaopeng.api.model.operation.XpElectronicFenceArea;
import com.xiaopeng.api.model.operation.XpPoint;
import com.xiaopeng.api.model.operation.XpStation;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -14,8 +16,12 @@
    @ApiModelProperty("电子围栏区域列表")
    private List<XpElectronicFenceArea> electronicFenceAreas;
    @ApiModelProperty("点位列表")
    private List<XpPoint> xpPointList;
    @ApiModelProperty("点位数量")
    private Numbers pointsNumbers;
    @ApiModelProperty("场站列表")
    private List<XpStation> xpStationList;
    @ApiModelProperty("场站数量")
    private Numbers stationNumbers;
    @Data
xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpStationController.java
@@ -1,12 +1,14 @@
package com.xiaopeng.map.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.xiaopeng.api.model.operation.XpStation;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.map.service.XpStationService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
 * 场站
@@ -30,4 +32,17 @@
        return R.ok(xpStation);
    }
    /**
     * 根据围栏id获取场站
     * @param electronicId
     * @return
     */
    @PostMapping("/logan/inner/v1/xpStation/getXpStationByElectronicId")
    public R<List<XpStation>> getXpStationByElectronicId(@RequestParam("electronicId") Long electronicId){
        List<XpStation> xpStationList = xpStationService.list(new QueryWrapper<XpStation>().eq("electronic_id", electronicId));
        return R.ok(xpStationList);
    }
}
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpElectronicFenceController.java
@@ -2,13 +2,13 @@
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.xiaopeng.api.dto.operation.ElectronicFenceAddDto;
import com.xiaopeng.api.dto.operation.ElectronicFenceAreaUpdateStatusDto;
import com.xiaopeng.api.dto.operation.ElectronicFenceUpdateDto;
import com.xiaopeng.api.model.operation.XpElectronicFence;
import com.xiaopeng.api.model.operation.XpElectronicFenceArea;
import com.xiaopeng.api.model.operation.XpRegion;
import com.xiaopeng.api.feignClient.map.XpStationClient;
import com.xiaopeng.api.model.operation.*;
import com.xiaopeng.api.query.operation.ElectronicPageListQuery;
import com.xiaopeng.api.vo.operation.ElectronicFenceDetailVo;
import com.xiaopeng.common.core.domain.R;
@@ -18,6 +18,7 @@
import com.xiaopeng.operation.constant.I18nKeyConstant;
import com.xiaopeng.operation.service.IXpElectronicFenceAreaService;
import com.xiaopeng.operation.service.IXpElectronicFenceService;
import com.xiaopeng.operation.service.IXpPointService;
import com.xiaopeng.operation.service.XpRegionService;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@@ -31,6 +32,7 @@
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
/**
 * <p>
@@ -55,6 +57,15 @@
    @Resource
    private XpRegionService regionService;
    @Resource
    private IXpPointService xpPointService;
    @Resource
    private XpStationClient stationClient;
    /**
     * 查询省市管理
     */
@@ -127,6 +138,11 @@
        List<XpElectronicFenceArea> electronicFenceAreaList = xpElectronicFenceAreaService.lambdaQuery().eq(XpElectronicFenceArea::getElectronicId, id)
                .list();
        res.setElectronicFenceAreas(electronicFenceAreaList);
        List<Long> longList = electronicFenceAreaList.stream().map(XpElectronicFenceArea::getId).collect(Collectors.toList());
        List<XpPoint> xpPointList = xpPointService.list(new QueryWrapper<XpPoint>().in("electronic_area_id", longList));
        res.setXpPointList(xpPointList);
        List<XpStation> data = stationClient.getXpStationByElectronicId(id).getData();
        res.setXpStationList(data);
        return R.ok(res);
    }