<?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.RmLossDayMapper"> 
 | 
  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmLossDay"> 
 | 
    <!--@mbg.generated--> 
 | 
    <!--@Table rm_loss_day--> 
 | 
    <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="DATE" property="dt" /> 
 | 
    <result column="dt_last" jdbcType="TIMESTAMP" property="dtLast" /> 
 | 
    <result column="dt_rtu" jdbcType="TIMESTAMP" property="dtRtu" /> 
 | 
    <result column="loss_amount" jdbcType="DOUBLE" property="lossAmount" /> 
 | 
  </resultMap> 
 | 
  <sql id="Base_Column_List"> 
 | 
    <!--@mbg.generated--> 
 | 
    id, controller_id, intake_id, rtu_addr, dt, dt_last, dt_rtu, loss_amount 
 | 
  </sql> 
 | 
  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> 
 | 
    <!--@mbg.generated--> 
 | 
    select 
 | 
    <include refid="Base_Column_List" /> 
 | 
    from rm_loss_day 
 | 
    where id = #{id,jdbcType=BIGINT} 
 | 
  </select> 
 | 
  <select id="selectByIntakeId" parameterType="java.lang.Long" resultMap="BaseResultMap"> 
 | 
    <!--@mbg.generated--> 
 | 
    select 
 | 
    <include refid="Base_Column_List" /> 
 | 
    from rm_loss_day 
 | 
    where intake_id = #{intakeId,jdbcType=BIGINT} 
 | 
  </select> 
 | 
  
 | 
  <select id="selectByDate" parameterType="java.util.Date" resultMap="BaseResultMap"> 
 | 
    <!--@mbg.generated--> 
 | 
    select 
 | 
    <include refid="Base_Column_List" /> 
 | 
    from rm_loss_day 
 | 
    where dt = #{dt,jdbcType=DATE} 
 | 
  </select> 
 | 
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> 
 | 
    <!--@mbg.generated--> 
 | 
    delete from rm_loss_day 
 | 
    where id = #{id,jdbcType=BIGINT} 
 | 
  </delete> 
 | 
  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmLossDay"> 
 | 
    <!--@mbg.generated--> 
 | 
    insert into rm_loss_day (id, controller_id, intake_id, 
 | 
    rtu_addr, dt, dt_last, dt_rtu, loss_amount 
 | 
    ) 
 | 
    values (#{id,jdbcType=BIGINT}, #{controllerId,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, 
 | 
    #{rtuAddr,jdbcType=VARCHAR}, #{dt,jdbcType=DATE}, #{dtLast,jdbcType=TIMESTAMP}, #{dtRtu,jdbcType=TIMESTAMP}, #{lossAmount,jdbcType=DOUBLE} 
 | 
    ) 
 | 
  </insert> 
 | 
  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmLossDay"> 
 | 
    <!--@mbg.generated--> 
 | 
    insert into rm_loss_day 
 | 
    <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="dtLast != null"> 
 | 
        dt_last, 
 | 
      </if> 
 | 
      <if test="dtRtu != null"> 
 | 
        dt_rtu, 
 | 
      </if> 
 | 
      <if test="lossAmount != null"> 
 | 
        loss_amount, 
 | 
      </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=DATE}, 
 | 
      </if> 
 | 
      <if test="dtLast != null"> 
 | 
        #{dtLast,jdbcType=TIMESTAMP}, 
 | 
      </if> 
 | 
      <if test="dtRtu != null"> 
 | 
        #{dtRtu,jdbcType=TIMESTAMP}, 
 | 
      </if> 
 | 
      <if test="lossAmount != null"> 
 | 
        #{lossAmount,jdbcType=DOUBLE}, 
 | 
      </if> 
 | 
    </trim> 
 | 
  </insert> 
 | 
  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmLossDay"> 
 | 
    <!--@mbg.generated--> 
 | 
    update rm_loss_day 
 | 
    <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=DATE}, 
 | 
      </if> 
 | 
      <if test="dtLast != null"> 
 | 
        dt_last = #{dtLast,jdbcType=TIMESTAMP}, 
 | 
      </if> 
 | 
      <if test="dtRtu != null"> 
 | 
        dt_rtu = #{dtRtu,jdbcType=TIMESTAMP}, 
 | 
      </if> 
 | 
      <if test="lossAmount != null"> 
 | 
        loss_amount = #{lossAmount,jdbcType=DOUBLE}, 
 | 
      </if> 
 | 
    </set> 
 | 
    where id = #{id,jdbcType=BIGINT} 
 | 
  </update> 
 | 
  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmLossDay"> 
 | 
    <!--@mbg.generated--> 
 | 
    update rm_loss_day 
 | 
    set controller_id = #{controllerId,jdbcType=BIGINT}, 
 | 
    intake_id = #{intakeId,jdbcType=BIGINT}, 
 | 
    rtu_addr = #{rtuAddr,jdbcType=VARCHAR}, 
 | 
    dt = #{dt,jdbcType=DATE}, 
 | 
    dt_last = #{dtLast,jdbcType=TIMESTAMP}, 
 | 
    dt_rtu = #{dtRtu,jdbcType=TIMESTAMP}, 
 | 
    loss_amount = #{lossAmount,jdbcType=DOUBLE} 
 | 
    where id = #{id,jdbcType=BIGINT} 
 | 
  </update> 
 | 
  <!--根据指定条件获取记录总数--> 
 | 
  <select id="getRecordCount" resultType="java.lang.Long"> 
 | 
    select count(*) 
 | 
    from rm_loss_day rld 
 | 
    Left join pr_intake pint on pint.id = rld.intake_id 
 | 
    <where> 
 | 
      <if test="intakeId != null and intakeId != '' "> 
 | 
        and rld.intake_id = #{intakeId} 
 | 
      </if> 
 | 
      <if test="intakeName != null and intakeName != '' "> 
 | 
        and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%') 
 | 
      </if> 
 | 
      <if test="lossAmountGreaterOrEqual != null "> 
 | 
        and rld.loss_amount  >= #{lossAmountGreaterOrEqual,jdbcType=DOUBLE} 
 | 
      </if> 
 | 
      <if test="startDt != null"> 
 | 
        and rld.dt >= #{startDt,jdbcType=DATE} 
 | 
      </if> 
 | 
      <if test="endDt != null"> 
 | 
        and rld.dt <= #{endDt,jdbcType=DATE} 
 | 
      </if> 
 | 
    </where> 
 | 
  </select> 
 | 
  <!--根据指定条件获取记录--> 
 | 
  <select id="getLossDayHistory" resultType="com.dy.pipIrrGlobal.voRm.VoLossDay"> 
 | 
    select 
 | 
    CAST(rld.intake_id AS char)AS intakeId, 
 | 
    CAST(rld.controller_id AS char)AS controllerId, 
 | 
    pint.name as intakeName, 
 | 
    rld.rtu_addr as rtuAddr, 
 | 
    rld.dt as dt, 
 | 
    rld.dt_last as dtLast, 
 | 
    rld.dt_rtu as dtRtu, 
 | 
    rld.loss_amount as lossAmount 
 | 
    from rm_loss_day rld 
 | 
    Left join pr_intake pint on pint.id = rld.intake_id 
 | 
    <where> 
 | 
      <if test="intakeId != null and intakeId != '' "> 
 | 
        and rld.intake_id = #{intakeId} 
 | 
      </if> 
 | 
      <if test="intakeName != null and intakeName != '' "> 
 | 
        and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%') 
 | 
      </if> 
 | 
      <if test="lossAmountGreaterOrEqual != null "> 
 | 
        and rld.loss_amount  >= #{lossAmountGreaterOrEqual,jdbcType=DOUBLE} 
 | 
      </if> 
 | 
      <if test="startDt != null"> 
 | 
        and rld.dt >= #{startDt,jdbcType=DATE} 
 | 
      </if> 
 | 
      <if test="endDt != null"> 
 | 
        and rld.dt <= #{endDt,jdbcType=DATE} 
 | 
      </if> 
 | 
    </where> 
 | 
    ORDER BY rld.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> 
 | 
  
 | 
  <select id="statisticsByIntake" resultType="com.dy.pipIrrGlobal.voSt.VoIntakeLossStatistics"> 
 | 
    select intake_id, sum(loss_amount) amount 
 | 
    from rm_loss_day 
 | 
    where id <![CDATA[>=]]> #{startId, jdbcType=BIGINT} and id <![CDATA[<]]> #{endId, jdbcType=BIGINT} 
 | 
    group by intake_id 
 | 
  </select> 
 | 
  
 | 
  <!-- 为查询统计取水口日漏损量,统计取水口数量 --> 
 | 
  <select id="selectIntakeCount4LossDay" resultType="java.lang.Long"> 
 | 
    SELECT COUNT(*) 
 | 
    FROM pr_intake tb 
 | 
    <where> 
 | 
      AND tb.deleted != 1 
 | 
      <if test="intakeNum != null and intakeNum != ''"> 
 | 
        AND tb.name = #{intakeNum} 
 | 
      </if> 
 | 
    </where> 
 | 
  </select> 
 | 
  
 | 
  <!-- 为查询统计取水口日漏损量,查询一页取水口ID --> 
 | 
  <select id="selectIntakes4LossDay" resultType="com.dy.pipIrrGlobal.voSt.VoDayLoss"> 
 | 
    SELECT id    as intakeId, 
 | 
           name  as intakeNum, 
 | 
           lat   as intakeLat, 
 | 
           lng   as intakeLng 
 | 
    FROM pr_intake 
 | 
    <where> 
 | 
      AND deleted != 1 
 | 
      <if test="intakeNum != null and intakeNum != ''"> 
 | 
        AND name = #{intakeNum} 
 | 
      </if> 
 | 
    </where> 
 | 
    order by 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> 
 | 
  
 | 
  
 | 
  <!--统计指定月份各天漏损量  暂时未用 刘润玉 2024-12-12--> 
 | 
  <select id="temp" resultType="com.dy.pipIrrGlobal.voSt.VoDayLoss"> 
 | 
    SELECT inta.intakeId     AS intakeId, 
 | 
           inta.intakeNum    AS intakeNum, 
 | 
           inta.intakeLng    AS intakeLng, 
 | 
           inta.intakeLat    AS intakeLat, 
 | 
           rld.id            AS id, 
 | 
           rld.dt            AS dt, 
 | 
           rld.loss_amount   AS lossAmount1 
 | 
      FROM JSON_TABLE( 
 | 
        #{intakesJson}, 
 | 
        '$[*]' COLUMNS ( 
 | 
            intakeId BIGINT PATH '$.intakeId', 
 | 
            intakeNum VARCHAR(100) PATH '$.intakeNum', 
 | 
            intakeLng DOUBLE PATH '$.intakeLng', 
 | 
            intakeLat DOUBLE PATH '$.intakeLat' 
 | 
        ) 
 | 
      ) inta 
 | 
      LEFT JOIN 
 | 
      ( 
 | 
        select id, intake_id, dt, loss_amount 
 | 
        from rm_loss_day 
 | 
        <where> 
 | 
          <if test="startDt != null "> 
 | 
            AND dt <![CDATA[>=]]> #{startDt, javaType=DATE, jdbcType=DATE} 
 | 
          </if> 
 | 
          <if test="endDt != null "> 
 | 
            AND dt <![CDATA[<]]> #{endDt, javaType=DATE, jdbcType=DATE} 
 | 
          </if> 
 | 
        </where> 
 | 
        order by intake_id DESC, id ASC 
 | 
      ) as rld ON rld.intake_id = inta.intakeId 
 | 
  </select> 
 | 
  
 | 
  
 | 
  <sql id="selectLossAmountOfDay_with"> 
 | 
      SELECT intaId.intakeId   AS intakeId, 
 | 
             rld.dt            AS dt, 
 | 
             rld.loss_amount   AS lossAmount 
 | 
      FROM JSON_TABLE( 
 | 
        #{intakesJson}, 
 | 
        '$[*]' COLUMNS ( 
 | 
          intakeId BIGINT PATH '$.intakeId' 
 | 
        ) 
 | 
      ) intaId 
 | 
      INNER JOIN rm_loss_day rld ON rld.intake_id = intaId.intakeId 
 | 
      <where> 
 | 
        <if test="startDt != null "> 
 | 
          AND rld.dt <![CDATA[>=]]> #{startDt, javaType=DATE, jdbcType=DATE} 
 | 
        </if> 
 | 
        <if test="endDt != null "> 
 | 
          AND rld.dt <![CDATA[<=]]> #{endDt, javaType=DATE, jdbcType=DATE} 
 | 
        </if> 
 | 
      </where> 
 | 
  </sql> 
 | 
  
 | 
  <!--统计指定月份各天漏损量(1号到5号)--> 
 | 
  <select id="selectLossAmountOfDay01_05" resultType="com.dy.pipIrrGlobal.voSt.VoDayLoss"> 
 | 
    WITH intakeLossAmountDay AS (<include refid="selectLossAmountOfDay_with"/>) 
 | 
    SELECT inta.intakeId     AS intakeId, 
 | 
           inta.intakeNum    AS intakeNum, 
 | 
           inta.intakeLng    AS intakeLng, 
 | 
           inta.intakeLat    AS intakeLat, 
 | 
           tb01.lossAmount   AS lossAmount1, 
 | 
           tb02.lossAmount   AS lossAmount2, 
 | 
           tb03.lossAmount   AS lossAmount3, 
 | 
           tb04.lossAmount   AS lossAmount4, 
 | 
           tb05.lossAmount   AS lossAmount5 
 | 
    FROM JSON_TABLE( 
 | 
      #{intakesJson}, 
 | 
      '$[*]' COLUMNS ( 
 | 
        intakeId BIGINT PATH '$.intakeId', 
 | 
        intakeNum VARCHAR(100) PATH '$.intakeNum', 
 | 
        intakeLng DOUBLE PATH '$.intakeLng', 
 | 
        intakeLat DOUBLE PATH '$.intakeLat' 
 | 
      ) 
 | 
    ) inta 
 | 
    LEFT JOIN ( 
 | 
       SELECT tb.intakeId AS intakeId, 
 | 
               tb.lossAmount AS lossAmount 
 | 
        FROM intakeLossAmountDay AS tb 
 | 
        WHERE YEAR(tb.dt) = #{year} 
 | 
              AND MONTH(tb.dt) = #{month} 
 | 
              AND DAY(tb.dt) = 1 
 | 
    ) as tb01 on tb01.intakeId = inta.intakeId 
 | 
    LEFT JOIN ( 
 | 
        SELECT tb.intakeId AS intakeId, 
 | 
               tb.lossAmount AS lossAmount 
 | 
        FROM intakeLossAmountDay AS tb 
 | 
        WHERE YEAR(tb.dt) = #{year} 
 | 
        AND MONTH(tb.dt) = #{month} 
 | 
        AND DAY(tb.dt) = 2 
 | 
    ) as tb02 on tb02.intakeId = inta.intakeId 
 | 
    LEFT JOIN ( 
 | 
        SELECT tb.intakeId AS intakeId, 
 | 
               tb.lossAmount AS lossAmount 
 | 
        FROM intakeLossAmountDay AS tb 
 | 
        WHERE YEAR(tb.dt) = #{year} 
 | 
        AND MONTH(tb.dt) = #{month} 
 | 
        AND DAY(tb.dt) = 3 
 | 
    ) as tb03 on tb03.intakeId = inta.intakeId 
 | 
    LEFT JOIN ( 
 | 
        SELECT tb.intakeId AS intakeId, 
 | 
               tb.lossAmount AS lossAmount 
 | 
        FROM intakeLossAmountDay AS tb 
 | 
        WHERE YEAR(tb.dt) = #{year} 
 | 
        AND MONTH(tb.dt) = #{month} 
 | 
        AND DAY(tb.dt) = 4 
 | 
    ) as tb04 on tb04.intakeId = inta.intakeId 
 | 
    LEFT JOIN ( 
 | 
        SELECT tb.intakeId AS intakeId, 
 | 
               tb.lossAmount AS lossAmount 
 | 
        FROM intakeLossAmountDay AS tb 
 | 
        WHERE YEAR(tb.dt) = #{year} 
 | 
        AND MONTH(tb.dt) = #{month} 
 | 
        AND DAY(tb.dt) = 5 
 | 
    ) as tb05 on tb05.intakeId = inta.intakeId 
 | 
  </select> 
 | 
  
 | 
  
 | 
  <!--统计指定月份各天漏损量(6号到10号)--> 
 | 
  <select id="selectLossAmountOfDay06_10" resultType="com.dy.pipIrrGlobal.voSt.VoDayLoss"> 
 | 
    WITH intakeLossAmountDay AS (<include refid="selectLossAmountOfDay_with"/>) 
 | 
    SELECT inta.intakeId     AS intakeId, 
 | 
           inta.intakeNum    AS intakeNum, 
 | 
           inta.intakeLng    AS intakeLng, 
 | 
           inta.intakeLat    AS intakeLat, 
 | 
           tb06.lossAmount   AS lossAmount6, 
 | 
           tb07.lossAmount   AS lossAmount7, 
 | 
           tb08.lossAmount   AS lossAmount8, 
 | 
           tb09.lossAmount   AS lossAmount9, 
 | 
           tb10.lossAmount   AS lossAmount10 
 | 
    FROM JSON_TABLE( 
 | 
      #{intakesJson}, 
 | 
      '$[*]' COLUMNS ( 
 | 
        intakeId BIGINT PATH '$.intakeId', 
 | 
        intakeNum VARCHAR(100) PATH '$.intakeNum', 
 | 
        intakeLng DOUBLE PATH '$.intakeLng', 
 | 
        intakeLat DOUBLE PATH '$.intakeLat' 
 | 
      ) 
 | 
    ) inta 
 | 
    LEFT JOIN ( 
 | 
        SELECT tb.intakeId AS intakeId, 
 | 
               tb.lossAmount AS lossAmount 
 | 
        FROM intakeLossAmountDay AS tb 
 | 
        WHERE YEAR(tb.dt) = #{year} 
 | 
        AND MONTH(tb.dt) = #{month} 
 | 
        AND DAY(tb.dt) = 6 
 | 
    ) as tb06 on tb06.intakeId = inta.intakeId 
 | 
    LEFT JOIN ( 
 | 
        SELECT tb.intakeId AS intakeId, 
 | 
               tb.lossAmount AS lossAmount 
 | 
        FROM intakeLossAmountDay AS tb 
 | 
        WHERE YEAR(tb.dt) = #{year} 
 | 
        AND MONTH(tb.dt) = #{month} 
 | 
        AND DAY(tb.dt) = 7 
 | 
    ) as tb07 on tb07.intakeId = inta.intakeId 
 | 
    LEFT JOIN ( 
 | 
        SELECT tb.intakeId AS intakeId, 
 | 
               tb.lossAmount AS lossAmount 
 | 
        FROM intakeLossAmountDay AS tb 
 | 
        WHERE YEAR(tb.dt) = #{year} 
 | 
        AND MONTH(tb.dt) = #{month} 
 | 
        AND DAY(tb.dt) = 8 
 | 
    ) as tb08 on tb08.intakeId = inta.intakeId 
 | 
    LEFT JOIN ( 
 | 
        SELECT tb.intakeId AS intakeId, 
 | 
               tb.lossAmount AS lossAmount 
 | 
        FROM intakeLossAmountDay AS tb 
 | 
        WHERE YEAR(tb.dt) = #{year} 
 | 
        AND MONTH(tb.dt) = #{month} 
 | 
        AND DAY(tb.dt) = 9 
 | 
    ) as tb09 on tb09.intakeId = inta.intakeId 
 | 
    LEFT JOIN ( 
 | 
        SELECT tb.intakeId AS intakeId, 
 | 
               tb.lossAmount AS lossAmount 
 | 
        FROM intakeLossAmountDay AS tb 
 | 
        WHERE YEAR(tb.dt) = #{year} 
 | 
        AND MONTH(tb.dt) = #{month} 
 | 
        AND DAY(tb.dt) = 10 
 | 
    ) as tb10 on tb10.intakeId = inta.intakeId 
 | 
  </select> 
 | 
  
 | 
  <!--统计指定月份各天漏损量(11号到15号)--> 
 | 
  <select id="selectLossAmountOfDay11_15" resultType="com.dy.pipIrrGlobal.voSt.VoDayLoss"> 
 | 
    WITH intakeLossAmountDay AS (<include refid="selectLossAmountOfDay_with"/>) 
 | 
    SELECT inta.intakeId     AS intakeId, 
 | 
           inta.intakeNum    AS intakeNum, 
 | 
           inta.intakeLng    AS intakeLng, 
 | 
           inta.intakeLat    AS intakeLat, 
 | 
           tb11.lossAmount   AS lossAmount11, 
 | 
           tb12.lossAmount   AS lossAmount12, 
 | 
           tb13.lossAmount   AS lossAmount13, 
 | 
           tb14.lossAmount   AS lossAmount14, 
 | 
           tb15.lossAmount   AS lossAmount15 
 | 
    FROM JSON_TABLE( 
 | 
      #{intakesJson}, 
 | 
      '$[*]' COLUMNS ( 
 | 
        intakeId BIGINT PATH '$.intakeId', 
 | 
        intakeNum VARCHAR(100) PATH '$.intakeNum', 
 | 
        intakeLng DOUBLE PATH '$.intakeLng', 
 | 
        intakeLat DOUBLE PATH '$.intakeLat' 
 | 
      ) 
 | 
    ) inta 
 | 
    LEFT JOIN ( 
 | 
        SELECT tb.intakeId AS intakeId, 
 | 
               tb.lossAmount AS lossAmount 
 | 
        FROM intakeLossAmountDay AS tb 
 | 
        WHERE YEAR(tb.dt) = #{year} 
 | 
        AND MONTH(tb.dt) = #{month} 
 | 
        AND DAY(tb.dt) = 11 
 | 
    ) as tb11 on tb11.intakeId = inta.intakeId 
 | 
    LEFT JOIN ( 
 | 
        SELECT tb.intakeId AS intakeId, 
 | 
               tb.lossAmount AS lossAmount 
 | 
        FROM intakeLossAmountDay AS tb 
 | 
        WHERE YEAR(tb.dt) = #{year} 
 | 
        AND MONTH(tb.dt) = #{month} 
 | 
        AND DAY(tb.dt) = 12 
 | 
    ) as tb12 on tb12.intakeId = inta.intakeId 
 | 
   LEFT JOIN ( 
 | 
        SELECT tb.intakeId AS intakeId, 
 | 
               tb.lossAmount AS lossAmount 
 | 
        FROM intakeLossAmountDay AS tb 
 | 
        WHERE YEAR(tb.dt) = #{year} 
 | 
        AND MONTH(tb.dt) = #{month} 
 | 
        AND DAY(tb.dt) = 13 
 | 
    ) as tb13 on tb13.intakeId = inta.intakeId 
 | 
   LEFT JOIN ( 
 | 
        SELECT tb.intakeId AS intakeId, 
 | 
               tb.lossAmount AS lossAmount 
 | 
        FROM intakeLossAmountDay AS tb 
 | 
        WHERE YEAR(tb.dt) = #{year} 
 | 
        AND MONTH(tb.dt) = #{month} 
 | 
        AND DAY(tb.dt) = 14 
 | 
    ) as tb14 on tb14.intakeId = inta.intakeId 
 | 
   LEFT JOIN ( 
 | 
        SELECT tb.intakeId AS intakeId, 
 | 
               tb.lossAmount AS lossAmount 
 | 
        FROM intakeLossAmountDay AS tb 
 | 
        WHERE YEAR(tb.dt) = #{year} 
 | 
        AND MONTH(tb.dt) = #{month} 
 | 
        AND DAY(tb.dt) = 15 
 | 
    ) as tb15 on tb15.intakeId = inta.intakeId 
 | 
  </select> 
 | 
  
 | 
  <!--统计指定月份各天漏损量(20号到16号)--> 
 | 
  <select id="selectLossAmountOfDay16_20" resultType="com.dy.pipIrrGlobal.voSt.VoDayLoss"> 
 | 
    WITH intakeLossAmountDay AS (<include refid="selectLossAmountOfDay_with"/>) 
 | 
    SELECT inta.intakeId     AS intakeId, 
 | 
           inta.intakeNum    AS intakeNum, 
 | 
           inta.intakeLng    AS intakeLng, 
 | 
           inta.intakeLat    AS intakeLat, 
 | 
           tb16.lossAmount   AS lossAmount16, 
 | 
           tb17.lossAmount   AS lossAmount17, 
 | 
           tb18.lossAmount   AS lossAmount18, 
 | 
           tb19.lossAmount   AS lossAmount19, 
 | 
           tb20.lossAmount   AS lossAmount20 
 | 
    FROM JSON_TABLE( 
 | 
      #{intakesJson}, 
 | 
      '$[*]' COLUMNS ( 
 | 
        intakeId BIGINT PATH '$.intakeId', 
 | 
        intakeNum VARCHAR(100) PATH '$.intakeNum', 
 | 
        intakeLng DOUBLE PATH '$.intakeLng', 
 | 
        intakeLat DOUBLE PATH '$.intakeLat' 
 | 
      ) 
 | 
    ) inta 
 | 
   LEFT JOIN ( 
 | 
        SELECT tb.intakeId AS intakeId, 
 | 
               tb.lossAmount AS lossAmount 
 | 
        FROM intakeLossAmountDay AS tb 
 | 
        WHERE YEAR(tb.dt) = #{year} 
 | 
        AND MONTH(tb.dt) = #{month} 
 | 
        AND DAY(tb.dt) = 16 
 | 
    ) as tb16 on tb16.intakeId = inta.intakeId 
 | 
   LEFT JOIN ( 
 | 
        SELECT tb.intakeId AS intakeId, 
 | 
               tb.lossAmount AS lossAmount 
 | 
        FROM intakeLossAmountDay AS tb 
 | 
        WHERE YEAR(tb.dt) = #{year} 
 | 
        AND MONTH(tb.dt) = #{month} 
 | 
        AND DAY(tb.dt) = 17 
 | 
    ) as tb17 on tb17.intakeId = inta.intakeId 
 | 
   LEFT JOIN ( 
 | 
        SELECT tb.intakeId AS intakeId, 
 | 
               tb.lossAmount AS lossAmount 
 | 
        FROM intakeLossAmountDay AS tb 
 | 
        WHERE YEAR(tb.dt) = #{year} 
 | 
        AND MONTH(tb.dt) = #{month} 
 | 
        AND DAY(tb.dt) = 18 
 | 
    ) as tb18 on tb18.intakeId = inta.intakeId 
 | 
   LEFT JOIN ( 
 | 
        SELECT tb.intakeId AS intakeId, 
 | 
               tb.lossAmount AS lossAmount 
 | 
        FROM intakeLossAmountDay AS tb 
 | 
        WHERE YEAR(tb.dt) = #{year} 
 | 
        AND MONTH(tb.dt) = #{month} 
 | 
        AND DAY(tb.dt) = 19 
 | 
    ) as tb19 on tb19.intakeId = inta.intakeId 
 | 
   LEFT JOIN ( 
 | 
        SELECT tb.intakeId AS intakeId, 
 | 
               tb.lossAmount AS lossAmount 
 | 
        FROM intakeLossAmountDay AS tb 
 | 
        WHERE YEAR(tb.dt) = #{year} 
 | 
        AND MONTH(tb.dt) = #{month} 
 | 
        AND DAY(tb.dt) = 20 
 | 
    ) as tb20 on tb20.intakeId = inta.intakeId 
 | 
  </select> 
 | 
  
 | 
  <!--统计指定月份各天漏损量(21号到25号)--> 
 | 
  <select id="selectLossAmountOfDay21_25" resultType="com.dy.pipIrrGlobal.voSt.VoDayLoss"> 
 | 
    WITH intakeLossAmountDay AS (<include refid="selectLossAmountOfDay_with"/>) 
 | 
    SELECT inta.intakeId     AS intakeId, 
 | 
           inta.intakeNum    AS intakeNum, 
 | 
           inta.intakeLng    AS intakeLng, 
 | 
           inta.intakeLat    AS intakeLat, 
 | 
           tb21.lossAmount   AS lossAmount21, 
 | 
           tb22.lossAmount   AS lossAmount22, 
 | 
           tb23.lossAmount   AS lossAmount23, 
 | 
           tb24.lossAmount   AS lossAmount24, 
 | 
           tb25.lossAmount   AS lossAmount25 
 | 
    FROM JSON_TABLE( 
 | 
      #{intakesJson}, 
 | 
      '$[*]' COLUMNS ( 
 | 
        intakeId BIGINT PATH '$.intakeId', 
 | 
        intakeNum VARCHAR(100) PATH '$.intakeNum', 
 | 
        intakeLng DOUBLE PATH '$.intakeLng', 
 | 
        intakeLat DOUBLE PATH '$.intakeLat' 
 | 
      ) 
 | 
    ) inta 
 | 
   LEFT JOIN ( 
 | 
        SELECT tb.intakeId AS intakeId, 
 | 
               tb.lossAmount AS lossAmount 
 | 
        FROM intakeLossAmountDay AS tb 
 | 
        WHERE YEAR(tb.dt) = #{year} 
 | 
        AND MONTH(tb.dt) = #{month} 
 | 
        AND DAY(tb.dt) = 21 
 | 
    ) as tb21 on tb21.intakeId = inta.intakeId 
 | 
   LEFT JOIN ( 
 | 
        SELECT tb.intakeId AS intakeId, 
 | 
               tb.lossAmount AS lossAmount 
 | 
        FROM intakeLossAmountDay AS tb 
 | 
        WHERE YEAR(tb.dt) = #{year} 
 | 
        AND MONTH(tb.dt) = #{month} 
 | 
        AND DAY(tb.dt) = 22 
 | 
    ) as tb22 on tb22.intakeId = inta.intakeId 
 | 
   LEFT JOIN ( 
 | 
        SELECT tb.intakeId AS intakeId, 
 | 
               tb.lossAmount AS lossAmount 
 | 
        FROM intakeLossAmountDay AS tb 
 | 
        WHERE YEAR(tb.dt) = #{year} 
 | 
        AND MONTH(tb.dt) = #{month} 
 | 
        AND DAY(tb.dt) = 23 
 | 
    ) as tb23 on tb23.intakeId = inta.intakeId 
 | 
   LEFT JOIN ( 
 | 
        SELECT tb.intakeId AS intakeId, 
 | 
               tb.lossAmount AS lossAmount 
 | 
        FROM intakeLossAmountDay AS tb 
 | 
        WHERE YEAR(tb.dt) = #{year} 
 | 
        AND MONTH(tb.dt) = #{month} 
 | 
        AND DAY(tb.dt) = 24 
 | 
    ) as tb24 on tb24.intakeId = inta.intakeId 
 | 
   LEFT JOIN ( 
 | 
        SELECT tb.intakeId AS intakeId, 
 | 
               tb.lossAmount AS lossAmount 
 | 
        FROM intakeLossAmountDay AS tb 
 | 
        WHERE YEAR(tb.dt) = #{year} 
 | 
        AND MONTH(tb.dt) = #{month} 
 | 
        AND DAY(tb.dt) = 25 
 | 
    ) as tb25 on tb25.intakeId = inta.intakeId 
 | 
  </select> 
 | 
  
 | 
  <!--统计指定月份各天漏损量(26号到31号)--> 
 | 
  <select id="selectLossAmountOfDay26_31" resultType="com.dy.pipIrrGlobal.voSt.VoDayLoss"> 
 | 
    WITH intakeLossAmountDay AS (<include refid="selectLossAmountOfDay_with"/>) 
 | 
    SELECT inta.intakeId     AS intakeId, 
 | 
           inta.intakeNum    AS intakeNum, 
 | 
           inta.intakeLng    AS intakeLng, 
 | 
           inta.intakeLat    AS intakeLat, 
 | 
           tb26.lossAmount   AS lossAmount26, 
 | 
           tb27.lossAmount   AS lossAmount27, 
 | 
           tb28.lossAmount   AS lossAmount28, 
 | 
           tb29.lossAmount   AS lossAmount29, 
 | 
           tb30.lossAmount   AS lossAmount30, 
 | 
           tb31.lossAmount   AS lossAmount31 
 | 
    FROM JSON_TABLE( 
 | 
      #{intakesJson}, 
 | 
      '$[*]' COLUMNS ( 
 | 
        intakeId BIGINT PATH '$.intakeId', 
 | 
        intakeNum VARCHAR(100) PATH '$.intakeNum', 
 | 
        intakeLng DOUBLE PATH '$.intakeLng', 
 | 
        intakeLat DOUBLE PATH '$.intakeLat' 
 | 
      ) 
 | 
    ) inta 
 | 
   LEFT JOIN ( 
 | 
        SELECT tb.intakeId AS intakeId, 
 | 
               tb.lossAmount AS lossAmount 
 | 
        FROM intakeLossAmountDay AS tb 
 | 
        WHERE YEAR(tb.dt) = #{year} 
 | 
        AND MONTH(tb.dt) = #{month} 
 | 
        AND DAY(tb.dt) = 26 
 | 
    ) as tb26 on tb26.intakeId = inta.intakeId 
 | 
   LEFT JOIN ( 
 | 
        SELECT tb.intakeId AS intakeId, 
 | 
               tb.lossAmount AS lossAmount 
 | 
        FROM intakeLossAmountDay AS tb 
 | 
        WHERE YEAR(tb.dt) = #{year} 
 | 
        AND MONTH(tb.dt) = #{month} 
 | 
        AND DAY(tb.dt) = 27 
 | 
    ) as tb27 on tb27.intakeId = inta.intakeId 
 | 
   LEFT JOIN ( 
 | 
        SELECT tb.intakeId AS intakeId, 
 | 
               tb.lossAmount AS lossAmount 
 | 
        FROM intakeLossAmountDay AS tb 
 | 
        WHERE YEAR(tb.dt) = #{year} 
 | 
        AND MONTH(tb.dt) = #{month} 
 | 
        AND DAY(tb.dt) = 28 
 | 
    ) as tb28 on tb28.intakeId = inta.intakeId 
 | 
   LEFT JOIN ( 
 | 
        SELECT tb.intakeId AS intakeId, 
 | 
               tb.lossAmount AS lossAmount 
 | 
        FROM intakeLossAmountDay AS tb 
 | 
        WHERE YEAR(tb.dt) = #{year} 
 | 
        AND MONTH(tb.dt) = #{month} 
 | 
        AND DAY(tb.dt) = 29 
 | 
    ) as tb29 on tb29.intakeId = inta.intakeId 
 | 
   LEFT JOIN ( 
 | 
        SELECT tb.intakeId AS intakeId, 
 | 
               tb.lossAmount AS lossAmount 
 | 
        FROM intakeLossAmountDay AS tb 
 | 
        WHERE YEAR(tb.dt) = #{year} 
 | 
        AND MONTH(tb.dt) = #{month} 
 | 
        AND DAY(tb.dt) = 30 
 | 
    ) as tb30 on tb30.intakeId = inta.intakeId 
 | 
   LEFT JOIN ( 
 | 
        SELECT tb.intakeId AS intakeId, 
 | 
               tb.lossAmount AS lossAmount 
 | 
        FROM intakeLossAmountDay AS tb 
 | 
        WHERE YEAR(tb.dt) = #{year} 
 | 
        AND MONTH(tb.dt) = #{month} 
 | 
        AND DAY(tb.dt) = 31 
 | 
    ) as tb31 on tb31.intakeId = inta.intakeId 
 | 
  </select> 
 | 
  
 | 
  
 | 
</mapper> 
 |