From 2af7e1dde6b4d1e5800ea644e421250a83a9ecd2 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期一, 30 六月 2025 08:52:42 +0800
Subject: [PATCH] 某一墒情站的日统计数据以月为单位进行查询功能实现

---
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmSoilDayMapper.xml                               |   19 +++++++++++++++++--
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/soil/SoilCtrl.java |   30 ++++++++++++++++++++++++++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/soil/SoilSv.java   |    4 ++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmSoilDayMapper.java                |    6 ++++++
 4 files changed, 57 insertions(+), 2 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmSoilDayMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmSoilDayMapper.java
index 7c2397b..23fc86a 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmSoilDayMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmSoilDayMapper.java
@@ -34,6 +34,12 @@
      * @return
      */
     List<VoSoilDay> selectOneBySoilId(@Param("soilId") Long soilId, @Param("ymd") Integer ymd);
+   /**
+     * 鏍规嵁鎸囧畾鏉′欢鏌ヨ璁板綍
+     * @param soilId
+     * @return
+     */
+    List<VoSoilDay> selectOneMonthBySoilId(@Param("soilId") Long soilId, @Param("ymdStart") Integer ymdStart, @Param("ymdEnd") Integer ymdEnd);
 
     /**
      * 鏍规嵁鎸囧畾鏉′欢鏌ヨ璁板綍鏁伴噺
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmSoilDayMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmSoilDayMapper.xml
index 15338e4..f454600 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmSoilDayMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmSoilDayMapper.xml
@@ -77,7 +77,6 @@
     limit 0,1
   </select>
 
-
   <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇璁板綍-->
   <select id="selectOneBySoilId" resultType="com.dy.pipIrrGlobal.voRm.VoSoilDay">
     select
@@ -94,7 +93,23 @@
     limit 0,1
   </select>
 
-
+  <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇璁板綍-->
+  <select id="selectOneMonthBySoilId" resultType="com.dy.pipIrrGlobal.voRm.VoSoilDay">
+    select
+    <include refid="Part_Column_List" />
+    from rm_soil_day
+    <where>
+      <if test="soilId != null">
+        and soil_id = #{soilId}
+      </if>
+      <if test="ymdStart != null">
+        and ymd &gt;= #{ymdStart}
+      </if>
+      <if test="ymdEnd != null">
+        and ymd &lt;= #{ymdEnd}
+      </if>
+    </where>
+  </select>
 
   <!--鏍规嵁鎸囧畾鏉′欢鏌ヨ璁板綍鏁伴噺-->
   <select id="selectCount" resultType="java.lang.Long">
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/soil/SoilCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/soil/SoilCtrl.java
index 90468c2..0877929 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/soil/SoilCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/soil/SoilCtrl.java
@@ -63,6 +63,36 @@
     }
 
     /**
+     * 鏍规嵁鎸囧畾鏉′欢鏌ヨ鏌愭皵璞$珯鏌愪竴鏃ヨ褰�
+     * @param soilId
+     * @param yyyy_MM
+     * @return
+     */
+    @GetMapping(path = "oneDayByMonth")
+    @SsoAop()
+    public BaseResponse<List<VoSoilDay>> oneDayByMonth(Long soilId, String yyyy_MM){
+        try {
+            if(soilId == null){
+                return BaseResponseUtils.buildFail("澧掓儏绔檌d涓嶈兘涓虹┖") ;
+            }
+            if(yyyy_MM == null || yyyy_MM.trim().equals("")){
+                return BaseResponseUtils.buildFail("鏌ヨ鏈堜唤涓嶈兘涓虹┖") ;
+            }
+            String ymdStr = yyyy_MM.replaceAll("-", "") ;
+            if(!NumUtil.isPlusIntNumber(ymdStr)){
+                return BaseResponseUtils.buildFail("鏌ヨ鏃ユ湡鏍煎紡涓嶆纭紝鏍煎紡瑙勫畾涓簓yyy-MM-dd") ;
+            }
+            Integer ymStart = Integer.parseInt(ymdStr) * 100;
+            Integer ymEnd = Integer.parseInt(ymdStr) * 100 + 31;
+            return BaseResponseUtils.buildSuccess(sv.oneDayByMonth(soilId, ymStart, ymEnd));
+        } catch (Exception e) {
+            return BaseResponseUtils.buildException(e.getMessage()) ;
+        }
+    }
+
+
+
+    /**
      * 鏍规嵁鎸囧畾鏉′欢鏌ヨ鏌愭皵璞$珯涓�浜涙棩璁板綍
      * @param qo
      * @return
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/soil/SoilSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/soil/SoilSv.java
index f25ca0f..ece240c 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/soil/SoilSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/soil/SoilSv.java
@@ -41,6 +41,10 @@
         return null ;
     }
 
+    public List<VoSoilDay> oneDayByMonth(Long soilId, Integer yyyyMMddStart, Integer yyyyMMddEnd) {
+        return this.rmSoilDayDao.selectOneMonthBySoilId(soilId, yyyyMMddStart, yyyyMMddEnd) ;
+    }
+
 
     public QueryResultVo<List<VoSoilDay>> someDay(SoilQo qo) {
         Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo);

--
Gitblit v1.8.0