| | |
| | | import com.xiaopeng.common.core.constant.Constants; |
| | | import com.xiaopeng.common.core.constant.HttpStatus; |
| | | import com.xiaopeng.common.core.domain.R; |
| | | import com.xiaopeng.common.core.enums.CancelOrderSceneEnum; |
| | | import com.xiaopeng.common.core.enums.OrderStatusEnum; |
| | | import com.xiaopeng.common.core.enums.PushMessageTypeEnum; |
| | | import com.xiaopeng.common.core.exception.ServiceException; |
| | |
| | | |
| | | // 6.1.1 取消原订单指令 |
| | | PushOrderDto cancelDto = new PushOrderDto(); |
| | | cancelDto.setTaskId(IdUtil.getSnowflakeNextIdStr()); |
| | | cancelDto.setOrderId(order.getId().toString()); |
| | | cancelDto.setVin(oldVehicle.getVehicleVin()); |
| | | cancelDto.setOperation_type(OrderOperationType.CLOUD_CANCEL_ORDER); |
| | | cancelDto.setCancelScene(CancelOrderSceneEnum.REASSIGN_OLD_VEHICLE.getCode()); |
| | | orderMissionClient.cancelOrder(cancelDto); |
| | | log.info("已取消原车辆订单指令,订单ID: {}, VIN: {}", orderId, oldVehicle.getVehicleVin()); |
| | | log.info("已取消原车辆订单指令,订单ID: {}, VIN: {}, taskId: {}, cancelScene: {}", |
| | | orderId, oldVehicle.getVehicleVin(), cancelDto.getTaskId(), cancelDto.getCancelScene()); |
| | | |
| | | // 6.1.2 解绑乘客与原车辆关系 |
| | | if (Objects.nonNull(order.getAppUserId())) { |
| | |
| | | new ImmutableMap.Builder<String, String>() |
| | | .put("id", xpOrder.getId().toString()) |
| | | .put("appid", appid) |
| | | .put("orderType", OrderType.USER_ORDER) |
| | | .build(); |
| | | QuartzManager.addJob( |
| | | EndTripJob.class, |
| | |
| | | new ImmutableMap.Builder<String, String>() |
| | | .put("id", xpOrder.getId().toString()) |
| | | .put("appid", appid) |
| | | .put("orderType", OrderType.USER_ORDER) |
| | | .build(); |
| | | QuartzManager.addJob( |
| | | AddCruiseMissionJob.class, |
| | |
| | | |
| | | xpTestOrder.setStartTestPointId(null); |
| | | xpTestOrderService.updateById(xpTestOrder); |
| | | redisService.setCacheObject("ORDER_STATUS:" + xpTestOrder.getId(), 2, 24L, TimeUnit.HOURS); |
| | | redisService.setCacheObject("TEST_ORDER_STATUS:" + xpTestOrder.getId(), 2, 24L, TimeUnit.HOURS); |
| | | } |
| | | } |
| | | if (OrderType.TEST_CRUISE_ORDER.equals(orderType)) { |
| | | XpTestOrder xpTestOrder = xpTestOrderService.getById(orderId); |
| | | //订单为待接单状态 |
| | | if (xpTestOrder.getStatus() < 4) { |
| | | xpTestOrder.setAcceptanceTime(LocalDateTime.now()); |
| | | R<XpVehicle> byVehicleVin = xpVehicleClient.findByVehicleVin(dto.getXpVehicleVin()); |
| | | XpVehicle vehicle = null; |
| | | if (byVehicleVin.getCode() == 200) { |
| | | vehicle = byVehicleVin.getData(); |
| | | xpTestOrder.setVehicleId(vehicle.getId()); |
| | | xpTestOrder.setFleetId(vehicle.getFleetId()); |
| | | } |
| | | xpTestOrder.setStatus(6); |
| | | xpTestOrder.setStartTestPointId(null); |
| | | xpTestOrderService.updateById(xpTestOrder); |
| | | redisService.setCacheObject("TEST_ORDER_STATUS:" + xpTestOrder.getId(), 6, 24L, TimeUnit.HOURS); |
| | | } |
| | | } |
| | | } |