liurunyu
2024-10-24 3a6ac2949244e6a3f70e165cd3802f1d90b78819
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml
@@ -1,219 +1,552 @@
<?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.RmIntakeAmountDayMapper">
  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay">
    <!--@mbg.generated-->
    <!--@Table rm_intake_amount_day-->
    <id column="id" jdbcType="BIGINT" property="id" />
    <result column="intake_id" jdbcType="BIGINT" property="intakeId" />
    <result column="dt" jdbcType="DATE" property="dt" />
    <result column="amount" jdbcType="DOUBLE" property="amount" />
    <result column="dt_last" jdbcType="TIMESTAMP" property="dtLast" />
    <result column="rtu_addr_last" jdbcType="VARCHAR" property="rtuAddrLast" />
    <result column="controller_id_last" jdbcType="BIGINT" property="controllerIdLast" />
    <result column="total_amount_last" jdbcType="FLOAT" property="totalAmountLast" />
    <result column="rtu_dt_last" jdbcType="TIMESTAMP" property="rtuDtLast" />
  </resultMap>
  <sql id="Base_Column_List">
    <!--@mbg.generated-->
    id, intake_id, dt, amount, dt_last, rtu_addr_last, controller_id_last, total_amount_last,
    rtu_dt_last
  </sql>
  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
    <!--@mbg.generated-->
    select
    <include refid="Base_Column_List" />
    from rm_intake_amount_day
    where id = #{id,jdbcType=BIGINT}
  </select>
  <select id="selectByDate" parameterType="java.util.Date" resultMap="BaseResultMap">
    <!--@mbg.generated-->
    select
    <include refid="Base_Column_List" />
    from rm_intake_amount_day
    where dt = #{dt,jdbcType=DATE}
  </select>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
    <!--@mbg.generated-->
    delete from rm_intake_amount_day
    where id = #{id,jdbcType=BIGINT}
  </delete>
  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay">
    <!--@mbg.generated-->
    insert into rm_intake_amount_day (id, intake_id, dt,
      amount, dt_last,
      rtu_addr_last, controller_id_last, total_amount_last,
      rtu_dt_last)
    values (#{id,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, #{dt,jdbcType=DATE},
      #{amount,jdbcType=DOUBLE}, #{dtLast,jdbcType=TIMESTAMP},
      #{rtuAddrLast,jdbcType=VARCHAR}, #{controllerIdLast,jdbcType=BIGINT}, #{totalAmountLast,jdbcType=FLOAT},
      #{rtuDtLast,jdbcType=TIMESTAMP})
  </insert>
  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay">
    <!--@mbg.generated-->
    insert into rm_intake_amount_day
    <trim prefix="(" suffix=")" suffixOverrides=",">
      <if test="id != null">
    <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay">
        <!--@mbg.generated-->
        <!--@Table rm_intake_amount_day-->
        <id column="id" jdbcType="BIGINT" property="id"/>
        <result column="intake_id" jdbcType="BIGINT" property="intakeId"/>
        <result column="dt" jdbcType="DATE" property="dt"/>
        <result column="amount" jdbcType="DOUBLE" property="amount"/>
        <result column="dt_last" jdbcType="TIMESTAMP" property="dtLast"/>
        <result column="rtu_addr_last" jdbcType="VARCHAR" property="rtuAddrLast"/>
        <result column="controller_id_last" jdbcType="BIGINT" property="controllerIdLast"/>
        <result column="total_amount_last" jdbcType="FLOAT" property="totalAmountLast"/>
        <result column="rtu_dt_last" jdbcType="TIMESTAMP" property="rtuDtLast"/>
    </resultMap>
    <sql id="Base_Column_List">
        <!--@mbg.generated-->
        id,
      </if>
      <if test="intakeId != null">
        intake_id,
      </if>
      <if test="dt != null">
        dt,
      </if>
      <if test="amount != null">
        amount,
      </if>
      <if test="dtLast != null">
        dt_last,
      </if>
      <if test="rtuAddrLast != null">
        rtu_addr_last,
      </if>
      <if test="controllerIdLast != null">
        controller_id_last,
      </if>
      <if test="totalAmountLast != null">
        total_amount_last,
      </if>
      <if test="rtuDtLast != null">
        rtu_dt_last,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides=",">
      <if test="id != null">
        #{id,jdbcType=BIGINT},
      </if>
      <if test="intakeId != null">
        #{intakeId,jdbcType=BIGINT},
      </if>
      <if test="dt != null">
        #{dt,jdbcType=DATE},
      </if>
      <if test="amount != null">
        #{amount,jdbcType=DOUBLE},
      </if>
      <if test="dtLast != null">
        #{dtLast,jdbcType=TIMESTAMP},
      </if>
      <if test="rtuAddrLast != null">
        #{rtuAddrLast,jdbcType=VARCHAR},
      </if>
      <if test="controllerIdLast != null">
        #{controllerIdLast,jdbcType=BIGINT},
      </if>
      <if test="totalAmountLast != null">
        #{totalAmountLast,jdbcType=FLOAT},
      </if>
      <if test="rtuDtLast != null">
        #{rtuDtLast,jdbcType=TIMESTAMP},
      </if>
    </trim>
  </insert>
  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay">
    <!--@mbg.generated-->
    update rm_intake_amount_day
    <set>
      <if test="intakeId != null">
        intake_id = #{intakeId,jdbcType=BIGINT},
      </if>
      <if test="dt != null">
        dt = #{dt,jdbcType=DATE},
      </if>
      <if test="amount != null">
        amount = #{amount,jdbcType=DOUBLE},
      </if>
      <if test="dtLast != null">
        dt_last = #{dtLast,jdbcType=TIMESTAMP},
      </if>
      <if test="rtuAddrLast != null">
        rtu_addr_last = #{rtuAddrLast,jdbcType=VARCHAR},
      </if>
      <if test="controllerIdLast != null">
        controller_id_last = #{controllerIdLast,jdbcType=BIGINT},
      </if>
      <if test="totalAmountLast != null">
        total_amount_last = #{totalAmountLast,jdbcType=FLOAT},
      </if>
      <if test="rtuDtLast != null">
        rtu_dt_last = #{rtuDtLast,jdbcType=TIMESTAMP},
      </if>
    </set>
    where id = #{id,jdbcType=BIGINT}
  </update>
  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay">
    <!--@mbg.generated-->
    update rm_intake_amount_day
    set intake_id = #{intakeId,jdbcType=BIGINT},
      dt = #{dt,jdbcType=DATE},
      amount = #{amount,jdbcType=DOUBLE},
      dt_last = #{dtLast,jdbcType=TIMESTAMP},
      rtu_addr_last = #{rtuAddrLast,jdbcType=VARCHAR},
      controller_id_last = #{controllerIdLast,jdbcType=BIGINT},
      total_amount_last = #{totalAmountLast,jdbcType=FLOAT},
      rtu_dt_last = #{rtuDtLast,jdbcType=TIMESTAMP}
    where id = #{id,jdbcType=BIGINT}
  </update>
  <!--根据指定条件获取记录总数-->
  <select id="getRecordCount" resultType="java.lang.Long">
    select count(*)
    from rm_intake_amount_day riad
    Left join pr_intake pint on pint.id = riad.intake_id
    <where>
      <if test="intakeName != null">
        and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%')
      </if>
      <if test="intakeId != null">
        and rash.intake_id = #{intakeId}
      </if>
      <if test="startDt != null">
        and riad.dt &gt;= #{startDt,jdbcType=DATE}
      </if>
      <if test="endDt != null">
        and riad.dt &lt;= #{endDt,jdbcType=DATE}
      </if>
    </where>
        rtu_dt_last
    </sql>
    <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
        <!--@mbg.generated-->
        select
        <include refid="Base_Column_List"/>
        from rm_intake_amount_day
        where id = #{id,jdbcType=BIGINT}
    </select>
  <!--根据指定条件获取记录-->
  <select id="getIntakeAmountDayHistory" resultType="com.dy.pipIrrGlobal.voRm.VoIntakeAmountDay">
    select
    CAST(riad.intake_id AS char)AS intakeId,
    pint.name as intakeName,
    riad.dt as dt,
    riad.amount as amount,
    riad.dt_last as dtLast,
    riad.rtu_addr_last as rtuAddrLast,
    CAST(riad.controller_id_last AS char)AS controllerIdLast,
    riad.total_amount_last as totalAmountLast,
    riad.rtu_dt_last as rtuDtLast
    from rm_intake_amount_day riad
    Left join pr_intake pint on pint.id = riad.intake_id
    <where>
      <if test="intakeName != null">
        and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%')
      </if>
      <if test="intakeId != null">
        and rash.intake_id = #{intakeId}
      </if>
      <if test="startDt != null">
        and riad.dt &gt;= #{startDt,jdbcType=DATE}
      </if>
      <if test="endDt != null">
        and riad.dt &lt;= #{endDt,jdbcType=DATE}
      </if>
    </where>
    ORDER BY riad.id DESC
    <if test="pageCurr != null and pageSize != null">
      LIMIT ${(pageCurr-1)*pageSize}, ${pageSize}
    </if>
  </select>
    <select id="selectByDate" parameterType="java.util.Date" resultMap="BaseResultMap">
        <!--@mbg.generated-->
        select
        <include refid="Base_Column_List"/>
        from rm_intake_amount_day
        where dt = #{dt,jdbcType=DATE}
    </select>
    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
        <!--@mbg.generated-->
        delete
        from rm_intake_amount_day
        where id = #{id,jdbcType=BIGINT}
    </delete>
    <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay">
        <!--@mbg.generated-->
        insert into rm_intake_amount_day (id, intake_id, dt,
                                          amount, dt_last,
                                          rtu_addr_last, controller_id_last, total_amount_last,
                                          rtu_dt_last)
        values (#{id,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, #{dt,jdbcType=DATE},
                #{amount,jdbcType=DOUBLE}, #{dtLast,jdbcType=TIMESTAMP},
                #{rtuAddrLast,jdbcType=VARCHAR}, #{controllerIdLast,jdbcType=BIGINT}, #{totalAmountLast,jdbcType=FLOAT},
                #{rtuDtLast,jdbcType=TIMESTAMP})
    </insert>
    <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay">
        <!--@mbg.generated-->
        insert into rm_intake_amount_day
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null">
                id,
            </if>
            <if test="intakeId != null">
                intake_id,
            </if>
            <if test="dt != null">
                dt,
            </if>
            <if test="amount != null">
                amount,
            </if>
            <if test="dtLast != null">
                dt_last,
            </if>
            <if test="rtuAddrLast != null">
                rtu_addr_last,
            </if>
            <if test="controllerIdLast != null">
                controller_id_last,
            </if>
            <if test="totalAmountLast != null">
                total_amount_last,
            </if>
            <if test="rtuDtLast != null">
                rtu_dt_last,
            </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null">
                #{id,jdbcType=BIGINT},
            </if>
            <if test="intakeId != null">
                #{intakeId,jdbcType=BIGINT},
            </if>
            <if test="dt != null">
                #{dt,jdbcType=DATE},
            </if>
            <if test="amount != null">
                #{amount,jdbcType=DOUBLE},
            </if>
            <if test="dtLast != null">
                #{dtLast,jdbcType=TIMESTAMP},
            </if>
            <if test="rtuAddrLast != null">
                #{rtuAddrLast,jdbcType=VARCHAR},
            </if>
            <if test="controllerIdLast != null">
                #{controllerIdLast,jdbcType=BIGINT},
            </if>
            <if test="totalAmountLast != null">
                #{totalAmountLast,jdbcType=FLOAT},
            </if>
            <if test="rtuDtLast != null">
                #{rtuDtLast,jdbcType=TIMESTAMP},
            </if>
        </trim>
    </insert>
    <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay">
        <!--@mbg.generated-->
        update rm_intake_amount_day
        <set>
            <if test="intakeId != null">
                intake_id = #{intakeId,jdbcType=BIGINT},
            </if>
            <if test="dt != null">
                dt = #{dt,jdbcType=DATE},
            </if>
            <if test="amount != null">
                amount = #{amount,jdbcType=DOUBLE},
            </if>
            <if test="dtLast != null">
                dt_last = #{dtLast,jdbcType=TIMESTAMP},
            </if>
            <if test="rtuAddrLast != null">
                rtu_addr_last = #{rtuAddrLast,jdbcType=VARCHAR},
            </if>
            <if test="controllerIdLast != null">
                controller_id_last = #{controllerIdLast,jdbcType=BIGINT},
            </if>
            <if test="totalAmountLast != null">
                total_amount_last = #{totalAmountLast,jdbcType=FLOAT},
            </if>
            <if test="rtuDtLast != null">
                rtu_dt_last = #{rtuDtLast,jdbcType=TIMESTAMP},
            </if>
        </set>
        where id = #{id,jdbcType=BIGINT}
    </update>
    <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay">
        <!--@mbg.generated-->
        update rm_intake_amount_day
        set intake_id          = #{intakeId,jdbcType=BIGINT},
            dt                 = #{dt,jdbcType=DATE},
            amount             = #{amount,jdbcType=DOUBLE},
            dt_last            = #{dtLast,jdbcType=TIMESTAMP},
            rtu_addr_last      = #{rtuAddrLast,jdbcType=VARCHAR},
            controller_id_last = #{controllerIdLast,jdbcType=BIGINT},
            total_amount_last  = #{totalAmountLast,jdbcType=FLOAT},
            rtu_dt_last        = #{rtuDtLast,jdbcType=TIMESTAMP}
        where id = #{id,jdbcType=BIGINT}
    </update>
    <!--根据指定条件获取记录总数-->
    <select id="getRecordCount" resultType="java.lang.Long">
        select count(*)
        from rm_intake_amount_day riad
                 Left join pr_intake pint on pint.id = riad.intake_id
        <where>
            <if test="intakeId != null and intakeId != ''">
                and riad.intake_id = #{intakeId}
            </if>
            <if test="intakeName != null and intakeName != ''">
                and pint.name like CONCAT('%', #{intakeName,jdbcType=VARCHAR}, '%')
            </if>
            <if test="startDt != null">
                and riad.dt &gt;= #{startDt,jdbcType=DATE}
            </if>
            <if test="endDt != null">
                and riad.dt &lt;= #{endDt,jdbcType=DATE}
            </if>
        </where>
    </select>
    <!--根据指定条件获取记录-->
    <select id="getIntakeAmountDayHistory" resultType="com.dy.pipIrrGlobal.voRm.VoIntakeAmountDay">
        select CAST(riad.intake_id AS char)          AS intakeId,
               pint.name                             as intakeName,
               riad.dt                               as dt,
               riad.amount                           as amount,
               riad.dt_last                          as dtLast,
               riad.rtu_addr_last                    as rtuAddrLast,
               CAST(riad.controller_id_last AS char) AS controllerIdLast,
               riad.total_amount_last                as totalAmountLast,
               riad.rtu_dt_last                      as rtuDtLast
        from rm_intake_amount_day riad
                 Left join pr_intake pint on pint.id = riad.intake_id
        <where>
            <if test="intakeId != null and intakeId != ''">
                and riad.intake_id = #{intakeId}
            </if>
            <if test="intakeName != null and intakeName != ''">
                and pint.name like CONCAT('%', #{intakeName,jdbcType=VARCHAR}, '%')
            </if>
            <if test="startDt != null">
                and riad.dt &gt;= #{startDt,jdbcType=DATE}
            </if>
            <if test="endDt != null">
                and riad.dt &lt;= #{endDt,jdbcType=DATE}
            </if>
        </where>
        ORDER BY riad.id DESC
        <!--        <if test="pageCurr != null and pageSize != null">-->
        <!--            LIMIT ${(pageCurr-1)*pageSize}, ${pageSize}-->
        <!--        </if>-->
        <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="statisticsByIntake" resultType="com.dy.pipIrrGlobal.voSt.VoIntakeAmountStatistics">
    select intake_id, sum(amount) amount
    from rm_intake_amount_day
    where id <![CDATA[>=]]> #{startId, jdbcType=BIGINT} and id <![CDATA[<]]> #{endId, jdbcType=BIGINT}
    group by intake_id
  </select>
    <select id="statisticsByIntake" resultType="com.dy.pipIrrGlobal.voSt.VoIntakeAmountStatistics">
        select intake_id, sum(amount) amount
        from rm_intake_amount_day
        where id <![CDATA[>=]]> #{startId, jdbcType=BIGINT}
          and id <![CDATA[<]]> #{endId, jdbcType=BIGINT}
        group by intake_id
    </select>
    <!--指定月份各天用水量记录数量-->
    <select id="getDayIntakeAmountCount" resultType="java.lang.Long">
        SELECT COUNT(*) AS recordCount
        FROM pr_intake inta
        <where>
            AND inta.deleted = 0
            <if test="intakeNum != null and intakeNum != ''">
                AND inta.name = #{intakeNum}
            </if>
        </where>
    </select>
    <!--统计指定月份各天用水量-->
    <select id="getDayIntakeAmount" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount">
        SELECT inta.id                                 AS intakeId,
               inta.name                               AS intakeNum,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 1), 0)  AS amount1,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 2), 0)  AS amount2,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 3), 0)  AS amount3,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 4), 0)  AS amount4,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 5), 0)  AS amount5,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 6), 0)  AS amount6,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 7), 0)  AS amount7,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 8), 0)  AS amount8,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 9), 0)  AS amount9,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 10), 0) AS amount10,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 11), 0) AS amount11,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 12), 0) AS amount12,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 13), 0) AS amount13,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 14), 0) AS amount14,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 15), 0) AS amount15,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 16), 0) AS amount16,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 17), 0) AS amount17,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 18), 0) AS amount18,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 19), 0) AS amount19,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 20), 0) AS amount20,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 21), 0) AS amount21,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 22), 0) AS amount22,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 23), 0) AS amount23,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 24), 0) AS amount24,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 25), 0) AS amount25,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 26), 0) AS amount26,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 27), 0) AS amount27,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 28), 0) AS amount28,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 29), 0) AS amount29,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 30), 0) AS amount30,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 31), 0) AS amount31
        FROM pr_intake inta
        <where>
            AND inta.deleted = 0
            <if test="intakeNum != null and intakeNum != ''">
                AND inta.name = #{intakeNum}
            </if>
        </where>
        ORDER BY inta.id
        <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="getMonthIntakeAmountCount" resultType="java.lang.Long">
        SELECT COUNT(*) AS recordCount
        FROM pr_intake inta
        <where>
            AND inta.deleted = 0
            <if test="intakeNum != null and intakeNum != ''">
                AND inta.name = #{intakeNum}
            </if>
        </where>
    </select>
    <!--统计指定年份各月用水量-->
    <select id="getMonthIntakeAmount" resultType="com.dy.pipIrrGlobal.voSt.VoMonthAmount">
        SELECT inta.id                                  AS intakeId,
               inta.name                                AS intakeNum,
               IFNULL((SELECT SUM(amount) AS amount
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 1
                       GROUP BY(intaDay.intake_id)), 0) AS month1,
               IFNULL((SELECT SUM(amount) AS amount
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 2
                       GROUP BY(intaDay.intake_id)), 0) AS month2,
               IFNULL((SELECT SUM(amount) AS amount
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 3
                       GROUP BY(intaDay.intake_id)), 0) AS month3,
               IFNULL((SELECT SUM(amount) AS amount
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 4
                       GROUP BY(intaDay.intake_id)), 0) AS month4,
               IFNULL((SELECT SUM(amount) AS amount
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 5
                       GROUP BY(intaDay.intake_id)), 0) AS month5,
               IFNULL((SELECT SUM(amount) AS amount
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 6
                       GROUP BY(intaDay.intake_id)), 0) AS month6,
               IFNULL((SELECT SUM(amount) AS amount
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 7
                       GROUP BY(intaDay.intake_id)), 0) AS month7,
               IFNULL((SELECT SUM(amount) AS amount
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 8
                       GROUP BY(intaDay.intake_id)), 0) AS month8,
               IFNULL((SELECT SUM(amount) AS amount
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 9
                       GROUP BY(intaDay.intake_id)), 0) AS month9,
               IFNULL((SELECT SUM(amount) AS amount
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 10
                       GROUP BY(intaDay.intake_id)), 0) AS month10,
               IFNULL((SELECT SUM(amount) AS amount
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 11
                       GROUP BY(intaDay.intake_id)), 0) AS month11,
               IFNULL((SELECT SUM(amount) AS amount
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 12
                       GROUP BY(intaDay.intake_id)), 0) AS month12
        FROM pr_intake inta
        <where>
            AND inta.deleted = 0
            <if test="intakeNum != null and intakeNum != ''">
                AND inta.name = #{intakeNum}
            </if>
        </where>
        ORDER BY inta.id
        <trim prefix="limit ">
            <if test="start != null and count != null">
                #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
            </if>
        </trim>
    </select>
</mapper>