From 6f2bdc70b4c946719059a5f367776540f98f1978 Mon Sep 17 00:00:00 2001
From: wuzeyu <1223318623@qq.com>
Date: 星期四, 08 八月 2024 14:57:11 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV

---
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountDayMapper.java                   |   16 +++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml                                  |  125 +++++++++++++++++++++++++++++-
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java         |   18 ++++
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java          |   28 ++++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoMonthIntakeAmount.java                        |   43 ++++++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/IntakeAmountQO.java |    7 +
 6 files changed, 227 insertions(+), 10 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 8b80aa8..e23bad8 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
@@ -2,9 +2,10 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay;
-import com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount;
 import com.dy.pipIrrGlobal.voRm.VoIntakeAmountDay;
+import com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount;
 import com.dy.pipIrrGlobal.voSt.VoIntakeAmountStatistics;
+import com.dy.pipIrrGlobal.voSt.VoMonthIntakeAmount;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -105,4 +106,17 @@
      */
     List<VoDayIntakeAmount> getDayIntakeAmount(Map<?, ?> params);
 
+    /**
+     * 缁熻鎸囧畾骞翠唤鍚勬湀鐢ㄦ按閲忚褰曟暟閲�
+     * @param params
+     * @return
+     */
+    Long getMonthIntakeAmountCount(Map<?, ?> params);
+
+    /**
+     * 缁熻鎸囧畾骞翠唤鍚勬湀鐢ㄦ按閲�
+     * @param params
+     * @return
+     */
+    List<VoMonthIntakeAmount> getMonthIntakeAmount(Map<?, ?> params);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoMonthIntakeAmount.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoMonthIntakeAmount.java
new file mode 100644
index 0000000..b4fdfe2
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoMonthIntakeAmount.java
@@ -0,0 +1,43 @@
+package com.dy.pipIrrGlobal.voSt;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-08 14:16
+ * @LastEditTime 2024-08-08 14:16
+ * @Description 鍙栨按鍙f湀鐢ㄦ按瑙嗗浘
+ */
+
+@Data
+@JsonPropertyOrder({ "intakeId", "intakeNum", "month1" , "month2" , "month3" , "month4" , "month5" , "month6" , "month7" , "month8" , "month9" , "month10" , "month11" , "month12"  })
+public class VoMonthIntakeAmount {
+    private static final long serialVersionUID = 202408081417001L;
+
+    /**
+     * 鍙栨按鍙D
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    private Long intakeId;
+
+    /**
+     * 鍙栨按鍙g紪鍙�
+     */
+    private String intakeNum;
+
+    private Double month1;
+    private Double month2;
+    private Double month3;
+    private Double month4;
+    private Double month5;
+    private Double month6;
+    private Double month7;
+    private Double month8;
+    private Double month9;
+    private Double month10;
+    private Double month11;
+    private Double month12;
+}
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 5b247fb..ff1f3fa 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml
@@ -211,10 +211,10 @@
             </if>
         </where>
         ORDER BY riad.id DESC
-<!--        <if test="pageCurr != null and pageSize != null">-->
-<!--            LIMIT ${(pageCurr-1)*pageSize}, ${pageSize}-->
-<!--        </if>-->
-        <trim prefix="limit " >
+        <!--        <if test="pageCurr != null and pageSize != null">-->
+        <!--            LIMIT ${(pageCurr-1)*pageSize}, ${pageSize}-->
+        <!--        </if>-->
+        <trim prefix="limit ">
             <if test="start != null and count != null">
                 #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
             </if>
@@ -234,7 +234,12 @@
     <select id="getDayIntakeAmountCount" resultType="java.lang.Long">
         SELECT COUNT(*) AS recordCount
         FROM pr_intake inta
-        WHERE inta.deleted = 0
+        <where>
+            AND inta.deleted = 0
+            <if test="intakeNum != null and intakeNum != ''">
+                AND inta.name = #{intakeNum}
+            </if>
+        </where>
     </select>
 
     <!--缁熻鎸囧畾鏈堜唤鍚勫ぉ鐢ㄦ按閲�-->
@@ -428,7 +433,115 @@
                          AND MONTH(intaDay.dt) = #{month}
                          AND DAY(intaDay.dt) = 31), 0) AS amount31
         FROM pr_intake inta
