liyong
2026-04-16 ddec37fc9252011775ef16b9e7282a24688231ae
feat(approve): 添加车辆管理系统功能

- 新增 CarInfo 实体类用于车辆基本信息管理
- 创建 CarInfoController 提供车辆管理的增删改查接口
- 实现 CarInfoService 和 CarInfoServiceImpl 处理车辆业务逻辑
- 设计 CarInfoRecord 实体类用于车辆使用记录管理
- 开发 CarInfoRecordController 提供用车和还车操作接口
- 实现 CarInfoRecordService 和 CarInfoRecordServiceImpl 管理车辆使用记录
- 配置 MyBatis Mapper 接口和 XML 映射文件支持数据库操作
- 实现车辆使用状态的自动更新功能
- 添加分页查询和条件筛选功能
已添加12个文件
543 ■■■■■ 文件已修改
src/main/java/com/ruoyi/approve/controller/CarInfoController.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/approve/controller/CarInfoRecordController.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/approve/mapper/CarInfoMapper.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/approve/mapper/CarInfoRecordMapper.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/approve/pojo/CarInfo.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/approve/pojo/CarInfoRecord.java 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/approve/service/CarInfoRecordService.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/approve/service/CarInfoService.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/approve/service/impl/CarInfoRecordServiceImpl.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/approve/service/impl/CarInfoServiceImpl.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/approve/CarInfoMapper.xml 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/approve/CarInfoRecordMapper.xml 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/approve/controller/CarInfoController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,75 @@
package com.ruoyi.approve.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.approve.pojo.CarInfo;
import com.ruoyi.approve.pojo.CarInfoRecord;
import com.ruoyi.approve.service.CarInfoRecordService;
import com.ruoyi.approve.service.CarInfoService;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * <p>
 * è½¦ä¿©ç®¡ç† å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2026-01-21 03:00:32
 */
@RestController
@RequestMapping("/carInfo")
@Api(tags = "车俩管理")
public class CarInfoController {
    @Autowired
    private CarInfoService carInfoService;
    @Autowired
    private CarInfoRecordService carInfoRecordService;
    @ApiOperation("分页查询车俩管理")
    @GetMapping("/listPage")
    public AjaxResult listPage(Page page, CarInfo carInfo) {
        return AjaxResult.success(carInfoService.listPage(page,carInfo));
    }
    @ApiOperation("新增车俩管理")
    @PostMapping("/add")
    @Log(title = "车俩管理", businessType = BusinessType.INSERT)
    @Transactional(rollbackFor = Exception.class)
    public AjaxResult add(@RequestBody CarInfo carInfo) {
        return carInfoService.save(carInfo) ? AjaxResult.success("新增成功") : AjaxResult.error("新增失败");
    }
    @ApiOperation("修改车俩管理")
    @PostMapping("/update")
    @Log(title = "车俩管理", businessType = BusinessType.UPDATE)
    @Transactional(rollbackFor = Exception.class)
    public AjaxResult update(@RequestBody CarInfo carInfo) {
        return carInfoService.updateById(carInfo) ? AjaxResult.success("修改成功") : AjaxResult.error("修改失败");
    }
    @ApiOperation("删除车俩管理")
    @DeleteMapping("/delete")
    @Log(title = "车俩管理", businessType = BusinessType.DELETE)
    @Transactional(rollbackFor = Exception.class)
    public AjaxResult delete(@RequestBody List<Long> ids) {
        if(CollectionUtils.isEmpty(ids)) return AjaxResult.error("请选择至少一条数据");
        carInfoService.removeByIds(ids);
        carInfoRecordService.remove(new LambdaQueryWrapper<CarInfoRecord>().in(CarInfoRecord::getCarInfoId,ids));
        return AjaxResult.success("删除成功");
    }
}
src/main/java/com/ruoyi/approve/controller/CarInfoRecordController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,71 @@
package com.ruoyi.approve.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.approve.pojo.CarInfoRecord;
import com.ruoyi.approve.service.CarInfoRecordService;
import com.ruoyi.approve.service.impl.CarInfoServiceImpl;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * <p>
 * è½¦è¾†ç®¡ç†å­è¡¨ï¼ˆè¿˜è½¦è¡¨ï¼‰ å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2026-01-21 03:01:21
 */
