| | |
| | | log.info("车辆故障,车辆状态修改0 {}", vehicle.getPlateNumber()); |
| | | } |
| | | }else { |
| | | //正常订单 |
| | | //正常订单 车辆故障 |
| | | /* |
| | | 1.将订单信息车辆的 查询出来 设置故障状态 |
| | | 2.解除用户和车的关系 |
| | | 3.如果是 接驾中的车需要重新派车 |
| | | 4.如果是行驶中的车需要将订单结束 计算金额 |
| | | */ |
| | | XpOrder xpOrder = xpOrderClient.queryOrderById(Long.parseLong(orderId)).getData(); |
| | | vehicle = xpVehicleClient.queryById(xpOrder.getVehicleId()).getData(); |
| | | if (vehicle != null) { |
| | |
| | | cancelTaxiPassengerVo.setAppId(appid); |
| | | userVehicleClient.cancelTaxiPassenger(cancelTaxiPassengerVo); |
| | | } |
| | | // TODO 重新派单 |
| | | ReassignOrderDTO reassignOrderDTO = new ReassignOrderDTO(); |
| | | reassignOrderDTO.setUid(xpOrder.getAppUserId().toString()); |
| | | reassignOrderDTO.setOrderNo(xpOrder.getOrderNumber()); |
| | | reassignOrderDTO.setCount(10); |
| | | RealtimePose pose = systemRuntimeStatus.getPose(); |
| | | Wgs naviPose = pose.getNaviPose(); |
| | | Double latitude = naviPose.getLatitude(); |
| | | Double longitude = naviPose.getLongitude(); |
| | | reassignOrderDTO.setLongitude(longitude); |
| | | reassignOrderDTO.setLatitude(latitude); |
| | | reassignOrderClient.reassignOrder(reassignOrderDTO); |
| | | //status 状态 0=已取消,1=待接单,2=待出发,3=接驾中,4=待客上车,5=乘客已上车,6=服务中,7=待客下车,8=待付款,9=待评价,10=已完成 |
| | | List<Integer> notDrive = new ArrayList<Integer>(){{ //未行驶的情况下订单故障状态点 |
| | | add(OrderStatusEnum.READY_DEPART.getCode());add(OrderStatusEnum.PICK_UP.getCode()); |
| | | add(OrderStatusEnum.PICK_UP_GUESTS.getCode());add(OrderStatusEnum.PASSENGER_BOARDED.getCode()); |
| | | }}; |
| | | |
| | | if(xpOrder.getStatus().equals(OrderStatusEnum.IN_SERVICE.getCode()) |
| | | || xpOrder.getStatus().equals(OrderStatusEnum.SEE_OFF_GUESTS.getCode()) ){ //6=服务中 7=待客下车 在行驶中 修改订单-已完成 需要处理订单金额 |
| | | //单独写个修改订单的方法。 |
| | | // ff |
| | | xpOrderClient.carAbnormalUpdateOrderStatus(Long.parseLong(orderId)); |
| | | |
| | | }else if(notDrive.contains(xpOrder.getStatus())){//在接驾中 车辆出现故障 重新派单 |
| | | |
| | | // TODO 重新派单 |
| | | ReassignOrderDTO reassignOrderDTO = new ReassignOrderDTO(); |
| | | reassignOrderDTO.setUid(xpOrder.getAppUserId().toString()); |
| | | reassignOrderDTO.setOrderNo(xpOrder.getOrderNumber()); |
| | | reassignOrderDTO.setCount(10); |
| | | RealtimePose pose = systemRuntimeStatus.getPose(); |
| | | Wgs naviPose = pose.getNaviPose(); |
| | | Double latitude = naviPose.getLatitude(); |
| | | Double longitude = naviPose.getLongitude(); |
| | | reassignOrderDTO.setLongitude(longitude); |
| | | reassignOrderDTO.setLatitude(latitude); |
| | | reassignOrderClient.reassignOrder(reassignOrderDTO); |
| | | } |
| | | } |
| | | //添加车辆异常任务和发送消息 |
| | | xpTaskClient.saveVehicleAccidentError(vehicle.getId()); |
| | |
| | | if(xpOrder.getStatus() == 0 || xpOrder.getStatus() >= 8){ |
| | | return; |
| | | } |
| | | if(xpOrder.getStatus() > 5 && xpOrder.getStatus() < 8){ |
| | | //行程中取消订单,按照行程结束处理 |
| | | |
| | | List<Integer> xczqx = new ArrayList<Integer>(){{ |
| | | add(OrderStatusEnum.IN_SERVICE.getCode());//服务中 |
| | | add(OrderStatusEnum.SEE_OFF_GUESTS.getCode());//SEE_OFF_GUESTS |
| | | }}; |
| | | if(xczqx.contains(xpOrder.getStatus())){//行程中取消订单,按照行程结束处理 |
| | | buildPushOrderStatus(cmd, orderId, OrderStatusEnum.SEE_OFF_GUESTS, sequence); |
| | | xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.SEE_OFF_GUESTS.getCode()); |
| | | redisService.setCacheObject("ORDER_STATUS:" + orderId, OrderStatusEnum.SEE_OFF_GUESTS.getCode(), 24L, TimeUnit.HOURS); |