| | |
| | | package com.xiaopeng.operation.utils; |
| | | |
| | | import cn.hutool.core.bean.BeanUtil; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.xiaopeng.api.dto.automaticPilot.PushOrderDto; |
| | | import com.xiaopeng.api.dto.map.RouteAndFareDto; |
| | | import com.xiaopeng.api.dto.operation.LonLatDto; |
| | |
| | | */ |
| | | @SneakyThrows |
| | | private void processPushOrder(String quoteName, int count, String uid, String[] split, String orderNo, XpTradingStrategy xpTradingStrategy, String distance, String duration, String planRule) { |
| | | // 卡住3秒 |
| | | Thread.sleep(3000); |
| | | |
| | | System.out.println("进入推单环环节"); |
| | | if (count == 0) { |
| | | count = 1; |
| | |
| | | XpElectronicFence xpElectronicFence = xpElectronicFenceMapper.selectById(electronicId); |
| | | |
| | | for (int i = 0; i < count; i++) { |
| | | // 卡住3秒 |
| | | Thread.sleep(3000); |
| | | System.out.println("进入找车环节"); |
| | | // 根据距离找车 |
| | | // 车多则根据配置找具体车数量 根据距离最近 |
| | |
| | | |
| | | // 获取车辆的信息 筛选出可用车辆 |
| | | R<List<String>> vehiclePositionVos = xpVehicleClient.queryVehiclePositionByVin(new VehiclePositionByVinDto(xpElectronicFence.getId(), vinList, xpTradingStrategy.getSimultaneouslyOrderCount())); |
| | | log.info("筛选可用车辆结果 {}", vehiclePositionVos); |
| | | log.info("筛选可用车辆结果 {}", JSON.toJSONString(vehiclePositionVos)); |
| | | if (vehiclePositionVos.getCode() != 200) { |
| | | continue; |
| | | } |
| | |
| | | |
| | | if (!availableVehiclesNearby.isEmpty()) { |
| | | if (availableVehiclesNearby.size() > 1) { |
| | | log.info("附近有 {} 辆车,进入权重按断流程", availableVehiclesNearby.size()); |
| | | log.info("附近有 {} 辆车,进入权重判断流程", availableVehiclesNearby.size()); |
| | | // 走权重 |
| | | |
| | | // 订单价值 |
| | |
| | | } |
| | | XpVehicle vehicleId1 = vehicleR.getData(); |
| | | log.info("附近只有一个车辆 {} ,直接推单XPU", vehicleId1.getPlateNumber()); |
| | | log.info("当前车辆状态 {}", vehicleId1.getStatus()); |
| | | if (vehicleId1.getStatus() != 1 || vehicleId1.getState() != 0 || vehicleId1.getVehicleType()==1) { |
| | | log.info("当前车辆状态 {} 运营状态 {}", vehicleId1.getOperatingStatus(), vehicleId1.getState()); |
| | | if (vehicleId1.getOperatingStatus() != 1 || vehicleId1.getState() != 0 || vehicleId1.getVehicleType()==1) { |
| | | lock.unlock(); |
| | | continue; |
| | | } |
| | |
| | | return; |
| | | |
| | | } catch (Exception e) { |
| | | |
| | | e.printStackTrace(); |
| | | } finally { |
| | | lock.unlock(); |
| | | } |