puzhibing
2026-05-17 993a6e6ea8ae047b9e5fffd249ae7adfcd650d3a
xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpStationServiceImpl.java
@@ -3,6 +3,7 @@
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xiaopeng.api.model.map.XpGeoFencingPolygon;
import com.xiaopeng.api.model.operation.*;
@@ -12,6 +13,7 @@
import com.xiaopeng.api.vo.operation.XpStationVo;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.exception.ServiceException;
import com.xiaopeng.common.core.utils.StringUtils;
import com.xiaopeng.common.core.web.page.PageInfo;
import com.xiaopeng.common.security.service.TokenService;
import com.xiaopeng.map.constant.I18nKeyConstant;
@@ -94,6 +96,16 @@
    }
    @Override
    public List<XpStation> findList(PageInfo<XpStation> pageInfo, XpStationQuery query) {
        if(StringUtils.isNotEmpty(query.getStationPointNum())){
            if(query.getStationPointNum().contains(",")){
                throw new ServiceException("点位数量只能单选");
            }
            if(query.getStationPointNum().contains("gt")){
                query.setStationPointNum(query.getStationPointNum().replace("gt", " > "));
            }else{
                query.setStationPointNum(" = " + query.getStationPointNum());
            }
        }
        List<XpStation> list = null;
        if(pageInfo ==null){
            list = this.baseMapper.pageList(query);
@@ -109,8 +121,8 @@
            }
            PointPageListListQuery queryPoint = new PointPageListListQuery();
            queryPoint.setStationIds(stationIds);
            List<XpPoint> xpPoints = xpPointService.pageList(null, queryPoint);
            List<XpPoint> xpPoints = xpPointService.list(new QueryWrapper<XpPoint>().in("station_id", stationIds)
                    .eq("operation_status", 2).eq("is_deleted", 0));
            // 将点位按场站ID分组,提高后续处理效率
            Map<Long, List<XpPoint>> pointMap = xpPoints.stream()
                    .collect(Collectors.groupingBy(XpPoint::getStationId));