From 20567082b4ce546df740650a0223fb56d69983f7 Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期二, 05 八月 2025 13:59:11 +0800 Subject: [PATCH] 改派 --- DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java | 81 +++++++++++++++++++++++++++++++--------- 1 files changed, 62 insertions(+), 19 deletions(-) diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java index fe336f4..b004709 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java @@ -44,7 +44,7 @@ import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.text.SimpleDateFormat; -import java.time.LocalDateTime; +import java.time.LocalDate; import java.util.*; import java.util.concurrent.TimeUnit; @@ -401,14 +401,19 @@ driver.setSex(registeredWarpper.getSex()); driver.setIdCard(registeredWarpper.getIdCard()); + driver.setArea(registeredWarpper.getArea()); - driver.setAreaCode(registeredWarpper.getAreaCode()); + driver.setAreaCode(registeredWarpper.getPlaceOfEmployment()); driver.setCity(registeredWarpper.getCity()); driver.setCityCode(registeredWarpper.getCityCode()); driver.setProvince(registeredWarpper.getProvince()); driver.setProvinceCode(registeredWarpper.getProvinceCode()); + driver.setCompanyId(registeredWarpper.getCompanyId()); + if(registeredWarpper.getCompanyId()==null){ + return ResultUtil.error("请选择服务商"); + } - String code = registeredWarpper.getAreaCode(); + String code = registeredWarpper.getPlaceOfEmployment(); Company query = companyCityService.query(code); if(null == query){ return ResultUtil.error("选择从业地暂未开通业务"); @@ -633,6 +638,10 @@ driverWorkMapper.updateById(driverWork); driver.setState(1); + // 更新车辆使用状态 + carService.updateUseState(uid); + + new Thread(new Runnable() { @Override public void run() { @@ -649,6 +658,18 @@ return ResultUtil.error("车辆正在使用中"); } } + + //判断车辆是否正在使用中 + Car car = carService.selectById(driver.getCarId()); + if(car.getUseDriverId() != null && !car.getUseDriverId().equals(uid)){ + return ResultUtil.error("当前绑定车辆正在使用中,请更换车辆"); + }else if(car.getUseDriverId()==null){ + car.setUseDriverId(uid); + carService.updateById(car); + } + + + driverWork = new DriverWork(); driverWork.setState(1); driverWork.setDriverId(uid); @@ -696,6 +717,9 @@ driverWorkMapper.updateById(driverWork); driver.setState(1); + // 更新车辆使用状态 + carService.updateUseState(uid); + new Thread(new Runnable() { @Override public void run() { @@ -705,6 +729,18 @@ } }).start(); }else{ + + //判断车辆是否正在使用中 + Car car = carService.selectById(driver.getCarId()); + if(car.getUseDriverId() != null && !car.getUseDriverId().equals(uid)){ + return ResultUtil.error("当前绑定车辆正在使用中,请更换车辆"); + }else if(car.getUseDriverId()==null){ + car.setUseDriverId(uid); + carService.updateById(car); + } + + + driverWork = new DriverWork(); driverWork.setState(1); driverWork.setDriverId(uid); @@ -896,10 +932,17 @@ if(driver.getState() == 3){ return ResultUtil.error("还在服务中,不能更换"); } - boolean idle = carService.idle(carId); +// boolean idle = carService.idle(carId); + // 修改是否别司机在使用 + boolean idle = carService.useState(carId,uid); if(!idle){ return ResultUtil.error("当前车辆已经有其他司机在使用,请更换车辆"); } + // 将所有绑定他的车 =null + carService.updateUseState(carId,uid); + Car car = carService.selectById(carId); + car.setUseDriverId(uid); + carService.updateById( car); driver.setCarId(carId); this.updateById(driver); return ResultUtil.success(); @@ -1587,11 +1630,11 @@ public DriverIndexVo queryHomeDataFromDriver(Integer uid) { DriverIndexVo driverIndexVo = new DriverIndexVo(); // 获取快车订单 - List<OrderPrivateCar> orderPrivateCars = orderPrivateCarMapper.selectList(new EntityWrapper<OrderPrivateCar>().ne("state", 10).eq("driverId", uid).like("insertTime", LocalDateTime.now().toString())); + List<OrderPrivateCar> orderPrivateCars = orderPrivateCarMapper.selectList(new EntityWrapper<OrderPrivateCar>().ne("state", 10).eq("driverId", uid).like("insertTime", LocalDate.now().toString())); // 跨城订单 - List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.selectList(new EntityWrapper<OrderCrossCity>().ne("state", 10).eq("driverId", uid).like("insertTime", LocalDateTime.now().toString())); + List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.selectList(new EntityWrapper<OrderCrossCity>().ne("state", 10).eq("driverId", uid).like("insertTime", LocalDate.now().toString())); // 出租车订单 - List<OrderTaxi> orderTaxis = orderTaxiMapper.selectList(new EntityWrapper<OrderTaxi>().ne("state", 10).eq("driverId", uid).like("insertTime", LocalDateTime.now().toString())); + List<OrderTaxi> orderTaxis = orderTaxiMapper.selectList(new EntityWrapper<OrderTaxi>().ne("state", 10).eq("driverId", uid).like("insertTime", LocalDate.now().toString())); driverIndexVo.setTodayOrderNum(orderPrivateCars.size() + orderCrossCities.size() + orderTaxis.size()); @@ -1601,9 +1644,9 @@ driverIndexVo.setTodayOrderMoney(new BigDecimal(sum +sum1+sum2)); - BigDecimal reduce = orderPrivateCarMapper.selectList(new EntityWrapper<OrderPrivateCar>().eq("promotionDriverId", uid).like("insertTime", LocalDateTime.now().toString())).stream().map(OrderPrivateCar::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add); - BigDecimal reduce1 = orderCrossCityMapper.selectList(new EntityWrapper<OrderCrossCity>().eq("promotionDriverId", uid).like("insertTime", LocalDateTime.now().toString())).stream().map(OrderCrossCity::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add); - BigDecimal reduce2 = orderTaxiMapper.selectList(new EntityWrapper<OrderTaxi>().eq("promotionDriverId", uid).like("insertTime", LocalDateTime.now().toString())).stream().map(OrderTaxi::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal reduce = orderPrivateCarMapper.selectList(new EntityWrapper<OrderPrivateCar>().eq("promotionDriverId", uid).like("insertTime", LocalDate.now().toString())).stream().map(OrderPrivateCar::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal reduce1 = orderCrossCityMapper.selectList(new EntityWrapper<OrderCrossCity>().eq("promotionDriverId", uid).like("insertTime", LocalDate.now().toString())).stream().map(OrderCrossCity::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal reduce2 = orderTaxiMapper.selectList(new EntityWrapper<OrderTaxi>().eq("promotionDriverId", uid).like("insertTime", LocalDate.now().toString())).stream().map(OrderTaxi::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add); driverIndexVo.setTodayPromotionMoney(reduce.add(reduce1).add(reduce2)); return driverIndexVo; }; @@ -1622,9 +1665,9 @@ List<OrderTaxi> orderTaxis = orderTaxiMapper.selectList(new EntityWrapper<OrderTaxi>().ne("state", 10).eq("driverId", uid)); DriverOrderDataVo driverOrderDataVo = new DriverOrderDataVo(); driverOrderDataVo.setAllOrderNum(orderPrivateCars.size() + orderCrossCities.size() + orderTaxis.size()); - long count = orderPrivateCars.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDateTime.now().toString())).count(); - long count1 = orderCrossCities.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDateTime.now().toString())).count(); - long count2 = orderTaxis.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDateTime.now().toString())).count(); + long count = orderPrivateCars.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDate.now().toString())).count(); + long count1 = orderCrossCities.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDate.now().toString())).count(); + long count2 = orderTaxis.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDate.now().toString())).count(); driverOrderDataVo.setTodayOrderNum((int) (count+count1+count2)); Date date = new Date(); @@ -1668,9 +1711,9 @@ - double count = orderPrivateCars.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDateTime.now().toString())).mapToDouble(OrderPrivateCar::getOrderMoney).sum(); - double count1 = orderCrossCities.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDateTime.now().toString())).mapToDouble(OrderCrossCity::getOrderMoney).sum(); - double count2 = orderTaxis.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDateTime.now().toString())).mapToDouble(OrderTaxi::getOrderMoney).sum(); + double count = orderPrivateCars.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDate.now().toString())).mapToDouble(OrderPrivateCar::getOrderMoney).sum(); + double count1 = orderCrossCities.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDate.now().toString())).mapToDouble(OrderCrossCity::getOrderMoney).sum(); + double count2 = orderTaxis.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDate.now().toString())).mapToDouble(OrderTaxi::getOrderMoney).sum(); driverOrderDataVo.setTodayOrderMoney(new BigDecimal(count+count1+count2)); @@ -1715,9 +1758,9 @@ - BigDecimal count = orderPrivateCars.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDateTime.now().toString())).map(OrderPrivateCar::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add); - BigDecimal count1 = orderCrossCities.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDateTime.now().toString())).map(OrderCrossCity::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add); - BigDecimal count2 = orderTaxis.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDateTime.now().toString())).map(OrderTaxi::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count = orderPrivateCars.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDate.now().toString())).map(OrderPrivateCar::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count1 = orderCrossCities.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDate.now().toString())).map(OrderCrossCity::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count2 = orderTaxis.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDate.now().toString())).map(OrderTaxi::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add); driverOrderDataVo.setTodayOrderMoney(count.add(count1).add(count2)); -- Gitblit v1.7.1