liujie
2026-03-12 f9e729daac1d6f76b17c736bec365764ffbc562d
Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi
6个文件已修改
63 ■■■■■ 已修改文件
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleOperationsController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/schedule/VehicleCollectionScheduleTask.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-map-boot/src/main/resources/mapper/XpPointMapper.xml 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/model/query/XpOrderPageQuery.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleOperationsController.java
@@ -112,17 +112,6 @@
            XpCruiseOrder returnCruisePoint = xpCruisePlanClient.findReturnCruisePoint(xpCruiseOrder).getData();
            if(returnCruisePoint!=null){
                xpCruiseOrderClient.addCruiseOrder(returnCruisePoint);
                // 下发命令
                PushOrderDto pushOrderDto = new PushOrderDto();
                pushOrderDto.setVin(returnCruisePoint.getVehicleVin());
                pushOrderDto.setOrderId("XU" + returnCruisePoint.getId());
                pushOrderDto.setStartLatitude(returnCruisePoint.getStartLat());
                pushOrderDto.setStartLongitude(returnCruisePoint.getStartLon());
                pushOrderDto.setEndLatitude(returnCruisePoint.getEndLat());
                pushOrderDto.setEndLongitude(returnCruisePoint.getEndLon());
                pushOrderDto.setOrderType(OrderType.CRUISE_ORDER);
                pushOrderDto.setStage(2);
                orderMissionClient.pushOrder(pushOrderDto);
            }
        }
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/schedule/VehicleCollectionScheduleTask.java
@@ -224,17 +224,6 @@
        R<XpCruiseOrder> returnCruisePoint = xpCruisePlanClient.findReturnCruisePoint(xpCruiseOrder);
        if (returnCruisePoint.getData() != null) {
            xpCruiseOrderClient.addCruiseOrder(returnCruisePoint.getData());
            // 下发命令
            PushOrderDto pushOrderDto = new PushOrderDto();
            pushOrderDto.setVin(returnCruisePoint.getData().getVehicleVin());
            pushOrderDto.setOrderId("XU" + returnCruisePoint.getData().getId());
            pushOrderDto.setStartLatitude(returnCruisePoint.getData().getStartLat());
            pushOrderDto.setStartLongitude(returnCruisePoint.getData().getStartLon());
            pushOrderDto.setEndLatitude(returnCruisePoint.getData().getEndLat());
            pushOrderDto.setEndLongitude(returnCruisePoint.getData().getEndLon());
            pushOrderDto.setOrderType(OrderType.CRUISE_ORDER);
            pushOrderDto.setStage(2);
            orderMissionClient.pushOrder(pushOrderDto);
        }
        log.info("向车辆[{}]发送收车指令", xpVehicle.getPlateNumber());
    }
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java
@@ -214,6 +214,7 @@
        xpTask.setTaskUrgencyLevel(dto.getTaskUrgencyLevel());
        xpTask.setTaskDescription(dto.getTaskDescription());
        xpTask.setTaskImage(dto.getTaskImage());
        xpTask.setVehicleId(dto.getId());
        XpVehicle vehicle = xpVehicleClient.queryById(xpTask.getVehicleId()).getData();
//        if (vehicle!=null){
//            VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(vehicle.getVehicleVin())), VehiclePosition.class);
@@ -241,7 +242,12 @@
        List<Long> roleIds = list.stream().map(XpTaskRuleRole::getRoleId).collect(Collectors.toList());
        R<List<XpOperationsRole>> xpOperationsRoleResult = xpOperationUserClient.getXpOperationsRoleByRoleIds(roleIds);
        if (CollUtil.isNotEmpty(xpOperationsRoleResult.getData())) {
            List<Long> userIds = xpOperationsRoleResult.getData().stream().map(XpOperationsRole::getOperationsUserId).distinct().collect(Collectors.toList());
            Long fleetId = xpFleetVehicleClient.getFleetIdByVehicleId(vehicle.getId()).getData();
            List<Long> ids = xpFleetOperationsClient.getOperationsIdsByFleetId(fleetId).getData();
            // 根据配置的事故处理角色和事故车辆所属车队人员,确定最终的任务分配人列表(取交集)
            List<Long> userIds = xpOperationsRoleResult.getData().stream().filter(x -> ids.contains(x.getOperationsUserId()))
                    .map(XpOperationsRole::getOperationsUserId)
                    .distinct().collect(Collectors.toList());
            xpTask.setHandleUserId(StringUtils.join(userIds, ","));
        }
        // 根据事故处理限时配置设置任务截止时间