@RestController
@RequestMapping("/carInfoRecord")
@Api(tags = "车辆管理子表(还车表)")
public class CarInfoRecordController {
    @Autowired
    private CarInfoRecordService carInfoRecordService;
    @Autowired
    private CarInfoServiceImpl carInfoService;
    @GetMapping("/list")
    @ApiOperation("查询")
    public AjaxResult list(Page page, CarInfoRecord carInfoRecord) {
        return carInfoRecordService.getList(page,carInfoRecord);
    }
    @PostMapping("/add")
    @ApiOperation("用车")
    @Log(title = "车辆管理子表(还车表)", businessType = BusinessType.INSERT)
    @Transactional(rollbackFor = Exception.class)
    public AjaxResult add(@RequestBody CarInfoRecord carInfoRecord) {
        carInfoService.updateUsageStatus(carInfoRecord.getCarInfoId(),"使用中");
        return AjaxResult.success(carInfoRecordService.save(carInfoRecord));
    }
    @PostMapping("/update")
    @ApiOperation("修改")
    @Log(title = "车辆管理子表(还车表)", businessType = BusinessType.UPDATE)
    public AjaxResult update(@RequestBody CarInfoRecord carInfoRecord) {
        if(StringUtils.isNotEmpty(carInfoRecord.getUsageStatus())){
            carInfoService.updateUsageStatus(carInfoRecord.getCarInfoId(),"空闲");
        }
        return AjaxResult.success(carInfoRecordService.updateById(carInfoRecord));
    }
    @DeleteMapping("/delete")
    @ApiOperation("删除")
    @Log(title = "车辆管理子表(还车表)", businessType = BusinessType.DELETE)
    public AjaxResult delete(@RequestBody List<Long> ids) {
        return AjaxResult.success(carInfoRecordService.removeBatchByIds(ids));
    }
}
src/main/java/com/ruoyi/approve/mapper/CarInfoMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package com.ruoyi.approve.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.approve.pojo.CarInfo;
import org.apache.ibatis.annotations.Mapper;
/**
 * <p>
 * è½¦ä¿©ç®¡ç† Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2026-01-21 03:00:32
 */
@Mapper
public interface CarInfoMapper extends BaseMapper<CarInfo> {
}
src/main/java/com/ruoyi/approve/mapper/CarInfoRecordMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package com.ruoyi.approve.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.approve.pojo.CarInfoRecord;
import org.apache.ibatis.annotations.Mapper;
/**
 * <p>
 * è½¦è¾†ç®¡ç†å­è¡¨ï¼ˆè¿˜è½¦è¡¨ï¼‰ Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2026-01-21 03:01:21
 */
@Mapper
public interface CarInfoRecordMapper extends BaseMapper<CarInfoRecord> {
}
src/main/java/com/ruoyi/approve/pojo/CarInfo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,75 @@
package com.ruoyi.approve.pojo;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * <p>
 * è½¦ä¿©ç®¡ç†
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2026-01-21 03:00:32
 */
