liurunyu
2025-01-13 f62e059353b86b7d18958dbeaa17cdebcc2093c2
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
@@ -553,30 +553,50 @@
            </if>
        </trim>
    </select>
    <!--获取指定时间段内从未开过阀的取水口数量-->
    <select id="getNeverOpenValveIntakesCount" resultType="java.lang.Long">
        SELECT COUNT(*) AS recordCount
        FROM pr_intake inta
                 INNER JOIN ba_block blo ON blo.id = inta.blockId
        WHERE inta.deleted = 0
          AND NOT EXISTS(SELECT *
                         FROM rm_open_close_valve_history
                         WHERE op_dt BETWEEN #{timeStart} AND #{timeStop}
                           AND intake_id = inta.id)
        LEFT JOIN
        (SELECT intake_id FROM rm_on_hour_report_history
        <where>
            <if test = "idStart != null">
                id <![CDATA[>=]]> #{idStart}
            </if>
            <if test = "idEnd != null">
                AND id <![CDATA[<=]]> #{idEnd}
            </if>
        </where>) his
        ON his.intake_id = inta.id
        LEFT JOIN ba_block blo ON blo.id = inta.blockId
        LEFT JOIN pr_controller pct ON inta.id = pct.intakeId
        WHERE his.intake_id IS NULL AND inta.deleted = 0
    </select>
    <!--获取指定时间段内从未开过阀的取水口-->
    <select id="getNeverOpenValveIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoIntake">
        SELECT inta.id   AS intakeId,
               inta.name AS intakeNum,
               blo.name  AS blockName
    <select id="getNeverOpenValveIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoIntakeUnOpenValve">
        SELECT inta.id      AS intakeId,
               inta.name    AS intakeNum,
               inta.lng     AS lng,
               inta.lat     AS lat,
               blo.name     AS blockName,
               pct.rtuAddr  AS rtuAddr
        FROM pr_intake inta
                 INNER JOIN ba_block blo ON blo.id = inta.blockId
        WHERE inta.deleted = 0
          AND NOT EXISTS(SELECT *
                         FROM rm_open_close_valve_history
                         WHERE op_dt BETWEEN #{timeStart} AND #{timeStop}
                           AND intake_id = inta.id)
        ORDER BY inta.id
        LEFT JOIN
        (SELECT intake_id FROM rm_on_hour_report_history
        <where>
            <if test = "idStart != null">
                id <![CDATA[>=]]> #{idStart}
            </if>
            <if test = "idEnd != null">
                AND id <![CDATA[<=]]> #{idEnd}
            </if>
        </where>) his
        ON his.intake_id = inta.id
        LEFT JOIN ba_block blo ON blo.id = inta.blockId
        LEFT JOIN pr_controller pct ON inta.id = pct.intakeId
        WHERE his.intake_id IS NULL AND inta.deleted = 0
        ORDER BY inta.id DESC
        <trim prefix="limit ">
            <if test="start != null and count != null">
                #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}