From e9d04864135236c8b39b06f62d001631524197e6 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期五, 20 六月 2025 17:02:58 +0800
Subject: [PATCH] 1、协议细化,处理小数; 2、水肥机、气象站、墒情站实体增加属性fboxId(FBox序列号);
---
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStManureMapper.xml | 25
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdSv.java | 15
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdCtrl.java | 122 ++++
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/Com4MqttSv.java | 50 +
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrStWeather.java | 6
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdSv.java | 15
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/ManureVo.java | 48 +
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdDto.java | 16
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdCtrl.java | 122 ++++
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Command.java | 2
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrStSoil.java | 6
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdDto.java | 16
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdDto.java | 16
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java | 6
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdParam.java | 19
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdParam.java | 12
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStWeatherMapper.xml | 25
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/Cd4MqttParameter.java | 16
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdCtrl.java | 122 ++++
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdParam.java | 19
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrStManure.java | 6
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdCtrl.java | 122 ++++
pipIrr-platform/文档/水肥气象墒情/FlexManager软件配置参数.docx | 0
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdCtrl.java | 122 ++++
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttTopic.java | 2
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/WeatherVo.java | 8
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStSoilMapper.xml | 25
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/ParamSetVo.java | 6
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/Com4MqttCtrl.java | 193 +++++++
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdDto.java | 6
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/SoilVo.java | 20
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/Command4MqttSv.java | 137 +++++
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdSv.java | 6
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdSv.java | 15
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdParam.java | 19
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/dto/Dto4MqttBase.java | 33 +
/dev/null | 9
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdSv.java | 15
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdParam.java | 19
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/CodeSdV1.java | 15
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdDto.java | 16
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/ProtocolParserSdV1.java | 37 +
42 files changed, 1,438 insertions(+), 71 deletions(-)
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Command.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Command.java
index 59b6ec0..2399abe 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Command.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Command.java
@@ -41,7 +41,7 @@
public Short protocolVersion;
/**
- * RTU 鍦板潃
+ * RTU鍦板潃 鍜� FBox璁惧鍙�
*/
public String rtuAddr ;
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 da40d12..5bc518e 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
@@ -16,7 +16,7 @@
public String orgTag ;//缁勭粐鏍囪瘑
public String protocol ;//鍗忚鍚嶇О
public String devId ;//璁惧锛團Box锛塈D
- public String type;//娴嬬珯绫诲瀷
+ public String type;//鏁版嵁锛堝懡浠わ級绫诲瀷
public Integer no;//娴嬬珯缂栧彿
public boolean isEmpty(){
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/CodeSdV1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/CodeSdV1.java
index a78f8b0..a029596 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/CodeSdV1.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/CodeSdV1.java
@@ -10,5 +10,18 @@
public static final String cd_Stir = "01" ;//鎼呮媽鍚仠鍛戒护
public static final String cd_Inject = "02" ;//娉ㄨ偉鍚仠鍛戒护
public static final String cd_Irr = "03" ;//鐏屾簤鍚仠鍛戒护
- public static final String cd_Param = "10" ;//璁惧畾鍙傛暟
+ public static final String cd_Param = "10" ;//璁剧疆鍙傛暟
+
+ public static String getCodeName(String code) {
+ String name = (code.equals(cd_Fault) ? "鏁呴殰瑙i櫎" :
+ (code.equals(cd_Stir) ? "鎼呮媽鍚仠" :
+ (code.equals(cd_Inject) ? "娉ㄨ偉鍚仠" :
+ (code.equals(cd_Irr) ? "鐏屾簤鍚仠" :
+ (code.equals(cd_Param) ? "璁剧疆鍙傛暟" :
+ ""))))) ;
+ if(name == null || name.equals("")){
+ name = code ;
+ }
+ return name ;
+ }
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/ProtocolParserSdV1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/ProtocolParserSdV1.java
index 5c7bb13..0040621 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/ProtocolParserSdV1.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/ProtocolParserSdV1.java
@@ -32,22 +32,43 @@
DevRunInfo stInfo = null ;
switch (subTopic.type) {
case ProtocolConstantSdV1.SubTopicWeather -> {
- vo = JSON.parseObject(strTxt, WeatherVo.class);
+ WeatherVo wvo = JSON.parseObject(strTxt, WeatherVo.class);
+ //璋冩暣灏忔暟
+ wvo.airTemperature = (wvo.airTemperature == null ? null: (wvo.airTemperature / 10.0F)) ;
+ wvo.airHumidity = (wvo.airHumidity == null ? null: (wvo.airHumidity / 10.0F)) ;
+ wvo.rainfall = (wvo.rainfall == null ? null: (wvo.rainfall / 10.0F)) ;
+ wvo.windSpeed = (wvo.windSpeed == null ? null: (wvo.windSpeed / 10.0F)) ;
+ vo = wvo ;
break;
}
case ProtocolConstantSdV1.SubTopicSoil -> {
- vo = JSON.parseObject(strTxt, SoilVo.class);
+ SoilVo svo = JSON.parseObject(strTxt, SoilVo.class);
+ //璋冩暣灏忔暟
+ svo.soilHumidity1 = (svo.soilHumidity1 == null ? null: (svo.soilHumidity1 / 10.0F)) ;
+ svo.soilHumidity2 = (svo.soilHumidity2 == null ? null: (svo.soilHumidity2 / 10.0F)) ;
+ svo.soilHumidity3 = (svo.soilHumidity3 == null ? null: (svo.soilHumidity3 / 10.0F)) ;
+ svo.soilHumidity4 = (svo.soilHumidity4 == null ? null: (svo.soilHumidity4 / 10.0F)) ;
+ svo.soilHumidity5 = (svo.soilHumidity5 == null ? null: (svo.soilHumidity5 / 10.0F)) ;
+ svo.soilTemperature1 = (svo.soilTemperature1 == null ? null: (svo.soilTemperature1 / 10.0F)) ;
+ svo.soilTemperature2 = (svo.soilTemperature2 == null ? null: (svo.soilTemperature2 / 10.0F)) ;
+ svo.soilTemperature3 = (svo.soilTemperature3 == null ? null: (svo.soilTemperature3 / 10.0F)) ;
+ svo.soilTemperature4 = (svo.soilTemperature4 == null ? null: (svo.soilTemperature4 / 10.0F)) ;
+ svo.soilTemperature5 = (svo.soilTemperature5 == null ? null: (svo.soilTemperature5 / 10.0F)) ;
+ vo = svo ;
break;
}
case ProtocolConstantSdV1.SubTopicManure -> {
- vo = JSON.parseObject(strTxt, ManureVo.class);
- ManureVo stVo = (ManureVo)vo ;
+ ManureVo mvo = JSON.parseObject(strTxt, ManureVo.class);
+ //璋冩暣灏忔暟
+ mvo.manureFlow = (mvo.manureFlow == null ? null: (mvo.manureFlow / 10.0F)) ;
+ vo = mvo ;
+
stInfo = new DevRunInfo() ;
stInfo.devId = msg.deviceId ;
- stInfo.stirRunning = (stVo.stirRunning==null?false:(stVo.stirRunning.byteValue()==1?true:false)) ; //鎼呮媽杩愯 true鏄� false鍚�
- stInfo.injectRunning = (stVo.injectRunning==null?false:(stVo.injectRunning.byteValue()==1?true:false)) ; //娉ㄨ偉杩愯 true鏄� false鍚�
- stInfo.irrRunning = (stVo.irrRunning==null?false:(stVo.irrRunning.byteValue()==1?true:false)) ; //鐏屾簤杩愯 true鏄� false鍚�
- stInfo.alarm = (stVo.alarm==null?false:(stVo.alarm.byteValue()==1?true:false)) ; //鎶ヨ true鏄� false鍚�
+ stInfo.stirRunning = (mvo.stirRunning1 ==null?false:(mvo.stirRunning1.byteValue()==1?true:false)) ; //鎼呮媽杩愯 true鏄� false鍚�
+ stInfo.injectRunning = (mvo.injectRunning==null?false:(mvo.injectRunning.byteValue()==1?true:false)) ; //娉ㄨ偉杩愯 true鏄� false鍚�
+ stInfo.irrRunning = (mvo.irrRunning==null?false:(mvo.irrRunning.byteValue()==1?true:false)) ; //鐏屾簤杩愯 true鏄� false鍚�
+ stInfo.alarm = (mvo.alarm==null?false:(mvo.alarm.byteValue()==1?true:false)) ; //鎶ヨ true鏄� false鍚�
break;
}
default -> {
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/ParamSetVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/ParamSetVo.java
index 48ecd14..4b421d9 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/ParamSetVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/ParamSetVo.java
@@ -15,9 +15,15 @@
@NoArgsConstructor
@AllArgsConstructor
public class ParamSetVo implements Vo4Down {
+ /**
+ * 鍗曚綅绉�
+ */
@JSONField(name = "鎼呮媽璁惧畾鏃堕棿")
public Integer stirDuration ;
+ /**
+ * 鍗曚綅绉�
+ */
@JSONField(name = "娉ㄨ偉璁惧畾鏃堕棿")
public Integer injectDuration ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/ManureVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/ManureVo.java
index 10e0875..f6b5647 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/ManureVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/ManureVo.java
@@ -17,24 +17,60 @@
public Integer no ;//娴嬬珯缂栧彿锛屽叾涓嶅湪JSON鏁版嵁涓紝鍏跺湪涓婚涓�
- @JSONField(name = "鎼呮媽杩愯")
- public Byte stirRunning ;//鎼呮媽杩愯
+ /**
+ * 鎼呮媽鏈�1鏄惁杩愯锛涳紙姘磋偉鏈鸿繕鍙瓨鍦ㄦ悈鎷屾満2銆佹悈鎷屾満3銆佹悈鎷屾満4 ......锛� 杩愯鏃�1锛屽仠姝�0.
+ */
+ @JSONField(name = "鎼呮媽杩愯1")
+ public Byte stirRunning1;//鎼呮媽1杩愯鐘舵��
+ /**
+ * 鎼呮媽鏈�2鏄惁杩愯锛涳紙姘磋偉鏈鸿繕鍙瓨鍦ㄦ悈鎷屾満2銆佹悈鎷屾満3銆佹悈鎷屾満4 ......锛� 杩愯鏃�1锛屽仠姝�0.
+ * (褰撳墠澶х搴旂敤涓嶅瓨鍦�)
+ */
+ @JSONField(name = "鎼呮媽杩愯2")
+ public Byte stirRunning2;//鎼呮媽2杩愯鐘舵��
+ /**
+ * 鎼呮媽鏈�3鏄惁杩愯锛涳紙姘磋偉鏈鸿繕鍙瓨鍦ㄦ悈鎷屾満2銆佹悈鎷屾満3銆佹悈鎷屾満4 ......锛� 杩愯鏃�1锛屽仠姝�0.
+ * (褰撳墠澶х搴旂敤涓嶅瓨鍦�)
+ */
+ @JSONField(name = "鎼呮媽杩愯3")
+ public Byte stirRunning3;//鎼呮媽3杩愯鐘舵��
+ /**
+ * 鎼呮媽鏈�4鏄惁杩愯锛涳紙姘磋偉鏈鸿繕鍙瓨鍦ㄦ悈鎷屾満2銆佹悈鎷屾満3銆佹悈鎷屾満4 ......锛� 杩愯鏃�1锛屽仠姝�0.
+ * (褰撳墠澶х搴旂敤涓嶅瓨鍦�)
+ */
+ @JSONField(name = "鎼呮媽杩愯4")
+ public Byte stirRunning4;//鎼呮媽4杩愯鐘舵��
+ /**
+ * 涓�涓按鑲ユ満鍙湁涓�涓敞鑲ユ车
+ */
@JSONField(name = "娉ㄨ偉杩愯")
- public Byte injectRunning ;//娉ㄨ偉杩愯
+ public Byte injectRunning ;//娉ㄨ偉杩愯鐘舵��
@JSONField(name = "鐏屾簤杩愯")
- public Byte irrRunning ;//鐏屾簤杩愯
+ public Byte irrRunning ;//鐏屾簤杩愯鐘舵��
+ /**
+ * 1:娉ㄨ偉娉垫湁鏁呴殰銆�0:娉ㄨ偉娉垫病鏈夋晠闅�
+ */
@JSONField(name = "鎶ヨ")
- public Byte alarm ;//鎶ヨ
+ public Byte alarm ;//娉ㄨ偉娉垫晠闅�
+ /**
+ * 鑲ユ枡娴侀噺锛屽崟浣嶅崌
+ */
@JSONField(name = "鑲ユ枡娴侀噺")
public Float manureFlow ;
+ /**
+ * 鍗曚綅绉�
+ */
@JSONField(name = "娉ㄨ偉缁忚繃鏃堕棿")
public Integer manureTime ;
+ /**
+ * 鍗曚綅绉�
+ */
@JSONField(name = "鎼呮媽缁忚繃鏃堕棿")
public Integer stirTime ;
@@ -61,7 +97,7 @@
StringBuilder sb = new StringBuilder();
sb.append("姘磋偉鏁版嵁=>") ;
sb.append(" 娑堟伅ID锛�" + messageId + ", ") ;
- sb.append(" 鎼呮媽杩愯锛�" + stirRunning + ", ") ;
+ sb.append(" 鎼呮媽杩愯锛�" + stirRunning1 + ", ") ;
sb.append(" 娉ㄨ偉杩愯锛�" + injectRunning + ", ") ;
sb.append(" 鐏屾簤杩愯锛�" + irrRunning + ", ") ;
sb.append(" 鎶ヨ锛�" + alarm + ", ") ;
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 9f3a71e..1f51b63 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
@@ -18,34 +18,34 @@
public Integer no ;//娴嬬珯缂栧彿锛屽叾涓嶅湪JSON鏁版嵁涓紝鍏跺湪涓婚涓�
@JSONField(name = "鍦熷¥婀垮害1")
- public Integer soilHumidity1 ;
+ public Float soilHumidity1 ;
@JSONField(name = "鍦熷¥婀垮害2")
- public Integer soilHumidity2 ;
+ public Float soilHumidity2 ;
@JSONField(name = "鍦熷¥婀垮害3")
- public Integer soilHumidity3 ;
+ public Float soilHumidity3 ;
@JSONField(name = "鍦熷¥婀垮害4")
- public Integer soilHumidity4 ;
+ public Float soilHumidity4 ;
@JSONField(name = "鍦熷¥婀垮害5")
- public Integer soilHumidity5 ;
+ public Float soilHumidity5 ;
@JSONField(name = "鍦熷¥婀垮害1")
- public Integer soilTemperature1 ;
+ public Float soilTemperature1 ;
@JSONField(name = "鍦熷¥娓╁害2")
- public Integer soilTemperature2 ;
+ public Float soilTemperature2 ;
@JSONField(name = "鍦熷¥娓╁害3")
- public Integer soilTemperature3 ;
+ public Float soilTemperature3 ;
@JSONField(name = "鍦熷¥娓╁害4")
- public Integer soilTemperature4 ;
+ public Float soilTemperature4 ;
@JSONField(name = "鍦熷¥娓╁害5")
- public Integer soilTemperature5 ;
+ public Float soilTemperature5 ;
@JSONField(name = "flexem_timestamp")
public Long devDt ;//璁惧鏃堕棿
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/WeatherVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/WeatherVo.java
index 58926a5..2891399 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/WeatherVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/WeatherVo.java
@@ -25,10 +25,10 @@
//public Integer atmosphericPressure ;
@JSONField(name = "绌烘皵娓╁害")
- public Integer airTemperature ;
+ public Float airTemperature ;
@JSONField(name = "绌烘皵婀垮害")
- public Integer airHumidity ;
+ public Float airHumidity ;
@JSONField(name = "绱绾�")
public Integer ultraviolet ;
@@ -37,10 +37,10 @@
public Integer lightIntensity ;
@JSONField(name = "闆ㄩ噺")
- public Integer rainfall ;
+ public Float rainfall ;
@JSONField(name = "椋庨��")
- public Integer windSpeed ;
+ public Float windSpeed ;
@JSONField(name = "椋庡悜")
public Integer windDirection ;
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/Command4MqttSv.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/Command4MqttSv.java
new file mode 100644
index 0000000..a292a01
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/Command4MqttSv.java
@@ -0,0 +1,137 @@
+package com.dy.pipIrrGlobal.command;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.mw.protocol.Command;
+import com.dy.common.mw.protocol.CommandBackParam;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.CodeSdV1;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.ProtocolConstantSdV1;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.pipIrrGlobal.daoPr.PrStManureMapper;
+import com.dy.pipIrrGlobal.daoRm.RmCommandHistoryMapper;
+import com.dy.pipIrrGlobal.pojoPr.PrStManure;
+import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory;
+import com.dy.pipIrrGlobal.rtuMw.Web2RtuMw;
+
+import java.util.Date;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/6 11:41
+ * @Description
+ */
+public class Command4MqttSv extends Web2RtuMw {
+
+
+ /**
+ * 浠庢暟鎹簱涓煡璇㈡按鑲ユ満瀵硅薄
+ * @param prStManureDao
+ * @param manureId
+ * @return
+ */
+ public PrStManure getManure(PrStManureMapper prStManureDao, Long manureId){
+ return prStManureDao.selectByPrimaryKey(manureId);
+ }
+
+ /**
+ * 妫�鏌ュ崗璁槸鍚︽敮鎸�
+ * @param ctrlPo
+ * @return
+ */
+ public String checkProtocol(PrStManure ctrlPo){
+ return null ;
+ }
+
+ /**
+ * 鏍规嵁鍗忚鑾峰彇鍛戒护鍚嶇О
+ * @param nowComCode
+ * @param protocol
+ * @return
+ */
+ public String getCommandName(String nowComCode, String protocol, Short protocolVer){
+ if(protocol.equals(ProtocolConstantSdV1.protocolName)
+ && protocolVer.equals(ProtocolConstantSdV1.protocolVer)) {
+ return CodeSdV1.getCodeName(nowComCode) ;
+ }
+ return null ;
+ }
+
+ /**
+ * 淇濆瓨鍛戒护鍘嗗彶璁板綍
+ * @param rmCommandHistoryDao
+ * @param comId
+ * @param protocol
+ * @param commandCode
+ * @param commandName
+ * @param manureId
+ * @param rtuAddr
+ * @param param
+ * @param operator
+ * @return
+ */
+ public RmCommandHistory saveComHistoryPo(RmCommandHistoryMapper rmCommandHistoryDao,
+ Long comId,
+ String protocol,
+ String commandCode,
+ String commandName,
+ Long manureId,
+ String rtuAddr,
+ Object param,
+ Long operator) {
+ RmCommandHistory po = new RmCommandHistory();
+ po.setComId(comId);
+ po.setCommandCode(commandCode);
+ po.setCommandName(commandName);
+ po.setIntakeId(manureId);
+ po.setRtuAddr(rtuAddr);
+ po.setProtocol(protocol);
+ po.setParam((JSONObject) JSON.toJSON(param));
+ po.setSendTime(new Date());
+ po.setOperator(operator);
+ int count = rmCommandHistoryDao.insertSelective(po) ;
+ if(count == 0){
+ po = null ;
+ }
+ return po;
+ }
+
+ /**
+ * 澶勭悊閫氫俊涓棿浠惰繑鍥炵殑鍛戒护澶勭悊缁撴灉
+ * @param res
+ * @return
+ */
+ public String dealMwDealResponse(BaseResponse res){
+ if(res != null){
+ Command reCom = JSON.parseObject(res.getContent() == null ? null : JSON.toJSONString(res.getContent()), Command.class) ;
+ CommandBackParam bakParam = JSON.parseObject((reCom== null || reCom.param == null) ? null : JSON.toJSONString(reCom.param), CommandBackParam.class) ;
+ if(res.isSuccess()){
+ if(bakParam != null){
+ if(bakParam.getSuccess().booleanValue()){
+ //閫氫俊涓棿浠舵垚鍔熷鐞嗕簡鍛戒护
+ //绛夊緟鎺у埗鍣ㄦ帴鏀跺苟鎵ц鍛戒护鍚庣殑搴旂瓟锛岀劧鍚庨�氫俊涓棿浠堕�氱煡鏈ā鍧�
+ return null ;
+ }else{
+ return "閫氫俊涓棿浠跺鐞嗗懡浠ゅけ璐ワ紝澶辫触淇℃伅锛�" + bakParam.getMessage();
+ }
+ }else{
+ return "閫氫俊涓棿浠惰繑鍥炲懡浠ょ粨鏋滀腑涓嶅寘鍚獵ommandBackParam绫诲瀷鍙傛暟";
+ }
+ }else{
+ if(bakParam != null){
+ if(bakParam.getSuccess().booleanValue()){
+ //閫氫俊涓棿浠舵垚鍔熷鐞嗕簡鍛戒护
+ //绛夊緟鎺у埗鍣ㄦ帴鏀跺苟鎵ц鍛戒护鍚庣殑搴旂瓟锛岀劧鍚庨�氫俊涓棿浠堕�氱煡鏈ā鍧�
+ return "閫氫俊涓棿浠跺鐞嗗懡浠ゅけ璐ワ紝澶辫触淇℃伅锛�" + (res.getMsg() == null? "" : ("锛�" + res.getMsg())) ;
+ }else{
+ return "閫氫俊涓棿浠跺鐞嗗懡浠ゅけ璐ワ紝澶辫触淇℃伅锛�" + bakParam.getMessage();
+ }
+ }else{
+ return "閫氫俊涓棿浠跺鐞嗗懡浠ゅけ璐ワ紝澶辫触淇℃伅锛�" + (res.getMsg() == null? "" : ("锛�" + res.getMsg())) ;
+ }
+ }
+ }else{
+ return "閫氫俊涓棿浠惰繑鍥炲懡浠ょ粨鏋滀负null";
+ }
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrStManure.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrStManure.java
index ce4d50f..d8ea7a5 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrStManure.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrStManure.java
@@ -37,6 +37,12 @@
public Long id;
/**
+ * FBox搴忓垪鍙�
+ */
+ @Schema(description = "FBox搴忓垪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public String fboxId ;
+
+ /**
* 姘磋偉绔欑紪鍙�
*/
@Schema(description = "姘磋偉绔欑紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrStSoil.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrStSoil.java
index 56ad0c7..c0a4814 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrStSoil.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrStSoil.java
@@ -37,6 +37,12 @@
public Long id;
/**
+ * FBox搴忓垪鍙�
+ */
+ @Schema(description = "FBox搴忓垪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public String fboxId ;
+
+ /**
* 澧掓儏绔欑紪鍙�
*/
@Schema(description = "澧掓儏绔欑紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrStWeather.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrStWeather.java
index 77db182..46b38cb 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrStWeather.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrStWeather.java
@@ -37,6 +37,12 @@
public Long id;
/**
+ * FBox搴忓垪鍙�
+ */
+ @Schema(description = "FBox搴忓垪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public String fboxId ;
+
+ /**
* 姘旇薄绔欑紪鍙�
*/
@Schema(description = "姘旇薄绔欑紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
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 c16fe8a..a70239a 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStManureMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStManureMapper.xml
@@ -6,6 +6,7 @@
<!--@Table pr_st_manure-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="no" jdbcType="INTEGER" property="no" />
+ <result column="fbox_id" jdbcType="VARCHAR" property="fboxId" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="lng" jdbcType="DOUBLE" property="lng" />
<result column="lat" jdbcType="DOUBLE" property="lat" />
@@ -14,11 +15,11 @@
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
- id, `no`, `name`, lng, lat, remark, deleted
+ id, fbox_id,`no`, `name`, lng, lat, remark, deleted
</sql>
<sql id="part_Column_List">
<!--@mbg.generated-->
- id, `no`, `name`, lng, lat, remark
+ id, fbox_id, `no`, `name`, lng, lat, remark
</sql>
<sql id="simple_Column_List">
<!--@mbg.generated-->
@@ -50,11 +51,11 @@
</delete>
<insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoPr.PrStManure">
<!--@mbg.generated-->
- insert into pr_st_manure (id, `no`, `name`, lng,
+ insert into pr_st_manure (id, fbox_id, `no`, `name`, lng,
lat, remark, deleted)
- values (#{id,jdbcType=BIGINT}, #{no,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR},
- #{lng,jdbcType=DOUBLE}, #{lat,jdbcType=DOUBLE}, #{remark,jdbcType=VARCHAR},
- #{deleted,jdbcType=TINYINT})
+ values (#{id,jdbcType=BIGINT}, #{fboxId,jdbcType=BIGINT}, #{no,jdbcType=INTEGER},
+ #{name,jdbcType=VARCHAR}, #{lng,jdbcType=DOUBLE}, #{lat,jdbcType=DOUBLE},
+ #{remark,jdbcType=VARCHAR},#{deleted,jdbcType=TINYINT})
</insert>
<insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoPr.PrStManure">
<!--@mbg.generated-->
@@ -62,6 +63,9 @@
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
+ </if>
+ <if test="fboxId != null">
+ fbox_id,
</if>
<if test="no != null">
`no`,
@@ -85,6 +89,9 @@
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=BIGINT},
+ </if>
+ <if test="fboxId != null">
+ #{fboxId,jdbcType=BIGINT},
</if>
<if test="no != null">
#{no,jdbcType=INTEGER},
@@ -110,6 +117,9 @@
<!--@mbg.generated-->
update pr_st_manure
<set>
+ <if test="fboxId != null">
+ fbox_id = #{fboxId,jdbcType=BIGINT},
+ </if>
<if test="no != null">
`no` = #{no,jdbcType=INTEGER},
</if>
@@ -134,7 +144,8 @@
<update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoPr.PrStManure">
<!--@mbg.generated-->
update pr_st_manure
- set `no` = #{no,jdbcType=INTEGER},
+ set fbox_id = #{fboxId,jdbcType=INTEGER},
+ `no` = #{no,jdbcType=INTEGER},
`name` = #{name,jdbcType=VARCHAR},
lng = #{lng,jdbcType=DOUBLE},
lat = #{lat,jdbcType=DOUBLE},
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 682efa1..598436b 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStSoilMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStSoilMapper.xml
@@ -6,6 +6,7 @@
<!--@Table pr_st_soil-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="no" jdbcType="INTEGER" property="no" />
+ <result column="fbox_id" jdbcType="VARCHAR" property="fboxId" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="lng" jdbcType="DOUBLE" property="lng" />
<result column="lat" jdbcType="DOUBLE" property="lat" />
@@ -14,11 +15,11 @@
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
- id, `no`, `name`, lng, lat, remark, deleted
+ id, fbox_id,`no`, `name`, lng, lat, remark, deleted
</sql>
<sql id="part_Column_List">
<!--@mbg.generated-->
- id, `no`, `name`, lng, lat, remark
+ id, fbox_id, `no`, `name`, lng, lat, remark
</sql>
<sql id="simple_Column_List">
<!--@mbg.generated-->
@@ -50,11 +51,11 @@
</delete>
<insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoPr.PrStSoil">
<!--@mbg.generated-->
- insert into pr_st_soil (id, `no`, `name`, lng,
+ insert into pr_st_soil (id, fbox_id, `no`, `name`, lng,
lat, remark, deleted)
- values (#{id,jdbcType=BIGINT}, #{no,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR},
- #{lng,jdbcType=DOUBLE}, #{lat,jdbcType=DOUBLE}, #{remark,jdbcType=VARCHAR},
- #{deleted,jdbcType=TINYINT})
+ values (#{id,jdbcType=BIGINT}, #{fboxId,jdbcType=BIGINT}, #{no,jdbcType=INTEGER},
+ #{name,jdbcType=VARCHAR}, #{lng,jdbcType=DOUBLE}, #{lat,jdbcType=DOUBLE},
+ #{remark,jdbcType=VARCHAR},#{deleted,jdbcType=TINYINT})
</insert>
<insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoPr.PrStSoil">
<!--@mbg.generated-->
@@ -62,6 +63,9 @@
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
+ </if>
+ <if test="fboxId != null">
+ fbox_id,
</if>
<if test="no != null">
`no`,
@@ -85,6 +89,9 @@
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=BIGINT},
+ </if>
+ <if test="fboxId != null">
+ #{fboxId,jdbcType=BIGINT},
</if>
<if test="no != null">
#{no,jdbcType=INTEGER},
@@ -110,6 +117,9 @@
<!--@mbg.generated-->
update pr_st_soil
<set>
+ <if test="fboxId != null">
+ fbox_id = #{fboxId,jdbcType=BIGINT},
+ </if>
<if test="no != null">
`no` = #{no,jdbcType=INTEGER},
</if>
@@ -134,7 +144,8 @@
<update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoPr.PrStSoil">
<!--@mbg.generated-->
update pr_st_soil
- set `no` = #{no,jdbcType=INTEGER},
+ set fbox_id = #{fboxId,jdbcType=INTEGER},
+ `no` = #{no,jdbcType=INTEGER},
`name` = #{name,jdbcType=VARCHAR},
lng = #{lng,jdbcType=DOUBLE},
lat = #{lat,jdbcType=DOUBLE},
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 e971ed2..ade2d3c 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStWeatherMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStWeatherMapper.xml
@@ -6,6 +6,7 @@
<!--@Table pr_st_weather-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="no" jdbcType="INTEGER" property="no" />
+ <result column="fbox_id" jdbcType="VARCHAR" property="fboxId" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="lng" jdbcType="DOUBLE" property="lng" />
<result column="lat" jdbcType="DOUBLE" property="lat" />
@@ -14,11 +15,11 @@
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
- id, `no`, `name`, lng, lat, remark, deleted
+ id, fbox_id,`no`, `name`, lng, lat, remark, deleted
</sql>
<sql id="part_Column_List">
<!--@mbg.generated-->
- id, `no`, `name`, lng, lat, remark
+ id, fbox_id, `no`, `name`, lng, lat, remark
</sql>
<sql id="simple_Column_List">
<!--@mbg.generated-->
@@ -50,11 +51,11 @@
</delete>
<insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoPr.PrStWeather">
<!--@mbg.generated-->
- insert into pr_st_weather (id, `no`, `name`, lng,
+ insert into pr_st_weather (id, fbox_id, `no`, `name`, lng,
lat, remark, deleted)
- values (#{id,jdbcType=BIGINT}, #{no,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR},
- #{lng,jdbcType=DOUBLE}, #{lat,jdbcType=DOUBLE}, #{remark,jdbcType=VARCHAR},
- #{deleted,jdbcType=TINYINT})
+ values (#{id,jdbcType=BIGINT}, #{fboxId,jdbcType=BIGINT}, #{no,jdbcType=INTEGER},
+ #{name,jdbcType=VARCHAR}, #{lng,jdbcType=DOUBLE}, #{lat,jdbcType=DOUBLE},
+ #{remark,jdbcType=VARCHAR},#{deleted,jdbcType=TINYINT})
</insert>
<insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoPr.PrStWeather">
<!--@mbg.generated-->
@@ -62,6 +63,9 @@
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
+ </if>
+ <if test="fboxId != null">
+ fbox_id,
</if>
<if test="no != null">
`no`,
@@ -85,6 +89,9 @@
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=BIGINT},
+ </if>
+ <if test="fboxId != null">
+ #{fboxId,jdbcType=BIGINT},
</if>
<if test="no != null">
#{no,jdbcType=INTEGER},
@@ -110,6 +117,9 @@
<!--@mbg.generated-->
update pr_st_weather
<set>
+ <if test="fboxId != null">
+ fbox_id = #{fboxId,jdbcType=BIGINT},
+ </if>
<if test="no != null">
`no` = #{no,jdbcType=INTEGER},
</if>
@@ -134,7 +144,8 @@
<update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoPr.PrStWeather">
<!--@mbg.generated-->
update pr_st_weather
- set `no` = #{no,jdbcType=INTEGER},
+ set fbox_id = #{fboxId,jdbcType=INTEGER},
+ `no` = #{no,jdbcType=INTEGER},
`name` = #{name,jdbcType=VARCHAR},
lng = #{lng,jdbcType=DOUBLE},
lat = #{lat,jdbcType=DOUBLE},
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java
index a53defb..5e701f9 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java
@@ -375,15 +375,15 @@
* @return 缁撴灉
*/
private BaseResponse<Command> dealMqttCommand(Command command){
- String rtuAddr = command.getRtuAddr() ;
+ String rtuAddr = command.getRtuAddr() ;//FBox璁惧鍙�
if(rtuAddr == null || rtuAddr.trim().equals("")){
- return BaseResponseUtils.buildError(ReturnCommand.errored("鍑洪敊锛岃澶嘔D涓虹┖锛�", command.getId(), command.getCode())) ;
+ return BaseResponseUtils.buildError(ReturnCommand.errored("鍑洪敊锛孎Box璁惧ID涓虹┖锛�", command.getId(), command.getCode())) ;
}
if(!ServerProperties.mqttUnitEnable.booleanValue()){
return BaseResponseUtils.buildError(ReturnCommand.errored("鍑洪敊锛孧QTT杩炴帴妯″潡閰嶇疆鏈惎鍔紒", command.getId(), command.getCode())) ;
}
if(MqttManager.getInstance().poolIsClose()){
- return BaseResponseUtils.buildError(ReturnCommand.errored("鍑洪敊锛孧QTT杩炴帴姹犳按鍒涘缓鎴愬姛锛�", command.getId(), command.getCode())) ;
+ return BaseResponseUtils.buildError(ReturnCommand.errored("鍑洪敊锛孧QTT杩炴帴姹犳湭鍒涘缓鎴愬姛锛�", command.getId(), command.getCode())) ;
}
//鐢熸垚寮傛浠诲姟
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/dto/Dto4MqttBase.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/dto/Dto4MqttBase.java
new file mode 100644
index 0000000..26586ad
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/dto/Dto4MqttBase.java
@@ -0,0 +1,33 @@
+package com.dy.pipIrrRemote.common.dto;
+
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-05-22 16:54
+ * @LastEditTime 2024-05-22 16:54
+ * @Description 璁剧疆鍛戒护鍩虹被
+ */
+
+@Data
+public class Dto4MqttBase {
+ public static final long serialVersionUID = 202506201459001L;
+
+ /**
+ * 姘磋偉鏈篒D
+ */
+ @NotNull(message = "姘磋偉鏈轰笉鑳戒负绌�")
+ public Long manureId;
+
+ /**
+ * 姘磋偉鏈哄悕绉�
+ */
+ public String manureName;
+
+ /**
+ * 鎿嶄綔浜�
+ */
+ @NotNull(message = "鎿嶄綔浜轰笉鑳戒负绌�")
+ public Long operator;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/Cd4MqttParameter.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/Cd4MqttParameter.java
new file mode 100644
index 0000000..8e47d24
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/Cd4MqttParameter.java
@@ -0,0 +1,16 @@
+package com.dy.pipIrrRemote.monitor.common;
+
+import lombok.Data;
+import lombok.experimental.SuperBuilder;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/9 16:11
+ * @Description
+ */
+@Data
+@SuperBuilder
+public class Cd4MqttParameter {
+ //鍛戒护鍔熻兘鐮�
+ public String commandCode;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/Com4MqttCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/Com4MqttCtrl.java
new file mode 100644
index 0000000..c0e4801
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/Com4MqttCtrl.java
@@ -0,0 +1,193 @@
+package com.dy.pipIrrRemote.monitor.common;
+
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.mw.protocol.Command;
+import com.dy.common.util.Callback;
+import com.dy.common.util.IDLongGenerator;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.pipIrrGlobal.command.ComResultWait;
+import com.dy.pipIrrGlobal.pojoPr.PrStManure;
+import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory;
+import com.dy.pipIrrRemote.common.dto.Dto4MqttBase;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.core.env.Environment;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.Objects;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/9 14:53
+ * @Description
+ */
+public abstract class Com4MqttCtrl {
+
+ @Autowired
+ protected Environment env ;
+
+ @Autowired
+ protected RestTemplate restTemplate ;
+
+ @Value("${mw.waitMwRtnResultTimeout}")
+ protected int waitMwRtnResultTimeout ;
+
+ @Value("${mw.rtuCallbackUrl_rm}")
+ protected String rtuResultSendWebUrl;
+
+ //姘磋偉鏈哄璞�
+ protected PrStManure ctrlPo ;
+ //寮傛绛夊緟鍣�
+ protected CompletableFuture<JSONObject> feature;
+ //鍛戒护鍚嶇О
+ protected String comName ;
+ //鍛戒护鏃ュ織id
+ protected Long comId ;
+
+ /**
+ * 鍙戦�佸懡浠ゅ墠-1锛氶獙璇�
+ * @param comSv
+ * @param comCode
+ * @param dto
+ * @param bindingResult
+ * @return
+ */
+ public BaseResponse<Object> pre1(Com4MqttSv comSv, String comCode, Dto4MqttBase dto, BindingResult bindingResult) {
+ if (bindingResult != null && bindingResult.hasErrors()) {
+ return BaseResponseUtils.buildError(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+ }
+ String msg = this.checkDto(dto) ;
+ if(msg != null){
+ return BaseResponseUtils.buildError("鏈嶅姟绔嚭閿欙紝" + msg) ;
+ }
+ return null ;
+ }
+
+ /**
+ * 鍙戦�佸懡浠ゅ墠-2锛氳幏寰楁暟鎹�
+ * @param comSv
+ * @param protocol
+ * @param protocolVer
+ * @param comCode
+ * @param dto
+ * @param bindingResult
+ * @return
+ */
+ public BaseResponse<Object> pre2(Com4MqttSv comSv, String protocol, Short protocolVer, String comCode, Dto4MqttBase dto, BindingResult bindingResult) {
+ //寰楀埌姘磋偉鏈哄璞�
+ ctrlPo = comSv.getManure(dto.getManureId());
+ if (ctrlPo == null) {
+ return BaseResponseUtils.buildError("鏈嶅姟绔嚭閿欙紝浠庢暟鎹簱涓湭寰楀埌姘磋偉鏈烘暟鎹�") ;
+ }
+ //妫�鏌ュ崗璁�
+ String msg = comSv.checkProtocol(ctrlPo) ;
+ if(msg != null) {
+ return BaseResponseUtils.buildError("鏈嶅姟绔嚭閿欙紝" + msg) ;
+ }
+ //寰楀埌鍔熻兘鐮佸搴旂殑鍛戒护鍚嶇О
+ comName = comSv.getCommandName(comCode, protocol, protocolVer) ;
+ if(comName == null) {
+ return BaseResponseUtils.buildError("鏈嶅姟绔嚭閿欙紝鏈緱鍒板姛鑳界爜瀵瑰簲鍛戒护鍚嶇О") ;
+ }
+ return null ;
+ }
+ /**
+ * 鍙戦�佸懡浠ゅ墠-3锛氫繚瀛樺懡浠ゆ棩蹇�
+ * @param comSv sv瀵硅薄
+ * @param manureId 姘磋偉鏈篒D
+ * @param operator 褰撳墠鐢ㄧ櫥褰曠敤鎴穒d(鎿嶄綔浜�)
+ * @param protocol 鍗忚
+ * @param protocolVerion 鍗忚
+ * @param comCode 鍔熻兘鐮�
+ * @param param 鍛戒护鍙傛暟
+ * @return
+ */
+ public BaseResponse<Object> pre3(Com4MqttSv comSv, Long manureId, Long operator, String protocol, Short protocolVerion, String comCode, Cd4MqttParameter param) {
+ comId = new IDLongGenerator().generate();
+ //鐢熸垚骞朵繚瀛樺懡浠ゆ棩蹇�
+ RmCommandHistory po = comSv.saveComHistoryPo(comId,
+ protocol + protocolVerion ,
+ comCode,
+ comName,
+ manureId,
+ ctrlPo.fboxId ,
+ param,
+ operator);
+ if(po == null){
+ return BaseResponseUtils.buildError("鏈嶅姟绔嚭閿欙紝鏈兘鐢熸垚骞朵繚瀛樺懡浠ゆ棩蹇�") ;
+ }
+ return null ;
+ }
+ /**
+ * 鍙戦�佸懡浠ゅ墠-4锛氬噯澶嘑eature
+ * @return
+ */
+ public void pre4() {
+ feature = new CompletableFuture<>();
+ ComResultWait.put(comId, feature);
+ }
+
+ /**
+ * 鍙戦�佸懡浠�
+ * @param comSv
+ * @param com
+ * @return
+ */
+ public BaseResponse<Object> doSend(Com4MqttSv comSv, Command com){
+ //寰楀埌閫氫俊涓棿浠跺彂閫佸懡浠ょ殑web URL
+ String rqUrl = comSv.get2MwRequestUrl(env, comSv.ContextComSend) ;
+ //鍚戦�氫俊涓棿浠跺彂閫亀eb璇锋眰
+ BaseResponse res = comSv.sendPostRequest2Mw(restTemplate, rqUrl, com) ;
+ //澶勭悊閫氫俊涓棿浠跺web璇锋眰鐨勫搷搴�
+ String msg = comSv.dealMwDealResponse(res) ;
+ if(msg != null) {
+ return BaseResponseUtils.buildError(msg) ;
+ }else{
+ return null ;
+ }
+ }
+
+ /**
+ * 鍙戦�佸懡浠ゅ悗
+ * @return
+ */
+ public BaseResponse<Object> after(String comCode, Callback callback) {
+ try{
+ //绛夊緟閫氫俊涓棿浠堕�氱煡姘磋偉鏈烘墽琛屽懡浠や笂琛屾暟鎹紙鍛戒护缁撴灉锛�
+ JSONObject resultData = feature.get(waitMwRtnResultTimeout, TimeUnit.SECONDS);
+ return BaseResponseUtils.buildSuccess(this.dealComResult(comCode, resultData, callback));
+ }catch (Exception e){
+ return BaseResponseUtils.buildFail("绛夊緟閫氫俊涓棿浠堕�氱煡鍛戒护缁撴灉瓒呮椂");
+ }
+ }
+
+ /**
+ * 鍙戦�佸懡浠ゆ渶鍚�
+ * @return
+ */
+ public void end(){
+ try {
+ //鏈�鍚庢竻闄ompletableFuture缂撳瓨
+ if(ComResultWait.contain(comId)){
+ ComResultWait.remove(comId);
+ }
+ }catch (Exception ee){}
+ }
+
+ /**
+ * 楠岃瘉
+ * @param dto
+ * @return
+ */
+ protected abstract String checkDto(Dto4MqttBase dto) ;
+
+
+ /**
+ * 鐢熸垚鍛戒护杩斿洖淇℃伅
+ */
+ protected abstract String dealComResult(String code, JSONObject resultData, Callback callback);
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/Com4MqttSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/Com4MqttSv.java
new file mode 100644
index 0000000..0b31743
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/Com4MqttSv.java
@@ -0,0 +1,50 @@
+package com.dy.pipIrrRemote.monitor.common;
+
+import com.dy.pipIrrGlobal.command.Command4MqttSv;
+import com.dy.pipIrrGlobal.daoPr.PrStManureMapper;
+import com.dy.pipIrrGlobal.daoRm.RmCommandHistoryMapper;
+import com.dy.pipIrrGlobal.pojoPr.PrStManure;
+import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/9 14:45
+ * @Description
+ */
+public class Com4MqttSv extends Command4MqttSv {
+
+ @Autowired
+ protected PrStManureMapper prStManureDao ;
+ @Autowired
+ protected RmCommandHistoryMapper rmCommandHistoryDao ;
+
+ public PrStManure getManure(Long manureId){
+ return this.getManure(prStManureDao, manureId);
+ }
+ /**
+ * 鍒涘缓鍛戒护鏃ュ織瀵硅薄
+ *
+ * @param comId 涓婚敭
+ * @param commandCode 鍔熻兘鐮�
+ * @param rtuAddr 闃�鎺у櫒鍦板潃
+ * @param protocol 閫氳鍗忚鍚嶇О
+ * @param param 鍙傛暟鏁版嵁
+ * @param operator 鎿嶄綔鍛�
+ * @return
+ */
+ @Transactional(rollbackFor = Exception.class)
+ public RmCommandHistory saveComHistoryPo(Long comId,
+ String protocol,
+ String commandCode,
+ String commandName,
+ Long manureId,
+ String rtuAddr,
+ Object param,
+ Long operator) {
+ return this.saveComHistoryPo(rmCommandHistoryDao, comId, protocol, commandCode, commandName, manureId, rtuAddr, param, operator) ;
+ }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdCtrl.java
new file mode 100644
index 0000000..1e252ec
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdCtrl.java
@@ -0,0 +1,122 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.fault;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.aop.SsoAop;
+import com.dy.common.mw.protocol.Command;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.CodeSdV1;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.ProtocolConstantSdV1;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.ManureVo;
+import com.dy.common.util.Callback;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.pipIrrRemote.common.dto.Dto4MqttBase;
+import com.dy.pipIrrRemote.monitor.common.Com4MqttCtrl;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.http.MediaType;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:35
+ * @Description
+ */
+
+@Slf4j
+@Tag(name = "杩滅▼鍛戒护", description = "娓呴櫎鏁呴殰")
+@RestController("mqttSd1FaultCtrl")
+@RequestMapping(path = "mqttSd1/faultCtrl")
+@RequiredArgsConstructor
+@Scope("prototype") //鍥犱负鏈夊璞$被灞炴�э紝鎵�浠ラ噰鐢ㄥ師鍨嬫ā寮忥紝姣忔璇锋眰鏂板缓涓�涓疄渚嬪璞�
+public class CdCtrl extends Com4MqttCtrl {
+
+ private static final String RtuSuccessMsg = "鎺у埗鍣ㄦ帴鏀跺苟鎵ц鍛戒护鎴愬姛锛屾棤杩斿洖鏁版嵁";
+
+ private static final String Protocol = ProtocolConstantSdV1.protocolName ;
+ private static final Short ProtocolVersion = ProtocolConstantSdV1.protocolVer ;
+ private static final String ComCode = CodeSdV1.cd_Fault ;
+
+
+ @Autowired
+ private CdSv sv ;
+ /**
+ * 鍚戣澶囷紙Mqtt涓棿浠�->FBox锛夊彂閫佸懡浠�
+ * @param dto 鍓嶇鍙戞潵鐨勫�煎璞�
+ * @param bindingResult 瀵筪to楠岃瘉鐨勭粨鏋�
+ * @return 杩斿洖鍓嶇
+ */
+ @PostMapping(path = "send", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @SsoAop()
+ public BaseResponse<Object> send(@RequestBody @Valid CdDto dto, BindingResult bindingResult) {
+ BaseResponse<Object> res ;
+ //鍙戦�佸懡浠ゅ墠-1锛氶獙璇�
+ res = super.pre1(sv, ComCode, dto, bindingResult);
+ if(res == null) {
+ //鍙戦�佸懡浠ゅ墠-2锛氳幏寰楁暟鎹�
+ res = super.pre2(sv, Protocol, ProtocolVersion, ComCode, dto, bindingResult);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-3锛氫繚瀛樺懡浠ゆ棩蹇�
+ CdParam comParam = CdParam.builder().commandCode(ComCode).build();
+ res = super.pre3(sv, dto.manureId, dto.getOperator(), Protocol, ProtocolVersion, ComCode, comParam);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-4锛氬噯澶嘑eature
+ super.pre4();
+ try {
+ //鍒涘缓澶栭儴鍛戒护锛堝彂缁欐帶鍒跺櫒锛�
+ Command com = sv.createOuterCommand(ctrlPo.fboxId, "" + comId, ComCode);
+ com.rtuResultSendWebUrl = rtuResultSendWebUrl;
+ com.param = comParam ;
+ //鍙戦�佸懡浠�
+ res = super.doSend(sv, com);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ悗
+ res = super.after(ComCode, null);
+ }
+ } catch (Exception e) {
+ res = BaseResponseUtils.buildFail("鏈嶅姟绔瀯閫犲苟鍚戦�氫俊涓棿浠跺彂閫佽姹傛椂寮傚父" + (e.getMessage() == null ? "" : e.getMessage()));
+ } finally {
+ //鏈�缁�
+ super.end();
+ }
+ }
+ }
+ }
+ return res ;
+ }
+
+ @Override
+ protected String checkDto(Dto4MqttBase dto) {
+ return null;
+ }
+
+ @Override
+ protected String dealComResult(String code, JSONObject resultData, Callback callback){
+ String msg;
+ if(resultData != null){
+ log.info(resultData.toString());
+ JSONObject codeData = resultData.getJSONObject("data") ;
+ if(codeData == null){
+ msg = RtuSuccessMsg ;
+ }else {
+ String json = codeData.toJSONString();
+ ManureVo cvo = JSON.parseObject(json, ManureVo.class) ;
+ if(cvo != null){
+ msg = cvo.toString() ;
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ }
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ return msg;
+ }}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdDto.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdDto.java
index 8d9b6f1..ab368e4 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdDto.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdDto.java
@@ -1,6 +1,6 @@
package com.dy.pipIrrRemote.monitor.mqttSd1.fault;
-import com.dy.pipIrrRemote.common.dto.DtoBase;
+import com.dy.pipIrrRemote.common.dto.Dto4MqttBase;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -11,6 +11,6 @@
*/
@Data
@EqualsAndHashCode(callSuper=true)
-public class CdDto extends DtoBase {
- public static final long serialVersionUID = 202506161739001L;
+public class CdDto extends Dto4MqttBase {
+ public static final long serialVersionUID = 202506501650001L;
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdParam.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdParam.java
index 6fde608..83dc00c 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdParam.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdParam.java
@@ -1,9 +1,19 @@
package com.dy.pipIrrRemote.monitor.mqttSd1.fault;
+import com.dy.pipIrrRemote.monitor.common.Cd4MqttParameter;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.SuperBuilder;
+
/**
* @Author: liurunyu
* @Date: 2025/6/16 17:36
* @Description
*/
-public class CdParam {
+@Data
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = true)
+@SuperBuilder
+public class CdParam extends Cd4MqttParameter {
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdStartCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdStartCtrl.java
deleted file mode 100644
index 1a182a9..0000000
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdStartCtrl.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package com.dy.pipIrrRemote.monitor.mqttSd1.fault;
-
-import com.alibaba.fastjson2.JSONObject;
-import com.dy.common.util.Callback;
-import com.dy.pipIrrRemote.common.dto.DtoBase;
-import com.dy.pipIrrRemote.monitor.common.ComCtrl;
-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.context.annotation.Scope;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * @Author: liurunyu
- * @Date: 2025/6/16 17:35
- * @Description
- */
-
-@Slf4j
-@Tag(name = "杩滅▼鍛戒护", description = "娓呴櫎鏁呴殰")
-@RestController("mqttSd1FaultStartCtrl")
-@RequestMapping(path = "mqttSd1/faultStartCtrl")
-@RequiredArgsConstructor
-@Scope("prototype") //鍥犱负鏈夊璞$被灞炴�э紝鎵�浠ラ噰鐢ㄥ師鍨嬫ā寮忥紝姣忔璇锋眰鏂板缓涓�涓疄渚嬪璞�
-public class CdStartCtrl extends ComCtrl {
-
- private static final String RtuSuccessMsg = "鎺у埗鍣ㄦ帴鏀跺苟鎵ц鍛戒护鎴愬姛锛屾棤杩斿洖鏁版嵁";
-
- private static final String ComCode = "5B" ;
-
- @Autowired
- private CdSv sv ;
-
- @Override
- protected String checkDto(DtoBase dto) {
- return null;
- }
-
- @Override
- protected String dealComResult(String code, JSONObject resultData, Callback callback) {
- return null;
- }
-}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdStopCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdStopCtrl.java
deleted file mode 100644
index e8e4617..0000000
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdStopCtrl.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.dy.pipIrrRemote.monitor.mqttSd1.fault;
-
-/**
- * @Author: liurunyu
- * @Date: 2025/6/16 17:35
- * @Description
- */
-public class CdStopCtrl {
-}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdSv.java
index e1a3f6d..d28981f 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdSv.java
@@ -1,6 +1,6 @@
package com.dy.pipIrrRemote.monitor.mqttSd1.fault;
-import com.dy.pipIrrRemote.monitor.common.ComSv;
+import com.dy.pipIrrRemote.monitor.common.Com4MqttSv;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -10,6 +10,6 @@
* @Description
*/
@Slf4j
-@Service("faultSv")
-public class CdSv extends ComSv {
+@Service("mqttSd1FaultSv")
+public class CdSv extends Com4MqttSv {
}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdCtrl.java
new file mode 100644
index 0000000..74ac28b
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdCtrl.java
@@ -0,0 +1,122 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.inject;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.aop.SsoAop;
+import com.dy.common.mw.protocol.Command;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.CodeSdV1;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.ProtocolConstantSdV1;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.ManureVo;
+import com.dy.common.util.Callback;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.pipIrrRemote.common.dto.Dto4MqttBase;
+import com.dy.pipIrrRemote.monitor.common.Com4MqttCtrl;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.http.MediaType;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:35
+ * @Description
+ */
+
+@Slf4j
+@Tag(name = "杩滅▼鍛戒护", description = "娓呴櫎鏁呴殰")
+@RestController("mqttSd1InjectCtrl")
+@RequestMapping(path = "mqttSd1/injectCtrl")
+@RequiredArgsConstructor
+@Scope("prototype") //鍥犱负鏈夊璞$被灞炴�э紝鎵�浠ラ噰鐢ㄥ師鍨嬫ā寮忥紝姣忔璇锋眰鏂板缓涓�涓疄渚嬪璞�
+public class CdCtrl extends Com4MqttCtrl {
+
+ private static final String RtuSuccessMsg = "鎺у埗鍣ㄦ帴鏀跺苟鎵ц鍛戒护鎴愬姛锛屾棤杩斿洖鏁版嵁";
+
+ private static final String Protocol = ProtocolConstantSdV1.protocolName ;
+ private static final Short ProtocolVersion = ProtocolConstantSdV1.protocolVer ;
+ private static final String ComCode = CodeSdV1.cd_Inject ;
+
+
+ @Autowired
+ private CdSv sv ;
+ /**
+ * 鍚戣澶囷紙Mqtt涓棿浠�->FBox锛夊彂閫佸懡浠�
+ * @param dto 鍓嶇鍙戞潵鐨勫�煎璞�
+ * @param bindingResult 瀵筪to楠岃瘉鐨勭粨鏋�
+ * @return 杩斿洖鍓嶇
+ */
+ @PostMapping(path = "send", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @SsoAop()
+ public BaseResponse<Object> send(@RequestBody @Valid CdDto dto, BindingResult bindingResult) {
+ BaseResponse<Object> res ;
+ //鍙戦�佸懡浠ゅ墠-1锛氶獙璇�
+ res = super.pre1(sv, ComCode, dto, bindingResult);
+ if(res == null) {
+ //鍙戦�佸懡浠ゅ墠-2锛氳幏寰楁暟鎹�
+ res = super.pre2(sv, Protocol, ProtocolVersion, ComCode, dto, bindingResult);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-3锛氫繚瀛樺懡浠ゆ棩蹇�
+ CdParam comParam = CdParam.builder().commandCode(ComCode).build();
+ res = super.pre3(sv, dto.manureId, dto.getOperator(), Protocol, ProtocolVersion, ComCode, comParam);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-4锛氬噯澶嘑eature
+ super.pre4();
+ try {
+ //鍒涘缓澶栭儴鍛戒护锛堝彂缁欐帶鍒跺櫒锛�
+ Command com = sv.createOuterCommand(ctrlPo.fboxId, "" + comId, ComCode);
+ com.rtuResultSendWebUrl = rtuResultSendWebUrl;
+ com.param = comParam ;
+ //鍙戦�佸懡浠�
+ res = super.doSend(sv, com);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ悗
+ res = super.after(ComCode, null);
+ }
+ } catch (Exception e) {
+ res = BaseResponseUtils.buildFail("鏈嶅姟绔瀯閫犲苟鍚戦�氫俊涓棿浠跺彂閫佽姹傛椂寮傚父" + (e.getMessage() == null ? "" : e.getMessage()));
+ } finally {
+ //鏈�缁�
+ super.end();
+ }
+ }
+ }
+ }
+ return res ;
+ }
+
+ @Override
+ protected String checkDto(Dto4MqttBase dto) {
+ return null;
+ }
+
+ @Override
+ protected String dealComResult(String code, JSONObject resultData, Callback callback){
+ String msg;
+ if(resultData != null){
+ log.info(resultData.toString());
+ JSONObject codeData = resultData.getJSONObject("data") ;
+ if(codeData == null){
+ msg = RtuSuccessMsg ;
+ }else {
+ String json = codeData.toJSONString();
+ ManureVo cvo = JSON.parseObject(json, ManureVo.class) ;
+ if(cvo != null){
+ msg = cvo.toString() ;
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ }
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ return msg;
+ }}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdDto.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdDto.java
new file mode 100644
index 0000000..2d8fef0
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdDto.java
@@ -0,0 +1,16 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.inject;
+
+import com.dy.pipIrrRemote.common.dto.Dto4MqttBase;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:36
+ * @Description
+ */
+@Data
+@EqualsAndHashCode(callSuper=true)
+public class CdDto extends Dto4MqttBase {
+ public static final long serialVersionUID = 202506201653001L;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdParam.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdParam.java
new file mode 100644
index 0000000..4293627
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdParam.java
@@ -0,0 +1,19 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.inject;
+
+import com.dy.pipIrrRemote.monitor.common.Cd4MqttParameter;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.SuperBuilder;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:36
+ * @Description
+ */
+@Data
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = true)
+@SuperBuilder
+public class CdParam extends Cd4MqttParameter {
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdSv.java
new file mode 100644
index 0000000..c03f344
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdSv.java
@@ -0,0 +1,15 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.inject;
+
+import com.dy.pipIrrRemote.monitor.common.Com4MqttSv;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:36
+ * @Description
+ */
+@Slf4j
+@Service("mqttSd1InjectSv")
+public class CdSv extends Com4MqttSv {
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdCtrl.java
new file mode 100644
index 0000000..f808c95
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdCtrl.java
@@ -0,0 +1,122 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.irr;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.aop.SsoAop;
+import com.dy.common.mw.protocol.Command;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.CodeSdV1;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.ProtocolConstantSdV1;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.ManureVo;
+import com.dy.common.util.Callback;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.pipIrrRemote.common.dto.Dto4MqttBase;
+import com.dy.pipIrrRemote.monitor.common.Com4MqttCtrl;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.http.MediaType;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:35
+ * @Description
+ */
+
+@Slf4j
+@Tag(name = "杩滅▼鍛戒护", description = "娓呴櫎鏁呴殰")
+@RestController("mqttSd1IrrCtrl")
+@RequestMapping(path = "mqttSd1/irrCtrl")
+@RequiredArgsConstructor
+@Scope("prototype") //鍥犱负鏈夊璞$被灞炴�э紝鎵�浠ラ噰鐢ㄥ師鍨嬫ā寮忥紝姣忔璇锋眰鏂板缓涓�涓疄渚嬪璞�
+public class CdCtrl extends Com4MqttCtrl {
+
+ private static final String RtuSuccessMsg = "鎺у埗鍣ㄦ帴鏀跺苟鎵ц鍛戒护鎴愬姛锛屾棤杩斿洖鏁版嵁";
+
+ private static final String Protocol = ProtocolConstantSdV1.protocolName ;
+ private static final Short ProtocolVersion = ProtocolConstantSdV1.protocolVer ;
+ private static final String ComCode = CodeSdV1.cd_Irr ;
+
+
+ @Autowired
+ private CdSv sv ;
+ /**
+ * 鍚戣澶囷紙Mqtt涓棿浠�->FBox锛夊彂閫佸懡浠�
+ * @param dto 鍓嶇鍙戞潵鐨勫�煎璞�
+ * @param bindingResult 瀵筪to楠岃瘉鐨勭粨鏋�
+ * @return 杩斿洖鍓嶇
+ */
+ @PostMapping(path = "send", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @SsoAop()
+ public BaseResponse<Object> send(@RequestBody @Valid CdDto dto, BindingResult bindingResult) {
+ BaseResponse<Object> res ;
+ //鍙戦�佸懡浠ゅ墠-1锛氶獙璇�
+ res = super.pre1(sv, ComCode, dto, bindingResult);
+ if(res == null) {
+ //鍙戦�佸懡浠ゅ墠-2锛氳幏寰楁暟鎹�
+ res = super.pre2(sv, Protocol, ProtocolVersion, ComCode, dto, bindingResult);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-3锛氫繚瀛樺懡浠ゆ棩蹇�
+ CdParam comParam = CdParam.builder().commandCode(ComCode).build();
+ res = super.pre3(sv, dto.manureId, dto.getOperator(), Protocol, ProtocolVersion, ComCode, comParam);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-4锛氬噯澶嘑eature
+ super.pre4();
+ try {
+ //鍒涘缓澶栭儴鍛戒护锛堝彂缁欐帶鍒跺櫒锛�
+ Command com = sv.createOuterCommand(ctrlPo.fboxId, "" + comId, ComCode);
+ com.rtuResultSendWebUrl = rtuResultSendWebUrl;
+ com.param = comParam ;
+ //鍙戦�佸懡浠�
+ res = super.doSend(sv, com);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ悗
+ res = super.after(ComCode, null);
+ }
+ } catch (Exception e) {
+ res = BaseResponseUtils.buildFail("鏈嶅姟绔瀯閫犲苟鍚戦�氫俊涓棿浠跺彂閫佽姹傛椂寮傚父" + (e.getMessage() == null ? "" : e.getMessage()));
+ } finally {
+ //鏈�缁�
+ super.end();
+ }
+ }
+ }
+ }
+ return res ;
+ }
+
+ @Override
+ protected String checkDto(Dto4MqttBase dto) {
+ return null;
+ }
+
+ @Override
+ protected String dealComResult(String code, JSONObject resultData, Callback callback){
+ String msg;
+ if(resultData != null){
+ log.info(resultData.toString());
+ JSONObject codeData = resultData.getJSONObject("data") ;
+ if(codeData == null){
+ msg = RtuSuccessMsg ;
+ }else {
+ String json = codeData.toJSONString();
+ ManureVo cvo = JSON.parseObject(json, ManureVo.class) ;
+ if(cvo != null){
+ msg = cvo.toString() ;
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ }
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ return msg;
+ }}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdDto.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdDto.java
new file mode 100644
index 0000000..466869e
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdDto.java
@@ -0,0 +1,16 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.irr;
+
+import com.dy.pipIrrRemote.common.dto.Dto4MqttBase;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:36
+ * @Description
+ */
+@Data
+@EqualsAndHashCode(callSuper=true)
+public class CdDto extends Dto4MqttBase {
+ public static final long serialVersionUID = 202506201654001L;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdParam.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdParam.java
new file mode 100644
index 0000000..ffec185
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdParam.java
@@ -0,0 +1,19 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.irr;
+
+import com.dy.pipIrrRemote.monitor.common.Cd4MqttParameter;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.SuperBuilder;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:36
+ * @Description
+ */
+@Data
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = true)
+@SuperBuilder
+public class CdParam extends Cd4MqttParameter {
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdSv.java
new file mode 100644
index 0000000..ae5e083
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdSv.java
@@ -0,0 +1,15 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.irr;
+
+import com.dy.pipIrrRemote.monitor.common.Com4MqttSv;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:36
+ * @Description
+ */
+@Slf4j
+@Service("mqttSd1IrrSv")
+public class CdSv extends Com4MqttSv {
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdCtrl.java
new file mode 100644
index 0000000..b74db25
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdCtrl.java
@@ -0,0 +1,122 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.paramSet;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.aop.SsoAop;
+import com.dy.common.mw.protocol.Command;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.CodeSdV1;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.ProtocolConstantSdV1;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.ManureVo;
+import com.dy.common.util.Callback;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.pipIrrRemote.common.dto.Dto4MqttBase;
+import com.dy.pipIrrRemote.monitor.common.Com4MqttCtrl;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.http.MediaType;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:35
+ * @Description
+ */
+
+@Slf4j
+@Tag(name = "杩滅▼鍛戒护", description = "娓呴櫎鏁呴殰")
+@RestController("mqttSd1ParamCtrl")
+@RequestMapping(path = "mqttSd1/paramCtrl")
+@RequiredArgsConstructor
+@Scope("prototype") //鍥犱负鏈夊璞$被灞炴�э紝鎵�浠ラ噰鐢ㄥ師鍨嬫ā寮忥紝姣忔璇锋眰鏂板缓涓�涓疄渚嬪璞�
+public class CdCtrl extends Com4MqttCtrl {
+
+ private static final String RtuSuccessMsg = "鎺у埗鍣ㄦ帴鏀跺苟鎵ц鍛戒护鎴愬姛锛屾棤杩斿洖鏁版嵁";
+
+ private static final String Protocol = ProtocolConstantSdV1.protocolName ;
+ private static final Short ProtocolVersion = ProtocolConstantSdV1.protocolVer ;
+ private static final String ComCode = CodeSdV1.cd_Param ;
+
+
+ @Autowired
+ private CdSv sv ;
+ /**
+ * 鍚戣澶囷紙Mqtt涓棿浠�->FBox锛夊彂閫佸懡浠�
+ * @param dto 鍓嶇鍙戞潵鐨勫�煎璞�
+ * @param bindingResult 瀵筪to楠岃瘉鐨勭粨鏋�
+ * @return 杩斿洖鍓嶇
+ */
+ @PostMapping(path = "send", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @SsoAop()
+ public BaseResponse<Object> send(@RequestBody @Valid CdDto dto, BindingResult bindingResult) {
+ BaseResponse<Object> res ;
+ //鍙戦�佸懡浠ゅ墠-1锛氶獙璇�
+ res = super.pre1(sv, ComCode, dto, bindingResult);
+ if(res == null) {
+ //鍙戦�佸懡浠ゅ墠-2锛氳幏寰楁暟鎹�
+ res = super.pre2(sv, Protocol, ProtocolVersion, ComCode, dto, bindingResult);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-3锛氫繚瀛樺懡浠ゆ棩蹇�
+ CdParam comParam = CdParam.builder().commandCode(ComCode).build();
+ res = super.pre3(sv, dto.manureId, dto.getOperator(), Protocol, ProtocolVersion, ComCode, comParam);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-4锛氬噯澶嘑eature
+ super.pre4();
+ try {
+ //鍒涘缓澶栭儴鍛戒护锛堝彂缁欐帶鍒跺櫒锛�
+ Command com = sv.createOuterCommand(ctrlPo.fboxId, "" + comId, ComCode);
+ com.rtuResultSendWebUrl = rtuResultSendWebUrl;
+ com.param = comParam ;
+ //鍙戦�佸懡浠�
+ res = super.doSend(sv, com);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ悗
+ res = super.after(ComCode, null);
+ }
+ } catch (Exception e) {
+ res = BaseResponseUtils.buildFail("鏈嶅姟绔瀯閫犲苟鍚戦�氫俊涓棿浠跺彂閫佽姹傛椂寮傚父" + (e.getMessage() == null ? "" : e.getMessage()));
+ } finally {
+ //鏈�缁�
+ super.end();
+ }
+ }
+ }
+ }
+ return res ;
+ }
+
+ @Override
+ protected String checkDto(Dto4MqttBase dto) {
+ return null;
+ }
+
+ @Override
+ protected String dealComResult(String code, JSONObject resultData, Callback callback){
+ String msg;
+ if(resultData != null){
+ log.info(resultData.toString());
+ JSONObject codeData = resultData.getJSONObject("data") ;
+ if(codeData == null){
+ msg = RtuSuccessMsg ;
+ }else {
+ String json = codeData.toJSONString();
+ ManureVo cvo = JSON.parseObject(json, ManureVo.class) ;
+ if(cvo != null){
+ msg = cvo.toString() ;
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ }
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ return msg;
+ }}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdDto.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdDto.java
new file mode 100644
index 0000000..d80897a
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdDto.java
@@ -0,0 +1,16 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.paramSet;
+
+import com.dy.pipIrrRemote.common.dto.Dto4MqttBase;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:36
+ * @Description
+ */
+@Data
+@EqualsAndHashCode(callSuper=true)
+public class CdDto extends Dto4MqttBase {
+ public static final long serialVersionUID = 202506201656001L;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdParam.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdParam.java
new file mode 100644
index 0000000..c905f87
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdParam.java
@@ -0,0 +1,19 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.paramSet;
+
+import com.dy.pipIrrRemote.monitor.common.Cd4MqttParameter;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.SuperBuilder;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:36
+ * @Description
+ */
+@Data
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = true)
+@SuperBuilder
+public class CdParam extends Cd4MqttParameter {
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdSv.java
new file mode 100644
index 0000000..98f1e66
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdSv.java
@@ -0,0 +1,15 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.paramSet;
+
+import com.dy.pipIrrRemote.monitor.common.Com4MqttSv;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:36
+ * @Description
+ */
+@Slf4j
+@Service("mqttSd1ParamSv")
+public class CdSv extends Com4MqttSv {
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdCtrl.java
new file mode 100644
index 0000000..b39d06c
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdCtrl.java
@@ -0,0 +1,122 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.stir;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.aop.SsoAop;
+import com.dy.common.mw.protocol.Command;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.CodeSdV1;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.ProtocolConstantSdV1;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.ManureVo;
+import com.dy.common.util.Callback;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.pipIrrRemote.common.dto.Dto4MqttBase;
+import com.dy.pipIrrRemote.monitor.common.Com4MqttCtrl;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.http.MediaType;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:35
+ * @Description
+ */
+
+@Slf4j
+@Tag(name = "杩滅▼鍛戒护", description = "娓呴櫎鏁呴殰")
+@RestController("mqttSd1StirCtrl")
+@RequestMapping(path = "mqttSd1/stirCtrl")
+@RequiredArgsConstructor
+@Scope("prototype") //鍥犱负鏈夊璞$被灞炴�э紝鎵�浠ラ噰鐢ㄥ師鍨嬫ā寮忥紝姣忔璇锋眰鏂板缓涓�涓疄渚嬪璞�
+public class CdCtrl extends Com4MqttCtrl {
+
+ private static final String RtuSuccessMsg = "鎺у埗鍣ㄦ帴鏀跺苟鎵ц鍛戒护鎴愬姛锛屾棤杩斿洖鏁版嵁";
+
+ private static final String Protocol = ProtocolConstantSdV1.protocolName ;
+ private static final Short ProtocolVersion = ProtocolConstantSdV1.protocolVer ;
+ private static final String ComCode = CodeSdV1.cd_Stir ;
+
+
+ @Autowired
+ private CdSv sv ;
+ /**
+ * 鍚戣澶囷紙Mqtt涓棿浠�->FBox锛夊彂閫佸懡浠�
+ * @param dto 鍓嶇鍙戞潵鐨勫�煎璞�
+ * @param bindingResult 瀵筪to楠岃瘉鐨勭粨鏋�
+ * @return 杩斿洖鍓嶇
+ */
+ @PostMapping(path = "send", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @SsoAop()
+ public BaseResponse<Object> send(@RequestBody @Valid CdDto dto, BindingResult bindingResult) {
+ BaseResponse<Object> res ;
+ //鍙戦�佸懡浠ゅ墠-1锛氶獙璇�
+ res = super.pre1(sv, ComCode, dto, bindingResult);
+ if(res == null) {
+ //鍙戦�佸懡浠ゅ墠-2锛氳幏寰楁暟鎹�
+ res = super.pre2(sv, Protocol, ProtocolVersion, ComCode, dto, bindingResult);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-3锛氫繚瀛樺懡浠ゆ棩蹇�
+ CdParam comParam = CdParam.builder().commandCode(ComCode).build();
+ res = super.pre3(sv, dto.manureId, dto.getOperator(), Protocol, ProtocolVersion, ComCode, comParam);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-4锛氬噯澶嘑eature
+ super.pre4();
+ try {
+ //鍒涘缓澶栭儴鍛戒护锛堝彂缁欐帶鍒跺櫒锛�
+ Command com = sv.createOuterCommand(ctrlPo.fboxId, "" + comId, ComCode);
+ com.rtuResultSendWebUrl = rtuResultSendWebUrl;
+ com.param = comParam ;
+ //鍙戦�佸懡浠�
+ res = super.doSend(sv, com);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ悗
+ res = super.after(ComCode, null);
+ }
+ } catch (Exception e) {
+ res = BaseResponseUtils.buildFail("鏈嶅姟绔瀯閫犲苟鍚戦�氫俊涓棿浠跺彂閫佽姹傛椂寮傚父" + (e.getMessage() == null ? "" : e.getMessage()));
+ } finally {
+ //鏈�缁�
+ super.end();
+ }
+ }
+ }
+ }
+ return res ;
+ }
+
+ @Override
+ protected String checkDto(Dto4MqttBase dto) {
+ return null;
+ }
+
+ @Override
+ protected String dealComResult(String code, JSONObject resultData, Callback callback){
+ String msg;
+ if(resultData != null){
+ log.info(resultData.toString());
+ JSONObject codeData = resultData.getJSONObject("data") ;
+ if(codeData == null){
+ msg = RtuSuccessMsg ;
+ }else {
+ String json = codeData.toJSONString();
+ ManureVo cvo = JSON.parseObject(json, ManureVo.class) ;
+ if(cvo != null){
+ msg = cvo.toString() ;
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ }
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ return msg;
+ }}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdDto.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdDto.java
new file mode 100644
index 0000000..54f2946
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdDto.java
@@ -0,0 +1,16 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.stir;
+
+import com.dy.pipIrrRemote.common.dto.Dto4MqttBase;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:36
+ * @Description
+ */
+@Data
+@EqualsAndHashCode(callSuper=true)
+public class CdDto extends Dto4MqttBase {
+ public static final long serialVersionUID = 202506201655001L;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdParam.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdParam.java
new file mode 100644
index 0000000..9d026bd
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdParam.java
@@ -0,0 +1,19 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.stir;
+
+import com.dy.pipIrrRemote.monitor.common.Cd4MqttParameter;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.SuperBuilder;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:36
+ * @Description
+ */
+@Data
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = true)
+@SuperBuilder
+public class CdParam extends Cd4MqttParameter {
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdSv.java
new file mode 100644
index 0000000..0587c4d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdSv.java
@@ -0,0 +1,15 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.stir;
+
+import com.dy.pipIrrRemote.monitor.common.Com4MqttSv;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:36
+ * @Description
+ */
+@Slf4j
+@Service("mqttSd1StirSv")
+public class CdSv extends Com4MqttSv {
+}
\ No newline at end of file
diff --git "a/pipIrr-platform/\346\226\207\346\241\243/\346\260\264\350\202\245\346\260\224\350\261\241\345\242\222\346\203\205/FlexManager\350\275\257\344\273\266\351\205\215\347\275\256\345\217\202\346\225\260.docx" "b/pipIrr-platform/\346\226\207\346\241\243/\346\260\264\350\202\245\346\260\224\350\261\241\345\242\222\346\203\205/FlexManager\350\275\257\344\273\266\351\205\215\347\275\256\345\217\202\346\225\260.docx"
new file mode 100644
index 0000000..c544565
--- /dev/null
+++ "b/pipIrr-platform/\346\226\207\346\241\243/\346\260\264\350\202\245\346\260\224\350\261\241\345\242\222\346\203\205/FlexManager\350\275\257\344\273\266\351\205\215\347\275\256\345\217\202\346\225\260.docx"
Binary files differ
--
Gitblit v1.8.0