| | |
| | | |
| | | @Autowired |
| | | private PayMoneyUtil payMoneyUtil; |
| | | |
| | | @Resource |
| | | private IDriverWorkService driverWorkService; |
| | | |
| | | /*@Autowired |
| | | private ICBCPayUtil icbcPayUtil;*/ |
| | |
| | | |
| | | @Resource |
| | | private QuartzUtil quartzUtil; |
| | | |
| | | @Resource |
| | | private IAssignOrderService assignOrderService; |
| | | |
| | | |
| | | |
| | |
| | | |
| | | |
| | | //开始自动完成改派 |
| | | List<Driver> drivers = new ArrayList<>(); |
| | | switch (reassign.getOrderType()){ |
| | | case 1: |
| | | OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(reassign.getOrderId()); |
| | | Company company = companyCityService.query1(orderPrivateCar.getUserId(), String.valueOf(orderPrivateCar.getStartLon()), String.valueOf(orderPrivateCar.getStartLat()));//获取起点所属分公司 |
| | | AssignOrder assignOrder = assignOrderService.selectOne(new EntityWrapper<AssignOrder>().eq("companyId", company.getId()).eq("type", 1)); |
| | | if(null == assignOrder || assignOrder.getPeople() == 0) {//配置了指派规则才处理 |
| | | return resultUtil; |
| | | } |
| | | PushOrder pushOrder = pushOrderService.querys(1, 1, company.getId()).get(0); |
| | | //获取空闲司机 |
| | | List<Driver> list = driverService.queryIdleDriver(orderPrivateCar.getUserId(), 1, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机 |
| | | System.err.println("【" + orderPrivateCar.getId() + "】空闲司机:" + JSON.toJSONString(list)); |
| | | if(list.size() > 0){ |
| | | Optional<Driver> optional = list.stream().filter(d -> !d.getId().equals(orderPrivateCar.getDriverId())).findFirst(); |
| | | if(optional.isPresent()){ |
| | | Driver driver1 = optional.get(); |
| | | System.err.println("【" + orderPrivateCar.getId() + "】订单改派-指派空闲司机:" + JSON.toJSONString(list)); |
| | | drivers = list.stream().filter(d -> !d.getId().equals(orderPrivateCar.getDriverId())).collect(Collectors.toList()); |
| | | if(drivers.size() > 0) {//有司机,直接指派给司机 |
| | | System.err.println("【" + orderPrivateCar.getId() + "】订单改派-指派候选司机:" + JSON.toJSONString(drivers)); |
| | | Driver dr = null; |
| | | if (drivers.size() > 1) { |
| | | List<Driver> ds = new ArrayList<>();//存储直线距离最近的几个司机 |
| | | for (int i = 0; i < assignOrder.getPeople(); i++) { |
| | | Driver driver1 = null; |
| | | long m = 0; |
| | | int index = 0; |
| | | for (int j = 0; j < drivers.size(); j++) { |
| | | String value = redisUtil.getValue("DRIVER" + drivers.get(j).getId()); |
| | | if (null != value) { |
| | | String[] split = value.split(","); |
| | | DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]), tripId); |
| | | Long distance = distancematrix.getDistance(); |
| | | if ((0 == m && null == driver1) || (distance < m)) { |
| | | driver1 = drivers.get(j); |
| | | m = distance; |
| | | index = j; |
| | | } |
| | | } |
| | | } |
| | | ds.add(driver1); |
| | | drivers.remove(index); |
| | | } |
| | | |
| | | //再根据直线距离最短的司机中找出行驶距离最短的司机 |
| | | Long m = 0L; |
| | | for (Driver driver1 : ds) { |
| | | String value = redisUtil.getValue("DRIVER" + driver1.getId()); |
| | | if (null != value) { |
| | | String[] split = value.split(","); |
| | | DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]), tripId); |
| | | Long d = distancematrix.getDistance(); |
| | | if ((0 == m && null == dr) || (d.intValue() < m.intValue())) { |
| | | dr = driver1; |
| | | m = d; |
| | | } |
| | | } |
| | | } |
| | | } else { |
| | | dr = drivers.get(0); |
| | | } |
| | | System.err.println("【" + orderPrivateCar.getId() + "】订单改派-指派司机:" + JSON.toJSONString(dr)); |
| | | Driver driver1 = driverService.selectById(dr.getId()); |
| | | DriverWork driverWork = driverWorkService.selectOne(new EntityWrapper<DriverWork>().eq("driverId", dr.getId()) |
| | | .eq("state", 1).like("type", "1")); |
| | | if(driver1.getState() == 2 && null != driverWork) { |
| | | String text = ""; |
| | | reassign.setState(3); |
| | | reassign.setNowDriverId(driver1.getId()); |
| | | reassign.setNowCarId(driver1.getCarId()); |
| | | reassign.setCompleteTime(new Date()); |
| | | this.updateById(reassign); |
| | | |
| | | |
| | | |
| | | |
| | | Integer language1 = driver1.getLanguage(); |
| | | switch (language1){ |
| | | case 1: |
| | |
| | | case 3: |
| | | text = "Reçu une nouvelle commande de course, à partir de " + orderPrivateCar.getStartAddress() + ", le trajet complet est d’environ " + orderPrivateCar.getEstimatedMileage(); |
| | | break; |
| | | |
| | | |
| | | } |
| | | String audioUrl = ""; |
| | | String fileName = "pushOrder" + orderPrivateCar.getDriverId() + UUIDUtil.getRandomCode(5) + ".mp3"; |
| | |
| | | } |
| | | } |
| | | }, 30000); |
| | | |
| | | |
| | | orderPrivateCar.setDriverId(driver1.getId()); |
| | | orderPrivateCar.setCarId(driver1.getCarId()); |
| | | orderPrivateCar.setCompanyId(driver1.getFranchiseeId() != null && driver1.getFranchiseeId() != 0 ? driver1.getFranchiseeId() : ( |
| | |
| | | if(!StringUtils.hasLength(orderPrivateCar.getTripId())){ |
| | | orderPrivateCar.setTripId(UUIDUtil.getRandomCode()); |
| | | } |
| | | |
| | | |
| | | if(orderPrivateCar.getOrderType() == 1){ |
| | | String value = redisUtil.getValue("DRIVER" + driver1.getId()); |
| | | if(ToolUtil.isNotEmpty(value)) { |
| | |
| | | orderPrivateCarService.updateAllColumnById(orderPrivateCar); |
| | | driver1.setState(3); |
| | | driverService.updateById(driver1); |
| | | |
| | | |
| | | driver.setState(2); |
| | | driverService.updateById(driver); |
| | | |
| | | |
| | | //检查google车辆信息或者添加新的车辆信息 |
| | | Car car = carService.selectById(orderPrivateCar.getCarId()); |
| | | if(ToolUtil.isEmpty(car.getVehicleId())){ |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | //修改google订单信息或者创建新的行程 |
| | | String trip = fleetEngineUtil.getTrip(orderPrivateCar.getTripId()); |
| | | if(ToolUtil.isEmpty(trip)){ |
| | |
| | | } |
| | | }else{ |
| | | //开始修改行程数据 |
| | | boolean updateTrip = fleetEngineUtil.updateTrip(null, car.getVehicleId(), null, orderPrivateCar.getTripId(), null, null, null, null); |
| | | boolean updateTrip = fleetEngineUtil.updateTrip(null, car.getVehicleId(), null, orderPrivateCar.getTripId(), null, null, null, null, orderPrivateCar.getId(), 1); |
| | | if(!updateTrip){ |
| | | for (int i = 0; i < 5; i++) { |
| | | updateTrip = fleetEngineUtil.updateTrip(null, car.getVehicleId(), null, orderPrivateCar.getTripId(), null, null, null, null); |
| | | updateTrip = fleetEngineUtil.updateTrip(null, car.getVehicleId(), null, orderPrivateCar.getTripId(), null, null, null, null, orderPrivateCar.getId(), 1); |
| | | if(updateTrip){ |
| | | break; |
| | | } |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | //删除定时任务 |
| | | quartzUtil.deleteQuartzTask("1_" + orderPrivateCar.getId() + "_1","ORDER_TIME_OUT"); |
| | | quartzUtil.deleteQuartzTask("2_1_" + orderPrivateCar.getId() + "_1","ORDER_TIME_OUT"); |
| | | quartzUtil.deleteQuartzTask("2_2_" + orderPrivateCar.getId() + "_1","ORDER_TIME_OUT"); |
| | | quartzUtil.deleteQuartzTask("3_" + orderPrivateCar.getId() + "_1","ORDER_TIME_OUT"); |
| | | |
| | | |
| | | /** |
| | | * 超时用户取消不收费的提醒 |
| | | * 预约单:行程时间 + 配置不收费的时间 > 当前时间 (只弹一次) |
| | |
| | | * |
| | | * 预约单需要提前xx分钟提醒司机需要接乘客,过后每隔xx分钟提醒一次。超时后停止提醒 |
| | | */ |
| | | |
| | | |
| | | //添加定时任务(普通任务) |
| | | SysOvertime reminderRules = sysOvertimeService.selectOne(new EntityWrapper<SysOvertime>().eq("companyId", driver1.getCompanyId())); |
| | | if(null != reminderRules){ |
| | | CancleOrder cancleOrder = cancleOrderService.selectOne(new EntityWrapper<CancleOrder>().eq("companyId", driver1.getCompanyId())); |
| | | Integer driverTimeout = JSON.parseObject(cancleOrder.getContent()).getInteger("driverTimeout"); |
| | | |
| | | |
| | | //即时单 |
| | | if(orderPrivateCar.getOrderType() == 1){ |
| | | //超时时间 |
| | |
| | | jobDataMap.put("describe", language1 == 1 ? "您已超时" + driverTimeout + "分钟,用户可免费取消订单" : language1 == 2 ? "Reminder You are overdue for " + driverTimeout + " minutes The subscriber could cancel the order for free Confirm" : "Rappel Vous êtes en retard de " + driverTimeout + " minutes L’abonné peut annuler la commande gratuitement Confirmer"); |
| | | quartzUtil.addSimpleQuartzTask(OrderTimeOutJob.class, "1_" + orderPrivateCar.getId() + "_1", "ORDER_TIME_OUT", jobDataMap |
| | | , new Date(timeOut), timeOut, 0); |
| | | |
| | | |
| | | //超时循环提醒 |
| | | jobDataMap = new JobDataMap(); |
| | | jobDataMap.put("driverId", driver1.getId()); |
| | |
| | | jobDataMap.put("describe", language1 == 1 ? "您已超时" + driverTimeout + "分钟,用户可免费取消订单" : language1 == 2 ? "Reminder You are overdue for " + driverTimeout + " minutes The subscriber could cancel the order for free Confirm" : "Rappel Vous êtes en retard de " + driverTimeout + " minutes L’abonné peut annuler la commande gratuitement Confirmer"); |
| | | quartzUtil.addSimpleQuartzTask(OrderTimeOutJob.class, "1_" + orderPrivateCar.getId() + "_1", "ORDER_TIME_OUT", jobDataMap |
| | | , new Date(timeOut), timeOut, 0); |
| | | |
| | | |
| | | |
| | | |
| | | UserInfo userInfo = userInfoMapper.selectById(orderPrivateCar.getUserId()); |
| | | |
| | | |
| | | //预约单出发首次提醒 |
| | | long travelTime = orderPrivateCar.getTravelTime().getTime() - reminderRules.getReserveTime() * 60000; |
| | | SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); |
| | |
| | | "Vous allez chercher " + (ToolUtil.isEmpty(userInfo.getFirstName()) ? userInfo.getNickName() : userInfo.getFirstName() + " " + userInfo.getLastName()) + " à " + sdf.format(orderPrivateCar.getTravelTime()) + ", s’il vous plaît soyez à l’heure."); |
| | | quartzUtil.addSimpleQuartzTask(OrderTimeOutJob.class, "2_1_" + orderPrivateCar.getId() + "_1", "ORDER_TIME_OUT", jobDataMap |
| | | , new Date(travelTime), travelTime, 0); |
| | | |
| | | |
| | | //预约单出发循环提醒 |
| | | jobDataMap = new JobDataMap(); |
| | | jobDataMap.put("driverId", driver1.getId()); |
| | |
| | | "Vous allez chercher " + (ToolUtil.isEmpty(userInfo.getFirstName()) ? userInfo.getNickName() : userInfo.getFirstName() + " " + userInfo.getLastName()) + " à " + sdf.format(orderPrivateCar.getTravelTime()) + ", s’il vous plaît soyez à l’heure."); |
| | | quartzUtil.addSimpleQuartzTask(OrderTimeOutJob.class, "2_2_" + orderPrivateCar.getId() + "_1", "ORDER_TIME_OUT", jobDataMap |
| | | , new Date(travelTime + reminderRules.getReserveNext() * 60000), reminderRules.getReserveNext() * 60000, -1); |
| | | |
| | | |
| | | //超时循环提醒 |
| | | jobDataMap = new JobDataMap(); |
| | | jobDataMap.put("driverId", driver1.getId()); |
| | |
| | | , orderPrivateCar.getTravelTime(), reminderRules.getCar() * 60000, -1); |
| | | } |
| | | } |
| | | |
| | | |
| | | //推送相关代码------------------start---------------- |
| | | String finalAudioUrl = audioUrl; |
| | | new Thread(new Runnable() { |
| | |
| | | pushUtil.pushOrderReassign(orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, finalAudioUrl); |
| | | } |
| | | }).start(); |
| | | |
| | | |
| | | Integer language2 = userInfoMapper.selectById(orderPrivateCar.getUserId()).getLanguage(); |
| | | systemNoticeService.addSystemNotice(2, language1 == 1 ? "您已成功抢得打车订单,请及时联系客户!" : |
| | | language1 == 2 ? "You have grabbed the ride order, please contact the client timely." |
| | |
| | | systemNoticeService.addSystemNotice(1, language2 == 1 ? "您的订单已指派给" + driver1.getFirstName() + "师傅,请保持电话畅通!" : |
| | | language2 == 2 ? "Your order has been assigned to the driver- " + driver1.getFirstName() + ", please keep your line on." |
| | | : "Votre commande a été attribuée au chauffeur- " + driver1.getFirstName() + ", S'il vous plaît, restez en ligne.", orderPrivateCar.getUserId()); |
| | | |
| | | } |
| | | } |
| | | break; |
| | | case 4: |
| | | OrderLogistics orderLogistics = orderLogisticsService.selectById(reassign.getOrderId()); |
| | | Company company1 = companyCityService.query1(orderLogistics.getUserId(), String.valueOf(orderLogistics.getStartLon()), String.valueOf(orderLogistics.getStartLat()));//获取起点所属分公司 |
| | | AssignOrder assignOrder1 = assignOrderService.selectOne(new EntityWrapper<AssignOrder>().eq("companyId", company1.getId()).eq("type", 1)); |
| | | if(null == assignOrder1 || assignOrder1.getPeople() == 0) {//配置了指派规则才处理 |
| | | return resultUtil; |
| | | } |
| | | PushOrder pushOrder1 = pushOrderService.querys(1, 1, company1.getId()).get(0); |
| | | //获取空闲司机 |
| | | List<Driver> list1 = driverService.queryIdleDriver(orderLogistics.getUserId(), orderLogistics.getType(), orderLogistics.getServerCarModelId(), orderLogistics.getStartLon(), orderLogistics.getStartLat(), pushOrder1.getPushDistance(), null);//所有附近空闲司机 |
| | | System.err.println("【" + orderLogistics.getId() + "】空闲司机:" + JSON.toJSONString(list1)); |
| | | if(list1.size() > 0){ |
| | | Optional<Driver> optional = list1.stream().filter(d -> !d.getId().equals(orderLogistics.getDriverId())).findFirst(); |
| | | if(optional.isPresent()){ |
| | | Driver driver1 = optional.get(); |
| | | System.err.println("【" + orderLogistics.getId() + "】订单改派-指派空闲司机:" + JSON.toJSONString(list1)); |
| | | drivers = list1.stream().filter(d -> !d.getId().equals(orderLogistics.getDriverId())).collect(Collectors.toList()); |
| | | if(drivers.size() > 0){//有司机,直接指派给司机 |
| | | System.err.println("【" + orderLogistics.getId() + "】订单改派-指派候选司机:" + JSON.toJSONString(drivers)); |
| | | Driver dr = null; |
| | | if(drivers.size() > 1){ |
| | | List<Driver> ds = new ArrayList<>();//存储直线距离最近的几个司机 |
| | | for(int i = 0; i < assignOrder1.getPeople(); i++){ |
| | | Driver driver1 = null; |
| | | long m = 0; |
| | | int index = 0; |
| | | for(int j = 0; j < drivers.size(); j++){ |
| | | String value = redisUtil.getValue("DRIVER" + drivers.get(j).getId()); |
| | | if(null != value){ |
| | | String[] split = value.split(","); |
| | | DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]), tripId); |
| | | Long distance = distancematrix.getDistance(); |
| | | if((0 == m && null == driver1) || (distance < m)){ |
| | | driver1 = drivers.get(j); |
| | | m = distance; |
| | | index = j; |
| | | } |
| | | } |
| | | } |
| | | ds.add(driver1); |
| | | drivers.remove(index); |
| | | } |
| | | |
| | | //再根据直线距离最短的司机中找出行驶距离最短的司机 |
| | | Long m = 0L; |
| | | for(Driver driver1 : ds){ |
| | | String value = redisUtil.getValue("DRIVER" + driver1.getId()); |
| | | if(null != value){ |
| | | String[] split = value.split(","); |
| | | DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]), tripId); |
| | | Long d = distancematrix.getDistance(); |
| | | if((0 == m && null == dr) || (d.intValue() < m.intValue())){ |
| | | dr = driver1; |
| | | m = d; |
| | | } |
| | | } |
| | | } |
| | | }else{ |
| | | dr = drivers.get(0); |
| | | } |
| | | System.err.println("【" + orderLogistics.getId() + "】订单改派-指派司机:" + JSON.toJSONString(dr)); |
| | | Driver driver1 = driverService.selectById(dr.getId()); |
| | | DriverWork driverWork = driverWorkService.selectOne(new EntityWrapper<DriverWork>().eq("driverId", driver1.getId()) |
| | | .eq("state", 1).like("type", "4")); |
| | | if(driver1.getState() == 2 || null != driverWork){ |
| | | |
| | | reassign.setState(3); |
| | | reassign.setNowDriverId(driver1.getId()); |
| | | reassign.setNowCarId(driver1.getCarId()); |
| | | reassign.setCompleteTime(new Date()); |
| | | this.updateById(reassign); |
| | | |
| | | |
| | | String text = ""; |
| | | Integer language1 = driver1.getLanguage(); |
| | | switch (language1){ |
| | |
| | | case 3: |
| | | text = "Reçu une nouvelle commande de livraison, à partir de " + orderLogistics.getStartAddress() + ", le trajet complet est d’environ " + orderLogistics.getEstimatedMileage(); |
| | | break; |
| | | |
| | | |
| | | } |
| | | String audioUrl = ""; |
| | | String fileName = "pushOrder" + driver1.getId() + UUIDUtil.getRandomCode(5) + ".mp3"; |
| | |
| | | } |
| | | } |
| | | }, 30000); |
| | | |
| | | |
| | | |
| | | |
| | | orderLogistics.setDriverId(driver1.getId()); |
| | | orderLogistics.setCarId(driver1.getCarId()); |
| | | orderLogistics.setCompanyId(driver1.getFranchiseeId() != null && driver1.getFranchiseeId() != 0 ? driver1.getFranchiseeId() : ( |
| | |
| | | //修改司机为服务中 |
| | | driver1.setState(3); |
| | | driverService.updateById(driver1); |
| | | |
| | | |
| | | driver.setState(2); |
| | | driverService.updateById(driver); |
| | | |
| | | |
| | | //检查google车辆信息或者添加新的车辆信息 |
| | | Car car = carService.selectById(orderLogistics.getCarId()); |
| | | if(ToolUtil.isEmpty(car.getVehicleId())){ |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | //修改google订单信息或者创建新的行程 |
| | | String trip = fleetEngineUtil.getTrip(orderLogistics.getTripId()); |
| | | if(ToolUtil.isEmpty(trip)){ |
| | |
| | | } |
| | | }else{ |
| | | //开始修改行程数据 |
| | | boolean updateTrip = fleetEngineUtil.updateTrip(null, car.getVehicleId(), null, orderLogistics.getTripId(), null, null, null, null); |
| | | boolean updateTrip = fleetEngineUtil.updateTrip(null, car.getVehicleId(), null, orderLogistics.getTripId(), null, null, null, null, orderLogistics.getId(), 4); |
| | | if(!updateTrip){ |
| | | for (int i = 0; i < 5; i++) { |
| | | updateTrip = fleetEngineUtil.updateTrip(null, car.getVehicleId(), null, orderLogistics.getTripId(), null, null, null, null); |
| | | updateTrip = fleetEngineUtil.updateTrip(null, car.getVehicleId(), null, orderLogistics.getTripId(), null, null, null, null, orderLogistics.getId(), 4); |
| | | if(updateTrip){ |
| | | break; |
| | | } |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | //删除定时任务 |
| | | quartzUtil.deleteQuartzTask("1_" + orderLogistics.getId() + "_4","ORDER_TIME_OUT"); |
| | | quartzUtil.deleteQuartzTask("2_1_" + orderLogistics.getId() + "_4","ORDER_TIME_OUT"); |
| | | quartzUtil.deleteQuartzTask("2_2_" + orderLogistics.getId() + "_4","ORDER_TIME_OUT"); |
| | | quartzUtil.deleteQuartzTask("3_" + orderLogistics.getId() + "_4","ORDER_TIME_OUT"); |
| | | |
| | | |
| | | /** |
| | | * 超时用户取消不收费的提醒 |
| | | * 即时单:预估到达预约点时间 + 配置不收费的时间 > 当前时间 (只弹一次) |
| | |
| | | * 定时提醒弹框 |
| | | * 司机只要开始超时且还未到达预约点,则需要定时提醒 |
| | | */ |
| | | |
| | | |
| | | //添加定时任务(普通任务) |
| | | SysOvertime reminderRules = sysOvertimeService.selectOne(new EntityWrapper<SysOvertime>().eq("companyId", driver1.getCompanyId())); |
| | | if(null != reminderRules){ |
| | |
| | | jobDataMap.put("describe", language1 == 1 ? "您已超时" + driverTimeout + "分钟,用户可免费取消订单" : language1 == 2 ? "Reminder You are overdue for " + driverTimeout + " minutes The subscriber could cancel the order for free Confirm" : "Rappel Vous êtes en retard de " + driverTimeout + " minutes L’abonné peut annuler la commande gratuitement Confirmer"); |
| | | quartzUtil.addSimpleQuartzTask(OrderTimeOutJob.class, "1_" + orderLogistics.getId() + "_4", "ORDER_TIME_OUT", jobDataMap |
| | | , new Date(timeOut), timeOut, 0); |
| | | |
| | | |
| | | //超时循环提醒 |
| | | jobDataMap = new JobDataMap(); |
| | | jobDataMap.put("driverId", driver1.getId()); |
| | |
| | | quartzUtil.addSimpleQuartzTask(OrderTimeOutJob.class, "3_" + orderLogistics.getId() + "_4", "ORDER_TIME_OUT", jobDataMap |
| | | , orderLogistics.getEstimateArriveTime(), reminderRules.getCar() * 60000, -1); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | //推送相关代码------------------start---------------- |
| | | String finalAudioUrl = audioUrl; |
| | | new Thread(new Runnable() { |
| | |
| | | } |
| | | break; |
| | | } |
| | | |
| | | |
| | | |
| | | return resultUtil; |
| | | } |
| | | |