DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CarMapper.xml
@@ -74,10 +74,11 @@ select a.id as id, CONCAT(a.carLicensePlate, '-',c.`name`, b.`name`, ' ', a.carColor) as name, a.useDriverId as useDriverId d.id as useDriverId from t_car a left join t_car_model b on (a.carModelId = b.id) left join t_car_brand c on (b.brandId = c.id) left join t_car_model b on (a.carModelId = b.id) left join t_car_brand c on (b.brandId = c.id) left join t_driver d on (a.id = d.carId) where a.state = 1 and find_in_set(#{id},a.bindDriverId) </select> </mapper> DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CarServiceImpl.java
@@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.stylefeng.guns.modular.system.dao.CarBrandMapper; import com.stylefeng.guns.modular.system.dao.CarMapper; import com.stylefeng.guns.modular.system.dao.CarModelMapper; import com.stylefeng.guns.modular.system.dao.CompanyMapper; import com.stylefeng.guns.modular.system.dao.*; import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.ICarService; import com.stylefeng.guns.modular.system.service.IDriverService; @@ -35,6 +32,9 @@ @Autowired private IDriverService driverService; @Autowired private DriverWorkMapper driverWorkMapper; @@ -62,14 +62,18 @@ } List<Map<String, Object>> list = carMapper.queryIdleDataFromId(driver.getId()); // List<Map<String, Object>> list = carMapper.queryIdleData(driver.getFranchiseeId() != null && driver.getFranchiseeId() != 0 ? driver.getFranchiseeId() : ( // driver.getCompanyId() != null && driver.getCompanyId() != 0 ? driver.getCompanyId() : 1)); for (Map<String, Object> stringObjectMap : list) { // 1使用中 2空闲中 if(stringObjectMap.get("useDriverId")!=null){ stringObjectMap.put("useState", 1); }else { if(null == stringObjectMap.get("useDriverId")){ stringObjectMap.put("useState", 2); }else{ Integer driverId = Integer.valueOf(stringObjectMap.get("useDriverId").toString()); DriverWork driverWork = driverWorkMapper.queryNewWork(driverId, null, 1); if(null == driverWork){ stringObjectMap.put("useState", 2); }else{ stringObjectMap.put("useState", 1); } } } map.put("list", list); @@ -162,13 +166,15 @@ @Override public boolean useState(Integer carId, Integer uid) { Car car = carMapper.selectById(carId); if(car.getUseDriverId()!=null && !car.getUseDriverId().equals(uid)){ return false; List<Driver> drivers = driverService.selectList(new EntityWrapper<Driver>().eq("carId", carId) .eq("authState", 2).ne("flag", 3)); for (Driver driver : drivers) { DriverWork driverWork = driverWorkMapper.queryNewWork(driver.getId(), null, 1); if(null != driverWork){ return true; } } return true; return false; } @Override DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -932,14 +932,20 @@ if(driver.getState() == 3){ return ResultUtil.error("还在服务中,不能更换"); } // boolean idle = carService.idle(carId); // 修改是否别司机在使用 boolean idle = carService.useState(carId,uid); if(!idle){ if(idle){ return ResultUtil.error("当前车辆已经有其他司机在使用,请更换车辆"); } // 将所有绑定他的车 =null carService.updateUseState(carId,uid); List<Driver> drivers = this.selectList(new EntityWrapper<Driver>().eq("carId", carId) .eq("authState", 2).ne("flag", 3)); drivers.forEach(d->{ d.setCarId(null); }); if(drivers.size() > 0){ this.updateAllColumnBatchById(drivers); } Car car = carService.selectById(carId); car.setUseDriverId(uid); carService.updateById( car); DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
@@ -386,9 +386,15 @@ } break; case 2://出租 OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId); if(null != orderPrivateCar && orderPrivateCar.getType() == 3){ map = orderPrivateCarService.queryPushOrder(orderId); OrderTaxi orderTaxi = orderTaxiService.selectById(orderId); if(null != orderTaxi && orderTaxi.getType() == 2){ OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId); if(null != orderPrivateCar && orderPrivateCar.getType() == 3){ map = orderPrivateCarService.queryPushOrder(orderId); }else{ map = orderTaxiService.queryPushOrder(orderId); } }else{ map = orderTaxiService.queryPushOrder(orderId); } @@ -396,9 +402,7 @@ // TODO: 2023/11/4 无法修改 String distance1 = gdMapElectricFenceUtil.getDistance(lon + "," + lat, order1, 1).get("distance"); map.put("startDistance", ToolUtil.isNotEmpty(distance1) ? Double.valueOf(distance1) / 1000 : 0); //总距离 String end1 = String.valueOf(map.get("endLon")) + "," + String.valueOf(map.get("endLat")); if(end1.equals(",")){ map.put("totalDistance", 0); @@ -413,7 +417,6 @@ } } Integer orderSource1 = Integer.valueOf(String.valueOf(map.get("orderSource"))); if(orderSource1 == 1 || orderSource1 == 2 || orderSource1 == 3){