xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/controller/OrderMissionController.java
@@ -168,6 +168,11 @@ redisTemplate.opsForValue().set("CREATE_ORDER:" + dto.getOrderId().toString(), jsonObject.toJSONString(),30, TimeUnit.MINUTES); return R.ok(true); } //先将车辆修改状态,防止在异步通知之前被其他订单选中 if (!dto.getOrderId().contains("XU") && mqttPublishDto.getCode()== 200) { // 修改车子为接单状态 xpVehicleClient.updateVehicleStatus(new UpdateVehicleStateDto(dto.getVin(), 1)); } return R.ok(false); } xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/TaskOrderUtil.java
@@ -2,6 +2,7 @@ import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.xiaopeng.api.dto.automaticPilot.PushOrderDto; import com.xiaopeng.api.dto.map.RouteAndFareDto; import com.xiaopeng.api.dto.operation.LonLatDto; @@ -836,6 +837,17 @@ log.info("开始推送 {} 订单到XPU", xpOrder.getOrderNumber()); redisService.popFirstElement(quoteName); log.info("将订单 {} 从队列 {} 弹出去", orderNo, quoteName); //判断还原车辆状态 Object cacheObject = redisService.getCacheObject("CREATE_ORDER:" + xpOrder.getId().toString()); if(null != cacheObject){ JSONObject jsonObject = JSON.parseObject(cacheObject.toString()); String vin = jsonObject.getString("vin"); XpVehicle vehicle = xpVehicleClient.findByVehicleVin(vin).getData(); if(null != vehicle && 0 != vehicle.getState()){ vehicle.setState(0); xpVehicleClient.updateVehicleById(vehicle); } } return; } catch (Exception e) { e.printStackTrace(); xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
@@ -1013,7 +1013,17 @@ xpOrderCancel.setCancelSource(1); xpOrderCancel.setCancelReason("用户取消订单"); xpOrderCancelService.save(xpOrderCancel); //判断还原车辆状态 Object cacheObject1 = redisService.getCacheObject("CREATE_ORDER:" + order.getId().toString()); if(null != cacheObject1){ com.alibaba.fastjson.JSONObject jsonObject = com.alibaba.fastjson.JSON.parseObject(cacheObject1.toString()); String vin = jsonObject.getString("vin"); XpVehicle vehicle = xpVehicleClient.findByVehicleVin(vin).getData(); if(null != vehicle && 0 != vehicle.getState()){ vehicle.setState(0); xpVehicleClient.updateVehicleById(vehicle); } } // 设置当天的取消次数缓存 Object cacheObject = redisService.getCacheObject("CANCEL_ORDER_" + uid);