| | |
| | | import com.xiaopeng.api.model.order.XpCruiseOrder; |
| | | import com.xiaopeng.api.model.vehicleConvoy.XpVehicle; |
| | | import com.xiaopeng.api.vo.automaticPilot.VehiclePosition; |
| | | import com.xiaopeng.api.vo.automaticPilot.protobuf.TaskActionType; |
| | | import com.xiaopeng.common.core.domain.R; |
| | | import com.xiaopeng.common.core.utils.SensitiveDataCryptoUtil; |
| | | import com.xiaopeng.maintenance.mapper.XpTaskRuleMapper; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | |
| | | * @param xpVehicle 车辆信息 |
| | | */ |
| | | private void sendCollectionCommand(XpVehicle xpVehicle) { |
| | | String vin = SensitiveDataCryptoUtil.decryptIfPossible(xpVehicle.getVehicleVin()); |
| | | // 收车 关闭当前巡游单子 生成新的返程单子 找到收车站点 |
| | | R<Long> r = xpCruiseOrderClient.cancelCruiseOrderByVin(xpVehicle.getVehicleVin()); |
| | | XpCruiseOrder oldCruiseOrder = xpCruiseOrderClient.cancelCruiseOrderByVin(vin).getData(); |
| | | |
| | | // mongodb 获取当前最新经纬度位置 |
| | | VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(xpVehicle.getVehicleVin())), VehiclePosition.class); |
| | | VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(vin)), VehiclePosition.class); |
| | | XpCruiseOrder xpCruiseOrder = new XpCruiseOrder(); |
| | | if(vehiclePosition!=null){ |
| | | double x = vehiclePosition.getPoint().getX(); |
| | |
| | | xpCruiseOrder.setOrderType(2); |
| | | xpCruiseOrder.setStatus(1); |
| | | xpCruiseOrder.setOrderReverse(1); |
| | | xpCruiseOrder.setLastOrderId(r.getData()); |
| | | xpCruiseOrder.setLastOrderId(oldCruiseOrder.getId()); |
| | | xpCruiseOrder.setOrderReverse(1); |
| | | xpCruiseOrder.setXpuTaskId(snowflake.nextId() + ""); |
| | | |
| | | // 找到收车站点 |
| | | R<XpCruiseOrder> returnCruisePoint = xpCruisePlanClient.findReturnCruisePoint(xpCruiseOrder); |
| | | if (returnCruisePoint.getData() != null) { |
| | | xpCruiseOrderClient.addCruiseOrder(returnCruisePoint.getData()); |
| | | if (returnCruisePoint.getData() != null && 200 == returnCruisePoint.getCode()) { |
| | | XpCruiseOrder cruiseOrder = returnCruisePoint.getData(); |
| | | //不停车替换新任务 |
| | | cruiseOrder.setLastOrderId1("XU" + oldCruiseOrder.getId()); |
| | | cruiseOrder.setLastXpuTaskId(oldCruiseOrder.getXpuTaskId()); |
| | | cruiseOrder.setTaskActionType(TaskActionType.kTerminateForNewTask); |
| | | xpCruiseOrderClient.addCruiseOrder(cruiseOrder); |
| | | } |
| | | log.info("向车辆[{}]发送收车指令", xpVehicle.getPlateNumber()); |
| | | } |