| | |
| | | private UserVehicleClient userVehicleClient; |
| | | |
| | | |
| | | |
| | | /** |
| | | * 消费消息 - XPU上报Robotaxi云端的消息topic(高优先级) |
| | | * |
| | |
| | | * @param msgContent |
| | | * @param message |
| | | */ |
| | | public void handleXPUMessage(MsgContent msgContent, String message){ |
| | | public void handleXPUMessage(MsgContent msgContent, String message) { |
| | | RtMsgHeader header = msgContent.getHeader(); |
| | | MessageType type = header.getType(); |
| | | //处理请求消息 |
| | |
| | | |
| | | } |
| | | //消息应答 |
| | | if(MessageType.MESSAGE_TYPE_RESPONSE == type){ |
| | | if (MessageType.MESSAGE_TYPE_RESPONSE == type) { |
| | | com.xiaopeng.api.vo.automaticPilot.proto.up.ResponseMessage resposne = msgContent.getContent_detail().getObject("resposne", com.xiaopeng.api.vo.automaticPilot.proto.up.ResponseMessage.class); |
| | | com.xiaopeng.api.vo.automaticPilot.proto.up.StatusCode code = resposne.getCode(); |
| | | Long requestSeq = resposne.getRequest_seq(); |
| | | if(code == com.xiaopeng.api.vo.automaticPilot.proto.up.StatusCode.OK){ |
| | | if (code == com.xiaopeng.api.vo.automaticPilot.proto.up.StatusCode.OK) { |
| | | Object sequence = redisTemplate.opsForValue().get(requestSeq); |
| | | if(sequence!=null){ |
| | | if (sequence != null) { |
| | | String[] split = sequence.toString().split("_"); |
| | | if(split[0].equals("pushOrder")){ |
| | | if (split[0].equals("pushOrder")) { |
| | | PopOrderDto dto = new PopOrderDto(); |
| | | dto.setOrderId(Long.valueOf(split[1])); |
| | | dto.setXpVehicleVin(split[2]); |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | |
| | | userVehicleClient.cancelTaxiPassenger(cancelTaxiPassengerVo); |
| | | } |
| | | // 取消订单 |
| | | R<?> r = xpOrderClient.cancelOrder(String.valueOf(xpOrder.getId())); |
| | | if (r.getCode() == R.SUCCESS){ |
| | | log.info("取消订单成功"); |
| | | // TODO 重新派单 |
| | | ReassignOrderDTO reassignOrderDTO = new ReassignOrderDTO(); |
| | | reassignOrderDTO.setUid(xpOrder.getAppUserId().toString()); |
| | | reassignOrderDTO.setOrderNo(xpOrder.getOrderNumber()); |
| | | reassignOrderDTO.setCount(10); |
| | | RealtimePose pose = systemRuntimeStatus.getPose(); |
| | | Wgs naviPose = pose.getNavi_pose(); |
| | | Double latitude = naviPose.getLatitude(); |
| | | Double longitude = naviPose.getLongitude(); |
| | | reassignOrderDTO.setLongitude(longitude); |
| | | reassignOrderDTO.setLatitude(latitude); |
| | | reassignOrderClient.reassignOrder(reassignOrderDTO); |
| | | } |
| | | // R<?> r = xpOrderClient.cancelOrder(String.valueOf(xpOrder.getId())); |
| | | // if (r.getCode() == R.SUCCESS){ |
| | | log.info("取消订单成功"); |
| | | // TODO 重新派单 |
| | | ReassignOrderDTO reassignOrderDTO = new ReassignOrderDTO(); |
| | | reassignOrderDTO.setUid(xpOrder.getAppUserId().toString()); |
| | | reassignOrderDTO.setOrderNo(xpOrder.getOrderNumber()); |
| | | reassignOrderDTO.setCount(10); |
| | | RealtimePose pose = systemRuntimeStatus.getPose(); |
| | | Wgs naviPose = pose.getNavi_pose(); |
| | | Double latitude = naviPose.getLatitude(); |
| | | Double longitude = naviPose.getLongitude(); |
| | | reassignOrderDTO.setLongitude(longitude); |
| | | reassignOrderDTO.setLatitude(latitude); |
| | | reassignOrderClient.reassignOrder(reassignOrderDTO); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | // } |
| | | } |
| | | } |
| | | |
| | |
| | | snowFlake.withStartTimestamp(1420041600000L); |
| | | long sequence = snowFlake.nextId(); |
| | | // 处理数据 |
| | | redisTemplate.opsForValue().set(sequence,"pushOrder_"+orderId+"_"+vin,30, TimeUnit.MINUTES); |
| | | redisTemplate.opsForValue().set(sequence, "pushOrder_" + orderId + "_" + vin, 30, TimeUnit.MINUTES); |
| | | //开发发送请求到XPU |
| | | xpuUtil.cloudOrderOperation(orderOperation, vin,sequence); |
| | | xpuUtil.cloudOrderOperation(orderOperation, vin, sequence); |
| | | } |
| | | |
| | | |
| | |
| | | * @param orderId |
| | | * @param status |
| | | */ |
| | | public void buildPushOrderStatus(String orderId, OrderStatusEnum status, Long sequence){ |
| | | if(orderId.contains("XU")){ |
| | | public void buildPushOrderStatus(String orderId, OrderStatusEnum status, Long sequence) { |
| | | if (orderId.contains("XU")) { |
| | | //巡游单 |
| | | //响应消息 |
| | | // TODO 1.处理结束当前巡游订单 2.创建新的巡游订单 返航 3.调用xpu车机接口 (判断是返航还是正常 返航需要存储之前的订单id) |
| | | responseMessage(sequence, ""); |
| | | }else{ |
| | | } else { |
| | | //普通单 |
| | | R<XpOrder> xpOrderR = xpOrderClient.queryOrderById(Long.parseLong(orderId)); |
| | | XpOrder xpOrder = xpOrderR.getData(); |