From cb02d710e3a984b2e66fe3b2648dad555d832880 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期四, 26 六月 2025 09:44:23 +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/RmWeatherLastMapper.java | 27
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmManureLastMapper.java | 43
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmSoilLastMapper.xml | 222 +++
pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardCtrl.java | 7
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkRtuDealCommandResponse.java | 2
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java | 2
pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/dto/DtoRecharge.java | 1
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStWeatherMapper.xml | 9
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmLossDay.java | 2
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmSoilLast.java | 145 ++
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWeatherLastMapper.xml | 186 ++
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWeatherLast.java | 119 +
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWeatherHistoryMapper.xml | 162 ++
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmLossDayLast.java | 2
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V2/TkRtuDealCommandResponseV2.java | 2
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/SoilVo.java | 2
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmSoilDayMapper.xml | 355 +++++
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml | 2
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWeatherHistory.java | 110 +
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmManureHistoryMapper.xml | 273 +++
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkPreGenObjs4WeatherSdV1.java | 59
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmManureLast.java | 149 ++
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkFindComResponse.java | 2
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkDealWeatherSdV1.java | 105 +
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkFindComResponseSdV1.java | 37
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmManureHistory.java | 142 ++
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmSoilDayMapper.java | 28
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStManureMapper.xml | 8
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmSoilHistoryMapper.java | 22
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/ServerProperties.java | 3
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkPreGenObjs4ManureSdV1.java | 59
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkPreGenObjs4SoilSdV1.java | 59
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoManure.java | 120 +
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java | 230 +++
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/manure/ManureCtrl.java | 66
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmSoilHistory.java | 137 +
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkDealSoilSdV1.java | 133 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttSubMsg.java | 4
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkDealCommandResponseSdV1.java | 58
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmSoilLastMapper.java | 28
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrStManureMapper.java | 2
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/manure/ManureSv.java | 70
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmSoilDay.java | 257 +++
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttTopic.java | 4
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStSoilMapper.xml | 9
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrStSoilMapper.java | 4
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmManureHistoryMapper.java | 41
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmSoilHistoryMapper.xml | 198 ++
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrStWeatherMapper.java | 4
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkRtuDealCommandResponseV202404.java | 2
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWeatherHistoryMapper.java | 22
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml | 20
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/manure/ManureQo.java | 57
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkFindPSdV1.java | 6
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttPubMsg.java | 2
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkDealManureSdV1.java | 127 +
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmManureLastMapper.xml | 300 ++++
57 files changed, 4,227 insertions(+), 20 deletions(-)
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttPubMsg.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttPubMsg.java
index 2c1c6f1..89e4058 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttPubMsg.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttPubMsg.java
@@ -14,7 +14,7 @@
public String cd ;//鍔熻兘鐮�
- public String deviceId ;//璁惧ID
+ public String deviceId ;//璁惧ID(FBox搴忓垪鍙�)
public String mqttResultSendWebUrl ;//Mqtt杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttSubMsg.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttSubMsg.java
index 7577e67..82e6c0d 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttSubMsg.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttSubMsg.java
@@ -14,8 +14,8 @@
public String commandId ;//鍛戒护ID
public String mqttResultSendWebUrl ;//Mtt杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
- public String deviceId ;//璁惧ID
- public String protocol;//鍗忚
+ public String deviceId ;//璁惧ID(FBox搴忓垪鍙�)
+ public String protocol;//鍗忚(鍚嶇О+鐗堟湰)
public MqttTopic topic ;//娑堟伅涓婚
public String metaData;//MQTT鎺ㄩ�佹潵鐨勫厓鏁版嵁
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttTopic.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttTopic.java
index 5bc518e..697991e 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttTopic.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttTopic.java
@@ -14,8 +14,8 @@
@AllArgsConstructor
public class MqttTopic {
public String orgTag ;//缁勭粐鏍囪瘑
- public String protocol ;//鍗忚鍚嶇О
- public String devId ;//璁惧锛團Box锛塈D
+ public String protocol ;//鍗忚鍚嶇О(鍚嶇О+鐗堟湰)
+ public String devId ;//璁惧ID(FBox搴忓垪鍙�)
public String type;//鏁版嵁锛堝懡浠わ級绫诲瀷
public Integer no;//娴嬬珯缂栧彿
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/SoilVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/SoilVo.java
index 7a01088..088dc27 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/SoilVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/SoilVo.java
@@ -32,7 +32,7 @@
@JSONField(name = "鍦熷¥婀垮害5")
public Float soilHumidity5 ;
- @JSONField(name = "鍦熷¥婀垮害1")
+ @JSONField(name = "鍦熷¥娓╁害1")
public Float soilTemperature1 ;
@JSONField(name = "鍦熷¥娓╁害2")
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrStManureMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrStManureMapper.java
index a36c38c..bb8d2eb 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrStManureMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrStManureMapper.java
@@ -6,6 +6,7 @@
import com.dy.pipIrrGlobal.voPr.VoMqttSimple;
import com.dy.pipIrrGlobal.voPr.VoSoil;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
@@ -50,6 +51,7 @@
*/
List<VoManure> selectSome(Map<?, ?> params);
+ List<PrStManure> selectStPoByFBoxIdAndNo(@Param("fbox_id")String fboxId, @Param("no")Integer no) ;
int updateByPrimaryKeySelective(PrStManure record);
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrStSoilMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrStSoilMapper.java
index 9e3dfcf..f83acbe 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrStSoilMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrStSoilMapper.java
@@ -1,10 +1,12 @@
package com.dy.pipIrrGlobal.daoPr;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dy.pipIrrGlobal.pojoPr.PrStManure;
import com.dy.pipIrrGlobal.pojoPr.PrStSoil;
import com.dy.pipIrrGlobal.voPr.VoMqttSimple;
import com.dy.pipIrrGlobal.voPr.VoSoil;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
@@ -49,6 +51,8 @@
*/
List<VoSoil> selectSome(Map<?, ?> params);
+ List<PrStSoil> selectStPoByFBoxIdAndNo(@Param("fbox_id")String fboxId, @Param("no")Integer no) ;
+
int updateByPrimaryKeySelective(PrStSoil record);
int updateByPrimaryKey(PrStSoil record);
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrStWeatherMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrStWeatherMapper.java
index 385526c..46f8cda 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrStWeatherMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrStWeatherMapper.java
@@ -1,10 +1,12 @@
package com.dy.pipIrrGlobal.daoPr;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dy.pipIrrGlobal.pojoPr.PrStSoil;
import com.dy.pipIrrGlobal.pojoPr.PrStWeather;
import com.dy.pipIrrGlobal.voPr.VoMqttSimple;
import com.dy.pipIrrGlobal.voPr.VoWeather;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
@@ -47,6 +49,8 @@
*/
List<VoWeather> selectSome(Map<?, ?> params);
+ List<PrStWeather> selectStPoByFBoxIdAndNo(@Param("fbox_id")String fboxId, @Param("no")Integer no) ;
+
List<VoMqttSimple> selectAllSimple() ;
int updateByPrimaryKeySelective(PrStWeather record);
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmManureHistoryMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmManureHistoryMapper.java
new file mode 100644
index 0000000..c4f3aa0
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmManureHistoryMapper.java
@@ -0,0 +1,41 @@
+package com.dy.pipIrrGlobal.daoRm;
+
+import com.dy.pipIrrGlobal.pojoRm.RmManureHistory;
+import com.dy.pipIrrGlobal.voRm.VoManure;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/25 10:03
+ * @Description
+ */
+public interface RmManureHistoryMapper {
+ int deleteByPrimaryKey(Long id);
+
+ int insert(RmManureHistory record);
+
+ int insertSelective(RmManureHistory record);
+
+ RmManureHistory selectByPrimaryKey(Long id);
+
+ /**
+ * 鏍规嵁鎸囧畾鏉′欢鏌ヨ璁板綍鏁伴噺
+ * @param params
+ * @return
+ */
+ Long selectCount(Map<?, ?> params);
+
+ /**
+ * 鏍规嵁鎸囧畾鏉′欢鏌ヨ璁板綍
+ * @param params
+ * @return
+ */
+ List<VoManure> selectSome(Map<?, ?> params);
+
+
+ int updateByPrimaryKeySelective(RmManureHistory record);
+
+ int updateByPrimaryKey(RmManureHistory record);
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmManureLastMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmManureLastMapper.java
new file mode 100644
index 0000000..7bfba0f
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmManureLastMapper.java
@@ -0,0 +1,43 @@
+package com.dy.pipIrrGlobal.daoRm;
+
+import com.dy.pipIrrGlobal.pojoRm.RmManureLast;
+import com.dy.pipIrrGlobal.voRm.VoManure;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/25 10:03
+ * @Description
+ */
+public interface RmManureLastMapper {
+ int deleteByPrimaryKey(Long id);
+
+ int insert(RmManureLast record);
+
+ int insertSelective(RmManureLast record);
+
+ RmManureLast selectByPrimaryKey(Long id);
+
+ List<RmManureLast> selectRmManureLast(@Param("stManureId") Long stManureId) ;
+
+ /**
+ * 鏍规嵁鎸囧畾鏉′欢鏌ヨ璁板綍鏁伴噺
+ * @param params
+ * @return
+ */
+ Long selectCount(Map<?, ?> params);
+
+ /**
+ * 鏍规嵁鎸囧畾鏉′欢鏌ヨ璁板綍
+ * @param params
+ * @return
+ */
+ List<VoManure> selectSome(Map<?, ?> params);
+
+ int updateByPrimaryKeySelective(RmManureLast record);
+
+ int updateByPrimaryKey(RmManureLast record);
+}
\ No newline at end of file
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
new file mode 100644
index 0000000..5211723
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmSoilDayMapper.java
@@ -0,0 +1,28 @@
+package com.dy.pipIrrGlobal.daoRm;
+
+import com.dy.pipIrrGlobal.pojoRm.RmSoilDay;
+import com.dy.pipIrrGlobal.pojoRm.RmSoilLast;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/25 10:04
+ * @Description
+ */
+public interface RmSoilDayMapper {
+ int deleteByPrimaryKey(Long id);
+
+ int insert(RmSoilDay record);
+
+ int insertSelective(RmSoilDay record);
+
+ RmSoilDay selectByPrimaryKey(Long id);
+
+ List<RmSoilDay> selectRmSoilDay(@Param("stSoilId") Long stSoilId, @Param("ymd") Integer ymd) ;
+
+ int updateByPrimaryKeySelective(RmSoilDay record);
+
+ int updateByPrimaryKey(RmSoilDay record);
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmSoilHistoryMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmSoilHistoryMapper.java
new file mode 100644
index 0000000..c976c7b
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmSoilHistoryMapper.java
@@ -0,0 +1,22 @@
+package com.dy.pipIrrGlobal.daoRm;
+
+import com.dy.pipIrrGlobal.pojoRm.RmSoilHistory;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/25 10:04
+ * @Description
+ */
+public interface RmSoilHistoryMapper {
+ int deleteByPrimaryKey(Long id);
+
+ int insert(RmSoilHistory record);
+
+ int insertSelective(RmSoilHistory record);
+
+ RmSoilHistory selectByPrimaryKey(Long id);
+
+ int updateByPrimaryKeySelective(RmSoilHistory record);
+
+ int updateByPrimaryKey(RmSoilHistory record);
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmSoilLastMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmSoilLastMapper.java
new file mode 100644
index 0000000..a81e20a
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmSoilLastMapper.java
@@ -0,0 +1,28 @@
+package com.dy.pipIrrGlobal.daoRm;
+
+import com.dy.pipIrrGlobal.pojoRm.RmManureLast;
+import com.dy.pipIrrGlobal.pojoRm.RmSoilLast;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/25 10:04
+ * @Description
+ */
+public interface RmSoilLastMapper {
+ int deleteByPrimaryKey(Long id);
+
+ int insert(RmSoilLast record);
+
+ int insertSelective(RmSoilLast record);
+
+ RmSoilLast selectByPrimaryKey(Long id);
+
+ List<RmSoilLast> selectRmSoilLast(@Param("stSoilId") Long stSoilId) ;
+
+ int updateByPrimaryKeySelective(RmSoilLast record);
+
+ int updateByPrimaryKey(RmSoilLast record);
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWeatherHistoryMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWeatherHistoryMapper.java
new file mode 100644
index 0000000..5c0c8e9
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWeatherHistoryMapper.java
@@ -0,0 +1,22 @@
+package com.dy.pipIrrGlobal.daoRm;
+
+import com.dy.pipIrrGlobal.pojoRm.RmWeatherHistory;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/25 10:39
+ * @Description
+ */
+public interface RmWeatherHistoryMapper {
+ int deleteByPrimaryKey(Long id);
+
+ int insert(RmWeatherHistory record);
+
+ int insertSelective(RmWeatherHistory record);
+
+ RmWeatherHistory selectByPrimaryKey(Long id);
+
+ int updateByPrimaryKeySelective(RmWeatherHistory record);
+
+ int updateByPrimaryKey(RmWeatherHistory record);
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWeatherLastMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWeatherLastMapper.java
new file mode 100644
index 0000000..60618b3
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWeatherLastMapper.java
@@ -0,0 +1,27 @@
+package com.dy.pipIrrGlobal.daoRm;
+
+import com.dy.pipIrrGlobal.pojoRm.RmWeatherLast;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/25 10:39
+ * @Description
+ */
+public interface RmWeatherLastMapper {
+ int deleteByPrimaryKey(Long id);
+
+ int insert(RmWeatherLast record);
+
+ int insertSelective(RmWeatherLast record);
+
+ RmWeatherLast selectByPrimaryKey(Long id);
+
+ List<RmWeatherLast> selectRmWeatherLast(@Param("stWeatherId") Long stWeatherId) ;
+
+ int updateByPrimaryKeySelective(RmWeatherLast record);
+
+ int updateByPrimaryKey(RmWeatherLast record);
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmLossDay.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmLossDay.java
index 5181be6..457735a 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmLossDay.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmLossDay.java
@@ -22,7 +22,7 @@
* @LastEditTime 2024/2/28 15:31
* @Description 鎺у埗鍣ㄦ棩婕忔崯姘撮噺鍘嗗彶鏁版嵁
*/
-@TableName(value="rm_loss_history_history", autoResultMap = true)
+@TableName(value="rm_loss_history", autoResultMap = true)
@Data
@Builder
@ToString
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmLossDayLast.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmLossDayLast.java
index 4cd2166..2dea69b 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmLossDayLast.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmLossDayLast.java
@@ -22,7 +22,7 @@
* @LastEditTime 2024/2/28 15:31
* @Description 鎺у埗鍣ㄦ棩婕忔崯姘撮噺鏈�鏂版暟鎹�
*/
-@TableName(value="rm_loss_last_history", autoResultMap = true)
+@TableName(value="rm_loss_last", autoResultMap = true)
@Data
@Builder
@ToString
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmManureHistory.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmManureHistory.java
new file mode 100644
index 0000000..3a5daef
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmManureHistory.java
@@ -0,0 +1,142 @@
+package com.dy.pipIrrGlobal.pojoRm;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.ManureVo;
+import com.dy.common.po.BaseEntity;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+import java.util.Date;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/25 10:03
+ * @Description
+ */
+@TableName(value="rm_manure_history", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "姘磋偉鏈哄巻鍙叉暟鎹�")
+public class RmManureHistory implements BaseEntity {
+
+ public static final long serialVersionUID = 202506251021001L;
+ /**
+ * 涓婚敭
+ */
+ @Schema(description = "涓婚敭", requiredMode = Schema.RequiredMode.REQUIRED)
+ @JSONField(serializeUsing= ObjectWriterImplToString.class)
+ @TableId(type = IdType.INPUT)
+ public Long id;
+
+ /**
+ * 姘磋偉鏈哄疄浣撳閿甶d
+ */
+ @Schema(description = "姘磋偉鏈哄疄浣撳閿甶d", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JSONField(serializeUsing= ObjectWriterImplToString.class)
+ public Long manureId;
+
+ /**
+ * 鏁版嵁涓婃姤鏃堕棿锛堝勾鏈堟棩鏃跺垎绉掞級
+ */
+ @Schema(description = "鏁版嵁鎺ユ敹鏃ユ湡鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ public Date dt;
+
+ /**
+ * 鎼呮媽1杩愯鐘舵��(1杩愯锛�0鍋滄)
+ */
+ @Schema(description = "鎼呮媽1杩愯鐘舵��(1杩愯锛�0鍋滄)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Byte stirRunning1;
+
+ /**
+ * 鎼呮媽2杩愯鐘舵��(1杩愯锛�0鍋滄)
+ */
+ @Schema(description = "鎼呮媽2杩愯鐘舵��(1杩愯锛�0鍋滄)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Byte stirRunning2;
+
+ /**
+ * 鎼呮媽3杩愯鐘舵��(1杩愯锛�0鍋滄)
+ */
+ @Schema(description = "鎼呮媽3杩愯鐘舵��(1杩愯锛�0鍋滄)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Byte stirRunning3;
+
+ /**
+ * 鎼呮媽4杩愯鐘舵��(1杩愯锛�0鍋滄)
+ */
+ @Schema(description = "鎼呮媽4杩愯鐘舵��(1杩愯锛�0鍋滄)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Byte stirRunning4;
+
+ /**
+ * 娉ㄨ偉杩愯鐘舵��(1杩愯锛�0鍋滄)
+ */
+ @Schema(description = "娉ㄨ偉杩愯鐘舵��(1杩愯锛�0鍋滄)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Byte injectRunning;
+
+ /**
+ * 鐏屾簤杩愯鐘舵��(1杩愯锛�0鍋滄)
+ */
+ @Schema(description = "鐏屾簤杩愯鐘舵��(1杩愯锛�0鍋滄)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Byte irrRunning;
+
+ /**
+ * 鎶ヨ锛�1:娉ㄨ偉娉垫湁鏁呴殰锛�0:娉ㄨ偉娉垫病鏈夋晠闅滐級
+ */
+ @Schema(description = "鎶ヨ锛�1:娉ㄨ偉娉垫湁鏁呴殰锛�0:娉ㄨ偉娉垫病鏈夋晠闅滐級", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Byte alarm;
+
+ /**
+ * 鑲ユ枡娴侀噺锛堝崌锛�
+ */
+ @Schema(description = "鑲ユ枡娴侀噺锛堝崌锛�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
+ public Double manureFlow;
+
+ /**
+ * 娉ㄨ偉缁忚繃鏃堕棿(绉�)
+ */
+ @Schema(description = "娉ㄨ偉缁忚繃鏃堕棿(绉�)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Integer manureTime;
+
+ /**
+ * 鎼呮媽缁忚繃鏃堕棿(绉掞級
+ */
+ @Schema(description = "鎼呮媽缁忚繃鏃堕棿(绉掞級", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Integer stirTime;
+
+ /**
+ * 鎼呮媽璁惧畾鏃堕棿(绉�)
+ */
+ @Schema(description = "鎼呮媽璁惧畾鏃堕棿(绉�)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Integer stirDuration;
+
+ /**
+ * 娉ㄨ偉璁惧畾鏃堕棿(绉�)
+ */
+ @Schema(description = "娉ㄨ偉璁惧畾鏃堕棿(绉�)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Integer injectDuration;
+
+ public void valueFrom(MqttSubMsg msg, ManureVo cdData) throws Exception{
+ this.dt = new Date();
+ this.stirRunning1 = cdData.stirRunning1 ;
+ this.stirRunning2 = cdData.stirRunning2 ;
+ this.stirRunning3 = cdData.stirRunning3 ;
+ this.stirRunning4 = cdData.stirRunning4 ;
+ this.injectRunning = cdData.injectRunning ;
+ this.irrRunning = cdData.irrRunning ;
+ this.alarm = cdData.alarm ;
+ this.manureFlow = cdData.manureFlow==null?null:(0.0D + cdData.manureFlow) ;
+ this.manureTime = cdData.manureTime ;
+ this.stirTime = cdData.stirTime ;
+ this.stirDuration = cdData.stirDuration ;
+ this.injectDuration = cdData.injectDuration ;
+ }
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmManureLast.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmManureLast.java
new file mode 100644
index 0000000..02ef15e
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmManureLast.java
@@ -0,0 +1,149 @@
+package com.dy.pipIrrGlobal.pojoRm;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.ManureVo;
+import com.dy.common.po.BaseEntity;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+import java.util.Date;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/25 10:03
+ * @Description
+ */
+@TableName(value="rm_manure_last", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "姘磋偉鏈烘渶鏂版暟鎹�")
+public class RmManureLast implements BaseEntity {
+
+ public static final long serialVersionUID = 202506251021002L;
+ /**
+ * 涓婚敭
+ */
+ @Schema(description = "涓婚敭", requiredMode = Schema.RequiredMode.REQUIRED)
+ @JSONField(serializeUsing= ObjectWriterImplToString.class)
+ @TableId(type = IdType.INPUT)
+ public Long id;
+
+ /**
+ * 鍘嗗彶鏁版嵁琛ㄤ腑鏈�鏂拌褰曠殑澶栭敭id
+ */
+ @Schema(hidden=true)
+ @JSONField(serialize = false)
+ public Long lastHistoryId;
+
+ /**
+ * 姘磋偉鏈哄疄浣撳閿甶d
+ */
+ @Schema(description = "姘磋偉鏈哄疄浣撳閿甶d", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JSONField(serializeUsing= ObjectWriterImplToString.class)
+ public Long manureId;
+
+ /**
+ * 鏁版嵁涓婃姤鏃堕棿锛堝勾鏈堟棩鏃跺垎绉掞級
+ */
+ @Schema(description = "鏁版嵁鎺ユ敹鏃ユ湡鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ public Date dt;
+
+ /**
+ * 鎼呮媽1杩愯鐘舵��(1杩愯锛�0鍋滄)
+ */
+ @Schema(description = "鎼呮媽1杩愯鐘舵��(1杩愯锛�0鍋滄)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Byte stirRunning1;
+
+ /**
+ * 鎼呮媽2杩愯鐘舵��(1杩愯锛�0鍋滄)
+ */
+ @Schema(description = "鎼呮媽2杩愯鐘舵��(1杩愯锛�0鍋滄)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Byte stirRunning2;
+
+ /**
+ * 鎼呮媽3杩愯鐘舵��(1杩愯锛�0鍋滄)
+ */
+ @Schema(description = "鎼呮媽3杩愯鐘舵��(1杩愯锛�0鍋滄)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Byte stirRunning3;
+
+ /**
+ * 鎼呮媽4杩愯鐘舵��(1杩愯锛�0鍋滄)
+ */
+ @Schema(description = "鎼呮媽4杩愯鐘舵��(1杩愯锛�0鍋滄)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Byte stirRunning4;
+
+ /**
+ * 娉ㄨ偉杩愯鐘舵��(1杩愯锛�0鍋滄)
+ */
+ @Schema(description = "娉ㄨ偉杩愯鐘舵��(1杩愯锛�0鍋滄)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Byte injectRunning;
+
+ /**
+ * 鐏屾簤杩愯鐘舵��(1杩愯锛�0鍋滄)
+ */
+ @Schema(description = "鐏屾簤杩愯鐘舵��(1杩愯锛�0鍋滄)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Byte irrRunning;
+
+ /**
+ * 鎶ヨ锛�1:娉ㄨ偉娉垫湁鏁呴殰锛�0:娉ㄨ偉娉垫病鏈夋晠闅滐級
+ */
+ @Schema(description = "鎶ヨ锛�1:娉ㄨ偉娉垫湁鏁呴殰锛�0:娉ㄨ偉娉垫病鏈夋晠闅滐級", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Byte alarm;
+
+ /**
+ * 鑲ユ枡娴侀噺锛堝崌锛�
+ */
+ @Schema(description = "鑲ユ枡娴侀噺锛堝崌锛�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
+ public Double manureFlow;
+
+ /**
+ * 娉ㄨ偉缁忚繃鏃堕棿(绉�)
+ */
+ @Schema(description = "娉ㄨ偉缁忚繃鏃堕棿(绉�)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Integer manureTime;
+
+ /**
+ * 鎼呮媽缁忚繃鏃堕棿(绉掞級
+ */
+ @Schema(description = "鎼呮媽缁忚繃鏃堕棿(绉掞級", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Integer stirTime;
+
+ /**
+ * 鎼呮媽璁惧畾鏃堕棿(绉�)
+ */
+ @Schema(description = "鎼呮媽璁惧畾鏃堕棿(绉�)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Integer stirDuration;
+
+ /**
+ * 娉ㄨ偉璁惧畾鏃堕棿(绉�)
+ */
+ @Schema(description = "娉ㄨ偉璁惧畾鏃堕棿(绉�)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Integer injectDuration;
+
+ public void valueFrom(MqttSubMsg msg, ManureVo cdData) throws Exception{
+ this.dt = new Date();
+ this.stirRunning1 = cdData.stirRunning1 ;
+ this.stirRunning2 = cdData.stirRunning2 ;
+ this.stirRunning3 = cdData.stirRunning3 ;
+ this.stirRunning4 = cdData.stirRunning4 ;
+ this.injectRunning = cdData.injectRunning ;
+ this.irrRunning = cdData.irrRunning ;
+ this.alarm = cdData.alarm ;
+ this.manureFlow = cdData.manureFlow==null?null:(0.0D + cdData.manureFlow) ;
+ this.manureTime = cdData.manureTime ;
+ this.stirTime = cdData.stirTime ;
+ this.stirDuration = cdData.stirDuration ;
+ this.injectDuration = cdData.injectDuration ;
+ }
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmSoilDay.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmSoilDay.java
new file mode 100644
index 0000000..2ab8f5a
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmSoilDay.java
@@ -0,0 +1,257 @@
+package com.dy.pipIrrGlobal.pojoRm;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.SoilVo;
+import com.dy.common.po.BaseEntity;
+import com.dy.common.util.DateTime;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+import java.util.Date;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/25 10:04
+ * @Description
+ */
+@TableName(value="rm_soil_day", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "澧掓儏鏃ュ钩鍧囨暟鎹�")
+public class RmSoilDay implements BaseEntity {
+
+ public static final long serialVersionUID = 202506251022003L;
+ /**
+ * 涓婚敭
+ */
+ @Schema(description = "涓婚敭", requiredMode = Schema.RequiredMode.REQUIRED)
+ @JSONField(serializeUsing= ObjectWriterImplToString.class)
+ @TableId(type = IdType.INPUT)
+ 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)
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ public Date dt;
+ /**
+ * 鏁版嵁鏃ユ湡锛堝勾鏈堟棩锛�
+ */
+ @Schema(hidden=true)
+ @JSONField(serialize = false)
+ public Integer ymd ;
+
+ /**
+ * 鏃ュ钩鍧囧湡澹ゆ箍搴�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;
+
+ /**
+ * 鏃ユ暟鎹鏁�
+ */
+ @Schema(description = "鏃ユ暟鎹鏁�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Integer times;
+
+ /**
+ * 鏃ョ疮璁″湡澹ゆ箍搴�1
+ */
+ @Schema(description = "鏃ョ疮璁″湡澹ゆ箍搴�1", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
+ public Double soilSumHumidity1;
+
+ /**
+ * 鏃ョ疮璁″湡澹ゆ箍搴�2
+ */
+ @Schema(description = "鏃ョ疮璁″湡澹ゆ箍搴�2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
+ public Double soilSumHumidity2;
+
+ /**
+ * 鏃ョ疮璁″湡澹ゆ箍搴�3
+ */
+ @Schema(description = "鏃ョ疮璁″湡澹ゆ箍搴�3", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
+ public Double soilSumHumidity3;
+
+ /**
+ * 鏃ョ疮璁″湡澹ゆ箍搴�4
+ */
+ @Schema(description = "鏃ョ疮璁″湡澹ゆ箍搴�4", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
+ public Double soilSumHumidity4;
+
+ /**
+ * 鏃ョ疮璁″湡澹ゆ箍搴�5
+ */
+ @Schema(description = "鏃ョ疮璁″湡澹ゆ箍搴�5", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
+ public Double soilSumHumidity5;
+
+ /**
+ * 鏃ョ疮璁″湡澹ゆ俯搴�1
+ */
+ @Schema(description = "鏃ョ疮璁″湡澹ゆ俯搴�1", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
+ public Double soilSumTemperature1;
+
+ /**
+ * 鏃ョ疮璁″湡澹ゆ俯搴�2
+ */
+ @Schema(description = "鏃ョ疮璁″湡澹ゆ俯搴�2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
+ public Double soilSumTemperature2;
+
+ /**
+ * 鏃ョ疮璁″湡澹ゆ俯搴�3
+ */
+ @Schema(description = "鏃ョ疮璁″湡澹ゆ俯搴�3", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
+ public Double soilSumTemperature3;
+
+ /**
+ * 鏃ョ疮璁″湡澹ゆ俯搴�4
+ */
+ @Schema(description = "鏃ョ疮璁″湡澹ゆ俯搴�4", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
+ public Double soilSumTemperature4;
+
+ /**
+ * 鏃ョ疮璁″湡澹ゆ俯搴�5
+ */
+ @Schema(description = "鏃ョ疮璁″湡澹ゆ俯搴�5", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
+ public Double soilSumTemperature5;
+
+ public void valueFrom(MqttSubMsg msg, SoilVo cdData) throws Exception{
+ this.dt = new Date();
+ this.ymd = Integer.parseInt(DateTime.yyyyMMdd()) ;
+ this.soilSumHumidity1 = cdData.soilHumidity1==null?0.0D:(0.0D + cdData.soilHumidity1) ;
+ this.soilSumHumidity2 = cdData.soilHumidity2==null?0.0D:(0.0D + cdData.soilHumidity2) ;
+ this.soilSumHumidity3 = cdData.soilHumidity3==null?0.0D:(0.0D + cdData.soilHumidity3) ;
+ this.soilSumHumidity4 = cdData.soilHumidity4==null?0.0D:(0.0D + cdData.soilHumidity4) ;
+ this.soilSumHumidity5 = cdData.soilHumidity5==null?0.0D:(0.0D + cdData.soilHumidity5) ;
+ this.soilSumTemperature1 = cdData.soilTemperature1==null?0.0D:(0.0D + cdData.soilTemperature1) ;
+ this.soilSumTemperature2 = cdData.soilTemperature2==null?0.0D:(0.0D + cdData.soilTemperature2) ;
+ this.soilSumTemperature3 = cdData.soilTemperature3==null?0.0D:(0.0D + cdData.soilTemperature3) ;
+ this.soilSumTemperature4 = cdData.soilTemperature4==null?0.0D:(0.0D + cdData.soilTemperature4) ;
+ this.soilSumTemperature5 = cdData.soilTemperature5==null?0.0D:(0.0D + cdData.soilTemperature5) ;
+ this.times = 1 ;
+ this.soilHumidity1 = this.soilSumHumidity1 ;
+ this.soilHumidity2 = this.soilSumHumidity2 ;
+ this.soilHumidity3 = this.soilSumHumidity3 ;
+ this.soilHumidity4 = this.soilSumHumidity4 ;
+ this.soilHumidity5 = this.soilSumHumidity5 ;
+ this.soilTemperature1 = this.soilSumTemperature1 ;
+ this.soilTemperature2 = this.soilSumTemperature2 ;
+ this.soilTemperature3 = this.soilSumTemperature3 ;
+ this.soilTemperature4 = this.soilSumTemperature4 ;
+ this.soilTemperature5 = this.soilSumTemperature5 ;
+ }
+
+ public void updateFrom(MqttSubMsg msg, SoilVo cdData) throws Exception{
+ this.soilSumHumidity1 += cdData.soilHumidity1==null?0.0D:(0.0D + cdData.soilHumidity1) ;
+ this.soilSumHumidity2 += cdData.soilHumidity2==null?0.0D:(0.0D + cdData.soilHumidity2) ;
+ this.soilSumHumidity3 += cdData.soilHumidity3==null?0.0D:(0.0D + cdData.soilHumidity3) ;
+ this.soilSumHumidity4 += cdData.soilHumidity4==null?0.0D:(0.0D + cdData.soilHumidity4) ;
+ this.soilSumHumidity5 += cdData.soilHumidity5==null?0.0D:(0.0D + cdData.soilHumidity5) ;
+ this.soilSumTemperature1 += cdData.soilTemperature1==null?0.0D:(0.0D + cdData.soilTemperature1) ;
+ this.soilSumTemperature2 += cdData.soilTemperature2==null?0.0D:(0.0D + cdData.soilTemperature2) ;
+ this.soilSumTemperature3 += cdData.soilTemperature3==null?0.0D:(0.0D + cdData.soilTemperature3) ;
+ this.soilSumTemperature4 += cdData.soilTemperature4==null?0.0D:(0.0D + cdData.soilTemperature4) ;
+ this.soilSumTemperature5 += cdData.soilTemperature5==null?0.0D:(0.0D + cdData.soilTemperature5) ;
+ this.times = this.times + 1 ;
+ this.soilHumidity1 = this.soilSumHumidity1 / this.times ;
+ this.soilHumidity2 = this.soilSumHumidity2 / this.times ;
+ this.soilHumidity3 = this.soilSumHumidity3 / this.times ;
+ this.soilHumidity4 = this.soilSumHumidity4 / this.times ;
+ this.soilHumidity5 = this.soilSumHumidity5 / this.times ;
+ this.soilTemperature1 = this.soilSumTemperature1 / this.times ;
+ this.soilTemperature2 = this.soilSumTemperature2 / this.times ;
+ this.soilTemperature3 = this.soilSumTemperature3 / this.times ;
+ this.soilTemperature4 = this.soilSumTemperature4 / this.times ;
+ this.soilTemperature5 = this.soilSumTemperature5 / this.times ;
+ }
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmSoilHistory.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmSoilHistory.java
new file mode 100644
index 0000000..4b8bb2e
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmSoilHistory.java
@@ -0,0 +1,137 @@
+package com.dy.pipIrrGlobal.pojoRm;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.SoilVo;
+import com.dy.common.po.BaseEntity;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+import java.util.Date;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/25 10:04
+ * @Description
+ */
+@TableName(value="rm_soil_history", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "澧掓儏鏈�鏂版暟鎹�")
+public class RmSoilHistory implements BaseEntity {
+
+ public static final long serialVersionUID = 202506251022002L;
+ /**
+ * 涓婚敭
+ */
+ @Schema(description = "涓婚敭", requiredMode = Schema.RequiredMode.REQUIRED)
+ @JSONField(serializeUsing= ObjectWriterImplToString.class)
+ @TableId(type = IdType.INPUT)
+ 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)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ 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;
+
+ public void valueFrom(MqttSubMsg msg, SoilVo cdData) throws Exception{
+ this.dt = new Date();
+ this.soilHumidity1 = cdData.soilHumidity1==null?null:(0.0D + cdData.soilHumidity1) ;
+ this.soilHumidity2 = cdData.soilHumidity2==null?null:(0.0D + cdData.soilHumidity2) ;
+ this.soilHumidity3 = cdData.soilHumidity3==null?null:(0.0D + cdData.soilHumidity3) ;
+ this.soilHumidity4 = cdData.soilHumidity4==null?null:(0.0D + cdData.soilHumidity4) ;
+ this.soilHumidity5 = cdData.soilHumidity5==null?null:(0.0D + cdData.soilHumidity5) ;
+ this.soilTemperature1 = cdData.soilTemperature1==null?null:(0.0D + cdData.soilTemperature1) ;
+ this.soilTemperature2 = cdData.soilTemperature2==null?null:(0.0D + cdData.soilTemperature2) ;
+ this.soilTemperature3 = cdData.soilTemperature3==null?null:(0.0D + cdData.soilTemperature3) ;
+ this.soilTemperature4 = cdData.soilTemperature4==null?null:(0.0D + cdData.soilTemperature4) ;
+ this.soilTemperature5 = cdData.soilTemperature5==null?null:(0.0D + cdData.soilTemperature5) ;
+ }
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmSoilLast.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmSoilLast.java
new file mode 100644
index 0000000..105d58e
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmSoilLast.java
@@ -0,0 +1,145 @@
+package com.dy.pipIrrGlobal.pojoRm;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.ManureVo;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.SoilVo;
+import com.dy.common.po.BaseEntity;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+import java.util.Date;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/25 10:04
+ * @Description
+ */
+@TableName(value="rm_soil_last", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "澧掓儏鏈�鏂版暟鎹�")
+public class RmSoilLast implements BaseEntity {
+
+ public static final long serialVersionUID = 202506251022001L;
+ /**
+ * 涓婚敭
+ */
+ @Schema(description = "涓婚敭", requiredMode = Schema.RequiredMode.REQUIRED)
+ @JSONField(serializeUsing= ObjectWriterImplToString.class)
+ @TableId(type = IdType.INPUT)
+ public Long id;
+
+ /**
+ * 鍘嗗彶鏁版嵁琛ㄤ腑鏈�鏂拌褰曠殑澶栭敭id
+ */
+ @Schema(hidden=true)
+ @JSONField(serialize = false)
+ public Long lastHistoryId;
+
+ /**
+ * 澧掓儏绔欏疄浣撳閿甶d
+ */
+ @Schema(description = "澧掓儏绔欏疄浣撳閿甶d", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JSONField(serializeUsing= ObjectWriterImplToString.class)
+ public Long soilId;
+
+ /**
+ * 鏁版嵁涓婃姤鏃堕棿锛堝勾鏈堟棩鏃跺垎绉掞級
+ */
+ @Schema(description = "鏁版嵁鎺ユ敹鏃ユ湡鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ 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;
+
+ public void valueFrom(MqttSubMsg msg, SoilVo cdData) throws Exception{
+ this.dt = new Date();
+ this.soilHumidity1 = cdData.soilHumidity1==null?null:(0.0D + cdData.soilHumidity1) ;
+ this.soilHumidity2 = cdData.soilHumidity2==null?null:(0.0D + cdData.soilHumidity2) ;
+ this.soilHumidity3 = cdData.soilHumidity3==null?null:(0.0D + cdData.soilHumidity3) ;
+ this.soilHumidity4 = cdData.soilHumidity4==null?null:(0.0D + cdData.soilHumidity4) ;
+ this.soilHumidity5 = cdData.soilHumidity5==null?null:(0.0D + cdData.soilHumidity5) ;
+ this.soilTemperature1 = cdData.soilTemperature1==null?null:(0.0D + cdData.soilTemperature1) ;
+ this.soilTemperature2 = cdData.soilTemperature2==null?null:(0.0D + cdData.soilTemperature2) ;
+ this.soilTemperature3 = cdData.soilTemperature3==null?null:(0.0D + cdData.soilTemperature3) ;
+ this.soilTemperature4 = cdData.soilTemperature4==null?null:(0.0D + cdData.soilTemperature4) ;
+ this.soilTemperature5 = cdData.soilTemperature5==null?null:(0.0D + cdData.soilTemperature5) ;
+ }
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWeatherHistory.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWeatherHistory.java
new file mode 100644
index 0000000..982489d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWeatherHistory.java
@@ -0,0 +1,110 @@
+package com.dy.pipIrrGlobal.pojoRm;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.WeatherVo;
+import com.dy.common.po.BaseEntity;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+import java.util.Date;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/25 10:39
+ * @Description
+ */
+@TableName(value="rm_weather_history", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "姘旇薄鍘嗗彶鏁版嵁")
+public class RmWeatherHistory implements BaseEntity {
+
+ public static final long serialVersionUID = 202506251035002L;
+ /**
+ * 涓婚敭
+ */
+ @Schema(description = "涓婚敭", requiredMode = Schema.RequiredMode.REQUIRED)
+ @JSONField(serializeUsing= ObjectWriterImplToString.class)
+ @TableId(type = IdType.INPUT)
+ public Long id;
+
+ /**
+ * 姘旇薄绔欏疄浣撳閿甶d
+ */
+ @Schema(description = "姘旇薄绔欏疄浣撳閿甶d", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JSONField(serializeUsing= ObjectWriterImplToString.class)
+ public Long weatherId;
+
+ /**
+ * 鏁版嵁涓婃姤鏃堕棿锛堝勾鏈堟棩鏃跺垎绉掞級
+ */
+ @Schema(description = "鏁版嵁鎺ユ敹鏃ユ湡鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ public Date dt;
+
+ /**
+ * 绌烘皵娓╁害
+ */
+ @Schema(description = "绌烘皵娓╁害", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
+ public Double airTemperature;
+
+ /**
+ * 绌烘皵婀垮害
+ */
+ @Schema(description = "绌烘皵婀垮害", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
+ public Double airHumidity;
+
+ /**
+ * 绱绾�
+ */
+ @Schema(description = "绱绾�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Integer ultraviolet;
+
+ /**
+ * 鍏夌収寮哄害
+ */
+ @Schema(description = "鍏夌収寮哄害", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Integer lightIntensity;
+
+ /**
+ * 闆ㄩ噺
+ */
+ @Schema(description = "闆ㄩ噺", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
+ public Double rainfall;
+
+ /**
+ * 椋庨��
+ */
+ @Schema(description = "椋庨��", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
+ public Double windSpeed;
+
+ /**
+ * 椋庡悜
+ */
+ @Schema(description = "椋庡悜", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Integer windDirection;
+
+ public void valueFrom(MqttSubMsg msg, WeatherVo cdData) throws Exception{
+ this.dt = new Date();
+ this.airTemperature = cdData.airTemperature==null?null:(0.0D + cdData.airTemperature) ;
+ this.airHumidity = cdData.airHumidity==null?null:(0.0D + cdData.airHumidity) ;
+ this.ultraviolet = cdData.ultraviolet ;
+ this.lightIntensity = cdData.lightIntensity ;
+ this.rainfall = cdData.rainfall==null?null:(0.0D + cdData.rainfall) ;
+ this.windSpeed = cdData.windSpeed==null?null:(0.0D + cdData.windSpeed) ;
+ this.windDirection = cdData.windDirection ;
+ }
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWeatherLast.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWeatherLast.java
new file mode 100644
index 0000000..bbe7eed
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWeatherLast.java
@@ -0,0 +1,119 @@
+package com.dy.pipIrrGlobal.pojoRm;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.SoilVo;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.WeatherVo;
+import com.dy.common.po.BaseEntity;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+import java.util.Date;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/25 10:04
+ * @Description
+ */
+@TableName(value="rm_weather_last", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "姘旇薄鏈�鏂版暟鎹�")
+public class RmWeatherLast implements BaseEntity {
+
+ public static final long serialVersionUID = 202506251035001L;
+ /**
+ * 涓婚敭
+ */
+ @Schema(description = "涓婚敭", requiredMode = Schema.RequiredMode.REQUIRED)
+ @JSONField(serializeUsing= ObjectWriterImplToString.class)
+ @TableId(type = IdType.INPUT)
+ public Long id;
+
+ /**
+ * 鍘嗗彶鏁版嵁琛ㄤ腑鏈�鏂拌褰曠殑澶栭敭id
+ */
+ @Schema(hidden=true)
+ @JSONField(serialize = false)
+ public Long lastHistoryId;
+
+ /**
+ * 姘旇薄绔欏疄浣撳閿甶d
+ */
+ @Schema(description = "姘旇薄绔欏疄浣撳閿甶d", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JSONField(serializeUsing= ObjectWriterImplToString.class)
+ public Long weatherId;
+
+ /**
+ * 鏁版嵁涓婃姤鏃堕棿锛堝勾鏈堟棩鏃跺垎绉掞級
+ */
+ @Schema(description = "鏁版嵁鎺ユ敹鏃ユ湡鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ public Date dt;
+
+ /**
+ * 绌烘皵娓╁害
+ */
+ @Schema(description = "绌烘皵娓╁害", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
+ public Double airTemperature;
+
+ /**
+ * 绌烘皵婀垮害
+ */
+ @Schema(description = "绌烘皵婀垮害", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
+ public Double airHumidity;
+
+ /**
+ * 绱绾�
+ */
+ @Schema(description = "绱绾�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Integer ultraviolet;
+
+ /**
+ * 鍏夌収寮哄害
+ */
+ @Schema(description = "鍏夌収寮哄害", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Integer lightIntensity;
+
+ /**
+ * 闆ㄩ噺
+ */
+ @Schema(description = "闆ㄩ噺", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
+ public Double rainfall;
+
+ /**
+ * 椋庨��
+ */
+ @Schema(description = "椋庨��", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
+ public Double windSpeed;
+
+ /**
+ * 椋庡悜
+ */
+ @Schema(description = "椋庡悜", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Integer windDirection;
+
+
+ public void valueFrom(MqttSubMsg msg, WeatherVo cdData) throws Exception{
+ this.dt = new Date();
+ this.airTemperature = cdData.airTemperature==null?null:(0.0D + cdData.airTemperature) ;
+ this.airHumidity = cdData.airHumidity==null?null:(0.0D + cdData.airHumidity) ;
+ this.ultraviolet = cdData.ultraviolet ;
+ this.lightIntensity = cdData.lightIntensity ;
+ this.rainfall = cdData.rainfall==null?null:(0.0D + cdData.rainfall) ;
+ this.windSpeed = cdData.windSpeed==null?null:(0.0D + cdData.windSpeed) ;
+ this.windDirection = cdData.windDirection ;
+ }
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoManure.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoManure.java
new file mode 100644
index 0000000..ceaac69
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoManure.java
@@ -0,0 +1,120 @@
+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/25 16:34
+ * @Description
+ */
+@Data
+public class VoManure {
+ public static final long serialVersionUID = 202506251634001L;
+
+ /**
+ * 璁板綍ID
+ */
+ @JSONField(serializeUsing= ObjectWriterImplToString.class)
+ public Long id;
+
+ /**
+ * 姘磋偉鏈篒D
+ */
+ @Schema(description = "姘磋偉鏈篒D", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JSONField(serializeUsing= ObjectWriterImplToString.class)
+ public Long manureId;
+
+ /**
+ * 姘磋偉鏈哄悕绉�
+ */
+ @Schema(description = "姘磋偉鏈哄悕绉�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Long manureName;
+
+
+ /**
+ * 鏁版嵁涓婃姤鏃堕棿锛堝勾鏈堟棩鏃跺垎绉掞級
+ */
+ @Schema(description = "鏁版嵁鎺ユ敹鏃ユ湡鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ public Date dt;
+
+ /**
+ * 鎼呮媽1杩愯鐘舵��(1杩愯锛�0鍋滄)
+ */
+ @Schema(description = "鎼呮媽1杩愯鐘舵��(1杩愯锛�0鍋滄)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Byte stirRunning1;
+
+ /**
+ * 鎼呮媽2杩愯鐘舵��(1杩愯锛�0鍋滄)
+ */
+ @Schema(description = "鎼呮媽2杩愯鐘舵��(1杩愯锛�0鍋滄)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Byte stirRunning2;
+
+ /**
+ * 鎼呮媽3杩愯鐘舵��(1杩愯锛�0鍋滄)
+ */
+ @Schema(description = "鎼呮媽3杩愯鐘舵��(1杩愯锛�0鍋滄)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Byte stirRunning3;
+
+ /**
+ * 鎼呮媽4杩愯鐘舵��(1杩愯锛�0鍋滄)
+ */
+ @Schema(description = "鎼呮媽4杩愯鐘舵��(1杩愯锛�0鍋滄)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Byte stirRunning4;
+
+ /**
+ * 娉ㄨ偉杩愯鐘舵��(1杩愯锛�0鍋滄)
+ */
+ @Schema(description = "娉ㄨ偉杩愯鐘舵��(1杩愯锛�0鍋滄)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Byte injectRunning;
+
+ /**
+ * 鐏屾簤杩愯鐘舵��(1杩愯锛�0鍋滄)
+ */
+ @Schema(description = "鐏屾簤杩愯鐘舵��(1杩愯锛�0鍋滄)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Byte irrRunning;
+
+ /**
+ * 鎶ヨ锛�1:娉ㄨ偉娉垫湁鏁呴殰锛�0:娉ㄨ偉娉垫病鏈夋晠闅滐級
+ */
+ @Schema(description = "鎶ヨ锛�1:娉ㄨ偉娉垫湁鏁呴殰锛�0:娉ㄨ偉娉垫病鏈夋晠闅滐級", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Byte alarm;
+
+ /**
+ * 鑲ユ枡娴侀噺锛堝崌锛�
+ */
+ @Schema(description = "鑲ユ枡娴侀噺锛堝崌锛�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
+ public Double manureFlow;
+
+ /**
+ * 娉ㄨ偉缁忚繃鏃堕棿(绉�)
+ */
+ @Schema(description = "娉ㄨ偉缁忚繃鏃堕棿(绉�)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Integer manureTime;
+
+ /**
+ * 鎼呮媽缁忚繃鏃堕棿(绉掞級
+ */
+ @Schema(description = "鎼呮媽缁忚繃鏃堕棿(绉掞級", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Integer stirTime;
+
+ /**
+ * 鎼呮媽璁惧畾鏃堕棿(绉�)
+ */
+ @Schema(description = "鎼呮媽璁惧畾鏃堕棿(绉�)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Integer stirDuration;
+
+ /**
+ * 娉ㄨ偉璁惧畾鏃堕棿(绉�)
+ */
+ @Schema(description = "娉ㄨ偉璁惧畾鏃堕棿(绉�)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Integer injectDuration;
+
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStManureMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStManureMapper.xml
index eed8ceb..210b2c3 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStManureMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStManureMapper.xml
@@ -88,6 +88,14 @@
</trim>
</select>
+ <!--鏍规嵁FBox搴忓垪鍙峰緱鍒板疄浣撳垪琛�-->
+ <select id="selectStPoByFBoxIdAndNo" resultMap="BaseResultMap">
+ select
+ <include refid="part_Column_List" />
+ FROM pr_st_manure
+ WHERE deleted = 0 AND fbox_id=#{fbox_id,jdbcType=VARCHAR} AND no=#{fbox_id,jdbcType=INTEGER}
+ </select>
+
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
<!--@mbg.generated-->
delete from pr_st_manure
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStSoilMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStSoilMapper.xml
index f07307c..6d8fdd8 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStSoilMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStSoilMapper.xml
@@ -86,6 +86,15 @@
</if>
</trim>
</select>
+
+ <!--鏍规嵁FBox搴忓垪鍙峰緱鍒板疄浣撳垪琛�-->
+ <select id="selectStPoByFBoxIdAndNo" resultMap="BaseResultMap">
+ select
+ <include refid="part_Column_List" />
+ FROM pr_st_soil
+ WHERE deleted = 0 AND fbox_id=#{fbox_id,jdbcType=VARCHAR} AND no=#{fbox_id,jdbcType=INTEGER}
+ </select>
+
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
<!--@mbg.generated-->
delete from pr_st_soil
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStWeatherMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStWeatherMapper.xml
index 84f86e4..cbf0c66 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStWeatherMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStWeatherMapper.xml
@@ -80,6 +80,15 @@
</if>
</trim>
</select>
+
+ <!--鏍规嵁FBox搴忓垪鍙峰緱鍒板疄浣撳垪琛�-->
+ <select id="selectStPoByFBoxIdAndNo" resultMap="BaseResultMap">
+ select
+ <include refid="part_Column_List" />
+ FROM pr_st_weather
+ WHERE deleted = 0 AND fbox_id=#{fbox_id,jdbcType=VARCHAR} AND no=#{fbox_id,jdbcType=INTEGER}
+ </select>
+
<select id="selectAllSimple" resultType="com.dy.pipIrrGlobal.voPr.VoMqttSimple">
<!--@mbg.generated-->
select
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmManureHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmManureHistoryMapper.xml
new file mode 100644
index 0000000..20cc470
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmManureHistoryMapper.xml
@@ -0,0 +1,273 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dy.pipIrrGlobal.daoRm.RmManureHistoryMapper">
+ <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmManureHistory">
+ <!--@mbg.generated-->
+ <!--@Table rm_manure_history-->
+ <id column="id" jdbcType="BIGINT" property="id" />
+ <result column="manure_id" jdbcType="BIGINT" property="manureId" />
+ <result column="dt" jdbcType="TIMESTAMP" property="dt" />
+ <result column="stir_running1" jdbcType="TINYINT" property="stirRunning1" />
+ <result column="stir_running2" jdbcType="TINYINT" property="stirRunning2" />
+ <result column="stir_running3" jdbcType="TINYINT" property="stirRunning3" />
+ <result column="stir_running4" jdbcType="TINYINT" property="stirRunning4" />
+ <result column="inject_running" jdbcType="TINYINT" property="injectRunning" />
+ <result column="irr_running" jdbcType="TINYINT" property="irrRunning" />
+ <result column="alarm" jdbcType="TINYINT" property="alarm" />
+ <result column="manure_flow" jdbcType="FLOAT" property="manureFlow" />
+ <result column="manure_time" jdbcType="INTEGER" property="manureTime" />
+ <result column="stir_time" jdbcType="INTEGER" property="stirTime" />
+ <result column="stir_duration" jdbcType="INTEGER" property="stirDuration" />
+ <result column="inject_duration" jdbcType="INTEGER" property="injectDuration" />
+ </resultMap>
+ <sql id="Base_Column_List">
+ <!--@mbg.generated-->
+ id, manure_id, dt, stir_running1, stir_running2, stir_running3, stir_running4, inject_running,
+ irr_running, alarm, manure_flow, manure_time, stir_time, stir_duration, inject_duration
+ </sql>
+ <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+ <!--@mbg.generated-->
+ select
+ <include refid="Base_Column_List" />
+ from rm_manure_history
+ where id = #{id,jdbcType=BIGINT}
+ </select>
+ <!--鏍规嵁鎸囧畾鏉′欢鏌ヨ鍘嗗彶璁板綍鏁伴噺-->
+ <select id="selectCount" resultType="java.lang.Long">
+ SELECT
+ COUNT(*) AS recordCount
+ FROM rm_manure_history htb
+ INNER JOIN pr_st_manure mtb ON mtb.id = htb.manure_id
+ <where>
+ <if test="manureId != null">
+ AND htb.manure_id = #{manureId}
+ </if>
+ <if test = "no != null">
+ AND mtb.no = #{no}
+ </if>
+ <if test = "name != null and name !=''">
+ AND mtb.name LIKE CONCAT('%',#{intakeNum},'%')
+ </if>
+ <if test = "timeStart != null and timeStop != null">
+ AND htb.dt BETWEEN #{timeStart} AND #{timeStop}
+ </if>
+ </where>
+ </select>
+
+ <!--鏍规嵁鎸囧畾鏉′欢鏌ヨ鍘嗗彶璁板綍-->
+ <select id="selectSome" resultType="com.dy.pipIrrGlobal.voRm.VoManure">
+ SELECT
+ <include refid="Base_Column_List" />,
+ mtb.`name` AS manureName
+ FROM rm_manure_history htb
+ INNER JOIN pr_st_manure mtb ON mtb.id = htb.manure_id
+ <where>
+ <if test="manureId != null">
+ AND htb.manure_id = #{manureId}
+ </if>
+ <if test = "no != null">
+ AND mtb.no = #{no}
+ </if>
+ <if test = "name != null and name !=''">
+ AND mtb.name LIKE CONCAT('%',#{intakeNum},'%')
+ </if>
+ <if test = "timeStart != null and timeStop != null">
+ AND htb.dt BETWEEN #{timeStart} AND #{timeStop}
+ </if>
+ </where>
+ ORDER BY htb.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_manure_history
+ where id = #{id,jdbcType=BIGINT}
+ </delete>
+ <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmManureHistory">
+ <!--@mbg.generated-->
+ insert into rm_manure_history (id, manure_id, dt,
+ stir_running1, stir_running2, stir_running3,
+ stir_running4, inject_running, irr_running,
+ alarm, manure_flow, manure_time,
+ stir_time, stir_duration, inject_duration
+ )
+ values (#{id,jdbcType=BIGINT}, #{manureId,jdbcType=BIGINT}, #{dt,jdbcType=TIMESTAMP},
+ #{stirRunning1,jdbcType=TINYINT}, #{stirRunning2,jdbcType=TINYINT}, #{stirRunning3,jdbcType=TINYINT},
+ #{stirRunning4,jdbcType=TINYINT}, #{injectRunning,jdbcType=TINYINT}, #{irrRunning,jdbcType=TINYINT},
+ #{alarm,jdbcType=TINYINT}, #{manureFlow,jdbcType=FLOAT}, #{manureTime,jdbcType=INTEGER},
+ #{stirTime,jdbcType=INTEGER}, #{stirDuration,jdbcType=INTEGER}, #{injectDuration,jdbcType=INTEGER}
+ )
+ </insert>
+ <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmManureHistory">
+ <!--@mbg.generated-->
+ insert into rm_manure_history
+ <trim prefix="(" suffix=")" suffixOverrides=",">
+ <if test="id != null">
+ id,
+ </if>
+ <if test="manureId != null">
+ manure_id,
+ </if>
+ <if test="dt != null">
+ dt,
+ </if>
+ <if test="stirRunning1 != null">
+ stir_running1,
+ </if>
+ <if test="stirRunning2 != null">
+ stir_running2,
+ </if>
+ <if test="stirRunning3 != null">
+ stir_running3,
+ </if>
+ <if test="stirRunning4 != null">
+ stir_running4,
+ </if>
+ <if test="injectRunning != null">
+ inject_running,
+ </if>
+ <if test="irrRunning != null">
+ irr_running,
+ </if>
+ <if test="alarm != null">
+ alarm,
+ </if>
+ <if test="manureFlow != null">
+ manure_flow,
+ </if>
+ <if test="manureTime != null">
+ manure_time,
+ </if>
+ <if test="stirTime != null">
+ stir_time,
+ </if>
+ <if test="stirDuration != null">
+ stir_duration,
+ </if>
+ <if test="injectDuration != null">
+ inject_duration,
+ </if>
+ </trim>
+ <trim prefix="values (" suffix=")" suffixOverrides=",">
+ <if test="id != null">
+ #{id,jdbcType=BIGINT},
+ </if>
+ <if test="manureId != null">
+ #{manureId,jdbcType=BIGINT},
+ </if>
+ <if test="dt != null">
+ #{dt,jdbcType=TIMESTAMP},
+ </if>
+ <if test="stirRunning1 != null">
+ #{stirRunning1,jdbcType=TINYINT},
+ </if>
+ <if test="stirRunning2 != null">
+ #{stirRunning2,jdbcType=TINYINT},
+ </if>
+ <if test="stirRunning3 != null">
+ #{stirRunning3,jdbcType=TINYINT},
+ </if>
+ <if test="stirRunning4 != null">
+ #{stirRunning4,jdbcType=TINYINT},
+ </if>
+ <if test="injectRunning != null">
+ #{injectRunning,jdbcType=TINYINT},
+ </if>
+ <if test="irrRunning != null">
+ #{irrRunning,jdbcType=TINYINT},
+ </if>
+ <if test="alarm != null">
+ #{alarm,jdbcType=TINYINT},
+ </if>
+ <if test="manureFlow != null">
+ #{manureFlow,jdbcType=FLOAT},
+ </if>
+ <if test="manureTime != null">
+ #{manureTime,jdbcType=INTEGER},
+ </if>
+ <if test="stirTime != null">
+ #{stirTime,jdbcType=INTEGER},
+ </if>
+ <if test="stirDuration != null">
+ #{stirDuration,jdbcType=INTEGER},
+ </if>
+ <if test="injectDuration != null">
+ #{injectDuration,jdbcType=INTEGER},
+ </if>
+ </trim>
+ </insert>
+ <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmManureHistory">
+ <!--@mbg.generated-->
+ update rm_manure_history
+ <set>
+ <if test="manureId != null">
+ manure_id = #{manureId,jdbcType=BIGINT},
+ </if>
+ <if test="dt != null">
+ dt = #{dt,jdbcType=TIMESTAMP},
+ </if>
+ <if test="stirRunning1 != null">
+ stir_running1 = #{stirRunning1,jdbcType=TINYINT},
+ </if>
+ <if test="stirRunning2 != null">
+ stir_running2 = #{stirRunning2,jdbcType=TINYINT},
+ </if>
+ <if test="stirRunning3 != null">
+ stir_running3 = #{stirRunning3,jdbcType=TINYINT},
+ </if>
+ <if test="stirRunning4 != null">
+ stir_running4 = #{stirRunning4,jdbcType=TINYINT},
+ </if>
+ <if test="injectRunning != null">
+ inject_running = #{injectRunning,jdbcType=TINYINT},
+ </if>
+ <if test="irrRunning != null">
+ irr_running = #{irrRunning,jdbcType=TINYINT},
+ </if>
+ <if test="alarm != null">
+ alarm = #{alarm,jdbcType=TINYINT},
+ </if>
+ <if test="manureFlow != null">
+ manure_flow = #{manureFlow,jdbcType=FLOAT},
+ </if>
+ <if test="manureTime != null">
+ manure_time = #{manureTime,jdbcType=INTEGER},
+ </if>
+ <if test="stirTime != null">
+ stir_time = #{stirTime,jdbcType=INTEGER},
+ </if>
+ <if test="stirDuration != null">
+ stir_duration = #{stirDuration,jdbcType=INTEGER},
+ </if>
+ <if test="injectDuration != null">
+ inject_duration = #{injectDuration,jdbcType=INTEGER},
+ </if>
+ </set>
+ where id = #{id,jdbcType=BIGINT}
+ </update>
+ <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmManureHistory">
+ <!--@mbg.generated-->
+ update rm_manure_history
+ set manure_id = #{manureId,jdbcType=BIGINT},
+ dt = #{dt,jdbcType=TIMESTAMP},
+ stir_running1 = #{stirRunning1,jdbcType=TINYINT},
+ stir_running2 = #{stirRunning2,jdbcType=TINYINT},
+ stir_running3 = #{stirRunning3,jdbcType=TINYINT},
+ stir_running4 = #{stirRunning4,jdbcType=TINYINT},
+ inject_running = #{injectRunning,jdbcType=TINYINT},
+ irr_running = #{irrRunning,jdbcType=TINYINT},
+ alarm = #{alarm,jdbcType=TINYINT},
+ manure_flow = #{manureFlow,jdbcType=FLOAT},
+ manure_time = #{manureTime,jdbcType=INTEGER},
+ stir_time = #{stirTime,jdbcType=INTEGER},
+ stir_duration = #{stirDuration,jdbcType=INTEGER},
+ inject_duration = #{injectDuration,jdbcType=INTEGER}
+ where id = #{id,jdbcType=BIGINT}
+ </update>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmManureLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmManureLastMapper.xml
new file mode 100644
index 0000000..c1bbf6f
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmManureLastMapper.xml
@@ -0,0 +1,300 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dy.pipIrrGlobal.daoRm.RmManureLastMapper">
+ <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmManureLast">
+ <!--@mbg.generated-->
+ <!--@Table rm_manure_last-->
+ <id column="id" jdbcType="BIGINT" property="id" />
+ <result column="last_history_id" jdbcType="BIGINT" property="lastHistoryId" />
+ <result column="manure_id" jdbcType="BIGINT" property="manureId" />
+ <result column="dt" jdbcType="TIMESTAMP" property="dt" />
+ <result column="stir_running1" jdbcType="TINYINT" property="stirRunning1" />
+ <result column="stir_running2" jdbcType="TINYINT" property="stirRunning2" />
+ <result column="stir_running3" jdbcType="TINYINT" property="stirRunning3" />
+ <result column="stir_running4" jdbcType="TINYINT" property="stirRunning4" />
+ <result column="inject_running" jdbcType="TINYINT" property="injectRunning" />
+ <result column="irr_running" jdbcType="TINYINT" property="irrRunning" />
+ <result column="alarm" jdbcType="TINYINT" property="alarm" />
+ <result column="manure_flow" jdbcType="FLOAT" property="manureFlow" />
+ <result column="manure_time" jdbcType="INTEGER" property="manureTime" />
+ <result column="stir_time" jdbcType="INTEGER" property="stirTime" />
+ <result column="stir_duration" jdbcType="INTEGER" property="stirDuration" />
+ <result column="inject_duration" jdbcType="INTEGER" property="injectDuration" />
+ </resultMap>
+ <sql id="Base_Column_List">
+ <!--@mbg.generated-->
+ id, last_history_id, manure_id, dt, stir_running1, stir_running2, stir_running3,
+ stir_running4, inject_running, irr_running, alarm, manure_flow, manure_time, stir_time,
+ stir_duration, inject_duration
+ </sql>
+ <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+ <!--@mbg.generated-->
+ select
+ <include refid="Base_Column_List" />
+ from rm_manure_last
+ where id = #{id,jdbcType=BIGINT}
+ </select>
+
+ <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇璁板綍-->
+ <select id="selectRmManureLast" resultType="com.dy.pipIrrGlobal.pojoRm.RmManureLast">
+ select
+ <include refid="Base_Column_List" />
+ from rm_manure_last
+ <where>
+ <if test="stManureId != null and stManureId != ''">
+ and manure_id = #{stManureId}
+ </if>
+ </where>
+ limit 0,1
+ </select>
+
+
+ <!--鏍规嵁鎸囧畾鏉′欢鏌ヨ鍘嗗彶璁板綍鏁伴噺-->
+ <select id="selectCount" resultType="java.lang.Long">
+ SELECT
+ COUNT(*) AS recordCount
+ FROM rm_manure_last ltb
+ INNER JOIN pr_st_manure mtb ON mtb.id = ltb.manure_id
+ <where>
+ <if test="manureId != null">
+ AND ltb.manure_id = #{manureId}
+ </if>
+ <if test = "no != null">
+ AND mtb.no = #{no}
+ </if>
+ <if test = "name != null and name !=''">
+ AND mtb.name LIKE CONCAT('%',#{intakeNum},'%')
+ </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.VoManure">
+ SELECT
+ <include refid="Base_Column_List" />,
+ mtb.`name` AS manureName
+ FROM rm_manure_last ltb
+ INNER JOIN pr_st_manure mtb ON mtb.id = ltb.manure_id
+ <where>
+ <if test="manureId != null">
+ AND ltb.manure_id = #{manureId}
+ </if>
+ <if test = "no != null">
+ AND mtb.no = #{no}
+ </if>
+ <if test = "name != null and name !=''">
+ AND mtb.name LIKE CONCAT('%',#{intakeNum},'%')
+ </if>
+ <if test = "timeStart != null and timeStop != null">
+ AND ltb.dt BETWEEN #{timeStart} AND #{timeStop}
+ </if>
+ </where>
+ ORDER BY ltb.manure_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_manure_last
+ where id = #{id,jdbcType=BIGINT}
+ </delete>
+ <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmManureLast">
+ <!--@mbg.generated-->
+ insert into rm_manure_last (id, last_history_id, manure_id,
+ dt, stir_running1, stir_running2,
+ stir_running3, stir_running4, inject_running,
+ irr_running, alarm, manure_flow,
+ manure_time, stir_time, stir_duration,
+ inject_duration)
+ values (#{id,jdbcType=BIGINT}, #{lastHistoryId,jdbcType=BIGINT}, #{manureId,jdbcType=BIGINT},
+ #{dt,jdbcType=TIMESTAMP}, #{stirRunning1,jdbcType=TINYINT}, #{stirRunning2,jdbcType=TINYINT},
+ #{stirRunning3,jdbcType=TINYINT}, #{stirRunning4,jdbcType=TINYINT}, #{injectRunning,jdbcType=TINYINT},
+ #{irrRunning,jdbcType=TINYINT}, #{alarm,jdbcType=TINYINT}, #{manureFlow,jdbcType=FLOAT},
+ #{manureTime,jdbcType=INTEGER}, #{stirTime,jdbcType=INTEGER}, #{stirDuration,jdbcType=INTEGER},
+ #{injectDuration,jdbcType=INTEGER})
+ </insert>
+ <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmManureLast">
+ <!--@mbg.generated-->
+ insert into rm_manure_last
+ <trim prefix="(" suffix=")" suffixOverrides=",">
+ <if test="id != null">
+ id,
+ </if>
+ <if test="lastHistoryId != null">
+ last_history_id,
+ </if>
+ <if test="manureId != null">
+ manure_id,
+ </if>
+ <if test="dt != null">
+ dt,
+ </if>
+ <if test="stirRunning1 != null">
+ stir_running1,
+ </if>
+ <if test="stirRunning2 != null">
+ stir_running2,
+ </if>
+ <if test="stirRunning3 != null">
+ stir_running3,
+ </if>
+ <if test="stirRunning4 != null">
+ stir_running4,
+ </if>
+ <if test="injectRunning != null">
+ inject_running,
+ </if>
+ <if test="irrRunning != null">
+ irr_running,
+ </if>
+ <if test="alarm != null">
+ alarm,
+ </if>
+ <if test="manureFlow != null">
+ manure_flow,
+ </if>
+ <if test="manureTime != null">
+ manure_time,
+ </if>
+ <if test="stirTime != null">
+ stir_time,
+ </if>
+ <if test="stirDuration != null">
+ stir_duration,
+ </if>
+ <if test="injectDuration != null">
+ inject_duration,
+ </if>
+ </trim>
+ <trim prefix="values (" suffix=")" suffixOverrides=",">
+ <if test="id != null">
+ #{id,jdbcType=BIGINT},
+ </if>
+ <if test="lastHistoryId != null">
+ #{lastHistoryId,jdbcType=BIGINT},
+ </if>
+ <if test="manureId != null">
+ #{manureId,jdbcType=BIGINT},
+ </if>
+ <if test="dt != null">
+ #{dt,jdbcType=TIMESTAMP},
+ </if>
+ <if test="stirRunning1 != null">
+ #{stirRunning1,jdbcType=TINYINT},
+ </if>
+ <if test="stirRunning2 != null">
+ #{stirRunning2,jdbcType=TINYINT},
+ </if>
+ <if test="stirRunning3 != null">
+ #{stirRunning3,jdbcType=TINYINT},
+ </if>
+ <if test="stirRunning4 != null">
+ #{stirRunning4,jdbcType=TINYINT},
+ </if>
+ <if test="injectRunning != null">
+ #{injectRunning,jdbcType=TINYINT},
+ </if>
+ <if test="irrRunning != null">
+ #{irrRunning,jdbcType=TINYINT},
+ </if>
+ <if test="alarm != null">
+ #{alarm,jdbcType=TINYINT},
+ </if>
+ <if test="manureFlow != null">
+ #{manureFlow,jdbcType=FLOAT},
+ </if>
+ <if test="manureTime != null">
+ #{manureTime,jdbcType=INTEGER},
+ </if>
+ <if test="stirTime != null">
+ #{stirTime,jdbcType=INTEGER},
+ </if>
+ <if test="stirDuration != null">
+ #{stirDuration,jdbcType=INTEGER},
+ </if>
+ <if test="injectDuration != null">
+ #{injectDuration,jdbcType=INTEGER},
+ </if>
+ </trim>
+ </insert>
+ <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmManureLast">
+ <!--@mbg.generated-->
+ update rm_manure_last
+ <set>
+ <if test="lastHistoryId != null">
+ last_history_id = #{lastHistoryId,jdbcType=BIGINT},
+ </if>
+ <if test="manureId != null">
+ manure_id = #{manureId,jdbcType=BIGINT},
+ </if>
+ <if test="dt != null">
+ dt = #{dt,jdbcType=TIMESTAMP},
+ </if>
+ <if test="stirRunning1 != null">
+ stir_running1 = #{stirRunning1,jdbcType=TINYINT},
+ </if>
+ <if test="stirRunning2 != null">
+ stir_running2 = #{stirRunning2,jdbcType=TINYINT},
+ </if>
+ <if test="stirRunning3 != null">
+ stir_running3 = #{stirRunning3,jdbcType=TINYINT},
+ </if>
+ <if test="stirRunning4 != null">
+ stir_running4 = #{stirRunning4,jdbcType=TINYINT},
+ </if>
+ <if test="injectRunning != null">
+ inject_running = #{injectRunning,jdbcType=TINYINT},
+ </if>
+ <if test="irrRunning != null">
+ irr_running = #{irrRunning,jdbcType=TINYINT},
+ </if>
+ <if test="alarm != null">
+ alarm = #{alarm,jdbcType=TINYINT},
+ </if>
+ <if test="manureFlow != null">
+ manure_flow = #{manureFlow,jdbcType=FLOAT},
+ </if>
+ <if test="manureTime != null">
+ manure_time = #{manureTime,jdbcType=INTEGER},
+ </if>
+ <if test="stirTime != null">
+ stir_time = #{stirTime,jdbcType=INTEGER},
+ </if>
+ <if test="stirDuration != null">
+ stir_duration = #{stirDuration,jdbcType=INTEGER},
+ </if>
+ <if test="injectDuration != null">
+ inject_duration = #{injectDuration,jdbcType=INTEGER},
+ </if>
+ </set>
+ where id = #{id,jdbcType=BIGINT}
+ </update>
+ <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmManureLast">
+ <!--@mbg.generated-->
+ update rm_manure_last
+ set last_history_id = #{lastHistoryId,jdbcType=BIGINT},
+ manure_id = #{manureId,jdbcType=BIGINT},
+ dt = #{dt,jdbcType=TIMESTAMP},
+ stir_running1 = #{stirRunning1,jdbcType=TINYINT},
+ stir_running2 = #{stirRunning2,jdbcType=TINYINT},
+ stir_running3 = #{stirRunning3,jdbcType=TINYINT},
+ stir_running4 = #{stirRunning4,jdbcType=TINYINT},
+ inject_running = #{injectRunning,jdbcType=TINYINT},
+ irr_running = #{irrRunning,jdbcType=TINYINT},
+ alarm = #{alarm,jdbcType=TINYINT},
+ manure_flow = #{manureFlow,jdbcType=FLOAT},
+ manure_time = #{manureTime,jdbcType=INTEGER},
+ stir_time = #{stirTime,jdbcType=INTEGER},
+ stir_duration = #{stirDuration,jdbcType=INTEGER},
+ inject_duration = #{injectDuration,jdbcType=INTEGER}
+ where id = #{id,jdbcType=BIGINT}
+ </update>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmSoilDayMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmSoilDayMapper.xml
new file mode 100644
index 0000000..89a332f
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmSoilDayMapper.xml
@@ -0,0 +1,355 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dy.pipIrrGlobal.daoRm.RmSoilDayMapper">
+ <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmSoilDay">
+ <!--@mbg.generated-->
+ <!--@Table rm_soil_day-->
+ <id column="id" jdbcType="BIGINT" property="id" />
+ <result column="soil_id" jdbcType="BIGINT" property="soilId" />
+ <result column="dt" jdbcType="DATE" property="dt" />
+ <result column="ymd" jdbcType="INTEGER" property="ymd" />
+ <result column="soil_humidity1" jdbcType="FLOAT" property="soilHumidity1" />
+ <result column="soil_humidity2" jdbcType="FLOAT" property="soilHumidity2" />
+ <result column="soil_humidity3" jdbcType="FLOAT" property="soilHumidity3" />
+ <result column="soil_humidity4" jdbcType="FLOAT" property="soilHumidity4" />
+ <result column="soil_humidity5" jdbcType="FLOAT" property="soilHumidity5" />
+ <result column="soil_temperature1" jdbcType="FLOAT" property="soilTemperature1" />
+ <result column="soil_temperature2" jdbcType="FLOAT" property="soilTemperature2" />
+ <result column="soil_temperature3" jdbcType="FLOAT" property="soilTemperature3" />
+ <result column="soil_temperature4" jdbcType="FLOAT" property="soilTemperature4" />
+ <result column="soil_temperature5" jdbcType="FLOAT" property="soilTemperature5" />
+ <result column="times" jdbcType="INTEGER" property="times" />
+ <result column="soil_sum_humidity1" jdbcType="FLOAT" property="soilSumHumidity1" />
+ <result column="soil_sum_humidity2" jdbcType="FLOAT" property="soilSumHumidity2" />
+ <result column="soil_sum_humidity3" jdbcType="FLOAT" property="soilSumHumidity3" />
+ <result column="soil_sum_humidity4" jdbcType="FLOAT" property="soilSumHumidity4" />
+ <result column="soil_sum_humidity5" jdbcType="FLOAT" property="soilSumHumidity5" />
+ <result column="soil_sum_temperature1" jdbcType="FLOAT" property="soilSumTemperature1" />
+ <result column="soil_sum_temperature2" jdbcType="FLOAT" property="soilSumTemperature2" />
+ <result column="soil_sum_temperature3" jdbcType="FLOAT" property="soilSumTemperature3" />
+ <result column="soil_sum_temperature4" jdbcType="FLOAT" property="soilSumTemperature4" />
+ <result column="soil_sum_temperature5" jdbcType="FLOAT" property="soilSumTemperature5" />
+ </resultMap>
+ <sql id="Base_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, times, soil_sum_humidity1, soil_sum_humidity2, soil_sum_humidity3,
+ soil_sum_humidity4, soil_sum_humidity5, soil_sum_temperature1, soil_sum_temperature2,
+ soil_sum_temperature3, soil_sum_temperature4, soil_sum_temperature5
+ </sql>
+ <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+ <!--@mbg.generated-->
+ select
+ <include refid="Base_Column_List" />
+ from rm_soil_day
+ where id = #{id,jdbcType=BIGINT}
+ </select>
+
+ <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇璁板綍-->
+ <select id="selectRmSoilDay" resultType="com.dy.pipIrrGlobal.pojoRm.RmSoilDay">
+ select
+ <include refid="Base_Column_List" />
+ from rm_soil_day
+ <where>
+ <if test="stSoilId != null and stSoilId != ''">
+ and soil_id = #{stSoilId}
+ </if>
+ <if test="ymd != null and ymd != ''">
+ and ymd = #{ymd}
+ </if>
+ </where>
+ limit 0,1
+ </select>
+
+ <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+ <!--@mbg.generated-->
+ delete from rm_soil_day
+ where id = #{id,jdbcType=BIGINT}
+ </delete>
+ <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmSoilDay">
+ <!--@mbg.generated-->
+ insert into rm_soil_day (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,
+ times, soil_sum_humidity1, soil_sum_humidity2,
+ soil_sum_humidity3, soil_sum_humidity4, soil_sum_humidity5,
+ soil_sum_temperature1, soil_sum_temperature2, soil_sum_temperature3,
+ soil_sum_temperature4, soil_sum_temperature5)
+ values (#{id,jdbcType=BIGINT}, #{soilId,jdbcType=BIGINT}, #{dt,jdbcType=DATE}, #{ymd,jdbcType=INTEGER}, #{soilHumidity1,jdbcType=FLOAT},
+ #{soilHumidity2,jdbcType=FLOAT}, #{soilHumidity3,jdbcType=FLOAT}, #{soilHumidity4,jdbcType=FLOAT},
+ #{soilHumidity5,jdbcType=FLOAT}, #{soilTemperature1,jdbcType=FLOAT}, #{soilTemperature2,jdbcType=FLOAT},
+ #{soilTemperature3,jdbcType=FLOAT}, #{soilTemperature4,jdbcType=FLOAT}, #{soilTemperature5,jdbcType=FLOAT},
+ #{times,jdbcType=INTEGER}, #{soilSumHumidity1,jdbcType=FLOAT}, #{soilSumHumidity2,jdbcType=FLOAT},
+ #{soilSumHumidity3,jdbcType=FLOAT}, #{soilSumHumidity4,jdbcType=FLOAT}, #{soilSumHumidity5,jdbcType=FLOAT},
+ #{soilSumTemperature1,jdbcType=FLOAT}, #{soilSumTemperature2,jdbcType=FLOAT}, #{soilSumTemperature3,jdbcType=FLOAT},
+ #{soilSumTemperature4,jdbcType=FLOAT}, #{soilSumTemperature5,jdbcType=FLOAT})
+ </insert>
+ <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmSoilDay">
+ <!--@mbg.generated-->
+ insert into rm_soil_day
+ <trim prefix="(" suffix=")" suffixOverrides=",">
+ <if test="id != null">
+ id,
+ </if>
+ <if test="soilId != null">
+ soil_id,
+ </if>
+ <if test="dt != null">
+ dt,
+ </if>
+ <if test="ymd != null">
+ ymd,
+ </if>
+ <if test="soilHumidity1 != null">
+ soil_humidity1,
+ </if>
+ <if test="soilHumidity2 != null">
+ soil_humidity2,
+ </if>
+ <if test="soilHumidity3 != null">
+ soil_humidity3,
+ </if>
+ <if test="soilHumidity4 != null">
+ soil_humidity4,
+ </if>
+ <if test="soilHumidity5 != null">
+ soil_humidity5,
+ </if>
+ <if test="soilTemperature1 != null">
+ soil_temperature1,
+ </if>
+ <if test="soilTemperature2 != null">
+ soil_temperature2,
+ </if>
+ <if test="soilTemperature3 != null">
+ soil_temperature3,
+ </if>
+ <if test="soilTemperature4 != null">
+ soil_temperature4,
+ </if>
+ <if test="soilTemperature5 != null">
+ soil_temperature5,
+ </if>
+ <if test="times != null">
+ times,
+ </if>
+ <if test="soilSumHumidity1 != null">
+ soil_sum_humidity1,
+ </if>
+ <if test="soilSumHumidity2 != null">
+ soil_sum_humidity2,
+ </if>
+ <if test="soilSumHumidity3 != null">
+ soil_sum_humidity3,
+ </if>
+ <if test="soilSumHumidity4 != null">
+ soil_sum_humidity4,
+ </if>
+ <if test="soilSumHumidity5 != null">
+ soil_sum_humidity5,
+ </if>
+ <if test="soilSumTemperature1 != null">
+ soil_sum_temperature1,
+ </if>
+ <if test="soilSumTemperature2 != null">
+ soil_sum_temperature2,
+ </if>
+ <if test="soilSumTemperature3 != null">
+ soil_sum_temperature3,
+ </if>
+ <if test="soilSumTemperature4 != null">
+ soil_sum_temperature4,
+ </if>
+ <if test="soilSumTemperature5 != null">
+ soil_sum_temperature5,
+ </if>
+ </trim>
+ <trim prefix="values (" suffix=")" suffixOverrides=",">
+ <if test="id != null">
+ #{id,jdbcType=BIGINT},
+ </if>
+ <if test="soilId != null">
+ #{soilId,jdbcType=BIGINT},
+ </if>
+ <if test="dt != null">
+ #{dt,jdbcType=DATE},
+ </if>
+ <if test="ymd != null">
+ #{ymd,jdbcType=INTEGER},
+ </if>
+ <if test="soilHumidity1 != null">
+ #{soilHumidity1,jdbcType=FLOAT},
+ </if>
+ <if test="soilHumidity2 != null">
+ #{soilHumidity2,jdbcType=FLOAT},
+ </if>
+ <if test="soilHumidity3 != null">
+ #{soilHumidity3,jdbcType=FLOAT},
+ </if>
+ <if test="soilHumidity4 != null">
+ #{soilHumidity4,jdbcType=FLOAT},
+ </if>
+ <if test="soilHumidity5 != null">
+ #{soilHumidity5,jdbcType=FLOAT},
+ </if>
+ <if test="soilTemperature1 != null">
+ #{soilTemperature1,jdbcType=FLOAT},
+ </if>
+ <if test="soilTemperature2 != null">
+ #{soilTemperature2,jdbcType=FLOAT},
+ </if>
+ <if test="soilTemperature3 != null">
+ #{soilTemperature3,jdbcType=FLOAT},
+ </if>
+ <if test="soilTemperature4 != null">
+ #{soilTemperature4,jdbcType=FLOAT},
+ </if>
+ <if test="soilTemperature5 != null">
+ #{soilTemperature5,jdbcType=FLOAT},
+ </if>
+ <if test="times != null">
+ #{times,jdbcType=INTEGER},
+ </if>
+ <if test="soilSumHumidity1 != null">
+ #{soilSumHumidity1,jdbcType=FLOAT},
+ </if>
+ <if test="soilSumHumidity2 != null">
+ #{soilSumHumidity2,jdbcType=FLOAT},
+ </if>
+ <if test="soilSumHumidity3 != null">
+ #{soilSumHumidity3,jdbcType=FLOAT},
+ </if>
+ <if test="soilSumHumidity4 != null">
+ #{soilSumHumidity4,jdbcType=FLOAT},
+ </if>
+ <if test="soilSumHumidity5 != null">
+ #{soilSumHumidity5,jdbcType=FLOAT},
+ </if>
+ <if test="soilSumTemperature1 != null">
+ #{soilSumTemperature1,jdbcType=FLOAT},
+ </if>
+ <if test="soilSumTemperature2 != null">
+ #{soilSumTemperature2,jdbcType=FLOAT},
+ </if>
+ <if test="soilSumTemperature3 != null">
+ #{soilSumTemperature3,jdbcType=FLOAT},
+ </if>
+ <if test="soilSumTemperature4 != null">
+ #{soilSumTemperature4,jdbcType=FLOAT},
+ </if>
+ <if test="soilSumTemperature5 != null">
+ #{soilSumTemperature5,jdbcType=FLOAT},
+ </if>
+ </trim>
+ </insert>
+ <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmSoilDay">
+ <!--@mbg.generated-->
+ update rm_soil_day
+ <set>
+ <if test="soilId != null">
+ soil_id = #{soilId,jdbcType=BIGINT},
+ </if>
+ <if test="dt != null">
+ dt = #{dt,jdbcType=DATE},
+ </if>
+ <if test="ymd != null">
+ ymd = #{ymd,jdbcType=INTEGER},
+ </if>
+ <if test="soilHumidity1 != null">
+ soil_humidity1 = #{soilHumidity1,jdbcType=FLOAT},
+ </if>
+ <if test="soilHumidity2 != null">
+ soil_humidity2 = #{soilHumidity2,jdbcType=FLOAT},
+ </if>
+ <if test="soilHumidity3 != null">
+ soil_humidity3 = #{soilHumidity3,jdbcType=FLOAT},
+ </if>
+ <if test="soilHumidity4 != null">
+ soil_humidity4 = #{soilHumidity4,jdbcType=FLOAT},
+ </if>
+ <if test="soilHumidity5 != null">
+ soil_humidity5 = #{soilHumidity5,jdbcType=FLOAT},
+ </if>
+ <if test="soilTemperature1 != null">
+ soil_temperature1 = #{soilTemperature1,jdbcType=FLOAT},
+ </if>
+ <if test="soilTemperature2 != null">
+ soil_temperature2 = #{soilTemperature2,jdbcType=FLOAT},
+ </if>
+ <if test="soilTemperature3 != null">
+ soil_temperature3 = #{soilTemperature3,jdbcType=FLOAT},
+ </if>
+ <if test="soilTemperature4 != null">
+ soil_temperature4 = #{soilTemperature4,jdbcType=FLOAT},
+ </if>
+ <if test="soilTemperature5 != null">
+ soil_temperature5 = #{soilTemperature5,jdbcType=FLOAT},
+ </if>
+ <if test="times != null">
+ times = #{times,jdbcType=INTEGER},
+ </if>
+ <if test="soilSumHumidity1 != null">
+ soil_sum_humidity1 = #{soilSumHumidity1,jdbcType=FLOAT},
+ </if>
+ <if test="soilSumHumidity2 != null">
+ soil_sum_humidity2 = #{soilSumHumidity2,jdbcType=FLOAT},
+ </if>
+ <if test="soilSumHumidity3 != null">
+ soil_sum_humidity3 = #{soilSumHumidity3,jdbcType=FLOAT},
+ </if>
+ <if test="soilSumHumidity4 != null">
+ soil_sum_humidity4 = #{soilSumHumidity4,jdbcType=FLOAT},
+ </if>
+ <if test="soilSumHumidity5 != null">
+ soil_sum_humidity5 = #{soilSumHumidity5,jdbcType=FLOAT},
+ </if>
+ <if test="soilSumTemperature1 != null">
+ soil_sum_temperature1 = #{soilSumTemperature1,jdbcType=FLOAT},
+ </if>
+ <if test="soilSumTemperature2 != null">
+ soil_sum_temperature2 = #{soilSumTemperature2,jdbcType=FLOAT},
+ </if>
+ <if test="soilSumTemperature3 != null">
+ soil_sum_temperature3 = #{soilSumTemperature3,jdbcType=FLOAT},
+ </if>
+ <if test="soilSumTemperature4 != null">
+ soil_sum_temperature4 = #{soilSumTemperature4,jdbcType=FLOAT},
+ </if>
+ <if test="soilSumTemperature5 != null">
+ soil_sum_temperature5 = #{soilSumTemperature5,jdbcType=FLOAT},
+ </if>
+ </set>
+ where id = #{id,jdbcType=BIGINT}
+ </update>
+ <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmSoilDay">
+ <!--@mbg.generated-->
+ update rm_soil_day
+ set soil_id = #{soilId,jdbcType=BIGINT},
+ dt = #{dt,jdbcType=DATE},
+ ymd = #{ymd,jdbcType=INTEGER},
+ soil_humidity1 = #{soilHumidity1,jdbcType=FLOAT},
+ soil_humidity2 = #{soilHumidity2,jdbcType=FLOAT},
+ soil_humidity3 = #{soilHumidity3,jdbcType=FLOAT},
+ soil_humidity4 = #{soilHumidity4,jdbcType=FLOAT},
+ soil_humidity5 = #{soilHumidity5,jdbcType=FLOAT},
+ soil_temperature1 = #{soilTemperature1,jdbcType=FLOAT},
+ soil_temperature2 = #{soilTemperature2,jdbcType=FLOAT},
+ soil_temperature3 = #{soilTemperature3,jdbcType=FLOAT},
+ soil_temperature4 = #{soilTemperature4,jdbcType=FLOAT},
+ soil_temperature5 = #{soilTemperature5,jdbcType=FLOAT},
+ times = #{times,jdbcType=INTEGER},
+ soil_sum_humidity1 = #{soilSumHumidity1,jdbcType=FLOAT},
+ soil_sum_humidity2 = #{soilSumHumidity2,jdbcType=FLOAT},
+ soil_sum_humidity3 = #{soilSumHumidity3,jdbcType=FLOAT},
+ soil_sum_humidity4 = #{soilSumHumidity4,jdbcType=FLOAT},
+ soil_sum_humidity5 = #{soilSumHumidity5,jdbcType=FLOAT},
+ soil_sum_temperature1 = #{soilSumTemperature1,jdbcType=FLOAT},
+ soil_sum_temperature2 = #{soilSumTemperature2,jdbcType=FLOAT},
+ soil_sum_temperature3 = #{soilSumTemperature3,jdbcType=FLOAT},
+ soil_sum_temperature4 = #{soilSumTemperature4,jdbcType=FLOAT},
+ soil_sum_temperature5 = #{soilSumTemperature5,jdbcType=FLOAT}
+ where id = #{id,jdbcType=BIGINT}
+ </update>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmSoilHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmSoilHistoryMapper.xml
new file mode 100644
index 0000000..4a66ef7
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmSoilHistoryMapper.xml
@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dy.pipIrrGlobal.daoRm.RmSoilHistoryMapper">
+ <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmSoilHistory">
+ <!--@mbg.generated-->
+ <!--@Table rm_soil_history-->
+ <id column="id" jdbcType="BIGINT" property="id" />
+ <result column="soil_id" jdbcType="BIGINT" property="soilId" />
+ <result column="dt" jdbcType="TIMESTAMP" property="dt" />
+ <result column="soil_humidity1" jdbcType="FLOAT" property="soilHumidity1" />
+ <result column="soil_humidity2" jdbcType="FLOAT" property="soilHumidity2" />
+ <result column="soil_humidity3" jdbcType="FLOAT" property="soilHumidity3" />
+ <result column="soil_humidity4" jdbcType="FLOAT" property="soilHumidity4" />
+ <result column="soil_humidity5" jdbcType="FLOAT" property="soilHumidity5" />
+ <result column="soil_temperature1" jdbcType="FLOAT" property="soilTemperature1" />
+ <result column="soil_temperature2" jdbcType="FLOAT" property="soilTemperature2" />
+ <result column="soil_temperature3" jdbcType="FLOAT" property="soilTemperature3" />
+ <result column="soil_temperature4" jdbcType="FLOAT" property="soilTemperature4" />
+ <result column="soil_temperature5" jdbcType="FLOAT" property="soilTemperature5" />
+ </resultMap>
+ <sql id="Base_Column_List">
+ <!--@mbg.generated-->
+ id, soil_id, dt, 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
+ <include refid="Base_Column_List" />
+ from rm_soil_history
+ where id = #{id,jdbcType=BIGINT}
+ </select>
+ <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+ <!--@mbg.generated-->
+ delete from rm_soil_history
+ where id = #{id,jdbcType=BIGINT}
+ </delete>
+ <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmSoilHistory">
+ <!--@mbg.generated-->
+ insert into rm_soil_history (id, soil_id, dt,
+ soil_humidity1, soil_humidity2, soil_humidity3,
+ soil_humidity4, soil_humidity5, soil_temperature1,
+ soil_temperature2, soil_temperature3, soil_temperature4,
+ soil_temperature5)
+ values (#{id,jdbcType=BIGINT}, #{soilId,jdbcType=BIGINT}, #{dt,jdbcType=TIMESTAMP},
+ #{soilHumidity1,jdbcType=FLOAT}, #{soilHumidity2,jdbcType=FLOAT}, #{soilHumidity3,jdbcType=FLOAT},
+ #{soilHumidity4,jdbcType=FLOAT}, #{soilHumidity5,jdbcType=FLOAT}, #{soilTemperature1,jdbcType=FLOAT},
+ #{soilTemperature2,jdbcType=FLOAT}, #{soilTemperature3,jdbcType=FLOAT}, #{soilTemperature4,jdbcType=FLOAT},
+ #{soilTemperature5,jdbcType=FLOAT})
+ </insert>
+ <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmSoilHistory">
+ <!--@mbg.generated-->
+ insert into rm_soil_history
+ <trim prefix="(" suffix=")" suffixOverrides=",">
+ <if test="id != null">
+ id,
+ </if>
+ <if test="soilId != null">
+ soil_id,
+ </if>
+ <if test="dt != null">
+ dt,
+ </if>
+ <if test="soilHumidity1 != null">
+ soil_humidity1,
+ </if>
+ <if test="soilHumidity2 != null">
+ soil_humidity2,
+ </if>
+ <if test="soilHumidity3 != null">
+ soil_humidity3,
+ </if>
+ <if test="soilHumidity4 != null">
+ soil_humidity4,
+ </if>
+ <if test="soilHumidity5 != null">
+ soil_humidity5,
+ </if>
+ <if test="soilTemperature1 != null">
+ soil_temperature1,
+ </if>
+ <if test="soilTemperature2 != null">
+ soil_temperature2,
+ </if>
+ <if test="soilTemperature3 != null">
+ soil_temperature3,
+ </if>
+ <if test="soilTemperature4 != null">
+ soil_temperature4,
+ </if>
+ <if test="soilTemperature5 != null">
+ soil_temperature5,
+ </if>
+ </trim>
+ <trim prefix="values (" suffix=")" suffixOverrides=",">
+ <if test="id != null">
+ #{id,jdbcType=BIGINT},
+ </if>
+ <if test="soilId != null">
+ #{soilId,jdbcType=BIGINT},
+ </if>
+ <if test="dt != null">
+ #{dt,jdbcType=TIMESTAMP},
+ </if>
+ <if test="soilHumidity1 != null">
+ #{soilHumidity1,jdbcType=FLOAT},
+ </if>
+ <if test="soilHumidity2 != null">
+ #{soilHumidity2,jdbcType=FLOAT},
+ </if>
+ <if test="soilHumidity3 != null">
+ #{soilHumidity3,jdbcType=FLOAT},
+ </if>
+ <if test="soilHumidity4 != null">
+ #{soilHumidity4,jdbcType=FLOAT},
+ </if>
+ <if test="soilHumidity5 != null">
+ #{soilHumidity5,jdbcType=FLOAT},
+ </if>
+ <if test="soilTemperature1 != null">
+ #{soilTemperature1,jdbcType=FLOAT},
+ </if>
+ <if test="soilTemperature2 != null">
+ #{soilTemperature2,jdbcType=FLOAT},
+ </if>
+ <if test="soilTemperature3 != null">
+ #{soilTemperature3,jdbcType=FLOAT},
+ </if>
+ <if test="soilTemperature4 != null">
+ #{soilTemperature4,jdbcType=FLOAT},
+ </if>
+ <if test="soilTemperature5 != null">
+ #{soilTemperature5,jdbcType=FLOAT},
+ </if>
+ </trim>
+ </insert>
+ <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmSoilHistory">
+ <!--@mbg.generated-->
+ update rm_soil_history
+ <set>
+ <if test="soilId != null">
+ soil_id = #{soilId,jdbcType=BIGINT},
+ </if>
+ <if test="dt != null">
+ dt = #{dt,jdbcType=TIMESTAMP},
+ </if>
+ <if test="soilHumidity1 != null">
+ soil_humidity1 = #{soilHumidity1,jdbcType=FLOAT},
+ </if>
+ <if test="soilHumidity2 != null">
+ soil_humidity2 = #{soilHumidity2,jdbcType=FLOAT},
+ </if>
+ <if test="soilHumidity3 != null">
+ soil_humidity3 = #{soilHumidity3,jdbcType=FLOAT},
+ </if>
+ <if test="soilHumidity4 != null">
+ soil_humidity4 = #{soilHumidity4,jdbcType=FLOAT},
+ </if>
+ <if test="soilHumidity5 != null">
+ soil_humidity5 = #{soilHumidity5,jdbcType=FLOAT},
+ </if>
+ <if test="soilTemperature1 != null">
+ soil_temperature1 = #{soilTemperature1,jdbcType=FLOAT},
+ </if>
+ <if test="soilTemperature2 != null">
+ soil_temperature2 = #{soilTemperature2,jdbcType=FLOAT},
+ </if>
+ <if test="soilTemperature3 != null">
+ soil_temperature3 = #{soilTemperature3,jdbcType=FLOAT},
+ </if>
+ <if test="soilTemperature4 != null">
+ soil_temperature4 = #{soilTemperature4,jdbcType=FLOAT},
+ </if>
+ <if test="soilTemperature5 != null">
+ soil_temperature5 = #{soilTemperature5,jdbcType=FLOAT},
+ </if>
+ </set>
+ where id = #{id,jdbcType=BIGINT}
+ </update>
+ <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmSoilHistory">
+ <!--@mbg.generated-->
+ update rm_soil_history
+ set soil_id = #{soilId,jdbcType=BIGINT},
+ dt = #{dt,jdbcType=TIMESTAMP},
+ soil_humidity1 = #{soilHumidity1,jdbcType=FLOAT},
+ soil_humidity2 = #{soilHumidity2,jdbcType=FLOAT},
+ soil_humidity3 = #{soilHumidity3,jdbcType=FLOAT},
+ soil_humidity4 = #{soilHumidity4,jdbcType=FLOAT},
+ soil_humidity5 = #{soilHumidity5,jdbcType=FLOAT},
+ soil_temperature1 = #{soilTemperature1,jdbcType=FLOAT},
+ soil_temperature2 = #{soilTemperature2,jdbcType=FLOAT},
+ soil_temperature3 = #{soilTemperature3,jdbcType=FLOAT},
+ soil_temperature4 = #{soilTemperature4,jdbcType=FLOAT},
+ soil_temperature5 = #{soilTemperature5,jdbcType=FLOAT}
+ where id = #{id,jdbcType=BIGINT}
+ </update>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmSoilLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmSoilLastMapper.xml
new file mode 100644
index 0000000..2e10b41
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmSoilLastMapper.xml
@@ -0,0 +1,222 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dy.pipIrrGlobal.daoRm.RmSoilLastMapper">
+ <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmSoilLast">
+ <!--@mbg.generated-->
+ <!--@Table rm_soil_last-->
+ <id column="id" jdbcType="BIGINT" property="id" />
+ <result column="last_history_id" jdbcType="BIGINT" property="lastHistoryId" />
+ <result column="soil_id" jdbcType="BIGINT" property="soilId" />
+ <result column="dt" jdbcType="TIMESTAMP" property="dt" />
+ <result column="soil_humidity1" jdbcType="FLOAT" property="soilHumidity1" />
+ <result column="soil_humidity2" jdbcType="FLOAT" property="soilHumidity2" />
+ <result column="soil_humidity3" jdbcType="FLOAT" property="soilHumidity3" />
+ <result column="soil_humidity4" jdbcType="FLOAT" property="soilHumidity4" />
+ <result column="soil_humidity5" jdbcType="FLOAT" property="soilHumidity5" />
+ <result column="soil_temperature1" jdbcType="FLOAT" property="soilTemperature1" />
+ <result column="soil_temperature2" jdbcType="FLOAT" property="soilTemperature2" />
+ <result column="soil_temperature3" jdbcType="FLOAT" property="soilTemperature3" />
+ <result column="soil_temperature4" jdbcType="FLOAT" property="soilTemperature4" />
+ <result column="soil_temperature5" jdbcType="FLOAT" property="soilTemperature5" />
+ </resultMap>
+ <sql id="Base_Column_List">
+ <!--@mbg.generated-->
+ id, last_history_id, soil_id, dt, 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
+ <include refid="Base_Column_List" />
+ from rm_soil_last
+ where id = #{id,jdbcType=BIGINT}
+ </select>
+
+ <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇璁板綍-->
+ <select id="selectRmSoilLast" resultType="com.dy.pipIrrGlobal.pojoRm.RmSoilLast">
+ select
+ <include refid="Base_Column_List" />
+ from rm_soil_last
+ <where>
+ <if test="stSoilId != null and stSoilId != ''">
+ and soil_id = #{stSoilId}
+ </if>
+ </where>
+ limit 0,1
+ </select>
+ <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+ <!--@mbg.generated-->
+ delete from rm_soil_last
+ where id = #{id,jdbcType=BIGINT}
+ </delete>
+ <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmSoilLast">
+ <!--@mbg.generated-->
+ insert into rm_soil_last (id, last_history_id, soil_id,
+ dt, soil_humidity1, soil_humidity2,
+ soil_humidity3, soil_humidity4, soil_humidity5,
+ soil_temperature1, soil_temperature2, soil_temperature3,
+ soil_temperature4, soil_temperature5)
+ values (#{id,jdbcType=BIGINT}, #{lastHistoryId,jdbcType=BIGINT}, #{soilId,jdbcType=BIGINT},
+ #{dt,jdbcType=TIMESTAMP}, #{soilHumidity1,jdbcType=FLOAT}, #{soilHumidity2,jdbcType=FLOAT},
+ #{soilHumidity3,jdbcType=FLOAT}, #{soilHumidity4,jdbcType=FLOAT}, #{soilHumidity5,jdbcType=FLOAT},
+ #{soilTemperature1,jdbcType=FLOAT}, #{soilTemperature2,jdbcType=FLOAT}, #{soilTemperature3,jdbcType=FLOAT},
+ #{soilTemperature4,jdbcType=FLOAT}, #{soilTemperature5,jdbcType=FLOAT})
+ </insert>
+ <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmSoilLast">
+ <!--@mbg.generated-->
+ insert into rm_soil_last
+ <trim prefix="(" suffix=")" suffixOverrides=",">
+ <if test="id != null">
+ id,
+ </if>
+ <if test="lastHistoryId != null">
+ last_history_id,
+ </if>
+ <if test="soilId != null">
+ soil_id,
+ </if>
+ <if test="dt != null">
+ dt,
+ </if>
+ <if test="soilHumidity1 != null">
+ soil_humidity1,
+ </if>
+ <if test="soilHumidity2 != null">
+ soil_humidity2,
+ </if>
+ <if test="soilHumidity3 != null">
+ soil_humidity3,
+ </if>
+ <if test="soilHumidity4 != null">
+ soil_humidity4,
+ </if>
+ <if test="soilHumidity5 != null">
+ soil_humidity5,
+ </if>
+ <if test="soilTemperature1 != null">
+ soil_temperature1,
+ </if>
+ <if test="soilTemperature2 != null">
+ soil_temperature2,
+ </if>
+ <if test="soilTemperature3 != null">
+ soil_temperature3,
+ </if>
+ <if test="soilTemperature4 != null">
+ soil_temperature4,
+ </if>
+ <if test="soilTemperature5 != null">
+ soil_temperature5,
+ </if>
+ </trim>
+ <trim prefix="values (" suffix=")" suffixOverrides=",">
+ <if test="id != null">
+ #{id,jdbcType=BIGINT},
+ </if>
+ <if test="lastHistoryId != null">
+ #{lastHistoryId,jdbcType=BIGINT},
+ </if>
+ <if test="soilId != null">
+ #{soilId,jdbcType=BIGINT},
+ </if>
+ <if test="dt != null">
+ #{dt,jdbcType=TIMESTAMP},
+ </if>
+ <if test="soilHumidity1 != null">
+ #{soilHumidity1,jdbcType=FLOAT},
+ </if>
+ <if test="soilHumidity2 != null">
+ #{soilHumidity2,jdbcType=FLOAT},
+ </if>
+ <if test="soilHumidity3 != null">
+ #{soilHumidity3,jdbcType=FLOAT},
+ </if>
+ <if test="soilHumidity4 != null">
+ #{soilHumidity4,jdbcType=FLOAT},
+ </if>
+ <if test="soilHumidity5 != null">
+ #{soilHumidity5,jdbcType=FLOAT},
+ </if>
+ <if test="soilTemperature1 != null">
+ #{soilTemperature1,jdbcType=FLOAT},
+ </if>
+ <if test="soilTemperature2 != null">
+ #{soilTemperature2,jdbcType=FLOAT},
+ </if>
+ <if test="soilTemperature3 != null">
+ #{soilTemperature3,jdbcType=FLOAT},
+ </if>
+ <if test="soilTemperature4 != null">
+ #{soilTemperature4,jdbcType=FLOAT},
+ </if>
+ <if test="soilTemperature5 != null">
+ #{soilTemperature5,jdbcType=FLOAT},
+ </if>
+ </trim>
+ </insert>
+ <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmSoilLast">
+ <!--@mbg.generated-->
+ update rm_soil_last
+ <set>
+ <if test="lastHistoryId != null">
+ last_history_id = #{lastHistoryId,jdbcType=BIGINT},
+ </if>
+ <if test="soilId != null">
+ soil_id = #{soilId,jdbcType=BIGINT},
+ </if>
+ <if test="dt != null">
+ dt = #{dt,jdbcType=TIMESTAMP},
+ </if>
+ <if test="soilHumidity1 != null">
+ soil_humidity1 = #{soilHumidity1,jdbcType=FLOAT},
+ </if>
+ <if test="soilHumidity2 != null">
+ soil_humidity2 = #{soilHumidity2,jdbcType=FLOAT},
+ </if>
+ <if test="soilHumidity3 != null">
+ soil_humidity3 = #{soilHumidity3,jdbcType=FLOAT},
+ </if>
+ <if test="soilHumidity4 != null">
+ soil_humidity4 = #{soilHumidity4,jdbcType=FLOAT},
+ </if>
+ <if test="soilHumidity5 != null">
+ soil_humidity5 = #{soilHumidity5,jdbcType=FLOAT},
+ </if>
+ <if test="soilTemperature1 != null">
+ soil_temperature1 = #{soilTemperature1,jdbcType=FLOAT},
+ </if>
+ <if test="soilTemperature2 != null">
+ soil_temperature2 = #{soilTemperature2,jdbcType=FLOAT},
+ </if>
+ <if test="soilTemperature3 != null">
+ soil_temperature3 = #{soilTemperature3,jdbcType=FLOAT},
+ </if>
+ <if test="soilTemperature4 != null">
+ soil_temperature4 = #{soilTemperature4,jdbcType=FLOAT},
+ </if>
+ <if test="soilTemperature5 != null">
+ soil_temperature5 = #{soilTemperature5,jdbcType=FLOAT},
+ </if>
+ </set>
+ where id = #{id,jdbcType=BIGINT}
+ </update>
+ <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmSoilLast">
+ <!--@mbg.generated-->
+ update rm_soil_last
+ set last_history_id = #{lastHistoryId,jdbcType=BIGINT},
+ soil_id = #{soilId,jdbcType=BIGINT},
+ dt = #{dt,jdbcType=TIMESTAMP},
+ soil_humidity1 = #{soilHumidity1,jdbcType=FLOAT},
+ soil_humidity2 = #{soilHumidity2,jdbcType=FLOAT},
+ soil_humidity3 = #{soilHumidity3,jdbcType=FLOAT},
+ soil_humidity4 = #{soilHumidity4,jdbcType=FLOAT},
+ soil_humidity5 = #{soilHumidity5,jdbcType=FLOAT},
+ soil_temperature1 = #{soilTemperature1,jdbcType=FLOAT},
+ soil_temperature2 = #{soilTemperature2,jdbcType=FLOAT},
+ soil_temperature3 = #{soilTemperature3,jdbcType=FLOAT},
+ soil_temperature4 = #{soilTemperature4,jdbcType=FLOAT},
+ soil_temperature5 = #{soilTemperature5,jdbcType=FLOAT}
+ where id = #{id,jdbcType=BIGINT}
+ </update>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWeatherHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWeatherHistoryMapper.xml
new file mode 100644
index 0000000..c241300
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWeatherHistoryMapper.xml
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dy.pipIrrGlobal.daoRm.RmWeatherHistoryMapper">
+ <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmWeatherHistory">
+ <!--@mbg.generated-->
+ <!--@Table rm_weather_history-->
+ <id column="id" jdbcType="BIGINT" property="id" />
+ <result column="weather_id" jdbcType="BIGINT" property="weatherId" />
+ <result column="dt" jdbcType="TIMESTAMP" property="dt" />
+ <result column="air_temperature" jdbcType="FLOAT" property="airTemperature" />
+ <result column="air_humidity" jdbcType="FLOAT" property="airHumidity" />
+ <result column="ultraviolet" jdbcType="INTEGER" property="ultraviolet" />
+ <result column="light_intensity" jdbcType="INTEGER" property="lightIntensity" />
+ <result column="rainfall" jdbcType="FLOAT" property="rainfall" />
+ <result column="wind_speed" jdbcType="FLOAT" property="windSpeed" />
+ <result column="wind_direction" jdbcType="INTEGER" property="windDirection" />
+ </resultMap>
+ <sql id="Base_Column_List">
+ <!--@mbg.generated-->
+ id, weather_id, dt, air_temperature, air_humidity, ultraviolet, light_intensity,
+ rainfall, wind_speed, wind_direction
+ </sql>
+ <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+ <!--@mbg.generated-->
+ select
+ <include refid="Base_Column_List" />
+ from rm_weather_history
+ where id = #{id,jdbcType=BIGINT}
+ </select>
+ <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+ <!--@mbg.generated-->
+ delete from rm_weather_history
+ where id = #{id,jdbcType=BIGINT}
+ </delete>
+ <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmWeatherHistory">
+ <!--@mbg.generated-->
+ insert into rm_weather_history (id, weather_id, dt,
+ air_temperature, air_humidity, ultraviolet,
+ light_intensity, rainfall, wind_speed,
+ wind_direction)
+ values (#{id,jdbcType=BIGINT}, #{weatherId,jdbcType=BIGINT}, #{dt,jdbcType=TIMESTAMP},
+ #{airTemperature,jdbcType=FLOAT}, #{airHumidity,jdbcType=FLOAT}, #{ultraviolet,jdbcType=INTEGER},
+ #{lightIntensity,jdbcType=INTEGER}, #{rainfall,jdbcType=FLOAT}, #{windSpeed,jdbcType=FLOAT},
+ #{windDirection,jdbcType=INTEGER})
+ </insert>
+ <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmWeatherHistory">
+ <!--@mbg.generated-->
+ insert into rm_weather_history
+ <trim prefix="(" suffix=")" suffixOverrides=",">
+ <if test="id != null">
+ id,
+ </if>
+ <if test="weatherId != null">
+ weather_id,
+ </if>
+ <if test="dt != null">
+ dt,
+ </if>
+ <if test="airTemperature != null">
+ air_temperature,
+ </if>
+ <if test="airHumidity != null">
+ air_humidity,
+ </if>
+ <if test="ultraviolet != null">
+ ultraviolet,
+ </if>
+ <if test="lightIntensity != null">
+ light_intensity,
+ </if>
+ <if test="rainfall != null">
+ rainfall,
+ </if>
+ <if test="windSpeed != null">
+ wind_speed,
+ </if>
+ <if test="windDirection != null">
+ wind_direction,
+ </if>
+ </trim>
+ <trim prefix="values (" suffix=")" suffixOverrides=",">
+ <if test="id != null">
+ #{id,jdbcType=BIGINT},
+ </if>
+ <if test="weatherId != null">
+ #{weatherId,jdbcType=BIGINT},
+ </if>
+ <if test="dt != null">
+ #{dt,jdbcType=TIMESTAMP},
+ </if>
+ <if test="airTemperature != null">
+ #{airTemperature,jdbcType=FLOAT},
+ </if>
+ <if test="airHumidity != null">
+ #{airHumidity,jdbcType=FLOAT},
+ </if>
+ <if test="ultraviolet != null">
+ #{ultraviolet,jdbcType=INTEGER},
+ </if>
+ <if test="lightIntensity != null">
+ #{lightIntensity,jdbcType=INTEGER},
+ </if>
+ <if test="rainfall != null">
+ #{rainfall,jdbcType=FLOAT},
+ </if>
+ <if test="windSpeed != null">
+ #{windSpeed,jdbcType=FLOAT},
+ </if>
+ <if test="windDirection != null">
+ #{windDirection,jdbcType=INTEGER},
+ </if>
+ </trim>
+ </insert>
+ <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmWeatherHistory">
+ <!--@mbg.generated-->
+ update rm_weather_history
+ <set>
+ <if test="weatherId != null">
+ weather_id = #{weatherId,jdbcType=BIGINT},
+ </if>
+ <if test="dt != null">
+ dt = #{dt,jdbcType=TIMESTAMP},
+ </if>
+ <if test="airTemperature != null">
+ air_temperature = #{airTemperature,jdbcType=FLOAT},
+ </if>
+ <if test="airHumidity != null">
+ air_humidity = #{airHumidity,jdbcType=FLOAT},
+ </if>
+ <if test="ultraviolet != null">
+ ultraviolet = #{ultraviolet,jdbcType=INTEGER},
+ </if>
+ <if test="lightIntensity != null">
+ light_intensity = #{lightIntensity,jdbcType=INTEGER},
+ </if>
+ <if test="rainfall != null">
+ rainfall = #{rainfall,jdbcType=FLOAT},
+ </if>
+ <if test="windSpeed != null">
+ wind_speed = #{windSpeed,jdbcType=FLOAT},
+ </if>
+ <if test="windDirection != null">
+ wind_direction = #{windDirection,jdbcType=INTEGER},
+ </if>
+ </set>
+ where id = #{id,jdbcType=BIGINT}
+ </update>
+ <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmWeatherHistory">
+ <!--@mbg.generated-->
+ update rm_weather_history
+ set weather_id = #{weatherId,jdbcType=BIGINT},
+ dt = #{dt,jdbcType=TIMESTAMP},
+ air_temperature = #{airTemperature,jdbcType=FLOAT},
+ air_humidity = #{airHumidity,jdbcType=FLOAT},
+ ultraviolet = #{ultraviolet,jdbcType=INTEGER},
+ light_intensity = #{lightIntensity,jdbcType=INTEGER},
+ rainfall = #{rainfall,jdbcType=FLOAT},
+ wind_speed = #{windSpeed,jdbcType=FLOAT},
+ wind_direction = #{windDirection,jdbcType=INTEGER}
+ where id = #{id,jdbcType=BIGINT}
+ </update>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWeatherLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWeatherLastMapper.xml
new file mode 100644
index 0000000..4014fc3
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWeatherLastMapper.xml
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dy.pipIrrGlobal.daoRm.RmWeatherLastMapper">
+ <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmWeatherLast">
+ <!--@mbg.generated-->
+ <!--@Table rm_weather_last-->
+ <id column="id" jdbcType="BIGINT" property="id" />
+ <result column="last_history_id" jdbcType="BIGINT" property="lastHistoryId" />
+ <result column="weather_id" jdbcType="BIGINT" property="weatherId" />
+ <result column="dt" jdbcType="TIMESTAMP" property="dt" />
+ <result column="air_temperature" jdbcType="FLOAT" property="airTemperature" />
+ <result column="air_humidity" jdbcType="FLOAT" property="airHumidity" />
+ <result column="ultraviolet" jdbcType="INTEGER" property="ultraviolet" />
+ <result column="light_intensity" jdbcType="INTEGER" property="lightIntensity" />
+ <result column="rainfall" jdbcType="FLOAT" property="rainfall" />
+ <result column="wind_speed" jdbcType="FLOAT" property="windSpeed" />
+ <result column="wind_direction" jdbcType="INTEGER" property="windDirection" />
+ </resultMap>
+ <sql id="Base_Column_List">
+ <!--@mbg.generated-->
+ id, last_history_id, weather_id, dt, air_temperature, air_humidity, ultraviolet,
+ light_intensity, rainfall, wind_speed, wind_direction
+ </sql>
+ <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+ <!--@mbg.generated-->
+ select
+ <include refid="Base_Column_List" />
+ from rm_weather_last
+ where id = #{id,jdbcType=BIGINT}
+ </select>
+
+ <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇璁板綍-->
+ <select id="selectRmWeatherLast" resultType="com.dy.pipIrrGlobal.pojoRm.RmWeatherLast">
+ select
+ <include refid="Base_Column_List" />
+ from rm_weather_last
+ <where>
+ <if test="stWeatherId != null and stWeatherId != ''">
+ and weather_id = #{stWeatherId}
+ </if>
+ </where>
+ limit 0,1
+ </select>
+ <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+ <!--@mbg.generated-->
+ delete from rm_weather_last
+ where id = #{id,jdbcType=BIGINT}
+ </delete>
+ <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmWeatherLast">
+ <!--@mbg.generated-->
+ insert into rm_weather_last (id, last_history_id, weather_id,
+ dt, air_temperature, air_humidity,
+ ultraviolet, light_intensity, rainfall,
+ wind_speed, wind_direction)
+ values (#{id,jdbcType=BIGINT}, #{lastHistoryId,jdbcType=BIGINT}, #{weatherId,jdbcType=BIGINT},
+ #{dt,jdbcType=TIMESTAMP}, #{airTemperature,jdbcType=FLOAT}, #{airHumidity,jdbcType=FLOAT},
+ #{ultraviolet,jdbcType=INTEGER}, #{lightIntensity,jdbcType=INTEGER}, #{rainfall,jdbcType=FLOAT},
+ #{windSpeed,jdbcType=FLOAT}, #{windDirection,jdbcType=INTEGER})
+ </insert>
+ <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmWeatherLast">
+ <!--@mbg.generated-->
+ insert into rm_weather_last
+ <trim prefix="(" suffix=")" suffixOverrides=",">
+ <if test="id != null">
+ id,
+ </if>
+ <if test="lastHistoryId != null">
+ last_history_id,
+ </if>
+ <if test="weatherId != null">
+ weather_id,
+ </if>
+ <if test="dt != null">
+ dt,
+ </if>
+ <if test="airTemperature != null">
+ air_temperature,
+ </if>
+ <if test="airHumidity != null">
+ air_humidity,
+ </if>
+ <if test="ultraviolet != null">
+ ultraviolet,
+ </if>
+ <if test="lightIntensity != null">
+ light_intensity,
+ </if>
+ <if test="rainfall != null">
+ rainfall,
+ </if>
+ <if test="windSpeed != null">
+ wind_speed,
+ </if>
+ <if test="windDirection != null">
+ wind_direction,
+ </if>
+ </trim>
+ <trim prefix="values (" suffix=")" suffixOverrides=",">
+ <if test="id != null">
+ #{id,jdbcType=BIGINT},
+ </if>
+ <if test="lastHistoryId != null">
+ #{lastHistoryId,jdbcType=BIGINT},
+ </if>
+ <if test="weatherId != null">
+ #{weatherId,jdbcType=BIGINT},
+ </if>
+ <if test="dt != null">
+ #{dt,jdbcType=TIMESTAMP},
+ </if>
+ <if test="airTemperature != null">
+ #{airTemperature,jdbcType=FLOAT},
+ </if>
+ <if test="airHumidity != null">
+ #{airHumidity,jdbcType=FLOAT},
+ </if>
+ <if test="ultraviolet != null">
+ #{ultraviolet,jdbcType=INTEGER},
+ </if>
+ <if test="lightIntensity != null">
+ #{lightIntensity,jdbcType=INTEGER},
+ </if>
+ <if test="rainfall != null">
+ #{rainfall,jdbcType=FLOAT},
+ </if>
+ <if test="windSpeed != null">
+ #{windSpeed,jdbcType=FLOAT},
+ </if>
+ <if test="windDirection != null">
+ #{windDirection,jdbcType=INTEGER},
+ </if>
+ </trim>
+ </insert>
+ <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmWeatherLast">
+ <!--@mbg.generated-->
+ update rm_weather_last
+ <set>
+ <if test="lastHistoryId != null">
+ last_history_id = #{lastHistoryId,jdbcType=BIGINT},
+ </if>
+ <if test="weatherId != null">
+ weather_id = #{weatherId,jdbcType=BIGINT},
+ </if>
+ <if test="dt != null">
+ dt = #{dt,jdbcType=TIMESTAMP},
+ </if>
+ <if test="airTemperature != null">
+ air_temperature = #{airTemperature,jdbcType=FLOAT},
+ </if>
+ <if test="airHumidity != null">
+ air_humidity = #{airHumidity,jdbcType=FLOAT},
+ </if>
+ <if test="ultraviolet != null">
+ ultraviolet = #{ultraviolet,jdbcType=INTEGER},
+ </if>
+ <if test="lightIntensity != null">
+ light_intensity = #{lightIntensity,jdbcType=INTEGER},
+ </if>
+ <if test="rainfall != null">
+ rainfall = #{rainfall,jdbcType=FLOAT},
+ </if>
+ <if test="windSpeed != null">
+ wind_speed = #{windSpeed,jdbcType=FLOAT},
+ </if>
+ <if test="windDirection != null">
+ wind_direction = #{windDirection,jdbcType=INTEGER},
+ </if>
+ </set>
+ where id = #{id,jdbcType=BIGINT}
+ </update>
+ <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmWeatherLast">
+ <!--@mbg.generated-->
+ update rm_weather_last
+ set last_history_id = #{lastHistoryId,jdbcType=BIGINT},
+ weather_id = #{weatherId,jdbcType=BIGINT},
+ dt = #{dt,jdbcType=TIMESTAMP},
+ air_temperature = #{airTemperature,jdbcType=FLOAT},
+ air_humidity = #{airHumidity,jdbcType=FLOAT},
+ ultraviolet = #{ultraviolet,jdbcType=INTEGER},
+ light_intensity = #{lightIntensity,jdbcType=INTEGER},
+ rainfall = #{rainfall,jdbcType=FLOAT},
+ wind_speed = #{windSpeed,jdbcType=FLOAT},
+ wind_direction = #{windDirection,jdbcType=INTEGER}
+ where id = #{id,jdbcType=BIGINT}
+ </update>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
index 13c0ca2..49d25ec 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
@@ -478,6 +478,8 @@
mqVo.comCacheTimeout = conf.getSetAttrPlusInt(doc, "config.mqtt", "comCacheTimeout", null, 1, 3600, null) * 1000L ;
+ ServerProperties.mqttAcceptDataMinInterval = conf.getSetAttrPlusInt(doc, "config.mqtt", "acceptDataMinInterval", null, 1, 720, null) * 60 * 1000L ;
+
mqVo.useMemoryPersistence = conf.getSetAttrBoolean(doc, "config.mqtt", "useMemoryPersistence", null, null) ;
String proAndDevIds = conf.getSetAttrTxt(doc, "config.mqtt", "protocolAndDeviceIds", null, false, null) ;
if(proAndDevIds == null || proAndDevIds.trim().equals("")){
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/ServerProperties.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/ServerProperties.java
index ef5a0da..ed9df08 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/ServerProperties.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/ServerProperties.java
@@ -56,5 +56,8 @@
//Mqtt妯″潡鏄惁鍚姩
public static Boolean mqttUnitEnable = false ;
+ public static Long mqttAcceptDataMinInterval = 60 * 60 * 1000L ;//榛樿60鍒嗛挓
+
+
}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java
index b2a6a43..a07d3ea 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java
@@ -1,13 +1,11 @@
package com.dy.rtuMw.server.rtuData.dbSv;
import com.dy.common.util.NumUtil;
-import com.dy.pipIrrGlobal.daoPr.PrControllerMapper;
-import com.dy.pipIrrGlobal.daoPr.PrControllerTrampMapper;
+import com.dy.pipIrrGlobal.daoPr.*;
import com.dy.pipIrrGlobal.daoRm.*;
import com.dy.pipIrrGlobal.daoSe.SeClientCardMapper;
import com.dy.pipIrrGlobal.daoSe.SeVirtualCardMapper;
-import com.dy.pipIrrGlobal.pojoPr.PrController;
-import com.dy.pipIrrGlobal.pojoPr.PrControllerTramp;
+import com.dy.pipIrrGlobal.pojoPr.*;
import com.dy.pipIrrGlobal.pojoRm.*;
import com.dy.pipIrrGlobal.pojoSe.SeClient;
import com.dy.pipIrrGlobal.voSe.VoCardInfo1;
@@ -71,6 +69,27 @@
private RmOnHourReportHistoryMapper rmOnHourReportHistoryDao; // 瀹氱偣涓婃姤鍘嗗彶鏁版嵁DAO
@Autowired
private RmOnHourReportLastMapper rmOnHourReportLastDao; // 瀹氱偣涓婃姤鏈�鏂版暟鎹瓺AO
+
+ @Autowired
+ private PrStManureMapper prStManureDao; //姘磋偉鏈篋AO
+ @Autowired
+ private PrStSoilMapper prStSoilDao; //澧掓儏绔橠AO
+ @Autowired
+ private PrStWeatherMapper prStWeatherDao; //姘旇薄绔橠AO
+ @Autowired
+ private RmManureLastMapper rmManureLastDao; //姘磋偉DAO
+ @Autowired
+ private RmManureHistoryMapper rmManureHistoryDao; //姘磋偉DAO
+ @Autowired
+ private RmSoilLastMapper rmSoilLastDao; //澧掓儏DAO
+ @Autowired
+ private RmSoilHistoryMapper rmSoilHistoryDao; //澧掓儏DAO
+ @Autowired
+ private RmSoilDayMapper rmSoilDayDao; //澧掓儏DAO
+ @Autowired
+ private RmWeatherLastMapper rmWeatherLastDao; //姘旇薄DAO
+ @Autowired
+ private RmWeatherHistoryMapper rmWeatherHistoryDao; //姘旇薄DAO
//@Autowired
@@ -694,6 +713,209 @@
seVirtualCardDao.updateMoney(id,remainMoney);
}
+
+ //////////////////////////////////////////////////////
+ //
+ // 姘磋偉鏁版嵁鐩稿叧
+ //
+ //////////////////////////////////////////////////////
+ /**
+ * 閫氳繃FBox搴忓垪鍙峰緱鍒版按鑲ユ満瀹炰綋
+ * @param fboxId FBox搴忓垪鍙�
+ * @param no 缂栧彿
+ * @return 姘磋偉鏈哄疄浣�
+ */
+ public PrStManure getStManureByFBoxIdAndNo(String fboxId, Integer no){
+ List<PrStManure> list = this.prStManureDao.selectStPoByFBoxIdAndNo(fboxId, no) ;
+ if(list != null && list.size() > 0){
+ return list.get(0) ;
+ }
+ return null ;
+ }
+ /**
+ * 鏌ヨ涓婃姤鏈�鏂版暟鎹�
+ * @param stManureId
+ * @return
+ */
+ public RmManureLast getRmManureLast(Long stManureId) {
+ List<RmManureLast> list = this.rmManureLastDao.selectRmManureLast(stManureId) ;
+ if(list != null && list.size() > 0){
+ return list.get(0) ;
+ }
+ return null ;
+ }
+ /**
+ * 淇濆瓨鏈�鏂拌褰�
+ * @param po
+ */
+ @Transactional(rollbackFor = Exception.class)
+ public void saveRmManureHistory(RmManureHistory po) {
+ this.rmManureHistoryDao.insert(po);
+ }
+
+ /**
+ * 淇濆瓨鏈�鏂拌褰�
+ * @param po
+ */
+ @Transactional(rollbackFor = Exception.class)
+ public void saveRmManureLast(RmManureLast po) {
+ this.rmManureLastDao.insert(po);
+ }
+ /**
+ * 鏇存柊鏈�鏂拌褰�
+ * @param po
+ */
+ @Transactional(rollbackFor = Exception.class)
+ public void updateRmManureLast(RmManureLast po){
+ this.rmManureLastDao.updateByPrimaryKey(po) ;
+ }
+
+
+ //////////////////////////////////////////////////////
+ //
+ // 澧掓儏鏁版嵁鐩稿叧
+ //
+ //////////////////////////////////////////////////////
+ /**
+ * 閫氳繃FBox搴忓垪鍙峰緱鍒板鎯呯珯瀹炰綋
+ * @param fboxId FBox搴忓垪鍙�
+ * @param no 缂栧彿
+ * @return 姘磋偉鏈哄疄浣�
+ */
+ public PrStSoil getStSoilByFBoxIdAndNo(String fboxId, Integer no){
+ List<PrStSoil> list = this.prStSoilDao.selectStPoByFBoxIdAndNo(fboxId, no) ;
+ if(list != null && list.size() > 0){
+ return list.get(0) ;
+ }
+ return null ;
+ }
+ /**
+ * 鏌ヨ涓婃姤鏈�鏂版暟鎹�
+ * @param stSoilId
+ * @return
+ */
+ public RmSoilLast getRmSoilLast(Long stSoilId) {
+ List<RmSoilLast> list = this.rmSoilLastDao.selectRmSoilLast(stSoilId) ;
+ if(list != null && list.size() > 0){
+ return list.get(0) ;
+ }
+ return null ;
+ }
+ /**
+ * 淇濆瓨鏈�鏂拌褰�
+ * @param po
+ */
+ @Transactional(rollbackFor = Exception.class)
+ public void saveRmSoilHistory(RmSoilHistory po) {
+ this.rmSoilHistoryDao.insert(po);
+ }
+
+ /**
+ * 淇濆瓨鏈�鏂拌褰�
+ * @param po
+ */
+ @Transactional(rollbackFor = Exception.class)
+ public void saveRmSoilLast(RmSoilLast po) {
+ this.rmSoilLastDao.insert(po);
+ }
+ /**
+ * 鏇存柊鏈�鏂拌褰�
+ * @param po
+ */
+ @Transactional(rollbackFor = Exception.class)
+ public void updateRmSoilLast(RmSoilLast po){
+ this.rmSoilLastDao.updateByPrimaryKey(po) ;
+ }
+
+ /**
+ * 鏌ヨ涓婃姤鏃ユ暟鎹�
+ * @param stSoilId
+ * @return
+ */
+ @Transactional(rollbackFor = Exception.class)
+ public RmSoilDay getRmSoilDay(Long stSoilId, Integer nowYmd) {
+ List<RmSoilDay> list = this.rmSoilDayDao.selectRmSoilDay(stSoilId, nowYmd) ;
+ if(list != null && list.size() > 0){
+ return list.get(0) ;
+ }
+ return null ;
+ }
+ /**
+ * 淇濆瓨鏃ヨ褰�
+ * @param po
+ */
+ @Transactional(rollbackFor = Exception.class)
+ public void saveRmSoilDay(RmSoilDay po) {
+ this.rmSoilDayDao.insert(po);
+ }
+ /**
+ * 鏇存柊鏃ヨ褰�
+ * @param po
+ */
+ @Transactional(rollbackFor = Exception.class)
+ public void updateRmSoilDay(RmSoilDay po){
+ this.rmSoilDayDao.updateByPrimaryKey(po) ;
+ }
+
+
+
+ //////////////////////////////////////////////////////
+ //
+ // 姘旇薄鏁版嵁鐩稿叧
+ //
+ //////////////////////////////////////////////////////
+ /**
+ * 閫氳繃FBox搴忓垪鍙峰緱鍒版皵璞$珯瀹炰綋
+ * @param fboxId FBox搴忓垪鍙�
+ * @param no 缂栧彿
+ * @return 姘磋偉鏈哄疄浣�
+ */
+ public PrStWeather getStWeatherByFBoxIdAndNo(String fboxId, Integer no){
+ List<PrStWeather> list = this.prStWeatherDao.selectStPoByFBoxIdAndNo(fboxId, no) ;
+ if(list != null && list.size() > 0){
+ return list.get(0) ;
+ }
+ return null ;
+ }
+
+ /**
+ * 鏌ヨ涓婃姤鏈�鏂版暟鎹�
+ * @param stWeatherId
+ * @return
+ */
+ public RmWeatherLast getRmWeatherLast(Long stWeatherId) {
+ List<RmWeatherLast> list = this.rmWeatherLastDao.selectRmWeatherLast(stWeatherId) ;
+ if(list != null && list.size() > 0){
+ return list.get(0) ;
+ }
+ return null ;
+ }
+ /**
+ * 淇濆瓨鏈�鏂拌褰�
+ * @param po
+ */
+ @Transactional(rollbackFor = Exception.class)
+ public void saveRmWeatherHistory(RmWeatherHistory po) {
+ this.rmWeatherHistoryDao.insert(po);
+ }
+
+ /**
+ * 淇濆瓨鏈�鏂拌褰�
+ * @param po
+ */
+ @Transactional(rollbackFor = Exception.class)
+ public void saveRmWeatherLast(RmWeatherLast po) {
+ this.rmWeatherLastDao.insert(po);
+ }
+ /**
+ * 鏇存柊鏈�鏂拌褰�
+ * @param po
+ */
+ @Transactional(rollbackFor = Exception.class)
+ public void updateRmWeatherLast(RmWeatherLast po){
+ this.rmWeatherLastDao.updateByPrimaryKey(po) ;
+ }
+
//////////////////////////////////////////////////////
//
// 鍛戒护鏃ュ織鐩稿叧
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkFindComResponse.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkFindComResponse.java
index 0f2fac7..e1c9f70 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkFindComResponse.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkFindComResponse.java
@@ -26,7 +26,7 @@
public void execute(Object data) {
Data d = (Data)data ;
if(d.getCommandId() != null && !d.getCommandId().trim().equals("")){
- //鏃犲懡浠D
+ //鏈夊懡浠D
this.toNextTasks(data);
}
}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkRtuDealCommandResponse.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkRtuDealCommandResponse.java
index c5036e5..852009e 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkRtuDealCommandResponse.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkRtuDealCommandResponse.java
@@ -47,7 +47,7 @@
log.error("鏈緱鍒板懡浠ゆ棩蹇楋紙" + d.getCommandId() + ")");
}
}catch (Exception e){
- log.error("淇濆瓨鎺у埗鍣ㄨ嚜鎶ユ暟鎹椂鍙戠敓寮傚父", e);
+ log.error("淇濆瓨鎺у埗鍣ㄥ懡浠ょ粨鏋滄椂鍙戠敓寮傚父", e);
}
}
}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V2/TkRtuDealCommandResponseV2.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V2/TkRtuDealCommandResponseV2.java
index 3c8a033..7a5abf1 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V2/TkRtuDealCommandResponseV2.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V2/TkRtuDealCommandResponseV2.java
@@ -50,7 +50,7 @@
log.error("鏈緱鍒板懡浠ゆ棩蹇楋紙" + d.getCommandId() + ")");
}
}catch (Exception e){
- log.error("淇濆瓨鎺у埗鍣ㄨ嚜鎶ユ暟鎹椂鍙戠敓寮傚父", e);
+ log.error("淇濆瓨鎺у埗鍣ㄥ懡浠ょ粨鏋滄椂鍙戠敓寮傚父", e);
}
}
}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkRtuDealCommandResponseV202404.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkRtuDealCommandResponseV202404.java
index f517210..63e259b 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkRtuDealCommandResponseV202404.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkRtuDealCommandResponseV202404.java
@@ -45,7 +45,7 @@
log.error("鏈緱鍒板懡浠ゆ棩蹇楋紙" + d.getCommandId() + ")");
}
}catch (Exception e){
- log.error("淇濆瓨鎺у埗鍣ㄨ嚜鎶ユ暟鎹椂鍙戠敓寮傚父", e);
+ log.error("淇濆瓨鎺у埗鍣ㄥ懡浠ょ粨鏋滄椂鍙戠敓寮傚父", e);
}
}
}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkDealCommandResponseSdV1.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkDealCommandResponseSdV1.java
new file mode 100644
index 0000000..471143c
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkDealCommandResponseSdV1.java
@@ -0,0 +1,58 @@
+package com.dy.rtuMw.server.rtuData.pSdV1;
+
+import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.ManureVo;
+import com.dy.pipIrrGlobal.pojoPr.PrStManure;
+import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
+import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import java.util.Date;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/25 15:52
+ * @Description
+ */
+public class TkDealCommandResponseSdV1 extends TaskSurpport {
+
+ private static final Logger log = LogManager.getLogger(TkDealCommandResponseSdV1.class.getName()) ;
+
+ //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+ public static final String taskId = "TkDealCommandResponseSdV1" ;
+
+ /**
+ * 鎵ц鑺傜偣浠诲姟锛氬鐞嗗懡浠ゅ搷搴斾笂鎶�
+ * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+ */
+ @Override
+ public void execute(Object data) {
+ //鍓嶉潰鐨勪换鍔″凡缁忓垽鏂簡data涓嶄负绌轰笖涓烘按鑲ユ暟鎹�
+ MqttSubMsg msg = (MqttSubMsg) data;
+ ManureVo stVo = (ManureVo) msg.vo4Up;
+ Object[] objs = this.getTaskResults(TkPreGenObjs4ManureSdV1.taskId);
+ DbSv sv = (DbSv) objs[0];
+ PrStManure stPo = (PrStManure) objs[1];
+ try{
+ RmCommandHistory po = sv.getCommandLog(msg.commandId) ;
+ if(po != null){
+ po = this.updateCommandLogPo(po, msg) ;
+ sv.updateCommandLog(po);
+ }else{
+ log.error("鏈緱鍒癕QTT鍛戒护鏃ュ織锛�" + msg.getCommandId() + ")");
+ }
+ }catch (Exception e){
+ log.error("淇濆瓨MQTT鍛戒护缁撴灉鍙戠敓寮傚父", e);
+ }
+ }
+
+ public RmCommandHistory updateCommandLogPo(RmCommandHistory po, MqttSubMsg msg) throws Exception{
+ po.setResultTime(new Date());
+ po.setResult((byte)1);
+ po.setResultText(msg.metaData);
+ return po ;
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkDealManureSdV1.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkDealManureSdV1.java
new file mode 100644
index 0000000..2c23cd4
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkDealManureSdV1.java
@@ -0,0 +1,127 @@
+package com.dy.rtuMw.server.rtuData.pSdV1;
+
+import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.ManureVo;
+import com.dy.pipIrrGlobal.pojoPr.PrStManure;
+import com.dy.pipIrrGlobal.pojoRm.RmManureHistory;
+import com.dy.pipIrrGlobal.pojoRm.RmManureLast;
+import com.dy.rtuMw.server.forMs.SendMsCache;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
+import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/25 11:37
+ * @Description
+ */
+public class TkDealManureSdV1 extends TaskSurpport {
+
+ private static Logger log = LogManager.getLogger(TkDealManureSdV1.class.getName());
+
+ //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+ public static final String taskId = "TkDealManureSdV1";
+
+ /**
+ * 鎵ц鑺傜偣浠诲姟
+ *
+ * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+ */
+ @Override
+ public void execute(Object data) {
+ //鍓嶉潰鐨勪换鍔″凡缁忓垽鏂簡data涓嶄负绌轰笖涓烘按鑲ユ暟鎹�
+ MqttSubMsg msg = (MqttSubMsg) data;
+ ManureVo stVo = (ManureVo) msg.vo4Up;
+ Object[] objs = this.getTaskResults(TkPreGenObjs4ManureSdV1.taskId);
+ DbSv sv = (DbSv) objs[0];
+ PrStManure stPo = (PrStManure) objs[1];
+ try{
+ this.doDeal(sv, stPo, msg, stVo);
+ }catch (Exception e){
+ log.error("淇濆瓨姘磋偉鏁版嵁鏃跺彂鐢熷紓甯�", e);
+ }
+ }
+
+ /**
+ * 澶勭悊涓婅娑堟伅鏁版嵁
+ * @param sv 鏈嶅姟
+ * @param stPo 瀹炰綋瀵硅薄
+ * @param msg 涓婅鐨勮闃呮秷鎭�
+ * @param stVo 涓婅鐨勮澶囨暟鎹�
+ */
+ private void doDeal(DbSv sv,
+ PrStManure stPo,
+ MqttSubMsg msg,
+ ManureVo stVo) throws Exception {
+ RmManureHistory hpo = this.saveHistory(sv, stPo, msg, stVo);
+ this.saveOrUpdateLast(sv, stPo, msg, stVo, hpo);
+ }
+ /**
+ * 澶勭悊涓婅娑堟伅鏁版嵁
+ * @param sv 鏈嶅姟
+ * @param stPo 瀹炰綋瀵硅薄
+ * @param msg 涓婅鐨勮闃呮秷鎭�
+ * @param stVo 涓婅鐨勮澶囨暟鎹�
+ * @param hpo 鍘嗗彶璁板綍鏈�鏂版暟鎹�
+ */
+ private void saveOrUpdateLast(DbSv sv,
+ PrStManure stPo,
+ MqttSubMsg msg,
+ ManureVo stVo,
+ RmManureHistory hpo) throws Exception {
+ RmManureLast po = sv.getRmManureLast(stPo.id) ;
+ if(po == null){
+ po = new RmManureLast();
+ po.valueFrom(msg, stVo);
+ po.manureId = stPo.id ;
+ po.lastHistoryId = hpo==null?null:hpo.id ;
+ sv.saveRmManureLast(po) ;
+ if(stVo.alarm != null && stVo.alarm == 1){
+ this.sendMessage(stPo, msg, stVo);
+ }
+ }else{
+ po.valueFrom(msg, stVo);
+ po.manureId = stPo.id ;
+ po.lastHistoryId = hpo==null?null:hpo.id ;
+ sv.updateRmManureLast(po);
+ if(stVo.alarm != null && stVo.alarm == 1){
+ this.sendMessage(stPo, msg, stVo);
+ }
+ }
+ }
+
+ /**
+ * 澶勭悊涓婅娑堟伅鏁版嵁
+ * @param sv 鏈嶅姟
+ * @param stPo 瀹炰綋瀵硅薄
+ * @param msg 涓婅鐨勮闃呮秷鎭�
+ * @param stVo 涓婅鐨勮澶囨暟鎹�
+ */
+ private RmManureHistory saveHistory(DbSv sv,
+ PrStManure stPo,
+ MqttSubMsg msg,
+ ManureVo stVo) throws Exception {
+ RmManureHistory po = new RmManureHistory();
+ po.valueFrom(msg, stVo);
+ po.manureId = stPo.id ;
+ sv.saveRmManureHistory(po);
+ return po ;
+ }
+
+ /**
+ * 鍚戦拤閽夊彂閫佹秷鎭�
+ * @param stPo
+ * @param msg
+ * @param stVo
+ */
+ private void sendMessage(PrStManure stPo, MqttSubMsg msg, ManureVo stVo){
+ String ms = "姘磋偉鏈衡��" + stPo.name + "鈥濇敞鑲ユ车鎶ヨ";
+ try{
+ SendMsCache.cacheMs(ms);
+ }catch (Exception e){
+ log.error("缂撳瓨閽夐拤娑堟伅寮傚父锛�", e);
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkDealSoilSdV1.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkDealSoilSdV1.java
new file mode 100644
index 0000000..d36c18e
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkDealSoilSdV1.java
@@ -0,0 +1,133 @@
+package com.dy.rtuMw.server.rtuData.pSdV1;
+
+import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.SoilVo;
+import com.dy.common.util.DateTime;
+import com.dy.pipIrrGlobal.pojoPr.PrStSoil;
+import com.dy.pipIrrGlobal.pojoRm.RmSoilDay;
+import com.dy.pipIrrGlobal.pojoRm.RmSoilHistory;
+import com.dy.pipIrrGlobal.pojoRm.RmSoilLast;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
+import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/25 11:38
+ * @Description
+ */
+public class TkDealSoilSdV1 extends TaskSurpport {
+
+ private static Logger log = LogManager.getLogger(TkDealSoilSdV1.class.getName());
+
+ //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+ public static final String taskId = "TkDealSoilSdV1";
+
+ /**
+ * 鎵ц鑺傜偣浠诲姟
+ *
+ * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+ */
+ @Override
+ public void execute(Object data) {
+ //鍓嶉潰鐨勪换鍔″凡缁忓垽鏂簡data涓嶄负绌轰笖涓哄鎯呮暟鎹�
+ MqttSubMsg msg = (MqttSubMsg) data;
+ SoilVo stVo = (SoilVo) msg.vo4Up;
+ Object[] objs = this.getTaskResults(TkPreGenObjs4SoilSdV1.taskId);
+ DbSv sv = (DbSv) objs[0];
+ PrStSoil stPo = (PrStSoil) objs[1];
+ try{
+ this.doDeal(sv, stPo, msg, stVo);
+ }catch (Exception e){
+ log.error("淇濆瓨澧掓儏鏁版嵁鏃跺彂鐢熷紓甯�", e);
+ }
+ }
+
+ /**
+ * 澶勭悊涓婅娑堟伅鏁版嵁
+ * @param sv 鏈嶅姟
+ * @param stPo 瀹炰綋瀵硅薄
+ * @param msg 涓婅鐨勮闃呮秷鎭�
+ * @param stVo 涓婅鐨勮澶囨暟鎹�
+ */
+ private void doDeal(DbSv sv,
+ PrStSoil stPo,
+ MqttSubMsg msg,
+ SoilVo stVo) throws Exception {
+ RmSoilHistory hpo = this.saveHistory(sv, stPo, msg, stVo);
+ this.saveOrUpdateLast(sv, stPo, msg, stVo, hpo);
+ this.saveOrUpdateDay(sv, stPo, msg, stVo, hpo);
+ }
+
+ /**
+ * 澶勭悊涓婅娑堟伅鏁版嵁
+ * @param sv 鏈嶅姟
+ * @param stPo 瀹炰綋瀵硅薄
+ * @param msg 涓婅鐨勮闃呮秷鎭�
+ * @param stVo 涓婅鐨勮澶囨暟鎹�
+ * @param hpo 鍘嗗彶璁板綍鏈�鏂版暟鎹�
+ */
+ private void saveOrUpdateLast(DbSv sv,
+ PrStSoil stPo,
+ MqttSubMsg msg,
+ SoilVo stVo,
+ RmSoilHistory hpo) throws Exception {
+ RmSoilLast po = sv.getRmSoilLast(stPo.id) ;
+ if(po == null){
+ po = new RmSoilLast();
+ po.valueFrom(msg, stVo);
+ po.soilId = stPo.id ;
+ po.lastHistoryId = hpo==null?null:hpo.id ;
+ sv.saveRmSoilLast(po) ;
+ }else{
+ po.valueFrom(msg, stVo);
+ po.soilId = stPo.id ;
+ po.lastHistoryId = hpo==null?null:hpo.id ;
+ sv.updateRmSoilLast(po);
+ }
+ }
+
+ /**
+ * 澶勭悊涓婅娑堟伅鏁版嵁
+ * @param sv 鏈嶅姟
+ * @param stPo 瀹炰綋瀵硅薄
+ * @param msg 涓婅鐨勮闃呮秷鎭�
+ * @param stVo 涓婅鐨勮澶囨暟鎹�
+ */
+ private RmSoilHistory saveHistory(DbSv sv,
+ PrStSoil stPo,
+ MqttSubMsg msg,
+ SoilVo stVo) throws Exception {
+ RmSoilHistory po = new RmSoilHistory();
+ po.valueFrom(msg, stVo);
+ po.soilId = stPo.id ;
+ sv.saveRmSoilHistory(po);
+ return po ;
+ }
+ /**
+ * 澶勭悊涓婅娑堟伅鏁版嵁
+ * @param sv 鏈嶅姟
+ * @param stPo 瀹炰綋瀵硅薄
+ * @param msg 涓婅鐨勮闃呮秷鎭�
+ * @param stVo 涓婅鐨勮澶囨暟鎹�
+ * @param hpo 鍘嗗彶璁板綍鏈�鏂版暟鎹�
+ */
+ private void saveOrUpdateDay(DbSv sv,
+ PrStSoil stPo,
+ MqttSubMsg msg,
+ SoilVo stVo,
+ RmSoilHistory hpo) throws Exception {
+ RmSoilDay po = sv.getRmSoilDay(stPo.id, Integer.parseInt(DateTime.yyyyMMdd())) ;
+ if(po == null){
+ po = new RmSoilDay();
+ po.valueFrom(msg, stVo);
+ po.soilId = stPo.id ;
+ sv.saveRmSoilDay(po) ;
+ }else{
+ po.updateFrom(msg, stVo);
+ po.soilId = stPo.id ;
+ sv.updateRmSoilDay(po);
+ }
+ }
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkDealWeatherSdV1.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkDealWeatherSdV1.java
new file mode 100644
index 0000000..ce5f281
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkDealWeatherSdV1.java
@@ -0,0 +1,105 @@
+package com.dy.rtuMw.server.rtuData.pSdV1;
+
+import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.WeatherVo;
+import com.dy.pipIrrGlobal.pojoPr.PrStWeather;
+import com.dy.pipIrrGlobal.pojoRm.RmWeatherHistory;
+import com.dy.pipIrrGlobal.pojoRm.RmWeatherLast;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
+import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/25 11:37
+ * @Description
+ */
+public class TkDealWeatherSdV1 extends TaskSurpport {
+
+ private static Logger log = LogManager.getLogger(TkDealWeatherSdV1.class.getName());
+
+ //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+ public static final String taskId = "TkDealWeatherSdV1";
+
+ /**
+ * 鎵ц鑺傜偣浠诲姟
+ *
+ * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+ */
+ @Override
+ public void execute(Object data) {
+ //鍓嶉潰鐨勪换鍔″凡缁忓垽鏂簡data涓嶄负绌轰笖涓烘皵璞℃暟鎹�
+ MqttSubMsg msg = (MqttSubMsg) data;
+ WeatherVo stVo = (WeatherVo) msg.vo4Up;
+ Object[] objs = this.getTaskResults(TkPreGenObjs4WeatherSdV1.taskId);
+ DbSv sv = (DbSv) objs[0];
+ PrStWeather stPo = (PrStWeather) objs[1];
+ try{
+ this.doDeal(sv, stPo, msg, stVo);
+ }catch (Exception e){
+ log.error("淇濆瓨姘旇薄鏁版嵁鏃跺彂鐢熷紓甯�", e);
+ }
+ }
+
+ /**
+ * 澶勭悊涓婅娑堟伅鏁版嵁
+ * @param sv 鏈嶅姟
+ * @param stPo 瀹炰綋瀵硅薄
+ * @param msg 涓婅鐨勮闃呮秷鎭�
+ * @param stVo 涓婅鐨勮澶囨暟鎹�
+ */
+ private void doDeal(DbSv sv,
+ PrStWeather stPo,
+ MqttSubMsg msg,
+ WeatherVo stVo) throws Exception {
+ RmWeatherHistory hpo = this.saveHistory(sv, stPo, msg, stVo);
+ this.saveOrUpdateLast(sv, stPo, msg, stVo, hpo);
+ }
+ /**
+ * 澶勭悊涓婅娑堟伅鏁版嵁
+ * @param sv 鏈嶅姟
+ * @param stPo 瀹炰綋瀵硅薄
+ * @param msg 涓婅鐨勮闃呮秷鎭�
+ * @param stVo 涓婅鐨勮澶囨暟鎹�
+ * @param hpo 鍘嗗彶璁板綍鏈�鏂版暟鎹�
+ */
+ private void saveOrUpdateLast(DbSv sv,
+ PrStWeather stPo,
+ MqttSubMsg msg,
+ WeatherVo stVo,
+ RmWeatherHistory hpo) throws Exception {
+ RmWeatherLast po = sv.getRmWeatherLast(stPo.id) ;
+ if(po == null){
+ po = new RmWeatherLast();
+ po.valueFrom(msg, stVo);
+ po.weatherId = stPo.id ;
+ po.lastHistoryId = hpo==null?null:hpo.id ;
+ sv.saveRmWeatherLast(po) ;
+ }else{
+ po.valueFrom(msg, stVo);
+ po.weatherId = stPo.id ;
+ po.lastHistoryId = hpo==null?null:hpo.id ;
+ sv.updateRmWeatherLast(po);
+ }
+ }
+
+ /**
+ * 澶勭悊涓婅娑堟伅鏁版嵁
+ * @param sv 鏈嶅姟
+ * @param stPo 瀹炰綋瀵硅薄
+ * @param msg 涓婅鐨勮闃呮秷鎭�
+ * @param stVo 涓婅鐨勮澶囨暟鎹�
+ */
+ private RmWeatherHistory saveHistory(DbSv sv,
+ PrStWeather stPo,
+ MqttSubMsg msg,
+ WeatherVo stVo) throws Exception {
+ RmWeatherHistory po = new RmWeatherHistory();
+ po.valueFrom(msg, stVo);
+ po.weatherId = stPo.id ;
+ sv.saveRmWeatherHistory(po);
+ return po ;
+ }
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkFindComResponseSdV1.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkFindComResponseSdV1.java
new file mode 100644
index 0000000..a5ed233
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkFindComResponseSdV1.java
@@ -0,0 +1,37 @@
+package com.dy.rtuMw.server.rtuData.pSdV1;
+
+import com.dy.common.mw.protocol.Data;
+import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.ManureVo;
+import com.dy.pipIrrGlobal.pojoPr.PrStManure;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
+import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/25 15:52
+ * @Description
+ */
+public class TkFindComResponseSdV1 extends TaskSurpport {
+
+ private static final Logger log = LogManager.getLogger(TkFindComResponseSdV1.class.getName()) ;
+
+ //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+ public static final String taskId = "TkFindComResponseSdV1" ;
+
+ /**
+ * 鎵ц鑺傜偣浠诲姟
+ * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+ */
+ @Override
+ public void execute(Object data) {
+ //鍓嶉潰鐨勪换鍔″凡缁忓垽鏂簡data涓嶄负绌轰笖涓烘按鑲ユ暟鎹�
+ MqttSubMsg msg = (MqttSubMsg) data;
+ if(msg.getCommandId() != null && !msg.getCommandId().trim().equals("")){
+ //鏈夊懡浠D
+ this.toNextTasks(data);
+ }
+ }
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkFindPSdV1.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkFindPSdV1.java
index ce5def5..3ae2995 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkFindPSdV1.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkFindPSdV1.java
@@ -1,6 +1,7 @@
package com.dy.rtuMw.server.rtuData.pSdV1;
import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.ProtocolConstantSdV1;
import com.dy.rtuMw.server.rtuData.TaskSurpport;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -25,7 +26,10 @@
public void execute(Object data) {
//鍓嶉潰鐨勪换鍔″凡缁忓垽鏂簡data涓嶄负绌�
MqttSubMsg msg = (MqttSubMsg)data ;
- log.info(msg.toString());
+ if(msg.protocol.equals(ProtocolConstantSdV1.protocolName + ProtocolConstantSdV1.protocolVer)){
+ //灞变笢sd1鍗忚
+ this.toNextTasks(data);
+ }
}
}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkPreGenObjs4ManureSdV1.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkPreGenObjs4ManureSdV1.java
new file mode 100644
index 0000000..0890f30
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkPreGenObjs4ManureSdV1.java
@@ -0,0 +1,59 @@
+package com.dy.rtuMw.server.rtuData.pSdV1;
+
+import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.ManureVo;
+import com.dy.common.springUtil.SpringContextUtil;
+import com.dy.pipIrrGlobal.pojoPr.PrStManure;
+import com.dy.rtuMw.server.ServerProperties;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
+import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/25 8:56
+ * @Description
+ */
+public class TkPreGenObjs4ManureSdV1 extends TaskSurpport {
+
+ private static Logger log = LogManager.getLogger(TkPreGenObjs4ManureSdV1.class.getName()) ;
+
+ //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+ public static final String taskId = "TkPreGenObjs4ManureSdV1" ;
+
+ //澶勭悊涓婃潯鏁版嵁鐨勬椂鍒�
+ private static final Map<String, Long> dealDataAtDateTime = new HashMap<>();
+
+ /**
+ * 鎵ц鑺傜偣浠诲姟
+ * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+ */
+ @Override
+ public void execute(Object data) {
+ //鍓嶉潰鐨勪换鍔″凡缁忓垽鏂簡data涓嶄负绌�
+ MqttSubMsg msg = (MqttSubMsg)data ;
+ if(msg.vo4Up != null && msg.vo4Up instanceof ManureVo){
+ //姘磋偉鏁版嵁
+ ManureVo stVo = (ManureVo)msg.vo4Up ;
+ Long lastAt = dealDataAtDateTime.get(msg.deviceId + stVo.no);
+ Long now = System.currentTimeMillis() ;
+ if(lastAt == null || ((now - lastAt) >= ServerProperties.mqttAcceptDataMinInterval)){
+ dealDataAtDateTime.put(msg.deviceId + stVo.no, now);
+ DbSv sv = SpringContextUtil.getBean(DbSv.class) ;
+ if(sv != null){
+ PrStManure stPo = sv.getStManureByFBoxIdAndNo(msg.deviceId, stVo.no) ;
+ if(stPo != null){
+ this.taskResult = new Object[]{sv, stPo} ;
+ this.toNextTasks(data);
+ }
+ }else{
+ log.error("涓ラ噸閿欒锛屾湭鑳藉緱鍒癉bSv瀵硅薄");
+ }
+ }
+ }
+ }
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkPreGenObjs4SoilSdV1.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkPreGenObjs4SoilSdV1.java
new file mode 100644
index 0000000..b978c59
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkPreGenObjs4SoilSdV1.java
@@ -0,0 +1,59 @@
+package com.dy.rtuMw.server.rtuData.pSdV1;
+
+import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.SoilVo;
+import com.dy.common.springUtil.SpringContextUtil;
+import com.dy.pipIrrGlobal.pojoPr.PrStSoil;
+import com.dy.rtuMw.server.ServerProperties;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
+import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/25 11:25
+ * @Description
+ */
+public class TkPreGenObjs4SoilSdV1 extends TaskSurpport {
+
+ private static Logger log = LogManager.getLogger(TkPreGenObjs4SoilSdV1.class.getName()) ;
+
+ //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+ public static final String taskId = "TkPreGenObjs4SoilSdV1" ;
+
+ //澶勭悊涓婃潯鏁版嵁鐨勬椂鍒�
+ private static final Map<String, Long> dealDataAtDateTime = new HashMap<>();
+
+ /**
+ * 鎵ц鑺傜偣浠诲姟
+ * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+ */
+ @Override
+ public void execute(Object data) {
+ //鍓嶉潰鐨勪换鍔″凡缁忓垽鏂簡data涓嶄负绌�
+ MqttSubMsg msg = (MqttSubMsg)data ;
+ if(msg.vo4Up != null && msg.vo4Up instanceof SoilVo){
+ //澧掓儏鏁版嵁
+ SoilVo stVo = (SoilVo)msg.vo4Up ;
+ Long lastAt = dealDataAtDateTime.get(msg.deviceId + stVo.no);
+ Long now = System.currentTimeMillis() ;
+ if(lastAt == null || ((now - lastAt) >= ServerProperties.mqttAcceptDataMinInterval)) {
+ dealDataAtDateTime.put(msg.deviceId + stVo.no, now);
+ DbSv sv = SpringContextUtil.getBean(DbSv.class);
+ if (sv != null) {
+ PrStSoil stPo = sv.getStSoilByFBoxIdAndNo(msg.deviceId, stVo.no);
+ if (stPo != null) {
+ this.taskResult = new Object[]{sv, stPo};
+ this.toNextTasks(data);
+ }
+ } else {
+ log.error("涓ラ噸閿欒锛屾湭鑳藉緱鍒癉bSv瀵硅薄");
+ }
+ }
+ }
+ }
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkPreGenObjs4WeatherSdV1.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkPreGenObjs4WeatherSdV1.java
new file mode 100644
index 0000000..e799ea1
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkPreGenObjs4WeatherSdV1.java
@@ -0,0 +1,59 @@
+package com.dy.rtuMw.server.rtuData.pSdV1;
+
+import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.WeatherVo;
+import com.dy.common.springUtil.SpringContextUtil;
+import com.dy.pipIrrGlobal.pojoPr.PrStWeather;
+import com.dy.rtuMw.server.ServerProperties;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
+import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/25 11:25
+ * @Description
+ */
+public class TkPreGenObjs4WeatherSdV1 extends TaskSurpport {
+
+ private static Logger log = LogManager.getLogger(TkPreGenObjs4WeatherSdV1.class.getName()) ;
+
+ //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+ public static final String taskId = "TkPreGenObjs4WeatherSdV1" ;
+
+ //澶勭悊涓婃潯鏁版嵁鐨勬椂鍒�
+ private static final Map<String, Long> dealDataAtDateTime = new HashMap<>();
+
+ /**
+ * 鎵ц鑺傜偣浠诲姟
+ * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+ */
+ @Override
+ public void execute(Object data) {
+ //鍓嶉潰鐨勪换鍔″凡缁忓垽鏂簡data涓嶄负绌�
+ MqttSubMsg msg = (MqttSubMsg)data ;
+ if(msg.vo4Up != null && msg.vo4Up instanceof WeatherVo){
+ //姘旇薄鏁版嵁
+ WeatherVo stVo = (WeatherVo)msg.vo4Up ;
+ Long lastAt = dealDataAtDateTime.get(msg.deviceId + stVo.no);
+ Long now = System.currentTimeMillis() ;
+ if(lastAt == null || ((now - lastAt) >= ServerProperties.mqttAcceptDataMinInterval)) {
+ dealDataAtDateTime.put(msg.deviceId + stVo.no, now);
+ DbSv sv = SpringContextUtil.getBean(DbSv.class);
+ if (sv != null) {
+ PrStWeather stPo = sv.getStWeatherByFBoxIdAndNo(msg.deviceId, stVo.no);
+ if (stPo != null) {
+ this.taskResult = new Object[]{sv, stPo};
+ this.toNextTasks(data);
+ }
+ } else {
+ log.error("涓ラ噸閿欒锛屾湭鑳藉緱鍒癉bSv瀵硅薄");
+ }
+ }
+ }
+ }
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml
index 26623b5..b9bd804 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml
@@ -94,7 +94,25 @@
</task>
<!-- Mqtt娑堟伅涓棿浠惰闃呯殑娑堟伅 -->
<task id="TkMqttData" name="鎺ユ敹Mqtt娑堟伅" enable="true" class="com.dy.rtuMw.server.rtuData.TkMqttData">
- <task id="TkFindPSdV1" name="璇嗗埆灞变笢V1鏁版嵁" enable="true" class="com.dy.rtuMw.server.rtuData.pSdV1.TkFindPSdV1"></task>
+ <task id="TkFindPSdV1" name="璇嗗埆灞变笢V1鏁版嵁" enable="true" class="com.dy.rtuMw.server.rtuData.pSdV1.TkFindPSdV1">
+ <task id="TkPreGenObjs4ManureSdV1" name="涓哄鐞嗘按鑲ユ満鏁版嵁棰勫厛鍑嗗鍚勫璞�" enable="true" class="com.dy.rtuMw.server.rtuData.pSdV1.TkPreGenObjs4ManureSdV1">
+ <task id="TkDealManureSdV1" name="澶勭悊姘磋偉鏁版嵁" enable="true" class="com.dy.rtuMw.server.rtuData.pSdV1.TkDealManureSdV1">
+ </task>
+ <!-- 鍙湁姘磋偉鏈烘湁杩滅▼鍛戒护 -->
+ <task id="TkFindComResponseSdV1" name="璇嗗埆鍝嶅簲鍛戒护鏁版嵁" enable="true" class="com.dy.rtuMw.server.rtuData.pSdV1.TkFindComResponseSdV1">
+ <task id="TkDealCommandResponseSdV1" name="姘磋偉鏈哄搷搴斿懡浠ゆ暟鎹�" enable="true" class="com.dy.rtuMw.server.rtuData.pSdV1.TkDealCommandResponseSdV1" >
+ </task>
+ </task>
+ </task>
+ <task id="TkPreGenObjs4WeatherSdV1" name="涓哄鐞嗘皵璞℃暟鎹鍏堝噯澶囧悇瀵硅薄" enable="true" class="com.dy.rtuMw.server.rtuData.pSdV1.TkPreGenObjs4WeatherSdV1">
+ <task id="TkDealWeatherSdV1" name="澶勭悊姘旇薄鏁版嵁" enable="true" class="com.dy.rtuMw.server.rtuData.pSdV1.TkDealWeatherSdV1">
+ </task>
+ </task>
+ <task id="TkPreGenObjs4SoilSdV1" name="涓哄鐞嗗鎯呮暟鎹鍏堝噯澶囧悇瀵硅薄" enable="true" class="com.dy.rtuMw.server.rtuData.pSdV1.TkPreGenObjs4SoilSdV1">
+ <task id="TkDealSoilSdV1" name="澶勭悊澧掓儏鏁版嵁" enable="true" class="com.dy.rtuMw.server.rtuData.pSdV1.TkDealSoilSdV1">
+ </task>
+ </task>
+ </task>
</task>
</task>
</project>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml
index a9a11ed..74792d9 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml
@@ -174,6 +174,7 @@
sendInterval 鍛戒护鍙戦�侀棿闅旓紙鍗曚綅绉掞級锛屽彇鍊艰寖鍥存槸1~3600
reSendTimesByNoResult 鏈敹鍒板懡浠ょ粨鏋滄椂锛屾渶澶ч噸澶嶅彂閫佹鏁帮紝鍙栧�艰寖鍥存槸0~100, 0鏃惰〃绀轰笉閲嶅鍙戦��
comCacheTimeout: 鍛戒护鏈�澶х紦瀛樻椂闀�(绉�)锛屽彇鍊艰寖鍥存槸1~3600
+ acceptDataMinInterval:鍥犱负涓婅鏁版嵁瀵嗗害杈冨ぇ锛堝10绉掍笂琛屼竴鏉℃暟鎹級锛屾暟鎹鐞嗕笌瀛樺偍鍘嬪姏澶э紝鎵�浠ユ渶灏忛棿闅斾竴瀹氭椂闂达紙鍒嗛挓锛夌湡姝f帴鏀跺鐞嗕竴鏉′笂琛屾暟鎹�
useMemoryPersistence 浣跨敤鍐呭瓨鎸佷箙鍖栬�岄潪榛樿鐨勬枃浠舵寔涔呭寲(true鏄� false鍚�)
protocolAndDeviceIds 鍦ㄥ瓙绯荤粺锛坥rgTag锛変腑鎺ュ叆鐨勮澶�(FBox)鎵�鐢ㄥ崗璁強璁惧id闆嗗悎,澶氫釜鐢ㄩ�楀彿闅斿紑锛屽崗璁笌ID鐢ㄦ鏂滄潬闅斿紑锛屼緥濡傦細sd1/338220031439,sd1/338220031440
subTopicAndQos: 璁㈤槄涓婚涓嶲os锛屼富棰樺悕涓庡叾Qos鐢ㄩ�楀彿闅斿紑锛屽涓富棰樺強Qos鐢ㄥ垎鍙烽殧寮�锛屼緥濡傦細ym/topic1,1;ym/topic2,1;ym/topic3,1锛屽鏋滄湁澶氫釜OrgTag锛屼富棰樺墠缂�鐢ㄥ叾OrgTag
@@ -192,6 +193,7 @@
sendInterval="60"
reSendTimesByNoResult="0"
comCacheTimeout="30"
+ acceptDataMinInterval="60"
useMemoryPersistence="true"
protocolAndDeviceIds="${mqtt.protocolAndDeviceIds}"
subTopicAndQos="${mqtt.subTopicAndQos}"
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
new file mode 100644
index 0000000..1b6f71b
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/manure/ManureCtrl.java
@@ -0,0 +1,66 @@
+package com.dy.pipIrrRemote.mqttSd1.manure;
+
+import com.dy.common.aop.SsoAop;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.common.webUtil.QueryResultVo;
+import com.dy.pipIrrGlobal.voRm.VoManure;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/25 16:17
+ * @Description
+ */
+@Slf4j
+@Tag(name = "姘磋偉鏁版嵁鏌ヨ", description = "姘磋偉鏁版嵁鏌ヨ")
+@RestController("rmManureCtrl")
+@RequestMapping(path = "manure")
+@RequiredArgsConstructor
+public class ManureCtrl {
+
+ private ManureSv sv;
+
+ @Autowired
+ public void setSv(ManureSv sv){
+ this.sv = sv ;
+ }
+
+ /**
+ * 鏍规嵁鎸囧畾鏉′欢鏌ヨ鍘嗗彶璁板綍
+ * @param qo
+ * @return
+ */
+ @GetMapping(path = "history")
+ @SsoAop()
+ public BaseResponse<QueryResultVo<List<VoManure>>> selectHistory(ManureQo qo){
+ try {
+ return BaseResponseUtils.buildSuccess(sv.selectHistory(qo));
+ } catch (Exception e) {
+ return BaseResponseUtils.buildException(e.getMessage()) ;
+ }
+ }
+
+ /**
+ * 鏍规嵁鎸囧畾鏉′欢鏌ヨ鏈�鏂拌褰�
+ * @param qo
+ * @return
+ */
+ @GetMapping(path = "last")
+ @SsoAop()
+ public BaseResponse<QueryResultVo<List<VoManure>>> selectLast(ManureQo qo){
+ try {
+ return BaseResponseUtils.buildSuccess(sv.selectLast(qo));
+ } 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/manure/ManureQo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/manure/ManureQo.java
new file mode 100644
index 0000000..05076fb
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/manure/ManureQo.java
@@ -0,0 +1,57 @@
+package com.dy.pipIrrRemote.mqttSd1.manure;
+
+import com.dy.common.webUtil.QueryConditionVo;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/25 16:18
+ * @Description
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ToString(callSuper = true)
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class ManureQo extends QueryConditionVo {
+ /**
+ * 姘磋偉鏈篒D
+ */
+ @Schema(description = "姘磋偉鏈篒D", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ private Long manureId;
+
+ /**
+ * 姘磋偉绔欑紪鍙�
+ */
+ @Schema(description = "姘磋偉绔欑紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Integer no ;
+
+ /**
+ * 姘磋偉绔欏悕绉�
+ */
+ @Schema(description = "姘磋偉绔欏悕绉�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public String name;
+ /**
+ * 鏌ヨ寮�濮嬫棩鏈�
+ */
+ @Schema(description = "鏌ヨ寮�濮嬫棩鏈�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public String timeStart;
+
+ /**
+ * 鏌ヨ缁撴潫鏃ユ湡
+ */
+ @Schema(description = "鏌ヨ缁撴潫鏃ユ湡", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public String timeStop;
+
+
+ public void completionTime(){
+ if(timeStart != null && !timeStart.trim().equals("")) {
+ timeStart = timeStart + " 00:00:00";
+ }
+ if(timeStop != null && !timeStop.trim().equals("")) {
+ timeStop = timeStop + " 23:59:59";
+ }
+ }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/manure/ManureSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/manure/ManureSv.java
new file mode 100644
index 0000000..609c9fd
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/manure/ManureSv.java
@@ -0,0 +1,70 @@
+package com.dy.pipIrrRemote.mqttSd1.manure;
+
+import com.dy.common.webUtil.QueryResultVo;
+import com.dy.pipIrrGlobal.daoRm.RmManureHistoryMapper;
+import com.dy.pipIrrGlobal.daoRm.RmManureLastMapper;
+import com.dy.pipIrrGlobal.voRm.VoManure;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.common.utils.PojoUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/25 16:18
+ * @Description
+ */
+@Slf4j
+@Service("rmManureSv")
+@RequiredArgsConstructor
+public class ManureSv {
+
+ @Autowired
+ private RmManureHistoryMapper rmManureHistoryDao ;
+ @Autowired
+ private RmManureLastMapper rmManureLastDao ;
+
+ /**
+ * 鏍规嵁鎸囧畾鏉′欢鏌ヨ鍘嗗彶璁板綍
+ * @param qo
+ * @return
+ */
+ public QueryResultVo<List<VoManure>> selectHistory(ManureQo qo) {
+ qo.completionTime();
+
+ Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo);
+ Long itemTotal = rmManureHistoryDao.selectCount(params);
+
+ QueryResultVo<List<VoManure>> rsVo = new QueryResultVo<>() ;
+ rsVo.pageSize = qo.pageSize ;
+ rsVo.pageCurr = qo.pageCurr ;
+
+ rsVo.calculateAndSet(itemTotal, params);
+ rsVo.obj = rmManureHistoryDao.selectSome(params);
+ return rsVo ;
+ }
+
+ /**
+ * 鏍规嵁鎸囧畾鏉′欢鏌ヨ鏈�鏂拌褰�
+ * @param qo
+ * @return
+ */
+ public QueryResultVo<List<VoManure>> selectLast(ManureQo qo) {
+ qo.completionTime();
+
+ Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo);
+ Long itemTotal = rmManureLastDao.selectCount(params);
+
+ QueryResultVo<List<VoManure>> rsVo = new QueryResultVo<>() ;
+ rsVo.pageSize = qo.pageSize ;
+ rsVo.pageCurr = qo.pageCurr ;
+
+ rsVo.calculateAndSet(itemTotal, params);
+ rsVo.obj = rmManureLastDao.selectSome(params);
+ return rsVo ;
+ }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardCtrl.java
index ea8f0f8..8a4e1b4 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardCtrl.java
@@ -54,7 +54,10 @@
return BaseResponseUtils
.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
}
-
+ // 妫�鏌ュ崱鐗囧湴鍧�鏄惁宸插瓨鍦�
+ if (cardSv.isCardAddrExists(po.getCardAddr())) {
+ return BaseResponseUtils.buildErrorMsg("璇ュ崱鐗囧湴鍧�宸插瓨鍦紝璇蜂娇鐢ㄥ叾浠栧崱");
+ }
Map map_result = cardSv.activeOrReissueTermCard(po);
if (map_result.get("success").equals(false)) {
return BaseResponseUtils.buildErrorMsg(map_result.get("msg").toString());
@@ -379,7 +382,7 @@
// 妫�鏌ュ崱鐗囧湴鍧�鏄惁宸插瓨鍦�
if (cardSv.isCardAddrExists(dto.getCardAddr())) {
- return BaseResponseUtils.buildErrorMsg("璇ュ崱鐗囧湴鍧�宸插瓨鍦紝璇蜂娇鐢ㄥ叾浠栧湴鍧�");
+ return BaseResponseUtils.buildErrorMsg("璇ュ崱鐗囧湴鍧�宸插瓨鍦紝璇蜂娇鐢ㄥ叾浠栧崱");
}
Map<String, Object> result = cardSv.createManagementCard(dto);
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/dto/DtoRecharge.java b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/dto/DtoRecharge.java
index 1ff7254..02d6922 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/dto/DtoRecharge.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/dto/DtoRecharge.java
@@ -52,6 +52,7 @@
/**
* 浠樻鏂瑰紡缂栧彿
*/
+ @NotNull(message = "浠樻鏂瑰紡涓嶈兘涓虹┖")
private Long paymentId;
/**
--
Gitblit v1.8.0