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-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdCtrl.java |   37 ++++++++++++++++++-------------------
 1 files changed, 18 insertions(+), 19 deletions(-)

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;
-    }}
+    }
+}

--
Gitblit v1.8.0