From 1bb46d293291d41a78781d421a3b1f26075c12ab Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期四, 08 八月 2024 14:49:15 +0800
Subject: [PATCH] 2024-08-08 朱宝民 统计指定年份各月用水量
---
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 08ea83e..515bfda 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