puzhibing
2026-03-06 0157263f20b8f2ffe1bbb5ad30366e7349d7cc8f
xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/controller/OrderMissionController.java
@@ -38,6 +38,7 @@
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.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.*;
@@ -294,6 +295,7 @@
        ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>(1000));
        Long finalOrderId = orderId;
        Long finalOrderId1 = orderId;
        threadPoolExecutor.execute(() -> {
            //等待10秒后开始执行车子位移
            try {
@@ -313,17 +315,29 @@
                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(60D);
                    vehiclePosition.setAlt(100F);
                    vehiclePosition.setSpeed(50F);
                    vehiclePosition.setCurrentElectricity(80);
                    vehiclePosition.setMileageRange(300f);
                    vehiclePosition.setHasOrder(0);
                    vehiclePosition.setOrderId(finalOrderId1);
                    mongoTemplate.save(vehiclePosition);
                }else{
                    vehiclePosition.setOrderId(finalOrderId1);
                    Update update = new Update()
                            .set("point", new GeoJsonPoint(longitude, latitude))
                            .set("course", 60D)
                            .set("alt", 100F)
                            .set("speed", 50F)
                            .set("currentElectricity", 80)
                            .set("mileageRange", 300f)
                            .set("hasOrder", 0)
                            .set("orderId", finalOrderId1);
                    mongoTemplate.updateFirst(new Query(Criteria.where("vin").is(vin)), update, VehiclePosition.class);
                }
                vehiclePosition.setVin(vin);
                vehiclePosition.setPoint(new GeoJsonPoint(longitude, latitude));
                vehiclePosition.setCourse(60D);
                vehiclePosition.setAlt(100F);
                //车辆动态信息
                vehiclePosition.setSpeed(50F);
                vehiclePosition.setCurrentElectricity(80);
                vehiclePosition.setMileageRange(300f);
                vehiclePosition.setOrderId(finalOrderId);
                mongoTemplate.save(vehiclePosition);
                //调用推送服务接口
                if (null != finalOrderId) {
                    PushOrderRouteDTO dto = new PushOrderRouteDTO();
@@ -460,6 +474,7 @@
        ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>(1000));
        Long finalOrderId = orderId;
        Long finalOrderId1 = orderId;
        threadPoolExecutor.execute(() -> {
            //等待10秒后开始执行车子位移
            try {
@@ -480,17 +495,29 @@
                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(60D);
                    vehiclePosition.setAlt(100F);
                    vehiclePosition.setSpeed(50F);
                    vehiclePosition.setCurrentElectricity(80);
                    vehiclePosition.setMileageRange(300f);
                    vehiclePosition.setHasOrder(0);
                    vehiclePosition.setOrderId(finalOrderId1);
                    mongoTemplate.save(vehiclePosition);
                }else{
                    vehiclePosition.setOrderId(finalOrderId1);
                    Update update = new Update()
                            .set("point", new GeoJsonPoint(longitude, latitude))
                            .set("course", 60D)
                            .set("alt", 100F)
                            .set("speed", 50F)
                            .set("currentElectricity", 80)
                            .set("mileageRange", 300f)
                            .set("hasOrder", 0)
                            .set("orderId", finalOrderId1);
                    mongoTemplate.updateFirst(new Query(Criteria.where("vin").is(vin)), update, VehiclePosition.class);
                }
                vehiclePosition.setVin(vin);
                vehiclePosition.setPoint(new GeoJsonPoint(longitude, latitude));
                vehiclePosition.setCourse(60D);
                vehiclePosition.setAlt(100F);
                //车辆动态信息
                vehiclePosition.setSpeed(50F);
                vehiclePosition.setCurrentElectricity(80);
                vehiclePosition.setMileageRange(300f);
                vehiclePosition.setOrderId(finalOrderId);
                mongoTemplate.save(vehiclePosition);
                //调用推送服务接口
                if (null != finalOrderId) {
                    PushOrderRouteDTO dto = new PushOrderRouteDTO();