| | |
| | | package com.ruoyi.tms.service.impl; |
| | | |
| | | import java.io.File; |
| | | import java.math.BigDecimal; |
| | | import java.time.LocalDateTime; |
| | | import java.time.ZoneId; |
| | | import java.util.*; |
| | |
| | | if (tmsDispatchOrder.getStatus() != 1 && tmsDispatchOrder.getStatus() != 2){ |
| | | throw new RuntimeException("调度单数据状态异常"); |
| | | } |
| | | |
| | | TmsTrip tmsTrip1 = tmsTripMapper.selectOne(new LambdaQueryWrapper<TmsTrip>() |
| | | .eq(TmsTrip::getDispatchOrderId, dispatchOrderId) |
| | | .orderByDesc(TmsTrip::getId) |
| | | .last("limit 1") |
| | | ); |
| | | if (tmsTrip1 != null){ |
| | | BigDecimal currentOdometer = tmsTrip.getOdometer(); |
| | | BigDecimal lastOdometer = tmsTrip1.getOdometer(); |
| | | if (currentOdometer!=null && lastOdometer != null && currentOdometer.compareTo(lastOdometer) < 0) { |
| | | throw new IllegalArgumentException("车辆里程数异常,当前里程必须大于上一行程"); |
| | | } |
| | | } |
| | | |
| | | TmsDriver tmsDriver = tmsDriverMapper.selectTmsDriverById(tmsDispatchOrder.getMainDriverId()); |
| | | if (tmsDriver == null){ |
| | | throw new RuntimeException("未找到司机数据"); |
| | | } |
| | | Integer status = tmsDispatchOrder.getStatus(); |
| | | if (status == 1){ |
| | | tmsDispatchOrder.setStatus(2); |
| | | } |
| | | if (tmsTrip.getTripType() == 8 || tmsTrip.getTripType() == 100){ |
| | | if (status == 2){ |
| | | tmsDispatchOrder.setStatus(3); |
| | | tmsDispatchOrder.setOkTime(DateUtils.getNowDate()); |
| | | tmsDispatchOrder.setUpdateBy(SecurityUtils.getUsername()); |
| | | } |
| | | } |
| | | if (tmsTrip.getTripType() == 5){ |
| | | tmsDispatchOrder.setIscc(tmsTrip.getIscc()); |
| | | } |
| | | if (tmsTrip.getTripType() == 100){ |
| | | tmsDispatchOrder.setIsfk(0); |
| | | } |
| | | |
| | | |
| | | tmsDispatchOrder.setStatus(2); |
| | | tmsDispatchOrderMapper.updateTmsDispatchOrder(tmsDispatchOrder); |
| | | tmsTrip.setDriverName(tmsDispatchOrder.getMainDriverName()); |
| | | tmsTrip.setVehicleId(tmsDispatchOrder.getVehicleId()); |