peng
2026-03-25 2e5c2bc2b7afc7926ec441ff083acd179cb29fc6
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
<?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.tievd.jyz.mapper.PatrolRecordMapper">
 
    <select
            id="listRecord"
            resultType="com.tievd.jyz.entity.vo.PatrolRecordVo">
        select r.*,
        concat(aiCount, '/', total) aiNum,
        concat(auditCount, '/', total) auditNum,
        if(unaudit>0, 0, if(auditCount=total, 1, 2)) auditResult,
        e.score,
        e.auditUser,
        e.auditTime
        from t_patrol_record r
        left join (
            select record_id, count(if(event_type=1, 1, null)) aiCount,
            count(if(audit_result=1, 1, null)) auditCount,
            count(if(audit_result=0, 1, null)) unaudit,
            count(id) total, sum(if(audit_result=1, 1, 0)*score) score,
            audit_user auditUser,
            audit_time auditTime
            from t_patrol_event GROUP BY record_id
        ) e
        on r.id = e.record_id
        where r.end_time is not null
        <if test="record.startTime != null">and r.start_time >= #{record.startTime}</if>
        <if test="record.endTime != null">and r.end_time &lt; #{record.endTime}</if>
        <if test="record.auditResult == 1">and e.auditCount = total</if>
        <if test="record.auditResult == 2">and e.auditCount != total</if>
    </select>
</mapper>