| <?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="com.dy.pipIrrGlobal.daoRm.RmOnHourReportLastMapper"> | 
|     <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmOnHourReportLast"> | 
|         <!--@mbg.generated--> | 
|         <!--@Table rm_on_hour_report_last--> | 
|         <id column="id" jdbcType="BIGINT" property="id"/> | 
|         <result column="controller_id" jdbcType="BIGINT" property="controllerId"/> | 
|         <result column="intake_id" jdbcType="BIGINT" property="intakeId"/> | 
|         <result column="rtu_addr" jdbcType="VARCHAR" property="rtuAddr"/> | 
|         <result column="dt" jdbcType="TIMESTAMP" property="dt"/> | 
|         <result column="rtu_dt" jdbcType="TIMESTAMP" property="rtuDt"/> | 
|         <result column="instant_amount" jdbcType="FLOAT" property="instantAmount"/> | 
|         <result column="total_amount" jdbcType="FLOAT" property="totalAmount"/> | 
|         <result column="loss_amount" jdbcType="FLOAT" property="lossAmount"/> | 
|         <result column="water_press" jdbcType="FLOAT" property="waterPress"/> | 
|         <result column="battery_volt" jdbcType="FLOAT" property="batteryVolt"/> | 
|         <result column="signal_value" jdbcType="INTEGER" property="signalValue"/> | 
|         <result column="water_price" jdbcType="FLOAT" property="waterPrice"/> | 
|     </resultMap> | 
|     <sql id="Base_Column_List"> | 
|         <!--@mbg.generated--> | 
|         id, | 
|         controller_id, | 
|         intake_id, | 
|         rtu_addr, | 
|         dt, | 
|         rtu_dt, | 
|         instant_amount, | 
|         total_amount, | 
|         loss_amount, | 
|         water_press, | 
|         battery_volt, | 
|         signal_value, | 
|         water_price | 
|     </sql> | 
|     <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> | 
|         <!--@mbg.generated--> | 
|         select | 
|         <include refid="Base_Column_List"/> | 
|         from rm_on_hour_report_last | 
|         where id = #{id,jdbcType=BIGINT} | 
|     </select> | 
|     <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> | 
|         <!--@mbg.generated--> | 
|         delete | 
|         from rm_on_hour_report_last | 
|         where id = #{id,jdbcType=BIGINT} | 
|     </delete> | 
|     <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOnHourReportLast"> | 
|         <!--@mbg.generated--> | 
|         insert into rm_on_hour_report_last (id, controller_id, intake_id, | 
|                                             rtu_addr, dt, rtu_dt, | 
|                                             instant_amount, total_amount, loss_amount, | 
|                                             water_press, battery_volt, | 
|                                             signal_value, water_price) | 
|         values (#{id,jdbcType=BIGINT}, #{controllerId,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, | 
|                 #{rtuAddr,jdbcType=VARCHAR}, #{dt,jdbcType=TIMESTAMP}, #{rtuDt,jdbcType=TIMESTAMP}, | 
|                 #{instantAmount,jdbcType=FLOAT}, #{totalAmount,jdbcType=FLOAT}, #{lossAmount,jdbcType=FLOAT}, | 
|                 #{waterPress,jdbcType=FLOAT}, #{batteryVolt,jdbcType=FLOAT}, | 
|                 #{signalValue,jdbcType=INTEGER}, #{waterPrice,jdbcType=FLOAT}) | 
|     </insert> | 
|     <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOnHourReportLast"> | 
|         <!--@mbg.generated--> | 
|         insert into rm_on_hour_report_last | 
|         <trim prefix="(" suffix=")" suffixOverrides=","> | 
|             <if test="id != null"> | 
|                 id, | 
|             </if> | 
|             <if test="controllerId != null"> | 
|                 controller_id, | 
|             </if> | 
|             <if test="intakeId != null"> | 
|                 intake_id, | 
|             </if> | 
|             <if test="rtuAddr != null"> | 
|                 rtu_addr, | 
|             </if> | 
|             <if test="dt != null"> | 
|                 dt, | 
|             </if> | 
|             <if test="rtuDt != null"> | 
|                 rtu_dt, | 
|             </if> | 
|             <if test="instantAmount != null"> | 
|                 instant_amount, | 
|             </if> | 
|             <if test="totalAmount != null"> | 
|                 total_amount, | 
|             </if> | 
|             <if test="lossAmount != null"> | 
|                 loss_amount, | 
|             </if> | 
|             <if test="waterPress != null"> | 
|                 water_press, | 
|             </if> | 
|             <if test="batteryVolt != null"> | 
|                 battery_volt, | 
|             </if> | 
|             <if test="signalValue != null"> | 
|                 signal_value, | 
|             </if> | 
|             <if test="waterPrice != null"> | 
|                 water_price, | 
|             </if> | 
|         </trim> | 
|         <trim prefix="values (" suffix=")" suffixOverrides=","> | 
|             <if test="id != null"> | 
|                 #{id,jdbcType=BIGINT}, | 
|             </if> | 
|             <if test="controllerId != null"> | 
|                 #{controllerId,jdbcType=BIGINT}, | 
|             </if> | 
|             <if test="intakeId != null"> | 
|                 #{intakeId,jdbcType=BIGINT}, | 
|             </if> | 
|             <if test="rtuAddr != null"> | 
|                 #{rtuAddr,jdbcType=VARCHAR}, | 
|             </if> | 
|             <if test="dt != null"> | 
|                 #{dt,jdbcType=TIMESTAMP}, | 
|             </if> | 
|             <if test="rtuDt != null"> | 
|                 #{rtuDt,jdbcType=TIMESTAMP}, | 
|             </if> | 
|             <if test="instantAmount != null"> | 
|                 #{instantAmount,jdbcType=FLOAT}, | 
|             </if> | 
|             <if test="totalAmount != null"> | 
|                 #{totalAmount,jdbcType=FLOAT}, | 
|             </if> | 
|             <if test="lossAmount != null"> | 
|                 #{lossAmount,jdbcType=FLOAT}, | 
|             </if> | 
|             <if test="waterPress != null"> | 
|                 #{waterPress,jdbcType=FLOAT}, | 
|             </if> | 
|             <if test="batteryVolt != null"> | 
|                 #{batteryVolt,jdbcType=FLOAT}, | 
|             </if> | 
|             <if test="signalValue != null"> | 
|                 #{signalValue,jdbcType=INTEGER}, | 
|             </if> | 
|             <if test="waterPrice != null"> | 
|                 #{waterPrice,jdbcType=FLOAT}, | 
|             </if> | 
|         </trim> | 
|     </insert> | 
|     <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOnHourReportLast"> | 
|         <!--@mbg.generated--> | 
|         update rm_on_hour_report_last | 
|         <set> | 
|             <if test="controllerId != null"> | 
|                 controller_id = #{controllerId,jdbcType=BIGINT}, | 
|             </if> | 
|             <if test="intakeId != null"> | 
|                 intake_id = #{intakeId,jdbcType=BIGINT}, | 
|             </if> | 
|             <if test="rtuAddr != null"> | 
|                 rtu_addr = #{rtuAddr,jdbcType=VARCHAR}, | 
|             </if> | 
|             <if test="dt != null"> | 
|                 dt = #{dt,jdbcType=TIMESTAMP}, | 
|             </if> | 
|             <if test="rtuDt != null"> | 
|                 rtu_dt = #{rtuDt,jdbcType=TIMESTAMP}, | 
|             </if> | 
|             <if test="instantAmount != null"> | 
|                 instant_amount = #{instantAmount,jdbcType=FLOAT}, | 
|             </if> | 
|             <if test="totalAmount != null"> | 
|                 total_amount = #{totalAmount,jdbcType=FLOAT}, | 
|             </if> | 
|             <if test="lossAmount != null"> | 
|                 loss_amount = #{lossAmount,jdbcType=FLOAT}, | 
|             </if> | 
|             <if test="waterPress != null"> | 
|                 water_press = #{waterPress,jdbcType=FLOAT}, | 
|             </if> | 
|             <if test="batteryVolt != null"> | 
|                 battery_volt = #{batteryVolt,jdbcType=FLOAT}, | 
|             </if> | 
|             <if test="signalValue != null"> | 
|                 signal_value = #{signalValue,jdbcType=INTEGER}, | 
|             </if> | 
|             <if test="waterPrice != null"> | 
|                 water_price = #{waterPrice,jdbcType=FLOAT}, | 
|             </if> | 
|         </set> | 
|         where id = #{id,jdbcType=BIGINT} | 
|     </update> | 
|     <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOnHourReportLast"> | 
|         <!--@mbg.generated--> | 
|         update rm_on_hour_report_last | 
|         set controller_id  = #{controllerId,jdbcType=BIGINT}, | 
|             intake_id      = #{intakeId,jdbcType=BIGINT}, | 
|             rtu_addr       = #{rtuAddr,jdbcType=VARCHAR}, | 
|             dt             = #{dt,jdbcType=TIMESTAMP}, | 
|             rtu_dt         = #{rtuDt,jdbcType=TIMESTAMP}, | 
|             instant_amount = #{instantAmount,jdbcType=FLOAT}, | 
|             total_amount   = #{totalAmount,jdbcType=FLOAT}, | 
|             loss_amount    = #{lossAmount,jdbcType=FLOAT}, | 
|             water_press    = #{waterPress,jdbcType=FLOAT}, | 
|             battery_volt   = #{batteryVolt,jdbcType=FLOAT}, | 
|             signal_value   = #{signalValue,jdbcType=INTEGER}, | 
|             water_price    = #{waterPrice,jdbcType=FLOAT} | 
|         where id = #{id,jdbcType=BIGINT} | 
|     </update> | 
|   | 
|     <!--根据阀控器地址获取定点上报最新数据--> | 
|     <select id="getRmOnHourReportLast" resultType="com.dy.pipIrrGlobal.pojoRm.RmOnHourReportLast"> | 
|         select | 
|         <include refid="Base_Column_List"/> | 
|         from rm_on_hour_report_last | 
|         where intake_id = #{intakeId} | 
|     </select> | 
|   | 
|     <!--根据指定条件获取整点报最新记录数量--> | 
|     <select id="getOnHourReportsCount_last" resultType="java.lang.Long"> | 
|         SELECT COUNT(*) AS recordCount | 
|         FROM rm_on_hour_report_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 != null and timeStop != null"> | 
|                 AND oh.dt BETWEEN #{timeStart} AND #{timeStop} | 
|             </if> | 
|         </where> | 
|     </select> | 
|   | 
|     <!--根据指定条件获取整点报最新记录--> | 
|     <select id="getOnHourReports_last" resultType="com.dy.pipIrrGlobal.voRm.VoOnHour"> | 
|         SELECT oh.intake_id      AS intakeId, | 
|                inta.`name`       AS intakeNum, | 
|                oh.rtu_addr       AS rtuAddr, | 
|                oh.dt             AS receiveTime, | 
|                oh.instant_amount AS instantAmount, | 
|                oh.total_amount   AS totalAmount, | 
|                oh.loss_amount    AS lossAmount, | 
|                oh.water_press    AS waterPress, | 
|                oh.battery_volt   AS batteryVolt, | 
|                oh.signal_value   AS signalValue, | 
|                oh.water_price    AS waterPrice | 
|         FROM rm_on_hour_report_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 != null and timeStop != null"> | 
|                 AND oh.dt BETWEEN #{timeStart} AND #{timeStop} | 
|             </if> | 
|         </where> | 
|         ORDER BY oh.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="getLargeFlowIntakesCount" resultType="java.lang.Long"> | 
|         SELECT COUNT(*) AS recordCount | 
|         FROM pr_intake inta | 
|                  INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id | 
|                  INNER JOIN ba_block blo ON blo.id = inta.blockId | 
|         WHERE inta.deleted = 0 | 
|           AND hou.total_amount > #{totalAmount} | 
|     </select> | 
|   | 
|     <!--获取累计流量超过指定值的取水口--> | 
|     <select id="getLargeFlowIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoCumulativeFlow"> | 
|         SELECT inta.id            AS intakeId, | 
|                inta.name          AS intakeNum, | 
|                inta.lng           AS lng, | 
|                inta.lat           AS lat, | 
|                blo.name           AS blockName, | 
|                hou.total_amount   AS cumulativeFlow, | 
|                hou.dt             AS getDate | 
|         FROM pr_intake inta | 
|                  INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id | 
|                  INNER JOIN ba_block blo ON blo.id = inta.blockId | 
|         WHERE inta.deleted = 0 | 
|           AND hou.total_amount > #{totalAmount} | 
|         ORDER BY hou.dt | 
|         <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="getSmallFlowIntakesCount" resultType="java.lang.Long"> | 
|         SELECT COUNT(*) AS recordCount | 
|         FROM pr_intake inta | 
|                  INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id | 
|                  INNER JOIN ba_block blo ON blo.id = inta.blockId | 
|         WHERE inta.deleted = 0 | 
|           AND hou.total_amount < #{totalAmount} | 
|     </select> | 
|   | 
|     <!--获取累计流量低于指定值的取水口--> | 
|     <select id="getSmallFlowIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoCumulativeFlow"> | 
|         SELECT inta.id   AS intakeId, | 
|                inta.name AS intakeNum, | 
|                inta.lng  AS lng, | 
|                inta.lat  AS lat, | 
|                blo.name  AS blockName, | 
|                hou.total_amount AS cumulativeFlow, | 
|                hou.dt    AS getDate | 
|         FROM pr_intake inta | 
|                  INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id | 
|                  INNER JOIN ba_block blo ON blo.id = inta.blockId | 
|         WHERE inta.deleted = 0 | 
|           AND hou.total_amount < #{totalAmount} | 
|         ORDER BY hou.dt | 
|         <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="getUnderVoltIntakesCount" resultType="java.lang.Long"> | 
|         SELECT COUNT(*) AS recordCount | 
|         FROM pr_intake inta | 
|                  INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id | 
|                  INNER JOIN ba_block blo ON blo.id = inta.blockId | 
|         WHERE inta.deleted = 0 | 
|           AND hou.battery_volt < #{batteryVolt} | 
|     </select> | 
|   | 
|     <!--获取欠压取水口--> | 
|     <select id="getUnderVoltIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoBatteryVolt"> | 
|         SELECT inta.id          AS intakeId, | 
|                inta.name        AS intakeNum, | 
|                inta.lng         AS lng, | 
|                inta.lat         AS lat, | 
|                blo.name         AS blockName, | 
|                hou.battery_volt AS batteryVolt, | 
|                hou.dt           AS getDate | 
|         FROM pr_intake inta | 
|                  INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id | 
|                  INNER JOIN ba_block blo ON blo.id = inta.blockId | 
|         WHERE inta.deleted = 0 | 
|           AND hou.battery_volt < #{batteryVolt} | 
|         ORDER BY hou.dt | 
|         <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="getSpecifiedSignalIntakesCount" resultType="java.lang.Long"> | 
|         SELECT COUNT(*) AS recordCount | 
|         FROM pr_intake inta | 
|                  INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id | 
|                  INNER JOIN ba_block blo ON blo.id = inta.blockId | 
|         <where> | 
|             AND inta.deleted = 0 | 
|             <if test="signalIntensity != null and signalIntensity == 1"> | 
|                 AND hou.signal_value > 0 | 
|                 AND hou.signal_value <= #{weak} | 
|             </if> | 
|             <if test="signalIntensity != null and signalIntensity == 2"> | 
|                 AND hou.signal_value > #{weak} | 
|                 AND hou.signal_value <= #{ordinary} | 
|             </if> | 
|             <if test="signalIntensity != null and signalIntensity == 3"> | 
|                 AND hou.signal_value > #{ordinary} | 
|             </if> | 
|         </where> | 
|     </select> | 
|   | 
|     <!--获取指定信号强度的取水口--> | 
|     <select id="getSpecifiedSignalIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoSignalIntensity"> | 
|         SELECT inta.id          AS intakeId, | 
|                inta.name        AS intakeNum, | 
|                inta.lng         AS lng, | 
|                inta.lat         AS lat, | 
|                blo.name         AS blockName, | 
|                hou.signal_value AS signValue, | 
|                hou.dt           AS getDate | 
|         FROM pr_intake inta | 
|                  INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id | 
|                  INNER JOIN ba_block blo ON blo.id = inta.blockId | 
|         <where> | 
|             AND inta.deleted = 0 | 
|             <if test="signalIntensity != null and signalIntensity == 1"> | 
|                 AND hou.signal_value > 0 | 
|                 AND hou.signal_value <= #{weak} | 
|             </if> | 
|             <if test="signalIntensity != null and signalIntensity == 2"> | 
|                 AND hou.signal_value > #{weak} | 
|                 AND hou.signal_value <= #{ordinary} | 
|             </if> | 
|             <if test="signalIntensity != null and signalIntensity == 3"> | 
|                 AND hou.signal_value > #{ordinary} | 
|             </if> | 
|         </where> | 
|         ORDER BY hou.dt | 
|         <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="getUnReportedIntakesCount" resultType="java.lang.Long"> | 
|         SELECT | 
|         count(*) | 
|         FROM pr_intake pit | 
|         LEFT JOIN `rm_on_hour_report_last` rohrl | 
|         ON ( | 
|             pit.id = rohrl.intake_id | 
|         <if test="timeStart != null and timeStart != '' "> | 
|             AND rohrl.dt  > #{timeStart} | 
|         </if> | 
|         ) | 
|         LEFT JOIN ba_block bbl ON bbl.id = pit.blockId | 
|         LEFT JOIN pr_controller pct ON pit.id = pct.intakeId | 
|         WHERE rohrl.id is NULL | 
|     </select> | 
|     <!--获取最近未报数的取水口--> | 
|     <select id="getUnReportedIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoIntakeUnReported"> | 
|         SELECT | 
|             pit.id      AS intakeId, | 
|             pit.`name`  AS intakeNum, | 
|             pit.lng     AS lng, | 
|             pit.lat     AS lat, | 
|             bbl.name    AS blockName, | 
|             pct.rtuAddr AS rtuAddr | 
|         FROM  pr_intake pit | 
|         LEFT JOIN `rm_on_hour_report_last` rohrl | 
|         ON ( | 
|             pit.id = rohrl.intake_id | 
|         <if test="timeStart != null and timeStart != '' "> | 
|             AND rohrl.dt  > #{timeStart} | 
|         </if> | 
|         ) | 
|         LEFT JOIN ba_block bbl ON bbl.id = pit.blockId | 
|         LEFT JOIN pr_controller pct ON pit.id = pct.intakeId | 
|         WHERE  rohrl.id is NULL | 
|         ORDER BY pit.id DESC | 
|         <trim prefix="limit "> | 
|             <if test="start != null and count != null"> | 
|                 #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} | 
|             </if> | 
|         </trim> | 
|     </select> | 
| </mapper> |