From 8ca2d2b49dccc417baad02c003eb7d9ae7dacc56 Mon Sep 17 00:00:00 2001
From: wuzeyu <1223318623@qq.com>
Date: 星期五, 26 七月 2024 15:49:53 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV
---
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_99_Down.java | 15
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A1_Up.java | 73 +++
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A0_Up.java | 6
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/ValveCtrl.java | 58 ++
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_99_Up.java | 6
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A1_Down.java | 214 +++++++++++
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java | 57 ++
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportLastMapper.xml | 2
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A2_Up.java | 73 +++
pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/CommandP206V1_0_0Ctrl.java | 137 ++++--
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_84_Up.java | 2
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A0_Down.java | 17
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/dto/AutomaticClose.java | 18
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCdA1Vo.java | 41 ++
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCdA2Vo.java | 41 ++
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/ComA1Vo.java | 23 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/ComA2Vo.java | 22 +
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml | 23 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A2_Down.java | 221 +++++++++++
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/dto/AutomaticClose.java | 18
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CodeV1_0_1.java | 6
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportHistoryMapper.xml | 2
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCd84Vo.java | 2
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoWork.java | 2
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoOpenCloseValve.java | 6
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_83_Up.java | 20
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml | 23 +
pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml | 2
28 files changed, 977 insertions(+), 153 deletions(-)
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CodeV1_0_1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CodeV1_0_1.java
index 029060c..9f3b91f 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CodeV1_0_1.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CodeV1_0_1.java
@@ -41,6 +41,8 @@
public static final String cd_98 = "98" ;//APP杩滅▼鍏抽榾
public static final String cd_99 = "99" ;//瀹氭椂鍏抽榾寮�闃�
public static final String cd_A0 = "A0" ;//瀹氶噺鍏抽榾寮�闃�
+ public static final String cd_A1 = "A1" ;//瀹氭椂鍏抽榾璁″垝寮�闃�
+ public static final String cd_A2 = "A2" ;//瀹氶噺鍏抽榾璁″垝寮�闃�
public static final String cd_B0 = "B0" ;//鏌ヨ瀹炴椂鏁版嵁锛堟湭瀹炵幇锛�
public static final String cd_C0 = "C0" ;//閬ユ祴绔欐暣鐐逛笂鎶ュ疄鏃舵暟鎹� ok
@@ -84,9 +86,11 @@
(code.equals(cd_98) ? "APP杩滅▼鍏抽榾" :
(code.equals(cd_99) ? "瀹氭椂鍏抽榾寮�闃�" :
(code.equals(cd_A0) ? "瀹氶噺鍏抽榾寮�闃�" :
+ (code.equals(cd_A1) ? "瀹氭椂鍏抽榾璁″垝寮�闃�" :
+ (code.equals(cd_A2) ? "瀹氶噺鍏抽榾璁″垝寮�闃�" :
(code.equals(cd_B0) ? "鏌ヨ瀹炴椂鏁版嵁" :
(code.equals(cd_C0) ? "鑷姤(鏁寸偣)瀹炴椂鏁版嵁" :
- ""))))))))))))))))))))))))))))))))))))))))) ;
+ ""))))))))))))))))))))))))))))))))))))))))))) ;
return name ;
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/ComA1Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/ComA1Vo.java
new file mode 100644
index 0000000..38b0178
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/ComA1Vo.java
@@ -0,0 +1,23 @@
+package com.dy.common.mw.protocol.p206V1_0_0.downVos;
+
+import lombok.Data;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/5/28 21:30
+ * @Description 瀹氭椂鍏抽榾寮�闃�
+ */
+@Data
+public class ComA1Vo {
+ public String icCardNo ;//17浣嶈櫄鎷烮C鍗$紪鍙�(鍗忚鏄�10浣嶆暟瀛�)
+ public Double moneyRemain;//鍓╀綑閲戦(鍙栧�艰寖鍥�0.00~999999.99锛屽崟浣嶄负鍏�)
+ public Double waterPrice;//姘翠环(鍙栧�艰寖鍥�0.00~99.99鍏�/m3)
+ public Integer minutes ;//鐢ㄦ按鏃堕暱锛�0~9999鍒嗛挓锛�
+ public Integer year ; //璁″垝寮�闃�鏃堕棿---骞�
+ public Integer month ;//璁″垝寮�闃�鏃堕棿---鏈�
+ public Integer day ;//璁″垝寮�闃�鏃堕棿---鏃�
+ public Integer hour ;//璁″垝寮�闃�鏃堕棿---鏃�
+ public Integer minute ;//璁″垝寮�闃�鏃堕棿---鍒�
+
+ public String orderNo ;//璁㈠崟鍙凤紙16浣嶆暟瀛楋級
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/ComA2Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/ComA2Vo.java
new file mode 100644
index 0000000..d1227a1
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/ComA2Vo.java
@@ -0,0 +1,22 @@
+package com.dy.common.mw.protocol.p206V1_0_0.downVos;
+
+import lombok.Data;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/5/28 21:30
+ * @Description 瀹氭椂鍏抽榾寮�闃�
+ */
+@Data
+public class ComA2Vo {
+ public String icCardNo ;//17浣嶈櫄鎷烮C鍗$紪鍙�(鍗忚鏄�10浣嶆暟瀛�)
+ public Double moneyRemain;//鍓╀綑閲戦(鍙栧�艰寖鍥�0.00~999999.99锛屽崟浣嶄负鍏�)
+ public Double waterPrice;//姘翠环(鍙栧�艰寖鍥�0.00~99.99鍏�/m3)
+ public Integer waterAmount ;//棰勭敤姘撮噺锛�0~9999 m3锛�
+ public Integer year ; //璁″垝寮�闃�鏃堕棿---骞�
+ public Integer month ;//璁″垝寮�闃�鏃堕棿---鏈�
+ public Integer day ;//璁″垝寮�闃�鏃堕棿---鏃�
+ public Integer hour ;//璁″垝寮�闃�鏃堕棿---鏃�
+ public Integer minute ;//璁″垝寮�闃�鏃堕棿---鍒�
+ public String orderNo ;//璁㈠崟鍙凤紙16浣嶆暟瀛楋級
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_83_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_83_Up.java
index d51fa90..4b304de 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_83_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_83_Up.java
@@ -84,12 +84,14 @@
* @throws Exception 寮傚父
*/
protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
- byte opType = bs[ProtocolConstantV206V1_0_0.dataIndex];
+ byte opType = (byte)ByteUtil.BCD2Int_LE(bs[ProtocolConstantV206V1_0_0.dataIndex]) ;
Boolean isCloseType = CommonV1_0_1.isCloseValveType(opType) ;
if(isCloseType != null && isCloseType.booleanValue()){
this.doParseClose(opType, bs, bsLen, dataCode, data);
}else if(isCloseType != null && !isCloseType.booleanValue()){
this.doParseOpen(opType, bs, bsLen, dataCode, data);
+ }else{
+ throw new Exception("寮�鍏抽榾绫诲瀷[" + ByteUtil.bytes2Hex(new byte[]{opType}, false) + "(hex)]涓嶅彲璇嗗埆" ) ;
}
}
private void doParseOpen(byte opType, byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
@@ -122,22 +124,6 @@
cdData.openDt = GlParse.parseTp(bs, index) ;
index += 6 ;
- /* 寮�闃�鏃讹紝姝ら儴鍒嗘病鏈�
- cdData.priceType = bs[index] ;
-
- index++ ;
- cdData.price = 0.0D ;
- tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ;
- index++ ;
- cdData.price += tpInt/100.0 ;
- tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ;
- index++ ;
- cdData.price += tpInt;
-
- cdData.cardType = bs[index] ;
-
- index++ ;
- */
//鎺у埗鍣ㄦ椂閽�
cdData.rtuDt = GlParse.parseTp(bs, index) ;
//index += 6 ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_84_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_84_Up.java
index 877e0b8..a5f7245 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_84_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_84_Up.java
@@ -88,7 +88,7 @@
dV1.subData = cdData ;
short index = ProtocolConstantV206V1_0_0.dataIndex ;
- cdData.opType = bs[index] ;
+ cdData.opType = (byte)ByteUtil.BCD2Int_LE(bs[index]) ;
index++ ;
cdData.cardType = bs[index] ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_99_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_99_Down.java
index f017296..3891c18 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_99_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_99_Down.java
@@ -79,7 +79,7 @@
String json = obj.toJSONString();
Com99Vo cvo = JSON.parseObject(json, Com99Vo.class) ;
if(cvo == null){
- throw new Exception("json杞珻om97Vo涓簄ull") ;
+ throw new Exception("json杞珻om99Vo涓簄ull") ;
}
if(cvo.icCardNo == null){
throw new Exception("铏氭嫙IC鍗$紪鍙蜂笉鑳戒负绌�") ;
@@ -106,9 +106,11 @@
//ByteUtil.string2BCD_LE(bs, icCardNoGrp[1], index) ;
byte[] bs = new byte[8] ;
GlCreate.createIcCardNo(cvo.icCardNo, bs, 0);
+ bytes = ByteUtil.bytesMerge(bsHead, bs) ;
- index += 5 ;
+ bs = new byte[4] ;
+ index = 0 ;
Integer money = Double.valueOf(cvo.moneyRemain * 100.0D).intValue() ;
byte[] bTemp = ByteUtil.int2BCD_LE(money) ;
int bTempLen = bTemp.length ;
@@ -123,7 +125,10 @@
for(; count < 4; count++){
bs[index++] = 0 ;
}
+ bytes = ByteUtil.bytesMerge(bytes, bs) ;
+ bs = new byte[2] ;
+ index = 0 ;
Integer price = Double.valueOf(cvo.waterPrice * 100.0D).intValue() ;
bTemp = ByteUtil.int2BCD_LE(price) ;
bTempLen = bTemp.length ;
@@ -138,8 +143,11 @@
for(; count < 2; count++){
bs[index++] = 0 ;
}
+ bytes = ByteUtil.bytesMerge(bytes, bs) ;
+ bs = new byte[2] ;
+ index = 0 ;
bTemp = ByteUtil.int2BCD_LE(cvo.minutes) ;
bTempLen = bTemp.length ;
count = 0 ;
@@ -153,8 +161,7 @@
for(; count < 2; count++){
bs[index++] = 0 ;
}
-
- bytes = ByteUtil.bytesMerge(bsHead, bs) ;
+ bytes = ByteUtil.bytesMerge(bytes, bs) ;
GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_99_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_99_Up.java
index c6ca29d..2d476d2 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_99_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_99_Up.java
@@ -2,6 +2,7 @@
import com.dy.common.mw.protocol.*;
import com.dy.common.mw.protocol.p206V1_0_0.*;
+import com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlParse;
import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd98Vo;
import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd99Vo;
import com.dy.common.util.ByteUtil;
@@ -62,8 +63,9 @@
DataCd99Vo cdData = new DataCd99Vo() ;
dV1.subData = cdData ;
//铏氭嫙鍗″彿
- cdData.cardNo = ByteUtil.BCD2String_LE(bs, ProtocolConstantV206V1_0_0.dataIndex, ProtocolConstantV206V1_0_0.dataIndex+4) ;
- if(bs[ProtocolConstantV206V1_0_0.dataIndex + 5] == (byte)0xAA){
+ cdData.cardNo = GlParse.parseIcCardNo(bs, ProtocolConstantV206V1_0_0.dataIndex) ;
+
+ if(bs[ProtocolConstantV206V1_0_0.dataIndex + 8] == (byte)0xAA){
cdData.success = true ;
}else{
cdData.success = false ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A0_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A0_Down.java
index 29efc43..fd0e57f 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A0_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A0_Down.java
@@ -79,7 +79,7 @@
String json = obj.toJSONString();
ComA0Vo cvo = JSON.parseObject(json, ComA0Vo.class) ;
if(cvo == null){
- throw new Exception("json杞珻om97Vo涓簄ull") ;
+ throw new Exception("json杞珻omA0Vo涓簄ull") ;
}
if(cvo.icCardNo == null){
throw new Exception("铏氭嫙IC鍗$紪鍙蜂笉鑳戒负绌�") ;
@@ -101,12 +101,14 @@
//if(icCardNoGrp[0] != null){
// midRs.param = icCardNoGrp[0] ;
//}
+ //ByteUtil.string2BCD_LE(bs, icCardNoGrp[1], index) ;
byte[] bs = new byte[16] ;
index = 0 ;
- //ByteUtil.string2BCD_LE(bs, icCardNoGrp[1], index) ;
GlCreate.createIcCardNo(cvo.icCardNo, bs, 0);
+ bytes = ByteUtil.bytesMerge(bsHead, bs) ;
- index += 5 ;
+ bs = new byte[4] ;
+ index = 0 ;
Integer money = Double.valueOf(cvo.moneyRemain * 100.0D).intValue() ;
byte[] bTemp = ByteUtil.int2BCD_LE(money) ;
int bTempLen = bTemp.length ;
@@ -121,7 +123,10 @@
for(; count < 4; count++){
bs[index++] = 0 ;
}
+ bytes = ByteUtil.bytesMerge(bytes, bs) ;
+ bs = new byte[2] ;
+ index = 0 ;
Integer price = Double.valueOf(cvo.waterPrice * 100.0D).intValue() ;
bTemp = ByteUtil.int2BCD_LE(price) ;
bTempLen = bTemp.length ;
@@ -136,8 +141,11 @@
for(; count < 2; count++){
bs[index++] = 0 ;
}
+ bytes = ByteUtil.bytesMerge(bytes, bs) ;
+ bs = new byte[2] ;
+ index = 0 ;
bTemp = ByteUtil.int2BCD_LE(cvo.waterAmount) ;
bTempLen = bTemp.length ;
count = 0 ;
@@ -151,8 +159,7 @@
for(; count < 2; count++){
bs[index++] = 0 ;
}
-
- bytes = ByteUtil.bytesMerge(bsHead, bs) ;
+ bytes = ByteUtil.bytesMerge(bytes, bs) ;
GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A0_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A0_Up.java
index 7b133e3..bb060e1 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A0_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A0_Up.java
@@ -2,6 +2,7 @@
import com.dy.common.mw.protocol.*;
import com.dy.common.mw.protocol.p206V1_0_0.*;
+import com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlParse;
import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd99Vo;
import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCdA0Vo;
import com.dy.common.util.ByteUtil;
@@ -62,8 +63,9 @@
DataCdA0Vo cdData = new DataCdA0Vo() ;
dV1.subData = cdData ;
//铏氭嫙鍗″彿
- cdData.cardNo = ByteUtil.BCD2String_LE(bs, ProtocolConstantV206V1_0_0.dataIndex, ProtocolConstantV206V1_0_0.dataIndex+4) ;
- if(bs[ProtocolConstantV206V1_0_0.dataIndex + 5] == (byte)0xAA){
+ cdData.cardNo = GlParse.parseIcCardNo(bs, ProtocolConstantV206V1_0_0.dataIndex) ;
+
+ if(bs[ProtocolConstantV206V1_0_0.dataIndex + 8] == (byte)0xAA){
cdData.success = true ;
}else{
cdData.success = false ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A1_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A1_Down.java
new file mode 100644
index 0000000..fb4fcc4
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A1_Down.java
@@ -0,0 +1,214 @@
+package com.dy.common.mw.protocol.p206V1_0_0.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V1_0_0.CodeV1_0_1;
+import com.dy.common.mw.protocol.p206V1_0_0.CommonV1_0_1;
+import com.dy.common.mw.protocol.p206V1_0_0.ParseParamsForDownV1_0_1;
+import com.dy.common.mw.protocol.p206V1_0_0.ProtocolConstantV206V1_0_0;
+import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com99Vo;
+import com.dy.common.mw.protocol.p206V1_0_0.downVos.ComA1Vo;
+import com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+/**
+ * @Author liurunyu
+ * @Date 2024/06/12 9:30
+ * @Description
+ */
+@AnnotationCodeDown(ifAny={
+ CodeV1_0_1.cd_A1
+})
+public class Cd_A1_Down implements CodeParse {
+
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+ ParseParamsForDownV1_0_1 para = (ParseParamsForDownV1_0_1) params ;
+ MidResultToRtu midRs = new MidResultToRtu() ;
+ byte[] bs = this.doParse(midRs, para) ;
+
+ midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+ midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+ midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+ midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+ midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+ midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+ if(isLowPower != null && isLowPower.booleanValue()){
+ //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+ midRs.isQuickSend = true ;
+ }
+
+ return new MidResult[]{midRs} ;
+ }
+
+ /**
+ * 鏋勯�犱笅琛屾暟鎹�
+ * @param midRs 鍙傛暟
+ * @param para 鍙傛暟
+ * @return 瀛楄妭鏁扮粍
+ * @throws Exception 寮傚父
+ */
+ public byte[] doParse(MidResultToRtu midRs, ParseParamsForDownV1_0_1 para) throws Exception {
+ CommonV1_0_1 commonV1_0_1 = new CommonV1_0_1() ;
+ byte[] bytes ;
+ byte[] bsHead = new byte[ProtocolConstantV206V1_0_0.lenHead2Code] ;
+ byte index = 0 ;
+ bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ;
+
+ index++ ;
+ bsHead[index] = 0 ;//甯ч暱搴�
+
+ index++ ;
+ bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ;
+
+ index++ ;
+ bsHead[index] = commonV1_0_1.createCtrl((byte)0, (byte)0) ;
+
+ index++ ;
+ GlCreate.createRtuAddr(para.rtuAddr, bsHead, index);
+ index += 5 ;
+
+ ByteUtil.hex2Bytes(para.commandCode, bsHead, index) ;
+
+ JSONObject obj = (JSONObject)para.param;
+ String json = obj.toJSONString();
+ ComA1Vo cvo = JSON.parseObject(json, ComA1Vo.class) ;
+ if(cvo == null){
+ throw new Exception("json杞珻om99Vo涓簄ull") ;
+ }
+ if(cvo.icCardNo == null){
+ throw new Exception("铏氭嫙IC鍗$紪鍙蜂笉鑳戒负绌�") ;
+ }
+ if(cvo.moneyRemain == null){
+ throw new Exception("鍓╀綑閲戦涓嶈兘涓虹┖") ;
+ }
+ if(cvo.waterPrice == null){
+ throw new Exception("姘翠环涓嶈兘涓虹┖") ;
+ }
+ if(cvo.minutes == null){
+ throw new Exception("鐢ㄦ按鏃堕暱涓嶈兘涓虹┖") ;
+ }
+ if(cvo.minutes < 0 || cvo.minutes > 9999){
+ throw new Exception("鐢ㄦ按鏃堕暱鍙栧�艰寖鍥存槸0~9999鍒嗛挓") ;
+ }
+ if(cvo.year == null){
+ throw new Exception("璁″垝寮�闃�鏃堕棿---骞翠笉鑳戒负绌�") ;
+ }
+ if(cvo.year < 24 || cvo.year > 9999){
+ throw new Exception("璁″垝寮�闃�鏃堕棿---骞翠笉姝g‘") ;
+ }
+ if(cvo.year > 24 && cvo.year < 2024){
+ throw new Exception("璁″垝寮�闃�鏃堕棿---骞翠笉姝g‘") ;
+ }
+ if(cvo.month == null){
+ throw new Exception("璁″垝寮�闃�鏃堕棿---鏈堜笉鑳戒负绌�") ;
+ }
+ if(cvo.month < 1 || cvo.month > 12){
+ throw new Exception("璁″垝寮�闃�鏃堕棿---鏈堜笉姝g‘") ;
+ }
+ if(cvo.day == null){
+ throw new Exception("璁″垝寮�闃�鏃堕棿---鏃ヤ笉鑳戒负绌�") ;
+ }
+ if(cvo.day < 1 || cvo.day > 31){
+ throw new Exception("璁″垝寮�闃�鏃堕棿---鏃ヤ笉姝g‘") ;
+ }
+ if(cvo.hour == null){
+ throw new Exception("璁″垝寮�闃�鏃堕棿---鏃朵笉鑳戒负绌�") ;
+ }
+ if(cvo.hour < 0 || cvo.hour > 23){
+ throw new Exception("璁″垝寮�闃�鏃堕棿---鏃朵笉姝g‘") ;
+ }
+ if(cvo.minute == null){
+ throw new Exception("璁″垝寮�闃�鏃堕棿---鏃朵笉鑳戒负绌�") ;
+ }
+ if(cvo.minute < 0 || cvo.minute > 59){
+ throw new Exception("璁″垝寮�闃�鏃堕棿---鍒嗕笉姝g‘") ;
+ }
+
+ byte[] bs = new byte[8] ;
+ GlCreate.createIcCardNo(cvo.icCardNo, bs, 0);
+ bytes = ByteUtil.bytesMerge(bsHead, bs) ;
+
+ bs = new byte[4] ;
+ index = 0 ;
+ Integer money = Double.valueOf(cvo.moneyRemain * 100.0D).intValue() ;
+ byte[] bTemp = ByteUtil.int2BCD_LE(money) ;
+ int bTempLen = bTemp.length ;
+ int count = 0 ;
+ for(int i = 0 ; i < bTempLen; i++){
+ bs[index++] = bTemp[i] ;
+ count ++ ;
+ if(count >= 4){
+ break ;
+ }
+ }
+ for(; count < 4; count++){
+ bs[index++] = 0 ;
+ }
+ bytes = ByteUtil.bytesMerge(bytes, bs) ;
+
+ bs = new byte[2] ;
+ index = 0 ;
+ Integer price = Double.valueOf(cvo.waterPrice * 100.0D).intValue() ;
+ bTemp = ByteUtil.int2BCD_LE(price) ;
+ bTempLen = bTemp.length ;
+ count = 0 ;
+ for(int i = 0 ; i < bTempLen; i++){
+ bs[index++] = bTemp[i] ;
+ count ++ ;
+ if(count >= 2){
+ break ;
+ }
+ }
+ for(; count < 2; count++){
+ bs[index++] = 0 ;
+ }
+ bytes = ByteUtil.bytesMerge(bytes, bs) ;
+
+
+ bs = new byte[2] ;
+ index = 0 ;
+ bTemp = ByteUtil.int2BCD_LE(cvo.minutes) ;
+ bTempLen = bTemp.length ;
+ count = 0 ;
+ for(int i = 0 ; i < bTempLen; i++){
+ bs[index++] = bTemp[i] ;
+ count ++ ;
+ if(count >= 2){
+ break ;
+ }
+ }
+ for(; count < 2; count++){
+ bs[index++] = 0 ;
+ }
+ bytes = ByteUtil.bytesMerge(bytes, bs) ;
+
+ bs = new byte[5] ;
+ if(cvo.year >= 2024){
+ cvo.year = cvo.year - 2000 ;
+ }
+ bs[0] = ByteUtil.int2BCD_LE(cvo.minute)[0] ;
+ bs[1] = ByteUtil.int2BCD_LE(cvo.hour)[0] ;
+ bs[2] = ByteUtil.int2BCD_LE(cvo.day)[0] ;
+ bs[3] = ByteUtil.int2BCD_LE(cvo.month)[0] ;
+ bs[4] = ByteUtil.int2BCD_LE(cvo.year)[0] ;
+
+ bytes = ByteUtil.bytesMerge(bytes, bs) ;
+
+ GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+ byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓�
+
+ bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+ return bytes ;
+ }
+
+}
+
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A1_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A1_Up.java
new file mode 100644
index 0000000..704b677
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A1_Up.java
@@ -0,0 +1,73 @@
+package com.dy.common.mw.protocol.p206V1_0_0.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V1_0_0.*;
+import com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlParse;
+import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd99Vo;
+import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCdA1Vo;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+/**
+ * @Author liurunyu
+ * @Date 2024/06/12 9:30
+ * @Description
+ */
+@AnnotationCodeUp(ifAny={
+ CodeV1_0_1.cd_A1
+})
+@SuppressWarnings("unused")
+public class Cd_A1_Up implements CodeParse {
+
+ private static final Logger log = LogManager.getLogger(Cd_A1_Up.class);
+
+ /**
+ * 鍒嗘瀽涓婅鏁版嵁
+ */
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+ ParseParamsForUpV1_0_1 para = (ParseParamsForUpV1_0_1)params ;
+ int bsLen = new CommonV1_0_1().parseDataLen(para.upBuffer) ;
+ if(bsLen > 0){
+ this.doParse(para.upBuffer,
+ bsLen,
+ para.upCode,
+ para.data) ;
+ }
+ log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV1_0_1.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+ MidResultFromRtu midRs = new MidResultFromRtu() ;
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+ midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+ midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+ midRs.reportOrResponse_trueOrFalse = false ;//涓诲姩涓婃姤
+
+ callback.callback(midRs.reportOrResponse_trueOrFalse);
+ return new MidResult[]{midRs} ;
+ }
+ /**
+ * 鎵ц鍒嗘瀽
+ * @param bs 瀛楄妭鏁扮粍
+ * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+ * @param dataCode 鍔熻兘鐮�
+ * @param data 鏁版嵁
+ * @throws Exception 寮傚父
+ */
+ protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+ DataV1_0_1 dV1 = (DataV1_0_1)data.getSubData() ;
+ DataCdA1Vo cdData = new DataCdA1Vo() ;
+ dV1.subData = cdData ;
+ //铏氭嫙鍗″彿
+ cdData.cardNo = GlParse.parseIcCardNo(bs, ProtocolConstantV206V1_0_0.dataIndex) ;
+
+ if(bs[ProtocolConstantV206V1_0_0.dataIndex + 8] == (byte)0xAA){
+ cdData.success = true ;
+ }else{
+ cdData.success = false ;
+ }
+ }
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A2_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A2_Down.java
new file mode 100644
index 0000000..9db5735
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A2_Down.java
@@ -0,0 +1,221 @@
+package com.dy.common.mw.protocol.p206V1_0_0.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V1_0_0.CodeV1_0_1;
+import com.dy.common.mw.protocol.p206V1_0_0.CommonV1_0_1;
+import com.dy.common.mw.protocol.p206V1_0_0.ParseParamsForDownV1_0_1;
+import com.dy.common.mw.protocol.p206V1_0_0.ProtocolConstantV206V1_0_0;
+import com.dy.common.mw.protocol.p206V1_0_0.downVos.ComA0Vo;
+import com.dy.common.mw.protocol.p206V1_0_0.downVos.ComA2Vo;
+import com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+/**
+ * @Author liurunyu
+ * @Date 2024/06/12 9:30
+ * @Description
+ */
+@AnnotationCodeDown(ifAny={
+ CodeV1_0_1.cd_A2
+})
+public class Cd_A2_Down implements CodeParse {
+
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+ ParseParamsForDownV1_0_1 para = (ParseParamsForDownV1_0_1) params ;
+ MidResultToRtu midRs = new MidResultToRtu() ;
+ byte[] bs = this.doParse(midRs, para) ;
+
+ midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+ midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+ midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+ midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+ midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+ midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+ if(isLowPower != null && isLowPower.booleanValue()){
+ //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+ midRs.isQuickSend = true ;
+ }
+
+ return new MidResult[]{midRs} ;
+ }
+
+ /**
+ * 鏋勯�犱笅琛屾暟鎹�
+ * @param midRs 鍙傛暟
+ * @param para 鍙傛暟
+ * @return 瀛楄妭鏁扮粍
+ * @throws Exception 寮傚父
+ */
+ public byte[] doParse(MidResultToRtu midRs, ParseParamsForDownV1_0_1 para) throws Exception {
+ CommonV1_0_1 commonV1_0_1 = new CommonV1_0_1() ;
+ byte[] bytes ;
+ byte[] bsHead = new byte[ProtocolConstantV206V1_0_0.lenHead2Code] ;
+ byte index = 0 ;
+ bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ;
+
+ index++ ;
+ bsHead[index] = 0 ;//甯ч暱搴�
+
+ index++ ;
+ bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ;
+
+ index++ ;
+ bsHead[index] = commonV1_0_1.createCtrl((byte)0, (byte)0) ;
+
+ index++ ;
+ GlCreate.createRtuAddr(para.rtuAddr, bsHead, index);
+ index += 5 ;
+
+ ByteUtil.hex2Bytes(para.commandCode, bsHead, index) ;
+
+ JSONObject obj = (JSONObject)para.param;
+ String json = obj.toJSONString();
+ ComA2Vo cvo = JSON.parseObject(json, ComA2Vo.class) ;
+ if(cvo == null){
+ throw new Exception("json杞珻omA0Vo涓簄ull") ;
+ }
+ if(cvo.icCardNo == null){
+ throw new Exception("铏氭嫙IC鍗$紪鍙蜂笉鑳戒负绌�") ;
+ }
+ if(cvo.moneyRemain == null){
+ throw new Exception("鍓╀綑閲戦涓嶈兘涓虹┖") ;
+ }
+ if(cvo.waterPrice == null){
+ throw new Exception("姘翠环涓嶈兘涓虹┖") ;
+ }
+ if(cvo.waterAmount == null){
+ throw new Exception("棰勭敤姘撮噺涓嶈兘涓虹┖") ;
+ }
+ if(cvo.waterAmount < 0 || cvo.waterAmount > 9999){
+ throw new Exception("棰勭敤姘撮噺鍙栧�艰寖鍥存槸0~9999m3") ;
+ }
+ if(cvo.year == null){
+ throw new Exception("璁″垝寮�闃�鏃堕棿---骞翠笉鑳戒负绌�") ;
+ }
+ if(cvo.year < 24 || cvo.year > 9999){
+ throw new Exception("璁″垝寮�闃�鏃堕棿---骞翠笉姝g‘") ;
+ }
+ if(cvo.year > 24 && cvo.year < 2024){
+ throw new Exception("璁″垝寮�闃�鏃堕棿---骞翠笉姝g‘") ;
+ }
+ if(cvo.month == null){
+ throw new Exception("璁″垝寮�闃�鏃堕棿---鏈堜笉鑳戒负绌�") ;
+ }
+ if(cvo.month < 1 || cvo.month > 12){
+ throw new Exception("璁″垝寮�闃�鏃堕棿---鏈堜笉姝g‘") ;
+ }
+ if(cvo.day == null){
+ throw new Exception("璁″垝寮�闃�鏃堕棿---鏃ヤ笉鑳戒负绌�") ;
+ }
+ if(cvo.day < 1 || cvo.day > 31){
+ throw new Exception("璁″垝寮�闃�鏃堕棿---鏃ヤ笉姝g‘") ;
+ }
+ if(cvo.hour == null){
+ throw new Exception("璁″垝寮�闃�鏃堕棿---鏃朵笉鑳戒负绌�") ;
+ }
+ if(cvo.hour < 0 || cvo.hour > 23){
+ throw new Exception("璁″垝寮�闃�鏃堕棿---鏃朵笉姝g‘") ;
+ }
+ if(cvo.minute == null){
+ throw new Exception("璁″垝寮�闃�鏃堕棿---鏃朵笉鑳戒负绌�") ;
+ }
+ if(cvo.minute < 0 || cvo.minute > 59){
+ throw new Exception("璁″垝寮�闃�鏃堕棿---鍒嗕笉姝g‘") ;
+ }
+
+ //String[] icCardNoGrp = CommonV1_0_1.dealIcCardNo(cvo.icCardNo) ;
+ //if(icCardNoGrp[0] != null){
+ // midRs.param = icCardNoGrp[0] ;
+ //}
+ //ByteUtil.string2BCD_LE(bs, icCardNoGrp[1], index) ;
+ byte[] bs = new byte[16] ;
+ index = 0 ;
+ GlCreate.createIcCardNo(cvo.icCardNo, bs, 0);
+ bytes = ByteUtil.bytesMerge(bsHead, bs) ;
+
+ bs = new byte[4] ;
+ index = 0 ;
+ Integer money = Double.valueOf(cvo.moneyRemain * 100.0D).intValue() ;
+ byte[] bTemp = ByteUtil.int2BCD_LE(money) ;
+ int bTempLen = bTemp.length ;
+ int count = 0 ;
+ for(int i = 0 ; i < bTempLen; i++){
+ bs[index++] = bTemp[i] ;
+ count ++ ;
+ if(count >= 4){
+ break ;
+ }
+ }
+ for(; count < 4; count++){
+ bs[index++] = 0 ;
+ }
+ bytes = ByteUtil.bytesMerge(bytes, bs) ;
+
+ bs = new byte[2] ;
+ index = 0 ;
+ Integer price = Double.valueOf(cvo.waterPrice * 100.0D).intValue() ;
+ bTemp = ByteUtil.int2BCD_LE(price) ;
+ bTempLen = bTemp.length ;
+ count = 0 ;
+ for(int i = 0 ; i < bTempLen; i++){
+ bs[index++] = bTemp[i] ;
+ count ++ ;
+ if(count >= 2){
+ break ;
+ }
+ }
+ for(; count < 2; count++){
+ bs[index++] = 0 ;
+ }
+ bytes = ByteUtil.bytesMerge(bytes, bs) ;
+
+
+ bs = new byte[2] ;
+ index = 0 ;
+ bTemp = ByteUtil.int2BCD_LE(cvo.waterAmount) ;
+ bTempLen = bTemp.length ;
+ count = 0 ;
+ for(int i = 0 ; i < bTempLen; i++){
+ bs[index++] = bTemp[i] ;
+ count ++ ;
+ if(count >= 2){
+ break ;
+ }
+ }
+ for(; count < 2; count++){
+ bs[index++] = 0 ;
+ }
+ bytes = ByteUtil.bytesMerge(bytes, bs) ;
+
+
+ bs = new byte[5] ;
+ if(cvo.year >= 2024){
+ cvo.year = cvo.year - 2000 ;
+ }
+ bs[0] = ByteUtil.int2BCD_LE(cvo.minute)[0] ;
+ bs[1] = ByteUtil.int2BCD_LE(cvo.hour)[0] ;
+ bs[2] = ByteUtil.int2BCD_LE(cvo.day)[0] ;
+ bs[3] = ByteUtil.int2BCD_LE(cvo.month)[0] ;
+ bs[4] = ByteUtil.int2BCD_LE(cvo.year)[0] ;
+
+ bytes = ByteUtil.bytesMerge(bytes, bs) ;
+
+ GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+ byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓�
+
+ bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+ return bytes ;
+ }
+
+}
+
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A2_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A2_Up.java
new file mode 100644
index 0000000..c789750
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A2_Up.java
@@ -0,0 +1,73 @@
+package com.dy.common.mw.protocol.p206V1_0_0.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V1_0_0.*;
+import com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlParse;
+import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCdA0Vo;
+import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCdA2Vo;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+/**
+ * @Author liurunyu
+ * @Date 2024/06/12 9:30
+ * @Description
+ */
+@AnnotationCodeUp(ifAny={
+ CodeV1_0_1.cd_A2
+})
+@SuppressWarnings("unused")
+public class Cd_A2_Up implements CodeParse {
+
+ private static final Logger log = LogManager.getLogger(Cd_A2_Up.class);
+
+ /**
+ * 鍒嗘瀽涓婅鏁版嵁
+ */
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+ ParseParamsForUpV1_0_1 para = (ParseParamsForUpV1_0_1)params ;
+ int bsLen = new CommonV1_0_1().parseDataLen(para.upBuffer) ;
+ if(bsLen > 0){
+ this.doParse(para.upBuffer,
+ bsLen,
+ para.upCode,
+ para.data) ;
+ }
+ log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV1_0_1.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+ MidResultFromRtu midRs = new MidResultFromRtu() ;
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+ midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+ midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+ midRs.reportOrResponse_trueOrFalse = false ;//涓诲姩涓婃姤
+
+ callback.callback(midRs.reportOrResponse_trueOrFalse);
+ return new MidResult[]{midRs} ;
+ }
+ /**
+ * 鎵ц鍒嗘瀽
+ * @param bs 瀛楄妭鏁扮粍
+ * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+ * @param dataCode 鍔熻兘鐮�
+ * @param data 鏁版嵁
+ * @throws Exception 寮傚父
+ */
+ protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+ DataV1_0_1 dV1 = (DataV1_0_1)data.getSubData() ;
+ DataCdA2Vo cdData = new DataCdA2Vo() ;
+ dV1.subData = cdData ;
+ //铏氭嫙鍗″彿
+ cdData.cardNo = GlParse.parseIcCardNo(bs, ProtocolConstantV206V1_0_0.dataIndex) ;
+
+ if(bs[ProtocolConstantV206V1_0_0.dataIndex + 8] == (byte)0xAA){
+ cdData.success = true ;
+ }else{
+ cdData.success = false ;
+ }
+ }
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCd84Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCd84Vo.java
index 9d5dab4..1eb9111 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCd84Vo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCd84Vo.java
@@ -9,7 +9,7 @@
@Data
public class DataCd84Vo {
- public Byte opType;//寮�鍏抽榾绫诲瀷(1:鍒峰崱寮�闃�锛�2:鍒峰崱鍏抽榾锛�3:涓績绔欏紑闃�锛�4:涓績绔欏叧闃�锛�5:娆犺垂鍏抽榾锛�6:娴侀噺璁℃晠闅滃叧闃�锛�7:绱ф�ュ叧闂紱8:鐢ㄦ埛杩滅▼寮�闃�锛�9:鐢ㄦ埛杩滅▼鍏抽榾锛�10:寮�鍏抽榾鍗″叧闃�锛�11:寮�鍏抽榾鍗″埛鍗″崱寮�闃�锛�)
+ public Byte opType;
public Byte cardType ;//鍗$被鍨�(0:鏃犲崱锛�1:鐢ㄦ埛鍗★紱2锛氱鐞嗗憳鍗★紱3锛氳皟璇曞崱锛�4锛氬紑鍏抽榾鍗★紱5锛氭竻绌哄崱)
public String cardAddr ;//IC鍗″湴鍧�锛�8浣嶅瓧绗︼級
public String cardNo ;//IC鍗$紪鍙�
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCdA1Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCdA1Vo.java
new file mode 100644
index 0000000..9e682e0
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCdA1Vo.java
@@ -0,0 +1,41 @@
+package com.dy.common.mw.protocol.p206V1_0_0.upVos;
+
+import lombok.Data;
+
+/**
+ * @Author liurunyu
+ * @Date 2024/01/13 10:08
+ * @LastEditTime 2024/01/13 10:08
+ * @Description
+ */
+@Data
+public class DataCdA1Vo {
+ public String cardNo ;//铏氭嫙鍗″彿
+ public boolean success;
+
+ public String toString(){
+ StringBuilder sb = new StringBuilder() ;
+ sb.append(" 瀹氭椂鍏抽榾寮�闃�搴旂瓟:\n");
+ sb.append(" 铏氭嫙鍗″彿锛�");
+ sb.append(cardNo);
+ sb.append("\n");
+ sb.append(" 缁撴灉锛�");
+ sb.append(success?"鎵ц":"澶辫触");
+ sb.append("\n");
+
+ return sb.toString() ;
+ }
+
+
+ public String comLog(){
+ StringBuilder sb = new StringBuilder() ;
+ sb.append("瀹氭椂鍏抽榾寮�闃�鍛戒护鍥炲:\n");
+ sb.append(" 铏氭嫙鍗″彿锛�");
+ sb.append(cardNo);
+ sb.append("\n");
+ sb.append(" 缁撴灉锛�");
+ sb.append(success?"鎵ц":"澶辫触");
+ sb.append("\n");
+ return sb.toString() ;
+ }
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCdA2Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCdA2Vo.java
new file mode 100644
index 0000000..8499e77
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCdA2Vo.java
@@ -0,0 +1,41 @@
+package com.dy.common.mw.protocol.p206V1_0_0.upVos;
+
+import lombok.Data;
+
+/**
+ * @Author liurunyu
+ * @Date 2024/01/13 10:08
+ * @LastEditTime 2024/01/13 10:08
+ * @Description
+ */
+@Data
+public class DataCdA2Vo {
+ public String cardNo ;//铏氭嫙鍗″彿
+ public boolean success;
+
+ public String toString(){
+ StringBuilder sb = new StringBuilder() ;
+ sb.append(" 瀹氶噺鍏抽榾寮�闃�搴旂瓟:\n");
+ sb.append(" 铏氭嫙鍗″彿锛�");
+ sb.append(cardNo);
+ sb.append("\n");
+ sb.append(" 缁撴灉锛�");
+ sb.append(success?"鎵ц":"澶辫触");
+ sb.append("\n");
+
+ return sb.toString() ;
+ }
+
+
+ public String comLog(){
+ StringBuilder sb = new StringBuilder() ;
+ sb.append("瀹氶噺鍏抽榾寮�闃�鍛戒护鍥炲:\n");
+ sb.append(" 铏氭嫙鍗″彿锛�");
+ sb.append(cardNo);
+ sb.append("\n");
+ sb.append(" 缁撴灉锛�");
+ sb.append(success?"鎵ц":"澶辫触");
+ sb.append("\n");
+ return sb.toString() ;
+ }
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoOpenCloseValve.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoOpenCloseValve.java
index 9eed8fd..15af3f4 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoOpenCloseValve.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoOpenCloseValve.java
@@ -58,7 +58,8 @@
/**
* 寮�闃�绫诲瀷
*/
- private Byte openType;
+ //private Byte openType;
+ private String openType;
/**
* 寮�闃�璁㈠崟鍙�
@@ -104,7 +105,8 @@
/**
* 鍏抽榾绫诲瀷
*/
- private Byte closeType;
+ //private Byte closeType;
+ private String closeType;
/**
* 鍏抽榾鎶ヤ腑鏈湴鐢ㄦ按閲�
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoWork.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoWork.java
index 933b15c..6c725e0 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoWork.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoWork.java
@@ -84,7 +84,7 @@
/**
* 鐢佃〃绱鐢甸噺(鍗曚綅0.01搴�)
*/
- private Double ele_total;
+ private Double eleTotal;
/**
* 鐢ㄦ埛鍓╀綑閲戦(鍗曚綅0.01鍏�)
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
index 923e8eb..cefad0b 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
@@ -72,7 +72,7 @@
pipIrr:
global:
- dev: true #鏄惁寮�鍙戦樁娈碉紝true鎴杅alse
+ dev: false #鏄惁寮�鍙戦樁娈碉紝true鎴杅alse
dsName: ym #寮�鍙戦樁娈碉紝璁剧疆涓存椂鐨勬暟鎹簱鍚嶇О
mw:
webPort: 8070
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
index 6ef2564..16e4487 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
@@ -444,7 +444,14 @@
oh.op_ic_card_no AS openIcNum,
oh.op_ic_card_addr AS openIcAddr,
oh.op_dt AS openTime,
- oh.op_type AS openType,
+ CASE
+ WHEN oh.op_type = 1 THEN "鍒峰崱寮�闃�"
+ WHEN oh.op_type = 3 THEN "涓績绔欏紑闃�"
+ WHEN oh.op_type = 5 THEN "娆犺垂鍏抽榾"
+ WHEN oh.op_type = 8 THEN "鐢ㄦ埛杩滅▼寮�闃�"
+ WHEN oh.op_type = 11 THEN "寮�鍏抽榾鍗″紑闃�"
+ ELSE "鏈煡"
+ END AS openType,
oh.op_order_no AS openOrderNo,
oh.op_total_amount AS openTotalAmount,
oh.op_remain_money AS openRemainMoney,
@@ -453,7 +460,19 @@
oh.cl_ic_card_no AS closeIcNum,
oh.cl_ic_card_addr AS closeIcAddr,
oh.cl_dt AS closeTime,
- oh.cl_type AS closeType,
+ CASE
+ WHEN oh.cl_type = 2 THEN "鍒峰崱鍏抽榾"
+ WHEN oh.cl_type = 4 THEN "涓績绔欏叧闃�"
+ WHEN oh.cl_type = 5 THEN "娆犺垂鍏抽榾"
+ WHEN oh.cl_type = 6 THEN "娴侀噺璁℃晠闅滃叧闃�"
+ WHEN oh.cl_type = 7 THEN "绱ф�ュ叧闂�"
+ WHEN oh.cl_type = 9 THEN "鐢ㄦ埛杩滅▼鍏抽榾"
+ WHEN oh.cl_type = 10 THEN "寮�鍏抽榾鍗″叧闃�"
+ WHEN oh.cl_type = 12 THEN "榛戝悕鍗曞懡浠ゅ叧闃�"
+ WHEN oh.cl_type = 13 THEN "鐢ㄦ埛杩滅▼瀹氭椂鍏抽榾"
+ WHEN oh.cl_type = 14 THEN "鐢ㄦ埛杩滅▼瀹氶噺鍏抽榾"
+ ELSE "鏈煡"
+ END AS closeType,
oh.cl_this_amount AS closeThisAmount,
oh.cl_this_time AS thisTime,
oh.cl_this_money AS thisMoney,
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml
index 8f9d0cc..61890c6 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml
@@ -464,7 +464,14 @@
oh.op_ic_card_no AS openIcNum,
oh.op_ic_card_addr AS openIcAddr,
oh.op_dt AS openTime,
- oh.op_type AS openType,
+ CASE
+ WHEN oh.op_type = 1 THEN "鍒峰崱寮�闃�"
+ WHEN oh.op_type = 3 THEN "涓績绔欏紑闃�"
+ WHEN oh.op_type = 5 THEN "娆犺垂鍏抽榾"
+ WHEN oh.op_type = 8 THEN "鐢ㄦ埛杩滅▼寮�闃�"
+ WHEN oh.op_type = 11 THEN "寮�鍏抽榾鍗″紑闃�"
+ ELSE "鏈煡"
+ END AS openType,
oh.op_order_no AS openOrderNo,
oh.op_total_amount AS openTotalAmount,
oh.op_remain_money AS openRemainMoney,
@@ -473,7 +480,19 @@
oh.cl_ic_card_no AS closeIcNum,
oh.cl_ic_card_addr AS closeIcAddr,
oh.cl_dt AS closeTime,
- oh.cl_type AS closeType,
+ CASE
+ WHEN oh.cl_type = 2 THEN "鍒峰崱鍏抽榾"
+ WHEN oh.cl_type = 4 THEN "涓績绔欏叧闃�"
+ WHEN oh.cl_type = 5 THEN "娆犺垂鍏抽榾"
+ WHEN oh.cl_type = 6 THEN "娴侀噺璁℃晠闅滃叧闃�"
+ WHEN oh.cl_type = 7 THEN "绱ф�ュ叧闂�"
+ WHEN oh.cl_type = 9 THEN "鐢ㄦ埛杩滅▼鍏抽榾"
+ WHEN oh.cl_type = 10 THEN "寮�鍏抽榾鍗″叧闃�"
+ WHEN oh.cl_type = 12 THEN "榛戝悕鍗曞懡浠ゅ叧闃�"
+ WHEN oh.cl_type = 13 THEN "鐢ㄦ埛杩滅▼瀹氭椂鍏抽榾"
+ WHEN oh.cl_type = 14 THEN "鐢ㄦ埛杩滅▼瀹氶噺鍏抽榾"
+ ELSE "鏈煡"
+ END AS closeType,
oh.cl_this_amount AS closeThisAmount,
oh.cl_this_time AS thisTime,
oh.cl_this_money AS thisMoney,
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportHistoryMapper.xml
index e23deda..19484c7 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportHistoryMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportHistoryMapper.xml
@@ -470,7 +470,7 @@
wo.water_press AS waterPress,
wo.water_instant AS waterInstant,
wo.water_total AS waterTotal,
- wo.ele_total AS ele_total,
+ wo.ele_total AS eleTotal,
wo.money_remain AS moneyRemain,
wo.water_remain AS waterRemain,
wo.this_ele AS thisEle,
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportLastMapper.xml
index 310fac4..bd2267e 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportLastMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportLastMapper.xml
@@ -477,7 +477,7 @@
wo.water_press AS waterPress,
wo.water_instant AS waterInstant,
wo.water_total AS waterTotal,
- wo.ele_total AS ele_total,
+ wo.ele_total AS eleTotal,
wo.money_remain AS moneyRemain,
wo.water_remain AS waterRemain,
wo.this_ele AS thisEle,
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/CommandP206V1_0_0Ctrl.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/CommandP206V1_0_0Ctrl.java
index 8a475f0..d3ca03d 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/CommandP206V1_0_0Ctrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/CommandP206V1_0_0Ctrl.java
@@ -5,6 +5,7 @@
import com.dy.common.mw.protocol.p206V1_0_0.CodeV1_0_1;
import com.dy.common.mw.protocol.p206V1_0_0.ProtocolConstantV206V1_0_0;
import com.dy.common.mw.protocol.p206V1_0_0.downVos.*;
+import com.dy.common.util.DateTime;
import com.dy.common.webUtil.BaseResponse;
import com.dy.pipIrrMwTestWeb.common.CodeLocal;
import lombok.extern.slf4j.Slf4j;
@@ -29,50 +30,58 @@
if(com == null){
rt = this.connect() ;//杩炴帴閫氫俊涓棿浠舵祴璇�
}else{
- if(com.equals("10")){
- rt = this.cd10() ;
- }else if(com.equals("21")){
- rt = this.cd21() ;
- }else if(com.equals("37")){
- rt = this.cd37() ;
- }else if(com.equals("67")){
- rt = this.cd67() ;
- }else if(com.equals("38")){
- rt = this.cd38() ;
- }else if(com.equals("68")){
- rt = this.cd68() ;
- }else if(com.equals("39")){
- rt = this.cd39() ;
- }else if(com.equals("69")){
- rt = this.cd69() ;
- }else if(com.equals("3A")){
- rt = this.cd3A() ;
- }else if(com.equals("6A")){
- rt = this.cd6A() ;
- }else if(com.equals("3B")){
- rt = this.cd3B() ;
- }else if(com.equals("6B")){
- rt = this.cd6B() ;
- }else if(com.equals("3C")){
- rt = this.cd3C() ;
- }else if(com.equals("65")){
- rt = this.cd65() ;
- }else if(com.equals("91")){
- rt = this.cd91() ;
- }else if(com.equals("92")){
- rt = this.cd92() ;
- }else if(com.equals("93")){
- rt = this.cd93() ;
- }else if(com.equals("97")){
- rt = this.cd97() ;
- }else if(com.equals("98")){
- rt = this.cd98() ;
- }else if(com.equals("99")){
- rt = this.cd99() ;
- }else if(com.equals("A0")){
- rt = this.cdA0() ;
- }else if(com.equals("B0")){
- rt = this.cdB0() ;
+ try{
+ if(com.equals("10")){
+ rt = this.cd10() ;
+ }else if(com.equals("21")){
+ rt = this.cd21() ;
+ }else if(com.equals("37")){
+ rt = this.cd37() ;
+ }else if(com.equals("67")){
+ rt = this.cd67() ;
+ }else if(com.equals("38")){
+ rt = this.cd38() ;
+ }else if(com.equals("68")){
+ rt = this.cd68() ;
+ }else if(com.equals("39")){
+ rt = this.cd39() ;
+ }else if(com.equals("69")){
+ rt = this.cd69() ;
+ }else if(com.equals("3A")){
+ rt = this.cd3A() ;
+ }else if(com.equals("6A")){
+ rt = this.cd6A() ;
+ }else if(com.equals("3B")){
+ rt = this.cd3B() ;
+ }else if(com.equals("6B")){
+ rt = this.cd6B() ;
+ }else if(com.equals("3C")){
+ rt = this.cd3C() ;
+ }else if(com.equals("65")){
+ rt = this.cd65() ;
+ }else if(com.equals("91")){
+ rt = this.cd91() ;
+ }else if(com.equals("92")){
+ rt = this.cd92() ;
+ }else if(com.equals("93")){
+ rt = this.cd93() ;
+ }else if(com.equals("97")){
+ rt = this.cd97() ;
+ }else if(com.equals("98")){
+ rt = this.cd98() ;
+ }else if(com.equals("99")){
+ rt = this.cd99() ;
+ }else if(com.equals("A0")){
+ rt = this.cdA0() ;
+ }else if(com.equals("A1")){
+ rt = this.cdA1() ;
+ }else if(com.equals("A2")){
+ rt = this.cdA2() ;
+ }else if(com.equals("B0")){
+ rt = this.cdB0() ;
+ }
+ }catch (Exception e){
+ e.printStackTrace();
}
}
return rt ;
@@ -193,7 +202,7 @@
comVo.icCardNo = CommandP206V1_0_0Ctrl.vsIcCardNo;
comVo.moneyRemain = 234.56 ;
comVo.waterPrice = 1.2 ;
- comVo.minutes = 5 ;
+ comVo.minutes = 3 ;
return this.sendCom2Mw(this.command(CodeV1_0_1.cd_99, comVo, null)) ;
}
@@ -204,9 +213,45 @@
comVo.moneyRemain = 234.56 ;
comVo.waterPrice = 1.2 ;
comVo.waterAmount = 10 ;
- return this.sendCom2Mw(this.command(CodeV1_0_1.cd_98, comVo, null)) ;
+ return this.sendCom2Mw(this.command(CodeV1_0_1.cd_A0, comVo, null)) ;
}
+
+ //瀹氭椂鍏抽榾璁″垝寮�闃�
+ private BaseResponse cdA1() throws Exception {
+ ComA1Vo comVo = new ComA1Vo() ;
+ comVo.icCardNo = CommandP206V1_0_0Ctrl.vsIcCardNo;
+ comVo.moneyRemain = 234.56 ;
+ comVo.waterPrice = 1.2 ;
+ comVo.minutes = 3 ;
+ String nextDtStr = DateTime.nextXMinute_yyyy_MM_dd_HH_mm_ss(DateTime.yyyy_MM_dd_HH_mm_ss(), 5) ;//灏嗘潵5鍒嗛挓
+ int[] nextDt = DateTime.yyyy_MM_dd_HH_MM_SS_2_ymdhmsGroup(nextDtStr) ;
+ comVo.year = nextDt[0] ;
+ comVo.month = nextDt[1] ;
+ comVo.day = nextDt[2] ;
+ comVo.hour = nextDt[3] ;
+ comVo.minute = nextDt[4] ;
+ return this.sendCom2Mw(this.command(CodeV1_0_1.cd_A1, comVo, null)) ;
+ }
+
+ //瀹氶噺鍏抽榾璁″垝寮�闃�
+ private BaseResponse cdA2() throws Exception {
+ ComA2Vo comVo = new ComA2Vo() ;
+ comVo.icCardNo = CommandP206V1_0_0Ctrl.vsIcCardNo;
+ comVo.moneyRemain = 234.56 ;
+ comVo.waterPrice = 1.2 ;
+ comVo.waterAmount = 10 ;
+ String nextDtStr = DateTime.nextXMinute_yyyy_MM_dd_HH_mm_ss(DateTime.yyyy_MM_dd_HH_mm_ss(), 5) ;//灏嗘潵5鍒嗛挓
+ int[] nextDt = DateTime.yyyy_MM_dd_HH_MM_SS_2_ymdhmsGroup(nextDtStr) ;
+ comVo.year = nextDt[0] ;
+ comVo.month = nextDt[1] ;
+ comVo.day = nextDt[2] ;
+ comVo.hour = nextDt[3] ;
+ comVo.minute = nextDt[4] ;
+ return this.sendCom2Mw(this.command(CodeV1_0_1.cd_A2, comVo, null)) ;
+ }
+
+
private BaseResponse cdB0(){
return this.sendCom2Mw(this.command(CodeV1_0_1.cd_B0, null, null)) ;
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/dto/AutomaticClose.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/dto/AutomaticClose.java
index 1597b7f..4b92e14 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/dto/AutomaticClose.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/dto/AutomaticClose.java
@@ -1,6 +1,5 @@
package com.dy.pipIrrRemote.common.dto;
-import jakarta.validation.constraints.NotBlank;
import lombok.Data;
/**
@@ -15,22 +14,9 @@
public static final long serialVersionUID = 202407231039001L;
/**
- * 闃�鎺у櫒鍦板潃
+ * 铏氭嫙鍗D
*/
- @NotBlank(message = "闃�鎺у櫒鍦板潃涓嶈兘涓虹┖")
- private String rtuAddr;
-
- /**
- * 铏氭嫙鍗$紪鍙�
- */
- @NotBlank(message = "铏氭嫙鍗$紪鍙蜂笉鑳戒负绌�")
- private String vcNum;
-
- /**
- * 璁㈠崟鍙�
- */
- @NotBlank(message = "璁㈠崟鍙蜂笉鑳戒负绌�")
- private String orderNo;
+ private Long vcId;
/**
* 鐢ㄦ按鏃堕暱锛屾嫢鏈夊畾鏃跺叧闃�
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
index c0d871e..15eccae 100644
--- 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
@@ -326,33 +326,46 @@
}
Long intakeId = automaticClose.getIntakeId();
- String rtuAddr = automaticClose.getRtuAddr();
- String vcNum = automaticClose.getVcNum();
- String orderNo = automaticClose.getOrderNo();
+ Long vcId = automaticClose.getVcId();
Integer minutes = automaticClose.getMinutes();
Long operator = automaticClose.getOperator();
-
- Long vcId = Optional.ofNullable(seVirtualCardMapper.getVcIdByNum(vcNum)).orElse(0L);
Long comId = idLongGenerator.generate();
+
+ /**
+ * 濡傛灉鍐滄埛閫夋嫨浜嗚櫄鎷熷崱锛屽垯浣跨敤璇ヨ櫄鎷熷崱
+ * 濡傛灉鍐滄埛鏈�夋嫨铏氭嫙鍗★紝鍒欐牴鎹彇姘村彛ID鑾峰彇涓庝箣缁戝畾鐨勮櫄鎷熷崱
+ * 濡傛灉鍙栨按鍙f病鏈変笌涔嬬粦瀹氱殑铏氭嫙鍗★紝鍒欐彁绀哄啘鎴烽�夋嫨涓�寮犺櫄鎷熷崱
+ */
+ if(vcId == null) {
+ vcId = commandSv.getVcIdByIntakeId(intakeId);
+ if(vcId == null) {
+ return BaseResponseUtils.buildErrorMsg(RemoteResultCode.PLEASE_SELECT_A_VC.getMessage());
+ }
+ }
// 铏氭嫙鍗D鎹㈣櫄鎷熷崱瀵硅薄
VoVirtualCard vc = commandSv.getVcById(vcId);
- if (vc == null) {
+ if(vc == null) {
return BaseResponseUtils.buildErrorMsg(RemoteResultCode.PLEASE_SELECT_A_VC.getMessage());
}
+ String vcNum = vc.getVcNum().toString();
Double moneyRemain = vc.getMoney();
// 鑾峰彇姘翠环
Double waterPrice = commandSv.getPrice();
- // 闃�鎺у櫒鍦板潃鎹㈠彇姘村彛ID鍜岄�氳鍗忚
- JSONObject job_rtu = getRtu(null, rtuAddr);
+ // 鍙栨按鍙D鎹㈤榾鎺у櫒鍦板潃鍙婇�氳鍗忚
+ JSONObject job_rtu = getRtu(intakeId, null);
if(job_rtu == null) {
return BaseResponseUtils.buildErrorMsg(RemoteResultCode.RTU_NOT_EXIST.getMessage());
}
+ String rtuAddr = job_rtu.getString("rtuAddr");
String protocol = job_rtu.getString("protocol");
String orgTag = job_rtu.getString("orgTag");
comSendUrl = env.getProperty(pro_mw + "." + orgTag + "." + key_mw);
+
+ // 鐢熸垚璁㈠崟鍙�
+ String orderNo = generateOrderNo();
String commandCode = null;
if(protocol.equals("p206V202404")) {
@@ -407,34 +420,47 @@
}
Long intakeId = automaticClose.getIntakeId();
- String rtuAddr = automaticClose.getRtuAddr();
- String vcNum = automaticClose.getVcNum();
- String orderNo = automaticClose.getOrderNo();
+ Long vcId = automaticClose.getVcId();
Integer waterAmount = automaticClose.getWaterAmount();
Long operator = automaticClose.getOperator();
-
- Long vcId = Optional.ofNullable(seVirtualCardMapper.getVcIdByNum(vcNum)).orElse(0L);
Long comId = idLongGenerator.generate();
+
+ /**
+ * 濡傛灉鍐滄埛閫夋嫨浜嗚櫄鎷熷崱锛屽垯浣跨敤璇ヨ櫄鎷熷崱
+ * 濡傛灉鍐滄埛鏈�夋嫨铏氭嫙鍗★紝鍒欐牴鎹彇姘村彛ID鑾峰彇涓庝箣缁戝畾鐨勮櫄鎷熷崱
+ * 濡傛灉鍙栨按鍙f病鏈変笌涔嬬粦瀹氱殑铏氭嫙鍗★紝鍒欐彁绀哄啘鎴烽�夋嫨涓�寮犺櫄鎷熷崱
+ */
+ if(vcId == null) {
+ vcId = commandSv.getVcIdByIntakeId(intakeId);
+ if(vcId == null) {
+ return BaseResponseUtils.buildErrorMsg(RemoteResultCode.PLEASE_SELECT_A_VC.getMessage());
+ }
+ }
// 铏氭嫙鍗D鎹㈣櫄鎷熷崱瀵硅薄
VoVirtualCard vc = commandSv.getVcById(vcId);
- if (vc == null) {
+ if(vc == null) {
return BaseResponseUtils.buildErrorMsg(RemoteResultCode.PLEASE_SELECT_A_VC.getMessage());
}
+ String vcNum = vc.getVcNum().toString();
Double moneyRemain = vc.getMoney();
// 鑾峰彇姘翠环
Double waterPrice = commandSv.getPrice();
- // 闃�鎺у櫒鍦板潃鎹㈠彇姘村彛ID鍜岄�氳鍗忚
- JSONObject job_rtu = getRtu(null, rtuAddr);
+ // 鍙栨按鍙D鎹㈤榾鎺у櫒鍦板潃鍙婇�氳鍗忚
+ JSONObject job_rtu = getRtu(intakeId, null);
if(job_rtu == null) {
return BaseResponseUtils.buildErrorMsg(RemoteResultCode.RTU_NOT_EXIST.getMessage());
}
+ String rtuAddr = job_rtu.getString("rtuAddr");
String protocol = job_rtu.getString("protocol");
String orgTag = job_rtu.getString("orgTag");
comSendUrl = env.getProperty(pro_mw + "." + orgTag + "." + key_mw);
+ // 鐢熸垚璁㈠崟鍙�
+ String orderNo = generateOrderNo();
+
String commandCode = null;
if(protocol.equals("p206V202404")) {
return BaseResponseUtils.buildSuccess();
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java
index 4dbfadf..bd57df7 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java
@@ -326,33 +326,46 @@
}
Long intakeId = automaticClose.getIntakeId();
- String rtuAddr = automaticClose.getRtuAddr();
- String vcNum = automaticClose.getVcNum();
- String orderNo = automaticClose.getOrderNo();
+ Long vcId = automaticClose.getVcId();
Integer minutes = automaticClose.getMinutes();
Long operator = automaticClose.getOperator();
-
- Long vcId = Optional.ofNullable(seVirtualCardMapper.getVcIdByNum(vcNum)).orElse(0L);
Long comId = idLongGenerator.generate();
+
+ /**
+ * 濡傛灉鍐滄埛閫夋嫨浜嗚櫄鎷熷崱锛屽垯浣跨敤璇ヨ櫄鎷熷崱
+ * 濡傛灉鍐滄埛鏈�夋嫨铏氭嫙鍗★紝鍒欐牴鎹彇姘村彛ID鑾峰彇涓庝箣缁戝畾鐨勮櫄鎷熷崱
+ * 濡傛灉鍙栨按鍙f病鏈変笌涔嬬粦瀹氱殑铏氭嫙鍗★紝鍒欐彁绀哄啘鎴烽�夋嫨涓�寮犺櫄鎷熷崱
+ */
+ if(vcId == null) {
+ vcId = commandSv.getVcIdByIntakeId(intakeId);
+ if(vcId == null) {
+ return BaseResponseUtils.buildErrorMsg(WechatResultCode.PLEASE_SELECT_A_VC.getMessage());
+ }
+ }
// 铏氭嫙鍗D鎹㈣櫄鎷熷崱瀵硅薄
VoVirtualCard vc = commandSv.getVcById(vcId);
- if (vc == null) {
+ if(vc == null) {
return BaseResponseUtils.buildErrorMsg(WechatResultCode.PLEASE_SELECT_A_VC.getMessage());
}
+ String vcNum = vc.getVcNum().toString();
Double moneyRemain = vc.getMoney();
// 鑾峰彇姘翠环
Double waterPrice = commandSv.getPrice();
- // 闃�鎺у櫒鍦板潃鎹㈠彇姘村彛ID鍜岄�氳鍗忚
- JSONObject job_rtu = getRtu(null, rtuAddr);
+ // 鍙栨按鍙D鎹㈤榾鎺у櫒鍦板潃鍙婇�氳鍗忚
+ JSONObject job_rtu = getRtu(intakeId, null);
if(job_rtu == null) {
return BaseResponseUtils.buildErrorMsg(WechatResultCode.RTU_NOT_EXIST.getMessage());
}
+ String rtuAddr = job_rtu.getString("rtuAddr");
String protocol = job_rtu.getString("protocol");
String orgTag = job_rtu.getString("orgTag");
comSendUrl = env.getProperty(pro_mw + "." + orgTag + "." + key_mw);
+
+ // 鐢熸垚璁㈠崟鍙�
+ String orderNo = generateOrderNo();
String commandCode = null;
if(protocol.equals("p206V202404")) {
@@ -407,34 +420,46 @@
}
Long intakeId = automaticClose.getIntakeId();
- String rtuAddr = automaticClose.getRtuAddr();
- String vcNum = automaticClose.getVcNum();
- String orderNo = automaticClose.getOrderNo();
+ Long vcId = automaticClose.getVcId();
Integer waterAmount = automaticClose.getWaterAmount();
Long operator = automaticClose.getOperator();
-
- Long vcId = Optional.ofNullable(seVirtualCardMapper.getVcIdByNum(vcNum)).orElse(0L);
Long comId = idLongGenerator.generate();
+
+ /**
+ * 濡傛灉鍐滄埛閫夋嫨浜嗚櫄鎷熷崱锛屽垯浣跨敤璇ヨ櫄鎷熷崱
+ * 濡傛灉鍐滄埛鏈�夋嫨铏氭嫙鍗★紝鍒欐牴鎹彇姘村彛ID鑾峰彇涓庝箣缁戝畾鐨勮櫄鎷熷崱
+ * 濡傛灉鍙栨按鍙f病鏈変笌涔嬬粦瀹氱殑铏氭嫙鍗★紝鍒欐彁绀哄啘鎴烽�夋嫨涓�寮犺櫄鎷熷崱
+ */
+ if(vcId == null) {
+ vcId = commandSv.getVcIdByIntakeId(intakeId);
+ if(vcId == null) {
+ return BaseResponseUtils.buildErrorMsg(WechatResultCode.PLEASE_SELECT_A_VC.getMessage());
+ }
+ }
// 铏氭嫙鍗D鎹㈣櫄鎷熷崱瀵硅薄
VoVirtualCard vc = commandSv.getVcById(vcId);
- if (vc == null) {
+ if(vc == null) {
return BaseResponseUtils.buildErrorMsg(WechatResultCode.PLEASE_SELECT_A_VC.getMessage());
}
+ String vcNum = vc.getVcNum().toString();
Double moneyRemain = vc.getMoney();
// 鑾峰彇姘翠环
Double waterPrice = commandSv.getPrice();
- // 闃�鎺у櫒鍦板潃鎹㈠彇姘村彛ID鍜岄�氳鍗忚
- JSONObject job_rtu = getRtu(null, rtuAddr);
+ // 鍙栨按鍙D鎹㈤榾鎺у櫒鍦板潃鍙婇�氳鍗忚
+ JSONObject job_rtu = getRtu(intakeId, null);
if(job_rtu == null) {
return BaseResponseUtils.buildErrorMsg(WechatResultCode.RTU_NOT_EXIST.getMessage());
}
+ String rtuAddr = job_rtu.getString("rtuAddr");
String protocol = job_rtu.getString("protocol");
String orgTag = job_rtu.getString("orgTag");
comSendUrl = env.getProperty(pro_mw + "." + orgTag + "." + key_mw);
+ // 鐢熸垚璁㈠崟鍙�
+ String orderNo = generateOrderNo();
String commandCode = null;
if(protocol.equals("p206V202404")) {
return BaseResponseUtils.buildSuccess();
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/dto/AutomaticClose.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/dto/AutomaticClose.java
index 5989744..309f131 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/dto/AutomaticClose.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/dto/AutomaticClose.java
@@ -1,6 +1,5 @@
package com.dy.pipIrrWechat.command.dto;
-import jakarta.validation.constraints.NotBlank;
import lombok.Data;
/**
@@ -14,22 +13,9 @@
public static final long serialVersionUID = 202407231056001L;
/**
- * 闃�鎺у櫒鍦板潃
+ * 铏氭嫙鍗D
*/
- @NotBlank(message = "闃�鎺у櫒鍦板潃涓嶈兘涓虹┖")
- private String rtuAddr;
-
- /**
- * 铏氭嫙鍗$紪鍙�
- */
- @NotBlank(message = "铏氭嫙鍗$紪鍙蜂笉鑳戒负绌�")
- private String vcNum;
-
- /**
- * 璁㈠崟鍙�
- */
- @NotBlank(message = "璁㈠崟鍙蜂笉鑳戒负绌�")
- private String orderNo;
+ private Long vcId;
/**
* 鐢ㄦ按鏃堕暱锛屾嫢鏈夊畾鏃跺叧闃�
--
Gitblit v1.8.0