From 0857b855609b1735a1583d69f8289a2d26950419 Mon Sep 17 00:00:00 2001
From: wuzeyu <1223318623@qq.com>
Date: 星期四, 23 五月 2024 11:34:59 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd93_A3Vo.java | 2
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml | 9
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/result/RemoteResultCode.java | 29 +
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/ValveCtrl.java | 108 ++++
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandSv.java | 51 ++
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuCtrl.java | 116 +++++
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/CodeV202404.java | 4
pipIrr-platform/pipIrr-global/src/main/resources/application-database-pj.yml | 2
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_26_Down.java | 8
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_21_Down.java | 2
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_86_Up.java | 2
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlParse.java | 5
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerCtrl.java | 2
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/dto/DTOValve.java | 48 ++
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd92_A2Vo.java | 6
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/PipIrrRemoteApplication.java | 2
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml | 199 ++++++++
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmCommandHistoryMapper.java | 27 +
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/resources/application.yml | 2
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_93_A3_Down.java | 2
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd9AVo.java | 34 +
pipIrr-platform/pipIrr-web/pipIrr-web-remote/pom.xml | 8
pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/PipIrrMwTestWebApplication.java | 2
pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml | 12
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/PipIrrSellApplication.java | 2
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/dto/DtoBase.java | 28 +
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/config/RestTemplateConfig.java | 6
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd26Vo.java | 1
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_24_Down.java | 2
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_92_A2_Up.java | 3
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/utils/RestTemplateUtils.java | 97 ++++
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_92_A2_Down.java | 4
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java | 12
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/CommandResultCtrl.java | 29 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_23_Down.java | 2
pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/CommandCtrl.java | 39 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd80_5BVo.java | 3
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/ComSupport.java | 143 ++++++
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/config/RestTemplateConfig.java | 21
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_87_Up.java | 4
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_C2_Up.java | 4
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/log4j2.yml | 2
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/config/WebListenerConfiguration.java | 68 ++
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/dto/Addr.java | 22
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmCommandHistory.java | 116 +++++
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml | 5
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerMapper.java | 7
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_9A_Up.java | 10
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/config/WebFilterConfiguration.java | 51 ++
49 files changed, 1,299 insertions(+), 64 deletions(-)
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/CodeV202404.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/CodeV202404.java
index ed18635..39686a3 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/CodeV202404.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/CodeV202404.java
@@ -29,7 +29,7 @@
public static final String cd_83 = "83" ; //閬ユ祴缁堢瀹氱偣涓婃姤
public static final String cd_84 = "84" ; //鍒峰崱寮�娉�/闃�涓婃姤
public static final String cd_85 = "85" ; //鍒峰崱鍏虫车/闃�涓婃姤
- public static final String cd_9A = "9A" ; //娓呴櫎骞寸敤姘撮噺鍜屽勾鐢ㄧ數閲�
+ public static final String cd_9A = "9A" ; //鏌ヨ骞寸敤姘撮噺
public static final String cd_26 = "26" ; //璁剧疆璁惧缁堢骞寸敤姘撮噺
public static final String cd_21 = "21" ; //璁剧疆璁惧缁堢IP鍦板潃
public static final String cd_86 = "86" ; //鏌ヨ璁惧缁堢IP鍦板潃
@@ -70,7 +70,7 @@
(code.equals(cd_83) ? "閬ユ祴缁堢瀹氱偣涓婃姤" :
(code.equals(cd_84) ? "鍒峰崱寮�娉�/闃�涓婃姤" :
(code.equals(cd_85) ? "鍒峰崱鍏虫车/闃�涓婃姤" :
- (code.equals(cd_9A) ? "娓呴櫎骞寸敤姘撮噺鍜屽勾鐢ㄧ數閲�" :
+ (code.equals(cd_9A) ? "鏌ヨ骞寸敤姘撮噺" :
(code.equals(cd_26) ? "璁剧疆璁惧缁堢骞寸敤姘撮噺" :
(code.equals(cd_21) ? "璁剧疆璁惧缁堢IP鍦板潃" :
(code.equals(cd_86) ? "鏌ヨ璁惧缁堢IP鍦板潃" :
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd26Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd26Vo.java
index 6662a05..36ae567 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd26Vo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd26Vo.java
@@ -6,6 +6,5 @@
public class ComCd26Vo {
public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
- public Integer ipChannel ;//IP閫氶亾鍙� 0x01:1閫氶亾 0x02:2閫氶亾.
public Integer maxAmountYear ;//璁惧缁堢骞寸敤姘撮噺 鍗曚綅锛歮3 鏁存暟锛屽彇鍊艰寖鍥�0~99999999
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_21_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_21_Down.java
index 1e23b06..bcacda2 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_21_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_21_Down.java
@@ -95,7 +95,7 @@
byte[] bs1 = new byte[7] ;
- index ++ ;
+ index = 0;
GlCreate.createPw(bs1, index);
index += 2 ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_23_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_23_Down.java
index 089d4d6..7ccb336 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_23_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_23_Down.java
@@ -99,7 +99,7 @@
byte[] bs1 = new byte[7] ;
- index ++ ;
+ index = 0 ;
GlCreate.createPw(bs1, index);
index += 2 ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_24_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_24_Down.java
index 9e3242f..5f46b3d 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_24_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_24_Down.java
@@ -89,7 +89,7 @@
bytes = ByteUtil.bytesMerge(bytes, bsRg) ;
byte[] bs1 = new byte[7] ;
- index ++ ;
+ index = 0 ;
GlCreate.createPw(bs1, index);
index += 2 ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_26_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_26_Down.java
index fa0f86b..41e76da 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_26_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_26_Down.java
@@ -55,23 +55,17 @@
if(cvo == null){
throw new Exception("json杞珻omCd22Vo涓簄ull") ;
}
- if(cvo.ipChannel != 1 && cvo.ipChannel !=2){
- throw new Exception("IP閫氶亾鍙峰彧鑳芥槸1鎴�2") ;
- }
if(cvo.maxAmountYear < 0 || cvo.maxAmountYear > 99999999){
throw new Exception("璁惧缁堢骞寸敤姘撮噺蹇呴』鏄�0~99999999鑼冨洿鍐呯殑鏁存暟") ;
}
- byte[] bs = new byte[15] ;
+ byte[] bs = new byte[14] ;
int index = 0 ;
bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
index ++ ;
bs[index] = cvo.projectNo.byteValue() ;
-
- index ++ ;
- bs[index] = cvo.ipChannel.byteValue() ;
index ++ ;
String strTemp = "" + cvo.maxAmountYear ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_86_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_86_Up.java
index 8427760..1387bb7 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_86_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_86_Up.java
@@ -74,7 +74,7 @@
cdData.ip = ByteUtil.bytes2String_BE(bs, index, index + ipLen - 1) ;
index += ipLen ;
- cdData.port = Integer.parseInt(ByteUtil.bytes2String_LE(bs, index, index + portLen - 1)) ;
+ cdData.port = Integer.parseInt(ByteUtil.bytes2String_BE(bs, index, index + portLen - 1)) ;
}
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_87_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_87_Up.java
index cbcbfbf..c5c4369 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_87_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_87_Up.java
@@ -73,10 +73,10 @@
short portLen = ByteUtilUnsigned.byte2Byte(bs, index) ;
index++ ;
- cdData.domain = ByteUtil.bytes2String_LE(bs, index, index + domainLen - 1) ;
+ cdData.domain = ByteUtil.bytes2String_BE(bs, index, index + domainLen - 1) ;
index += domainLen ;
- cdData.port = Integer.parseInt(ByteUtil.bytes2String_LE(bs, index, index + portLen - 1)) ;
+ cdData.port = Integer.parseInt(ByteUtil.bytes2String_BE(bs, index, index + portLen - 1)) ;
}
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_92_A2_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_92_A2_Down.java
index 1193d6b..00cebd7 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_92_A2_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_92_A2_Down.java
@@ -113,11 +113,11 @@
for(int i = 0 ; i < bTempLen; i++){
bs[index++] = bTemp[i] ;
count ++ ;
- if(count >= 4){
+ if(count >= 5){
break ;
}
}
- for(; count < 4; count++){
+ for(; count < 5; count++){
bs[index++] = 0 ;
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_92_A2_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_92_A2_Up.java
index 512934d..0fbd96e 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_92_A2_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_92_A2_Up.java
@@ -72,6 +72,9 @@
cdData.orderNo = ByteUtil.BCD2String_BE(bs, index, index + 7) ;
index += 8 ;
+ cdData.opDt = GlParse.parseRtuDt(bs, index) ;
+
+ index += 6 ;
cdData.opType = bs[index];
index ++ ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_93_A3_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_93_A3_Down.java
index f9d9796..1588e7a 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_93_A3_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_93_A3_Down.java
@@ -60,7 +60,7 @@
if(!NumUtil.isPlusIntNumber(cvo.orderNo)){
throw new Exception("璁㈠崟鍙峰繀椤绘槸16浣嶆暟瀛�") ;
}
- if(cvo.orderNo.length() != 12){
+ if(cvo.orderNo.length() != 16){
throw new Exception("璁㈠崟鍙峰繀椤绘槸16浣嶆暟瀛�") ;
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_9A_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_9A_Up.java
index ff4ef59..5bb4d97 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_9A_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_9A_Up.java
@@ -2,6 +2,7 @@
import com.dy.common.mw.protocol.*;
import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd9AVo;
import com.dy.common.mw.protocol.p206V202404.upVos.DataCdXyVo;
import com.dy.common.util.ByteUtil;
import org.apache.logging.log4j.LogManager;
@@ -53,7 +54,7 @@
*/
protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
DataV202404 dV1 = (DataV202404)data.getSubData() ;
- DataCdXyVo cdData = new DataCdXyVo(CodeV202404.getCodeName(dataCode)) ;
+ DataCd9AVo cdData = new DataCd9AVo(CodeV202404.getCodeName(dataCode)) ;
dV1.subData = cdData ;
int index = ProtocolConstantV206V202404.dataIndex ;
cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
@@ -62,12 +63,7 @@
cdData.projectNo = (int)bs[index];
index++ ;
- byte result = bs[index];
- if(result == 1){
- cdData.success = true ;
- }else{
- cdData.success = false ;
- }
+ cdData.maxAmountYear = ByteUtil.BCD2Int_LE(bs, index, index + 3) ;
}
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_C2_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_C2_Up.java
index 5eced82..d5f5326 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_C2_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_C2_Up.java
@@ -109,6 +109,10 @@
cdData.success = false ;
}
+ if(!cdData.success){
+ return ;
+ }
+
index++ ;
GlParse.parseRtuDt(bs, index);
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlParse.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlParse.java
index 82e681d..dc2abe8 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlParse.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlParse.java
@@ -312,6 +312,11 @@
index += 8 ;
cdData.startDt = GlParse.parseRtuDt(bs, index) ;
+ if(cdData.opResult == (byte)0x81){
+ //澶辫触浜嗭紝涓嬮潰灏辨病鏈夋暟鎹簡
+ return ;
+ }
+
index += 6 ;
cdData.endDt = GlParse.parseRtuDt(bs, index) ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd80_5BVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd80_5BVo.java
index 06f782a..8f685cb 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd80_5BVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd80_5BVo.java
@@ -143,6 +143,9 @@
sb.append(" 姘磋〃宸ヤ綔鐢靛帇 : ") ;
sb.append(waterMeterWorkVolt == null?"鏈煡":waterMeterWorkVolt) ;
sb.append("\n") ;
+ sb.append(" 淇″彿寮哄害 : ") ;
+ sb.append(csq == null?"鏈煡":csq) ;
+ sb.append("\n") ;
return sb.toString() + super.toString() ;
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd92_A2Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd92_A2Vo.java
index 954ffc7..928ae12 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd92_A2Vo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd92_A2Vo.java
@@ -10,6 +10,7 @@
public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
public String icCardNo ;//IC鍗$紪鍙凤紙17浣嶆暟瀛楋級
public String orderNo ;//璁㈠崟鍙凤紙16浣嶆暟瀛楋級
+ public String opDt ;//寮�娉�/闃�鏃堕棿锛坹yyy-mm-dd HH:MM:SS锛�
public Byte opType ;//寮�闃�绫诲瀷: 01:骞冲彴寮�娉�/闃� 02:鐢ㄦ埛寮�娉�/闃�
public Byte opResult ;//寮�鍚车/闃�缁撴灉: 0x00:鎴愬姛 0x81:澶辫触
@@ -34,11 +35,14 @@
sb.append(" 璁㈠崟鍙� : ") ;
sb.append(orderNo == null?"鏈煡":orderNo) ;
sb.append("\n") ;
+ sb.append(" 寮�娉�/闃�鏃堕棿 : ") ;
+ sb.append(opDt == null?"鏈煡":opDt) ;
+ sb.append("\n") ;
sb.append(" 寮�鍚车/闃�绫诲瀷 : ") ;
sb.append(opType == null?"鏈煡":(opType.byteValue() == 0x01 ? "骞冲彴":"鐢ㄦ埛")) ;
sb.append("\n") ;
sb.append(" 寮�鍚车/闃�缁撴灉 : ") ;
- sb.append(opResult == null?"鏈煡":(opResult.byteValue() == 0x00 ? "鎴愬姛":"澶辫触")) ;
+ sb.append(opResult == null?"鏈煡":(opResult.byteValue() == 0x01 ? "鎴愬姛":"澶辫触")) ;
sb.append("\n") ;
return sb.toString() ;
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd93_A3Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd93_A3Vo.java
index 0063ee0..fa96d54 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd93_A3Vo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd93_A3Vo.java
@@ -43,7 +43,7 @@
sb.append(opType == null?"鏈煡":(opType.byteValue() == 0x00 ? "鍒峰崱":(opType.byteValue() == 0x01 ? "骞冲彴":(opType.byteValue() == 0x02 ? "APP":(opType.byteValue() == 0x03 ? "闈炴硶鍗�":(opType.byteValue() == 0x04 ? "姘磋〃寮傚父":(opType.byteValue() == 0x05 ? "鐢佃〃寮傚父":(opType.byteValue() == 0x06 ? "鍓╀綑姘撮噺涓嶈冻":(opType.byteValue() == 0x07 ? "鍓╀綑閲戦涓嶈冻":(opType.byteValue() == 0x08 ? "鏃犳祦閲�":(opType.byteValue() == 0x09 ? "鎺夌數鍐嶄笂鐢�":"鏈煡"))))))))))) ;
sb.append("\n") ;
sb.append(" 鍏冲惎娉�/闃�缁撴灉 : ") ;
- sb.append(opResult == null?"鏈煡":(opResult.byteValue() == 0x00 ? "鎴愬姛":"澶辫触")) ;
+ sb.append(opResult == null?"鏈煡":(opResult.byteValue() == 0x01 ? "鎴愬姛":"澶辫触")) ;
sb.append("\n") ;
sb.append(" IC鍗″湴鍧� : ") ;
sb.append(icCardAddr == null?"鏈煡":icCardAddr) ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd9AVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd9AVo.java
new file mode 100644
index 0000000..c1c590f
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd9AVo.java
@@ -0,0 +1,34 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//鏌ヨ璁惧骞寸敤姘撮噺
+@Data
+public class DataCd9AVo {
+
+ public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+ public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+ public Integer maxAmountYear ;//璁惧缁堢骞寸敤姘撮噺 鍗曚綅锛歮3 鏁存暟锛屽彇鍊艰寖鍥�0~99999999
+
+ public String comName ;//鍛戒护鍚嶇О
+
+ public DataCd9AVo(String comName){
+ this.comName = comName ;
+ }
+
+ public String toString(){
+ StringBuffer sb = new StringBuffer() ;
+ sb.append(" " + comName + " : \n") ;
+ sb.append(" 鎺у埗鍣ㄧ被鍨� : ") ;
+ sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+ sb.append("\n") ;
+ sb.append(" 椤圭洰缂栧彿 : ") ;
+ sb.append(projectNo == null?"鏈煡":projectNo) ;
+ sb.append("\n") ;
+ sb.append(" 骞寸敤姘撮噺 : ") ;
+ sb.append(maxAmountYear == null?"鏈煡":maxAmountYear) ;
+ sb.append("\n") ;
+ return sb.toString() ;
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerMapper.java
index f9dbdc5..4c3f20a 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerMapper.java
@@ -86,4 +86,11 @@
* @return
*/
Integer deleteIntakeId(@Param("controllerId") Long controllerId);
+
+ /**
+ * 鏍规嵁鍙栨按鍙D鑾峰彇闃�鎺у櫒鍦板潃
+ * @param intakeId 鍙栨按鍙D
+ * @return 闃�鎺у櫒鍦板潃
+ */
+ String getRtuAddrByIntakeId(Long intakeId);
}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmCommandHistoryMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmCommandHistoryMapper.java
new file mode 100644
index 0000000..9e104c3
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmCommandHistoryMapper.java
@@ -0,0 +1,27 @@
+package com.dy.pipIrrGlobal.daoRm;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-05-22 14:29
+ * @LastEditTime 2024-05-22 14:29
+ * @Description
+ */
+
+@Mapper
+public interface RmCommandHistoryMapper extends BaseMapper<RmCommandHistory> {
+ int deleteByPrimaryKey(Long id);
+
+ int insert(RmCommandHistory record);
+
+ int insertSelective(RmCommandHistory record);
+
+ RmCommandHistory selectByPrimaryKey(Long id);
+
+ int updateByPrimaryKeySelective(RmCommandHistory record);
+
+ int updateByPrimaryKey(RmCommandHistory record);
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmCommandHistory.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmCommandHistory.java
new file mode 100644
index 0000000..1baa9a3
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmCommandHistory.java
@@ -0,0 +1,116 @@
+package com.dy.pipIrrGlobal.pojoRm;
+
+import com.alibaba.fastjson2.JSONObject;
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
+import com.dy.common.po.BaseEntity;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.*;
+
+import java.util.Date;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-05-21 16:53
+ * @LastEditTime 2024-05-21 16:53
+ * @Description 鍛戒护鏃ュ織瀹炰綋绫�
+ */
+/**
+ * 鍛戒护鏃ュ織琛�
+ */
+
+@TableName(value = "rm_command_history", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+public class RmCommandHistory implements BaseEntity{
+ public static final long serialVersionUID = 202401151517005L;
+
+ /**
+ * 涓婚敭
+ */
+ @JSONField(serializeUsing = ObjectWriterImplToString.class)
+ @TableId(type = IdType.INPUT)
+ private Long id;
+
+ /**
+ * 鍔熻兘鐮�
+ */
+ @JSONField(serializeUsing = ObjectWriterImplToString.class)
+ @NotBlank(message = "鍔熻兘鐮佷笉鑳戒负绌�")
+ private String commandCode;
+
+ /**
+ * 鎿嶄綔鍐呭
+ */
+ private String commandName;
+
+ /**
+ * 闃�鎺у櫒鍦板潃
+ */
+ @NotBlank(message = "闃�鎺у櫒鍦板潃涓嶈兘涓虹┖")
+ private String rtuaddr;
+
+ /**
+ * 閫氳鍗忚
+ */
+ @NotBlank(message = "閫氳鍗忚涓嶈兘涓虹┖")
+ private String protocol;
+
+ /**
+ * 鍛戒护绫诲瀷
+ */
+ @NotBlank(message = "鍛戒护绫诲瀷涓嶈兘涓虹┖")
+ private String commandType;
+
+ /**
+ * 鍥炶皟URL
+ */
+ @NotBlank(message = "鍥炶皟URL涓嶈兘涓虹┖")
+ private String callback;
+
+ /**
+ * 鍙傛暟鏁版嵁
+ */
+ @TableField(typeHandler = JacksonTypeHandler.class)
+ private JSONObject param;
+
+ /**
+ * 鍙戦�佸懡浠ゆ椂闂�
+ */
+ @NotNull(message = "鍙戦�佸懡浠ゆ椂闂翠笉鑳戒负绌�")
+ private Date sendTime;
+
+ /**
+ * 鎿嶄綔浜�
+ */
+ @JSONField(serializeUsing = ObjectWriterImplToString.class)
+ @NotNull(message = "鎿嶄綔浜轰笉鑳戒负绌�")
+ private Long operator;
+
+ /**
+ * 鍛戒护缁撴灉;0-澶辫触锛�1-鎴愬姛
+ */
+
+ private Byte result;
+
+ /**
+ * 鏀跺埌鍛戒护缁撴灉鏃堕棿
+ */
+ private Date resultTime;
+
+ /**
+ * 鍛戒护缁撴灉鍐呭
+ */
+ @TableField(typeHandler = JacksonTypeHandler.class)
+ private JSONObject resultText;
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-pj.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-pj.yml
index d08d509..22cbe00 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-pj.yml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-pj.yml
@@ -9,6 +9,8 @@
username: root
password: dysql,;.abc!@#
druid:
+ # 鏁版嵁婧愬悕绉帮細褰撳瓨鍦ㄥ涓暟鎹簮鏃讹紝璁剧疆鍚嶅瓧鍙互寰堟柟渚跨殑鏉ヨ繘琛屽尯鍒�,榛樿鑷姩鐢熸垚鍚嶇О锛屾牸寮忔槸锛�"DataSource-" + System.identityHashCode(this)
+ name: druid-mysql-pj
#閰嶇疆鍒濆鍖栧ぇ灏忋�佹渶灏忋�佹渶澶�
initialSize: 1
minIdle: 1
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml
index 07d84de..2c43ab8 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml
@@ -9,12 +9,14 @@
username: root
password: dysql,;.abc!@#
druid:
+ # 鏁版嵁婧愬悕绉帮細褰撳瓨鍦ㄥ涓暟鎹簮鏃讹紝璁剧疆鍚嶅瓧鍙互寰堟柟渚跨殑鏉ヨ繘琛屽尯鍒�,榛樿鑷姩鐢熸垚鍚嶇О锛屾牸寮忔槸锛�"DataSource-" + System.identityHashCode(this)
+ name: druid-mysql-ym
#閰嶇疆鍒濆鍖栧ぇ灏忋�佹渶灏忋�佹渶澶�
- initialSize: 1
- minIdle: 1
- maxActive: 100
- #閰嶇疆鑾峰彇杩炴帴绛夊緟瓒呮椂鐨勬椂闂达紝鍗曚綅鏄绉�
- maxWait: 6000
+ initialSize: 10
+ minIdle: 10
+ maxActive: 200
+ # 鑾峰彇杩炴帴鏃舵渶澶х瓑寰呮椂闂�,鍗曚綅姣銆傞厤缃簡maxWait涔嬪悗,缂虹渷鍚敤鍏钩閿�,骞跺彂鏁堢巼浼氭湁鎵�涓嬮檷,濡傛灉闇�瑕佸彲浠ラ�氳繃閰嶇疆useUnfairLock灞炴�т负true浣跨敤闈炲叕骞抽攣
+ maxWait: 60000
#閰嶇疆闂撮殧澶氫箙杩涜涓�娆℃娴嬶紝妫�娴嬮渶瑕佸叧闂殑绌洪棽杩炴帴锛屽崟浣嶆绉掋�� 榛樿鏄�60s锛屽お闀垮彲鑳戒細瀵艰嚧鏃犳硶鍙婃椂妫�娴嬪埌杩炴帴涓柇
timeBetweenEvictionRunsMillis: 60000
#閰嶇疆涓�涓繛鎺ュ湪杩炴帴姹犱腑鐨勬渶灏忕敓瀛樻椂闂淬�佹渶澶х敓瀛樻椂闂达紝瓒呰繃鏈�澶х敓瀛樻椂闂翠細琚Щ闄わ紝鍗曚綅姣銆�
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml
index 1c5ffbd..40f061c 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml
@@ -251,4 +251,9 @@
<select id="getBindedCount" resultType="java.lang.Integer">
SELECT COUNT(*) AS recordCount FROM pr_controller WHERE rtuAddr = (SELECT rtuAddr FROM pr_controller_tramp WHERE id = ${controllerId}) AND intakeId IS NOT NULL
</select>
+
+ <!--鏍规嵁鍙栨按鍙D鑾峰彇闃�鎺у櫒鍦板潃-->
+ <select id="getRtuAddrByIntakeId" resultType="java.lang.String">
+ SELECT rtuAddr FROM pr_controller WHERE deleted = 0 AND intakeId = #{intakeId} LIMIT 0,1
+ </select>
</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml
new file mode 100644
index 0000000..37c0c6c
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dy.pipIrrGlobal.daoRm.RmCommandHistoryMapper">
+ <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmCommandHistory">
+ <!--@mbg.generated-->
+ <!--@Table rm_command_history-->
+ <id column="id" jdbcType="BIGINT" property="id" />
+ <result column="command_code" jdbcType="VARCHAR" property="commandCode" />
+ <result column="command_name" jdbcType="VARCHAR" property="commandName" />
+ <result column="rtuAddr" jdbcType="VARCHAR" property="rtuaddr" />
+ <result column="protocol" jdbcType="VARCHAR" property="protocol" />
+ <result column="command_type" jdbcType="VARCHAR" property="commandType" />
+ <result column="callBack" jdbcType="VARCHAR" property="callback" />
+<!-- <result column="param" jdbcType="VARCHAR" property="param" />-->
+ <result column="param" property="param" jdbcType="JAVA_OBJECT" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" />
+
+ <result column="send_time" jdbcType="TIMESTAMP" property="sendTime" />
+ <result column="operator" jdbcType="BIGINT" property="operator" />
+ <result column="result" jdbcType="TINYINT" property="result" />
+ <result column="result_time" jdbcType="TIMESTAMP" property="resultTime" />
+ <result column="result_text" property="resultText" jdbcType="JAVA_OBJECT" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" />
+ </resultMap>
+ <sql id="Base_Column_List">
+ <!--@mbg.generated-->
+ id, command_code, command_name, rtuAddr, protocol, command_type, callBack, param,
+ send_time, `operator`, `result`, result_time, result_text
+ </sql>
+ <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+ <!--@mbg.generated-->
+ select
+ <include refid="Base_Column_List" />
+ from rm_command_history
+ where id = #{id,jdbcType=BIGINT}
+ </select>
+ <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+ <!--@mbg.generated-->
+ delete from rm_command_history
+ where id = #{id,jdbcType=BIGINT}
+ </delete>
+ <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmCommandHistory">
+ <!--@mbg.generated-->
+ insert into rm_command_history (id, command_code, command_name,
+ rtuAddr, protocol, command_type,
+ callBack, param, send_time,
+ `operator`, `result`, result_time,
+ result_text)
+ values (#{id,jdbcType=BIGINT}, #{commandCode,jdbcType=VARCHAR}, #{commandName,jdbcType=VARCHAR},
+ #{rtuaddr,jdbcType=VARCHAR}, #{protocol,jdbcType=VARCHAR}, #{commandType,jdbcType=VARCHAR},
+ #{callback,jdbcType=VARCHAR}, #{param,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler}, #{sendTime,jdbcType=TIMESTAMP},
+ #{operator,jdbcType=BIGINT}, #{result,jdbcType=TINYINT}, #{resultTime,jdbcType=TIMESTAMP},
+ #{resultText,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler})
+ </insert>
+ <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmCommandHistory">
+ <!--@mbg.generated-->
+ insert into rm_command_history
+ <trim prefix="(" suffix=")" suffixOverrides=",">
+ <if test="id != null">
+ id,
+ </if>
+ <if test="commandCode != null">
+ command_code,
+ </if>
+ <if test="commandName != null">
+ command_name,
+ </if>
+ <if test="rtuaddr != null">
+ rtuAddr,
+ </if>
+ <if test="protocol != null">
+ protocol,
+ </if>
+ <if test="commandType != null">
+ command_type,
+ </if>
+ <if test="callback != null">
+ callBack,
+ </if>
+ <if test="param != null">
+ param,
+ </if>
+ <if test="sendTime != null">
+ send_time,
+ </if>
+ <if test="operator != null">
+ `operator`,
+ </if>
+ <if test="result != null">
+ `result`,
+ </if>
+ <if test="resultTime != null">
+ result_time,
+ </if>
+ <if test="resultText != null">
+ result_text,
+ </if>
+ </trim>
+ <trim prefix="values (" suffix=")" suffixOverrides=",">
+ <if test="id != null">
+ #{id,jdbcType=BIGINT},
+ </if>
+ <if test="commandCode != null">
+ #{commandCode,jdbcType=VARCHAR},
+ </if>
+ <if test="commandName != null">
+ #{commandName,jdbcType=VARCHAR},
+ </if>
+ <if test="rtuaddr != null">
+ #{rtuaddr,jdbcType=VARCHAR},
+ </if>
+ <if test="protocol != null">
+ #{protocol,jdbcType=VARCHAR},
+ </if>
+ <if test="commandType != null">
+ #{commandType,jdbcType=VARCHAR},
+ </if>
+ <if test="callback != null">
+ #{callback,jdbcType=VARCHAR},
+ </if>
+ <if test="param != null">
+ #{param,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler},
+ </if>
+ <if test="sendTime != null">
+ #{sendTime,jdbcType=TIMESTAMP},
+ </if>
+ <if test="operator != null">
+ #{operator,jdbcType=BIGINT},
+ </if>
+ <if test="result != null">
+ #{result,jdbcType=TINYINT},
+ </if>
+ <if test="resultTime != null">
+ #{resultTime,jdbcType=TIMESTAMP},
+ </if>
+ <if test="resultText != null">
+ #{resultText,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler},
+ </if>
+ </trim>
+ </insert>
+ <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmCommandHistory">
+ <!--@mbg.generated-->
+ update rm_command_history
+ <set>
+ <if test="commandCode != null">
+ command_code = #{commandCode,jdbcType=VARCHAR},
+ </if>
+ <if test="commandName != null">
+ command_name = #{commandName,jdbcType=VARCHAR},
+ </if>
+ <if test="rtuaddr != null">
+ rtuAddr = #{rtuaddr,jdbcType=VARCHAR},
+ </if>
+ <if test="protocol != null">
+ protocol = #{protocol,jdbcType=VARCHAR},
+ </if>
+ <if test="commandType != null">
+ command_type = #{commandType,jdbcType=VARCHAR},
+ </if>
+ <if test="callback != null">
+ callBack = #{callback,jdbcType=VARCHAR},
+ </if>
+ <if test="param != null">
+ param = #{param,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler},
+ </if>
+ <if test="sendTime != null">
+ send_time = #{sendTime,jdbcType=TIMESTAMP},
+ </if>
+ <if test="operator != null">
+ `operator` = #{operator,jdbcType=BIGINT},
+ </if>
+ <if test="result != null">
+ `result` = #{result,jdbcType=TINYINT},
+ </if>
+ <if test="resultTime != null">
+ result_time = #{resultTime,jdbcType=TIMESTAMP},
+ </if>
+ <if test="resultText != null">
+ result_text = #{resultText,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler},
+ </if>
+ </set>
+ where id = #{id,jdbcType=BIGINT}
+ </update>
+ <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmCommandHistory">
+ <!--@mbg.generated-->
+ update rm_command_history
+ set command_code = #{commandCode,jdbcType=VARCHAR},
+ command_name = #{commandName,jdbcType=VARCHAR},
+ rtuAddr = #{rtuaddr,jdbcType=VARCHAR},
+ protocol = #{protocol,jdbcType=VARCHAR},
+ command_type = #{commandType,jdbcType=VARCHAR},
+ callBack = #{callback,jdbcType=VARCHAR},
+ param = #{param,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler},
+ send_time = #{sendTime,jdbcType=TIMESTAMP},
+ `operator` = #{operator,jdbcType=BIGINT},
+ `result` = #{result,jdbcType=TINYINT},
+ result_time = #{resultTime,jdbcType=TIMESTAMP},
+ result_text = #{resultText,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler}
+ where id = #{id,jdbcType=BIGINT}
+ </update>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml
index 9a35e83..ccde4de 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml
@@ -7,4 +7,11 @@
username: root
password: dysql,;.abc!@#
druid:
- # 璇存槑: 濡傛灉浣犳病鏈夋寚瀹歶seSSL=true ,鍚姩椤圭洰浼氭姤绾㈣鍛�, 鐜鐨勯棶棰橈紝瑕佺伒娲诲鐞�
\ No newline at end of file
+ #鏁版嵁婧愬悕绉帮細褰撳瓨鍦ㄥ涓暟鎹簮鏃讹紝璁剧疆鍚嶅瓧鍙互寰堟柟渚跨殑鏉ヨ繘琛屽尯鍒�,榛樿鑷姩鐢熸垚鍚嶇О锛屾牸寮忔槸锛�"DataSource-" + System.identityHashCode(this)
+ #name: name: druid-mysql-mw-rtu 鍗曟暟鎹簮涓嶈捣浣滅敤锛屾墍浠ユ敞閲婃帀
+ #閰嶇疆鍒濆鍖栧ぇ灏忋�佹渶灏忋�佹渶澶�
+ initialSize: 10
+ minIdle: 10
+ maxActive: 200
+ # 鑾峰彇杩炴帴鏃舵渶澶х瓑寰呮椂闂�,鍗曚綅姣銆傞厤缃簡maxWait涔嬪悗,缂虹渷鍚敤鍏钩閿�,骞跺彂鏁堢巼浼氭湁鎵�涓嬮檷,濡傛灉闇�瑕佸彲浠ラ�氳繃閰嶇疆useUnfairLock灞炴�т负true浣跨敤闈炲叕骞抽攣
+ maxWait: 60000
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/log4j2.yml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/log4j2.yml
index c2dcc3f..afbac2b 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/log4j2.yml
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/log4j2.yml
@@ -62,7 +62,7 @@
AppenderRef: #Root鐨勫瓙鑺傜偣锛岀敤鏉ユ寚瀹氳鏃ュ織杈撳嚭鍒板摢涓狝ppender.
- ref: CONSOLE #杈撳嚭鏃ュ織鏃讹紝棣栧厛鐢辨湰level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢变笂闈㈢殑Appenders.Console.ThresholdFilter.level鍒ゆ柇鏄惁杈撳嚭
- ref: ROLLING_FILE #杈撳嚭鏃ュ織鏃讹紝棣栧厛鐢辨湰level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢变笂闈㈢殑Appenders.RollingFile.ThresholdFilter.level鍒ゆ柇鏄惁杈撳嚭
- # 涓哄寘閰嶇疆鐗规畩鐨凩og绾у埆锛屾柟渚胯皟璇曪紝
+ # 涓虹被鍖呰矾寰勯厤缃壒娈婄殑Log绾у埆锛屾柟渚胯皟璇曪紝
# 涓嶅彈Loggers.Root.level闄愬埗
Logger:
- name: com.dy.pipIrrGlobal.daoBa
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/PipIrrMwTestWebApplication.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/PipIrrMwTestWebApplication.java
index 395a6ad..4fb99e3 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/PipIrrMwTestWebApplication.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/PipIrrMwTestWebApplication.java
@@ -1,9 +1,7 @@
package com.dy.pipIrrMwTestWeb;
-import com.dy.common.webUtil.BaseResponse;
import com.dy.pipIrrMwTestWeb.test.CommandCtrl;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/CommandCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/CommandCtrl.java
index ec70bf2..e121ea3 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/CommandCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/CommandCtrl.java
@@ -21,13 +21,21 @@
@GetMapping(path = "test")
public BaseResponse<String> test() {
//return this.connect() ;//杩炴帴閫氫俊涓棿浠舵祴璇�
- //return this.cdXY(CodeV202404.cd_30) ;//鍙戦�佸浐瀹氬弬鏁癤Y鐨勫懡浠�
+ //return this.cdXY(CodeV202404.cd_9C) ;//鍙戦�佸浐瀹氬弬鏁癤Y鐨勫懡浠�
//return this.cd55(1) ;
//return this.cd15() ;
//return this.cd16() ;
+ //return this.cd21() ;
//return this.cd22() ;
+ //return this.cd23() ;
+ //return this.cd24() ;
+ //return this.cd26() ;
//return this.cd31() ;
- return this.cd92() ;
+ //return this.cd86() ;
+ //return this.cd87() ;
+ //return this.cd92() ;
+ //return this.cd93() ;
+ return this.cd9C() ;
}
/**
@@ -80,8 +88,8 @@
comVo.controllerType = CommandCtrl.controllerType ;
comVo.projectNo = CommandCtrl.projectNo ;
comVo.channel = 1 ;//IP閫氶亾鍙�(鍙栧�艰寖鍥� 1銆�2).
- comVo.ip = "111.222.123.321" ;//IP锛堜緥濡� 125.235.35.89锛�
- comVo.port = 60000 ;///绔彛鍙凤紙0~65536锛�
+ comVo.ip = "8.140.180.59" ;//IP锛堜緥濡� 125.235.35.89锛�
+ comVo.port = 6001 ;///绔彛鍙凤紙0~65536锛�
return this.sendCom2Mw(this.command(CodeV202404.cd_21, comVo, null)) ;
}
@@ -90,8 +98,8 @@
ComCd22Vo comVo = new ComCd22Vo() ;
comVo.controllerType = CommandCtrl.controllerType ;
comVo.projectNo = CommandCtrl.projectNo ;
- comVo.maxAmountYear = 12345 ;//鏈轰簳骞存渶澶х敤姘撮噺鍗曚綅锛歮3 鏁存暟锛屽彇鍊艰寖鍥�0~99999999
- comVo.limitLevel = 123.4; //姘翠綅涓嬮檺 鍗曚綅锛歮 鍙栧�艰寖鍥�:0~9999.99
+ comVo.maxAmountYear = 99998888 ;//鏈轰簳骞存渶澶х敤姘撮噺鍗曚綅锛歮3 鏁存暟锛屽彇鍊艰寖鍥�0~99999999
+ comVo.limitLevel = 9978.60; //姘翠綅涓嬮檺 鍗曚綅锛歮 鍙栧�艰寖鍥�:0~9999.99
return this.sendCom2Mw(this.command(CodeV202404.cd_22, comVo, null)) ;
}
@@ -101,8 +109,8 @@
comVo.controllerType = CommandCtrl.controllerType ;
comVo.projectNo = CommandCtrl.projectNo ;
comVo.channel = 1 ;//IP閫氶亾鍙�(鍙栧�艰寖鍥� 1銆�2).
- comVo.domain = "www.baidu.com" ;//鍩熷悕锛堜緥濡� dayuyanjiuyuan.to锛夛紝鏈�澶ч暱搴�42瀛楃
- comVo.port = 60000 ;///绔彛鍙凤紙0~65536锛�
+ comVo.domain = "dayuyanjiuyuan.top" ;//鍩熷悕锛堜緥濡� dayuyanjiuyuan.top锛夛紝鏈�澶ч暱搴�42瀛楃
+ comVo.port = 6001 ;///绔彛鍙凤紙0~65536锛�
return this.sendCom2Mw(this.command(CodeV202404.cd_23, comVo, null)) ;
}
@@ -111,7 +119,7 @@
ComCd24Vo comVo = new ComCd24Vo() ;
comVo.controllerType = CommandCtrl.controllerType ;
comVo.projectNo = CommandCtrl.projectNo ;
- comVo.registerNo = "102030405060708090" ;//鍩熷悕锛堜緥濡� dayuyanjiuyuan.to锛夛紝鏈�澶ч暱搴�42瀛楃
+ comVo.registerNo = "10203040506070809000" ;//
return this.sendCom2Mw(this.command(CodeV202404.cd_24, comVo, null)) ;
}
@@ -120,8 +128,7 @@
ComCd26Vo comVo = new ComCd26Vo() ;
comVo.controllerType = CommandCtrl.controllerType ;
comVo.projectNo = CommandCtrl.projectNo ;
- comVo.ipChannel = 1 ;//IP閫氶亾鍙� 0x01:1閫氶亾 0x02:2閫氶亾.
- comVo.maxAmountYear = 123456 ;//璁惧缁堢骞寸敤姘撮噺 鍗曚綅锛歮3 鏁存暟锛屽彇鍊艰寖鍥�0~99999999
+ comVo.maxAmountYear = 200 ;//璁惧缁堢骞寸敤姘撮噺 鍗曚綅锛歮3 鏁存暟锛屽彇鍊艰寖鍥�0~99999999
return this.sendCom2Mw(this.command(CodeV202404.cd_26, comVo, null)) ;
}
@@ -208,6 +215,16 @@
return this.sendCom2Mw(this.command(CodeV202404.cd_93, comVo, null)) ;
}
+
+ //骞冲彴/APP杩滅▼鍏抽棴姘存车/闃�闂�(AFN=0x93H/AFN=0xA3H)
+ private BaseResponse cd9C(){
+ ComCd9CVo comVo = new ComCd9CVo() ;
+ comVo.controllerType = CommandCtrl.controllerType ;
+ comVo.projectNo = CommandCtrl.projectNo ;
+ comVo.icCardAddr = "04BEA5BB" ;//
+
+ return this.sendCom2Mw(this.command(CodeV202404.cd_9C, comVo, null)) ;
+ }
//骞冲彴/APP杩滅▼鍏抽棴姘存车/闃�闂�(AFN=0x93H/AFN=0xA3H)
private BaseResponse cdA3(){
ComCd93_A3Vo comVo = new ComCd93_A3Vo() ;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerCtrl.java
index c4bd05d..b5fb236 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerCtrl.java
@@ -244,4 +244,6 @@
String fileName = URLEncoder.encode(rawFileName, "UTF-8").replaceAll("\\+", "%20");
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
}
+
+
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java
index 090d07f..32ae257 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java
@@ -2,10 +2,6 @@
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
-import com.alibaba.fastjson2.JSONObject;
-import com.dy.common.mw.protocol.Command;
-import com.dy.common.webUtil.BaseResponse;
-import com.dy.common.webUtil.BaseResponseUtils;
import com.dy.common.webUtil.QueryResultVo;
import com.dy.pipIrrGlobal.daoPr.PrControllerMapper;
import com.dy.pipIrrGlobal.daoPr.PrIntakeControllerMapper;
@@ -13,24 +9,16 @@
import com.dy.pipIrrGlobal.pojoPr.PrController;
import com.dy.pipIrrGlobal.pojoPr.PrIntakeController;
import com.dy.pipIrrGlobal.voPr.VoController;
-import com.dy.pipIrrProject.result.ProjectResultCode;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.common.utils.PojoUtils;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
-import org.springframework.web.client.RestClientException;
import org.springframework.web.client.RestTemplate;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
-
-import static com.dy.common.mw.protocol.CommandType.innerCommand;
/**
* @author ZhuBaoMin
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/pom.xml b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/pom.xml
index 1363c26..a41ff4b 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/pom.xml
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/pom.xml
@@ -2,6 +2,14 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
+ <dependencies>
+ <dependency>
+ <groupId>com.dy</groupId>
+ <artifactId>pipIrr-web-project</artifactId>
+ <version>1.0.0</version>
+ <scope>compile</scope>
+ </dependency>
+ </dependencies>
<parent>
<artifactId>pipIrr-web</artifactId>
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/PipIrrRemoteApplication.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/PipIrrRemoteApplication.java
index e5bb6de..54c73f5 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/PipIrrRemoteApplication.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/PipIrrRemoteApplication.java
@@ -18,7 +18,7 @@
})
}
)
-@MapperScan(basePackages={"com.dy.pipIrrGlobal.daoBa"})
+@MapperScan(basePackages={"com.dy.pipIrrGlobal.daoRm", "com.dy.pipIrrGlobal.daoPr"})
public class PipIrrRemoteApplication {
public static void main(String[] args) {
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/ComSupport.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/ComSupport.java
new file mode 100644
index 0000000..ccba930
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/ComSupport.java
@@ -0,0 +1,143 @@
+package com.dy.pipIrrRemote.common;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.mw.protocol.Command;
+import com.dy.common.mw.protocol.CommandType;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ProtocolConstantV206V202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCdXyVo;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.client.RestTemplate;
+import org.springframework.web.util.UriComponentsBuilder;
+
+import java.util.Date;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-05-21 15:30
+ * @LastEditTime 2024-05-21 15:30
+ * @Description
+ */
+//@RequiredArgsConstructor
+public class ComSupport {
+ //@NotNull
+ //private final CommandSv commandSv;
+
+ protected static String mwUrlTest = "http://127.0.0.1:8070/rtuMw/com/test" ;
+ protected static String mwUrlSendCom = "http://127.0.0.1:8070/rtuMw/com/send" ;
+
+ //protected static String rtuAddr = "37142501020100215" ;
+ protected static String rtuResultSendWebUrl = "http://127.0.0.1:8081/remote/comRes/receive" ;
+
+ protected static String controllerType = "57" ;//鎺у埗鍣ㄧ被鍨�
+ protected static Integer projectNo = 10 ;//椤圭洰缂栫爜
+
+ protected static String icCardAddr = "04BEA5BB" ;//IC鍗″湴鍧�
+ protected static String icCardNo = "37142501020500001" ;//IC鍗$紪鍙凤紙鐢ㄦ埛鍗″簭鍒楀彿锛�
+
+ protected String protocolName = ProtocolConstantV206V202404.protocolName;
+ protected String commandTypeInner = CommandType.innerCommand;
+ protected String commandTypeOuter = CommandType.outerCommand;
+
+ @Autowired
+ private RestTemplate restTemplate;
+
+ protected ComCdXyVo comCdXyVo(){
+ ComCdXyVo comVo = new ComCdXyVo() ;
+ comVo.controllerType = controllerType ;
+ comVo.projectNo = projectNo ;
+ return comVo ;
+ }
+
+ /**
+ * 鍒涘缓鍛戒护鏃ュ織瀵硅薄
+ * @param commandCode 鍔熻兘鐮�
+ * @param rtuAddr 闃�鎺у櫒鍦板潃
+ * @param param 鍙傛暟鏁版嵁
+ * @param operator 鎿嶄綔鍛�
+ * @return 闆堕浂鏃ュ織瀵硅薄
+ */
+ protected RmCommandHistory getComHistory(String commandCode, String rtuAddr, Object param, Long operator ) {
+ RmCommandHistory rmCommandHistory = new RmCommandHistory();
+ rmCommandHistory.setCommandCode(commandCode);
+ rmCommandHistory.setCommandName(CodeV202404.getCodeName(commandCode));
+ rmCommandHistory.setRtuaddr(rtuAddr);
+ rmCommandHistory.setProtocol(protocolName);
+ rmCommandHistory.setCommandType(commandTypeOuter);
+ rmCommandHistory.setCallback(rtuResultSendWebUrl);
+ rmCommandHistory.setParam((JSONObject) JSON.toJSON(param));
+ rmCommandHistory.setSendTime(new Date());
+ rmCommandHistory.setOperator(operator);
+ return rmCommandHistory;
+ }
+
+ /**
+ * 鏋勯�犲懡浠ゅ璞�
+ * @param comId 鍛戒护ID
+ * @param commandCode 鍔熻兘鐮�
+ * @param rtuAddr RTU鍦板潃
+ * @param param 鍙傛暟鏁版嵁
+ * @return 鏋勯�犲ソ鐨勫懡浠ゅ璞�
+ */
+ protected Command command(String comId, String commandCode, String rtuAddr, Object param){
+ Command com = new Command() ;
+ com.id = comId==null?Command.defaultId:(comId.trim().equals("")?Command.defaultId:comId);
+ com.code = commandCode ;
+ com.rtuAddr = rtuAddr ;
+
+ com.protocol = protocolName;
+ com.type = commandTypeOuter;
+ com.rtuResultSendWebUrl = rtuResultSendWebUrl ;
+
+ com.param = param ;
+
+ return com ;
+ }
+
+ /**
+ * 杩炴帴閫氫俊涓棿浠舵祴璇�
+ * @return
+ */
+ protected BaseResponse sendTest(){
+ String url = UriComponentsBuilder.fromUriString(mwUrlTest)
+ .build()
+ .toUriString();
+ HttpHeaders headers = new HttpHeaders();
+ HttpEntity<?> httpEntity = new HttpEntity<>(headers);
+ ResponseEntity<BaseResponse> response = null;
+ try {
+ // 閫氳繃Get鏂瑰紡璋冪敤鎺ュ彛
+ response = restTemplate.exchange(url, HttpMethod.GET, httpEntity, BaseResponse.class);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return response.getBody();
+ }
+
+ /**
+ * 鍙戦�佸懡浠�
+ * @return
+ */
+ protected BaseResponse sendCom2Mw(Command com){
+ String url = UriComponentsBuilder.fromUriString(mwUrlSendCom)
+ .build()
+ .toUriString();
+ HttpHeaders headers = new HttpHeaders();
+ HttpEntity<Command> httpEntity = new HttpEntity<>(com, headers);
+ ResponseEntity<BaseResponse> response = null;
+ try {
+ // 閫氳繃Post鏂瑰紡璋冪敤鎺ュ彛
+ response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, BaseResponse.class);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return response.getBody();
+ }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandSv.java
new file mode 100644
index 0000000..4ce8d37
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandSv.java
@@ -0,0 +1,51 @@
+package com.dy.pipIrrRemote.common;
+
+import com.dy.pipIrrGlobal.daoPr.PrControllerMapper;
+import com.dy.pipIrrGlobal.daoRm.RmCommandHistoryMapper;
+import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-05-21 17:14
+ * @LastEditTime 2024-05-21 17:14
+ * @Description 鍛戒护鏃ュ織鏈嶅姟绫�
+ */
+
+@Slf4j
+@Service
+@RequiredArgsConstructor
+public class CommandSv {
+ private final RmCommandHistoryMapper rmCommandHistoryMapper;
+ private final PrControllerMapper prControllerMapper;
+
+ /**
+ * 鏍规嵁鍙栨按鍙D鑾峰彇闃�鎺у櫒鍦板潃
+ * @param intakeId 鍙栨按鍙D
+ * @return 闃�鎺у櫒鍦板潃
+ */
+ public String getRtuAddrByIntakeId(Long intakeId) {
+ return prControllerMapper.getRtuAddrByIntakeId(intakeId);
+ }
+
+ /**
+ * 娣诲姞鍛戒护鏃ュ織
+ * @param po 鍛戒护鏃ュ織瀵硅薄
+ * @return 瀛楃涓茬被鍨嬬殑涓婚敭
+ */
+ public String insert(RmCommandHistory po) {
+ rmCommandHistoryMapper.insert(po);
+ return (po.getId()).toString();
+ }
+
+ /**
+ * 淇敼鍛戒护鏃ュ織淇℃伅
+ * @param po 鍛戒护鏃ュ織瀵硅薄
+ * @return 褰卞搷璁板綍鏁伴噺
+ */
+ public Integer update(RmCommandHistory po) {
+ return rmCommandHistoryMapper.updateByPrimaryKeySelective(po);
+ }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/config/RestTemplateConfig.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/config/RestTemplateConfig.java
new file mode 100644
index 0000000..ede1522
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/config/RestTemplateConfig.java
@@ -0,0 +1,21 @@
+package com.dy.pipIrrRemote.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.client.RestTemplate;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-05-07 17:09
+ * @LastEditTime 2024-05-07 17:09
+ * @Description
+ */
+@Configuration
+public class RestTemplateConfig {
+
+ @Bean
+ public RestTemplate restTemplate() {
+ return new RestTemplate();
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/config/WebFilterConfiguration.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/config/WebFilterConfiguration.java
new file mode 100644
index 0000000..e0949b3
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/config/WebFilterConfiguration.java
@@ -0,0 +1,51 @@
+package com.dy.pipIrrRemote.config;
+
+import com.dy.common.webFilter.DevOfDataSourceNameSetFilter;
+import com.dy.common.webFilter.UserTokenFilter;
+import jakarta.servlet.Filter;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.web.servlet.FilterRegistrationBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-05-07 14:51
+ * @LastEditTime 2024-05-07 14:51
+ * @Description
+ */
+@Configuration
+public class WebFilterConfiguration {
+
+ @Value("${pipIrr.global.dev}")
+ public String isDevStage ;//鏄惁涓哄紑鍙戦樁娈�
+ @Value("${pipIrr.global.dsName}")
+ public String dsName ;//寮�鍙戦樁娈电殑鏁版嵁婧愬悕绉�
+
+ /**
+ * DevOfDataSourceNameSetFilter涓嶶serTokenFilter鍙兘涓�涓閰嶇疆涓婏紝
+ * 鎵�浠ヤ粬浠殑order閮芥槸1
+ */
+ private static final int order_UserTokenFilter = 1 ;//涓庝笅闈�
+ private static final int order_DevOfDataSourceNameSetFilter = 1 ;
+
+
+ @Bean
+ public FilterRegistrationBean<? extends Filter> RegFilter() {
+ FilterRegistrationBean<Filter> filterRegistrationBean = new FilterRegistrationBean<>();
+ if(this.isDevStage != null && !this.isDevStage.trim().equals("") && this.isDevStage.trim().equalsIgnoreCase("true")){
+ filterRegistrationBean.setFilter(new DevOfDataSourceNameSetFilter());
+ filterRegistrationBean.addUrlPatterns("/*");//閰嶇疆杩囨护瑙勫垯
+ filterRegistrationBean.addInitParameter("dataSourceName",dsName);//璁剧疆init鍙傛暟
+ filterRegistrationBean.setName("DevOfDataSourceNameSetFilter");//璁剧疆杩囨护鍣ㄥ悕绉�
+ filterRegistrationBean.setOrder(order_DevOfDataSourceNameSetFilter);//鎵ц娆″簭
+ }else{
+ filterRegistrationBean.setFilter(new UserTokenFilter());
+ filterRegistrationBean.addUrlPatterns("/*");//閰嶇疆杩囨护瑙勫垯
+ filterRegistrationBean.setName("UserTokenFilter");//璁剧疆杩囨护鍣ㄥ悕绉�
+ filterRegistrationBean.setOrder(order_UserTokenFilter);//鎵ц娆″簭
+ }
+ return filterRegistrationBean;
+ }
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/config/WebListenerConfiguration.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/config/WebListenerConfiguration.java
new file mode 100644
index 0000000..3c04122
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/config/WebListenerConfiguration.java
@@ -0,0 +1,68 @@
+package com.dy.pipIrrRemote.config;
+
+import com.dy.common.webListener.GenerateIdSetSuffixListener;
+import jakarta.servlet.ServletContextListener;
+import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-05-07 14:52
+ * @LastEditTime 2024-05-07 14:52
+ * @Description
+ */
+@Configuration
+public class WebListenerConfiguration {
+
+ /**
+ * 鍚姩椤哄簭
+ */
+ //private static final int order_config = 0 ;
+ private static final int order_idSetSuffix = 1 ;
+ //private static final int order_init = 2 ;
+
+ /*
+ * 瑙f瀽鍚勭***.config閰嶇疆鐨凜onfigListener锛屾殏鏃朵笉閲囩敤姝ょ閰嶇疆鏂瑰紡
+ *
+ @Bean
+ public ConfigListener getGlConfigListener(){
+ return new ConfigListener() ;
+ }
+ /**
+ * 澶栭儴鎻愪緵Listener
+ * @param listener 澶栭儴鎻愪緵Listener
+ * @return 娉ㄥ唽Bean
+ @Bean
+ public ServletListenerRegistrationBean<? extends ServletContextListener> regConfigListener(ConfigListener listener) {
+ ServletListenerRegistrationBean<ConfigListener> listenerRegistrationBean = new ServletListenerRegistrationBean<>();
+ listenerRegistrationBean.setListener(listener);
+ listenerRegistrationBean.setOrder(order_config);
+ return listenerRegistrationBean;
+ }
+ */
+
+ /**
+ * 鍐呴儴鎻愪緵listener锛岃listener鍦ㄧ郴缁熷惎鍔ㄦ椂锛屾牴鎹厤缃� 璁剧疆ID浜х敓鍣ㄧ殑鍚庣紑
+ * @return 娉ㄥ唽Bean
+ */
+ @Bean
+ public ServletListenerRegistrationBean<? extends ServletContextListener> regSsoListener() {
+ ServletListenerRegistrationBean<GenerateIdSetSuffixListener> listenerRegistrationBean = new ServletListenerRegistrationBean<>();
+ listenerRegistrationBean.setListener(new GenerateIdSetSuffixListener());
+ listenerRegistrationBean.setOrder(order_idSetSuffix);
+ return listenerRegistrationBean;
+ }
+
+// /**
+// * 鍐呴儴鎻愪緵listener锛岃listener鍦ㄧ郴缁熷惎鍔ㄦ椂锛屽垵濮嬪寲鏁版嵁搴撴暟鎹�
+// * @return 娉ㄥ唽Bean
+// */
+// @Bean
+// public ServletListenerRegistrationBean<? extends ServletContextListener> regInitListener() {
+// ServletListenerRegistrationBean<InitListener> listenerRegistrationBean = new ServletListenerRegistrationBean<>();
+// listenerRegistrationBean.setListener(new InitListener());
+// listenerRegistrationBean.setOrder(order_init);
+// return listenerRegistrationBean;
+// }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/result/RemoteResultCode.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/result/RemoteResultCode.java
new file mode 100644
index 0000000..b6ccda8
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/result/RemoteResultCode.java
@@ -0,0 +1,29 @@
+package com.dy.pipIrrRemote.result;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-05-07 14:54
+ * @LastEditTime 2024-05-07 14:54
+ * @Description
+ */
+@Getter
+@AllArgsConstructor
+public enum RemoteResultCode {
+ /**
+ * 杩滅▼鎿嶄綔
+ */
+ DIVIDE_FAIL(10001, "鍒嗘按鎴挎坊鍔犲け璐�"),
+ DELETE_DIVIDE_FAIL(10001, "鍒嗘按鎴垮垹闄ゅけ璐�"),
+ NO_DIVIDES(10001, "鏃犵鍚堟潯浠剁殑鍒嗘按鎴胯褰�"),
+
+ /**
+ * RTU
+ */
+ RTU_ADDR_CANNOT_BE_NULL(20001, "闃�鎺у櫒鍦板潃涓嶈兘涓虹┖");
+
+ private final Integer code;
+ private final String message;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/CommandResultCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/CommandResultCtrl.java
new file mode 100644
index 0000000..4e605a7
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/CommandResultCtrl.java
@@ -0,0 +1,29 @@
+package com.dy.pipIrrRemote.rtu;
+
+import com.dy.common.mw.protocol.Data;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+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;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-05-23 8:19
+ * @LastEditTime 2024-05-23 8:19
+ * @Description
+ */
+
+@Slf4j
+@RestController
+@RequestMapping(path="comRes")
+public class CommandResultCtrl {
+ @PostMapping(path = "receive", consumes = MediaType.APPLICATION_JSON_VALUE)
+ public BaseResponse<String> receive(@RequestBody Data data) {
+ log.info(data.toString()) ;
+ return BaseResponseUtils.buildSuccess("ok");
+ }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuCtrl.java
new file mode 100644
index 0000000..32f9a91
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuCtrl.java
@@ -0,0 +1,116 @@
+package com.dy.pipIrrRemote.rtu;
+
+import com.dy.common.aop.SsoAop;
+import com.dy.common.mw.protocol.Command;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd10Vo;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCdXyVo;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory;
+import com.dy.pipIrrRemote.common.ComSupport;
+import com.dy.pipIrrRemote.common.CommandSv;
+import com.dy.pipIrrRemote.result.RemoteResultCode;
+import com.dy.pipIrrRemote.rtu.dto.Addr;
+import com.dy.pipIrrRemote.rtu.dto.DtoBase;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.MediaType;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.BindingResult;
+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.Objects;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-05-21 14:31
+ * @LastEditTime 2024-05-21 14:31
+ * @Description 璁惧缁堢鎺у埗绫�
+ */
+
+@Slf4j
+@RestController
+@RequestMapping(path="rtu")
+@RequiredArgsConstructor
+public class RtuCtrl extends ComSupport {
+ private final CommandSv commandSv;
+
+ protected static String controllerType = "57";
+
+ /**
+ * 璁剧疆璁惧缁堢鍦板潃
+ * @param addr 璁剧疆璁惧缁堢鍦板潃浼犲叆瀵硅薄
+ * @param bindingResult
+ * @return
+ */
+ @PostMapping(path = "set_addr", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @Transactional(rollbackFor = Exception.class)
+ @SsoAop()
+ public BaseResponse<Boolean> setAddr(@RequestBody @Valid Addr addr, BindingResult bindingResult) {
+ if(bindingResult != null && bindingResult.hasErrors()){
+ return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+ }
+
+ String commandCode = CodeV202404.cd_10;
+ Long intakeId = addr.getIntakeId();
+ String newRtuAddr = addr.getNewRtuAddr();
+ Long operator = addr.getOperator();
+
+ // 鍙栨按鍙D鎹㈤榾鎺у櫒鍦板潃
+ String rtuAddr = commandSv.getRtuAddrByIntakeId(intakeId);
+ if(rtuAddr == null || rtuAddr.length() == 0) {
+ return BaseResponseUtils.buildError(RemoteResultCode.RTU_ADDR_CANNOT_BE_NULL.getMessage());
+ }
+
+ // 鍒涘缓瑙嗗浘
+ ComCd10Vo param = new ComCd10Vo() ;
+ param.controllerType = controllerType;
+ param.projectNo = Integer.parseInt(commandCode);
+ param.rtuNewAddr = newRtuAddr;
+
+ // 鍒涘缓鍛戒护鏃ュ織瀵硅薄骞舵坊鍔犲埌鏁版嵁搴撲腑
+ RmCommandHistory rmCommandHistory = getComHistory(commandCode, rtuAddr, param, operator);
+ String comId = commandSv.insert(rmCommandHistory);
+
+ // 鏋勯�犲懡浠�
+ Command com = command(comId, commandCode, rtuAddr, param);
+ return sendCom2Mw(com);
+ }
+
+ @PostMapping(path = "clear_usage_record", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @Transactional(rollbackFor = Exception.class)
+ @SsoAop()
+ public BaseResponse<Boolean> clearUsageRecord(@RequestBody @Valid DtoBase po, BindingResult bindingResult) {
+ if(bindingResult != null && bindingResult.hasErrors()){
+ return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+ }
+
+ String commandCode = CodeV202404.cd_97;
+ Long intakeId = po.getIntakeId();
+ Long operator = po.getOperator();
+
+ // 鍙栨按鍙D鎹㈤榾鎺у櫒鍦板潃
+ String rtuAddr = commandSv.getRtuAddrByIntakeId(intakeId);
+ if(rtuAddr == null || rtuAddr.length() == 0) {
+ return BaseResponseUtils.buildError(RemoteResultCode.RTU_ADDR_CANNOT_BE_NULL.getMessage());
+ }
+
+ // 鍒涘缓瑙嗗浘
+ ComCdXyVo param = new ComCdXyVo();
+ param.controllerType = controllerType;
+ param.projectNo = Integer.parseInt(commandCode);
+
+ // 鍒涘缓鍛戒护鏃ュ織瀵硅薄骞舵坊鍔犲埌鏁版嵁搴撲腑
+ RmCommandHistory rmCommandHistory = getComHistory(commandCode, rtuAddr, param, operator);
+ String comId = commandSv.insert(rmCommandHistory);
+
+ // 鏋勯�犲懡浠�
+ Command com = command(comId, commandCode, rtuAddr, param);
+ return sendCom2Mw(com);
+ }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/dto/Addr.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/dto/Addr.java
new file mode 100644
index 0000000..561d13a
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/dto/Addr.java
@@ -0,0 +1,22 @@
+package com.dy.pipIrrRemote.rtu.dto;
+
+import jakarta.validation.constraints.NotBlank;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-05-22 16:56
+ * @LastEditTime 2024-05-22 16:56
+ * @Description
+ */
+
+@Data
+public class Addr extends DtoBase {
+ public static final long serialVersionUID = 202405221656001L;
+
+ /**
+ * 鏂扮殑闃�鎺у櫒鍦板潃
+ */
+ @NotBlank(message = "鏂扮殑闃�鎺у櫒鍦板潃涓嶈兘涓虹┖")
+ private String newRtuAddr;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/dto/DtoBase.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/dto/DtoBase.java
new file mode 100644
index 0000000..6f05d1f
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/dto/DtoBase.java
@@ -0,0 +1,28 @@
+package com.dy.pipIrrRemote.rtu.dto;
+
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-05-22 16:54
+ * @LastEditTime 2024-05-22 16:54
+ * @Description
+ */
+
+@Data
+public class DtoBase {
+ public static final long serialVersionUID = 202405221655001L;
+
+ /**
+ * 鍙栨按鍙D
+ */
+ @NotNull(message = "鍙栨按鍙d笉鑳戒负绌�")
+ private Long intakeId;
+
+ /**
+ * 鎿嶄綔浜�
+ */
+ @NotNull(message = "鎿嶄綔浜轰笉鑳戒负绌�")
+ private Long operator;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/utils/RestTemplateUtils.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/utils/RestTemplateUtils.java
new file mode 100644
index 0000000..31deb69
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/utils/RestTemplateUtils.java
@@ -0,0 +1,97 @@
+package com.dy.pipIrrRemote.utils;
+
+import com.alibaba.fastjson2.JSONObject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.*;
+import org.springframework.stereotype.Component;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.client.RestTemplate;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-05-07 17:07
+ * @LastEditTime 2024-05-07 17:07
+ * @Description
+ */
+@Component
+public class RestTemplateUtils {
+
+ @Autowired
+ private RestTemplate restTemplate;
+
+ public JSONObject get(String url, Map<String, Object> queryParams) throws IOException {
+ return get(url, queryParams, new HashMap<>(1));
+ }
+
+ public JSONObject get(String url, Map<String, Object> queryParams, Map<String, String> headerParams) throws IOException {
+ String tempUrl = setParamsByAppendUrl(queryParams, url);
+ HttpHeaders headers = new HttpHeaders();
+ headerParams.forEach(headers::add);
+ HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<>(null, headers);
+ ResponseEntity<String> response = restTemplate.exchange(tempUrl, HttpMethod.GET, httpEntity, String.class);
+ return JSONObject.parseObject(response.getBody());
+ }
+
+ public JSONObject get2(String url, Map<String, Object> queryParams, Map<String, String> headerParams) throws IOException {
+ String tempUrl = setParamsByPath(queryParams, url);
+ HttpHeaders headers = new HttpHeaders();
+ headerParams.forEach(headers::add);
+ HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<>(null, headers);
+ ResponseEntity<String> response = restTemplate.exchange(tempUrl, HttpMethod.GET, httpEntity, String.class, queryParams);
+ return JSONObject.parseObject(response.getBody());
+ }
+
+ public JSONObject post(String url, String json, Map<String, String> headerParams) {
+ HttpHeaders headers = new HttpHeaders();
+ headerParams.forEach(headers::add);
+ headers.setContentType(MediaType.APPLICATION_JSON);
+ headers.add("Accept", MediaType.APPLICATION_JSON.toString());
+ HttpEntity<String> httpEntity = new HttpEntity<>(json, headers);
+ ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class);
+ return JSONObject.parseObject(response.getBody());
+ }
+
+ private String setParamsByPath(Map<String, Object> queryParams, String url) {
+ // url?id={id}&name={name}
+ if (queryParams == null || queryParams.isEmpty()) {
+ return url;
+ }
+ StringBuilder sb = new StringBuilder();
+ try {
+ for (Map.Entry<String, Object> entry : queryParams.entrySet()) {
+ sb.append("&").append(entry.getKey()).append("=").append("{").append(entry.getKey()).append("}");
+ }
+ if (!url.contains("?")) {
+ sb.deleteCharAt(0).insert(0, "?");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return url + sb;
+ }
+
+ private String setParamsByAppendUrl(Map<String, Object> queryParams, String url) {
+ // url?id=1&name=zzc
+ if (queryParams == null || queryParams.isEmpty()) {
+ return url;
+ }
+ StringBuilder sb = new StringBuilder();
+ try {
+ for (Map.Entry<String, Object> entry : queryParams.entrySet()) {
+ sb.append("&").append(entry.getKey()).append("=");
+ sb.append(entry.getValue());
+ }
+ if (!url.contains("?")) {
+ sb.deleteCharAt(0).insert(0, "?");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return url + sb;
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/ValveCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/ValveCtrl.java
new file mode 100644
index 0000000..e986f2e
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/ValveCtrl.java
@@ -0,0 +1,108 @@
+package com.dy.pipIrrRemote.valve;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.aop.SsoAop;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.common.webUtil.ResultCodeMsg;
+import com.dy.pipIrrRemote.utils.RestTemplateUtils;
+import com.dy.pipIrrRemote.valve.dto.DTOValve;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.responses.ApiResponses;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.MediaType;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-05-07 14:59
+ * @LastEditTime 2024-05-07 14:59
+ * @Description
+ */
+
+@Slf4j
+@Tag(name = "鍒嗘按鎴跨鐞�", description = "鍒嗘按鎴挎搷浣�")
+@RestController
+@RequestMapping(path="valve")
+@RequiredArgsConstructor
+public class ValveCtrl {
+ private final RestTemplateUtils restTemplateUtils;
+
+ private CompletableFuture<String> futureValue = new CompletableFuture<>();
+
+ /**
+ * 杩滅▼寮�鍏抽榾
+ * @param po 寮�鍏抽榾浼犲叆瀵硅薄
+ * @param bindingResult
+ * @return
+ */
+ @Operation(summary = "杩滅▼寮�鍏抽榾", description = "杩滅▼寮�鍏抽榾")
+ @ApiResponses(value = {
+ @ApiResponse(
+ responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+ description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝false锛氬け璐ワ紙BaseResponse.content锛�",
+ content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+ schema = @Schema(implementation = Boolean.class))}
+ )
+ })
+ @PostMapping(path = "operate", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @Transactional(rollbackFor = Exception.class)
+ @SsoAop()
+ public BaseResponse<Boolean> open(@RequestBody @Valid DTOValve po, BindingResult bindingResult) throws ExecutionException, InterruptedException {
+ if(bindingResult != null && bindingResult.hasErrors()){
+ return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+ }
+
+ String a = null;
+ try {
+ a = futureValue.get(10, TimeUnit.SECONDS);
+ } catch (TimeoutException e) {
+ return BaseResponseUtils.buildFail("1鍒嗛挓鍚庡幓鏌ョ湅缁撴灉");
+ }
+ futureValue = new CompletableFuture<>();
+
+ Map<String, Object> param = new HashMap<>();
+ param.put("controllerType", "01");
+ param.put("projectNo", 100);
+ param.put("rtuNewAddr", "202405061656120001");
+
+ Map<String, Object> postParams = new HashMap<>();
+ postParams.put("id", 2024050616450001L);
+ postParams.put("protocol", "p1");
+ postParams.put("rtuAddr", "20001");
+ postParams.put("type", "outerCommand");
+ postParams.put("code", "10");
+ postParams.put("noRtMwDealRes", false);
+ postParams.put("rtuResultSendWebUrl", "127.0.0.1/remote/");
+ postParams.put("param", param);
+
+ Map<String, String> headerParams = new HashMap<>();
+
+ JSONObject job_result = restTemplateUtils.post("http://localhost:8070/accMw/com/send", JSON.toJSONString(postParams), headerParams);
+
+ return BaseResponseUtils.buildSuccess(a) ;
+ }
+
+ @GetMapping("/setValue")
+ public String setValue(String name) {
+ futureValue.complete(name);
+ return "Value set";
+ }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/dto/DTOValve.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/dto/DTOValve.java
new file mode 100644
index 0000000..0f4f645
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/dto/DTOValve.java
@@ -0,0 +1,48 @@
+package com.dy.pipIrrRemote.valve.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+import org.hibernate.validator.constraints.Range;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-05-07 15:05
+ * @LastEditTime 2024-05-07 15:05
+ * @Description 杩滅▼寮�闃�銆佽繙绋嬪叧闃�浼犲叆瀵硅薄
+ */
+
+@Data
+@Schema(name = "寮�鍏抽榾浼犲叆瀵硅薄")
+public class DTOValve {
+ public static final long serialVersionUID = 202405071506001L;
+
+ /**
+ * 鍙栨按鍙D
+ */
+ @Schema(description = "鍙栨按鍙D", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @NotNull(message = "鍙栨按鍙d笉鑳戒负绌�")
+ private Long intakeId;
+
+ /**
+ * 铏氭嫙鍗D
+ */
+ @Schema(description = "铏氭嫙鍗D", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @NotNull(message = "铏氭嫙鍗′笉鑳戒负绌�")
+ private Long vcId;
+
+ /**
+ * 鎿嶄綔绫诲瀷锛�1-寮�闃�锛�2-鍏抽榾
+ */
+ @Schema(description = "鎿嶄綔绫诲瀷", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @NotNull(message = "鎿嶄綔绫诲瀷涓嶈兘涓虹┖")
+ @Range(min = 1, max = 2)
+ private Integer operateType;
+
+ /**
+ * 鎿嶄綔浜�
+ */
+ @Schema(description = "鎿嶄綔浜�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ @NotNull(message = "鎿嶄綔浜轰笉鑳戒负绌�")
+ private Long operator;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/resources/application.yml b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/resources/application.yml
index 9627a3d..a3e69d7 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/resources/application.yml
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/resources/application.yml
@@ -6,7 +6,7 @@
management:
server:
port: ${pipIrr.remote.actutorPort}
-#web鏈嶅姟绔彛锛宼omcat榛樿鏄�8080
+#web鏈嶅姟绔彛锛宼omcat榛樿鏄�8081
server:
port: ${pipIrr.remote.webPort}
servlet:
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/PipIrrSellApplication.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/PipIrrSellApplication.java
index 45e2f21..ab6a5cc 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/PipIrrSellApplication.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/PipIrrSellApplication.java
@@ -35,6 +35,4 @@
}
-
-
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/config/RestTemplateConfig.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/config/RestTemplateConfig.java
index cb8956b..58cefe3 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/config/RestTemplateConfig.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/config/RestTemplateConfig.java
@@ -42,4 +42,10 @@
return restTemplate;
}
+
+ //绠�鍗昍estTemplate瀹炰緥
+ @Bean
+ public RestTemplate simpleRestTemplate() {
+ return new RestTemplate();
+ }
}
\ No newline at end of file
--
Gitblit v1.8.0