<?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,
|
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,
|
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
|
LEFT JOIN pr_controller pct ON pit.id = pct.intakeId
|
WHERE rohrl.id is NULL
|
<if test="timeStart != null and timeStart != '' ">
|
OR rohrl.rtu_dt < #{timeStart}
|
</if>
|
<!-- <if test="timeStop != null and timeStop != '' ">-->
|
<!-- OR rohrl.rtu_dt > #{timeStop}-->
|
<!-- </if>-->
|
ORDER BY rtu_dt ASC
|
</select>
|
<!--获取最近未报数的取水口-->
|
<select id="getUnReportedIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoIntakeUnReported">
|
SELECT
|
pit.`name` intakeNum,
|
pct.rtuAddr,
|
rohrl.rtu_dt rtuDt
|
FROM pr_intake pit
|
LEFT JOIN `rm_on_hour_report_last` rohrl ON pit.id = rohrl.intake_id
|
LEFT JOIN pr_controller pct ON pit.id = pct.intakeId
|
WHERE rohrl.id is NULL
|
<if test="timeStart != null">
|
OR rohrl.rtu_dt < #{timeStart}
|
</if>
|
<!-- <if test="timeStop != null">-->
|
<!-- OR rohrl.rtu_dt > #{timeStop}-->
|
<!-- </if>-->
|
ORDER BY rtu_dt ASC
|
<trim prefix="limit ">
|
<if test="start != null and count != null">
|
#{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
|
</if>
|
</trim>
|
</select>
|
</mapper>
|