xp-robotaxi-map-boot/src/main/resources/mapper/XpPointMapper.xml
@@ -136,8 +136,8 @@
            and xp.parking_time_limit = #{query.parkingTimeLimit}
        </if>
        <if test="query.pointLonAndLat != null and query.pointLonAndLat != ''">
            and xp.point_lon like concat('%',#{query.pointLonAndLat},'%')
            or xp.point_lat like concat('%',#{query.pointLonAndLat},'%')
            and (xp.point_lon like concat('%',#{query.pointLonAndLat},'%')
            or xp.point_lat like concat('%',#{query.pointLonAndLat},'%'))
        </if>
        <if test="query.pointLon != null and query.pointLon != '' and query.pointLat != null and query.pointLat != ''">
            and xp.point_lon like concat('%',#{query.pointLon},'%')
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/model/query/XpOrderPageQuery.java
@@ -47,4 +47,7 @@
    @ApiModelProperty(value = "结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDate endTime;
    @ApiModelProperty(value = "用户ID")
    private Long uid;
}
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
@@ -207,7 +207,14 @@
                return buildEmptyOrderPage(query);
            }
        }
        if (StringUtils.isNotBlank(query.getNickName())) {
            //根据手机号查询用户信息
            UcUserInfo userByMobile = userResourcesClient.getUserByMobile(query.getNickName());
            if (userByMobile == null || userByMobile.getId() == null) {
                return buildEmptyOrderPage(query);
            }
            query.setUid(userByMobile.getId());
        }
        // 1. 构建查询条件
        LambdaQueryWrapper<XpOrder> wrapper = buildQueryWrapper(query);
        if (CollUtil.isNotEmpty(vehicleIdsFilter)) {
@@ -350,7 +357,14 @@
            }
            wrapper.in(XpOrder::getVehicleId, vehicleIdsFilter);
        }
        if (StringUtils.isNotBlank(query.getNickName())) {
            //根据手机号查询用户信息
            UcUserInfo userByMobile = userResourcesClient.getUserByMobile(query.getNickName());
            if (userByMobile == null || userByMobile.getId() == null) {
                return new ArrayList<>();
            }
            query.setUid(userByMobile.getId());
        }
        // 2. 查询订单列表
        List<XpOrder> orderList = this.list(wrapper);
@@ -394,7 +408,8 @@
        wrapper.like(StringUtils.isNotBlank(query.getOrderNumber()), XpOrder::getOrderNumber, query.getOrderNumber())
                .eq(Objects.nonNull(query.getFleetId()), XpOrder::getFleetId, query.getFleetId())
                .eq(Objects.nonNull(query.getOrderSource()), XpOrder::getOrderSource, query.getOrderSource())
                .eq(Objects.nonNull(query.getStatus()), XpOrder::getStatus, query.getStatus());
                .eq(Objects.nonNull(query.getStatus()), XpOrder::getStatus, query.getStatus())
                .eq(Objects.nonNull(query.getUid()), XpOrder::getAppUserId, query.getUid());
        RegionCodeFilterUtil.resolveCityCodeFilter(query.getCityCode())
                .ifPresent(filter -> {
@@ -421,7 +436,8 @@
        wrapper.like(StringUtils.isNotBlank(query.getOrderNumber()), XpOrder::getOrderNumber, query.getOrderNumber())
                .eq(Objects.nonNull(query.getFleetId()), XpOrder::getFleetId, query.getFleetId())
                .eq(Objects.nonNull(query.getOrderSource()), XpOrder::getOrderSource, query.getOrderSource())
                .eq(Objects.nonNull(query.getStatus()), XpOrder::getStatus, query.getStatus());
                .eq(Objects.nonNull(query.getStatus()), XpOrder::getStatus, query.getStatus())
                .eq(Objects.nonNull(query.getUid()), XpOrder::getAppUserId, query.getUid());
        RegionCodeFilterUtil.resolveCityCodeFilter(query.getCityCode())
                .ifPresent(filter -> {
@@ -2394,7 +2410,7 @@
                    order.setFleetId(vehicle.getFleetId());
                    addTaxiPassengerVo.setVin(vehicle.getVehicleVin());
                }
                order.setStatus(3);
                order.setStatus(2);
                // Redis弹出这个队列元素
                // value 订单Id_经纬度_状态_用户id_订单编号_距离_时间