From 431bbfaddba9f39496359bc0c1e2dcaf2bb6fca2 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期一, 23 六月 2025 15:09:04 +0800
Subject: [PATCH] 采用模拟软件MQTTX进行模拟测试,发现并修改MQTT相关水肥机上行数据与下行命令逻辑bug.
---
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TkMqttData.java | 4
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdCtrl.java | 33 +-
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdCtrl.java | 37 ++--
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/DevStatusDealer.java | 10 +
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdCtrl.java | 32 +-
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/ProtocolConstantSdV1.java | 1
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.properties | 6
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/Com4MqttCtrl.java | 13
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/ManureVo.java | 35 ++-
/dev/null | 79 --------
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdCtrl.java | 32 +-
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Command.java | 7
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdDto.java | 9 +
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandResultCtrl.java | 4
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttSubMsg.java | 61 ++++++
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdDto.java | 7
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkFindPSdV1.java | 4
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java | 8
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttPubMsg.java | 18 +
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/MqttResultCtrl.java | 40 ++++
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/ProtocolParserSdV1.java | 36 +--
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdCtrl.java | 34 +-
22 files changed, 284 insertions(+), 226 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 2399abe..f7b490a 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
@@ -76,7 +76,12 @@
s += (protocol == null ? "" : ("鍗忚=" + protocol + "\n"));
s += (protocolVersion == null ? "" : ("鍗忚鐗堟湰鍙�=" + protocolVersion + "\n"));
s += (rtuAddr == null ? "" : ("Rtu鍦板潃=" + rtuAddr + "\n"));
- s += "鍛戒护绫诲瀷=" + (type.equals(CommandType.innerCommand)?"鍐呴儴鍛戒护":(type.equals(CommandType.outerCommand)?"RTU鍛戒护":"閫忎紶鍛戒护")) + "\n" ;
+ s += "鍛戒护绫诲瀷=" + (
+ type.equals(CommandType.innerCommand)?"鍐呴儴鍛戒护":(
+ type.equals(CommandType.outerCommand)?"RTU鍛戒护":(
+ type.equals(CommandType.mqttCommand)?"MQTT鍛戒护":(
+ type.equals(CommandType.outerTransCommand)?"閫忎紶鍛戒护":
+ "")))) + "\n" ;
s += (code == null ? "" : ("鍔熻兘鐮�=" + code + "\n")) ;
s += (rtuResultSendWebUrl == null ? "" : ("鍥炶皟缃戝潃=" + rtuResultSendWebUrl + "\n"));
if(param != null){
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 eba4ecf..2c1c6f1 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
@@ -1,12 +1,18 @@
package com.dy.common.mw.protocol4Mqtt;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
/**
* @Author: liurunyu
* @Date: 2025/6/5 11:44
* @Description
*/
-public abstract class MqttPubMsg {
+@Data
+public class MqttPubMsg {
public String commandId ;//鍛戒护ID
+
+ public String cd ;//鍔熻兘鐮�
public String deviceId ;//璁惧ID
@@ -18,6 +24,14 @@
public boolean isCacheForOffLine ;//涓嬭鍛戒护鎺у埗锛屾秷鎭腑闂翠欢涓嶅湪绾挎槸鍚︾紦瀛樺懡浠�
public boolean hasResponse ;//涓嬭鍛戒护鎺у埗锛屽懡浠ゆ槸鍚︽湁搴旂瓟
- public abstract boolean valid();
+ public boolean valid(){
+ if (topic == null || topic.isEmpty()) {
+ return false;
+ }
+ if (msg == null || msg.isEmpty()) {
+ return false;
+ }
+ return true;
+ }
}
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 8226de7..7577e67 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
@@ -1,14 +1,16 @@
package com.dy.common.mw.protocol4Mqtt;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.ManureVo;
import com.dy.common.util.Callback;
+import lombok.Data;
/**
* @Author: liurunyu
* @Date: 2025/6/5 11:44
* @Description
*/
-
-public abstract class MqttSubMsg {
+@Data
+public class MqttSubMsg {
public String commandId ;//鍛戒护ID
public String mqttResultSendWebUrl ;//Mtt杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
@@ -18,9 +20,58 @@
public MqttTopic topic ;//娑堟伅涓婚
public String metaData;//MQTT鎺ㄩ�佹潵鐨勫厓鏁版嵁
- public abstract boolean valid();
+ public Vo4Up vo4Up;//璁㈤槄鐨勬秷鎭暟鎹�煎璞�
+ public MqttSubMsg() {
+ }
+ public MqttSubMsg(MqttTopic subTopic, String msg) {
+ this.deviceId = subTopic.devId ;
+ this.protocol = subTopic.protocol ;
+ this.topic = subTopic ;
+ this.metaData = msg ;
+ }
- public abstract boolean subMsgMatchPubMsg(MqttPubMsg pubMsg);
+ public boolean valid() {
+ if (topic == null || topic.isEmpty()) {
+ return false;
+ }
+ if (metaData == null || metaData.isEmpty()) {
+ return false;
+ }
+ return true;
+ }
- public abstract void action(Callback callback);
+ public boolean subMsgMatchPubMsg(MqttPubMsg pubMsg){
+ if(this.vo4Up != null && this.vo4Up instanceof ManureVo){
+ //鍙涓婃姤鐨勬槸鐘舵�佹暟鎹紝璇存槑璁惧鍝嶅簲浜嗗懡浠�
+ return true ;
+ }
+ return false ;
+ }
+
+ public void action(Callback callback){
+ callback.call(this) ;
+ }
+
+
+ public String toString(){
+ StringBuilder sb = new StringBuilder();
+ if(commandId != null){
+ sb.append("commandId:")
+ .append(commandId)
+ .append("\n") ;
+ }
+ sb.append("涓婚:")
+ .append(topic.longName())
+ .append("\n") ;
+ if(vo4Up != null){
+ sb.append("鏁版嵁:")
+ .append(vo4Up.toString())
+ .append("\n") ;
+ }else{
+ sb.append("鍏冩暟鎹�:")
+ .append(metaData)
+ .append("\n") ;
+ }
+ return sb.toString() ;
+ }
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/MqttPubMsgSdV1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/MqttPubMsgSdV1.java
deleted file mode 100644
index 6193843..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/MqttPubMsgSdV1.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.dy.common.mw.protocol4Mqtt.pSdV1;
-
-import com.dy.common.mw.protocol4Mqtt.MqttPubMsg;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * @Author: liurunyu
- * @Date: 2025/6/4 18:00
- * @Description 涓嬪彂鐨勫彂甯冩秷鎭紙鍗充笅琛屽懡浠わ級
- */
-@Data
-@EqualsAndHashCode(callSuper=false)
-public class MqttPubMsgSdV1 extends MqttPubMsg {
-
- public String cd ;//鍔熻兘鐮�
-
- @Override
- public boolean valid() {
- if (topic == null || topic.isEmpty()) {
- return false;
- }
- if (msg == null || msg.isEmpty()) {
- return false;
- }
- return true;
- }
-}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/MqttSubMsgSdV1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/MqttSubMsgSdV1.java
deleted file mode 100644
index cfccbef..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/MqttSubMsgSdV1.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package com.dy.common.mw.protocol4Mqtt.pSdV1;
-
-import com.dy.common.mw.protocol4Mqtt.MqttPubMsg;
-import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
-import com.dy.common.mw.protocol4Mqtt.MqttTopic;
-import com.dy.common.mw.protocol4Mqtt.Vo4Up;
-import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.ManureVo;
-import com.dy.common.util.Callback;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * @Author: liurunyu
- * @Date: 2025/6/4 16:58
- * @Description 鏀跺埌鐨勮闃呮秷鎭�
- */
-@Data
-@EqualsAndHashCode(callSuper=false)
-public class MqttSubMsgSdV1 extends MqttSubMsg {
- public Vo4Up vo4Up;//璁㈤槄鐨勬秷鎭暟鎹�煎璞�
-
- public MqttSubMsgSdV1(){}
-
- public MqttSubMsgSdV1(MqttTopic subTopic, String msg) {
- this.deviceId = subTopic.devId ;
- this.protocol = subTopic.protocol ;
- this.topic = subTopic ;
- this.metaData = msg ;
- }
- public String toString(){
- StringBuilder sb = new StringBuilder();
- if(commandId != null){
- sb.append("commandId:")
- .append(commandId)
- .append("\n") ;
- }
- sb.append("涓婚:")
- .append(topic.longName())
- .append("\n") ;
- if(vo4Up != null){
- sb.append("鏁版嵁:")
- .append(vo4Up.toString())
- .append("\n") ;
- }else{
- sb.append("鍏冩暟鎹�:")
- .append(metaData)
- .append("\n") ;
- }
- return sb.toString() ;
- }
-
- public boolean subMsgMatchPubMsg(MqttPubMsg pubMsg){
- if (pubMsg instanceof MqttPubMsgSdV1) {
- //MqttPubMsgSdV1 pubMsgSdV1 = (MqttPubMsgSdV1) pubMsg;
- if(this.vo4Up != null && this.vo4Up instanceof ManureVo){
- //鍙涓婃姤鐨勬槸鐘舵�佹暟鎹紝璇存槑璁惧鍝嶅簲浜嗗懡浠�
- return true ;
- }
- }
- return false ;
- }
-
- @Override
- public boolean valid() {
- if (topic == null || topic.isEmpty()) {
- return false;
- }
- if (metaData == null || metaData.isEmpty()) {
- return false;
- }
- return true;
- }
-
- @Override
- public void action(Callback callback){
- callback.call(this) ;
- }
-
-}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/ProtocolConstantSdV1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/ProtocolConstantSdV1.java
index 8961281..df832f1 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/ProtocolConstantSdV1.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/ProtocolConstantSdV1.java
@@ -13,7 +13,6 @@
public static final String SubTopicWeather = "weather" ;//姘旇薄
public static final String SubTopicSoil = "soil" ;//鍦熷¥澧掓儏
public static final String SubTopicManure = "manure" ;//姘磋偉
- public static final String SubTopicState = "state" ;//鐘舵��
//鍙戝竷鐨勪富棰�
public static final String PubTopicFault = "ctrlFault" ;//鏁呴殰瑙i櫎
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 acfbe14..7ba7e80 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
@@ -3,9 +3,7 @@
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.dy.common.mw.protocol.Command;
-import com.dy.common.mw.protocol4Mqtt.MqttCallback;
-import com.dy.common.mw.protocol4Mqtt.MqttTopic;
-import com.dy.common.mw.protocol4Mqtt.Vo4Up;
+import com.dy.common.mw.protocol4Mqtt.*;
import com.dy.common.mw.protocol4Mqtt.pSdV1.comParam.ComCtrlVo;
import com.dy.common.mw.protocol4Mqtt.pSdV1.comParam.ComSetParamVo;
import com.dy.common.mw.protocol4Mqtt.pSdV1.downVos.FaultClearVo;
@@ -22,12 +20,12 @@
* @Description
*/
public class ProtocolParserSdV1 {
- public MqttSubMsgSdV1 parseSubMsg(MqttTopic subTopic, MqttMessage mqttMsg, MqttCallback callback) throws Exception {
+ public MqttSubMsg parseSubMsg(MqttTopic subTopic, MqttMessage mqttMsg, MqttCallback callback) throws Exception {
String strTxt = new String(mqttMsg.getPayload(), "UTF-8");
if(!JSON.isValid(strTxt)){
throw new Exception("鎺ユ敹鍒癕QTT娑堟伅锛屽崗璁�" + subTopic.protocol + "锛岃澶嘔D" + subTopic.devId + "锛屼富棰�" + subTopic.longName() + "娑堟伅鏍煎紡闈瀓son鏁版嵁(" + strTxt + ")") ;
}
- MqttSubMsgSdV1 msg = new MqttSubMsgSdV1(subTopic, strTxt);
+ MqttSubMsg msg = new MqttSubMsg(subTopic, strTxt);
Vo4Up vo ;
DevRunInfo stInfo = null ;
switch (subTopic.type) {
@@ -82,8 +80,8 @@
return msg;
}
- public MqttPubMsgSdV1 createPubMsg(String orgTag, Command com) throws Exception {
- MqttPubMsgSdV1 msg ;
+ public MqttPubMsg createPubMsg(String orgTag, Command com) throws Exception {
+ MqttPubMsg msg ;
switch (com.code) {
case CodeSdV1.cd_Fault -> {
//鏁呴殰瑙i櫎鍛戒护
@@ -136,14 +134,14 @@
throw new Exception("鎺ユ敹鍒癕QTT鍛戒护锛屽崗璁�" + com.protocol + "鐗堟湰" + com.protocolVersion + "鍔熻兘鐮�" + com.code + "鍛戒护缁撴灉鍥炴敹URL涓虹┖") ;
}
}
- private MqttPubMsgSdV1 createPubMsgOfFault(String orgTag, Command com) throws Exception {
+ private MqttPubMsg createPubMsgOfFault(String orgTag, Command com) throws Exception {
JSONObject obj = (JSONObject) com.param;
String json = obj.toJSONString();
ComCtrlVo cvo = JSON.parseObject(json, ComCtrlVo.class);
if(cvo == null){
throw new Exception("json杞珻omCtrlVo涓簄ull") ;
}
- MqttPubMsgSdV1 msg = new MqttPubMsgSdV1() ;
+ MqttPubMsg msg = new MqttPubMsg() ;
this.setPubMsgBase(com, msg);
msg.isCacheForOffLine = false ;
msg.hasResponse = true ;
@@ -152,14 +150,14 @@
msg.msg = JSON.toJSONString(new FaultClearVo(cvo.startTrueStopFalse ?(byte)1:0)) ;
return msg ;
}
- private MqttPubMsgSdV1 createPubMsgOfStir(String orgTag, Command com) throws Exception {
+ private MqttPubMsg createPubMsgOfStir(String orgTag, Command com) throws Exception {
JSONObject obj = (JSONObject) com.param;
String json = obj.toJSONString();
ComCtrlVo cvo = JSON.parseObject(json, ComCtrlVo.class);
if(cvo == null){
throw new Exception("json杞珻omCtrlVo涓簄ull") ;
}
- MqttPubMsgSdV1 msg = new MqttPubMsgSdV1() ;
+ MqttPubMsg msg = new MqttPubMsg() ;
this.setPubMsgBase(com, msg);
msg.isCacheForOffLine = false ;
msg.hasResponse = true ;
@@ -168,14 +166,14 @@
msg.msg = JSON.toJSONString(new StirStartVo(cvo.startTrueStopFalse ?(byte)1:0)) ;
return msg ;
}
- private MqttPubMsgSdV1 createPubMsgOfInject(String orgTag, Command com) throws Exception {
+ private MqttPubMsg createPubMsgOfInject(String orgTag, Command com) throws Exception {
JSONObject obj = (JSONObject) com.param;
String json = obj.toJSONString();
ComCtrlVo cvo = JSON.parseObject(json, ComCtrlVo.class);
if(cvo == null){
throw new Exception("json杞珻omCtrlVo涓簄ull") ;
}
- MqttPubMsgSdV1 msg = new MqttPubMsgSdV1() ;
+ MqttPubMsg msg = new MqttPubMsg() ;
this.setPubMsgBase(com, msg);
msg.isCacheForOffLine = false ;
msg.hasResponse = true ;
@@ -184,14 +182,14 @@
msg.msg = JSON.toJSONString(new InjectStartVo(cvo.startTrueStopFalse ?(byte)1:0)) ;
return msg ;
}
- private MqttPubMsgSdV1 createPubMsgOfIrr(String orgTag, Command com) throws Exception {
+ private MqttPubMsg createPubMsgOfIrr(String orgTag, Command com) throws Exception {
JSONObject obj = (JSONObject) com.param;
String json = obj.toJSONString();
ComCtrlVo cvo = JSON.parseObject(json, ComCtrlVo.class);
if(cvo == null){
throw new Exception("json杞珻omCtrlVo涓簄ull") ;
}
- MqttPubMsgSdV1 msg = new MqttPubMsgSdV1() ;
+ MqttPubMsg msg = new MqttPubMsg() ;
this.setPubMsgBase(com, msg);
msg.isCacheForOffLine = false ;
msg.hasResponse = true ;
@@ -201,24 +199,24 @@
return msg ;
}
- private MqttPubMsgSdV1 createPubMsgOfParam(String orgTag, Command com) throws Exception {
+ private MqttPubMsg createPubMsgOfParam(String orgTag, Command com) throws Exception {
JSONObject obj = (JSONObject) com.param;
String json = obj.toJSONString();
ComSetParamVo cvo = JSON.parseObject(json, ComSetParamVo.class);
if(cvo == null){
throw new Exception("json杞珻omSetParamVo涓簄ull") ;
}
- MqttPubMsgSdV1 msg = new MqttPubMsgSdV1() ;
+ MqttPubMsg msg = new MqttPubMsg() ;
this.setPubMsgBase(com, msg);
msg.isCacheForOffLine = false ;
- msg.hasResponse = false ;
+ msg.hasResponse = true ;
msg.cd = CodeSdV1.cd_Param ;
msg.topic = new MqttTopic(orgTag, com.protocol + com.protocolVersion, com.rtuAddr, ProtocolConstantSdV1.PubTopicParam, cvo.no) ;
msg.msg = JSON.toJSONString(new ParamSetVo(cvo.stirDuration, cvo.injectDuration)) ;
return msg ;
}
- private void setPubMsgBase(Command com, MqttPubMsgSdV1 msg){
+ private void setPubMsgBase(Command com, MqttPubMsg msg){
msg.commandId = com.id ;
msg.deviceId = com.rtuAddr ;
msg.mqttResultSendWebUrl = com.rtuResultSendWebUrl ;
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 b72f3d0..98acc81 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
@@ -20,59 +20,72 @@
/**
* 鎼呮媽鏈�1鏄惁杩愯锛涳紙姘磋偉鏈鸿繕鍙瓨鍦ㄦ悈鎷屾満2銆佹悈鎷屾満3銆佹悈鎷屾満4 ......锛� 杩愯鏃�1锛屽仠姝�0.
*/
- @JSONField(name = "鎼呮媽杩愯1")
+ @JSONField(alternateNames = {"鎼呮媽杩愯1", "stirRunning1"})
public Byte stirRunning1;//鎼呮媽1杩愯鐘舵��
/**
* 鎼呮媽鏈�2鏄惁杩愯锛涳紙姘磋偉鏈鸿繕鍙瓨鍦ㄦ悈鎷屾満2銆佹悈鎷屾満3銆佹悈鎷屾満4 ......锛� 杩愯鏃�1锛屽仠姝�0.
* (褰撳墠澶х搴旂敤涓嶅瓨鍦�)
*/
- @JSONField(name = "鎼呮媽杩愯2")
+ @JSONField(alternateNames = {"鎼呮媽杩愯2", "stirRunning2"})
public Byte stirRunning2;//鎼呮媽2杩愯鐘舵��
/**
* 鎼呮媽鏈�3鏄惁杩愯锛涳紙姘磋偉鏈鸿繕鍙瓨鍦ㄦ悈鎷屾満2銆佹悈鎷屾満3銆佹悈鎷屾満4 ......锛� 杩愯鏃�1锛屽仠姝�0.
* (褰撳墠澶х搴旂敤涓嶅瓨鍦�)
*/
- @JSONField(name = "鎼呮媽杩愯3")
+ @JSONField(alternateNames = {"鎼呮媽杩愯3", "stirRunning3"})
public Byte stirRunning3;//鎼呮媽3杩愯鐘舵��
/**
* 鎼呮媽鏈�4鏄惁杩愯锛涳紙姘磋偉鏈鸿繕鍙瓨鍦ㄦ悈鎷屾満2銆佹悈鎷屾満3銆佹悈鎷屾満4 ......锛� 杩愯鏃�1锛屽仠姝�0.
* (褰撳墠澶х搴旂敤涓嶅瓨鍦�)
*/
- @JSONField(name = "鎼呮媽杩愯4")
+ @JSONField(alternateNames = {"鎼呮媽杩愯4", "stirRunning4"})
public Byte stirRunning4;//鎼呮媽4杩愯鐘舵��
/**
* 涓�涓按鑲ユ満鍙湁涓�涓敞鑲ユ车
*/
- @JSONField(name = "娉ㄨ偉杩愯")
+ @JSONField(alternateNames = {"娉ㄨ偉杩愯", "injectRunning"})
public Byte injectRunning ;//娉ㄨ偉杩愯鐘舵��
- @JSONField(name = "鐏屾簤杩愯")
+
+ @JSONField(alternateNames = {"鐏屾簤杩愯", "irrRunning"})
public Byte irrRunning ;//鐏屾簤杩愯鐘舵��
/**
* 1:娉ㄨ偉娉垫湁鏁呴殰銆�0:娉ㄨ偉娉垫病鏈夋晠闅�
*/
- @JSONField(name = "鎶ヨ")
+ @JSONField(alternateNames = {"鎶ヨ", "alarm"})
public Byte alarm ;//娉ㄨ偉娉垫晠闅�
/**
* 鑲ユ枡娴侀噺锛屽崟浣嶅崌
*/
- @JSONField(name = "鑲ユ枡娴侀噺")
+ @JSONField(alternateNames = {"鑲ユ枡娴侀噺", "manureFlow"})
public Float manureFlow ;
/**
* 鍗曚綅绉�
*/
- @JSONField(name = "娉ㄨ偉缁忚繃鏃堕棿")
+ @JSONField(alternateNames = {"娉ㄨ偉缁忚繃鏃堕棿", "manureTime"})
public Integer manureTime ;
/**
* 鍗曚綅绉�
*/
- @JSONField(name = "鎼呮媽缁忚繃鏃堕棿")
+ @JSONField(alternateNames = {"鎼呮媽缁忚繃鏃堕棿", "stirTime"})
public Integer stirTime ;
+
+ /**
+ * 鍗曚綅绉�
+ */
+ @JSONField(alternateNames = {"鎼呮媽璁惧畾鏃堕棿", "stirDuration"})
+ public Integer stirDuration ;
+
+ /**
+ * 鍗曚綅绉�
+ */
+ @JSONField(alternateNames = {"娉ㄨ偉璁惧畾鏃堕棿", "injectDuration"})
+ public Integer injectDuration ;
@JSONField(name = "flexem_timestamp")
public Long devDt ;//璁惧鏃堕棿
@@ -107,6 +120,8 @@
sb.append(" 鑲ユ枡娴侀噺锛�" + manureFlow + ", ") ;
sb.append(" 娉ㄨ偉缁忚繃鏃堕棿锛�" + manureTime + ", ") ;
sb.append(" 鎼呮媽缁忚繃鏃堕棿锛�" + stirTime + ", ") ;
+ sb.append(" 娉ㄨ偉璁惧畾鏃堕棿锛�" + injectDuration + ", ") ;
+ sb.append(" 鎼呮媽璁惧畾鏃堕棿锛�" + stirDuration + ", ") ;
sb.append(" 璁惧鏃堕棿锛�" + devDt + ", ") ;
sb.append(" 璁惧鏃堕棿锛�" + this.getDevDtStr()) ;
sb.append("\n") ;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/DevStatusDealer.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/DevStatusDealer.java
index d3b2f2b..35f3c71 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/DevStatusDealer.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/DevStatusDealer.java
@@ -43,6 +43,16 @@
return rsMap ;
}
}
+
+ public static Boolean oneOnLine(String devId){
+ synchronized (map){
+ DevStatus st = map.get(devId) ;
+ if(st != null){
+ return st.onLine ;
+ }
+ return false ;
+ }
+ }
/**
* 缁熻鍦ㄧ嚎涓庝笉鍦ㄧ嚎鎯呭喌
*/
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TkMqttData.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TkMqttData.java
index 918f363..6139870 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TkMqttData.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TkMqttData.java
@@ -1,6 +1,6 @@
package com.dy.rtuMw.server.rtuData;
-import com.dy.common.mw.protocol4Mqtt.pSdV1.MqttSubMsgSdV1;
+import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
import com.dy.rtuMw.server.rtuData.pSdV1.TkFindPSdV1;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -26,7 +26,7 @@
if(data == null){
log.error("涓ラ噸閿欒锛孧qtt璁㈤槄娑堟伅鏁版嵁涓虹┖锛�" );
}else{
- if(data instanceof MqttSubMsgSdV1){
+ if(data instanceof MqttSubMsg){
this.toNextOneTask(data, TkFindPSdV1.taskId);
}else{
log.error("涓ラ噸閿欒锛岃鏁版嵁绫诲瀷锛�" + data.getClass().getName() + "锛夛紝鎺ユ敹鏁版嵁浠诲姟杩樻湭瀹炵幇锛�" );
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 eec2554..ce5def5 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,6 @@
package com.dy.rtuMw.server.rtuData.pSdV1;
-import com.dy.common.mw.protocol4Mqtt.pSdV1.MqttSubMsgSdV1;
+import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
import com.dy.rtuMw.server.rtuData.TaskSurpport;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -24,7 +24,7 @@
@Override
public void execute(Object data) {
//鍓嶉潰鐨勪换鍔″凡缁忓垽鏂簡data涓嶄负绌�
- MqttSubMsgSdV1 msg = (MqttSubMsgSdV1)data ;
+ MqttSubMsg msg = (MqttSubMsg)data ;
log.info(msg.toString());
}
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 5e701f9..196b13c 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
@@ -7,6 +7,7 @@
import com.dy.rtuMw.server.forTcp.TcpSessionCache;
import com.dy.rtuMw.server.local.CommandInnerDeaLer;
import com.dy.rtuMw.server.local.ReturnCommand;
+import com.dy.rtuMw.server.mqtt.DevStatusDealer;
import com.dy.rtuMw.server.mqtt.MqttManager;
import com.dy.rtuMw.server.msCenter.MsCenterUnit;
import com.dy.rtuMw.server.tasks.WebDownCom4MqttTask;
@@ -375,8 +376,8 @@
* @return 缁撴灉
*/
private BaseResponse<Command> dealMqttCommand(Command command){
- String rtuAddr = command.getRtuAddr() ;//FBox璁惧鍙�
- if(rtuAddr == null || rtuAddr.trim().equals("")){
+ String mqttDevId = command.getRtuAddr() ;//FBox璁惧鍙�
+ if(mqttDevId == null || mqttDevId.trim().equals("")){
return BaseResponseUtils.buildError(ReturnCommand.errored("鍑洪敊锛孎Box璁惧ID涓虹┖锛�", command.getId(), command.getCode())) ;
}
if(!ServerProperties.mqttUnitEnable.booleanValue()){
@@ -385,6 +386,9 @@
if(MqttManager.getInstance().poolIsClose()){
return BaseResponseUtils.buildError(ReturnCommand.errored("鍑洪敊锛孧QTT杩炴帴姹犳湭鍒涘缓鎴愬姛锛�", command.getId(), command.getCode())) ;
}
+ if(!DevStatusDealer.oneOnLine(mqttDevId)){
+ return BaseResponseUtils.buildError(ReturnCommand.errored("鍑洪敊锛孎Box璁惧鏈湪绾匡紒", command.getId(), command.getCode())) ;
+ }
//鐢熸垚寮傛浠诲姟
WebDownCom4MqttTask task = new WebDownCom4MqttTask() ;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.properties b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.properties
index 174c558..f22d25e 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.properties
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.properties
@@ -11,7 +11,7 @@
# 鍑夊窞锛� lz
# 閲戝窛锛� jc
# 鍢夊唱鍏筹細 jyg
-base.orgTag=ym
+base.orgTag=jyg
# 233鏈嶅姟鍣細
# 鍏冭皨锛� 60000
@@ -26,7 +26,7 @@
# 鍑夊窞锛� 60104
# 閲戝窛锛� 60105
# 鍢夊唱鍏筹細 60106
-tcp.port=60000
+tcp.port=60106
#RTU涓婅鏁版嵁鏈�灏忛棿闅旓紝澶т簬杩欎釜闂撮殧璁や负璁惧绂荤嚎浜嗭紝娴嬫帶涓�浣撻榾鏄�3锛岃〃闃�涓�浣撴満鏄�6锛岄粯璁ら噰鐢ㄦ椂闂存渶闀跨殑6
base.upData.min.interval=6
@@ -53,7 +53,7 @@
mqtt.port=1883
mqtt.user=dyyjy
mqtt.password=Dyyjy2025,;.abc!@#
-mqtt.protocolAndDeviceIds=sd1/123456789
+mqtt.protocolAndDeviceIds=sd1/2430002404000840,sd1/2430002404000840
mqtt.subTopicAndQos=weather/1,1;soil/1,1;manure/1,1
#MQtt璁惧鍦ㄤ竴瀹氭椂闂达紙鍒嗛挓锛夊悗鏈彂甯冩秷鎭紝璁や负璁惧绂荤嚎
mqtt.noSubThenOff=10
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandResultCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandResultCtrl.java
index 86f89d6..c03f7a0 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandResultCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandResultCtrl.java
@@ -35,9 +35,9 @@
if(codeDataObj != null){
if(codeDataObj instanceof JSONObject){
codeData = protocolData == null ? null : (protocolData.getJSONObject("subData")) ; //鍗忚鍔熻兘鐮佹暟鎹�
- }else if(codeDataObj instanceof JSONArray){{
+ }else if(codeDataObj instanceof JSONArray){
codeArrayData = protocolData == null ? null : (protocolData.getJSONArray("subData")) ; //鍗忚鍔熻兘鐮佹暟鎹�
- }}
+ }
}
JSONObject job_response = new JSONObject();
job_response.put("data", codeData!=null?codeData:(codeArrayData!=null?codeArrayData:null));
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/MqttResultCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/MqttResultCtrl.java
new file mode 100644
index 0000000..d4bb4ff
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/MqttResultCtrl.java
@@ -0,0 +1,40 @@
+package com.dy.pipIrrRemote.common;
+
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
+import com.dy.pipIrrGlobal.command.ComResultWait;
+import com.dy.pipIrrGlobal.command.ComSupport;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.MediaType;
+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;
+
+import java.util.concurrent.CompletableFuture;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-05-23 8:19
+ * @LastEditTime 2024-05-23 8:19
+ * @Description
+ */
+
+@Slf4j
+@RestController
+@RequestMapping(path="mqttRes")
+public class MqttResultCtrl extends ComSupport {
+ @PostMapping(path = "receive", consumes = MediaType.APPLICATION_JSON_VALUE)
+ public void receive(@RequestBody MqttSubMsg subMsg) {
+ if(subMsg != null){
+ CompletableFuture<MqttSubMsg> feature = (CompletableFuture<MqttSubMsg>) ComResultWait.get(Long.parseLong(subMsg.commandId));
+ if(feature != null) {
+ feature.complete(subMsg);
+ }else{
+ //瓒呮椂锛宖eature琚竻闄や簡
+ }
+ }else{
+ log.error("mqtt鍗忚娑堟伅涓虹┖");
+ }
+ }
+}
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
index c0e4801..9bae744 100644
--- 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
@@ -2,6 +2,7 @@
import com.alibaba.fastjson2.JSONObject;
import com.dy.common.mw.protocol.Command;
+import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
import com.dy.common.util.Callback;
import com.dy.common.util.IDLongGenerator;
import com.dy.common.webUtil.BaseResponse;
@@ -36,13 +37,13 @@
@Value("${mw.waitMwRtnResultTimeout}")
protected int waitMwRtnResultTimeout ;
- @Value("${mw.rtuCallbackUrl_rm}")
- protected String rtuResultSendWebUrl;
+ @Value("${mw.mqttCallbackUrl_rm}")
+ protected String mqttResultSendWebUrl;
//姘磋偉鏈哄璞�
protected PrStManure ctrlPo ;
//寮傛绛夊緟鍣�
- protected CompletableFuture<JSONObject> feature;
+ protected CompletableFuture<MqttSubMsg> feature;
//鍛戒护鍚嶇О
protected String comName ;
//鍛戒护鏃ュ織id
@@ -158,8 +159,8 @@
public BaseResponse<Object> after(String comCode, Callback callback) {
try{
//绛夊緟閫氫俊涓棿浠堕�氱煡姘磋偉鏈烘墽琛屽懡浠や笂琛屾暟鎹紙鍛戒护缁撴灉锛�
- JSONObject resultData = feature.get(waitMwRtnResultTimeout, TimeUnit.SECONDS);
- return BaseResponseUtils.buildSuccess(this.dealComResult(comCode, resultData, callback));
+ MqttSubMsg subMsg = feature.get(waitMwRtnResultTimeout, TimeUnit.SECONDS);
+ return BaseResponseUtils.buildSuccess(this.dealComResult(comCode, subMsg, callback));
}catch (Exception e){
return BaseResponseUtils.buildFail("绛夊緟閫氫俊涓棿浠堕�氱煡鍛戒护缁撴灉瓒呮椂");
}
@@ -189,5 +190,5 @@
/**
* 鐢熸垚鍛戒护杩斿洖淇℃伅
*/
- protected abstract String dealComResult(String code, JSONObject resultData, Callback callback);
+ protected abstract String dealComResult(String code, MqttSubMsg subMsg, Callback callback);
}
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
index cc16a8d..8d673ee 100644
--- 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
@@ -1,9 +1,9 @@
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.MqttSubMsg;
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;
@@ -24,6 +24,9 @@
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Proxy;
/**
* @Author: liurunyu
@@ -72,7 +75,7 @@
try {
//鍒涘缓澶栭儴鍛戒护锛堝彂缁橫QTT->FBox锛�
Command com = sv.createMQTTCommand(ctrlPo.fboxId, "" + comId, Protocol, ProtocolVersion, ComCode);
- com.rtuResultSendWebUrl = rtuResultSendWebUrl;
+ com.rtuResultSendWebUrl = mqttResultSendWebUrl;
com.param = comParam ;
//鍙戦�佸懡浠�
res = super.doSend(sv, com);
@@ -98,24 +101,21 @@
}
@Override
- protected String dealComResult(String code, JSONObject resultData, Callback callback){
+ protected String dealComResult(String code, MqttSubMsg subMsg, Callback callback){
String msg;
- if(resultData != null){
- log.info(resultData.toString());
- JSONObject codeData = resultData.getJSONObject("data") ;
- if(codeData == null){
+ if(subMsg != null){
+ if(subMsg.vo4Up != null && Proxy.isProxyClass(subMsg.vo4Up.getClass())){
+ // 鑾峰彇浠g悊鐨� InvocationHandler
+ InvocationHandler handler = Proxy.getInvocationHandler(subMsg.vo4Up);
+ String json = JSON.toJSONString(handler) ;
+ ManureVo vo = JSON.parseObject(json, ManureVo.class);
+ msg = vo.toString() ;
+ }else{
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/CdCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdCtrl.java
index 1843239..5331d0a 100644
--- 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
@@ -1,9 +1,9 @@
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.MqttSubMsg;
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;
@@ -12,7 +12,6 @@
import com.dy.common.webUtil.BaseResponseUtils;
import com.dy.pipIrrRemote.common.dto.Dto4MqttBase;
import com.dy.pipIrrRemote.monitor.common.Com4MqttCtrl;
-import com.dy.pipIrrRemote.monitor.mqttSd1.stir.CdDto;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
@@ -25,6 +24,9 @@
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Proxy;
/**
* @Author: liurunyu
@@ -58,7 +60,7 @@
*/
@PostMapping(path = "start", consumes = MediaType.APPLICATION_JSON_VALUE)
@SsoAop()
- public BaseResponse<Object> start(@RequestBody @Valid com.dy.pipIrrRemote.monitor.mqttSd1.stir.CdDto dto, BindingResult bindingResult) {
+ public BaseResponse<Object> start(@RequestBody @Valid CdDto dto, BindingResult bindingResult) {
return this.send(dto, bindingResult, true) ;
}
@@ -70,7 +72,7 @@
*/
@PostMapping(path = "stop", consumes = MediaType.APPLICATION_JSON_VALUE)
@SsoAop()
- public BaseResponse<Object> stop(@RequestBody @Valid com.dy.pipIrrRemote.monitor.mqttSd1.stir.CdDto dto, BindingResult bindingResult) {
+ public BaseResponse<Object> stop(@RequestBody @Valid CdDto dto, BindingResult bindingResult) {
return this.send(dto, bindingResult, false) ;
}
@@ -97,7 +99,7 @@
try {
//鍒涘缓澶栭儴鍛戒护锛堝彂缁橫QTT->FBox锛�
Command com = sv.createMQTTCommand(ctrlPo.fboxId, "" + comId, Protocol, ProtocolVersion, ComCode);
- com.rtuResultSendWebUrl = rtuResultSendWebUrl;
+ com.rtuResultSendWebUrl = mqttResultSendWebUrl;
com.param = comParam ;
//鍙戦�佸懡浠�
res = super.doSend(sv, com);
@@ -123,24 +125,21 @@
}
@Override
- protected String dealComResult(String code, JSONObject resultData, Callback callback){
+ protected String dealComResult(String code, MqttSubMsg subMsg, Callback callback){
String msg;
- if(resultData != null){
- log.info(resultData.toString());
- JSONObject codeData = resultData.getJSONObject("data") ;
- if(codeData == null){
+ if(subMsg != null){
+ if(subMsg.vo4Up != null && Proxy.isProxyClass(subMsg.vo4Up.getClass())){
+ // 鑾峰彇浠g悊鐨� InvocationHandler
+ InvocationHandler handler = Proxy.getInvocationHandler(subMsg.vo4Up);
+ String json = JSON.toJSONString(handler) ;
+ ManureVo vo = JSON.parseObject(json, ManureVo.class);
+ msg = vo.toString() ;
+ }else{
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/CdCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdCtrl.java
index 9dc4801..a361d9a 100644
--- 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
@@ -1,9 +1,9 @@
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.MqttSubMsg;
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;
@@ -25,6 +25,9 @@
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Proxy;
/**
* @Author: liurunyu
@@ -98,7 +101,7 @@
try {
//鍒涘缓澶栭儴鍛戒护锛堝彂缁橫QTT->FBox锛�
Command com = sv.createMQTTCommand(ctrlPo.fboxId, "" + comId, Protocol, ProtocolVersion, ComCode);
- com.rtuResultSendWebUrl = rtuResultSendWebUrl;
+ com.rtuResultSendWebUrl = mqttResultSendWebUrl;
com.param = comParam ;
//鍙戦�佸懡浠�
res = super.doSend(sv, com);
@@ -124,24 +127,21 @@
}
@Override
- protected String dealComResult(String code, JSONObject resultData, Callback callback){
+ protected String dealComResult(String code, MqttSubMsg subMsg, Callback callback){
String msg;
- if(resultData != null){
- log.info(resultData.toString());
- JSONObject codeData = resultData.getJSONObject("data") ;
- if(codeData == null){
+ if(subMsg != null){
+ if(subMsg.vo4Up != null && Proxy.isProxyClass(subMsg.vo4Up.getClass())){
+ // 鑾峰彇浠g悊鐨� InvocationHandler
+ InvocationHandler handler = Proxy.getInvocationHandler(subMsg.vo4Up);
+ String json = JSON.toJSONString(handler) ;
+ ManureVo vo = JSON.parseObject(json, ManureVo.class);
+ msg = vo.toString() ;
+ }else{
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/CdCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdCtrl.java
index dfb2772..c3e8120 100644
--- 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
@@ -1,9 +1,9 @@
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.MqttSubMsg;
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;
@@ -12,7 +12,6 @@
import com.dy.common.webUtil.BaseResponseUtils;
import com.dy.pipIrrRemote.common.dto.Dto4MqttBase;
import com.dy.pipIrrRemote.monitor.common.Com4MqttCtrl;
-import com.dy.pipIrrRemote.monitor.mqttSd1.stir.CdDto;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
@@ -25,6 +24,9 @@
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Proxy;
/**
* @Author: liurunyu
@@ -75,7 +77,7 @@
try {
//鍒涘缓澶栭儴鍛戒护锛堝彂缁橫QTT->FBox锛�
Command com = sv.createMQTTCommand(ctrlPo.fboxId, "" + comId, Protocol, ProtocolVersion, ComCode);
- com.rtuResultSendWebUrl = rtuResultSendWebUrl;
+ com.rtuResultSendWebUrl = mqttResultSendWebUrl;
com.param = comParam ;
//鍙戦�佸懡浠�
res = super.doSend(sv, com);
@@ -101,24 +103,21 @@
}
@Override
- protected String dealComResult(String code, JSONObject resultData, Callback callback){
+ protected String dealComResult(String code, MqttSubMsg subMsg, Callback callback){
String msg;
- if(resultData != null){
- log.info(resultData.toString());
- JSONObject codeData = resultData.getJSONObject("data") ;
- if(codeData == null){
+ if(subMsg != null){
+ if(subMsg.vo4Up != null && Proxy.isProxyClass(subMsg.vo4Up.getClass())){
+ // 鑾峰彇浠g悊鐨� InvocationHandler
+ InvocationHandler handler = Proxy.getInvocationHandler(subMsg.vo4Up);
+ String json = JSON.toJSONString(handler) ;
+ ManureVo vo = JSON.parseObject(json, ManureVo.class);
+ msg = vo.toString() ;
+ }else{
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
index d80897a..491dffd 100644
--- 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
@@ -1,6 +1,7 @@
package com.dy.pipIrrRemote.monitor.mqttSd1.paramSet;
import com.dy.pipIrrRemote.common.dto.Dto4MqttBase;
+import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -13,4 +14,12 @@
@EqualsAndHashCode(callSuper=true)
public class CdDto extends Dto4MqttBase {
public static final long serialVersionUID = 202506201656001L;
+
+ // 鎼呮媽璁惧畾鏃堕棿 鍗曚綅绉�
+ @NotNull(message = "鎼呮媽璁惧畾鏃堕棿涓嶈兘涓虹┖")
+ public Integer stirDuration ;
+
+ // 娉ㄨ偉璁惧畾鏃堕棿 鍗曚綅绉�
+ @NotNull(message = "娉ㄨ偉璁惧畾鏃堕棿涓嶈兘涓虹┖")
+ public Integer injectDuration ;
}
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
index 8839c70..698f108 100644
--- 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
@@ -1,9 +1,9 @@
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.MqttSubMsg;
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;
@@ -25,6 +25,9 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Proxy;
+
/**
* @Author: liurunyu
* @Date: 2025/6/16 17:35
@@ -34,7 +37,7 @@
@Slf4j
@Tag(name = "杩滅▼鍛戒护", description = "鎼呮媽鍚仠")
@RestController("mqttSd1StirCtrl")
-@RequestMapping(path = "mqttSd1/stirCtrl")
+@RequestMapping(path = "mqttSd1/stir")
@RequiredArgsConstructor
@Scope("prototype") //鍥犱负鏈夊璞$被灞炴�э紝鎵�浠ラ噰鐢ㄥ師鍨嬫ā寮忥紝姣忔璇锋眰鏂板缓涓�涓疄渚嬪璞�
public class CdCtrl extends Com4MqttCtrl {
@@ -93,7 +96,7 @@
try {
//鍒涘缓澶栭儴鍛戒护锛堝彂缁橫QTT->FBox锛�
Command com = sv.createMQTTCommand(ctrlPo.fboxId, "" + comId, Protocol, ProtocolVersion, ComCode);
- com.rtuResultSendWebUrl = rtuResultSendWebUrl;
+ com.rtuResultSendWebUrl = mqttResultSendWebUrl;
com.param = comParam ;
//鍙戦�佸懡浠�
res = super.doSend(sv, com);
@@ -119,24 +122,21 @@
}
@Override
- protected String dealComResult(String code, JSONObject resultData, Callback callback){
+ protected String dealComResult(String code, MqttSubMsg subMsg, Callback callback){
String msg;
- if(resultData != null){
- log.info(resultData.toString());
- JSONObject codeData = resultData.getJSONObject("data") ;
- if(codeData == null){
+ if(subMsg != null){
+ if(subMsg.vo4Up != null && Proxy.isProxyClass(subMsg.vo4Up.getClass())){
+ // 鑾峰彇浠g悊鐨� InvocationHandler
+ InvocationHandler handler = Proxy.getInvocationHandler(subMsg.vo4Up);
+ String json = JSON.toJSONString(handler) ;
+ ManureVo vo = JSON.parseObject(json, ManureVo.class);
+ msg = vo.toString() ;
+ }else{
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
index 4e8aeb1..c447a8c 100644
--- 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
@@ -15,11 +15,4 @@
public class CdDto extends Dto4MqttBase {
public static final long serialVersionUID = 202506201655001L;
- // 鎼呮媽璁惧畾鏃堕棿 鍗曚綅绉�
- @NotNull(message = "鎼呮媽璁惧畾鏃堕棿涓嶈兘涓虹┖")
- public Integer stirDuration ;
-
- // 娉ㄨ偉璁惧畾鏃堕棿 鍗曚綅绉�
- @NotNull(message = "娉ㄨ偉璁惧畾鏃堕棿涓嶈兘涓虹┖")
- public Integer injectDuration ;
}
--
Gitblit v1.8.0