hsy
2026-08-28 cd2ed591a01abcaef8dac4cc5ad3b398abacbaef
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?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.vehicle.mapper.VehicleInfoMapper">
    <select id="selectVehiclePage" resultType="com.ruoyi.vehicle.pojo.VehicleInfo">
        SELECT v.*, d.dept_name as deptName, u.nick_name as userName
        FROM p_vehicle_info v
        LEFT JOIN sys_dept d ON v.dept_id = d.dept_id
        LEFT JOIN sys_user u ON v.user_id = u.user_id
        WHERE v.del_flag = '0'
        <if test="query.plateNumber != null and query.plateNumber != ''">
            AND v.plate_number LIKE concat('%', #{query.plateNumber}, '%')
        </if>
        <if test="query.deptId != null">
            AND (v.dept_id = #{query.deptId} OR v.dept_id IN (SELECT t.dept_id FROM sys_dept t WHERE FIND_IN_SET (#{query.deptId}, ancestors)))
        </if>
        <if test="query.vehicleStatus != null and query.vehicleStatus != ''">
            AND v.vehicle_status = #{query.vehicleStatus}
        </if>
        ORDER BY 
        CASE WHEN 
            (v.inspection_expire_date IS NOT NULL AND DATEDIFF(v.inspection_expire_date, NOW()) &lt;= 30) 
            OR 
            (v.insurance_expire_date IS NOT NULL AND DATEDIFF(v.insurance_expire_date, NOW()) &lt;= 30) 
        THEN 0 ELSE 1 END,
        v.create_time DESC
    </select>
</mapper>