xuhy
2026-03-05 7718d0536b1fd30036e9eea9c8b4b94f636e7e57
Merge remote-tracking branch 'origin/master'
1个文件已修改
74 ■■■■■ 已修改文件
xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java
@@ -46,6 +46,8 @@
import org.springframework.data.mongodb.core.geo.GeoJsonPoint;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.data.mongodb.core.query.UpdateDefinition;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
@@ -275,32 +277,56 @@
        VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(vin)), VehiclePosition.class);
        if (null == vehiclePosition) {
            vehiclePosition = new VehiclePosition();
        }
        vehiclePosition.setVin(vin);
        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.setVin(vin);
            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))
                    .set("course", course)
                    .set("alt", alt)
                    .set("speed", dynamicStatus.getSpeed())
                    .set("currentElectricity", dynamicStatus.getBmsSocDisp())
                    .set("mileageRange", dynamicStatus.getDstBatDisp())
                    .set("hasOrder", hasOrder)
                    .set("orderId", orderId);
            mongoTemplate.updateFirst(new Query(Criteria.where("vin").is(vin)), update, VehiclePosition.class);
        }
        vehiclePosition.setOrderId(orderId);
        mongoTemplate.save(vehiclePosition);
        //调用推送服务接口
        if (null != orderId) {
            RtTripInfo rtTripInfo = systemRuntimeStatus.getRtTripInfo();