guoshilong
2023-05-18 6cd2da8eb7d7aefecd96a19ebbfe9caba59ea88c
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<?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="cn.gistack.sm.patrol.mapper.PatrolGroupMapper">
 
    <select id="getPatrolGroupByProjectId" resultType="cn.gistack.sm.patrol.entity.PatrolGroup">
        SELECT g.id,g.name
        FROM sm_patrol_group g
        WHERE g.is_deleted = 0
        AND g.project_id = #{projectId}
    </select>
 
    <!--查询巡查项树数据-->
<!--    <select id="getPatrolGroupTree" resultType="cn.gistack.common.node.TreeNode" >-->
<!--        (-->
<!--        SELECT-->
<!--        spg.id,-->
<!--        spg.name,-->
<!--        0 as parentId,-->
<!--        (-->
<!--            SELECT-->
<!--                CASE WHEN count(1) > 0 THEN 1 ELSE 0 END-->
<!--            FROM-->
<!--                sm_patrol_group_item-->
<!--            WHERE-->
<!--                group_id = spg.id and is_deleted = 0-->
<!--        ) AS "has_children"-->
<!--        FROM sm_patrol_group spg where spg.is_deleted = 0-->
<!--        )-->
<!--        union all-->
<!--        (-->
<!--        SELECT-->
<!--        spgi.id,-->
<!--        spgi.items_name as name,-->
<!--        spgi.group_id as parentId,-->
<!--        false AS hasChildren-->
<!--        FROM sm_patrol_group_item spgi where spgi.is_deleted = 0-->
<!--        )-->
<!--    </select>-->
 
 
    <!--查询巡查项树数据-->
    <select id="getPatrolGroupTree" resultType="cn.gistack.common.node.TreeNode" >
        SELECT
        spg.id,
        spg.name,
        0 as parentId,
        (
            SELECT
                CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
            FROM
                sm_patrol_group_item
            WHERE
                group_id = spg.id and is_deleted = 0
        ) AS "has_children"
        FROM sm_patrol_group spg where spg.is_deleted = 0
    </select>
 
    <!--查询巡查项树数据-->
    <select id="getPatrolGroupItemTree" resultType="cn.gistack.common.node.TreeNode" >
        SELECT
            spgi.id,
            spgi.items_name as name,
            spgi.group_id as parentId,
            false AS hasChildren
        FROM sm_patrol_group_item spgi where spgi.is_deleted = 0
    </select>
    <select id="getPatrolGroupByItemId" resultType="cn.gistack.sm.patrol.entity.PatrolGroup">
        SELECT distinct b.ID,b.NAME FROM
        (
            SELECT ID,GROUP_ID FROM SM_PATROL_GROUP_ITEM WHERE ID IN
            <foreach collection="itemIds.split(',')" item="item" index="index" open="(" separator="," close=")">
                #{item}
            </foreach>
        ) a ,SM_PATROL_GROUP b
        WHERE b.is_deleted = 0 AND a.group_id = b.id
    </select>
    <select id="getAllPatrolGroupByTaskId" resultType="cn.gistack.sm.patrol.vo.PatrolGroupVO">
        SELECT G.*,IF(C.GROUP_ID,1,2) isSelect,IFNULL(C.problemCount,0) problemCount  FROM SM_PATROL_GROUP G
        LEFT JOIN (
            <!--获取巡查记录表中的已选项,并获取问题数量-->
            SELECT DISTINCT I.GROUP_ID,D.problemCount FROM SM_PATROL_RECORD R
            INNER JOIN SM_PATROL_GROUP_ITEM I ON R.ITEM_ID = I.ID
            LEFT JOIN (
                SELECT I.GROUP_ID,COUNT(*) problemCount FROM SM_PATROL_RECORD R
                INNER JOIN SM_PATROL_GROUP_ITEM I ON R.ITEM_ID = I.ID
                WHERE R.IS_DELETED = 0 AND R.TASK_ID = #{taskId}
                AND R.STATUS = 2
                AND R.SOLUTION = 2
                GROUP BY I.GROUP_ID
            )D ON D.GROUP_ID = I.GROUP_ID
            WHERE R.IS_DELETED = 0 AND R.TASK_ID = #{taskId}
        )C ON C.GROUP_ID = G.ID
        WHERE IS_DELETED = 0
        ORDER BY G.CREATE_TIME
    </select>
 
    <resultMap id="patrolGroupDTO" type="cn.gistack.sm.patrol.dto.PatrolGroupDTO">
        <id property="id" column="id"/>
        <result property="name" column="gname"/>
        <collection property="patrolReportList" javaType="java.util.List" ofType="cn.gistack.sm.patrol.vo.PatrolReportVO">
            <result property="id" column="rId"/>
            <result property="videos" column="videos" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
            <result property="images" column="images" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
            <result property="status" column="status"/>
            <result property="isDeleted" column="isDeleted"/>
            <result property="itemId" column="itemId"/>
            <result property="itemsName" column="itemsName"/>
            <result property="taskId" column="taskId"/>
            <result property="solution" column="solution"/>
            <result property="content" column="content"/>
            <result property="recordId" column="recordId"/>
        </collection>
    </resultMap>
 
 
    <select id="getPatrolGroupDTO" resultMap="patrolGroupDTO">
       SELECT G.ID,G.NAME gname,
        R.ID rId, R.VIDEOS,R.IMAGES,R.STATUS,R.IS_DELETED,R.ITEM_ID itemId,R.record_id recordId,
        I.ITEMS_NAME itemsName,R.TASK_ID,R.SOLUTION,R.CONTENT FROM SM_PATROL_GROUP G
       LEFT JOIN SM_PATROL_GROUP_ITEM I ON I.GROUP_ID = G.ID
       LEFT JOIN SM_PATROL_REPORT R ON R.ITEM_ID = I.ID
       WHERE G.IS_DELETED = 0
       AND R.STATUS = 2
       AND R.TASK_ID = #{taskId}
    </select>
    <select id="getPatrolGroupByTaskId" resultType="cn.gistack.sm.patrol.entity.PatrolGroup">
       SELECT G.ID,G.NAME FROM SM_PATROL_GROUP G
       LEFT JOIN SM_PATROL_GROUP_ITEM I ON I.GROUP_ID = G.ID
       LEFT JOIN SM_PATROL_REPORT R ON R.ITEM_ID = I.ID
       WHERE G.IS_DELETED = 0
       AND R.STATUS = 2
       AND R.TASK_ID = #{taskId}
    </select>
</mapper>