| | |
| | | XpVehicle vehicle = vehicleMap.get(order.getVehicleId()); |
| | | if (Objects.nonNull(vehicle)) { |
| | | vo.setPlateNumber(vehicle.getPlateNumber()); |
| | | vo.setVehicleModel(vehicle.getVehicleModel()); |
| | | vo.setVehicleModel(vehicle.getVehicleModelName()); |
| | | } |
| | | } |
| | | |
| | |
| | | if (Objects.nonNull(order.getVehicleId()) && vehicleMap.containsKey(order.getVehicleId())) { |
| | | XpVehicle vehicle = vehicleMap.get(order.getVehicleId()); |
| | | vo.setPlateNumber(vehicle.getPlateNumber()); |
| | | vo.setVehicleModel(vehicle.getVehicleModel()); |
| | | vo.setVehicleModel(vehicle.getVehicleModelName()); |
| | | } |
| | | |
| | | // 车队信息 |
| | |
| | | R<XpVehicle> xpVehicleR = xpVehicleClient.queryById(xpOrder.getVehicleId()); |
| | | XpVehicle vehicle = xpVehicleR.getData(); |
| | | xpOrderDetailVO.setVehicleVin(vehicle.getVehicleVin()); |
| | | xpOrderDetailVO.setVehicleModel(vehicle.getVehicleModel()); |
| | | xpOrderDetailVO.setVehicleModel(vehicle.getVehicleModelName()); |
| | | xpOrderDetailVO.setVehicleColor(vehicle.getVehicleColor()); |
| | | xpOrderDetailVO.setPlateNumber(vehicle.getPlateNumber()); |
| | | xpOrderDetailVO.setVehiclePictures(vehicle.getVehiclePictures()); |
| | |
| | | R<XpVehicle> xpVehicleR = xpVehicleClient.queryById(xpOrder.getVehicleId()); |
| | | XpVehicle vehicle = xpVehicleR.getData(); |
| | | xpOrderDetailVO.setVehicleVin(vehicle.getVehicleVin()); |
| | | xpOrderDetailVO.setVehicleModel(vehicle.getVehicleModel()); |
| | | xpOrderDetailVO.setVehicleModel(vehicle.getVehicleModelName()); |
| | | xpOrderDetailVO.setVehicleColor(vehicle.getVehicleColor()); |
| | | xpOrderDetailVO.setPlateNumber(vehicle.getPlateNumber()); |
| | | |
| | |
| | | */ |
| | | private boolean isCancelShow(XpOrder xpOrder,String vehicleVin) { |
| | | boolean isCancel = false; |
| | | |
| | | //获取系统配置 |
| | | XpSystemSetting systemSetting = xpSystemSettingClient.getSystemSettingOne().getData(); |
| | | if(systemSetting == null){ |
| | | throw new ServiceException("获取行程配置错误"); |
| | | } |
| | | //获取配置文件 |
| | | int sylc = 800;//单位米 todo yyy 需要读取后台配置文件 |
| | | int sysj = 5;//单位分钟 todo yyy 需要读取后台配置文件 |
| | | int sylc = systemSetting.getXczSyDistance(); // 行程中剩余里程单位米 需要读取后台配置文件 |
| | | int sysj = systemSetting.getXczSyTime();//行程中剩余时间 单位分钟 需要读取后台配置文件 |
| | | // 减少3分钟 获取3分账内的 行程数据 |
| | | long minute =3;//todo yyy 需要读取后台配置文件 |
| | | Integer xczSpeedPerHour = systemSetting.getXczHmSpeedPerHour();//行程中豁免时速 km/h |
| | | Integer xczHmDuration = systemSetting.getXczHmDuration();//行程中豁免持续时间 分钟 需要读取后台配置文件 |
| | | |
| | | |
| | | List<OrderTrajectory> orderTrajectories = queryOrderTrajectories(xpOrder.getId()); |
| | | if(!orderTrajectories.isEmpty()){// 减少3分钟 获取3分账内的 行程数据 |
| | | //3千米/小时 转换成分钟 50米/分钟 |
| | | BigDecimal suduDefault = new BigDecimal("3");//3千米/小时 |
| | | BigDecimal suduDefault = new BigDecimal(xczSpeedPerHour);//3千米/小时 |
| | | BigDecimal suduDefault1 = suduDefault.multiply(BigDecimal.valueOf(1000)) ; |
| | | BigDecimal suduDefaultNew =suduDefault1.divide(BigDecimal.valueOf(60),2,RoundingMode.HALF_EVEN); |
| | | |
| | | LocalDateTime minutesBefore = LocalDateTime.now().minusMinutes(minute); |
| | | LocalDateTime minutesBefore = LocalDateTime.now().minusMinutes(xczHmDuration); |
| | | long milliseconds = DateUtils.getMilliseconds(minutesBefore); |
| | | List<OrderTrajectory> orderTrajectoriesNew = new ArrayList<>(); |
| | | for (OrderTrajectory orderTrajectory : orderTrajectories) { |
| | |
| | | */ |
| | | //计算行驶总距离和时长 |
| | | Double reduce = orderTrajectoriesNew.stream().map(OrderTrajectory::getDistance).reduce(0.0, Double::sum); |
| | | BigDecimal xcsudu = new BigDecimal(reduce).divide(new BigDecimal(minute),2, RoundingMode.HALF_EVEN);//米/分钟 |
| | | BigDecimal xcsudu = new BigDecimal(reduce).divide(new BigDecimal(xczHmDuration),2, RoundingMode.HALF_EVEN);//米/分钟 |
| | | |
| | | //特殊豁免:若系统检测到车辆在当前坐标时速 < 3km/h 且持续时间 > 3分钟(后台配置)(判定为极度拥堵或异常停滞),此时解除限制,允许用户修改目的地或新增途径点以寻找更近的下车位置。 |
| | | if(xcsudu.compareTo(suduDefaultNew)<0){ |