puzhibing
2026-03-06 baf40fad148900cafb8e73c5d42c044d523b51f2
合并代码
1个文件已修改
43 ■■■■■ 已修改文件
xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java
@@ -273,6 +273,21 @@
        //保存车辆实时位置到redis
        redisTemplate.opsForGeo().add("vehiclePosition:" + vin, new Point(longitude, latitude), vin);
        VehicleStatus vehicleStatus = systemRuntimeStatus.getVehicleStatus();
        OrderStatusInfo runningOrderStatusInfo = systemRuntimeStatus.getRunningOrderStatusInfo();
        String order_id = runningOrderStatusInfo.getOrderId();
        //车辆动态信息
        VehicleDynamicStatus dynamicStatus = vehicleStatus.getDynamicStatus();
        Long orderId = null;
        Integer hasOrder = 0;
        if (StringUtils.isNotEmpty(order_id)) {
            if (order_id.contains("XU")) {
                hasOrder = 1;
                orderId = Long.parseLong(order_id.substring(2));
            } else {
                orderId = Long.parseLong(order_id);
            }
        }
        //保存车辆实时信息到mongodb
        VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(vin)), VehiclePosition.class);
        if (null == vehiclePosition) {
@@ -281,40 +296,12 @@
            vehiclePosition.setPoint(new GeoJsonPoint(longitude, latitude));
            vehiclePosition.setCourse(course);
            vehiclePosition.setAlt(alt);
            VehicleStatus vehicleStatus = systemRuntimeStatus.getVehicleStatus();
            //车辆动态信息
            VehicleDynamicStatus dynamicStatus = vehicleStatus.getDynamicStatus();
            vehiclePosition.setSpeed(dynamicStatus.getSpeed());
            vehiclePosition.setCurrentElectricity(dynamicStatus.getBmsSocDisp());
            vehiclePosition.setMileageRange(dynamicStatus.getDstBatDisp());
            //订单信息
            OrderStatusInfo runningOrderStatusInfo = systemRuntimeStatus.getRunningOrderStatusInfo();
            Long orderId = null;
            String order_id = runningOrderStatusInfo.getOrderId();
            vehiclePosition.setHasOrder(0);
            if (StringUtils.isNotEmpty(order_id)) {
                if (order_id.contains("XU")) {
                    vehiclePosition.setHasOrder(1);
                    orderId = Long.parseLong(order_id.substring(2));
                } else {
                    orderId = Long.parseLong(order_id);
                }
            }
            vehiclePosition.setOrderId(orderId);
            mongoTemplate.save(vehiclePosition);
        }else{
            VehicleDynamicStatus dynamicStatus = vehicleStatus.getDynamicStatus();
            String order_id = runningOrderStatusInfo.getOrderId();
            Long orderId = null;
            Integer hasOrder = 0;
            if (StringUtils.isNotEmpty(order_id)) {
                if (order_id.contains("XU")) {
                    hasOrder = 1;
                    orderId = Long.parseLong(order_id.substring(2));
                } else {
                    orderId = Long.parseLong(order_id);
                }
            }
            vehiclePosition.setOrderId(orderId);
            Update update = new Update()
                    .set("point", new GeoJsonPoint(longitude, latitude))