Pu Zhibing
2025-08-05 b85d1d0b0a33190fc820adf4af45f98499b274cf
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -2816,45 +2816,39 @@
                  int finalI = i;
                  PushOrder pushOrder = querys.stream().filter(s -> s.getType() == (finalI <= 3 ? finalI : 3)).findFirst().orElse(null);
                  System.out.println("pushOrder:" + pushOrder);
                  int i2 = pushOrder.getPushTime() / 10;
                  if (i2 == 0) {
                     i2 = 1;
                  if (orderPrivateCar.getState() > 1) {
                     break;
                  }
                  for (int i1 = 0; i1 < i2; i1++) {
                     if (orderPrivateCar.getState() > 1) {
                        break;
                     }
                     //获取空闲司机
                     List<Driver> list = driverService.queryIdleDriver(orderType, serverCarModelId, startLon, startLat, pushOrder.getPushDistance(), null);//所有附近空闲司机
                     if (list.size() > 0) {
                        double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数
                        int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取)
                        lastIndex = lastIndex == 0 ? list.size() : lastIndex;
                        list = list.subList(0, lastIndex);//获取空闲司机中占比数据
                        for (Driver driver : list) {//开始进行推送
                           boolean bo = false;
                           for (Integer integer : integers) {
                              if (integer.compareTo(driver.getId()) == 0) {
                                 bo = true;
                                 break;
                              }
                  //获取空闲司机
                  List<Driver> list = driverService.queryIdleDriver(orderType, serverCarModelId, startLon, startLat, pushOrder.getPushDistance(), null);//所有附近空闲司机
                  if (list.size() > 0) {
                     double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数
                     int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取)
                     lastIndex = lastIndex == 0 ? list.size() : lastIndex;
                     list = list.subList(0, lastIndex);//获取空闲司机中占比数据
                     for (Driver driver : list) {//开始进行推送
                        boolean bo = false;
                        for (Integer integer : integers) {
                           if (integer.compareTo(driver.getId()) == 0) {
                              bo = true;
                              break;
                           }
                           if (bo) {
                              continue;
                           }
                           pushUtil.pushOrderState(2, driver.getId(), id, 1, 1, pushOrder.getPushTime());
                        }
                        if (bo) {
                           continue;
                        }
                        pushUtil.pushOrderState(2, driver.getId(), id, 1, 1, pushOrder.getPushTime());
                     }
                     Thread.sleep(10000);//设置等待时间
                     Integer state = orderPrivateCarMapper.selectById(orderPrivateCar.getId()).getState();
                     if (state > 1) {
                        orderIds.remove(orderPrivateCar.getId());
                        break;
                     }
                     if (i == querys.size() + 5) {
                        pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1);
                        orderIds.remove(orderPrivateCar.getId());
                     }
                  }
                  Thread.sleep(pushOrder.getPushTime() * 1000);//设置等待时间
                  Integer state = orderPrivateCarMapper.selectById(orderPrivateCar.getId()).getState();
                  if (state > 1) {
                     orderIds.remove(orderPrivateCar.getId());
                     break;
                  }
                  if (i == querys.size() + 5) {
                     pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1);
                     orderIds.remove(orderPrivateCar.getId());
                  }
               }
            } catch (Exception e) {