From 85f4fbf75505c35a4d0e53515ffb3affb6fd95f2 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期四, 31 七月 2025 14:29:02 +0800
Subject: [PATCH] 增加查询单个设备(RTU或FBox)是否在线的功能接口
---
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdCtrl.java | 69 +++++++++++++++++++++++-----------
1 files changed, 46 insertions(+), 23 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 74ac28b..1becb43 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;
@@ -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("mqttSd1InjectCtrl")
-@RequestMapping(path = "mqttSd1/injectCtrl")
+@RequestMapping(path = "mqttSd1/inject")
@RequiredArgsConstructor
@Scope("prototype") //鍥犱负鏈夊璞$被灞炴�э紝鎵�浠ラ噰鐢ㄥ師鍨嬫ā寮忥紝姣忔璇锋眰鏂板缓涓�涓疄渚嬪璞�
public class CdCtrl extends Com4MqttCtrl {
@@ -48,15 +51,38 @@
@Autowired
private CdSv sv ;
+
/**
* 鍚戣澶囷紙Mqtt涓棿浠�->FBox锛夊彂閫佸懡浠�
* @param dto 鍓嶇鍙戞潵鐨勫�煎璞�
* @param bindingResult 瀵筪to楠岃瘉鐨勭粨鏋�
* @return 杩斿洖鍓嶇
*/
- @PostMapping(path = "send", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @PostMapping(path = "start", consumes = MediaType.APPLICATION_JSON_VALUE)
@SsoAop()
- public BaseResponse<Object> send(@RequestBody @Valid CdDto dto, BindingResult bindingResult) {
+ public BaseResponse<Object> start(@RequestBody @Valid CdDto dto, BindingResult bindingResult) {
+ return this.send(dto, bindingResult, true) ;
+ }
+
+ /**
+ * 鍚戣澶囷紙Mqtt涓棿浠�->FBox锛夊彂閫佸懡浠�
+ * @param dto 鍓嶇鍙戞潵鐨勫�煎璞�
+ * @param bindingResult 瀵筪to楠岃瘉鐨勭粨鏋�
+ * @return 杩斿洖鍓嶇
+ */
+ @PostMapping(path = "stop", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @SsoAop()
+ public BaseResponse<Object> stop(@RequestBody @Valid CdDto dto, BindingResult bindingResult) {
+ return this.send(dto, bindingResult, false) ;
+ }
+
+ /**
+ * 鍚戣澶囷紙Mqtt涓棿浠�->FBox锛夊彂閫佸懡浠�
+ * @param dto 鍓嶇鍙戞潵鐨勫�煎璞�
+ * @param bindingResult 瀵筪to楠岃瘉鐨勭粨鏋�
+ * @return 杩斿洖鍓嶇
+ */
+ private BaseResponse<Object> send(CdDto dto, BindingResult bindingResult, boolean startTrueStopFalse) {
BaseResponse<Object> res ;
//鍙戦�佸懡浠ゅ墠-1锛氶獙璇�
res = super.pre1(sv, ComCode, dto, bindingResult);
@@ -65,15 +91,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).startTrueStopFalse(startTrueStopFalse).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 +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