xp-robotaxi-api/src/main/java/com/xiaopeng/api/factory/operation/XpCruisePlanClientFallbackFactory.java
@@ -6,6 +6,7 @@ import com.xiaopeng.api.dto.order.HistoryStartPointsDto; import com.xiaopeng.api.feignClient.operation.XpCruisePlanClient; import com.xiaopeng.api.feignClient.operation.XpPointClient; import com.xiaopeng.api.model.operation.XpCruisePlanVehicle; import com.xiaopeng.api.model.operation.XpElectronicFenceArea; import com.xiaopeng.api.model.operation.XpPoint; import com.xiaopeng.api.model.order.XpCruiseOrder; @@ -47,6 +48,12 @@ return null; } @Override public R<XpCruisePlanVehicle> getCruisePlan(Long vehicleId) { log.error("XpCruisePlanClientFallbackFactory getCruisePlan error:{}", cause.getMessage()); return null; } }; } xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/operation/XpCruisePlanClient.java
@@ -6,9 +6,7 @@ import com.xiaopeng.api.dto.order.HistoryStartPointsDto; import com.xiaopeng.api.factory.operation.XpCruisePlanClientFallbackFactory; import com.xiaopeng.api.factory.operation.XpPointClientFallbackFactory; import com.xiaopeng.api.model.operation.XpCruisePlanPoint; import com.xiaopeng.api.model.operation.XpElectronicFenceArea; import com.xiaopeng.api.model.operation.XpPoint; import com.xiaopeng.api.model.operation.*; import com.xiaopeng.api.model.order.XpCruiseOrder; import com.xiaopeng.api.query.operation.PointListQuery; import com.xiaopeng.api.query.operation.PointPageListListQuery; @@ -52,4 +50,15 @@ @PostMapping("/inner/cruise/findReturnCruisePoint") R<XpCruiseOrder> findReturnCruisePoint(@RequestBody XpCruiseOrder xpCruiseOrder); /** * 获取巡游计划 * @param vehicleId * @return */ @PostMapping("/inner/cruise/getCruisePlan") R<XpCruisePlanVehicle> getCruisePlan(@RequestParam Long vehicleId); } xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpCruisePlanController.java
@@ -102,6 +102,9 @@ public R<XpCruiseOrder> getCruisePoint(@RequestBody CruisePointDto dto) { // 先找计划 XpCruisePlanVehicle plan = xpCruisePlanVehicleService.getOne(new LambdaQueryWrapper<XpCruisePlanVehicle>().eq(XpCruisePlanVehicle::getVehicleId, dto.getVehicleId())); if (plan == null) { return R.fail("没有找到对应的计划"); } // 找对应的多个点位 List<XpCruisePlanPoint> planPointList = xpCruisePlanPointService.list(new LambdaQueryWrapper<XpCruisePlanPoint>().eq(XpCruisePlanPoint::getCruisePlanId, plan.getCruisePlanId()).orderByAsc(XpCruisePlanPoint::getSortOrder)); // 找到现在这个点位 @@ -149,6 +152,16 @@ return R.ok(newXpCruiseOrder); } /** * 获取巡游计划 * @param vehicleId * @return */ @PostMapping("/inner/cruise/getCruisePlan") public R<XpCruisePlanVehicle> getCruisePlan(@RequestParam Long vehicleId) { XpCruisePlanVehicle plan = xpCruisePlanVehicleService.getOne(new LambdaQueryWrapper<XpCruisePlanVehicle>().eq(XpCruisePlanVehicle::getVehicleId, vehicleId)); return R.ok(plan); } /** * 获取巡游订单数据 @@ -167,7 +180,7 @@ Long pointId = xpCruisePlanPoint.getPointId(); XpPoint point = pointService.getById(pointId); XpCruiseOrder newXpCruiseOrder = new XpCruiseOrder(); newXpCruiseOrder.setId("XU"+ IdUtil.fastUUID()); newXpCruiseOrder.setId("XU" + IdUtil.fastUUID()); newXpCruiseOrder.setFleetId(dto.getFleetId()); newXpCruiseOrder.setVehicleId(dto.getVehicleId()); newXpCruiseOrder.setVehicleVin(dto.getVehicleVin()); @@ -203,7 +216,7 @@ * @return */ @PostMapping("/inner/cruise/findReturnCruisePoint") public R<XpCruiseOrder> findReturnCruisePoint(@RequestBody XpCruiseOrder xpCruiseOrder){ public R<XpCruiseOrder> findReturnCruisePoint(@RequestBody XpCruiseOrder xpCruiseOrder) { // 先找计划 XpCruisePlanVehicle plan = xpCruisePlanVehicleService.getOne(new LambdaQueryWrapper<XpCruisePlanVehicle>().eq(XpCruisePlanVehicle::getVehicleId, xpCruiseOrder.getVehicleId())); // 找对应的多个点位 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
@@ -41,10 +41,7 @@ import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient; import com.xiaopeng.api.model.account.XpAppUser; import com.xiaopeng.api.model.maintenance.XpTaskRule; import com.xiaopeng.api.model.operation.XpFeedbackType; import com.xiaopeng.api.model.operation.XpGeoQueryEntity; import com.xiaopeng.api.model.operation.XpPoint; import com.xiaopeng.api.model.operation.XpPricing; import com.xiaopeng.api.model.operation.*; import com.xiaopeng.api.model.order.*; import com.xiaopeng.api.model.vehicleConvoy.XpFleet; import com.xiaopeng.api.model.vehicleConvoy.XpVehicle; @@ -1559,6 +1556,16 @@ return; } if(vehicle.getState()!=0 || vehicle.getOperatingStatus()!=1){ return; } // 判断是否有计划 R<XpCruisePlanVehicle> xpCruisePlanR = xpCruisePlanClient.getCruisePlan(vehicle.getId()); if(xpCruisePlanR==null || xpCruisePlanR.getData()==null){ return; } // 获取配置 根据配置判断是否该收车 如果是则找到收车点位进行收车操作 R<XpTaskRule> xpTaskRuleR = xpTaskRuleClient.queryDetail(); XpTaskRule xpTaskRule = xpTaskRuleR.getData();