liurunyu
2025-01-21 95e2f4d9b37f4fd7e99d67976a811fba79427a3e
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_open_close_valve_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_open_close_valve_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}
@@ -591,7 +611,7 @@
                     inta.name AS intakeNum,
                     blo.name  AS blockName
              FROM pr_intake inta
              LEFT JOIN (SELECT intake_id
              INNER JOIN (SELECT intake_id
                          FROM rm_open_close_valve_history
                          WHERE id <![CDATA[>=]]> #{idStart} AND id <![CDATA[<=]]> #{idEnd}
              ) his ON his.intake_id = inta.id
@@ -609,7 +629,7 @@
               inta.lat  AS lat,
               blo.name  AS blockName
        FROM pr_intake inta
        LEFT JOIN(SELECT intake_id
        INNER JOIN(SELECT intake_id
                   FROM rm_open_close_valve_history
                   WHERE id <![CDATA[>=]]> #{idStart} AND id <![CDATA[<=]]> #{idEnd}
        ) his ON his.intake_id = inta.id
@@ -633,7 +653,7 @@
                     inta.name AS intakeNum,
                     blo.name  AS blockName
              FROM pr_intake inta
              LEFT JOIN (SELECT intake_id
              INNER JOIN (SELECT intake_id
                          FROM rm_open_close_valve_history
                          WHERE id <![CDATA[>=]]> #{idStart} AND id <![CDATA[<=]]> #{idEnd}
              ) his ON his.intake_id = inta.id
@@ -651,7 +671,7 @@
               inta.lat  AS lat,
               blo.name  AS blockName
        FROM pr_intake inta
        LEFT JOIN(SELECT intake_id
        INNER JOIN(SELECT intake_id
                   FROM rm_open_close_valve_history
                   WHERE id <![CDATA[>=]]> #{idStart} AND id <![CDATA[<=]]> #{idEnd}
        ) his ON his.intake_id = inta.id