Pu Zhibing
2025-04-04 3d4eeb82dd61f8951616dece2425e870116bc23d
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?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.system.mapper.WarnMapper">
    
    
    <select id="getCarWarnList" resultType="com.ruoyi.system.query.CarWarnListResp">
        select b.vehicle_name as carName,
        b.vehicle_number as vehicleNumber,
        a.keep_warn as keepWarn,
        c.`name` as driverName,
        d.`name` as enterpriseName,
        a.terminal_number as terminalNumber,
        a.start_time as startTime,
        a.end_time as endTime,
        a.keep_time as keepTime,
        a.keep_distance as keepDistance,
        a.warn_type as warnType,
        a.warn_number as warnNumber,
        a.treatment_state as treatmentState,
        a.treatment_user as treatmentUser,
        a.treatment_time as treatmentTime,
        a.treatment_remark as treatmentRemark
        from t_warn a
        left join t_car b on (a.car_id = b.id)
        left join t_driver c on (a.driver_id = c.id)
        left join t_enterprise d on (a.enterprise_id = d.id)
        <where>
            <if test="null != item.warnType and '' != item.warnType">
                and a.warn_type = #{item.warnType}
            </if>
            <if test="null != item.vehicleNumber and '' != item.vehicleNumber">
                and b.vehicle_number like CONCAT('%', #{item.vehicleNumber}, '%')
            </if>
            <if test="null != item.driverName and '' != item.driverName">
                and c.`name` like CONCAT('%', #{item.driverName}, '%')
            </if>
            <if test="null != item.enterpriseName and '' != item.enterpriseName">
                and d.`name` like CONCAT('%', #{item.enterpriseName}, '%')
            </if>
            <if test="null != item.startTime and '' != item.startTime">
                and a.start_time >= #{item.startTime}
            </if>
            <if test="null != item.endTime and '' != item.endTime">
                and a.end_time &lt;= #{item.endTime}
            </if>
            <if test="null != item.treatmentState and '' != item.treatmentState">
                and a.treatment_state = #{item.treatmentState}
            </if>
        </where>
        order by a.create_time desc
    </select>
    
    
    <select id="getWarnGroup10Count" resultType="map">
        select aa.warn_type as warnType, aa.num
        from (select COUNT(1) as num, warn_type from t_warn group by warn_type) as aa
        order by aa.num desc limit 10
    </select>
    
    
    <select id="getWarnGroupCount" resultType="map">
        select COUNT(1) as num, "其他" as warnType from t_warn where warn_type not in
        <foreach collection="collect" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
    </select>
    
    
    <select id="getWarnGroupCountTop10" resultType="map">
        select *
        from (select COUNT(1) as num, b.`name`
              from t_warn a
                       left join t_enterprise b on (a.enterprise_id = b.id)
              group by a.enterprise_id) as aa
        order by aa.num desc limit 10
    </select>
</mapper>