From 0467b2c78c12aba5922e5b900eed5205824e9220 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期五, 15 八月 2025 09:44:33 +0800 Subject: [PATCH] bug修改 --- UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java | 45 +++++++++++++++++++++++++++++++++++++++------ 1 files changed, 39 insertions(+), 6 deletions(-) diff --git a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java index 246b928..c2337d0 100644 --- a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java +++ b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java @@ -17,10 +17,7 @@ import org.springframework.util.CollectionUtils; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; @Service @@ -65,7 +62,7 @@ list.add(driver); } }else{ - System.err.println(driver.getName() + "-----------------没有上传经纬度----------------"); +// System.err.println(driver.getName() + "-----------------没有上传经纬度----------------"); } } return list; @@ -88,7 +85,38 @@ List<Driver> drivers = driverMapper.queryIdleDriver_(type, serverCarModelId, companyId); List<Driver> list = new ArrayList<>(); for(Driver driver : drivers){ + if(driver.getId() == 2448){ + System.err.println("司机名称---"+driver.getName()); + } String value = redisUtil.getValue("DRIVER" + String.valueOf(driver.getId())); + if(null != value){ + /*Map<String, String> distance1 = gdMapElectricFenceUtil.getDistance(lon + "," + lat, value, 0);//计算距离 + double d = Double.valueOf(distance1.get("distance")).doubleValue();*/ +// double d = GDMapGeocodingUtil.getDistance(lat,lon,Double.parseDouble(value.split(",")[1]),Double.parseDouble(value.split(",")[0])); + double d = gdMapElectricFenceUtil.getDrivingRoute(lat,lon,Double.parseDouble(value.split(",")[1]),Double.parseDouble(value.split(",")[0])); + if(d < (distance * 1000)){ + list.add(driver); + } + } + } + return list; + } + /** + * 获取给定车型且空闲的司机 + * @param type + * @param serverCarModelId + * @param lon + * @param lat + * @param distance + * @param companyId + * @return + */ + @Override + public List<Driver> queryIdleDriver_(Integer type, Integer serverCarModelId, Double lon, Double lat, Double distance, Integer companyId) { + List<Driver> drivers = driverMapper.queryIdleDriverService_(type, serverCarModelId, companyId); + List<Driver> list = new ArrayList<>(); + for(Driver driver : drivers){ + String value = redisUtil.getValue("DRIVER" + driver.getId()); if(null != value){ /*Map<String, String> distance1 = gdMapElectricFenceUtil.getDistance(lon + "," + lat, value, 0);//计算距离 double d = Double.valueOf(distance1.get("distance")).doubleValue();*/ @@ -169,13 +197,18 @@ if(CollectionUtils.isEmpty(drivers)){ return new ArrayList<>(); } - for (Driver driver : drivers) { + Iterator<Driver> iterator = drivers.iterator(); + while (iterator.hasNext()){ + Driver driver = iterator.next(); String value = redisUtil.getValue("DRIVER" + driver.getId()); if(null != value){ double d = GDMapGeocodingUtil.getDistance(lat,lon,Double.parseDouble(value.split(",")[1]),Double.parseDouble(value.split(",")[0])); driver.setLon(Double.parseDouble(value.split(",")[0])); driver.setLat(Double.parseDouble(value.split(",")[1])); driver.setDistance(d); + }else { + System.err.println(driver.getName() + "------没有上传经纬度------"); + iterator.remove(); } } if(drivers.size() > 10){ -- Gitblit v1.7.1