-        WHERE inta.deleted = 0
+        <where>
+            AND inta.deleted = 0
+            <if test="intakeNum != null and intakeNum != ''">
+                AND inta.name = #{intakeNum}
+            </if>
+        </where>
+        ORDER BY inta.id
+        <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="getMonthIntakeAmountCount" resultType="java.lang.Long">
+        SELECT COUNT(*) AS recordCount
+        FROM pr_intake inta
+        <where>
+            AND inta.deleted = 0
+            <if test="intakeNum != null and intakeNum != ''">
+                AND inta.name = #{intakeNum}
+            </if>
+        </where>
+    </select>
+
+    <!--缁熻鎸囧畾骞翠唤鍚勬湀鐢ㄦ按閲�-->
+    <select id="getMonthIntakeAmount" resultType="com.dy.pipIrrGlobal.voSt.VoMonthIntakeAmount">
+        SELECT inta.id                                  AS intakeId,
+               inta.name                                AS intakeNum,
+               IFNULL((SELECT SUM(amount) AS amount
+                       FROM rm_intake_amount_day intaDay
+                       WHERE intaDay.intake_id = inta.id
+                         AND YEAR(intaDay.dt) = #{year}
+                         AND MONTH(intaDay.dt) = 1
+                       GROUP BY(intaDay.intake_id)), 0) AS month1,
+               IFNULL((SELECT SUM(amount) AS amount
+                       FROM rm_intake_amount_day intaDay
+                       WHERE intaDay.intake_id = inta.id
+                         AND YEAR(intaDay.dt) = #{year}
+                         AND MONTH(intaDay.dt) = 2
+                       GROUP BY(intaDay.intake_id)), 0) AS month2,
+               IFNULL((SELECT SUM(amount) AS amount
+                       FROM rm_intake_amount_day intaDay
+                       WHERE intaDay.intake_id = inta.id
+                         AND YEAR(intaDay.dt) = #{year}
+                         AND MONTH(intaDay.dt) = 3
+                       GROUP BY(intaDay.intake_id)), 0) AS month3,
+               IFNULL((SELECT SUM(amount) AS amount
+                       FROM rm_intake_amount_day intaDay
+                       WHERE intaDay.intake_id = inta.id
+                         AND YEAR(intaDay.dt) = #{year}
+                         AND MONTH(intaDay.dt) = 4
+                       GROUP BY(intaDay.intake_id)), 0) AS month4,
+               IFNULL((SELECT SUM(amount) AS amount
+                       FROM rm_intake_amount_day intaDay
+                       WHERE intaDay.intake_id = inta.id
+                         AND YEAR(intaDay.dt) = #{year}
+                         AND MONTH(intaDay.dt) = 5
+                       GROUP BY(intaDay.intake_id)), 0) AS month5,
+               IFNULL((SELECT SUM(amount) AS amount
+                       FROM rm_intake_amount_day intaDay
+                       WHERE intaDay.intake_id = inta.id
+                         AND YEAR(intaDay.dt) = #{year}
+                         AND MONTH(intaDay.dt) = 6
+                       GROUP BY(intaDay.intake_id)), 0) AS month6,
+               IFNULL((SELECT SUM(amount) AS amount
+                       FROM rm_intake_amount_day intaDay
+                       WHERE intaDay.intake_id = inta.id
+                         AND YEAR(intaDay.dt) = #{year}
+                         AND MONTH(intaDay.dt) = 7
+                       GROUP BY(intaDay.intake_id)), 0) AS month7,
+               IFNULL((SELECT SUM(amount) AS amount
+                       FROM rm_intake_amount_day intaDay
+                       WHERE intaDay.intake_id = inta.id
+                         AND YEAR(intaDay.dt) = #{year}
+                         AND MONTH(intaDay.dt) = 8
+                       GROUP BY(intaDay.intake_id)), 0) AS month8,
+               IFNULL((SELECT SUM(amount) AS amount
+                       FROM rm_intake_amount_day intaDay
+                       WHERE intaDay.intake_id = inta.id
+                         AND YEAR(intaDay.dt) = #{year}
+                         AND MONTH(intaDay.dt) = 9
+                       GROUP BY(intaDay.intake_id)), 0) AS month9,
+               IFNULL((SELECT SUM(amount) AS amount
+                       FROM rm_intake_amount_day intaDay
+                       WHERE intaDay.intake_id = inta.id
+                         AND YEAR(intaDay.dt) = #{year}
+                         AND MONTH(intaDay.dt) = 10
+                       GROUP BY(intaDay.intake_id)), 0) AS month10,
+               IFNULL((SELECT SUM(amount) AS amount
+                       FROM rm_intake_amount_day intaDay
+                       WHERE intaDay.intake_id = inta.id
+                         AND YEAR(intaDay.dt) = #{year}
+                         AND MONTH(intaDay.dt) = 11
+                       GROUP BY(intaDay.intake_id)), 0) AS month11,
+               IFNULL((SELECT SUM(amount) AS amount
+                       FROM rm_intake_amount_day intaDay
+                       WHERE intaDay.intake_id = inta.id
+                         AND YEAR(intaDay.dt) = #{year}
+                         AND MONTH(intaDay.dt) = 12
+                       GROUP BY(intaDay.intake_id)), 0) AS month12
+        FROM pr_intake inta
+        <where>
+            AND inta.deleted = 0
+            <if test="intakeNum != null and intakeNum != ''">
+                AND inta.name = #{intakeNum}
+            </if>
+        </where>
         ORDER BY inta.id
         <trim prefix="limit ">
             <if test="start != null and count != null">
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java
index 74b0257..4f1b5f9 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java
@@ -646,7 +646,7 @@
      * @param qo
      * @return
      */
