xp-robotaxi-api/src/main/java/com/xiaopeng/api/dto/operation/NewCruiseOrderDto.java
@@ -3,6 +3,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import org.springframework.data.mongodb.core.geo.GeoJsonPoint; import org.springframework.web.bind.annotation.RequestParam; @Data @@ -16,4 +17,6 @@ private String vehicleVin; // 车队id private Long fleetId; // 定位 private GeoJsonPoint point; } xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleOperationsController.java
@@ -74,11 +74,17 @@ xpVehicle.setOperatingStatus(dto.getDepartureStatus()); xpVehicleClient.updateVehicleById(xpVehicle); VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(xpVehicle.getVehicleVin())), VehiclePosition.class); if(vehiclePosition==null || vehiclePosition.getPoint()==null){ return R.fail("车辆位置信息不存在"); } // 发车 if(dto.getDepartureStatus()==1){ // 找车辆的任务 生成巡游单子 下发命令 R<XpCruiseOrder> newCruiseOrder = xpCruisePlanClient.getNewCruiseOrder(new NewCruiseOrderDto(xpVehicle.getId(),xpVehicle.getVehicleVin(),xpVehicle.getFleetId())); R<XpCruiseOrder> newCruiseOrder = xpCruisePlanClient.getNewCruiseOrder(new NewCruiseOrderDto(xpVehicle.getId(),xpVehicle.getVehicleVin(),xpVehicle.getFleetId(),vehiclePosition.getPoint())); if(newCruiseOrder.getData()!=null){ xpCruiseOrderClient.addCruiseOrder(newCruiseOrder.getData()); // 下发命令 PushOrderDto pushOrderDto = new PushOrderDto(); pushOrderDto.setVin(xpVehicle.getVehicleVin()); @@ -98,7 +104,7 @@ R<Long> r = xpCruiseOrderClient.updateCruiseOrder(xpVehicle.getVehicleVin()); // redis 获取当前最新经纬度位置 VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(xpVehicle.getVehicleVin())), VehiclePosition.class); XpCruiseOrder xpCruiseOrder = new XpCruiseOrder(); if(vehiclePosition!=null){ double x = vehiclePosition.getPoint().getX(); @@ -106,7 +112,6 @@ xpCruiseOrder.setStartLon(x); xpCruiseOrder.setStartLat(y); } xpCruiseOrder.setVehicleId(xpVehicle.getId()); xpCruiseOrder.setFleetId(xpVehicle.getFleetId()); xpCruiseOrder.setOrderType(2); xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpCruisePlanController.java
@@ -24,6 +24,7 @@ import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Lazy; import org.springframework.data.mongodb.core.geo.GeoJsonPoint; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; @@ -176,9 +177,7 @@ List<XpCruisePlanPoint> planPointList = xpCruisePlanPointService.list(new LambdaQueryWrapper<XpCruisePlanPoint>().eq(XpCruisePlanPoint::getCruisePlanId, plan.getCruisePlanId()).orderByAsc(XpCruisePlanPoint::getSortOrder)); XpCruisePlanPoint xpCruisePlanPoint = planPointList.get(0); Long pointId = xpCruisePlanPoint.getPointId(); XpPoint point = pointService.getById(pointId); XpCruiseOrder newXpCruiseOrder = new XpCruiseOrder(); newXpCruiseOrder.setFleetId(dto.getFleetId()); newXpCruiseOrder.setVehicleId(dto.getVehicleId()); @@ -187,16 +186,14 @@ newXpCruiseOrder.setMissionId(plan.getCruisePlanId()); newXpCruiseOrder.setStatus(1); newXpCruiseOrder.setOrderReverse(1); GeoJsonPoint point = dto.getPoint(); // 起点 newXpCruiseOrder.setStartLon(point.getPointLon()); newXpCruiseOrder.setStartLat(point.getPointLat()); newXpCruiseOrder.setStartPointId(pointId); newXpCruiseOrder.setStartPointName(point.getPointName()); newXpCruiseOrder.setStartLon(point.getX()); newXpCruiseOrder.setStartLat(point.getY()); // 终点 XpCruisePlanPoint endCruisePlanPoint = planPointList.get(1); XpCruisePlanPoint endCruisePlanPoint = planPointList.get(0); Long endPointId = endCruisePlanPoint.getPointId(); XpPoint endPoint = pointService.getById(endPointId); newXpCruiseOrder.setEndPointId(endPointId); @@ -205,6 +202,8 @@ newXpCruiseOrder.setEndLat(endPoint.getPointLat()); return R.ok(newXpCruiseOrder); }