| | |
| | | if(orderPrivateCar.getArriveTime()==null){ |
| | | orderPrivateCar.setArriveTime(orderPrivateCar.getStartServiceTime()); |
| | | } |
| | | |
| | | //使用原始里程计算费用 |
| | | orderPrivateCar = this.setMoney(orderPrivateCar, 0D, 0D);//计算费用 |
| | | Double mileage = orderPrivateCar.getMileage(); |
| | | Double orderMoney1 = orderPrivateCar.getOrderMoney(); |
| | | //使用预估里程计算费用 |
| | | if(null == orderPrivateCar.getEndServiceTime()){ |
| | | orderPrivateCar.setEndServiceTime(new Date()); |
| | | } |
| | | //实际里程小于预估里程95%或者大于5%,则使用预估里程进行计算价格 |
| | | Double startLat = orderPrivateCar.getStartLat(); |
| | | Double startLon = orderPrivateCar.getStartLon(); |
| | | Double getoffLon = orderPrivateCar.getGetoffLon(); |
| | | Double getoffLat = orderPrivateCar.getGetoffLat(); |
| | | DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(startLat, startLon, getoffLat, getoffLon, orderPrivateCar.getTripId()); |
| | | orderPrivateCar.setMileage(distancematrix.getDistance().doubleValue()); |
| | | orderPrivateCar = this.setMoney(orderPrivateCar, 0D, 0D); |
| | | Double orderMoney2 = orderPrivateCar.getOrderMoney(); |
| | | //如果原始金额小于预估金额,且比例小于95%,则使用预估金额 |
| | | if(orderMoney1.compareTo(orderMoney2) >= 0 || orderMoney1 / orderMoney2 >= 0.95){ |
| | | //原始金额大于预估金额或者比例大于0.95,则使用原始里程重新计算费用 |
| | | orderPrivateCar.setMileage(mileage); |
| | | orderPrivateCar = this.setMoney(orderPrivateCar, 0D, 0D);//计算费用 |
| | | double ce = orderPrivateCar.getMileage() / distancematrix.getDistance().doubleValue(); |
| | | if(ce < 0.95 || ce > 1.05){ |
| | | orderPrivateCar.setMileage(distancematrix.getDistance().doubleValue()); |
| | | } |
| | | |
| | | orderPrivateCar = this.setMoney(orderPrivateCar, 0D, 0D);//计算费用 |
| | | orderPrivateCar.setPayManner(type); |
| | | orderPrivateCar.setParkMoney(null == parkingFee ? 0D : parkingFee); |
| | | orderPrivateCar.setRoadTollMoney(null == crossingFee ? 0D : crossingFee); |
| | |
| | | // } |
| | | this.updateById(orderPrivateCar); |
| | | |
| | | //回滚司机状态为空闲 |
| | | Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); |
| | | driver.setState(2); |
| | | driverService.updateById(driver); |
| | | |
| | | //修改行程数据 |
| | | Car car = carService.selectById(orderPrivateCar.getCarId()); |
| | | boolean updateTrip = fleetEngineUtil.updateTrip("COMPLETE", car.getVehicleId(), null, orderPrivateCar.getTripId(), null, null, null, null, orderPrivateCar.getId(), 1); |
| | |
| | | systemNoticeService.addSystemNotice(1, language1 == 1 ? "司机已结束本次行程,谢谢使用" : language1 == 2 ? |
| | | "The driver has finished the trip,thank you for using I-GO" : "Le chauffeur a terminé le trajet, merci d'utiliser I-GO", orderPrivateCar.getUserId()); |
| | | |
| | | //回滚司机状态为空闲 |
| | | Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); |
| | | driver.setState(2); |
| | | driverService.updateById(driver); |
| | | |
| | | |
| | | OrderPrivateCar finalOrderTaxi = orderPrivateCar; |
| | | new Thread(new Runnable() { |