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/paramSet/CdCtrl.java |   47 ++++++++++++++++++++++++-----------------------
 1 files changed, 24 insertions(+), 23 deletions(-)

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 b74db25..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;
@@ -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
@@ -32,9 +35,9 @@
  */
 
 @Slf4j
-@Tag(name = "杩滅▼鍛戒护", description = "娓呴櫎鏁呴殰")
+@Tag(name = "杩滅▼鍛戒护", description = "璁剧疆鍙傛暟")
 @RestController("mqttSd1ParamCtrl")
-@RequestMapping(path = "mqttSd1/paramCtrl")
+@RequestMapping(path = "mqttSd1/param")
 @RequiredArgsConstructor
 @Scope("prototype") //鍥犱负鏈夊璞$被灞炴�э紝鎵�浠ラ噰鐢ㄥ師鍨嬫ā寮忥紝姣忔璇锋眰鏂板缓涓�涓疄渚嬪璞�
 public class CdCtrl extends Com4MqttCtrl {
@@ -48,15 +51,16 @@
 
     @Autowired
     private CdSv sv ;
+
     /**
      * 鍚戣澶囷紙Mqtt涓棿浠�->FBox锛夊彂閫佸懡浠�
      * @param dto 鍓嶇鍙戞潵鐨勫�煎璞�
      * @param bindingResult 瀵筪to楠岃瘉鐨勭粨鏋�
      * @return 杩斿洖鍓嶇
      */
-    @PostMapping(path = "send", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @PostMapping(path = "set", consumes = MediaType.APPLICATION_JSON_VALUE)
     @SsoAop()
-    public BaseResponse<Object> send(@RequestBody @Valid CdDto dto, BindingResult bindingResult) {
+    public BaseResponse<Object> set(@RequestBody @Valid CdDto dto, BindingResult bindingResult) {
         BaseResponse<Object> res ;
         //鍙戦�佸懡浠ゅ墠-1锛氶獙璇�
         res = super.pre1(sv, ComCode, dto, bindingResult);
@@ -65,15 +69,15 @@
             res = super.pre2(sv, Protocol, ProtocolVersion, ComCode, dto, bindingResult);
             if (res == null) {
                 //鍙戦�佸懡浠ゅ墠-3锛氫繚瀛樺懡浠ゆ棩蹇�
-                CdParam comParam = CdParam.builder().commandCode(ComCode).build();
+                CdParam comParam = CdParam.builder().no(ctrlPo.no).injectDuration(dto.injectDuration).stirDuration(dto.stirDuration).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;
+                        //鍒涘缓澶栭儴鍛戒护锛堝彂缁橫QTT->FBox锛�
+                        Command com = sv.createMQTTCommand(ctrlPo.fboxId, "" + comId, Protocol, ProtocolVersion, ComCode);
+                        com.rtuResultSendWebUrl = mqttResultSendWebUrl;
                         com.param = comParam ;
                         //鍙戦�佸懡浠�
                         res = super.doSend(sv, com);
@@ -99,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;
-    }}
+    }
+}

--
Gitblit v1.8.0