From 4a2deb11b819dd78a8c75e244ef67ec2e48cf5f5 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期一, 14 四月 2025 21:03:28 +0800
Subject: [PATCH] 重构轮灌组修改接口

---
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmLossDayMapper.xml |  577 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 562 insertions(+), 15 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmLossDayMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmLossDayMapper.xml
index 384e86a..10f472c 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmLossDayMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmLossDayMapper.xml
@@ -19,11 +19,19 @@
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
     <!--@mbg.generated-->
-    select 
+    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
@@ -39,11 +47,11 @@
   <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}
-      )
+    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-->
@@ -67,7 +75,7 @@
       <if test="dtLast != null">
         dt_last,
       </if>
-     <if test="dtRtu != null">
+      <if test="dtRtu != null">
         dt_rtu,
       </if>
       <if test="lossAmount != null">
@@ -133,20 +141,559 @@
     <!--@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}
+    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  &gt;= #{lossAmountGreaterOrEqual,jdbcType=DOUBLE}
+      </if>
+      <if test="startDt != null">
+        and rld.dt &gt;= #{startDt,jdbcType=DATE}
+      </if>
+      <if test="endDt != null">
+        and rld.dt &lt;= #{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  &gt;= #{lossAmountGreaterOrEqual,jdbcType=DOUBLE}
+      </if>
+      <if test="startDt != null">
+        and rld.dt &gt;= #{startDt,jdbcType=DATE}
+      </if>
+      <if test="endDt != null">
+        and rld.dt &lt;= #{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) as amount
+    select intake_id, sum(loss_amount) amount
     from rm_loss_day
-    where id <![CDATA[>=]]> #{startId,jdbcType=BIGINT} and id <![CDATA[<]]> #{endId,jdbcType=BIGINT}
+    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>
\ No newline at end of file

--
Gitblit v1.8.0