guoshilong
2023-05-18 6cd2da8eb7d7aefecd96a19ebbfe9caba59ea88c
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolGroupMapper.xml
@@ -64,4 +64,71 @@
            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>