From 6dcef8bdb3a6d1681fadf4001c22f63f046af84b Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期四, 12 十二月 2024 17:22:00 +0800
Subject: [PATCH] 取水口取水月,年统计查询重新实现

---
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoDayIntakeAmount.java                    |   77 ++-
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intaker/IntakeCtrl.java |   72 +++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountDayMapper.java             |   32 +
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml                            |  447 +++++++++++++++++++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intaker/IntakeQo.java   |   48 ++
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/loss/LossCtrl.java      |    3 
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/loss/LossSv.java        |   28 
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intaker/IntakeSv.java   |  188 +++++++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSt/StIntakeAmountMonthMapper.java           |   32 +
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/StIntakeAmountMonthMapper.xml                          |  187 +++++++++
 10 files changed, 1,064 insertions(+), 50 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountDayMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountDayMapper.java
index a934457..a725519 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountDayMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountDayMapper.java
@@ -4,6 +4,7 @@
 import com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay;
 import com.dy.pipIrrGlobal.voRm.VoIntakeAmountDay;
 import com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount;
+import com.dy.pipIrrGlobal.voSt.VoDayLoss;
 import com.dy.pipIrrGlobal.voSt.VoIntakeAmountStatistics;
 import com.dy.pipIrrGlobal.voSt.VoMonthAmount;
 import org.apache.ibatis.annotations.Mapper;
@@ -119,4 +120,35 @@
      * @return
      */
     List<VoMonthAmount> getMonthIntakeAmount(Map<?, ?> params);
+
+    ////////////////////////////////////////////////
+    // 缁熻鏌ヨ
+    ///////////////////////////////////////////////
+
+    /**
+     * 涓烘煡璇㈢粺璁″彇姘村彛鏃ユ紡鎹熼噺锛岀粺璁″彇姘村彛鏁伴噺
+     * @param intakeN
+     * @return
+     */
+    Long selectIntakeCount4AmountDay(@Param("intakeNum")String intakeN) ;
+
+    /**
+     * 涓烘煡璇㈢粺璁″彇姘村彛鏃ユ紡鎹熼噺锛屾煡璇竴椤靛彇姘村彛ID
+     * @param params
+     * @return
+     */
+    List<VoDayIntakeAmount> selectIntakes4AmountDay(Map<?, ?> params) ;
+
+    /**
+     * 鏌ヨ缁熻鍙栨按鍙f棩婕忔崯閲�
+     * @param params
+     * @return
+     */
+    //涓嬮潰1鍒�31鍙峰垎浜�6涓煡璇紝鍘熷洜鏄叆涓�涓煡璇腑锛岄潪甯告參锛屼笉鐭ラ亾浠�涔堝師鍥狅紝涔熻鏄瓙鏌ヨ澶鐨勫師鍥�
+    List<VoDayIntakeAmount> selectIntakeAmountOfDay01_05(Map<?, ?> params);
+    List<VoDayIntakeAmount> selectIntakeAmountOfDay06_10(Map<?, ?> params);
+    List<VoDayIntakeAmount> selectIntakeAmountOfDay11_15(Map<?, ?> params);
+    List<VoDayIntakeAmount> selectIntakeAmountOfDay16_20(Map<?, ?> params);
+    List<VoDayIntakeAmount> selectIntakeAmountOfDay21_25(Map<?, ?> params);
+    List<VoDayIntakeAmount> selectIntakeAmountOfDay26_31(Map<?, ?> params);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSt/StIntakeAmountMonthMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSt/StIntakeAmountMonthMapper.java
index 2f0f5fe..9e0372d 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSt/StIntakeAmountMonthMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSt/StIntakeAmountMonthMapper.java
@@ -5,10 +5,12 @@
 import com.dy.pipIrrGlobal.pojoSt.StLossMonth;
 import com.dy.pipIrrGlobal.voSt.VoIntakeAmountStatistics;
 import com.dy.pipIrrGlobal.voSt.VoIntakeLossStatistics;
+import com.dy.pipIrrGlobal.voSt.VoMonthAmount;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @Author: liurunyu
@@ -74,11 +76,39 @@
      * @param year 缁熻骞村害
      * @return
      */
-    List<VoIntakeAmountStatistics> statisticsByIntake(Integer year, Integer month, Long startId, Long endId) ;
+    List<VoIntakeAmountStatistics> statisticsByIntake(@Param("year")Integer year, @Param("month")Integer month, @Param("startId")Long startId, @Param("endId")Long endId) ;
     /**
      * 浠ュ彇姘村彛缁村害缁熻鍙栨按閲�
      * @param year 缁熻骞村害
      * @return
      */
     List<VoIntakeAmountStatistics> statisticsByIntake(Integer year) ;
