From 71b9ac1d2459239d2c5340b384f1536b156fc003 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期五, 20 六月 2025 08:39:50 +0800
Subject: [PATCH] 表阀一体机协议,根据王江海测试问题,进行修改完善
---
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_26_Down.java | 4 -
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.properties | 2
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd65/CdCtrl.java | 16 ++++-
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/PipIrrRemoteApplication.java | 19 ++++++
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml | 29 +++++++++
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd55/CdCtrl.java | 20 +++++-
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd5C/CdCtrl.java | 19 +++++-
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmCommandHistoryMapper.java | 8 ++
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/ComSv.java | 16 +++++
9 files changed, 118 insertions(+), 15 deletions(-)
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 29eff46..807ec32 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
@@ -61,7 +61,7 @@
throw new Exception("璁惧缁堢骞寸敤姘撮噺蹇呴』鏄�0~99999999鑼冨洿鍐呯殑鏁存暟") ;
}
- byte[] bs = new byte[14] ;
+ byte[] bs = new byte[13] ;
int index = 0 ;
bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
@@ -84,7 +84,6 @@
bs[index++] = 0 ;
}
- index ++ ;
GlCreate.createPw(bs, index);
index += 2 ;
@@ -105,6 +104,5 @@
return bytes ;
}
-
}
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
index d3a0a60..0e02366 100644
--- 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
@@ -61,6 +61,14 @@
*/
VoUnclosedParam getUncloseParam(@Param("onLineMap") String onLineMap, @Param("intakeId")Long intakeId);
+
+ /**
+ * 鏍规嵁鍙栨按鍙D鑾峰彇璇ュ彇姘村彛鏈叧闃�鍙傛暟锛屽钩鍙伴�夋嫨鍙栨按鍙e叧闃�浣跨敤
+ * @param intakeId
+ * @return
+ */
+ VoUnclosedParam getUncloseParamByCd(@Param("onLineMap") String onLineMap, @Param("intakeId")Long intakeId, @Param("code")String code);
+
/**
* 鏍规嵁鎸囧畾鏉′欢鑾峰彇鍛戒护鏃ュ織鍘嗗彶璁板綍鎬绘暟
* @param params
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml
index 25c58bc..7cd3168 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml
@@ -323,6 +323,35 @@
LIMIT 0,1
</select>
+ <!--鏍规嵁鍙栨按鍙D鑾峰彇璇ュ彇姘村彛鏈叧闃�鍙傛暟-->
+ <select id="getUncloseParamByCd" resultType="com.dy.pipIrrGlobal.voRm.VoUnclosedParam">
+ SELECT com.rtu_addr AS rtuAddr,
+ com.param ->> '$.orderNo' AS orderNo,
+ com.param ->> '$.icCardNo' AS vcNum
+ FROM rm_command_history com
+ INNER JOIN pr_controller con ON com.rtu_addr = con.rtuAddr
+ INNER JOIN pr_intake inta ON con.intakeId = inta.id
+ INNER JOIN JSON_TABLE(
+ <!-- '[{"rtuAddr":"620201000029","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',-->
+ #{onLineMap},
+ '$[*]' COLUMNS (
+ rtuAddr VARCHAR(20) PATH '$.rtuAddr',
+ isOnLine BOOLEAN PATH '$.isOnLine'
+ )
+ ) rtus ON com.rtu_addr = rtus.rtuAddr
+ WHERE com.command_code = #{code}
+ AND con.intakeId = #{intakeId}
+ AND NOT EXISTS(
+ SELECT *
+ FROM rm_command_history
+ WHERE (result IS NULL OR result = 1)
+ AND (command_code = '93' OR command_code = 'A3' OR command_code = '98')
+ AND param ->> '$.orderNo' = com.param ->> '$.orderNo'
+ )
+ ORDER BY com.send_time DESC
+ LIMIT 0,1
+ </select>
+
<!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍛戒护鏃ュ織鍘嗗彶璁板綍鎬绘暟-->
<select id="getCommandHistoriesCount" resultType="java.lang.Long">
SELECT COUNT(*) AS recordCount
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.properties b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.properties
index 3d08c73..fdad0be 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.properties
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.properties
@@ -24,7 +24,7 @@
# 鐢樺窞锛� 60103
# 鍑夊窞锛� 60104
# 閲戝窛锛� 60105
-tcp.port=60000ba_divide
+tcp.port=60000
#RTU涓婅鏁版嵁鏈�灏忛棿闅旓紝澶т簬杩欎釜闂撮殧璁や负璁惧绂荤嚎浜嗭紝娴嬫帶涓�浣撻榾鏄�3锛岃〃闃�涓�浣撴満鏄�6锛岄粯璁ら噰鐢ㄦ椂闂存渶闀跨殑6
base.upData.min.interval=6
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 9ff5fe0..d65516d 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
@@ -1,7 +1,9 @@
package com.dy.pipIrrRemote;
import com.dy.common.multiDataSource.EnableMultiDataSource;
+import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
@@ -10,7 +12,7 @@
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.scheduling.annotation.EnableScheduling;
-
+@Slf4j
@SpringBootApplication
@EnableScheduling //鍚姩瀹氭椂浠诲姟锛屾湰妯″潡websocket鍙戦�佸績璺�
@ServletComponentScan //鎵弿servlet锛屾湰妯″潡涓惎鍔╳ebsocket
@@ -40,3 +42,18 @@
}
}
+//public class PipIrrRemoteApplication implements CommandLineRunner {
+//
+// public static void main(String[] args) {
+// SpringApplication.run(PipIrrRemoteApplication.class, args);
+// }
+// //楠岃瘉log鏄惁杈撳嚭
+// @Override
+// public void run(String... args) throws Exception {
+// log.trace("Trace level log");
+// log.debug("Debug level log");
+// log.info("Info level log");
+// log.warn("Warn level log");
+// log.error("Error level log");
+// }
+//}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/ComSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/ComSv.java
index c9fc53e..b2e5864 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/ComSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/ComSv.java
@@ -93,4 +93,20 @@
jsonArr.add(jsonObj);
return rmCommandHistoryDao.getUncloseParam(jsonArr.toJSONString(), intakeId);
}
+
+ /**
+ * 鏍规嵁鍙栨按鍙D鑾峰彇璇ュ彇姘村彛鏈叧闃�鍙傛暟锛屽钩鍙伴�夋嫨鍙栨按鍙e叧闃�浣跨敤
+ * @param intakeId
+ * @param rtuAddr
+ * @param code
+ * @return
+ */
+ public VoUnclosedParam selectUncloseParamByCd(Long intakeId, String rtuAddr, String code) {
+ JSONArray jsonArr = new JSONArray();
+ JSONObject jsonObj = new JSONObject();
+ jsonObj.put("rtuAddr", rtuAddr);
+ jsonObj.put("isOnLine", true);
+ jsonArr.add(jsonObj);
+ return rmCommandHistoryDao.getUncloseParamByCd(jsonArr.toJSONString(), intakeId, code);
+ }
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd55/CdCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd55/CdCtrl.java
index 25b7859..cf37ff5 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd55/CdCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd55/CdCtrl.java
@@ -6,6 +6,7 @@
import com.dy.common.aop.SsoAop;
import com.dy.common.mw.protocol.Command;
import com.dy.common.mw.protocol.p206V202404.upVos.DataCd55Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd65Vo;
import com.dy.common.util.Callback;
import com.dy.common.webUtil.BaseResponse;
import com.dy.common.webUtil.BaseResponseUtils;
@@ -100,16 +101,26 @@
protected String dealComResult(String code, JSONObject resultData, Callback callback){
String msg;
if(resultData != null){
- JSONArray codeData = resultData.getJSONArray("data") ;
+ JSONObject codeData = resultData.getJSONObject("data") ;
+ JSONArray codeDataArray = null ;
if(codeData == null){
+ codeDataArray = resultData.getJSONArray("data") ;
+ }
+ if(codeData == null && codeDataArray == null){
msg = RtuSuccessMsg ;
}else {
- String json = codeData.toJSONString();
+ String json = null ;
+ if(codeData != null){
+ json = codeData.toJSONString() ;
+ }else if(codeDataArray != null){
+ json = codeDataArray.toJSONString() ;
+ }
List<DataCd55Vo> list = JSON.parseArray(json, DataCd55Vo.class) ;
if(list != null && list.size() > 0){
- msg = "" ;
+ msg = "\n" ;
for(DataCd55Vo cvo : list){
- msg += cvo.toStr(false) + "\n";
+ msg += cvo.toStr(false) ;
+ msg += "\n" ;
}
}else{
msg = RtuSuccessMsg ;
@@ -120,4 +131,5 @@
}
return msg;
}
+
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd5C/CdCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd5C/CdCtrl.java
index 32aeccd..7fcf6c6 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd5C/CdCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd5C/CdCtrl.java
@@ -1,9 +1,11 @@
package com.dy.pipIrrRemote.monitor.p202404V201.cd5C;
import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.dy.common.aop.SsoAop;
import com.dy.common.mw.protocol.Command;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd55Vo;
import com.dy.common.mw.protocol.p206V202404.upVos.DataCd5CVo;
import com.dy.common.util.Callback;
import com.dy.common.webUtil.BaseResponse;
@@ -100,15 +102,25 @@
String msg;
if(resultData != null){
JSONObject codeData = resultData.getJSONObject("data") ;
+ JSONArray codeDataArray = null ;
if(codeData == null){
+ codeDataArray = resultData.getJSONArray("data") ;
+ }
+ if(codeData == null && codeDataArray == null){
msg = RtuSuccessMsg ;
}else {
- String json = codeData.toJSONString();
+ String json = null ;
+ if(codeData != null){
+ json = codeData.toJSONString() ;
+ }else if(codeDataArray != null){
+ json = codeDataArray.toJSONString() ;
+ }
List<DataCd5CVo> list = JSON.parseArray(json, DataCd5CVo.class) ;
if(list != null && list.size() > 0){
- msg = "" ;
+ msg = "\n" ;
for(DataCd5CVo cvo : list){
- msg += cvo.toStr(false) + "\n";
+ msg += cvo.toStr(false) ;
+ msg += "\n" ;
}
}else{
msg = RtuSuccessMsg ;
@@ -119,4 +131,5 @@
}
return msg;
}
+
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd65/CdCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd65/CdCtrl.java
index 2cc4b34..1b1a66f 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd65/CdCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd65/CdCtrl.java
@@ -1,6 +1,7 @@
package com.dy.pipIrrRemote.monitor.p202404V201.cd65;
import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.dy.common.aop.SsoAop;
import com.dy.common.mw.protocol.Command;
@@ -22,7 +23,6 @@
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-
import java.util.List;
/**
@@ -100,15 +100,25 @@
String msg;
if(resultData != null){
JSONObject codeData = resultData.getJSONObject("data") ;
+ JSONArray codeDataArray = null ;
if(codeData == null){
+ codeDataArray = resultData.getJSONArray("data") ;
+ }
+ if(codeData == null && codeDataArray == null){
msg = RtuSuccessMsg ;
}else {
- String json = codeData.toJSONString();
+ String json = null ;
+ if(codeData != null){
+ json = codeData.toJSONString() ;
+ }else if(codeDataArray != null){
+ json = codeDataArray.toJSONString() ;
+ }
List<DataCd65Vo> list = JSON.parseArray(json, DataCd65Vo.class) ;
if(list != null && list.size() > 0){
- msg = "" ;
+ msg = "\n" ;
for(DataCd65Vo cvo : list){
msg += cvo.toStr(false) ;
+ msg += "\n" ;
}
}else{
msg = RtuSuccessMsg ;
--
Gitblit v1.8.0