From d15cae9e8d2cabf8d0f3ed41f2f88b04131f8c76 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期四, 31 七月 2025 14:18:58 +0800
Subject: [PATCH] 增加查询单个设备(RTU或FBox)是否在线的功能接口
---
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/Web2RtuMw.java | 218 +++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 190 insertions(+), 28 deletions(-)
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/Web2RtuMw.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/Web2RtuMw.java
index ab735ae..23b2675 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/Web2RtuMw.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/Web2RtuMw.java
@@ -3,9 +3,9 @@
import com.dy.common.multiDataSource.DataSourceContext;
import com.dy.common.mw.protocol.Command;
import com.dy.common.mw.protocol.CommandType;
-import com.dy.common.softUpgrade.state.UpgradeTaskVo;
import com.dy.common.webUtil.BaseResponse;
import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.pipIrrGlobal.util.OrgListenerSupport;
import org.springframework.core.env.Environment;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
@@ -14,12 +14,15 @@
import org.springframework.web.client.RestTemplate;
import org.springframework.web.util.UriComponentsBuilder;
+import java.util.Iterator;
+import java.util.Map;
+
/**
* @Author: liurunyu
* @Date: 2024/10/23 11:45
* @Description
*/
-public abstract class Web2RtuMw {
+public abstract class Web2RtuMw extends OrgListenerSupport {
/**
* pro_mw锛氬睘鎬�
* tag浠庢帶鍒跺櫒涓幏鍙�
@@ -28,55 +31,149 @@
private static final String pro_mw = "mw";
private static final String pro_url = "url";
- protected static final String ContextComSend = "/rtuMw/com/send";
+ public static final String ContextComSend = "/rtuMw/com/send";
- protected static final String ContextRtuLogFile = "/rtuMw/com/rtuLogFile";
- protected static final String ContextRtuLogText = "/rtuMw/com/rtuLogText";
+ public static final String ContextRtuLogFile = "/rtuMw/com/rtuLogFile";
+ public static final String ContextRtuLogText = "/rtuMw/com/rtuLogText";
- protected static final String ContextUgTaskSend = "/rtuMw/com/upgradeRtu";
- protected static final String ContextUgForceStop = "/rtuMw/com/ugForceStop";
+ public static final String ContextRegisterMsReceiverWebUrl = "/rtuMw/com/registerMsReceiverWebUrl";
+ public static final String ContextUgTaskSend = "/rtuMw/com/upgradeRtu";
+ public static final String ContextUgForceOver = "/rtuMw/com/ugForceOver";
/**
* 寰楀埌鍚戦�氫俊涓棿浠跺彂閫佹暟鎹殑URL
* @param env
* @return
*/
- protected String get2MwUrl(Environment env) {
+ public String get2MwUrl(Environment env) {
return env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + pro_url);
}
/**
- * 寰楀埌鍚戦�氫俊涓棿浠跺彂閫佸己鍒跺仠姝㈠崌绾х殑鍛戒护URL
+ * 寰楀埌鍚戦�氫俊涓棿浠跺彂閫佹暟鎹殑URL
* @param env
+ * @param orgTag
* @return
*/
- protected String get2MwRequestUrl(Environment env, String context) {
+ public String get2MwUrl(Environment env, String orgTag) {
+ return env.getProperty(pro_mw + "." + orgTag + "." + pro_url);
+ }
+ /**
+ * 寰楀埌鍚戦�氫俊涓棿浠跺彂閫佹暟鎹殑URL
+ * @param env
+ * @param context
+ * @return
+ */
+ public String get2MwRequestUrl(Environment env, String context) {
return get2MwUrl(env) + context;
}
-
-
/**
- * 鍚戦�氫俊涓棿浠跺彂閫乺tu杩滅▼鍗囩骇浠诲姟
- * @param restTemplate SpringBoot鐨凴estTemplate
- * @param toMwUrl 鍒伴�氫俊涓棿浠剁殑web璇锋眰Url
- * @param param 璇锋眰鍙傛暟
+ * 寰楀埌鍚戦�氫俊涓棿浠跺彂閫佹暟鎹殑URL
+ * @param env
+ * @param orgTag
+ * @param context
* @return
*/
- protected BaseResponse sendRequest2Mw(RestTemplate restTemplate, String toMwUrl, Object param) {
+ public String get2MwRequestUrl(Environment env, String orgTag, String context) {
+ return get2MwUrl(env, orgTag) + context;
+ }
+
+ /**
+ * 鍚戦�氫俊涓棿浠跺彂閫丳ost璇锋眰
+ * @param restTemplate SpringBoot鐨凴estTemplate
+ * @param toMwUrl 鍒伴�氫俊涓棿浠剁殑web璇锋眰Url
+ * @param body 鏁版嵁
+ * @return
+ */
+ public BaseResponse sendPostRequest2Mw(RestTemplate restTemplate, String toMwUrl, Object body) {
String url = UriComponentsBuilder.fromUriString(toMwUrl)
.build()
.toUriString();
HttpHeaders headers = new HttpHeaders();
- HttpEntity<?> httpEntity ;
- if(param != null){
- httpEntity = new HttpEntity<>(param, headers);
- }else{
- httpEntity = new HttpEntity<>(headers);
- }
- ResponseEntity<BaseResponse> response = null;
+ HttpEntity<?> httpEntity = new HttpEntity<>(body, headers);
+ ResponseEntity<BaseResponse> resEntity = null;
try {
// 閫氳繃Post鏂瑰紡璋冪敤鎺ュ彛
- response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, BaseResponse.class);
+ resEntity = restTemplate.exchange(url, HttpMethod.POST, httpEntity, BaseResponse.class);
} catch (Exception e) {
e.printStackTrace();
+ return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屼腑闂翠欢璋冪敤寮傚父");
+ }
+ if(resEntity == null){
+ return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屼腑闂翠欢璋冪敤寮傚父");
+ }else{
+ return resEntity.getBody();
+ }
+ }
+
+ /**
+ * 鍚戦�氫俊涓棿浠跺彂閫丟et璇锋眰
+ * @param restTemplate SpringBoot鐨凴estTemplate
+ * @param toMwUrl 鍒伴�氫俊涓棿浠剁殑web璇锋眰Url
+ * @return
+ */
+ public BaseResponse sendGetRequest2Mw(RestTemplate restTemplate, String toMwUrl) {
+ return sendGetRequest2Mw(restTemplate, toMwUrl, null);
+ }
+
+ /**
+ * 鍚戦�氫俊涓棿浠跺彂閫丟et璇锋眰
+ * @param restTemplate SpringBoot鐨凴estTemplate
+ * @param toMwUrl 鍒伴�氫俊涓棿浠剁殑web璇锋眰Url
+ * @param paramName 鍙傛暟鍚嶇О
+ * @param paramValue 鍙傛暟
+ * @return
+ */
+ public BaseResponse sendGetRequest2Mw(RestTemplate restTemplate, String toMwUrl, String paramName, String paramValue) {
+ String url = UriComponentsBuilder.fromUriString(toMwUrl)
+ .build()
+ .toUriString();
+
+ UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url) ;
+ if(paramName != null && !paramName.trim().equals("")){
+ builder.queryParam(paramName, paramValue==null?"":paramValue) ;
+ }
+ return sendGetRequest2Mw(restTemplate, builder);
+ }
+
+ /**
+ * 鍚戦�氫俊涓棿浠跺彂閫丟et璇锋眰
+ * @param restTemplate SpringBoot鐨凴estTemplate
+ * @param toMwUrl 鍒伴�氫俊涓棿浠剁殑web璇锋眰Url
+ * @param params 鍙傛暟闆嗗悎锛屽弬鏁板悕绉版槸key锛屽弬鏁版槸value
+ * @return
+ */
+ public BaseResponse sendGetRequest2Mw(RestTemplate restTemplate, String toMwUrl, Map<String, String> params) {
+ String url = UriComponentsBuilder.fromUriString(toMwUrl)
+ .build()
+ .toUriString();
+
+ UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url) ;
+ if(params != null && params.size() > 0){
+ Iterator<String> it = params.keySet().iterator() ;
+ String key ;
+ while (it.hasNext()){
+ key = it.next() ;
+ builder.queryParam(key, params.get(key)) ;
+ }
+ }
+ return sendGetRequest2Mw(restTemplate, builder);
+ }
+
+ /**
+ * 鍚戦�氫俊涓棿浠跺彂閫丟et璇锋眰
+ * @param restTemplate SpringBoot鐨凴estTemplate
+ * @param builder
+ * @return
+ */
+ public BaseResponse sendGetRequest2Mw(RestTemplate restTemplate, UriComponentsBuilder builder) {
+ ResponseEntity<BaseResponse> response;
+ try {
+ // 閫氳繃Get鏂瑰紡璋冪敤鎺ュ彛
+ response = restTemplate.exchange(builder.toUriString(),
+ HttpMethod.GET,
+ new HttpEntity<>(new HttpHeaders()),
+ BaseResponse.class);
+ } catch (Exception e) {
+ //e.printStackTrace();
return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屼腑闂翠欢璋冪敤寮傚父");
}
if(response == null){
@@ -88,10 +185,11 @@
/**
* 鍒涘缓澶栭儴鍛戒护锛堝彂缁欐帶鍒跺櫒锛�
+ * @param comId 鍛戒护ID
* @param code 鍛戒护code
* @return
*/
- protected Command createOuterCommand(String comId, String code) {
+ public Command createOuterCommand(String comId, String code) {
Command com = new Command();
com.id = comId;
com.code = code ;
@@ -100,11 +198,75 @@
}
/**
- * 鍒涘缓鍐呴儴
+ * 鍒涘缓澶栭儴鍛戒护锛堝彂缁欐帶鍒跺櫒锛�
+ * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
+ * @param comId 鍛戒护ID
* @param code 鍛戒护code
* @return
*/
- protected Command createInnerCommand(String code) {
+ public Command createOuterCommand(String rtuAddr, String comId, String code) {
+ Command com = new Command();
+ com.id = comId;
+ com.rtuAddr = rtuAddr;
+ com.code = code ;
+ com.type = CommandType.outerCommand;
+ return com ;
+ }
+
+ /**
+ * 鍒涘缓澶栭儴鍛戒护锛堝彂缁欐帶鍒跺櫒锛�
+ * @param fboxId FBox璁惧搴忓垪鍙�
+ * @param comId 鍛戒护ID
+ * @param code 鍛戒护code
+ * @return
+ */
+ public Command createMQTTCommand(String fboxId, String comId, String protocol, Short protocolVer, String code) {
+ Command com = new Command();
+ com.id = comId;
+ com.rtuAddr = fboxId;
+ com.code = code ;
+ com.protocol = protocol ;
+ com.protocolVersion = protocolVer ;
+ com.type = CommandType.mqttCommand;
+ return com ;
+ }
+
+ /**
+ * 鍒涘缓澶栭儴閫忎紶鍛戒护锛堝彂缁欐帶鍒跺櫒锛�
+ * @param comId 鍛戒护ID
+ * @param code 鍛戒护code
+ * @return
+ */
+ public Command createOuterTransparentCommand(String comId, String code) {
+ Command com = new Command();
+ com.id = comId;
+ com.code = code ;
+ com.type = CommandType.outerTransCommand;
+ return com ;
+ }
+
+ /**
+ * 鍒涘缓澶栭儴閫忎紶鍛戒护锛堝彂缁欐帶鍒跺櫒锛�
+ * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
+ * @param comId 鍛戒护ID
+ * @param code 鍛戒护code
+ * @return
+ */
+ public Command createOuterTransparentCommand(String rtuAddr, String comId, String code) {
+ Command com = new Command();
+ com.id = comId;
+ com.rtuAddr = rtuAddr;
+ com.code = code ;
+ com.type = CommandType.outerTransCommand;
+ return com ;
+ }
+
+ /**
+ * 鍒涘缓鍐呴儴鍛戒护
+ * @param code 鍛戒护code
+ * @return
+ */
+ public Command createInnerCommand(String code) {
Command com = new Command();
com.id = Command.defaultId;
com.code = code ;
--
Gitblit v1.8.0