+
+
+    ////////////////////////////////////////////////
+    // 缁熻鏌ヨ
+    ///////////////////////////////////////////////
+
+    /**
+     * 涓烘煡璇㈢粺璁″彇姘村彛鏃ユ紡鎹熼噺锛岀粺璁″彇姘村彛鏁伴噺
+     * @param intakeN
+     * @return
+     */
+    Long selectIntakeCount4AmountMonth(@Param("intakeNum")String intakeN) ;
+
+    /**
+     * 涓烘煡璇㈢粺璁″彇姘村彛鏃ユ紡鎹熼噺锛屾煡璇竴椤靛彇姘村彛ID
+     * @param params
+     * @return
+     */
+    List<VoMonthAmount> selectIntakes4AmountMonth(Map<?, ?> params) ;
+
+    /**
+     * 鏌ヨ缁熻鍙栨按鍙f湀婕忔崯閲�
+     * @param params
+     * @return
+     */
+    //涓嬮潰1鍒�12鏈堝垎浜�2涓煡璇紝鍘熷洜鏄湪涓�涓煡璇腑锛岄潪甯告參锛屼笉鐭ラ亾浠�涔堝師鍥狅紝涔熻鏄瓙鏌ヨ澶鐨勫師鍥�
+    List<VoMonthAmount> selectIntakeAmountOfMonth01_06(Map<?, ?> params);
+    List<VoMonthAmount> selectIntakeAmountOfMonth07_12(Map<?, ?> params);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoDayIntakeAmount.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoDayIntakeAmount.java
index 88fef3c..384f01a 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoDayIntakeAmount.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoDayIntakeAmount.java
@@ -16,79 +16,88 @@
 @Data
 @JsonPropertyOrder({ "intakeId", "intakeNum", "amount1" , "amount2" , "amount3" , "amount4" , "amount5" , "amount6" , "amount7" , "amount8" , "amount9" , "amount10" , "amount11" , "amount12" , "amount13" , "amount14" , "amount15" , "amount16" , "amount17" , "amount18" , "amount19" , "amount20" , "amount21" , "amount22" , "amount23" , "amount24" , "amount25" , "amount26" , "amount27" , "amount28" , "amount29" , "amount30" , "amount31" })
 public class VoDayIntakeAmount {
-    private static final long serialVersionUID = 202408080933001L;
+    public static final long serialVersionUID = 202408080933001L;
 
     /**
      * 鍙栨按鍙D
      */
     @JSONField(serializeUsing= ObjectWriterImplToString.class)
-    private Long intakeId;
+    public Long intakeId;
 
     /**
      * 鍙栨按鍙g紪鍙�
      */
-    private String intakeNum;
+    public String intakeNum;
+
+    /**
+     * 缁忓害
+     */
+    public Double intakeLng;
+    /**
+     * 绾害
+     */
+    public Double intakeLat;
 
     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
-    private Double amount1;
+    public Double amount1;
     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
-    private Double amount2;
+    public Double amount2;
     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
-    private Double amount3;
+    public Double amount3;
     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
-    private Double amount4;
+    public Double amount4;
     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
-    private Double amount5;
+    public Double amount5;
     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
-    private Double amount6;
+    public Double amount6;
     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
-    private Double amount7;
+    public Double amount7;
     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
-    private Double amount8;
+    public Double amount8;
     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
-    private Double amount9;
+    public Double amount9;
     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
-    private Double amount10;
+    public Double amount10;
     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
-    private Double amount11;
+    public Double amount11;
     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
-    private Double amount12;
+    public Double amount12;
     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
-    private Double amount13;
+    public Double amount13;
     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
-    private Double amount14;
+    public Double amount14;
     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
-    private Double amount15;
+    public Double amount15;
     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
-    private Double amount16;
+    public Double amount16;
     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
-    private Double amount17;
+    public Double amount17;
     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
-    private Double amount18;
+    public Double amount18;
     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
-    private Double amount19;
+    public Double amount19;
     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
-    private Double amount20;
+    public Double amount20;
     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
-    private Double amount21;
+    public Double amount21;
     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
-    private Double amount22;
+    public Double amount22;
     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
-    private Double amount23;
+    public Double amount23;
     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
-    private Double amount24;
+    public Double amount24;
     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
-    private Double amount25;
+    public Double amount25;
     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
-    private Double amount26;
+    public Double amount26;
     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
-    private Double amount27;
+    public Double amount27;
     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
-    private Double amount28;
+    public Double amount28;
     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
-    private Double amount29;
+    public Double amount29;
     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
-    private Double amount30;
+    public Double amount30;
     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
-    private Double amount31;
+    public Double amount31;
 }
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml
index c68b2b7..7ddc8ab 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml
@@ -549,4 +549,451 @@
             </if>
         </trim>
     </select>
