package com.ruoyi.approve.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.approve.mapper.CarInfoRecordMapper; import com.ruoyi.approve.pojo.CarInfo; import com.ruoyi.approve.mapper.CarInfoMapper; import com.ruoyi.approve.pojo.CarInfoRecord; import com.ruoyi.approve.service.CarInfoService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.framework.web.domain.AjaxResult; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** *

* 车俩管理 服务实现类 *

* * @author 芯导软件(江苏)有限公司 * @since 2026-01-21 03:00:32 */ @Service @Slf4j public class CarInfoServiceImpl extends ServiceImpl implements CarInfoService { @Autowired private CarInfoMapper carInfoMapper; @Autowired private CarInfoRecordMapper carInfoRecordMapper; /** * 改变车辆使用状态 * @param id */ public void updateUsageStatus(Long id, String usageStatus) { CarInfo carInfo = carInfoMapper.selectOne(new LambdaQueryWrapper() .eq(CarInfo::getId, id) .last("limit 1")); if(carInfo == null) throw new RuntimeException("车辆不存在"); if("使用中".equals(usageStatus) && "使用中".equals(carInfo.getUsageStatus())) throw new RuntimeException("车辆已使用中"); carInfo.setUsageStatus(usageStatus); carInfoMapper.updateById(carInfo); } @Override public IPage listPage(Page page, CarInfo carInfo) { LambdaQueryWrapper carInfoLambdaQueryWrapper = new LambdaQueryWrapper<>(); if(carInfo != null){ if(StringUtils.isNotEmpty(carInfo.getCarNo())){ carInfoLambdaQueryWrapper.like(CarInfo::getCarNo,carInfo.getCarNo()); } if(StringUtils.isNotEmpty(carInfo.getBrand())){ carInfoLambdaQueryWrapper.like(CarInfo::getBrand,carInfo.getBrand()); } if(StringUtils.isNotEmpty(carInfo.getColor())){ carInfoLambdaQueryWrapper.like(CarInfo::getColor,carInfo.getColor()); } if(StringUtils.isNotEmpty(carInfo.getUsageStatus())){ carInfoLambdaQueryWrapper.like(CarInfo::getUsageStatus,carInfo.getUsageStatus()); } } carInfoLambdaQueryWrapper.orderByDesc(CarInfo::getCreateTime); Page page1 = carInfoMapper.selectPage(page, carInfoLambdaQueryWrapper); for (CarInfo record : page1.getRecords()) { // 当前使用人,表显里程 CarInfoRecord carInfoRecord = carInfoRecordMapper.selectOne(new LambdaQueryWrapper() .eq(CarInfoRecord::getCarInfoId, record.getId()) .orderByDesc(CarInfoRecord::getCreateTime) .last("limit 1")); if(carInfoRecord != null){ record.setCarInfoRecordId(carInfoRecord.getId()); record.setOdometerMileage(carInfoRecord.getOdometerMileage()); if("使用中".equals(record.getUsageStatus())){ record.setCurrentUserName(carInfoRecord.getUserName()); } } } return page1; } }