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 >= #{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) 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