+
+
+
+
+    <!-- 涓烘煡璇㈢粺璁″彇姘村彛鏃ユ紡鎹熼噺锛岀粺璁″彇姘村彛鏁伴噺 -->
+    <select id="selectIntakeCount4AmountDay" 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="selectIntakes4AmountDay" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount">
+        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>
+
+    <sql id="selectIntakeAmountOfDay_with">
+        SELECT intaId.intakeId   AS intakeId,
+               riad.dt           AS dt,
+               riad.amount       AS amount
+        FROM JSON_TABLE(
+            #{intakesJson},
+            '$[*]' COLUMNS (
+                intakeId BIGINT PATH '$.intakeId'
+            )
+        ) intaId
+        INNER JOIN rm_intake_amount_day riad ON riad.intake_id = intaId.intakeId
+        <where>
+            <if test="startDt != null ">
+                AND riad.dt <![CDATA[>=]]> #{startDt, javaType=DATE, jdbcType=DATE}
+            </if>
+            <if test="endDt != null ">
+                AND riad.dt <![CDATA[<=]]> #{endDt, javaType=DATE, jdbcType=DATE}
+            </if>
+        </where>
+    </sql>
+
+  <!--缁熻鎸囧畾鏈堜唤鍚勫ぉ鍙栨按閲�(1鍙峰埌5鍙�)-->
+  <select id="selectIntakeAmountOfDay01_05" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount">
+    WITH intakeAmountDay AS (<include refid="selectIntakeAmountOfDay_with"/>)
+    SELECT inta.intakeId     AS intakeId,
+           inta.intakeNum    AS intakeNum,
+           inta.intakeLng    AS intakeLng,
+           inta.intakeLat    AS intakeLat,
+           tb01.amount       AS amount1,
+           tb02.amount       AS amount2,
+           tb03.amount       AS amount3,
+           tb04.amount       AS amount4,
+           tb05.amount       AS amount5
+    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.amount   AS amount
+        FROM intakeAmountDay 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.amount   AS amount
+        FROM intakeAmountDay 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.amount   AS amount
+        FROM intakeAmountDay 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.amount   AS amount
+        FROM intakeAmountDay 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.amount   AS amount
+        FROM intakeAmountDay 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="selectIntakeAmountOfDay06_10" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount">
+    WITH intakeAmountDay AS (<include refid="selectIntakeAmountOfDay_with"/>)
+    SELECT inta.intakeId     AS intakeId,
+           inta.intakeNum    AS intakeNum,
+           inta.intakeLng    AS intakeLng,
+           inta.intakeLat    AS intakeLat,
+           tb06.amount       AS amount6,
+           tb07.amount       AS amount7,
+           tb08.amount       AS amount8,
+           tb09.amount       AS amount9,
+           tb10.amount       AS amount10
+    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.amount   AS amount
+        FROM intakeAmountDay 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.amount   AS amount
+        FROM intakeAmountDay 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.amount   AS amount
+        FROM intakeAmountDay 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.amount   AS amount
+        FROM intakeAmountDay 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.amount   AS amount
+        FROM intakeAmountDay 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="selectIntakeAmountOfDay11_15" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount">
+    WITH intakeAmountDay AS (<include refid="selectIntakeAmountOfDay_with"/>)
+    SELECT inta.intakeId     AS intakeId,
+           inta.intakeNum    AS intakeNum,
+           inta.intakeLng    AS intakeLng,
+           inta.intakeLat    AS intakeLat,
+           tb11.amount       AS amount11,
+           tb12.amount       AS amount12,
+           tb13.amount       AS amount13,
+           tb14.amount       AS amount14,
+           tb15.amount       AS amount15
+    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.amount   AS amount
+        FROM intakeAmountDay 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.amount   AS amount
+        FROM intakeAmountDay 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.amount   AS amount
+        FROM intakeAmountDay 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.amount   AS amount
+        FROM intakeAmountDay 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.amount   AS amount
+        FROM intakeAmountDay 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="selectIntakeAmountOfDay16_20" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount">
+    WITH intakeAmountDay AS (<include refid="selectIntakeAmountOfDay_with"/>)
+    SELECT inta.intakeId     AS intakeId,
+           inta.intakeNum    AS intakeNum,
+           inta.intakeLng    AS intakeLng,
+           inta.intakeLat    AS intakeLat,
+           tb16.amount       AS amount16,
+           tb17.amount       AS amount17,
+           tb18.amount       AS amount18,
+           tb19.amount       AS amount19,
+           tb20.amount       AS amount20
+    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.amount   AS amount
+        FROM intakeAmountDay 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.amount   AS amount
+        FROM intakeAmountDay 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.amount   AS amount
+        FROM intakeAmountDay 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.amount   AS amount
+        FROM intakeAmountDay 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.amount   AS amount
+        FROM intakeAmountDay 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="selectIntakeAmountOfDay21_25" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount">
+    WITH intakeAmountDay AS (<include refid="selectIntakeAmountOfDay_with"/>)
+    SELECT inta.intakeId     AS intakeId,
+           inta.intakeNum    AS intakeNum,
+           inta.intakeLng    AS intakeLng,
+           inta.intakeLat    AS intakeLat,
+           tb21.amount       AS amount21,
+           tb22.amount       AS amount22,
+           tb23.amount       AS amount23,
+           tb24.amount       AS amount24,
+           tb25.amount       AS amount25
+    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.amount   AS amount
+        FROM intakeAmountDay 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.amount   AS amount
+        FROM intakeAmountDay 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.amount   AS amount
+        FROM intakeAmountDay 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.amount   AS amount
+        FROM intakeAmountDay 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.amount   AS amount
+        FROM intakeAmountDay 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="selectIntakeAmountOfDay26_31" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount">
+    WITH intakeAmountDay AS (<include refid="selectIntakeAmountOfDay_with"/>)
+    SELECT inta.intakeId     AS intakeId,
+           inta.intakeNum    AS intakeNum,
+           inta.intakeLng    AS intakeLng,
+           inta.intakeLat    AS intakeLat,
+           tb26.amount       AS amount26,
+           tb27.amount       AS amount27,
+           tb28.amount       AS amount28,
+           tb29.amount       AS amount29,
+           tb30.amount       AS amount30,
+           tb31.amount       AS amount31
+    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.amount   AS amount
+        FROM intakeAmountDay 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.amount   AS amount
+        FROM intakeAmountDay 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.amount   AS amount
+        FROM intakeAmountDay 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.amount   AS amount
+        FROM intakeAmountDay 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.amount   AS amount
+        FROM intakeAmountDay 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.amount   AS amount
+        FROM intakeAmountDay 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
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/StIntakeAmountMonthMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/StIntakeAmountMonthMapper.xml
index 8c63d23..cb32952 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/StIntakeAmountMonthMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/StIntakeAmountMonthMapper.xml
@@ -123,4 +123,191 @@
     group by intake_id
   </select>
 
