| | |
| | | String vin = jsonObject.getString("vin"); |
| | | XpVehicle vehicle = xpVehicleClient.findByVehicleVin(vin).getData(); |
| | | if (null != vehicle && 0 != vehicle.getState()) { |
| | | vehicle.setState(0); |
| | | xpVehicleClient.updateVehicleById(vehicle); |
| | | XpVehicle vehicle1 = new XpVehicle(); |
| | | vehicle1.setId(vehicle.getId()); |
| | | vehicle1.setState(0); |
| | | xpVehicleClient.updateVehicleById(vehicle1); |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | //还原车辆状态 |
| | | if(1 == xpVehicle.getState()){ |
| | | xpVehicle.setState(0); |
| | | xpVehicleClient.updateVehicleById(xpVehicle); |
| | | XpVehicle vehicle1 = new XpVehicle(); |
| | | vehicle1.setId(xpVehicle.getId()); |
| | | vehicle1.setState(0); |
| | | xpVehicleClient.updateVehicleById(vehicle1); |
| | | } |
| | | |
| | | // 下发命令 |
| | |
| | | orderMissionClient.cancelOrder(pushOrderDto); |
| | | log.info("运营人员取消订单成功,开始执行巡游订单 {}", order.getId()); |
| | | //车辆继续巡游 |
| | | addCruiseMission(xpVehicle); |
| | | addCruiseMission(xpVehicle.getId()); |
| | | |
| | | } else { |
| | | log.info("查询车辆信息失败,订单ID: {}, 下发取消订单命令失败", order.getId()); |
| | |
| | | } |
| | | |
| | | // 6.1.3 修改原车辆状态为空闲 |
| | | oldVehicle.setState(0); |
| | | xpVehicleClient.updateVehicleById(oldVehicle); |
| | | XpVehicle vehicle1 = new XpVehicle(); |
| | | vehicle1.setId(oldVehicle.getId()); |
| | | vehicle1.setState(0); |
| | | xpVehicleClient.updateVehicleById(vehicle1); |
| | | log.info("已将原车辆状态设为空闲,车辆ID: {}", oldVehicleId); |
| | | |
| | | // 6.1.4 为原车辆创建返程巡游订单 |
| | | createReturnCruiseOrder(oldVehicle, order); |
| | | -------------- |
| | | createReturnCruiseOrder(oldVehicle.getId(), order); |
| | | } else { |
| | | log.warn("查询原车辆信息失败,车辆ID: {}", oldVehicleId); |
| | | } |
| | |
| | | log.info("已下发订单到新车辆,订单ID: {}, VIN: {}", orderId, newVehicle.getVehicleVin()); |
| | | |
| | | // 11.3 更新新车辆状态为已接单 |
| | | newVehicle.setState(1); |
| | | xpVehicleClient.updateVehicleById(newVehicle); |
| | | XpVehicle vehicle1 = new XpVehicle(); |
| | | vehicle1.setId(newVehicle.getId()); |
| | | vehicle1.setState(1); |
| | | xpVehicleClient.updateVehicleById(vehicle1); |
| | | log.info("已将新车辆状态设为已接单,车辆ID: {}", newVehicleId); |
| | | |
| | | } catch (Exception e) { |
| | |
| | | * - 其他状态,默认返回原出发点 |
| | | * </p> |
| | | * |
| | | * @param oldVehicle 原车辆信息 |
| | | * @param order 当前订单信息 |
| | | */ |
| | | private void createReturnCruiseOrder(XpVehicle oldVehicle, XpOrder order) { |
| | | private void createReturnCruiseOrder(Long vehicleId, XpOrder order) { |
| | | XpVehicle oldVehicle = xpVehicleClient.queryById(vehicleId).getData(); |
| | | try { |
| | | // 查询该车辆最新的一条巡游订单 |
| | | XpCruiseOrder lastCruise = xpCruiseOrderMapper.selectOne( |
| | |
| | | String vin = jsonObject.getString("vin"); |
| | | XpVehicle vehicle = xpVehicleClient.findByVehicleVin(vin).getData(); |
| | | if (null != vehicle && 0 != vehicle.getState()) { |
| | | vehicle.setState(0); |
| | | xpVehicleClient.updateVehicleById(vehicle); |
| | | XpVehicle vehicle1 = new XpVehicle(); |
| | | vehicle1.setId(vehicle.getId()); |
| | | vehicle1.setState(0); |
| | | xpVehicleClient.updateVehicleById(vehicle1); |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | //还原车辆状态 |
| | | if (1 == xpVehicle.getState()) { |
| | | xpVehicle.setState(0); |
| | | xpVehicleClient.updateVehicleById(xpVehicle); |
| | | XpVehicle vehicle1 = new XpVehicle(); |
| | | vehicle1.setId(xpVehicle.getId()); |
| | | vehicle1.setState(0); |
| | | xpVehicleClient.updateVehicleById(vehicle1); |
| | | } |
| | | |
| | | //下发XPU报文 |
| | |
| | | orderMissionClient.cancelOrder(pushOrderDto); |
| | | log.info("用户取消订单成功,开始执行巡游订单 {}", order.getId()); |
| | | //车辆继续巡游 |
| | | addCruiseMission(xpVehicle); |
| | | addCruiseMission(xpVehicle.getId()); |
| | | } |
| | | |
| | | } |
| | |
| | | /** |
| | | * 添加巡游任务下发命令 |
| | | * |
| | | * @param vehicle |
| | | * @param order |
| | | */ |
| | | |
| | | public void addCruiseMission(XpVehicle vehicle, XpOrder order) { |
| | | public void addCruiseMission(Long vehicleId, XpOrder order) { |
| | | XpVehicle vehicle = xpVehicleClient.queryById(vehicleId).getData(); |
| | | log.info("添加巡游订单 {}", vehicle.getPlateNumber()); |
| | | if (vehicle.getState() != 0 || vehicle.getOperatingStatus() != 1) { |
| | | log.info("添加巡游单失败,车辆状态限制 {}", vehicle.getState()); |
| | |
| | | if(null != xpTaskRule){ |
| | | LocalTime vehicleCollectionTime = xpTaskRule.getVehicleCollectionTime(); |
| | | if (vehicleCollectionTime.isBefore(LocalTime.now())) { |
| | | vehicle.setOperatingStatus(3); |
| | | XpVehicle vehicle1 = new XpVehicle(); |
| | | vehicle1.setId(vehicle.getId()); |
| | | vehicle1.setOperatingStatus(3); |
| | | xpVehicleClient.updateVehicleById(vehicle1); |
| | | //找到车辆的收车点位 更新终点点位 |
| | | R<XpCruiseOrder> returnCruisePoint = xpCruisePlanClient.findReturnCruisePoint(xpCruiseOrder); |
| | | xpCruiseOrder = returnCruisePoint.getData(); |
| | | xpCruiseOrder.setOrderType(2); |
| | | xpCruiseOrder.setOrderReverse(1); |
| | | } |
| | | xpVehicleClient.updateVehicleById(vehicle); |
| | | } |
| | | xpCruiseOrderMapper.insert(xpCruiseOrder); |
| | | log.info("添加巡游单成功 {}", xpCruiseOrder.getId()); |
| | |
| | | * 取消订单后的继续巡游任务 |
| | | * @param vehicle |
| | | */ |
| | | public void addCruiseMission(XpVehicle vehicle) { |
| | | public void addCruiseMission(Long vehicleId) { |
| | | XpVehicle vehicle = xpVehicleClient.queryById(vehicleId).getData(); |
| | | if (vehicle.getState() != 0 || vehicle.getOperatingStatus() != 1) { |
| | | return; |
| | | } |
| | |
| | | if(null != xpTaskRule){ |
| | | LocalTime vehicleCollectionTime = xpTaskRule.getVehicleCollectionTime(); |
| | | if (vehicleCollectionTime.isBefore(LocalTime.now())) { |
| | | vehicle.setOperatingStatus(3); |
| | | XpVehicle vehicle1 = new XpVehicle(); |
| | | vehicle1.setId(vehicle.getId()); |
| | | vehicle1.setOperatingStatus(3); |
| | | xpVehicleClient.updateVehicleById(vehicle1); |
| | | //找到车辆的收车点位 更新终点点位 |
| | | R<XpCruiseOrder> returnCruisePoint = xpCruisePlanClient.findReturnCruisePoint(xpCruiseOrder); |
| | | xpCruiseOrder = returnCruisePoint.getData(); |
| | | xpCruiseOrder.setOrderType(2); |
| | | xpCruiseOrder.setOrderReverse(1); |
| | | } |
| | | xpVehicleClient.updateVehicleById(vehicle); |
| | | } |
| | | |
| | | xpCruiseOrderMapper.insert(xpCruiseOrder); |
| | |
| | | // 存mongo数据 |
| | | xpPricingClient.updateXpGeoQueryEntity(order.getId().toString()); |
| | | // 修改车辆信息 |
| | | vehicle.setState(1); |
| | | xpVehicleClient.updateVehicleById(vehicle); |
| | | XpVehicle vehicle1 = new XpVehicle(); |
| | | vehicle1.setId(vehicle.getId()); |
| | | vehicle1.setState(1); |
| | | xpVehicleClient.updateVehicleById(vehicle1); |
| | | |
| | | //绑定用户和车辆关系 |
| | | addTaxiPassengerVo.setUid(appUserId.toString()); |