zhubaomin
2024-10-28 1e409f99905c894363248239b856bce6735fd3d5
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml
@@ -454,101 +454,33 @@
        where id = #{id,jdbcType=BIGINT}
    </update>
  <!--根据指定条件获取开关阀报最新记录数量-->
  <select id="getOpenCloseValveReportsCount_last" resultType="java.lang.Long">
    SELECT
        COUNT(*) AS recordCount
    FROM rm_open_close_valve_last oh
    INNER JOIN pr_intake inta ON inta.id = oh.intake_id
    <where>
      <if test="intakeId != null and intakeId >0">
        AND oh.intake_id = #{intakeId}
      </if>
      <if test = "intakeNum != null and intakeNum !=''">
        AND inta.name LIKE CONCAT('%',#{intakeNum},'%')
      </if>
      <if test = "rtuAddr != null and rtuAddr !=''">
        AND oh.rtu_addr LIKE CONCAT('%',#{rtuAddr},'%')
      </if>
      <if test = "timeStart_open != null and timeStart_open != '' and timeStop_open != null and  timeStop_open != '' ">
        AND oh.op_dt BETWEEN #{timeStart_open} AND #{timeStop_open}
      </if>
      <if test = "timeStart_close != null and timeStart_close != '' and timeStop_close != null and timeStop_close != '' ">
        AND oh.cl_dt BETWEEN #{timeStart_close} AND #{timeStop_close}
      </if>
    </where>
  </select>
    <!--根据指定条件获取开关阀报最新记录数量-->
    <select id="getOpenCloseValveReportsCount_last" resultType="java.lang.Long">
        SELECT COUNT(*) AS recordCount
        FROM rm_open_close_valve_last oh
                 INNER JOIN pr_intake inta ON inta.id = oh.intake_id
        <where>
            <if test="intakeId != null and intakeId > 0">
                AND oh.intake_id = #{intakeId}
            </if>
            <if test="intakeNum != null and intakeNum != ''">
                AND inta.name LIKE CONCAT('%', #{intakeNum}, '%')
            </if>
            <if test="clientName != null and clientName != ''">
                AND oh.client_name LIKE CONCAT('%', #{clientName}, '%')
            </if>
            <if test="rtuAddr != null and rtuAddr != ''">
                AND oh.rtu_addr LIKE CONCAT('%', #{rtuAddr}, '%')
            </if>
            <if test="timeStart_open != null and timeStart_open != '' and timeStop_open != null and timeStop_open != ''">
                AND oh.open_dt BETWEEN #{timeStart_open} AND #{timeStop_open}
            </if>
            <if test="timeStart_close != null and timeStart_close != '' and timeStop_close != null and timeStop_close != ''">
                AND oh.close_dt BETWEEN #{timeStart_close} AND #{timeStop_close}
            </if>
        </where>
    </select>
  <!--根据指定条件获取开关阀报最新记录-->
  <select id="getOpenCloseValveReports_last" resultType="com.dy.pipIrrGlobal.voRm.VoOpenCloseValve">
    SELECT
      oh.intake_id AS intakeId,
      inta.name AS intakeNum,
      oh.rtu_addr AS rtuAddr,
      oh.client_name AS clientName,
      oh.op_ic_card_no AS openIcNum,
      oh.op_ic_card_addr AS openIcAddr,
      oh.op_dt AS openTime,
    CASE
      WHEN oh.op_type = 1 THEN "刷卡开阀"
      WHEN oh.op_type = 3 THEN "中心站开阀"
      WHEN oh.op_type = 5 THEN "欠费关阀"
      WHEN oh.op_type = 8 THEN "用户远程开阀"
      WHEN oh.op_type = 11 THEN "开关阀卡开阀"
      ELSE "未知"
    END AS openType,
      oh.op_order_no AS openOrderNo,
      oh.op_total_amount AS openTotalAmount,
      oh.op_remain_money AS openRemainMoney,
      oh.op_water_remain_user AS openWaterRemain,
      oh.op_ele_total_amount AS openEleTotalAmount,
      oh.cl_ic_card_no AS closeIcNum,
      oh.cl_ic_card_addr AS closeIcAddr,
      oh.cl_dt AS closeTime,
    CASE
      WHEN oh.cl_type = 2 THEN "刷卡关阀"
      WHEN oh.cl_type = 4 THEN "中心站关阀"
      WHEN oh.cl_type = 5 THEN "欠费关阀"
      WHEN oh.cl_type = 6 THEN "流量计故障关阀"
      WHEN oh.cl_type = 7 THEN "紧急关闭"
      WHEN oh.cl_type = 9 THEN "用户远程关阀"
      WHEN oh.cl_type = 10 THEN "开关阀卡关阀"
      WHEN oh.cl_type = 12 THEN "黑名单命令关阀"
      WHEN oh.cl_type = 13 THEN "用户远程定时关阀"
      WHEN oh.cl_type = 14 THEN "用户远程定量关阀"
      ELSE "未知"
    END AS closeType,
      oh.cl_this_amount AS closeThisAmount,
      oh.cl_this_time AS thisTime,
      oh.cl_this_money AS thisMoney,
      oh.cl_remain_money AS closeRemainMoney,
      oh.cl_total_amount AS closeTotalAmount
    FROM rm_open_close_valve_last oh
    INNER JOIN pr_intake inta ON inta.id = oh.intake_id
    <where>
      <if test="intakeId != null and intakeId >0">
        AND oh.intake_id = #{intakeId}
      </if>
      <if test = "intakeNum != null and intakeNum !=''">
        AND inta.name LIKE CONCAT('%',#{intakeNum},'%')
      </if>
      <if test = "rtuAddr != null and rtuAddr !=''">
        AND oh.rtu_addr LIKE CONCAT('%',#{rtuAddr},'%')
      </if>
      <if test = "timeStart_open != null and timeStart_open != '' and timeStop_open != null and  timeStop_open != '' ">
        AND oh.op_dt BETWEEN #{timeStart_open} AND #{timeStop_open}
      </if>
      <if test = "timeStart_close != null and timeStart_close != '' and timeStop_close != null and timeStop_close != '' ">
        AND oh.cl_dt BETWEEN #{timeStart_close} AND #{timeStop_close}
      </if>
    </where>
    ORDER BY oh.op_dt DESC
    <trim prefix="limit " >
      <if test="start != null and count != null">
        #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
      </if>
    </trim>
  </select>
    <!--根据指定条件获取开关阀报最新记录-->
    <select id="getOpenCloseValveReports_last" resultType="com.dy.pipIrrGlobal.voRm.VoOpenCloseValve">
        SELECT oh.intake_id            AS intakeId,
@@ -557,14 +489,13 @@
               oh.client_name          AS clientName,
               oh.op_ic_card_no        AS openIcNum,
               oh.op_ic_card_addr      AS openIcAddr,
               oh.op_dt                AS openTime,
               oh.open_dt              AS openTime,
               CASE
                   WHEN oh.op_type = 1 THEN '刷卡开阀'
                   WHEN oh.op_type = 3 THEN '中心站开阀'
                   WHEN oh.op_type = 5 THEN '欠费关阀'
                   WHEN oh.op_type = 5 THEN '余额不足关阀'
                   WHEN oh.op_type = 8 THEN '用户远程开阀'
                   WHEN oh.op_type = 11 THEN '开关阀卡开阀'
                   WHEN oh.op_type = 11 THEN '巡检卡开阀'
                   ELSE '未知'
                   END                 AS openType,
               oh.op_order_no          AS openOrderNo,
@@ -574,18 +505,18 @@
               oh.op_ele_total_amount  AS openEleTotalAmount,
               oh.cl_ic_card_no        AS closeIcNum,
               oh.cl_ic_card_addr      AS closeIcAddr,
               oh.cl_dt                AS closeTime,
               oh.close_dt             AS closeTime,
               CASE
                   WHEN oh.cl_type = 2 THEN '刷卡关阀'
                   WHEN oh.cl_type = 4 THEN '中心站关阀'
                   WHEN oh.cl_type = 5 THEN '欠费关阀'
                   WHEN oh.cl_type = 5 THEN '余额不足关阀'
                   WHEN oh.cl_type = 6 THEN '流量计故障关阀'
                   WHEN oh.cl_type = 7 THEN '紧急关阀'
                   WHEN oh.cl_type = 7 THEN '紧急关闭'
                   WHEN oh.cl_type = 9 THEN '用户远程关阀'
                   WHEN oh.cl_type = 10 THEN '开关阀卡关阀'
                   WHEN oh.cl_type = 10 THEN '巡检卡关阀'
                   WHEN oh.cl_type = 12 THEN '黑名单命令关阀'
                   WHEN oh.cl_type = 13 THEN '远程定时关阀'
                   WHEN oh.cl_type = 14 THEN '远程定量关阀'
                   WHEN oh.cl_type = 13 THEN '用户远程定时关阀'
                   WHEN oh.cl_type = 14 THEN '用户远程定量关阀'
                   ELSE '未知'
                   END                 AS closeType,
               oh.cl_this_amount       AS closeThisAmount,
@@ -602,14 +533,17 @@
            <if test="intakeNum != null and intakeNum != ''">
                AND inta.name LIKE CONCAT('%', #{intakeNum}, '%')
            </if>
            <if test="clientName != null and clientName != ''">
                AND oh.client_name LIKE CONCAT('%', #{clientName}, '%')
            </if>
            <if test="rtuAddr != null and rtuAddr != ''">
                AND oh.rtu_addr LIKE CONCAT('%', #{rtuAddr}, '%')
            </if>
            <if test="timeStart_open != null and timeStop_open != null">
                AND oh.op_dt BETWEEN #{timeStart_open} AND #{timeStop_open}
            <if test="timeStart_open != null and timeStart_open != '' and timeStop_open != null and timeStop_open != ''">
                AND oh.open_dt BETWEEN #{timeStart_open} AND #{timeStop_open}
            </if>
            <if test="timeStart_close != null and timeStop_close != null">
                AND oh.cl_dt BETWEEN #{timeStart_close} AND #{timeStop_close}
            <if test="timeStart_close != null and timeStart_close != '' and timeStop_close != null and timeStop_close != ''">
                AND oh.close_dt BETWEEN #{timeStart_close} AND #{timeStop_close}
            </if>
        </where>
        ORDER BY oh.op_dt DESC
@@ -625,7 +559,9 @@
        SELECT COUNT(*) AS recordCount
        FROM rm_open_close_valve_history
        <where>
            AND op_type = #{openType}
            <if test="openType != null">
                AND op_type = #{openType}
            </if>
            <if test="timeStart != null and timeStop != null">
                AND op_dt BETWEEN #{timeStart} AND #{timeStop}
            </if>
@@ -637,10 +573,19 @@
        SELECT COUNT(*) AS recordCount
        FROM rm_open_close_valve_history
        <where>
            AND cl_type = #{closeType}
            <if test="closeType != null">
                AND cl_type = #{closeType}
            </if>
            <if test="timeStart != null and timeStop != null">
                AND cl_dt BETWEEN #{timeStart} AND #{timeStop}
            </if>
        </where>
    </select>
    <!--为指定(阀控器地址、水卡编号、无关阀记录)开关阀最新记录添加关阀时间,使之不在未关阀记录中显示-->
    <update id="addCloseTime">
        UPDATE rm_open_close_valve_last
        SET cl_dt = NOW()
        WHERE rtu_addr = #{rtuAddr} AND op_ic_card_no = #{icCardNo} AND cl_dt IS NULL
    </update>
</mapper>