puzhibing
2026-05-11 b2ff9dd285dcc9ec6b91e69bb9222515c1208d12
Merge remote-tracking branch 'origin/1.0' into 1.0
10个文件已修改
84 ■■■■■ 已修改文件
xp-robotaxi-account-boot/src/main/resources/mapper/account/XpAppUserCollectAddrMapper.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/operation/XpWhitelist.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/query/operation/PointListQuery.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/ActiveOrderServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/XpPricingServiceImpl.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpPointManagementController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-map-boot/src/main/resources/mapper/XpPointMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpPointServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/vo/OrderDistanceVo.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/ActiveOrderController.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/resources/mapper/account/XpAppUserCollectAddrMapper.xml
@@ -14,7 +14,7 @@
        from xp_app_user_collect_addr c
        where c.app_user_id = #{uid}
          and c.is_deleted = 0
        order by c.create_time asc
        order by c.create_time desc
    </select>
    <select id="selectPointCollectTarget" resultType="com.xiaopeng.account.model.vo.CollectAddrTargetVO">
xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/operation/XpWhitelist.java
@@ -63,13 +63,16 @@
    @ApiModelProperty(value = "用户id 根据手机号获取")
    private Long appUserId;
    public Boolean getStatus() {
        if(expireTime!= null){
            if (LocalDate.now().isAfter(expireTime)) {
    /***
     * 在正常情况下 有效期是否过期
     * @return
     */
    public Boolean getIsExpireTime() {
        if(expireTime!= null && status != null){
            if(status){
                return !LocalDate.now().isAfter(expireTime);
            }
        }
                return false;
            }
            return status;
        }
        return status;
    }
}
xp-robotaxi-api/src/main/java/com/xiaopeng/api/query/operation/PointListQuery.java
@@ -11,6 +11,9 @@
@ApiModel(value = "点位管理列表查询query")
public class PointListQuery extends BasePage {
    private Long id;
    @ApiModelProperty(value = "电子围栏区域id")
    private List<Long> electronicAreaIds;
xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/ActiveOrderServiceImpl.java
@@ -171,7 +171,7 @@
            throw new ServiceException("获取行驶中的车辆信息错误");
        }
        //剩余里程xx米,或者 剩余时间xx分钟 禁止修改目的地
        //获取订单的
        //获取订单的 状态 0=已取消,1=待接单,2=待出发,3=接驾中,4=待客上车,5=乘客已上车,6=服务中,7=待客下车,8=待付款,9=待评价,10=已完成
        if(order.getStatus() == 6){
            Object cacheObject = redisService.getCacheObject(CacheConstants.navigationEnd(uid));
            if(cacheObject != null){
xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/XpPricingServiceImpl.java
@@ -15,6 +15,7 @@
import com.xiaopeng.api.dto.map.RouteAndFareDto;
import com.xiaopeng.api.dto.map.RouteStaleCheckDto;
import com.xiaopeng.api.dto.map.SelectNavigationRouteDto;
import com.xiaopeng.api.dto.operation.LonLatDto;
import com.xiaopeng.api.enums.RouteStrategyKind;
import com.xiaopeng.api.feignClient.account.UserResourcesClient;
import com.xiaopeng.api.feignClient.account.UserRoutePlanRuleClient;
@@ -1141,7 +1142,10 @@
        List<RouteStrategyKind> kinds = planningConfig.getKinds();
        Map<String, RouteVo> routeById = new LinkedHashMap<>();
        Map<String, Set<RouteStrategyKind>> strategiesById = new LinkedHashMap<>();
        for (RouteStrategyKind kind : kinds) {
        Set<List<LonLatDto>> routePoints = new HashSet<>();
        aa: for (RouteStrategyKind kind : kinds) {
            RouteAndFareDto copy = new RouteAndFareDto();
            copy.setOrigin(routeAndFareDto.getOrigin());
            copy.setDestination(routeAndFareDto.getDestination());
@@ -1150,10 +1154,19 @@
            if (r.getCode() != 200 || r.getData() == null || r.getData().getRouteID() == null) {
                continue;
            }
            if(CollUtil.isNotEmpty(routePoints)){
                for (List<LonLatDto> routePoint : routePoints) {
                    if(CollUtil.isEqualList(routePoint, r.getData().getPolyline())){
                        continue aa;
                    }
                }
            }
            routePoints.add(r.getData().getPolyline());
            String fid = r.getData().getRouteID();
            routeById.putIfAbsent(fid, r.getData());
            strategiesById.computeIfAbsent(fid, k -> new LinkedHashSet<>()).add(kind);
        }
        if (routeById.isEmpty()) {
            throw new ServiceException("获取导肮信息失败", I18nKeyConstant.PATH_NOT_FOUND);
        }
@@ -1197,15 +1210,6 @@
            opt.setOperateFree(operateFree);
            options.add(opt);
        }
        // 根据 pathFingerprint 去重,保留第一次出现的路线
//        options = new ArrayList<>(options.stream()
//                .collect(Collectors.toMap(
//                        RouteOptionVo::getPathFingerprint,
//                        option -> option,
//                        (existing, replacement) -> existing,
//                        LinkedHashMap::new
//                )).values());
        RouteStrategyKind userPref = resolveUserPreferredKind(userId).orElse(RouteStrategyKind.SMART);
        options.sort((a, b) -> compareRouteOptionByUserPreference(a, b, userPref, strategiesById));
xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpPointManagementController.java
@@ -3,6 +3,7 @@
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -289,7 +290,13 @@
    @GetMapping("/queryById")
    @ApiOperation(value = "点位详情")
    public R<XpPoint> queryById(@RequestParam Long id) {
        return R.ok(xpPointService.getById(id));
        PointListQuery query = new PointListQuery();
        query.setId(id);
        List<XpPoint> pointList = xpPointService.findList(query);
        if(CollUtil.isNotEmpty(pointList)){
            return R.ok(pointList.get(0));
        }
        return R.ok(new XpPoint());
    }
    /**
xp-robotaxi-map-boot/src/main/resources/mapper/XpPointMapper.xml
@@ -100,6 +100,9 @@
        left join xp_station xs on xs.id = t1.station_id
        where t1.is_deleted = 0
        <if test="query.id != null ">
            and t1.id = #{query.id}
        </if>
        <if test="query.electronicAreaIds != null and query.electronicAreaIds.size() > 0">
            and t1.electronic_area_id in
            <foreach collection="query.electronicAreaIds" item="id" open="(" separator="," close=")">
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpPointServiceImpl.java
@@ -747,6 +747,12 @@
            orderDistanceVo.setAdsorptionDistance(xpSystemSetting.getAdsorptionDistance());
            orderDistanceVo.setNearPointDistance(xpSystemSetting.getNearPointDistance());
            orderDistanceVo.setTemperatureUnit(xpSystemSetting.getTemperatureUnit());
            orderDistanceVo.setXczSyDistance(xpSystemSetting.getXczSyDistance());
            orderDistanceVo.setXczSyTime(xpSystemSetting.getXczSyTime());
            orderDistanceVo.setXczCaCount(xpSystemSetting.getXczCaCount());
            orderDistanceVo.setXczHmSpeedPerHour(xpSystemSetting.getXczHmSpeedPerHour());
            orderDistanceVo.setXczHmDuration(xpSystemSetting.getXczHmDuration());
            return orderDistanceVo;
        }
        return orderDistanceVo;
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/vo/OrderDistanceVo.java
@@ -32,4 +32,18 @@
    @ApiModelProperty("下单页停留时长")
    private Integer maxStandingTiming;
    @ApiModelProperty(value = "行程中剩余里程")
    private Integer xczSyDistance;
    @ApiModelProperty(value = "行程中剩余时间")
    private Integer xczSyTime;
    @ApiModelProperty(value = "行程中修改目地次数")
    private Integer xczCaCount;
    @ApiModelProperty(value = "行程中豁免时速 km/h")
    private Integer xczHmSpeedPerHour;
    @ApiModelProperty(value = "行程中豁免持续时间 分钟")
    private Integer xczHmDuration;
}
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/ActiveOrderController.java
@@ -100,6 +100,9 @@
            key = "ORDER_NAVIGATION_END_DATA:" + xpOrder.getAppUserId();
        }
        Object cacheObject = redisService.getCacheObject(key);
        if(cacheObject == null){
            return R.fail("获取路线失败");
        }
        RouteVo routeVo = JSON.parseObject(cacheObject.toString(), RouteVo.class);
        XpVehicle xpVehicle = xpVehicleClient.queryById(xpOrder.getVehicleId()).getData();
        VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(xpVehicle.getVehicleVin())), VehiclePosition.class);
@@ -162,6 +165,7 @@
            xpOrderDetailVO.setVehicleId(vehicle.getId());
            xpOrderDetailVO.setVehicleVin(vehicle.getVehicleVin());
            xpOrderDetailVO.setVehicleModel(vehicle.getVehicleModelName());
            xpOrderDetailVO.setVehicleCode(vehicle.getVehicleCode());
            xpOrderDetailVO.setVehicleColor(vehicle.getVehicleColor());
            xpOrderDetailVO.setPlateNumber(vehicle.getPlateNumber());
            xpOrderDetailVO.setVehiclePictures(vehicle.getVehiclePictures());