@Getter
@Setter
@TableName("car_info")
@ApiModel(value = "CarInfo对象", description = "车俩管理")
public class CarInfo implements Serializable {
    @TableField(exist = false)
    @ApiModelProperty("当前使用人")
    private String currentUserName;
    @TableField(exist = false)
    @ApiModelProperty("车辆管理子表(还车表)id")
    private Long carInfoRecordId;
    @TableField(exist = false)
    @ApiModelProperty("表显里程")
    private String odometerMileage;
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @ApiModelProperty("车牌号")
    private String carNo;
    @ApiModelProperty("颜色")
    private String color;
    @ApiModelProperty("品牌")
    private String brand;
    @ApiModelProperty("使用状态")
    private String usageStatus;
    @ApiModelProperty("备注")
    private String remark;
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createTime;
    @ApiModelProperty("创建人")
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    @ApiModelProperty("修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    @ApiModelProperty("修改人")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
}
src/main/java/com/ruoyi/approve/pojo/CarInfoRecord.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,82 @@
package com.ruoyi.approve.pojo;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
 * <p>
 * è½¦è¾†ç®¡ç†å­è¡¨ï¼ˆè¿˜è½¦è¡¨ï¼‰
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2026-01-21 03:01:21
 */
@Getter
@Setter
@TableName("car_info_record")
@ApiModel(value = "CarInfoRecord对象", description = "车辆管理子表(还车表)")
public class CarInfoRecord implements Serializable {
    @ApiModelProperty("使用状态")
    @TableField(exist = false)
    private String usageStatus;
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @ApiModelProperty("车辆管理id")
    private Long carInfoId;
    @ApiModelProperty("表现里程")
    private String odometerMileage;
    @ApiModelProperty("本次预计行驶里程")
    private String thisTripMileage;
    @ApiModelProperty("目的地")
    private String destination;
    @ApiModelProperty("还车日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate carReturnDate;
    @ApiModelProperty("借车日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate carRentalDate;
    @ApiModelProperty("使用人")
    private String userName;
    @ApiModelProperty("备注")
    private String remark;
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
    @ApiModelProperty("创建人")
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    @ApiModelProperty("修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    @ApiModelProperty("修改人")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
}
src/main/java/com/ruoyi/approve/service/CarInfoRecordService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
package com.ruoyi.approve.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.approve.pojo.CarInfoRecord;
import com.ruoyi.framework.web.domain.AjaxResult;
/**
 * <p>
 * è½¦è¾†ç®¡ç†å­è¡¨ï¼ˆè¿˜è½¦è¡¨ï¼‰ æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2026-01-21 03:01:21
 */
public interface CarInfoRecordService extends IService<CarInfoRecord> {
    AjaxResult getList(Page page,CarInfoRecord carInfoRecord);
}
src/main/java/com/ruoyi/approve/service/CarInfoService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
package com.ruoyi.approve.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.approve.pojo.CarInfo;
/**
 * <p>
 * è½¦ä¿©ç®¡ç† æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2026-01-21 03:00:32
 */
public interface CarInfoService extends IService<CarInfo> {
    IPage<CarInfo> listPage(Page page, CarInfo carInfo);
}
src/main/java/com/ruoyi/approve/service/impl/CarInfoRecordServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,38 @@
package com.ruoyi.approve.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.approve.mapper.CarInfoRecordMapper;
import com.ruoyi.approve.pojo.CarInfoRecord;
import com.ruoyi.approve.service.CarInfoRecordService;
import com.ruoyi.framework.web.domain.AjaxResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
 * <p>
 * è½¦è¾†ç®¡ç†å­è¡¨ï¼ˆè¿˜è½¦è¡¨ï¼‰ æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2026-01-21 03:01:21
 */
@Service
public class CarInfoRecordServiceImpl extends ServiceImpl<CarInfoRecordMapper, CarInfoRecord> implements CarInfoRecordService {
    @Autowired
    private CarInfoRecordMapper carInfoRecordMapper;
    @Override
    public AjaxResult getList(Page page,CarInfoRecord carInfoRecord) {
        LambdaQueryWrapper<CarInfoRecord> carInfoRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
        if(carInfoRecord != null){
            if(carInfoRecord.getCarInfoId() != null){
                carInfoRecordLambdaQueryWrapper.eq(CarInfoRecord::getCarInfoId, carInfoRecord.getCarInfoId());
            }
        }
        carInfoRecordLambdaQueryWrapper.orderByDesc(CarInfoRecord::getCreateTime);
        return AjaxResult.success(carInfoRecordMapper.selectPage(page,carInfoRecordLambdaQueryWrapper));
    }
}
src/main/java/com/ruoyi/approve/service/impl/CarInfoServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,85 @@
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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.approve.mapper.CarInfoMapper;
import com.ruoyi.approve.mapper.CarInfoRecordMapper;
import com.ruoyi.approve.pojo.CarInfo;
import com.ruoyi.approve.pojo.CarInfoRecord;
import com.ruoyi.approve.service.CarInfoService;
import com.ruoyi.common.utils.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
 * <p>
 * è½¦ä¿©ç®¡ç† æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2026-01-21 03:00:32
 */
@Service
@Slf4j
public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> 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<CarInfo>()
                .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<CarInfo> listPage(Page page, CarInfo carInfo) {
        LambdaQueryWrapper<CarInfo> 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<CarInfo> page1 = carInfoMapper.selectPage(page, carInfoLambdaQueryWrapper);
        for (CarInfo record : page1.getRecords()) {
            // å½“前使用人,表显里程
            CarInfoRecord carInfoRecord = carInfoRecordMapper.selectOne(new LambdaQueryWrapper<CarInfoRecord>()
                    .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;
    }
}
src/main/resources/mapper/approve/CarInfoMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.approve.mapper.CarInfoMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.ruoyi.approve.pojo.CarInfo">
        <id column="id" property="id" />
        <result column="car_no" property="carNo" />
        <result column="color" property="color" />
        <result column="status" property="status" />
        <result column="brand" property="brand" />
        <result column="usage_status" property="usageStatus" />
        <result column="borrowing_date" property="borrowingDate" />
        <result column="desc" property="desc" />
        <result column="odometer_mileage" property="odometerMileage" />
        <result column="this_trip_mileage" property="thisTripMileage" />
        <result column="remark" property="remark" />
        <result column="create_time" property="createTime" />
        <result column="create_user" property="createUser" />
        <result column="update_time" property="updateTime" />
        <result column="update_user" property="updateUser" />
    </resultMap>
</mapper>
src/main/resources/mapper/approve/CarInfoRecordMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.approve.mapper.CarInfoRecordMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.ruoyi.approve.pojo.CarInfoRecord">
        <id column="id" property="id" />
        <result column="car_info_id" property="carInfoId" />
        <result column="odometer_mileage" property="odometerMileage" />
        <result column="car_return_date" property="carReturnDate" />
        <result column="user_name" property="userName" />
        <result column="remark" property="remark" />
        <result column="create_time" property="createTime" />
        <result column="create_user" property="createUser" />
        <result column="update_time" property="updateTime" />
        <result column="update_user" property="updateUser" />
    </resultMap>
</mapper>