| <?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> |