-    public QueryResultVo<List<VoDayIntakeAmount>> getDayIntakeAmount(DayIntakeAmountQO qo) {
+    public QueryResultVo<List<VoDayIntakeAmount>> getDayIntakeAmount(IntakeAmountQO qo) {
         Calendar calendar = Calendar.getInstance();
         Integer year = Optional.ofNullable(qo.getYear()).orElse(calendar.get(Calendar.YEAR));
         Integer month = Optional.ofNullable(qo.getMonth()).orElse(calendar.get(Calendar.MONTH));
@@ -668,4 +668,30 @@
         rsVo.obj = rmIntakeAmountDayMapper.getDayIntakeAmount(params);
         return rsVo ;
     }
+
+    /**
+     * 缁熻鎸囧畾骞翠唤鍚勬湀鐢ㄦ按閲�
+     * @param qo
+     * @return
+     */
+    public QueryResultVo<List<VoMonthIntakeAmount>> getMonthIntakeAmount(IntakeAmountQO qo) {
+        Calendar calendar = Calendar.getInstance();
+        Integer year = Optional.ofNullable(qo.getYear()).orElse(calendar.get(Calendar.YEAR));
+        qo.setYear(year);
+
+        // 鐢熸垚鏌ヨ鍙傛暟
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
+
+        // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曟暟
+        Long itemTotal = Optional.ofNullable(rmIntakeAmountDayMapper.getMonthIntakeAmountCount(params)).orElse(0L);
+
+        QueryResultVo<List<VoMonthIntakeAmount>> rsVo = new QueryResultVo<>() ;
+
+        rsVo.pageSize = qo.pageSize ;
+        rsVo.pageCurr = qo.pageCurr ;
+
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = rmIntakeAmountDayMapper.getMonthIntakeAmount(params);
+        return rsVo ;
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java
index ca2a113..d6c8a55 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java
@@ -334,7 +334,7 @@
      */
     @GetMapping(path = "/getDayIntakeAmount")
     @SsoAop()
-    public BaseResponse<QueryResultVo<List<VoDayIntakeAmount>>> getDayIntakeAmount(DayIntakeAmountQO qo) {
+    public BaseResponse<QueryResultVo<List<VoDayIntakeAmount>>> getDayIntakeAmount(IntakeAmountQO qo) {
         try {
             return BaseResponseUtils.buildSuccess(intakeSv.getDayIntakeAmount(qo));
         } catch (Exception e) {
@@ -342,4 +342,20 @@
             return BaseResponseUtils.buildException(e.getMessage()) ;
         }
     }
+
+    /**
+     * 缁熻鎸囧畾骞翠唤鍚勬湀鐢ㄦ按閲�
+     * @param qo
+     * @return
+     */
+    @GetMapping(path = "/getMonthIntakeAmount")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VoMonthIntakeAmount>>> getMonthIntakeAmount(IntakeAmountQO qo) {
+        try {
+            return BaseResponseUtils.buildSuccess(intakeSv.getMonthIntakeAmount(qo));
+        } catch (Exception e) {
+            log.error("鑾峰彇璁板綍寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage()) ;
+        }
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/DayIntakeAmountQO.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/IntakeAmountQO.java
similarity index 72%
rename from pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/DayIntakeAmountQO.java
rename to pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/IntakeAmountQO.java
index 47a6ed5..3c56028 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/DayIntakeAmountQO.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/IntakeAmountQO.java
@@ -11,7 +11,7 @@
  */
 
 @Data
-public class DayIntakeAmountQO extends QueryConditionVo {
+public class IntakeAmountQO extends QueryConditionVo {
 
     /**
      * 骞�
@@ -22,4 +22,9 @@
      * 鏈�
      */
     private Integer month;
+
+    /**
+     * 鍙栨按鍙g紪鍙�
+     */
+    private String intakeNum;
 }

--
Gitblit v1.8.0