From 713d2a362abb60906e833096280c8e3915e9773f Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期三, 04 十二月 2024 11:11:13 +0800
Subject: [PATCH] 处理推单

---
 UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java |   34 ++++++++++++++++++++--------------
 1 files changed, 20 insertions(+), 14 deletions(-)

diff --git a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
index 601ce15..ec222e5 100644
--- a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
+++ b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -364,6 +364,7 @@
                 System.out.println("=======4444======>");
                 //获取空闲司机
                 List<Driver> drivers = driverService.queryIdleDriver(1, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), assignOrder.getDistance(), null);//获取范围内空闲司机
+                List<Integer> driverIds = drivers.stream().map(Driver::getId).collect(Collectors.toList());
                 if(drivers.size() > 0){//有司机,直接指派给司机
                     Driver dr = null;
                     if(drivers.size() > 1){
@@ -374,7 +375,6 @@
                             int index = 0;
                             System.out.println("=======5555======>");
                             // 查询预约单
-                            List<Integer> driverIds = drivers.stream().map(Driver::getId).collect(Collectors.toList());
                             List<OrderPrivateCar> orderPrivateCarss = orderPrivateCarMapper.queryOrderByState(driverIds, 2, 1, 2, 3, 4, 5, 6,  11);
                             List<Integer> orderPrivateCarDriverIds = orderPrivateCars.stream().map(OrderPrivateCar::getDriverId).collect(Collectors.toList());
                             for(int j = 0; j < drivers.size(); j++){
@@ -424,17 +424,27 @@
                             }
                         }
                     }else{
-                        dr = drivers.get(0);
+                        List<OrderPrivateCar> orderPrivateCarss = orderPrivateCarMapper.queryOrderByState(driverIds, 2, 1, 2, 3, 4, 5, 6,  11);
+                        if(orderPrivateCarss.size()==0){
+                            dr = drivers.get(0);
+                        }
                     }
 
-                    orderPrivateCar.setDriverId(dr.getId());
-                    orderPrivateCar.setCompanyId(dr.getFranchiseeId() != null && dr.getFranchiseeId() != 0 ? dr.getFranchiseeId() : (
-                            dr.getCompanyId() != null && dr.getCompanyId() != 0 ? dr.getCompanyId() : 1));
-                    orderPrivateCar.setState(2);
-                    orderPrivateCar.setCarId(dr.getCarId());
-                    CarService query1 = carServiceMapper.query(1, dr.getCarId());
-                    orderPrivateCar.setServerCarModelId(query1.getServerCarModelId());
-                    orderPrivateCar.setSnatchOrderTime(new Date());
+                    if(Objects.nonNull(dr)){
+                        orderPrivateCar.setDriverId(dr.getId());
+                        orderPrivateCar.setCompanyId(dr.getFranchiseeId() != null && dr.getFranchiseeId() != 0 ? dr.getFranchiseeId() : (
+                                dr.getCompanyId() != null && dr.getCompanyId() != 0 ? dr.getCompanyId() : 1));
+                        orderPrivateCar.setState(2);
+                        orderPrivateCar.setCarId(dr.getCarId());
+                        CarService query1 = carServiceMapper.query(1, dr.getCarId());
+                        orderPrivateCar.setServerCarModelId(query1.getServerCarModelId());
+                        orderPrivateCar.setSnatchOrderTime(new Date());
+                        if(orderPrivateCar.getOrderType() != 2){
+                            dr.setState(3);
+                        }
+                        driverService.updateById(dr);
+                    }
+
 
                     //调用高德创建轨迹
 //                    String s = gdFalconUtil.selectTerminal(dr.getPhone());
@@ -450,10 +460,6 @@
 //                        orderPrivateCar.setBindId(map.get("bindId"));
 //                    }
 
-                    if(orderPrivateCar.getOrderType() != 2){
-                        dr.setState(3);
-                    }
-                    driverService.updateById(dr);
                     this.updateById(orderPrivateCar);
 
                     //发送短信给司机

--
Gitblit v1.7.1