|
|
@@ -12,6 +12,7 @@ import com.sckw.core.common.enums.enums.DictEnum;
|
|
|
import com.sckw.core.common.enums.enums.DictTypeEnum;
|
|
|
import com.sckw.core.common.enums.enums.ErrorCodeEnum;
|
|
|
import com.sckw.core.common.enums.enums.FileEnum;
|
|
|
+import com.sckw.core.exception.BusinessException;
|
|
|
import com.sckw.core.exception.BusinessPlatfromException;
|
|
|
import com.sckw.core.exception.SystemException;
|
|
|
import com.sckw.core.model.base.BaseModel;
|
|
|
@@ -30,6 +31,8 @@ import com.sckw.fleet.model.*;
|
|
|
import com.sckw.fleet.model.dto.*;
|
|
|
import com.sckw.fleet.model.request.AssociatedTrackAddRequest;
|
|
|
import com.sckw.fleet.model.request.AssociatedTrackRequest;
|
|
|
+import com.sckw.fleet.model.request.DriverAssociatedTruckSaveRequest;
|
|
|
+import com.sckw.fleet.model.request.TruckSaveParam;
|
|
|
import com.sckw.fleet.model.vo.*;
|
|
|
import com.sckw.fleet.repository.*;
|
|
|
import com.sckw.redis.constant.RedisConstant;
|
|
|
@@ -368,6 +371,71 @@ public class KwfDriverService {
|
|
|
return truck;
|
|
|
}
|
|
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void saveTruckAndAssociate(DriverAssociatedTruckSaveRequest request) {
|
|
|
+ log.info("开始新增车辆档案并关联司机,request={}", JSON.toJSONString(request));
|
|
|
+
|
|
|
+ Long entId = LoginUserHolder.getEntId();
|
|
|
+ if (entId == null) {
|
|
|
+ log.error("新增车辆档案失败:企业id不能为空");
|
|
|
+ throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "企业id不能为空");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 构建车辆保存参数
|
|
|
+ TruckSaveParam truckSaveParam = new TruckSaveParam();
|
|
|
+ truckSaveParam.setTruckNo(request.getTruckNo());
|
|
|
+ truckSaveParam.setType(request.getType());
|
|
|
+ truckSaveParam.setCarAxis(String.valueOf(request.getTruckAxleId()));
|
|
|
+ truckSaveParam.setEnergyType(request.getEnergyType());
|
|
|
+ truckSaveParam.setEev(request.getEev());
|
|
|
+ truckSaveParam.setEngineNo(request.getEngineNo());
|
|
|
+ truckSaveParam.setTruckLicense(request.getTruckLicense());
|
|
|
+ truckSaveParam.setTransportLicense(request.getTransportLicense());
|
|
|
+ truckSaveParam.setEnvironmentalList(request.getEnvironmentalList());
|
|
|
+ truckSaveParam.setFleetId(request.getFleetId());
|
|
|
+ truckSaveParam.setVin(request.getVin());
|
|
|
+ truckSaveParam.setBrand(request.getBrand());
|
|
|
+ truckSaveParam.setPositionDevice(request.getPositionDevice());
|
|
|
+
|
|
|
+ log.info("调用truckService.saveTruck保存车辆档案,truckNo={}", request.getTruckNo());
|
|
|
+ try {
|
|
|
+ truckService.saveTruck(truckSaveParam);
|
|
|
+ log.info("车辆档案保存成功,truckNo={}", request.getTruckNo());
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("车辆档案保存异常,truckNo={}", request.getTruckNo(), e);
|
|
|
+ throw new BusinessException("车辆档案保存异常");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 查询刚保存的车辆信息
|
|
|
+ log.info("查询刚保存的车辆信息,truckNo={}", request.getTruckNo());
|
|
|
+ KwfTruck truck = truckRepository.getOne(Wrappers.<KwfTruck>lambdaQuery()
|
|
|
+ .eq(KwfTruck::getTruckNo, request.getTruckNo())
|
|
|
+ .last("limit 1"));
|
|
|
+
|
|
|
+ if (truck == null) {
|
|
|
+ log.error("车辆档案保存后查询失败,truckNo={}", request.getTruckNo());
|
|
|
+ throw new BusinessPlatfromException(ErrorCodeEnum.TRUCK_NOT_FOUND, "车辆档案保存失败");
|
|
|
+ }
|
|
|
+ log.info("查询车辆信息成功,truckId={}, truckNo={}", truck.getId(), truck.getTruckNo());
|
|
|
+
|
|
|
+ // 构建关联请求并执行关联
|
|
|
+ AssociatedTrackAddRequest associatedTrackAddRequest = new AssociatedTrackAddRequest();
|
|
|
+ associatedTrackAddRequest.setEntId(entId);
|
|
|
+ associatedTrackAddRequest.setDriverId(request.getDriverId());
|
|
|
+ associatedTrackAddRequest.setTruckNo(truck.getTruckNo());
|
|
|
+ associatedTrackAddRequest.setTruckAxleId(request.getTruckAxleId());
|
|
|
+
|
|
|
+ log.info("开始关联司机与车辆,driverId={}, truckNo={}", request.getDriverId(), truck.getTruckNo());
|
|
|
+ try {
|
|
|
+ addAssociatedTrack(associatedTrackAddRequest);
|
|
|
+ log.info("司机与车辆关联成功,driverId={}, truckNo={}", request.getDriverId(), truck.getTruckNo());
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("司机与车辆关联异常,driverId={}, truckNo={}", request.getDriverId(), truck.getTruckNo(), e);
|
|
|
+ throw new BusinessException( "司机与车辆关联异常");
|
|
|
+ }
|
|
|
+
|
|
|
+ log.info("新增车辆档案并关联司机流程结束");
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 查询司机的当天完成量、7天完成量、30天完成量
|