xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/order/XpCruiseOrder.java
@@ -61,19 +61,19 @@ @ApiModelProperty(value = "状态 1进行中 2已停止 3已完成") private Integer status; @ApiModelProperty(value = "下单站点id") @ApiModelProperty(value = "起点站点id") @TableField("start_point_id") private Long startPointId; @ApiModelProperty(value = "下单终点站点Id") @ApiModelProperty(value = "终点站点Id") @TableField("end_point_id") private Long endPointId; @ApiModelProperty(value = "下单站点名称") @ApiModelProperty(value = "站点名称") @TableField("start_point_name") private String startPointName; @ApiModelProperty(value = "下单终点站点名称") @ApiModelProperty(value = "终点站点名称") @TableField("end_point_name") private String endPointName; @@ -81,7 +81,7 @@ @TableField("mission_id") private Long missionId; @ApiModelProperty(value = "返程上次的订单id") @ApiModelProperty(value = "上笔巡游单ID") @TableField("last_order_id") private Long lastOrderId; xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java
@@ -350,11 +350,11 @@ mongoTemplate.updateFirst(new Query(Criteria.where("vin").is(vin)), update, VehiclePosition.class); } //调用推送服务接口 if (null != orderId) { if (null != orderId && !order_id.contains("XU")) { RtTripInfo rtTripInfo = systemRuntimeStatus.getRtTripInfo(); PushOrderRouteDTO dto = new PushOrderRouteDTO(); dto.setOrderId(orderId); dto.setRouteType(order_id.contains("XU") ? 2 : 1); dto.setRouteType(1); dto.setLongitude(longitude); dto.setLatitude(latitude); //TODO 这两个字段现在拿不到 @@ -901,41 +901,33 @@ XpVehicle xpVehicle = xpVehicleR.getData(); // 运营中 继续执行 if(xpVehicle.getOperatingStatus()==1 && xpVehicle.getState()==0){ log.info("巡游单到达终点,继续执行下一笔巡游单"); // 创建新的巡游单子 判断是否为返程单子 if(xpCruiseOrder.getOrderType()==2){ R<XpCruiseOrder> lastOrder = xpCruiseOrderClient.getCruiseOrder(xpCruiseOrder.getLastOrderId()); XpCruiseOrder lastXpCruiseOrder = lastOrder.getData(); // 修改一下id 加一个一样的巡游单子 lastXpCruiseOrder.setId(null); lastXpCruiseOrder.setStatus(1); xpCruiseOrderClient.addCruiseOrder(lastXpCruiseOrder); }else if(xpCruiseOrder.getOrderType()==1){ // 正常巡游 找到下一个点位 若到达最后点位 则反向找点位 // 起点 Double endLon = xpCruiseOrder.getEndLon(); Double endLat = xpCruiseOrder.getEndLat(); XpCruiseOrder newXpCruiseOrder = new XpCruiseOrder(); newXpCruiseOrder.setVehicleId(xpCruiseOrder.getVehicleId()); newXpCruiseOrder.setVehicleVin(xpCruiseOrder.getVehicleVin()); newXpCruiseOrder.setFleetId(xpCruiseOrder.getFleetId()); newXpCruiseOrder.setOrderType(1); newXpCruiseOrder.setStartLat(endLat); newXpCruiseOrder.setStartLon(endLon); newXpCruiseOrder.setStartPointId(xpCruiseOrder.getEndPointId()); newXpCruiseOrder.setStartPointName(xpCruiseOrder.getEndPointName()); newXpCruiseOrder.setStatus(1); newXpCruiseOrder.setLastOrderId(xpCruiseOrder.getId()); // 正常巡游 找到下一个点位 若到达最后点位 则反向找点位 // 起点 Double endLon = xpCruiseOrder.getEndLon(); Double endLat = xpCruiseOrder.getEndLat(); XpCruiseOrder newXpCruiseOrder = new XpCruiseOrder(); newXpCruiseOrder.setVehicleId(xpCruiseOrder.getVehicleId()); newXpCruiseOrder.setVehicleVin(xpCruiseOrder.getVehicleVin()); newXpCruiseOrder.setFleetId(xpCruiseOrder.getFleetId()); newXpCruiseOrder.setOrderType(1); newXpCruiseOrder.setStartLat(endLat); newXpCruiseOrder.setStartLon(endLon); newXpCruiseOrder.setStartPointId(xpCruiseOrder.getEndPointId()); newXpCruiseOrder.setStartPointName(xpCruiseOrder.getEndPointName()); newXpCruiseOrder.setStatus(1); newXpCruiseOrder.setLastOrderId(xpCruiseOrder.getId()); // 通过车找终点id CruisePointDto cruisePointDto = new CruisePointDto(); cruisePointDto.setNewXpCruiseOrder(newXpCruiseOrder); cruisePointDto.setVehicleId(xpCruiseOrder.getVehicleId()); cruisePointDto.setPointId(newXpCruiseOrder.getStartPointId()); cruisePointDto.setOrderReverse(xpCruiseOrder.getOrderReverse()); R<XpCruiseOrder> cruisePoint = xpCruisePlanClient.getCruisePoint(cruisePointDto); if(cruisePoint!=null){ xpCruiseOrderClient.addCruiseOrder(cruisePoint.getData()); } // 通过车找终点id CruisePointDto cruisePointDto = new CruisePointDto(); cruisePointDto.setNewXpCruiseOrder(newXpCruiseOrder); cruisePointDto.setVehicleId(xpCruiseOrder.getVehicleId()); cruisePointDto.setPointId(newXpCruiseOrder.getStartPointId()); cruisePointDto.setOrderReverse(xpCruiseOrder.getOrderReverse()); R<XpCruiseOrder> cruisePoint = xpCruisePlanClient.getCruisePoint(cruisePointDto); if(cruisePoint!=null){ xpCruiseOrderClient.addCruiseOrder(cruisePoint.getData()); } } } xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleOperationsController.java
@@ -85,7 +85,12 @@ xpCruiseOrderClient.stopAllCruiseOrder(xpVehicle.getVehicleVin()); R<XpCruiseOrder> newCruiseOrder = xpCruisePlanClient.getNewCruiseOrder(new NewCruiseOrderDto(xpVehicle.getId(),xpVehicle.getVehicleVin(),xpVehicle.getFleetId(),vehiclePosition.getPoint())); if(newCruiseOrder.getData()!=null){ R<Long> longR = xpCruiseOrderClient.addCruiseOrder(newCruiseOrder.getData()); //标记订单为返程类型巡游单 //方向为正向 XpCruiseOrder cruiseOrder = newCruiseOrder.getData(); cruiseOrder.setOrderType(2); cruiseOrder.setOrderReverse(1); R<Long> longR = xpCruiseOrderClient.addCruiseOrder(cruiseOrder); if(200 != longR.getCode()){ return R.fail(longR.getMsg()); } xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
@@ -15,6 +15,7 @@ import com.xiaopeng.api.dto.account.UcUserInfo; import com.xiaopeng.api.dto.account.UseUserCouponDto; import com.xiaopeng.api.dto.automaticPilot.PushOrderDto; import com.xiaopeng.api.dto.operation.CruisePointDto; import com.xiaopeng.api.dto.operation.LonLatDto; import com.xiaopeng.api.dto.order.GetOrderNumDto; import com.xiaopeng.api.dto.order.HistoryEndPointsDto; @@ -2008,6 +2009,7 @@ xpCruiseOrder.setEndLon(xpCruiseOrders.getEndLon()); xpCruiseOrder.setEndLat(xpCruiseOrders.getEndLat()); } xpCruiseOrder.setOrderReverse(xpCruiseOrders.getOrderReverse()); xpCruiseOrder.setLastOrderId(xpCruiseOrders.getId()); xpCruiseOrder.setMissionId(xpCruiseOrders.getMissionId()); } @@ -2023,6 +2025,7 @@ xpCruiseOrder.setEndLon(endPoint.getPointLon()); xpCruiseOrder.setEndLat(endPoint.getPointLat()); xpCruiseOrder.setMissionId(xpCruisePlanPoint.getCruisePlanId()); xpCruiseOrder.setOrderReverse(1); } @@ -2039,6 +2042,8 @@ //找到车辆的收车点位 更新终点点位 R<XpCruiseOrder> returnCruisePoint = xpCruisePlanClient.findReturnCruisePoint(xpCruiseOrder); xpCruiseOrder = returnCruisePoint.getData(); xpCruiseOrder.setOrderType(2); xpCruiseOrder.setOrderReverse(1); } xpVehicleClient.updateVehicleById(vehicle); } @@ -2120,6 +2125,7 @@ xpCruiseOrder.setEndLon(xpCruiseOrders.getEndLon()); xpCruiseOrder.setEndLat(xpCruiseOrders.getEndLat()); } xpCruiseOrder.setOrderReverse(xpCruiseOrders.getOrderReverse()); xpCruiseOrder.setLastOrderId(xpCruiseOrders.getId()); xpCruiseOrder.setMissionId(xpCruiseOrders.getMissionId()); } @@ -2135,6 +2141,7 @@ xpCruiseOrder.setEndLon(endPoint.getPointLon()); xpCruiseOrder.setEndLat(endPoint.getPointLat()); xpCruiseOrder.setMissionId(xpCruisePlanPoint.getCruisePlanId()); xpCruiseOrder.setOrderReverse(1); } @@ -2149,6 +2156,8 @@ //找到车辆的收车点位 更新终点点位 R<XpCruiseOrder> returnCruisePoint = xpCruisePlanClient.findReturnCruisePoint(xpCruiseOrder); xpCruiseOrder = returnCruisePoint.getData(); xpCruiseOrder.setOrderType(2); xpCruiseOrder.setOrderReverse(1); } xpVehicleClient.updateVehicleById(vehicle); }