From 0b5d21c6338bb3bd094a5bf2379001c4e9772eb5 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期六, 26 七月 2025 18:03:39 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java |   41 ++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 40 insertions(+), 1 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..d40981b 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
@@ -407,6 +407,7 @@
         driver.setCityCode(registeredWarpper.getCityCode());
         driver.setProvince(registeredWarpper.getProvince());
         driver.setProvinceCode(registeredWarpper.getProvinceCode());
+        driver.setCompanyId(registeredWarpper.getCompanyId());
 
         String code = registeredWarpper.getAreaCode();
         Company query = companyCityService.query(code);
@@ -633,6 +634,10 @@
             driverWorkMapper.updateById(driverWork);
             driver.setState(1);
 
+            //   更新车辆使用状态
+            carService.updateUseState(uid);
+
+
             new Thread(new Runnable() {
                 @Override
                 public void run() {
@@ -649,6 +654,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 +713,9 @@
             driverWorkMapper.updateById(driverWork);
             driver.setState(1);
 
+            //   更新车辆使用状态
+            carService.updateUseState(uid);
+
             new Thread(new Runnable() {
                 @Override
                 public void run() {
@@ -705,6 +725,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 +928,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();

--
Gitblit v1.7.1