From aa36d81e83b27c52d126af07a186bf8a9cc9a4f6 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期四, 26 六月 2025 14:36:55 +0800
Subject: [PATCH] 1、增加墒情日数据查询功能; 2、完善代码。
---
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/manure/ManureCtrl.java | 7 +
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/weather/WeatherCtrl.java | 9 +
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoSoilDay.java | 118 +++++++++++++++++++
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmSoilDayMapper.xml | 78 ++++++++++++
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/soil/SoilCtrl.java | 62 ++++++++++
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/soil/SoilSv.java | 28 ++++
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmSoilDayMapper.java | 24 ++++
7 files changed, 322 insertions(+), 4 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 5211723..4310755 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
@@ -2,9 +2,12 @@
import com.dy.pipIrrGlobal.pojoRm.RmSoilDay;
import com.dy.pipIrrGlobal.pojoRm.RmSoilLast;
+import com.dy.pipIrrGlobal.voRm.VoSoil;
+import com.dy.pipIrrGlobal.voRm.VoSoilDay;
import org.apache.ibatis.annotations.Param;
import java.util.List;
+import java.util.Map;
/**
* @Author: liurunyu
@@ -21,6 +24,27 @@
RmSoilDay selectByPrimaryKey(Long id);
List<RmSoilDay> selectRmSoilDay(@Param("stSoilId") Long stSoilId, @Param("ymd") Integer ymd) ;
+ /**
+ * 鏍规嵁鎸囧畾鏉′欢鏌ヨ璁板綍
+ * @param soilId
+ * @return
+ */
+ List<VoSoilDay> selectOneBySoilId(@Param("soilId") Long soilId, @Param("ymd") Integer ymd);
+
+ /**
+ * 鏍规嵁鎸囧畾鏉′欢鏌ヨ璁板綍鏁伴噺
+ * @param params
+ * @return
+ */
+ Long selectCount(Map<?, ?> params);
+
+ /**
+ * 鏍规嵁鎸囧畾鏉′欢鏌ヨ璁板綍
+ * @param params
+ * @return
+ */
+ List<VoSoilDay> selectSome(Map<?, ?> params);
+
int updateByPrimaryKeySelective(RmSoilDay record);
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoSoilDay.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoSoilDay.java
new file mode 100644
index 0000000..e7bceca
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoSoilDay.java
@@ -0,0 +1,118 @@
+package com.dy.pipIrrGlobal.voRm;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/26 9:03
+ * @Description
+ */
+@Data
+public class VoSoilDay {
+ public static final long serialVersionUID = 202506261020001L;
+
+ /**
+ * 璁板綍ID
+ */
+ @JSONField(serializeUsing= ObjectWriterImplToString.class)
+ public Long id;
+
+ /**
+ * 澧掓儏绔橧D
+ */
+ @Schema(description = "澧掓儏绔橧D", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JSONField(serializeUsing= ObjectWriterImplToString.class)
+ public Long soilId;
+
+ /**
+ * 澧掓儏绔欏悕绉�
+ */
+ @Schema(description = "澧掓儏绔欏悕绉�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Long soilName;
+
+
+ /**
+ * 鏁版嵁鏃ユ湡锛堝勾鏈堟棩锛�
+ */
+ @Schema(description = "鏁版嵁鏃ユ湡", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ public Date dt;
+
+
+ /**
+ * 鏃ュ钩鍧囧湡澹ゆ箍搴�1
+ */
+ @Schema(description = "鏃ュ钩鍧囧湡澹ゆ箍搴�1", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
+ public Double soilHumidity1;
+
+ /**
+ * 鏃ュ钩鍧囧湡澹ゆ箍搴�2
+ */
+ @Schema(description = "鏃ュ钩鍧囧湡澹ゆ箍搴�2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
+ public Double soilHumidity2;
+
+ /**
+ * 鏃ュ钩鍧囧湡澹ゆ箍搴�3
+ */
+ @Schema(description = "鏃ュ钩鍧囧湡澹ゆ箍搴�3", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
+ public Double soilHumidity3;
+
+ /**
+ * 鏃ュ钩鍧囧湡澹ゆ箍搴�4
+ */
+ @Schema(description = "鏃ュ钩鍧囧湡澹ゆ箍搴�4", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
+ public Double soilHumidity4;
+
+ /**
+ * 鏃ュ钩鍧囧湡澹ゆ箍搴�5
+ */
+ @Schema(description = "鏃ュ钩鍧囧湡澹ゆ箍搴�5", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
+ public Double soilHumidity5;
+
+ /**
+ * 鏃ュ钩鍧囧湡澹ゆ俯搴�1
+ */
+ @Schema(description = "鏃ュ钩鍧囧湡澹ゆ俯搴�1", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
+ public Double soilTemperature1;
+
+ /**
+ * 鏃ュ钩鍧囧湡澹ゆ俯搴�2
+ */
+ @Schema(description = "鏃ュ钩鍧囧湡澹ゆ俯搴�2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
+ public Double soilTemperature2;
+
+ /**
+ * 鏃ュ钩鍧囧湡澹ゆ俯搴�3
+ */
+ @Schema(description = "鏃ュ钩鍧囧湡澹ゆ俯搴�3", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
+ public Double soilTemperature3;
+
+ /**
+ * 鏃ュ钩鍧囧湡澹ゆ俯搴�4
+ */
+ @Schema(description = "鏃ュ钩鍧囧湡澹ゆ俯搴�4", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
+ public Double soilTemperature4;
+
+ /**
+ * 鏃ュ钩鍧囧湡澹ゆ俯搴�5
+ */
+ @Schema(description = "鏃ュ钩鍧囧湡澹ゆ俯搴�5", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
+ public Double soilTemperature5;
+
+}
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 89a332f..a63c315 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmSoilDayMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmSoilDayMapper.xml
@@ -38,6 +38,12 @@
soil_sum_humidity4, soil_sum_humidity5, soil_sum_temperature1, soil_sum_temperature2,
soil_sum_temperature3, soil_sum_temperature4, soil_sum_temperature5
</sql>
+ <sql id="Part_Column_List">
+ <!--@mbg.generated-->
+ id, soil_id, dt, ymd, soil_humidity1, soil_humidity2, soil_humidity3, soil_humidity4,
+ soil_humidity5, soil_temperature1, soil_temperature2, soil_temperature3, soil_temperature4,
+ soil_temperature5
+ </sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
<!--@mbg.generated-->
select
@@ -55,13 +61,83 @@
<if test="stSoilId != null and stSoilId != ''">
and soil_id = #{stSoilId}
</if>
- <if test="ymd != null and ymd != ''">
+ <if test="ymd != null">
and ymd = #{ymd}
</if>
</where>
limit 0,1
</select>
+
+ <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇璁板綍-->
+ <select id="selectOneBySoilId" 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="ymd != null">
+ and ymd = #{ymd}
+ </if>
+ </where>
+ limit 0,1
+ </select>
+
+
+
+ <!--鏍规嵁鎸囧畾鏉′欢鏌ヨ璁板綍鏁伴噺-->
+ <select id="selectCount" resultType="java.lang.Long">
+ SELECT
+ COUNT(*) AS recordCount
+ FROM rm_soil_day ltb
+ INNER JOIN pr_st_soil mtb ON mtb.id = ltb.soil_id
+ <where>
+ <if test="soilId != null">
+ AND ltb.soil_id = #{soilId}
+ </if>
+ <if test = "no != null">
+ AND mtb.no = #{no}
+ </if>
+ <if test = "name != null and name !=''">
+ AND mtb.name LIKE CONCAT('%',#{name},'%')
+ </if>
+ <if test = "timeStart != null and timeStop != null">
+ AND ltb.dt BETWEEN #{timeStart} AND #{timeStop}
+ </if>
+ </where>
+ </select>
+
+ <!--鏍规嵁鎸囧畾鏉′欢鏌ヨ璁板綍-->
+ <select id="selectSome" resultType="com.dy.pipIrrGlobal.voRm.VoSoilDay">
+ SELECT
+ <include refid="Base_Column_List" />,
+ mtb.`name` AS soilName
+ FROM rm_soil_day ltb
+ INNER JOIN pr_st_soil mtb ON mtb.id = ltb.soil_id
+ <where>
+ <if test="soilId != null">
+ AND ltb.soil_id = #{soilId}
+ </if>
+ <if test = "no != null">
+ AND mtb.no = #{no}
+ </if>
+ <if test = "name != null and name !=''">
+ AND mtb.name LIKE CONCAT('%',#{name},'%')
+ </if>
+ <if test = "timeStart != null and timeStop != null">
+ AND ltb.dt BETWEEN #{timeStart} AND #{timeStop}
+ </if>
+ </where>
+ ORDER BY ltb.soil_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>
+
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
<!--@mbg.generated-->
delete from rm_soil_day
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/manure/ManureCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/manure/ManureCtrl.java
index cd5f92c..b441754 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/manure/ManureCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/manure/ManureCtrl.java
@@ -43,6 +43,9 @@
@SsoAop()
public BaseResponse<VoManure> oneLast(Long manureId){
try {
+ if(manureId == null){
+ return BaseResponseUtils.buildFail("姘磋偉鏈篿d涓嶈兘涓虹┖") ;
+ }
return BaseResponseUtils.buildSuccess(sv.oneLast(manureId));
} catch (Exception e) {
return BaseResponseUtils.buildException(e.getMessage()) ;
@@ -58,7 +61,9 @@
@SsoAop()
public BaseResponse<QueryResultVo<List<VoManure>>> oneHistory(Long manureId){
try {
-
+ if(manureId == null){
+ return BaseResponseUtils.buildFail("姘磋偉鏈篿d涓嶈兘涓虹┖") ;
+ }
return BaseResponseUtils.buildSuccess(sv.oneHistory(manureId));
} catch (Exception e) {
return BaseResponseUtils.buildException(e.getMessage()) ;
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 122a62b..90468c2 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
@@ -1,10 +1,12 @@
package com.dy.pipIrrRemote.mqttSd1.soil;
import com.dy.common.aop.SsoAop;
+import com.dy.common.util.NumUtil;
import com.dy.common.webUtil.BaseResponse;
import com.dy.common.webUtil.BaseResponseUtils;
import com.dy.common.webUtil.QueryResultVo;
import com.dy.pipIrrGlobal.voRm.VoSoil;
+import com.dy.pipIrrGlobal.voRm.VoSoilDay;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -32,6 +34,65 @@
@Autowired
public void setSv(SoilSv sv){
this.sv = sv ;
+ }
+
+ /**
+ * 鏍规嵁鎸囧畾鏉′欢鏌ヨ鏌愭皵璞$珯鏌愪竴鏃ヨ褰�
+ * @param soilId
+ * @param yyyy_MM_dd
+ * @return
+ */
+ @GetMapping(path = "oneDay")
+ @SsoAop()
+ public BaseResponse<VoSoilDay> oneDay(Long soilId, String yyyy_MM_dd){
+ try {
+ if(soilId == null){
+ return BaseResponseUtils.buildFail("澧掓儏绔檌d涓嶈兘涓虹┖") ;
+ }
+ if(yyyy_MM_dd == null || yyyy_MM_dd.trim().equals("")){
+ return BaseResponseUtils.buildFail("鏌ヨ鏃ユ湡涓嶈兘涓虹┖") ;
+ }
+ String ymdStr = yyyy_MM_dd.replaceAll("-", "") ;
+ if(!NumUtil.isPlusIntNumber(ymdStr)){
+ return BaseResponseUtils.buildFail("鏌ヨ鏃ユ湡鏍煎紡涓嶆纭紝鏍煎紡瑙勫畾涓簓yyy-MM-dd") ;
+ }
+ return BaseResponseUtils.buildSuccess(sv.oneDay(soilId, Integer.parseInt(ymdStr)));
+ } catch (Exception e) {
+ return BaseResponseUtils.buildException(e.getMessage()) ;
+ }
+ }
+
+ /**
+ * 鏍规嵁鎸囧畾鏉′欢鏌ヨ鏌愭皵璞$珯涓�浜涙棩璁板綍
+ * @param qo
+ * @return
+ */
+ @GetMapping(path = "oneSomeDay")
+ @SsoAop()
+ public BaseResponse<QueryResultVo<List<VoSoilDay>>> oneSomeDay(SoilQo qo){
+ try {
+ if(qo.soilId == null){
+ return BaseResponseUtils.buildFail("澧掓儏绔檌d涓嶈兘涓虹┖") ;
+ }
+ return BaseResponseUtils.buildSuccess(sv.someDay(qo));
+ } catch (Exception e) {
+ return BaseResponseUtils.buildException(e.getMessage()) ;
+ }
+ }
+
+ /**
+ * 鏍规嵁鎸囧畾鏉′欢鏌ヨ涓�浜涙皵璞$珯鏃ヨ褰�
+ * @param qo
+ * @return
+ */
+ @GetMapping(path = "someDay")
+ @SsoAop()
+ public BaseResponse<QueryResultVo<List<VoSoilDay>>> someDay(SoilQo qo){
+ try {
+ return BaseResponseUtils.buildSuccess(sv.someDay(qo));
+ } catch (Exception e) {
+ return BaseResponseUtils.buildException(e.getMessage()) ;
+ }
}
/**
@@ -65,6 +126,7 @@
}
}
+
/**
* 鏍规嵁鎸囧畾鏉′欢鏌ヨ鏈�鏂拌褰�
* @param qo
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 cac7ee4..f25ca0f 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
@@ -1,9 +1,11 @@
package com.dy.pipIrrRemote.mqttSd1.soil;
import com.dy.common.webUtil.QueryResultVo;
+import com.dy.pipIrrGlobal.daoRm.RmSoilDayMapper;
import com.dy.pipIrrGlobal.daoRm.RmSoilHistoryMapper;
import com.dy.pipIrrGlobal.daoRm.RmSoilLastMapper;
import com.dy.pipIrrGlobal.voRm.VoSoil;
+import com.dy.pipIrrGlobal.voRm.VoSoilDay;
import com.dy.pipIrrRemote.mqttSd1.soil.SoilQo;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -25,10 +27,36 @@
public class SoilSv {
@Autowired
+ private RmSoilDayMapper rmSoilDayDao ;
+ @Autowired
private RmSoilHistoryMapper rmSoilHistoryDao ;
@Autowired
private RmSoilLastMapper rmSoilLastDao ;
+ public VoSoilDay oneDay(Long soilId, Integer yyyyMMdd) {
+ List<VoSoilDay> list = this.rmSoilDayDao.selectOneBySoilId(soilId, yyyyMMdd) ;
+ if(list != null && list.size() > 0) {
+ return list.get(0) ;
+ }
+ return null ;
+ }
+
+
+ public QueryResultVo<List<VoSoilDay>> someDay(SoilQo qo) {
+ Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo);
+ Long itemTotal = rmSoilDayDao.selectCount(params);
+
+ QueryResultVo<List<VoSoilDay>> rsVo = new QueryResultVo<>() ;
+ rsVo.pageSize = qo.pageSize ;
+ rsVo.pageCurr = qo.pageCurr ;
+
+ rsVo.calculateAndSet(itemTotal, params);
+ rsVo.obj = rmSoilDayDao.selectSome(params);
+ return rsVo ;
+ }
+
+
+
public VoSoil oneLast(Long soilId) {
List<VoSoil> list = this.rmSoilLastDao.selectSomeBySoilId(soilId) ;
if(list != null && list.size() > 0) {
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/weather/WeatherCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/weather/WeatherCtrl.java
index 410677e..5ed8380 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/weather/WeatherCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/weather/WeatherCtrl.java
@@ -43,6 +43,9 @@
@SsoAop()
public BaseResponse<VoWeather> oneLast(Long weatherId){
try {
+ if(weatherId == null){
+ return BaseResponseUtils.buildFail("姘旇薄绔檌d涓嶈兘涓虹┖") ;
+ }
return BaseResponseUtils.buildSuccess(sv.oneLast(weatherId));
} catch (Exception e) {
return BaseResponseUtils.buildException(e.getMessage()) ;
@@ -58,8 +61,10 @@
@SsoAop()
public BaseResponse<QueryResultVo<List<VoWeather>>> oneHistory(Long weatherId){
try {
-
- return BaseResponseUtils.buildSuccess(sv.oneHistory(weatherId));
+ if(weatherId == null){
+ return BaseResponseUtils.buildFail("姘旇薄绔檌d涓嶈兘涓虹┖") ;
+ }
+ return BaseResponseUtils.buildSuccess(sv.oneHistory(weatherId));
} catch (Exception e) {
return BaseResponseUtils.buildException(e.getMessage()) ;
}
--
Gitblit v1.8.0