| | |
| | | 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("司机还未上班呢"); |
| | |
| | | //修改订单数据 |
| | | 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 { |
| | |
| | | e.printStackTrace(); |
| | | } |
| | | orderCrossCityService.updateAllColumnById(tOrderCrossCity); |
| | | |
| | | oldDriver.setState(2); |
| | | //修改专车改派订单 |
| | | tReassign.setNowDriverId(driverId); |
| | | tReassign.setNowCarId(driver.getCarId()); |