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