From 8a50defcdf9022719d042f857e289e47f94914f7 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期三, 08 五月 2024 15:04:10 +0800 Subject: [PATCH] 1、完善王江海制定的协议实现; 2、基于王江海制定的协议上行数据处任务树基础部分实现; --- pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealControllerTramp.java | 33 ++++ pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_85_Down.java | 5 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TkReceive.java | 2 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlParse.java | 6 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd93_A3_85Vo.java | 12 + pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkPreGenObjs.java | 4 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatus.java | 161 +++++++++++++++++++++++ pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealControllerNoTramp.java | 28 ++++ /dev/null | 4 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkFindReport.java | 34 ++++ pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml | 27 +++ pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkPreGenObjs.java | 52 +++++++ pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_93_A3_Up.java | 4 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkFindP206V1_0_0.java | 2 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd80_5BVo.java | 2 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkFindP206V202404.java | 29 ++++ pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_85_Up.java | 4 17 files changed, 385 insertions(+), 24 deletions(-) diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DataAlarmVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DataAlarmVo.java deleted file mode 100644 index 65f6fcb..0000000 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DataAlarmVo.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.dy.common.mw.protocol.p206V202404; - -import lombok.Data; - -@Data -public class DataAlarmVo { - public Byte batteryVolt ;// 钃勭數姹犵數鍘� - public Byte loss ;//婕忔崯 - public Byte meter ;//浠〃 - public Byte valve ;//闃�闂� - - public String toString(){ - StringBuilder str = new StringBuilder() ; - str.append(" 鎶ヨ:\n"); - str.append(" 钃勭數姹犵數鍘嬶細"); - str.append(batteryVolt==null?"":(batteryVolt==1?"鎶ヨ":"姝e父")); - str.append("\n"); - str.append(" 婕忔崯锛�"); - str.append(loss==null?"":(loss==1?"鎶ヨ":"姝e父")); - str.append("\n"); - str.append(" 浠〃锛�"); - str.append(meter==null?"":(meter==1?"鎶ヨ":"姝e父")); - str.append("\n"); - str.append(" 闃�闂細"); - str.append(valve==null?"":(valve==1?"鎶ヨ":"姝e父")); - return str.toString() ; - } -} diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DataStateVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DataStateVo.java deleted file mode 100644 index 41acc0d..0000000 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DataStateVo.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.dy.common.mw.protocol.p206V202404; - -import lombok.Data; - -@Data -public class DataStateVo { - public Byte icCard;// IC鍗″姛鑳� - public Byte working;//宸ヤ綔鐘舵�� - public Byte valve ;//闃�闂� - - public String toString(){ - StringBuilder str = new StringBuilder() ; - str.append(" 鐘舵��:\n"); - str.append(" IC 鍗″姛鑳斤細"); - str.append(icCard ==null?"":(icCard ==1?"鏈夋晥":"鏃犳晥")); - str.append("\n"); - str.append(" 宸ヤ綔鐘舵�侊細"); - str.append(working ==null?"":(working ==1?"鍚姩":"鍋滄")); - str.append("\n"); - str.append(" 闃�闂ㄧ姸鎬侊細"); - str.append(valve==null?"":(valve==1?"鎵撳紑":"鍏抽棴")); - return str.toString() ; - } -} diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_85_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_85_Down.java index a19ddae..aaa8a04 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_85_Down.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_85_Down.java @@ -4,8 +4,7 @@ import com.dy.common.mw.protocol.p206V202404.CodeV202404; import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404; import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate; -import com.dy.common.mw.protocol.p206V202404.upVos.DataCd84Vo; -import com.dy.common.mw.protocol.p206V202404.upVos.DataCd85Vo; +import com.dy.common.mw.protocol.p206V202404.upVos.DataCd93_A3_85Vo; import com.dy.common.util.ByteUtil; @AnnotationCodeDown(ifAny={ @@ -48,7 +47,7 @@ public byte[] doParse(ParseParamsForDownV202404 para) throws Exception { byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode); if(para.param != null){ - DataCd85Vo cdData = (DataCd85Vo)para.param ; + DataCd93_A3_85Vo cdData = (DataCd93_A3_85Vo)para.param ; byte[] bs = new byte[2] ; bs[0] = (byte)(Integer.parseInt(cdData.controllerType, 16)); bs[1] = cdData.projectNo.byteValue() ; diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_85_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_85_Up.java index b041c07..b796c38 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_85_Up.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_85_Up.java @@ -4,7 +4,7 @@ import com.dy.common.mw.protocol.*; import com.dy.common.mw.protocol.p206V202404.*; import com.dy.common.mw.protocol.p206V202404.parse.global.GlParse; -import com.dy.common.mw.protocol.p206V202404.upVos.DataCd85Vo; +import com.dy.common.mw.protocol.p206V202404.upVos.DataCd93_A3_85Vo; import com.dy.common.util.ByteUtil; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -84,7 +84,7 @@ */ protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception { DataV202404 dV1 = (DataV202404)data.getSubData() ; - DataCd85Vo cdData = new DataCd85Vo() ; + DataCd93_A3_85Vo cdData = new DataCd93_A3_85Vo(CodeV202404.getCodeName(dataCode)) ; dV1.subData = cdData ; GlParse.parseCd93A3And85(bs, cdData) ; diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_93_A3_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_93_A3_Up.java index 04d371d..8687df3 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_93_A3_Up.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_93_A3_Up.java @@ -4,7 +4,7 @@ import com.dy.common.mw.protocol.*; import com.dy.common.mw.protocol.p206V202404.*; import com.dy.common.mw.protocol.p206V202404.parse.global.GlParse; -import com.dy.common.mw.protocol.p206V202404.upVos.DataCd93_A3Vo; +import com.dy.common.mw.protocol.p206V202404.upVos.DataCd93_A3_85Vo; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -55,7 +55,7 @@ */ protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception { DataV202404 dV1 = (DataV202404)data.getSubData() ; - DataCd93_A3Vo cdData = new DataCd93_A3Vo() ; + DataCd93_A3_85Vo cdData = new DataCd93_A3_85Vo(CodeV202404.getCodeName(dataCode)) ; dV1.subData = cdData ; GlParse.parseCd93A3And85(bs, cdData) ; 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 2fafab2..7ba7593 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 @@ -3,7 +3,7 @@ import com.dy.common.mw.protocol.p206V202404.ProtocolConstantV206V202404; import com.dy.common.mw.protocol.p206V202404.upVos.DataCd80_5BVo; import com.dy.common.mw.protocol.p206V202404.upVos.DataCd81Vo; -import com.dy.common.mw.protocol.p206V202404.upVos.DataCd93_A3Vo; +import com.dy.common.mw.protocol.p206V202404.upVos.DataCd93_A3_85Vo; import com.dy.common.util.ByteUtil; import com.dy.common.util.ByteUtilUnsigned; import org.apache.logging.log4j.LogManager; @@ -112,7 +112,7 @@ * @param index * @return */ - public static void parseAlarmAndState(byte[] bs, int index, DataCd93_A3Vo vo){ + public static void parseAlarmAndState(byte[] bs, int index, DataCd93_A3_85Vo vo){ byte b = bs[index] ; vo.statePump = (byte)(b & 0x1) ; vo.alarmWaterRemain = (byte)(b & 0x2) ; @@ -285,7 +285,7 @@ * @param cdData * @throws Exception */ - public static void parseCd93A3And85(byte[] bs, DataCd93_A3Vo cdData) throws Exception { + public static void parseCd93A3And85(byte[] bs, DataCd93_A3_85Vo cdData) throws Exception { int index = ProtocolConstantV206V202404.dataIndex ; cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ; 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 160ddc5..879cf50 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 @@ -2,7 +2,7 @@ import lombok.Data; -//璁惧缁堢宸ヤ綔涓婃姤 + 璁惧缁堢宸ヤ綔涓婃姤 +//璁惧缁堢宸ヤ綔涓婃姤 + 鏌ヨ璁惧缁堢瀹炴椂鍊� @Data public class DataCd80_5BVo { diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd85Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd85Vo.java deleted file mode 100644 index 5c4589c..0000000 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd85Vo.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.dy.common.mw.protocol.p206V202404.upVos; - -public class DataCd85Vo extends DataCd93_A3Vo{ -} 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_A3_85Vo.java similarity index 95% rename from pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd93_A3Vo.java rename to pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd93_A3_85Vo.java index a6ede90..6504008 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_A3_85Vo.java @@ -2,9 +2,9 @@ import lombok.Data; -//骞冲彴/APP杩滅▼鍏抽棴姘存车/闃�闂� +//骞冲彴/APP杩滅▼鍏抽棴姘存车/闃�闂� + 鍒峰崱鍏虫车/闃�涓婃姤 @Data -public class DataCd93_A3Vo { +public class DataCd93_A3_85Vo { public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣� public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣� @@ -41,6 +41,14 @@ public Byte alarmEleLowVolt ; //涓夌浉鐢垫瑺鍘嬫姤璀� (1锛氭瑺鍘嬫姤璀� 0锛氭甯�) public Byte stateIcEnable ; //IC鍗′娇鑳� (1銆両C鏈夊埛鍗℃敮鎸� 0锛氫笉鏀寔) + + public String comName ;//鍛戒护鍚嶇О + + public DataCd93_A3_85Vo(String comName){ + this.comName = comName ; + } + + public String toString(){ StringBuffer sb = new StringBuffer() ; sb.append(" 骞冲彴/APP杩滅▼鍏抽棴姘存车/闃�闂� : \n") ; diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TkReceive.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TkReceive.java index 8b57bbf..a0d0608 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TkReceive.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TkReceive.java @@ -21,7 +21,7 @@ log.error("涓ラ噸閿欒锛孯TU涓婅鏁版嵁涓虹┖锛�" ); }else{ if(data instanceof Data){ - //this.toNextTasks(data); + this.toNextTasks(data); }else{ log.error("涓ラ噸閿欒锛岃鏁版嵁绫诲瀷锛�" + data.getClass().getName() + "锛夛紝鎺ユ敹鏁版嵁浠诲姟杩樻湭瀹炵幇锛�" ); } diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkFindP206V1_0_0.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkFindP206V1_0_0.java index 278ffda..4ac1923 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkFindP206V1_0_0.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkFindP206V1_0_0.java @@ -18,7 +18,7 @@ public void execute(Object data) { Data d = (Data)data ; if(d.getProtocol() != null && d.getProtocol().equals(ProtocolConstantV206V1_0_0.protocolName)){ - this.toNextTasks(data); + //this.toNextTasks(data); }else{ //涓嶆槸鏈崗璁殑鏁版嵁 } diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkPreGenObjs.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkPreGenObjs.java index ca7516e..b95b9ef 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkPreGenObjs.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkPreGenObjs.java @@ -32,13 +32,11 @@ PrController controller = sv.getControllersByRtuAddrAndIntakeNotNull(rtuAddr) ; PrControllerTramp controllerTramp = null ; if(controller == null){ - //鏁版嵁搴撲腑鏈煡璇�(宸茬粡缁戝畾涓旀帶鍒跺櫒鍦板潃鐩哥)鍒版帶鍒跺櫒锛圧TU瀹炰綋锛� + //鏁版嵁搴撲腑鏈煡璇㈠埌鎺у埗鍣紙RTU瀹炰綋锛�(宸茬粡缁戝畾涓旀帶鍒跺櫒鍦板潃鐩哥) //娴佹氮鑰呮帶鍒跺櫒 controllerTramp = sv.getPrControllerTrampByRtuAddr(rtuAddr); if(controllerTramp == null){ controllerTramp = new PrControllerTramp(null, rtuAddr, d.getProtocol(), new Date()) ; - //this.taskResult = new Object[]{sv, null, rtuTramp} ; - //this.toNextOneTask(data, TkDealControllerTramp.taskId); } } //涓嶈鏄惁涓烘祦娴帶鍒跺櫒锛圧TU瀹炰綋锛夛紝閮借杩涜涓嬫宸ヤ綔锛岃褰曞叾涓婃姤鐨勪竴浜涙暟鎹紝褰撶粦瀹氭帶鍒跺櫒鍚庯紝鏁版嵁鑷姩鏈変簡褰掑睘 diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatus.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatus.java new file mode 100644 index 0000000..f968801 --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatus.java @@ -0,0 +1,161 @@ +package com.dy.rtuMw.server.rtuData.p206V202404; + +import com.dy.common.mw.protocol.Data; +import com.dy.common.mw.protocol.p206V202404.DataV202404 ; +import com.dy.common.mw.protocol.p206V202404.upVos.DataCd80_5BVo; +import com.dy.common.mw.protocol.p206V202404.upVos.DataCd81Vo; +import com.dy.common.mw.protocol.p206V202404.upVos.DataCd93_A3_85Vo; +import com.dy.common.util.DateTime; +import com.dy.pipIrrGlobal.pojoPr.PrController; +import com.dy.pipIrrGlobal.pojoRm.RmAlarmStateHistory; +import com.dy.pipIrrGlobal.pojoRm.RmAlarmStateLast; +import com.dy.rtuMw.server.rtuData.TaskSurpport; +import com.dy.rtuMw.server.rtuData.dbSv.DbSv; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +/** + * @Author liurunyu + * @Date 2024/5/8 14:18 + */ +public class TkDealAlarmStatus extends TaskSurpport { + + private static final Logger log = LogManager.getLogger(TkDealAlarmStatus.class.getName()) ; + + //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷� + public static final String taskId = "TkDealAlarmStatus" ; + + /** + * 鎵ц鑺傜偣浠诲姟锛氭姤璀﹀強鐘舵�� + * @param data 闇�瑕佸鐞嗙殑鏁版嵁 + */ + @Override + public void execute(Object data) { + Data d = (Data)data ; + Object protocolData = d.getSubData() ; + if(protocolData != null){ + DataV202404 dV202404 = (DataV202404)protocolData ; + if(dV202404 != null){ + Object cdObj = dV202404.subData ; + if(cdObj != null){ + try{ + Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ; + DbSv sv = (DbSv)objs[0] ; + PrController controller = (PrController)objs[1] ; + if(cdObj instanceof DataCd80_5BVo){ + //璁惧缁堢宸ヤ綔涓婃姤 + 鏌ヨ璁惧缁堢瀹炴椂鍊� + DataCd80_5BVo cdData = (DataCd80_5BVo)(cdObj) ; + this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, null, null) ; + this.saveHistory(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, null, null) ; + }else if(cdObj instanceof DataCd93_A3_85Vo){ + //骞冲彴/APP杩滅▼鍏抽棴姘存车/闃�闂� + 鍒峰崱鍏虫车/闃�涓婃姤 + DataCd93_A3_85Vo cdData = (DataCd93_A3_85Vo)(cdObj) ; + this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.endDt, null, cdData, null) ; + this.saveHistory(sv, controller, d.getRtuAddr(), cdData.endDt, null, cdData, null) ; + }else if(cdObj instanceof DataCd81Vo){ + //璁惧缁堢闅忔満鑷姤 + DataCd81Vo cdData = (DataCd81Vo)(cdObj) ; + this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), null, null, null, cdData) ; + this.saveHistory(sv, controller, d.getRtuAddr(), null, null, null, cdData) ; + } + }catch (Exception e){ + log.error("淇濆瓨鎺у埗鍣ㄦ姤璀﹀拰鐘舵�佹暟鎹椂鍙戠敓寮傚父", e); + } + } + } + } + } + /** + * 淇濆瓨鎶ヨ鐘舵�佹渶鏂版暟鎹� + * @param sv 鏈嶅姟 + * @param controller 鎺у埗鍣ㄥ璞� + * @param rtuAddr 鎺у埗鍣ㄥ湴鍧� + * @param rtuDt 鎺у埗鍣ㄦ椂閽� + * @param vo80_5B + * @param vo93_A3_85 + * @param vo81 + */ + private void saveOrUpdateLast(DbSv sv, + PrController controller, + String rtuAddr, + String rtuDt, + DataCd80_5BVo vo80_5B, + DataCd93_A3_85Vo vo93_A3_85, + DataCd81Vo vo81) throws Exception { +// RmAlarmStateLast po = sv.getRmAlarmStateLast(rtuAddr) ; +// if(po == null){ +// po = new RmAlarmStateLast(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(), +// rtuAddr, +// DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt), +// DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(rtuDt), +// alarmVo==null?null:alarmVo.batteryVolt, alarmVo==null?null:alarmVo.loss, alarmVo==null?null:alarmVo.meter, alarmVo==null?null:alarmVo.valve, +// stateVo==null?null:stateVo.icCard, stateVo==null?null:stateVo.working, stateVo==null?null:stateVo.valve) ; +// sv.saveRmAlarmStateLast(po) ; +// }else{ +// po = this.update(controller, po, rtuDt, dV1_0_1, alarmVo, stateVo) ; +// sv.updateRmAlarmStateLast(po); +// } + } + + /** + * 淇濆瓨鎶ヨ鐘舵�佸巻鍙茶褰� + * @param sv 鏈嶅姟 + * @param controller 鎺у埗鍣ㄥ璞� + * @param rtuAddr 鎺у埗鍣ㄥ湴鍧� + * @param rtuDt 鎺у埗鍣ㄦ椂閽� + * @param vo80_5B + * @param vo93_A3_85 + * @param vo81 + */ + private void saveHistory(DbSv sv, + PrController controller, + String rtuAddr, + String rtuDt, + DataCd80_5BVo vo80_5B, + DataCd93_A3_85Vo vo93_A3_85, + DataCd81Vo vo81) throws Exception { +// RmAlarmStateHistory po = new RmAlarmStateHistory(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(), +// rtuAddr, +// DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt), +// DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(rtuDt), +// alarmVo==null?null:alarmVo.batteryVolt, alarmVo==null?null:alarmVo.loss, alarmVo==null?null:alarmVo.meter, alarmVo==null?null:alarmVo.valve, +// stateVo==null?null:stateVo.icCard, stateVo==null?null:stateVo.working, stateVo==null?null:stateVo.valve) ; +// sv.saveRmAlarmStateHistory(po) ; + } + + + private RmAlarmStateLast update(PrController controller, + RmAlarmStateLast po, + String rtuDt, + DataCd80_5BVo vo80_5B, + DataCd93_A3_85Vo vo93_A3_85, + DataCd81Vo vo81) throws Exception { +// po.controllerid = controller==null?null:controller.getId() ; +// po.intakeid = controller==null?null:controller.getIntakeId() ; +// +// po.dt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt) ; +// po.rtudt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(rtuDt) ; +// if(alarmVo != null){ +// po.bateryvolt = alarmVo.batteryVolt ; +// po.loss = alarmVo.loss ; +// po.meter = alarmVo.meter ; +// po.valve = alarmVo.valve ; +// }else{ +// po.bateryvolt = null ; +// po.loss = null ; +// po.meter = null ; +// po.valve = null ; +// } +// if(stateVo != null){ +// po.iccard = stateVo.icCard ; +// po.working = stateVo.working ; +// po.valvestate = stateVo.valve ; +// }else{ +// po.iccard = null ; +// po.working = null ; +// po.valvestate = null ; +// } +// return po ; + return null ; + } +} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealControllerNoTramp.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealControllerNoTramp.java new file mode 100644 index 0000000..1743348 --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealControllerNoTramp.java @@ -0,0 +1,28 @@ +package com.dy.rtuMw.server.rtuData.p206V202404; + +import com.dy.rtuMw.server.rtuData.TaskSurpport; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +/** + * @Author liurunyu + * @Date 2024/5/8 14:18 + * 澶勭悊闈炴祦娴帶鍒跺櫒,姝や换鍔℃棤鍏蜂綋涓氬姟閫昏緫锛屽彧鏄湪浠诲姟xml閰嶇疆鏂囦欢涓紝妗嗕綇鍏跺瓙浠诲姟鑺傜偣 + */ +public class TkDealControllerNoTramp extends TaskSurpport { + + private static final Logger log = LogManager.getLogger(TkDealControllerNoTramp.class.getName()) ; + + //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷� + public static final String taskId = "TkDealControllerNoTramp" ; + + /** + * 鎵ц鑺傜偣浠诲姟 + * @param data 闇�瑕佸鐞嗙殑鏁版嵁 + */ + @Override + public void execute(Object data) { + //姝や换鍔℃棤鍏蜂綋涓氬姟閫昏緫锛屽彧鏄湪浠诲姟xml閰嶇疆鏂囦欢涓紝妗嗕綇鍏跺瓙浠诲姟鑺傜偣 + this.toNextTasks(data); + } +} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealControllerTramp.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealControllerTramp.java new file mode 100644 index 0000000..2604268 --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealControllerTramp.java @@ -0,0 +1,33 @@ +package com.dy.rtuMw.server.rtuData.p206V202404; + +import com.dy.pipIrrGlobal.pojoPr.PrControllerTramp; +import com.dy.rtuMw.server.rtuData.TaskSurpport; +import com.dy.rtuMw.server.rtuData.dbSv.DbSv; +import com.dy.rtuMw.server.rtuData.p206V1_0_0.TkPreGenObjs; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +/** + * @Author liurunyu + * @Date 2024/5/8 14:18 + */ +public class TkDealControllerTramp extends TaskSurpport { + + private static final Logger log = LogManager.getLogger(TkDealControllerTramp.class.getName()) ; + + //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷� + public static final String taskId = "TkDealControllerTramp" ; + + /** + * 鎵ц鑺傜偣浠诲姟 + * @param data 闇�瑕佸鐞嗙殑鏁版嵁 + */ + @Override + public void execute(Object data) { + Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ; + PrControllerTramp tramp = (PrControllerTramp)objs[2] ; + if(tramp != null){ + DbSv sv = (DbSv)objs[0] ; + sv.savePrConctrollerTramp(tramp); + } + } +} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkFindP206V202404.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkFindP206V202404.java new file mode 100644 index 0000000..30f7e28 --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkFindP206V202404.java @@ -0,0 +1,29 @@ +package com.dy.rtuMw.server.rtuData.p206V202404; + +import com.dy.common.mw.protocol.Data; +import com.dy.common.mw.protocol.p206V202404.ProtocolConstantV206V202404 ; +import com.dy.rtuMw.server.rtuData.TaskSurpport; +/** + * @Author liurunyu + * @Date 2024/5/8 14:18 + */ +public class TkFindP206V202404 extends TaskSurpport { + + //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷� + public static final String taskId = "TkFindP206V202404" ; + + /** + * 鎵ц鑺傜偣浠诲姟 + * @param data 闇�瑕佸鐞嗙殑鏁版嵁 + */ + @Override + public void execute(Object data) { + Data d = (Data)data ; + if(d.getProtocol() != null && d.getProtocol().equals(ProtocolConstantV206V202404.protocolName)){ + this.toNextTasks(data); + }else{ + //涓嶆槸鏈崗璁殑鏁版嵁 + } + } + +} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkFindReport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkFindReport.java new file mode 100644 index 0000000..0d6d75f --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkFindReport.java @@ -0,0 +1,34 @@ +package com.dy.rtuMw.server.rtuData.p206V202404; + +import com.dy.common.mw.protocol.Data; +import com.dy.rtuMw.server.rtuData.TaskSurpport; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +/** + * @Author liurunyu + * @Date 2024/5/8 14:18 + */ +/** + * 璇嗗埆闈炲懡浠ゅ簲绛� + */ +public class TkFindReport extends TaskSurpport { + + private static final Logger log = LogManager.getLogger(TkFindReport.class.getName()) ; + + //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷� + public static final String taskId = "TkFindReport" ; + + /** + * 鎵ц鑺傜偣浠诲姟 + * @param data 闇�瑕佸鐞嗙殑鏁版嵁 + */ + @Override + public void execute(Object data) { + Data d = (Data)data ; + if(d.getCommandId() == null || d.getCommandId().trim().equals("")){ + //鏃犲懡浠D + this.toNextTasks(data); + } + } +} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkPreGenObjs.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkPreGenObjs.java new file mode 100644 index 0000000..6c6bcc6 --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkPreGenObjs.java @@ -0,0 +1,52 @@ +package com.dy.rtuMw.server.rtuData.p206V202404; + +import com.dy.common.mw.protocol.Data; +import com.dy.common.springUtil.SpringContextUtil; +import com.dy.pipIrrGlobal.pojoPr.PrController; +import com.dy.pipIrrGlobal.pojoPr.PrControllerTramp; +import com.dy.rtuMw.server.rtuData.TaskSurpport; +import com.dy.rtuMw.server.rtuData.dbSv.DbSv; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.text.ParseException; +import java.util.Date; +/** + * @Author liurunyu + * @Date 2024/5/8 14:18 + */ +public class TkPreGenObjs extends TaskSurpport { + + private static final Logger log = LogManager.getLogger(TkPreGenObjs.class.getName()) ; + + //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷� + public static final String taskId = "TkPreGenObjs" ; + + /** + * 鎵ц鑺傜偣浠诲姟 + * @param data 闇�瑕佸鐞嗙殑鏁版嵁 + */ + @Override + public void execute(Object data) throws ParseException { + Data d = (Data)data ; + String rtuAddr = d.getRtuAddr() ;//TkRtuData閲屽垽鏂簡rtuAddr涓虹┖ + DbSv sv = (DbSv) SpringContextUtil.getBean(DbSv.class) ; + if(sv != null){ + PrController controller = sv.getControllersByRtuAddrAndIntakeNotNull(rtuAddr) ; + PrControllerTramp controllerTramp = null ; + if(controller == null){ + //鏁版嵁搴撲腑鏈煡璇㈠埌鎺у埗鍣紙RTU瀹炰綋锛�(宸茬粡缁戝畾涓旀帶鍒跺櫒鍦板潃鐩哥) + //娴佹氮鑰呮帶鍒跺櫒 + controllerTramp = sv.getPrControllerTrampByRtuAddr(rtuAddr); + if(controllerTramp == null){ + controllerTramp = new PrControllerTramp(null, rtuAddr, d.getProtocol(), new Date()) ; + } + } + //涓嶈鏄惁涓烘祦娴帶鍒跺櫒锛圧TU瀹炰綋锛夛紝閮借杩涜涓嬫宸ヤ綔锛岃褰曞叾涓婃姤鐨勪竴浜涙暟鎹紝褰撶粦瀹氭帶鍒跺櫒鍚庯紝鏁版嵁鑷姩鏈変簡褰掑睘 + this.taskResult = new Object[]{sv, controller, controllerTramp} ; + this.toNextTasks(data); + }else{ + log.error("涓ラ噸閿欒锛屾湭鑳藉緱鍒癉bSv瀵硅薄"); + } + } +} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml index 2890afd..4ad3351 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml @@ -13,8 +13,8 @@ <task id="TkDealControllerTramp" name="澶勭悊娴佹氮鎺у埗鍣�" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealControllerTramp" /> <!-- 闈炴祦娴�匯TU锛屽繀椤绘斁鍦═kDealControllerTramp鍚庨潰 --> <task id="TkDealControllerNoTramp" name="闈炴祦娴�匯TU" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealControllerNoTramp"> - <!-- 璇嗗埆涓诲姩涓婃姤鏁版嵁 --> - <task id="TkFindReport" name="璇嗗埆鎺у埗鍣ㄤ笂鎶ユ暟鎹�" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkFindReport"> + <!-- 璇嗗埆闈炲懡浠ゅ簲绛斾笂琛屾暟鎹� --> + <task id="TkFindReport" name="璇嗗埆闈炲懡浠ゅ簲绛斾笂琛屾暟鎹�" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkFindReport"> <task id="TkDealAlarmStatus" name="鎺у埗鍣ㄦ姤璀︿笌鐘舵�佹暟鎹�" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealAlarmStatus" /> <task id="TkDealAutoReport" name="鎺у埗鍣ㄨ嚜鎶ユ暟鎹紙鏁寸偣鎶ワ級" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealAutoReport" /> <task id="TkDealWorkReport" name="鎺у埗鍣ㄩ榾寮�宸ヤ綔涓婃姤" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealWorkReport" /> @@ -30,6 +30,29 @@ </task> </task> </task> + <task id="TkFindP206V202404" name="璇嗗埆P206V202404鏁版嵁" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkFindP206V202404"> + <task id="TkPreGenObjs" name="棰勫厛鍑嗗鍚勫璞″苟璇嗗埆娴佹氮鎺у埗鍣�" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkPreGenObjs"> + <!-- 澶勭悊娴佹氮鎺у埗鍣� --> + <task id="TkDealControllerTramp" name="澶勭悊娴佹氮鎺у埗鍣�" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkDealControllerTramp" /> + <!-- 闈炴祦娴�匯TU锛屽繀椤绘斁鍦═kDealControllerTramp鍚庨潰 --> + <task id="TkDealControllerNoTramp" name="闈炴祦娴�匯TU" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkDealControllerNoTramp"> + <!-- 璇嗗埆闈炲懡浠ゅ簲绛斾笂琛屾暟鎹� --> + <task id="TkFindReport" name="璇嗗埆闈炲懡浠ゅ簲绛斾笂琛屾暟鎹�" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkFindReport"> + <task id="TkDealAlarmStatus" name="鎺у埗鍣ㄦ姤璀︿笌鐘舵�佹暟鎹�" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkDealAlarmStatus" /> + <task id="TkDealAutoReport" name="鎺у埗鍣ㄨ嚜鎶ユ暟鎹紙鏁寸偣鎶ワ級" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkDealAutoReport" /> + <task id="TkDealWorkReport" name="鎺у埗鍣ㄩ榾寮�宸ヤ綔涓婃姤" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkDealWorkReport" /> + <task id="TkDealOpenValveReport" name="鎺у埗鍣ㄥ紑闃�涓婃姤" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkDealOpenValveReport" /> + <task id="TkDealCloseValveReport" name="鎺у埗鍣ㄥ叧闃�涓婃姤" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkDealCloseValveReport" /> + <task id="TkDealLoss" name="鎺у埗鍣ㄦ紡鎹熺粺璁★紙寰呮柊鍗忚鍑烘潵鍚庝慨鏀瑰疄鐜帮級" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkDealLoss" /> + </task> + <!-- 璇嗗埆鍛戒护鍝嶅簲鏁版嵁 --> + <task id="TkFindComResponse" name="璇嗗埆鍝嶅簲鍛戒护鏁版嵁" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkFindComResponse"> + <task id="TkRtuDealCommandResponse" name="RTU鍝嶅簲鍛戒护鏁版嵁" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkRtuDealCommandResponse" > + </task> + </task> + </task> + </task> + </task> </task> </task> </project> \ No newline at end of file -- Gitblit v1.8.0