+
+
+
+  <!-- 涓烘煡璇㈢粺璁″彇姘村彛鏃ョ敤姘撮噺锛岀粺璁″彇姘村彛鏁伴噺 -->
+  <select id="selectIntakeCount4AmountMonth" 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="selectIntakes4AmountMonth" resultType="com.dy.pipIrrGlobal.voSt.VoMonthAmount">
+    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>
+
+  <sql id="selectIntakeAmountOfMonth_with">
+      SELECT intaId.intakeId   AS intakeId,
+             siam.year          AS `year`,
+             siam.month         AS `month`,
+             siam.amount        AS amount
+      FROM JSON_TABLE(
+        #{intakesJson},
+          '$[*]' COLUMNS (
+          intakeId BIGINT PATH '$.intakeId'
+        )
+      ) intaId
+      INNER JOIN st_intake_amount_month siam ON siam.intake_id = intaId.intakeId
+      <where>
+        <if test="year != null ">
+          AND siam.year = #{year, javaType=Integer, jdbcType=INTEGER}
+        </if>
+      </where>
+  </sql>
+
+  <!--缁熻鎸囧畾鏈堜唤鍚勬湀鐢ㄦ按閲�(1鍙峰埌6鏈�)-->
+  <select id="selectIntakeAmountOfMonth01_06" resultType="com.dy.pipIrrGlobal.voSt.VoMonthAmount">
+    WITH intakeAmountMonth AS (<include refid="selectIntakeAmountOfMonth_with" />)
+    SELECT inta.intakeId     AS intakeId,
+           inta.intakeNum    AS intakeNum,
+           inta.intakeLng    AS intakeLng,
+           inta.intakeLat    AS intakeLat,
+           tb01.amount   AS month1,
+           tb02.amount   AS month2,
+           tb03.amount   AS month3,
+           tb04.amount   AS month4,
+           tb05.amount   AS month5,
+           tb06.amount   AS month6
+    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.amount AS amount
+      FROM intakeAmountMonth AS tb
+      WHERE tb.year = #{year}
+            AND tb.month = 1
+    ) as tb01 on tb01.intakeId = inta.intakeId
+    LEFT JOIN (
+      SELECT tb.intakeId AS intakeId,
+             tb.amount AS amount
+      FROM intakeAmountMonth AS tb
+      WHERE tb.year = #{year}
+            AND tb.month = 2
+    ) as tb02 on tb02.intakeId = inta.intakeId
+    LEFT JOIN (
+      SELECT tb.intakeId AS intakeId,
+             tb.amount AS amount
+      FROM intakeAmountMonth AS tb
+      WHERE tb.year = #{year}
+            AND tb.month = 3
+    ) as tb03 on tb03.intakeId = inta.intakeId
+    LEFT JOIN (
+      SELECT tb.intakeId AS intakeId,
+             tb.amount AS amount
+      FROM intakeAmountMonth AS tb
+      WHERE tb.year = #{year}
+            AND tb.month = 4
+    ) as tb04 on tb04.intakeId = inta.intakeId
+    LEFT JOIN (
+      SELECT tb.intakeId AS intakeId,
+             tb.amount AS amount
+      FROM intakeAmountMonth AS tb
+      WHERE tb.year = #{year}
+            AND tb.month = 5
+    ) as tb05 on tb05.intakeId = inta.intakeId
+    LEFT JOIN (
+      SELECT tb.intakeId AS intakeId,
+             tb.amount AS amount
+      FROM intakeAmountMonth AS tb
+      WHERE tb.year = #{year}
+            AND tb.month = 6
+    ) as tb06 on tb06.intakeId = inta.intakeId
+  </select>
+
+  <!--缁熻鎸囧畾鏈堜唤鍚勬湀鐢ㄦ按閲�(7鍙峰埌12鏈�)-->
+  <select id="selectIntakeAmountOfMonth07_12" resultType="com.dy.pipIrrGlobal.voSt.VoMonthAmount">
+    WITH intakeAmountMonth AS (<include refid="selectIntakeAmountOfMonth_with" />)
+    SELECT inta.intakeId     AS intakeId,
+           inta.intakeNum    AS intakeNum,
+           inta.intakeLng    AS intakeLng,
+           inta.intakeLat    AS intakeLat,
+           tb07.amount   AS month7,
+           tb08.amount   AS month8,
+           tb09.amount   AS month9,
+           tb010.amount  AS month10,
+           tb011.amount  AS month11,
+           tb012.amount  AS month12
+    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.amount AS amount
+      FROM intakeAmountMonth AS tb
+      WHERE tb.year = #{year}
+            AND tb.month = 7
+    ) as tb07 on tb07.intakeId = inta.intakeId
+    LEFT JOIN (
+      SELECT tb.intakeId AS intakeId,
+             tb.amount AS amount
+      FROM intakeAmountMonth AS tb
+      WHERE tb.year = #{year}
+            AND tb.month = 8
+    ) as tb08 on tb08.intakeId = inta.intakeId
+    LEFT JOIN (
+      SELECT tb.intakeId AS intakeId,
+             tb.amount AS amount
+      FROM intakeAmountMonth AS tb
+      WHERE tb.year = #{year}
+            AND tb.month = 9
+    ) as tb09 on tb09.intakeId = inta.intakeId
+    LEFT JOIN (
+      SELECT tb.intakeId AS intakeId,
+             tb.amount AS amount
+      FROM intakeAmountMonth AS tb
+      WHERE tb.year = #{year}
+            AND tb.month = 10
+    ) as tb010 on tb010.intakeId = inta.intakeId
+    LEFT JOIN (
+      SELECT tb.intakeId AS intakeId,
+             tb.amount AS amount
+      FROM intakeAmountMonth AS tb
+      WHERE tb.year = #{year}
+            AND tb.month = 11
+    ) as tb011 on tb011.intakeId = inta.intakeId
+    LEFT JOIN (
+      SELECT tb.intakeId AS intakeId,
+             tb.amount AS amount
+      FROM intakeAmountMonth AS tb
+      WHERE tb.year = #{year}
+            AND tb.month = 12
+    ) as tb012 on tb012.intakeId = inta.intakeId
+  </select>
+
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intaker/IntakeCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intaker/IntakeCtrl.java
new file mode 100644
index 0000000..2fb3f45
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intaker/IntakeCtrl.java
@@ -0,0 +1,72 @@
+package com.dy.pipIrrStatistics.intaker;
+
+import com.dy.common.aop.SsoAop;
+import com.dy.common.util.DateTime;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.common.webUtil.QueryResultVo;
+import com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount;
+import com.dy.pipIrrGlobal.voSt.VoMonthAmount;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/12/12 16:24
+ * @Description 鏈夊叧鍙栨按鍙g敤姘寸粺璁�
+ */
+@Slf4j
+@RestController
+@RequestMapping(path="intake")
+@RequiredArgsConstructor
+public class IntakeCtrl {
+
+    private IntakeSv sv;
+
+    @Autowired
+    public void setSv(IntakeSv sv){
+        this.sv = sv ;
+    }
+
+    /**
+     * 鏌ヨ鎸囧畾鏈堜唤鍚勬棩鐢ㄦ按閲�
+     * @param qo
+     * @return
+     */
+    @GetMapping(path = "/amountOfDay")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VoDayIntakeAmount>>> amountOfDay(IntakeQo qo) throws Exception {
+        String yearMonth = qo.getYearMonth();
+        if(yearMonth == null || yearMonth.trim().equals("")) {
+            return BaseResponseUtils.buildErrorMsg("鏌ヨ鏉′欢骞存湀涓嶈兘涓虹┖");
+        }
+        qo.startDt = DateTime.dateFrom_yyyy_MM_dd(yearMonth + "-01");
+        qo.endDt = DateTime.dateFrom_yyyy_MM_dd(yearMonth + "-31");
+
+        int[] ymd = DateTime.yyyy_MM_ymdGroup(yearMonth) ;
+        qo.year = ymd[0] ;
+        qo.month = ymd[1] ;
+
+        return BaseResponseUtils.buildSuccess(this.sv.amountOfDay(qo));
+    }
+
+    /**
+     * 鏌ヨ鎸囧畾鏈堜唤鍚勬棩鐢ㄦ按閲�
+     * @param qo
+     * @return
+     */
+    @GetMapping(path = "/amountOfMonth")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VoMonthAmount>>> amountOfMonth(IntakeQo qo) throws Exception {
+        if(qo.getYear() == null) {
+            return BaseResponseUtils.buildErrorMsg("鏌ヨ鏉′欢骞村害涓嶈兘涓虹┖");
+        }
+        return BaseResponseUtils.buildSuccess(this.sv.amountOfMonth(qo));
+    }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intaker/IntakeQo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intaker/IntakeQo.java
new file mode 100644
index 0000000..f899064
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intaker/IntakeQo.java
@@ -0,0 +1,48 @@
+package com.dy.pipIrrStatistics.intaker;
+
+import com.dy.common.webUtil.QueryConditionVo;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/12/12 16:34
+ * @Description
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class IntakeQo  extends QueryConditionVo {
+
+    /**
+     * 缁熻骞存湀
+     */
+    public String yearMonth;
+
+    /**
+     * 鏌ヨ寮�濮嬫棩鏈燂紙骞存湀鏃ワ級
+     */
+    public Date startDt ;
+
+    /**
+     * 鏌ヨ鎴鏃ユ湡锛堝勾鏈堟棩锛�
+     */
+    public Date endDt ;
+
+
+    /**
+     * 骞�
+     */
+    public Integer year;
+
+    /**
+     * 鏈�
+     */
+    public Integer month;
+
+    /**
+     * 鍙栨按鍙g紪鍙�
+     */
+    public String intakeNum;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intaker/IntakeSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intaker/IntakeSv.java
new file mode 100644
index 0000000..3d419ad
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intaker/IntakeSv.java
@@ -0,0 +1,188 @@
+package com.dy.pipIrrStatistics.intaker;
+
+import com.alibaba.fastjson2.JSON;
+import com.dy.common.webUtil.QueryResultVo;
+import com.dy.pipIrrGlobal.daoRm.RmIntakeAmountDayMapper;
+import com.dy.pipIrrGlobal.daoSt.StIntakeAmountMonthMapper;
+import com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount;
+import com.dy.pipIrrGlobal.voSt.VoMonthAmount;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.common.utils.PojoUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.text.ParseException;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/12/12 16:24
+ * @Description
+ */
+@Slf4j
+@Service
+public class IntakeSv {
+
+    @Autowired
+    private RmIntakeAmountDayMapper dayDao ;
+
+    @Autowired
+    private StIntakeAmountMonthMapper monthDao ;
+
+
+    /**
+     * 缁熻鎸囧畾鏈堜唤鍚勫ぉ鐢ㄦ按閲�
+     * @param qo
+     * @return
+     */
+    public QueryResultVo<List<VoDayIntakeAmount>> amountOfDay(IntakeQo qo) throws ParseException {
+        QueryResultVo<List<VoDayIntakeAmount>> rsVo = new QueryResultVo<>() ;
+        // 鐢熸垚鏌ヨ鍙傛暟
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
+        // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曟暟
+        Long itemTotal = dayDao.selectIntakeCount4AmountDay(qo.intakeNum) ;
+
+        if(itemTotal != null && itemTotal > 0){
+            rsVo.pageSize = qo.pageSize ;
+            rsVo.pageCurr = qo.pageCurr ;
+            rsVo.calculateAndSet(itemTotal, params);
+
+            List<VoDayIntakeAmount> list = dayDao.selectIntakes4AmountDay(params);
+            if(list == null || list.size() == 0){
+                rsVo.obj = list ;
+            }else{
+                String json = JSON.toJSONString(list) ;
+                params.put("intakesJson", json);
+
+                List<VoDayIntakeAmount> list01_05 = dayDao.selectIntakeAmountOfDay01_05(params);
+                if(list01_05 != null && list01_05.size() > 0){
+                    //涓嬮潰1鍒�31鍙峰垎浜�6涓煡璇紝鍘熷洜鏄湪涓�涓煡璇腑锛岄潪甯告參锛屼笉鐭ラ亾浠�涔堝師鍥狅紝涔熻鏄瓙鏌ヨ澶鐨勫師鍥�
+                    List<VoDayIntakeAmount> list06_10 = dayDao.selectIntakeAmountOfDay06_10(params);
+                    List<VoDayIntakeAmount> list11_15 = dayDao.selectIntakeAmountOfDay11_15(params);
+                    List<VoDayIntakeAmount> list16_20 = dayDao.selectIntakeAmountOfDay16_20(params);
+                    List<VoDayIntakeAmount> list21_25 = dayDao.selectIntakeAmountOfDay21_25(params);
+                    List<VoDayIntakeAmount> list26_31 = dayDao.selectIntakeAmountOfDay26_31(params);
+                    this.merge(list01_05, list06_10, list11_15, list16_20, list21_25, list26_31);
+                }
+                rsVo.obj = list01_05 ;
+            }
+        }
+        return rsVo ;
+    }
+
+    private void merge(List<VoDayIntakeAmount> list01_05,
+                       List<VoDayIntakeAmount> list06_10,
+                       List<VoDayIntakeAmount> list11_15,
+                       List<VoDayIntakeAmount> list16_20,
+                       List<VoDayIntakeAmount> list21_25,
+                       List<VoDayIntakeAmount> list26_31){
+        for(VoDayIntakeAmount vo01_05 : list01_05){
+            for(VoDayIntakeAmount vo06_10 : list06_10){
+                if(vo01_05.intakeId.longValue() == vo06_10.intakeId.longValue()){
+                    vo01_05.amount6 = vo06_10.amount6 ;
+                    vo01_05.amount7 = vo06_10.amount7 ;
+                    vo01_05.amount8 = vo06_10.amount8 ;
+                    vo01_05.amount9 = vo06_10.amount9 ;
+                    vo01_05.amount10 = vo06_10.amount10 ;
+                    break ;
+                }
+            }
+            for(VoDayIntakeAmount vo11_15 : list11_15){
+                if(vo01_05.intakeId.longValue() == vo11_15.intakeId.longValue()){
+                    vo01_05.amount11 = vo11_15.amount11 ;
+                    vo01_05.amount12 = vo11_15.amount12 ;
+                    vo01_05.amount13 = vo11_15.amount13 ;
+                    vo01_05.amount14 = vo11_15.amount14 ;
+                    vo01_05.amount15 = vo11_15.amount15 ;
+                    break ;
+                }
+            }
+            for(VoDayIntakeAmount vo16_20 : list16_20){
+                if(vo01_05.intakeId.longValue() == vo16_20.intakeId.longValue()){
+                    vo01_05.amount16 = vo16_20.amount16 ;
+                    vo01_05.amount17 = vo16_20.amount17 ;
+                    vo01_05.amount18 = vo16_20.amount18 ;
+                    vo01_05.amount19 = vo16_20.amount19 ;
+                    vo01_05.amount20 = vo16_20.amount20 ;
+                    break ;
+                }
+            }
+            for(VoDayIntakeAmount vo21_25 : list21_25){
+                if(vo01_05.intakeId.longValue() == vo21_25.intakeId.longValue()){
+                    vo01_05.amount21 = vo21_25.amount21 ;
+                    vo01_05.amount22 = vo21_25.amount22 ;
+                    vo01_05.amount23 = vo21_25.amount23 ;
+                    vo01_05.amount24 = vo21_25.amount24 ;
+                    vo01_05.amount25 = vo21_25.amount25 ;
+                    break ;
+                }
+            }
+            for(VoDayIntakeAmount vo26_31 : list26_31){
+                if(vo01_05.intakeId.longValue() == vo26_31.intakeId.longValue()){
+                    vo01_05.amount26 = vo26_31.amount26 ;
+                    vo01_05.amount27 = vo26_31.amount27 ;
+                    vo01_05.amount28 = vo26_31.amount28 ;
+                    vo01_05.amount29 = vo26_31.amount29 ;
+                    vo01_05.amount30 = vo26_31.amount30 ;
+                    vo01_05.amount31 = vo26_31.amount31 ;
+                    break ;
+                }
+            }
+        }
+    }
+
+
+    /**
+     * 缁熻鎸囧畾鏈堜唤鍚勬湀鐢ㄦ按閲�
+     * @param qo
+     * @return
+     */
+    public QueryResultVo<List<VoMonthAmount>> amountOfMonth(IntakeQo qo) throws ParseException {
+        QueryResultVo<List<VoMonthAmount>> rsVo = new QueryResultVo<>() ;
+        // 鐢熸垚鏌ヨ鍙傛暟
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
+        // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曟暟
+        Long itemTotal = monthDao.selectIntakeCount4AmountMonth(qo.intakeNum) ;
+
+        if(itemTotal != null && itemTotal > 0){
+            rsVo.pageSize = qo.pageSize ;
+            rsVo.pageCurr = qo.pageCurr ;
+            rsVo.calculateAndSet(itemTotal, params);
+
+            List<VoMonthAmount> list = monthDao.selectIntakes4AmountMonth(params);
+            if(list == null || list.size() == 0){
+                rsVo.obj = list ;
+            }else{
+                String json = JSON.toJSONString(list) ;
+                params.put("intakesJson", json);
+
+                List<VoMonthAmount> list01_06 = monthDao.selectIntakeAmountOfMonth01_06(params);
+                if(list01_06 != null && list01_06.size() > 0){
+                    //涓嬮潰1鍒�12鏈堝垎浜�2涓煡璇紝鍘熷洜鏄湪涓�涓煡璇腑锛岄潪甯告參锛屼笉鐭ラ亾浠�涔堝師鍥狅紝涔熻鏄瓙鏌ヨ澶鐨勫師鍥�
+                    List<VoMonthAmount> list07_12 = monthDao.selectIntakeAmountOfMonth07_12(params);
+                    this.merge(list01_06, list07_12);
+                }
+                rsVo.obj = list01_06 ;
+            }
+        }
+        return rsVo ;
+    }
+
+    private void merge(List<VoMonthAmount> list01_06,
+                       List<VoMonthAmount> list07_12){
+        for(VoMonthAmount vo01_06 : list01_06){
+            for(VoMonthAmount vo07_12 : list07_12){
+                if(vo01_06.intakeId.longValue() == vo07_12.intakeId.longValue()){
+                    vo01_06.month7 = vo07_12.month7 ;
+                    vo01_06.month8 = vo07_12.month8 ;
+                    vo01_06.month9 = vo07_12.month9 ;
+                    vo01_06.month10 = vo07_12.month10 ;
+                    vo01_06.month11 = vo07_12.month11 ;
+                    vo01_06.month12 = vo07_12.month12 ;
+                    break ;
+                }
+            }
+        }
+    }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/loss/LossCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/loss/LossCtrl.java
index f28d0f7..2e84f53 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/loss/LossCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/loss/LossCtrl.java
@@ -6,6 +6,7 @@
 import com.dy.common.webUtil.BaseResponseUtils;
 import com.dy.common.webUtil.QueryResultVo;
 import com.dy.pipIrrGlobal.voSt.VoDayLoss;
+import com.dy.pipIrrGlobal.voSt.VoMonthAmount;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -62,7 +63,7 @@
      */
     @GetMapping(path = "/lossAmountOfMonth")
     @SsoAop()
-    public BaseResponse<QueryResultVo<List<VoDayLoss>>> lossAmountOfMonth(LossQo qo) throws Exception {
+    public BaseResponse<QueryResultVo<List<VoMonthAmount>>> lossAmountOfMonth(LossQo qo) throws Exception {
         if(qo.getYear() == null) {
             return BaseResponseUtils.buildErrorMsg("鏌ヨ鏉′欢骞村害涓嶈兘涓虹┖");
         }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/loss/LossSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/loss/LossSv.java
index 63db789..4692924 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/loss/LossSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/loss/LossSv.java
@@ -26,10 +26,10 @@
 public class LossSv {
 
     @Autowired
-    private RmLossDayMapper rmLossDayMapper ;
+    private RmLossDayMapper dayDao;
 
     @Autowired
-    private StLossMonthMapper stLossMonthMapper ;
+    private StLossMonthMapper monthDao;
 
     /**
      * 缁熻鎸囧畾鏈堜唤鍚勫ぉ婕忔崯閲�
@@ -41,28 +41,28 @@
         // 鐢熸垚鏌ヨ鍙傛暟
         Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
         // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曟暟
-        Long itemTotal = rmLossDayMapper.selectIntakeCount4LossDay(qo.intakeNum) ;
+        Long itemTotal = dayDao.selectIntakeCount4LossDay(qo.intakeNum) ;
 
         if(itemTotal != null && itemTotal > 0){
             rsVo.pageSize = qo.pageSize ;
             rsVo.pageCurr = qo.pageCurr ;
             rsVo.calculateAndSet(itemTotal, params);
 
-            List<VoDayLoss> list = rmLossDayMapper.selectIntakes4LossDay(params);
+            List<VoDayLoss> list = dayDao.selectIntakes4LossDay(params);
             if(list == null || list.size() == 0){
                 rsVo.obj = list ;
             }else{
                 String json = JSON.toJSONString(list) ;
                 params.put("intakesJson", json);
 
-                List<VoDayLoss> list01_05 = rmLossDayMapper.selectLossAmountOfDay01_05(params);
+                List<VoDayLoss> list01_05 = dayDao.selectLossAmountOfDay01_05(params);
                 if(list01_05 != null && list01_05.size() > 0){
                     //涓嬮潰1鍒�31鍙峰垎浜�6涓煡璇紝鍘熷洜鏄湪涓�涓煡璇腑锛岄潪甯告參锛屼笉鐭ラ亾浠�涔堝師鍥狅紝涔熻鏄瓙鏌ヨ澶鐨勫師鍥�
-                    List<VoDayLoss> list06_10 = rmLossDayMapper.selectLossAmountOfDay06_10(params);
-                    List<VoDayLoss> list11_15 = rmLossDayMapper.selectLossAmountOfDay11_15(params);
-                    List<VoDayLoss> list16_20 = rmLossDayMapper.selectLossAmountOfDay16_20(params);
-                    List<VoDayLoss> list21_25 = rmLossDayMapper.selectLossAmountOfDay21_25(params);
-                    List<VoDayLoss> list26_31 = rmLossDayMapper.selectLossAmountOfDay26_31(params);
+                    List<VoDayLoss> list06_10 = dayDao.selectLossAmountOfDay06_10(params);
+                    List<VoDayLoss> list11_15 = dayDao.selectLossAmountOfDay11_15(params);
+                    List<VoDayLoss> list16_20 = dayDao.selectLossAmountOfDay16_20(params);
+                    List<VoDayLoss> list21_25 = dayDao.selectLossAmountOfDay21_25(params);
+                    List<VoDayLoss> list26_31 = dayDao.selectLossAmountOfDay26_31(params);
                     this.merge(list01_05, list06_10, list11_15, list16_20, list21_25, list26_31);
                 }
                 rsVo.obj = list01_05 ;
@@ -143,24 +143,24 @@
         // 鐢熸垚鏌ヨ鍙傛暟
         Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
         // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曟暟
-        Long itemTotal = stLossMonthMapper.selectIntakeCount4LossMonth(qo.intakeNum) ;
+        Long itemTotal = monthDao.selectIntakeCount4LossMonth(qo.intakeNum) ;
 
         if(itemTotal != null && itemTotal > 0){
             rsVo.pageSize = qo.pageSize ;
             rsVo.pageCurr = qo.pageCurr ;
             rsVo.calculateAndSet(itemTotal, params);
 
-            List<VoMonthAmount> list = stLossMonthMapper.selectIntakes4LossMonth(params);
+            List<VoMonthAmount> list = monthDao.selectIntakes4LossMonth(params);
             if(list == null || list.size() == 0){
                 rsVo.obj = list ;
             }else{
                 String json = JSON.toJSONString(list) ;
                 params.put("intakesJson", json);
 
-                List<VoMonthAmount> list01_06 = stLossMonthMapper.selectLossAmountOfMonth01_06(params);
+                List<VoMonthAmount> list01_06 = monthDao.selectLossAmountOfMonth01_06(params);
                 if(list01_06 != null && list01_06.size() > 0){
                     //涓嬮潰1鍒�12鏈堝垎浜�2涓煡璇紝鍘熷洜鏄湪涓�涓煡璇腑锛岄潪甯告參锛屼笉鐭ラ亾浠�涔堝師鍥狅紝涔熻鏄瓙鏌ヨ澶鐨勫師鍥�
-                    List<VoMonthAmount> list07_12 = stLossMonthMapper.selectLossAmountOfMonth07_12(params);
+                    List<VoMonthAmount> list07_12 = monthDao.selectLossAmountOfMonth07_12(params);
                     this.merge(list01_06, list07_12);
                 }
                 rsVo.obj = list01_06 ;

--
Gitblit v1.8.0