From 9e91ae67150c35278b69457e5a9b839851af0890 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期一, 18 八月 2025 22:49:56 +0800
Subject: [PATCH] 8.18

---
 DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java |  129 ++++++++++++++++++++++--------------------
 1 files changed, 67 insertions(+), 62 deletions(-)

diff --git a/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java b/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
index 67090e1..a0fe981 100644
--- a/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
+++ b/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
@@ -464,73 +464,78 @@
         OrderCrossCity tOrderCrossCity = orderCrossCityService.selectById(tReassign.getOrderId());
         Driver oldDriver = driverService.selectById(tReassign.getOriginalDriverId());
         LineShiftDriver lineShiftDriver = lineShiftDriverMapper.selectById(tOrderCrossCity.getLineShiftDriverId());
-        lineShiftDriver.setLaveSeat(lineShiftDriver.getLaveSeat() + tOrderCrossCity.getPeopleNumber() > lineShiftDriver.getTotalSeat() ?
-                lineShiftDriver.getTotalSeat() : lineShiftDriver.getLaveSeat() + tOrderCrossCity.getPeopleNumber());
-        String seat = "";
-        String[] split = tOrderCrossCity.getSeatNumber().split(",");
-        for(String s : split){
-            seat += s + ",";
-        }
-        seat = lineShiftDriver.getLaveSeatNumber() + "," + seat.substring(0, seat.length() - 1);
+        if(lineShiftDriver!=null){
+            lineShiftDriver.setLaveSeat(lineShiftDriver.getLaveSeat() + tOrderCrossCity.getPeopleNumber() > lineShiftDriver.getTotalSeat() ?
+                    lineShiftDriver.getTotalSeat() : lineShiftDriver.getLaveSeat() + tOrderCrossCity.getPeopleNumber());
 
-        //总和大于总座位数的情况
-        if(lineShiftDriver.getLaveSeat() + tOrderCrossCity.getPeopleNumber() > lineShiftDriver.getTotalSeat()){
-            seat = "";
-            for(int i = 1; i <= lineShiftDriver.getTotalSeat(); i++){
-                seat += i + ",";
+
+            String seat = "";
+            String[] split = tOrderCrossCity.getSeatNumber().split(",");
+            for(String s : split){
+                seat += s + ",";
             }
-            seat = seat.substring(0, seat.length() - 1);
-        }
-        lineShiftDriver.setLaveSeatNumber(seat);
-        lineShiftDriverMapper.updateById(lineShiftDriver);
-        if(lineShiftDriver.getLaveSeat() >= lineShiftDriver.getTotalSeat()){
-            oldDriver.setState(2);
-            driverService.updateById(oldDriver);
-        }
+            seat = lineShiftDriver.getLaveSeatNumber() + "," + seat.substring(0, seat.length() - 1);
 
-        //修改新司机数据
-        List<LineShiftDriver> query = lineShiftDriverMapper.queryByDriver(lineShiftDriver.getLineShiftId(), driverId, tOrderCrossCity.getTravelTime());
-        LineShiftDriver lineShiftDriver1 = null;
+            //总和大于总座位数的情况
+            if(lineShiftDriver.getLaveSeat() + tOrderCrossCity.getPeopleNumber() > lineShiftDriver.getTotalSeat()){
+                seat = "";
+                for(int i = 1; i <= lineShiftDriver.getTotalSeat(); i++){
+                    seat += i + ",";
+                }
+                seat = seat.substring(0, seat.length() - 1);
+            }
+            lineShiftDriver.setLaveSeatNumber(seat);
+            lineShiftDriverMapper.updateById(lineShiftDriver);
+            if(lineShiftDriver.getLaveSeat() >= lineShiftDriver.getTotalSeat()){
+                oldDriver.setState(2);
+                driverService.updateById(oldDriver);
+            }
 
-        if(query.size() == 0){
+            //修改新司机数据
+            List<LineShiftDriver> query = lineShiftDriverMapper.queryByDriver(lineShiftDriver.getLineShiftId(), driverId, tOrderCrossCity.getTravelTime());
+            LineShiftDriver lineShiftDriver1 = null;
+
+            if(query.size() == 0){
 //            return ResultUtil.error("司机没有预约班次");
-            CarModel carModel = carModelMapper.selectById(carService.selectById(driverService.selectById(driverId).getCarId()).getCarModelId());
+                CarModel carModel = carModelMapper.selectById(carService.selectById(driverService.selectById(driverId).getCarId()).getCarModelId());
 
-            LineShiftDriver lineShiftDriver0 = new LineShiftDriver();
-            lineShiftDriver0.setLineShiftId(lineShiftDriver.getLineShiftId());
-            lineShiftDriver0.setDriverId(driverId);
-            lineShiftDriver0.setDay(lineShiftDriver.getDay());
-            lineShiftDriver0.setTotalSeat(carModel.getSeat() - 1);
-            lineShiftDriver0.setLaveSeat(carModel.getSeat() - 1);
-            lineShiftDriver0.setInserTime(new Date());
-            String seatNumber = "";
-            for(int i = 1; i < carModel.getSeat(); i++){
-                seatNumber += i + ",";
+                LineShiftDriver lineShiftDriver0 = new LineShiftDriver();
+                lineShiftDriver0.setLineShiftId(lineShiftDriver.getLineShiftId());
+                lineShiftDriver0.setDriverId(driverId);
+                lineShiftDriver0.setDay(lineShiftDriver.getDay());
+                lineShiftDriver0.setTotalSeat(carModel.getSeat() - 1);
+                lineShiftDriver0.setLaveSeat(carModel.getSeat() - 1);
+                lineShiftDriver0.setInserTime(new Date());
+                String seatNumber = "";
+                for(int i = 1; i < carModel.getSeat(); i++){
+                    seatNumber += i + ",";
+                }
+                lineShiftDriver0.setLaveSeatNumber(seatNumber.substring(0, seatNumber.length() - 1));
+
+                Integer insert = lineShiftDriverMapper.insert(lineShiftDriver0);
+                lineShiftDriver1 = lineShiftDriver0;
+
+            }else {
+                lineShiftDriver1 = query.get(0);
+
             }
-            lineShiftDriver0.setLaveSeatNumber(seatNumber.substring(0, seatNumber.length() - 1));
+            if(lineShiftDriver1.getLaveSeat() < tOrderCrossCity.getPeopleNumber()){
+                return ResultUtil.runErr("司机车辆剩余座位数不足");
+            }
+            lineShiftDriver1.setLaveSeat(lineShiftDriver1.getLaveSeat() - tOrderCrossCity.getPeopleNumber());
+            String[] split1 = lineShiftDriver1.getLaveSeatNumber().split(",");
+            String seat1 = "";//使用
+            String seat2 = "";//未使用
+            for(int i = 0; i < tOrderCrossCity.getPeopleNumber(); i++){
+                seat1 += split1[i] + ",";
+            }
+            for(int i = tOrderCrossCity.getPeopleNumber(); i < split1.length; i++){
+                seat2 += split1[i] + ",";
+            }
+            lineShiftDriver1.setLaveSeatNumber(seat2);
+            lineShiftDriverMapper.updateById(lineShiftDriver1);
+        }
 
-            Integer insert = lineShiftDriverMapper.insert(lineShiftDriver0);
-            lineShiftDriver1 = lineShiftDriver0;
-
-        }else {
-             lineShiftDriver1 = query.get(0);
-
-        }
-        if(lineShiftDriver1.getLaveSeat() < tOrderCrossCity.getPeopleNumber()){
-            return ResultUtil.runErr("司机车辆剩余座位数不足");
-        }
-        lineShiftDriver1.setLaveSeat(lineShiftDriver1.getLaveSeat() - tOrderCrossCity.getPeopleNumber());
-        String[] split1 = lineShiftDriver1.getLaveSeatNumber().split(",");
-        String seat1 = "";//使用
-        String seat2 = "";//未使用
-        for(int i = 0; i < tOrderCrossCity.getPeopleNumber(); i++){
-            seat1 += split1[i] + ",";
-        }
-        for(int i = tOrderCrossCity.getPeopleNumber(); i < split1.length; i++){
-            seat2 += split1[i] + ",";
-        }
-        lineShiftDriver1.setLaveSeatNumber(seat2);
-        lineShiftDriverMapper.updateById(lineShiftDriver1);
         Driver driver = driverService.selectById(driverId);
 //        if(driver.getState() == 1){
 //            return ResultUtil.error("司机还未上班呢");
@@ -542,9 +547,9 @@
         //修改订单数据
         tOrderCrossCity.setDriverId(driverId);
         tOrderCrossCity.setCarId(driver.getCarId());
-        tOrderCrossCity.setSeatNumber(seat1);
+//        tOrderCrossCity.setSeatNumber(seat1);
         tOrderCrossCity.setState(tOrderCrossCity.getOldState());
-        tOrderCrossCity.setLineShiftDriverId(lineShiftDriver1.getId());
+//        tOrderCrossCity.setLineShiftDriverId(lineShiftDriver1.getId());
         tOrderCrossCity.setOldState(null);
         tOrderCrossCity.setIsReassign(2);
         try {
@@ -553,7 +558,7 @@
             e.printStackTrace();
         }
         orderCrossCityService.updateAllColumnById(tOrderCrossCity);
-
+        oldDriver.setState(2);
         //修改专车改派订单
         tReassign.setNowDriverId(driverId);
         tReassign.setNowCarId(driver.getCarId());

--
Gitblit v1.7.1