mitao
2025-02-21 31573d6180d15ef65ed0df9c2732495f40b12663
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
78
79
80
81
82
83
<?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.panzhihua.service_community.dao.ComSwSafetyWorkRecordDAO">
 
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComSwSafetyWorkRecordDO">
        <id column="id" property="id" />
        <result column="remark" property="remark" />
        <result column="create_at" property="createAt" />
        <result column="create_by" property="createBy" />
        <result column="update_at" property="updateAt" />
        <result column="update_by" property="updateBy" />
    </resultMap>
 
    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
    id, remark, create_at, create_by, update_at, update_by
    </sql>
 
    <select id="pageSafetyWorkRecord" resultType="com.panzhihua.common.model.vos.community.ComSwSafetyWorkRecordVO">
        SELECT
        csswr.id,
        cspr.community_id AS communityId,
        cspr.patrol_time AS patrolTime,
        cspr.patrol_type AS patrolType,
        cspr.patrol_person AS patrolPerson,
        cspr.address,
        cspr.record_content AS recordContent,
        cspr.find_record AS findRecord,
        cspr.record_photo AS recordPhoto,
        csswr.remark,
        cspr.create_at AS createAt,
        cspr.create_by AS createBy,
        t.name as communityName
        FROM
        com_sw_safety_work_record as csswr
        left join com_sw_patrol_record_report as csprr on csprr.report_id = csswr.id
        left join com_sw_patrol_record as cspr on csprr.patrol_record_id = cspr.id
        left join com_act t on cspr.community_id = t.community_id
        <where>
            <if test='comSwPatrolRecordDTO.communityId != null and comSwPatrolRecordDTO.communityId != 0'>
                AND cspr.community_id = ${comSwPatrolRecordDTO.communityId}
            </if>
            <if test='comSwPatrolRecordDTO.areaCode != null'>
                AND t.area_code = #{comSwPatrolRecordDTO.areaCode}
            </if>
            <if test='comSwPatrolRecordDTO.patrolPerson != null and comSwPatrolRecordDTO.patrolPerson != ""'>
                AND cspr.person_name LIKE concat('%',#{comSwPatrolRecordDTO.patrolPerson},'%')
            </if>
            <if test='comSwPatrolRecordDTO.patrolType != null and comSwPatrolRecordDTO.patrolType != ""'>
                AND cspr.patrol_type LIKE concat('%',#{comSwPatrolRecordDTO.patrolType},'%')
            </if>
            <if test='comSwPatrolRecordDTO.patrolAtBegin != null and comSwPatrolRecordDTO.patrolAtBegin != ""'>
                AND cspr.patrol_time <![CDATA[ >= ]]> #{comSwPatrolRecordDTO.patrolAtBegin}
            </if>
            <if test='comSwPatrolRecordDTO.patrolAtEnd != null and comSwPatrolRecordDTO.patrolAtEnd != ""'>
                AND cspr.patrol_time <![CDATA[ <= ]]> #{comSwPatrolRecordDTO.patrolAtEnd}
            </if>
        </where>
        order by csswr.create_at desc
    </select>
 
    <select id="patrolRecordStatistics" resultType="com.panzhihua.common.model.vos.community.ComSwPatrolRecordStatisticsVO">
        select count(id) as patrolRecordTotal
             ,(select count(id) from com_sw_patrol_record where community_id = ${communityId} and patrol_type LIKE concat('%','1','%')) as huoTotal
             ,(select count(id) from com_sw_patrol_record where community_id = ${communityId} and patrol_type LIKE concat('%','2','%')) as xunTotal
             ,(select count(id) from com_sw_patrol_record where community_id = ${communityId} and patrol_type LIKE concat('%','3','%')) as yiTotal
             ,(select count(t2.id) from com_sw_patrol_record t INNER JOIN com_sw_patrol_record_report t1  on t.id = t1.patrol_record_id INNER JOIN com_sw_safety_work_record t2 on t1.report_id = t2.id where t.community_id = ${communityId}) as safetyWorkTotal
             ,(select count(t2.id) from com_sw_patrol_record t INNER JOIN com_sw_patrol_record_report t1  on t.id = t1.patrol_record_id INNER JOIN com_sw_danger_report t2 on t1.report_id = t2.id where t.community_id = ${communityId}) as dangerTotal
             ,(select count(t2.id) from com_sw_patrol_record t INNER JOIN com_sw_patrol_record_report t1  on t.id = t1.patrol_record_id INNER JOIN com_sw_danger_report t2 on t1.report_id = t2.id where t.community_id = ${communityId} and status = '3') as handledDangerTotal
             ,(select count(t2.id) from com_sw_patrol_record t INNER JOIN com_sw_patrol_record_report t1  on t.id = t1.patrol_record_id INNER JOIN com_sw_danger_report t2 on t1.report_id = t2.id where t.community_id = ${communityId} and danger_type like CONCAT('%','1','%')) as huoDangerTotal
             ,(select count(t2.id) from com_sw_patrol_record t INNER JOIN com_sw_patrol_record_report t1  on t.id = t1.patrol_record_id INNER JOIN com_sw_danger_report t2 on t1.report_id = t2.id where t.community_id = ${communityId} and danger_type like CONCAT('%','2','%')) as xunDangerTotal
             ,(select count(t2.id) from com_sw_patrol_record t INNER JOIN com_sw_patrol_record_report t1  on t.id = t1.patrol_record_id INNER JOIN com_sw_danger_report t2 on t1.report_id = t2.id where t.community_id = ${communityId} and danger_type like CONCAT('%','3','%')) as yiDangerTotal
             ,(select count(t2.id) from com_sw_patrol_record t INNER JOIN com_sw_patrol_record_report t1  on t.id = t1.patrol_record_id INNER JOIN com_sw_danger_report t2 on t1.report_id = t2.id where t.community_id = ${communityId} and danger_type like CONCAT('%','1','%') and status = '3' ) as huoHandledDangerTotal
             ,(select count(t2.id) from com_sw_patrol_record t INNER JOIN com_sw_patrol_record_report t1  on t.id = t1.patrol_record_id INNER JOIN com_sw_danger_report t2 on t1.report_id = t2.id where t.community_id = ${communityId} and danger_type like CONCAT('%','1','%') and status in ('1','2')) as huoHandlingDangerTotal
             ,(select count(t2.id) from com_sw_patrol_record t INNER JOIN com_sw_patrol_record_report t1  on t.id = t1.patrol_record_id INNER JOIN com_sw_danger_report t2 on t1.report_id = t2.id where t.community_id = ${communityId} and danger_type like CONCAT('%','2','%') and status = '3' ) as xunHandledDangerTotal
             ,(select count(t2.id) from com_sw_patrol_record t INNER JOIN com_sw_patrol_record_report t1  on t.id = t1.patrol_record_id INNER JOIN com_sw_danger_report t2 on t1.report_id = t2.id where t.community_id = ${communityId} and danger_type like CONCAT('%','2','%') and status in ('1','2')) as xunHandlingDangerTotal
             ,(select count(t2.id) from com_sw_patrol_record t INNER JOIN com_sw_patrol_record_report t1  on t.id = t1.patrol_record_id INNER JOIN com_sw_danger_report t2 on t1.report_id = t2.id where t.community_id = ${communityId} and danger_type like CONCAT('%','3','%') and status = '3' ) as yiHandledDangerTotal
             ,(select count(t2.id) from com_sw_patrol_record t INNER JOIN com_sw_patrol_record_report t1  on t.id = t1.patrol_record_id INNER JOIN com_sw_danger_report t2 on t1.report_id = t2.id where t.community_id = ${communityId} and danger_type like CONCAT('%','3','%') and status in ('1','2')) as yiHandlingDangerTotal
        from com_sw_patrol_record as cmp where community_id = ${communityId}
    </select>
 
</mapper>