From c9a3644b14e1307addeadea23cb5c2f5b2d8b28f Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期三, 12 六月 2024 09:45:02 +0800 Subject: [PATCH] 1、完善通信中间件TkFindP206V1_0_0类和log4j2.yml代码; 2、删除common模块中的HttpUtil类(用不到了); 3、实现P206V1_0_0协议的功能码99H和A0H的上下行数据解析。 --- pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_99_Down.java | 168 ++++++++++ /dev/null | 342 --------------------- pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/ComA0Vo.java | 17 + pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A0_Up.java | 72 ++++ pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A0_Down.java | 168 ++++++++++ pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCd99Vo.java | 28 + pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com99Vo.java | 17 + pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/log4j2.yml | 17 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_99_Up.java | 72 ++++ 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/p206V1_0_0/CodeV1_0_1.java | 6 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCdA0Vo.java | 28 + 12 files changed, 584 insertions(+), 353 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 3724072..e794d02 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 @@ -30,6 +30,8 @@ public static final String cd_93 = "93" ;//閬ユ帶鍏抽棴闃�闂� public static final String cd_97 = "97" ;//APP杩滅▼寮�闃� 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_3C = "3C" ;//璁剧疆姘翠环 public static final String cd_6C = "6C" ;//鏌ヨ姘翠环 public static final String cd_3D = "3D" ;//璁剧疆榛戝悕鍗� @@ -63,11 +65,13 @@ (code.equals(cd_93) ? "閬ユ帶鍏抽棴闃�闂�" : (code.equals(cd_97) ? "APP杩滅▼寮�闃�" : (code.equals(cd_98) ? "APP杩滅▼鍏抽榾" : + (code.equals(cd_99) ? "瀹氭椂鍏抽榾寮�闃�" : + (code.equals(cd_A0) ? "瀹氶噺鍏抽榾寮�闃�" : (code.equals(cd_3C) ? "璁剧疆姘翠环" : (code.equals(cd_6C) ? "鏌ヨ姘翠环" : (code.equals(cd_3D) ? "璁剧疆榛戝悕鍗�" : (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/Com99Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com99Vo.java new file mode 100644 index 0000000..af014d5 --- /dev/null +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com99Vo.java @@ -0,0 +1,17 @@ +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 Com99Vo { + public String icCardNo ;//17浣嶈櫄鎷烮C鍗$紪鍙�(鍗忚鏄�10浣嶆暟瀛�) + public Integer moneyRemain;//鍓╀綑閲戦(鍙栧�艰寖鍥�0.00~999999.99锛屽崟浣嶄负鍏�) + public Double waterPrice;//姘翠环(鍙栧�艰寖鍥�0.00~99.99鍏�/m3) + public Integer minutes ;//鐢ㄦ按鏃堕暱锛�0~9999鍒嗛挓锛� + public String orderNo ;//璁㈠崟鍙凤紙16浣嶆暟瀛楋級 +} diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/ComA0Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/ComA0Vo.java new file mode 100644 index 0000000..9f78660 --- /dev/null +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/ComA0Vo.java @@ -0,0 +1,17 @@ +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 ComA0Vo { + public String icCardNo ;//17浣嶈櫄鎷烮C鍗$紪鍙�(鍗忚鏄�10浣嶆暟瀛�) + public Integer moneyRemain;//鍓╀綑閲戦(鍙栧�艰寖鍥�0.00~999999.99锛屽崟浣嶄负鍏�) + public Double waterPrice;//姘翠环(鍙栧�艰寖鍥�0.00~99.99鍏�/m3) + public Integer waterAmount ;//棰勭敤姘撮噺锛�0~9999 m3锛� + public String orderNo ;//璁㈠崟鍙凤紙16浣嶆暟瀛楋級 +} 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 new file mode 100644 index 0000000..9e84e6b --- /dev/null +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_99_Down.java @@ -0,0 +1,168 @@ +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.Com97Vo; +import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com99Vo; +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_99 +}) +public class Cd_99_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(); + Com99Vo cvo = JSON.parseObject(json, Com99Vo.class) ; + if(cvo == null){ + throw new Exception("json杞珻om97Vo涓簄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鍒嗛挓") ; + } + + String[] icCardNoGrp = CommonV1_0_1.dealIcCardNo(cvo.icCardNo) ; + if(icCardNoGrp[0] != null){ + midRs.param = icCardNoGrp[0] ; + } + + byte[] bs = new byte[13] ; + index = 0 ; + ByteUtil.string2BCD_LE(bs, icCardNoGrp[1], index) ; + + index += 5 ; + 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 ; + } + + 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 ; + } + + + 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(bsHead, 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_99_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_99_Up.java new file mode 100644 index 0000000..c6ca29d --- /dev/null +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_99_Up.java @@ -0,0 +1,72 @@ +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.upVos.DataCd98Vo; +import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd99Vo; +import com.dy.common.util.ByteUtil; +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_99 +}) +@SuppressWarnings("unused") +public class Cd_99_Up implements CodeParse { + + private static final Logger log = LogManager.getLogger(Cd_99_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() ; + 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.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 new file mode 100644 index 0000000..919df26 --- /dev/null +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A0_Down.java @@ -0,0 +1,168 @@ +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.ComA0Vo; +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_A0 +}) +public class Cd_A0_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(); + ComA0Vo cvo = JSON.parseObject(json, ComA0Vo.class) ; + if(cvo == null){ + throw new Exception("json杞珻om97Vo涓簄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") ; + } + + String[] icCardNoGrp = CommonV1_0_1.dealIcCardNo(cvo.icCardNo) ; + if(icCardNoGrp[0] != null){ + midRs.param = icCardNoGrp[0] ; + } + + byte[] bs = new byte[13] ; + index = 0 ; + ByteUtil.string2BCD_LE(bs, icCardNoGrp[1], index) ; + + index += 5 ; + 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 ; + } + + 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 ; + } + + + 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(bsHead, 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_A0_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A0_Up.java new file mode 100644 index 0000000..7b133e3 --- /dev/null +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A0_Up.java @@ -0,0 +1,72 @@ +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.upVos.DataCd99Vo; +import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCdA0Vo; +import com.dy.common.util.ByteUtil; +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_A0 +}) +@SuppressWarnings("unused") +public class Cd_A0_Up implements CodeParse { + + private static final Logger log = LogManager.getLogger(Cd_A0_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() ; + 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.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/DataCd99Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCd99Vo.java new file mode 100644 index 0000000..67ebed5 --- /dev/null +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCd99Vo.java @@ -0,0 +1,28 @@ +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 DataCd99Vo { + 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() ; + } +} diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCdA0Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCdA0Vo.java new file mode 100644 index 0000000..058b9f7 --- /dev/null +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCdA0Vo.java @@ -0,0 +1,28 @@ +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 DataCdA0Vo { + 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() ; + } +} diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/HttpUtils.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/HttpUtils.java deleted file mode 100644 index 05cee30..0000000 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/HttpUtils.java +++ /dev/null @@ -1,342 +0,0 @@ -package com.dy.common.util; - -import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; -import java.security.KeyManagementException; -import java.security.NoSuchAlgorithmException; -import java.security.cert.X509Certificate; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; - -import javax.net.ssl.SSLContext; -import javax.net.ssl.TrustManager; -import javax.net.ssl.X509TrustManager; - -import org.apache.commons.lang3.StringUtils; -import org.apache.http.HttpResponse; -import org.apache.http.NameValuePair; -import org.apache.http.client.HttpClient; -import org.apache.http.client.config.AuthSchemes; -import org.apache.http.client.config.CookieSpecs; -import org.apache.http.client.config.RequestConfig; -import org.apache.http.client.entity.UrlEncodedFormEntity; -import org.apache.http.client.methods.HttpDelete; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.methods.HttpPost; -import org.apache.http.client.methods.HttpPut; -import org.apache.http.config.Registry; -import org.apache.http.config.RegistryBuilder; -import org.apache.http.conn.socket.ConnectionSocketFactory; -import org.apache.http.conn.socket.PlainConnectionSocketFactory; -import org.apache.http.conn.ssl.NoopHostnameVerifier; -import org.apache.http.conn.ssl.SSLConnectionSocketFactory; -import org.apache.http.entity.ByteArrayEntity; -import org.apache.http.entity.StringEntity; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClients; -import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; -import org.apache.http.message.BasicNameValuePair; -import org.apache.http.conn.ClientConnectionManager; -import org.apache.http.conn.scheme.Scheme; -import org.apache.http.conn.scheme.SchemeRegistry; -import org.apache.http.conn.ssl.SSLSocketFactory; - -public class HttpUtils { - /** - * get - * - * @param host 鏈嶅姟绔疷RI - * @param path 璇锋眰璺緞 - * @param headers 璇锋眰澶� - * @param params 璇锋眰鍙傛暟 - * @return HttpResponse鍝嶅簲 - * @throws Exception 寮傚父 - */ - public static HttpResponse doGet(String host, String path, Map<String, String> headers, - Map<String, String> params) throws Exception{ - HttpClient httpClient = wrapClient(host); - - HttpGet request = new HttpGet(buildUrl(host, path, params)); - if(headers != null){ - for (Map.Entry<String, String> e : headers.entrySet()) { - request.addHeader(e.getKey(), e.getValue()); - } - } - - return httpClient.execute(request); - } - - /** - * post form - * - * @param host 鏈嶅姟绔疷RI - * @param path 璇锋眰璺緞 - * @param headers 璇锋眰澶� - * @param params 璇锋眰鍙傛暟 - * @param bodies 璇锋眰浣� - * @return HttpResponse鍝嶅簲 - * @throws Exception 寮傚父 - */ - public static HttpResponse doPost(String host, String path, Map<String, String> headers, - Map<String, String> params, Map<String, String> bodies) throws Exception { - HttpClient httpClient = wrapClient(host); - - HttpPost request = new HttpPost(buildUrl(host, path, params)); - for (Map.Entry<String, String> e : headers.entrySet()) { - request.addHeader(e.getKey(), e.getValue()); - } - - if (bodies != null) { - List<NameValuePair> nameValuePairList = new ArrayList<>(); - - for (String key : bodies.keySet()) { - nameValuePairList.add(new BasicNameValuePair(key, bodies.get(key))); - } - UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(nameValuePairList, "utf-8"); - formEntity.setContentType("application/x-www-form-urlencoded; charset=UTF-8"); - request.setEntity(formEntity); - } - - return httpClient.execute(request); - } - - /** - * Post String - * - * @param host 鏈嶅姟绔疷RI - * @param path 璇锋眰璺緞 - * @param headers 璇锋眰澶� - * @param params 璇锋眰鍙傛暟 - * @param body 璇锋眰浣� - * @return HttpResponse鍝嶅簲 - * @throws Exception 寮傚父 - */ - public static HttpResponse doPost(String host, String path, Map<String, String> headers, - Map<String, String> params, String body) throws Exception { - HttpClient httpClient = wrapClient(host); - - HttpPost request = new HttpPost(buildUrl(host, path, params)); - for (Map.Entry<String, String> e : headers.entrySet()) { - request.addHeader(e.getKey(), e.getValue()); - } - - if (StringUtils.isNotBlank(body)) { - request.setEntity(new StringEntity(body, "utf-8")); - } - - return httpClient.execute(request); - } - - /** - * Post stream - * - * @param host 鏈嶅姟绔疷RI - * @param path 璇锋眰璺緞 - * @param headers 璇锋眰澶� - * @param params 璇锋眰鍙傛暟 - * @param body 璇锋眰浣� - * @return HttpResponse鍝嶅簲 - * @throws Exception 寮傚父 - */ - public static HttpResponse doPost(String host, String path, Map<String, String> headers, - Map<String, String> params, byte[] body) throws Exception { - HttpClient httpClient = wrapClient(host); - - HttpPost request = new HttpPost(buildUrl(host, path, params)); - if(headers != null){ - for (Map.Entry<String, String> e : headers.entrySet()) { - request.addHeader(e.getKey(), e.getValue()); - } - } - - if (body != null) { - request.setEntity(new ByteArrayEntity(body)); - } - - return httpClient.execute(request); - } - - /** - * Put String - * - * @param host 鏈嶅姟绔疷RI - * @param path 璇锋眰璺緞 - * @param headers 璇锋眰澶� - * @param params 璇锋眰鍙傛暟 - * @param body 璇锋眰浣� - * @return HttpResponse鍝嶅簲 - * @throws Exception 寮傚父 - */ - public static HttpResponse doPut(String host, String path, Map<String, String> headers, - Map<String, String> params, String body) throws Exception { - HttpClient httpClient = wrapClient(host); - - HttpPut request = new HttpPut(buildUrl(host, path, params)); - for (Map.Entry<String, String> e : headers.entrySet()) { - request.addHeader(e.getKey(), e.getValue()); - } - - if (StringUtils.isNotBlank(body)) { - request.setEntity(new StringEntity(body, "utf-8")); - } - - return httpClient.execute(request); - } - - /** - * Put stream - * - * @param host 鏈嶅姟绔疷RI - * @param path 璇锋眰璺緞 - * @param headers 璇锋眰澶� - * @param params 璇锋眰鍙傛暟 - * @param body 璇锋眰浣� - * @return HttpResponse鍝嶅簲 - * @throws Exception 寮傚父 - */ - public static HttpResponse doPut(String host, String path, Map<String, String> headers, - Map<String, String> params, byte[] body) throws Exception { - HttpClient httpClient = wrapClient(host); - - HttpPut request = new HttpPut(buildUrl(host, path, params)); - for (Map.Entry<String, String> e : headers.entrySet()) { - request.addHeader(e.getKey(), e.getValue()); - } - - if (body != null) { - request.setEntity(new ByteArrayEntity(body)); - } - - return httpClient.execute(request); - } - - /** - * Delete - * - * @param host 鏈嶅姟绔疷RI - * @param path 璇锋眰璺緞 - * @param headers 璇锋眰澶� - * @param params 璇锋眰鍙傛暟 - * @return HttpResponse鍝嶅簲 - * @throws Exception 寮傚父 - */ - public static HttpResponse doDelete(String host, String path, Map<String, String> headers, - Map<String, String> params) throws Exception { - HttpClient httpClient = wrapClient(host); - - HttpDelete request = new HttpDelete(buildUrl(host, path, params)); - for (Map.Entry<String, String> e : headers.entrySet()) { - request.addHeader(e.getKey(), e.getValue()); - } - - return httpClient.execute(request); - } - - private static String buildUrl(String host, String path, Map<String, String> params) { - StringBuilder sbUrl = new StringBuilder(); - sbUrl.append(host); - if (!StringUtils.isBlank(path)) { - sbUrl.append(path); - } - if (null != params) { - StringBuilder sbQuery = new StringBuilder(); - for (Map.Entry<String, String> query : params.entrySet()) { - if (0 < sbQuery.length()) { - sbQuery.append("&"); - } - if (StringUtils.isBlank(query.getKey()) && !StringUtils.isBlank(query.getValue())) { - sbQuery.append(query.getValue()); - } - if (!StringUtils.isBlank(query.getKey())) { - sbQuery.append(query.getKey()); - if (!StringUtils.isBlank(query.getValue())) { - sbQuery.append("="); - sbQuery.append(URLEncoder.encode(query.getValue(), StandardCharsets.UTF_8)); - } - } - } - if (0 < sbQuery.length()) { - sbUrl.append("?").append(sbQuery); - } - } - - return sbUrl.toString(); - } - - private static HttpClient wrapClient(String host) { - if (host.startsWith("https://")) { - return sslClient(); - }else{ - return HttpClients.createDefault(); - } - } -// -// private static void sslClient(HttpClient httpClient) { -// try { -// SSLContext ctx = SSLContext.getInstance("TLS"); -// X509TrustManager tm = new X509TrustManager() { -// public X509Certificate[] getAcceptedIssuers() { -// return null; -// } -// -// public void checkClientTrusted(X509Certificate[] xcs, String str) { -// -// } -// -// public void checkServerTrusted(X509Certificate[] xcs, String str) { -// -// } -// }; -// ctx.init(null, new TrustManager[] { tm }, null); -// SSLSocketFactory ssf = new SSLSocketFactory(ctx); -// ssf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); -// ClientConnectionManager ccm = httpClient.getConnectionManager(); -// SchemeRegistry registry = ccm.getSchemeRegistry(); -// registry.register(new Scheme("https", 443, ssf)); -// } catch (KeyManagementException ex) { -// throw new RuntimeException(ex); -// } catch (NoSuchAlgorithmException ex) { -// throw new RuntimeException(ex); -// } -// } - - /** - * 鍦ㄨ皟鐢⊿SL涔嬪墠闇�瑕侀噸鍐欓獙璇佹柟娉曪紝鍙栨秷妫�娴婼SL - * 鍒涘缓ConnectionManager锛屾坊鍔燙onnection閰嶇疆淇℃伅 - * @return HttpClient 鏀寔https - */ - private static HttpClient sslClient() { - try { - // 鍦ㄨ皟鐢⊿SL涔嬪墠闇�瑕侀噸鍐欓獙璇佹柟娉曪紝鍙栨秷妫�娴婼SL - X509TrustManager trustManager = new X509TrustManager() { - @Override public X509Certificate[] getAcceptedIssuers() { - return null; - } - @Override public void checkClientTrusted(X509Certificate[] xcs, String str) {} - @Override public void checkServerTrusted(X509Certificate[] xcs, String str) {} - }; - SSLContext ctx = SSLContext.getInstance(SSLConnectionSocketFactory.TLS); - ctx.init(null, new TrustManager[] { trustManager }, null); - SSLConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory(ctx, NoopHostnameVerifier.INSTANCE); - // 鍒涘缓Registry - RequestConfig requestConfig = RequestConfig.custom().setCookieSpec(CookieSpecs.STANDARD_STRICT) - .setExpectContinueEnabled(Boolean.TRUE).setTargetPreferredAuthSchemes(Arrays.asList(AuthSchemes.NTLM, AuthSchemes.DIGEST)) - .setProxyPreferredAuthSchemes(Arrays.asList(AuthSchemes.BASIC)).build(); - Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create() - .register("http", PlainConnectionSocketFactory.INSTANCE) - .register("https",socketFactory).build(); - // 鍒涘缓ConnectionManager锛屾坊鍔燙onnection閰嶇疆淇℃伅 - PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(socketFactoryRegistry); - CloseableHttpClient closeableHttpClient = HttpClients.custom().setConnectionManager(connectionManager) - .setDefaultRequestConfig(requestConfig).build(); - return closeableHttpClient; - } catch (KeyManagementException ex) { - throw new RuntimeException(ex); - } catch (NoSuchAlgorithmException ex) { - throw new RuntimeException(ex); - } - } - -} 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 4ac1923..278ffda 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/resources/log4j2.yml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/log4j2.yml index 0fbd3ce..91e1a72 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/log4j2.yml +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/log4j2.yml @@ -9,7 +9,7 @@ value: ./logs #鏃ュ織鏂囦欢瀛樺偍鍚嶇О - name: project.name - value: aceMw + value: rtuMw #瀹氫箟杈撳嚭鍣紝鍙互杈撳嚭鍒版帶鍒跺彴鍜屾枃浠�. Appenders: @@ -18,7 +18,6 @@ #Appender鍛藉悕 name: CONSOLE target: SYSTEM_OUT - charset: UTF-8 ThresholdFilter: level: debug #杈撳嚭鏃ュ織绾у埆锛岃緭鍑烘棩蹇楁椂锛岄鍏堢敱Loggers.Root.level鎴朙oggers.Logger.level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢辨湰level鍒ゆ柇鏄惁杈撳嚭 onMatch: ACCEPT #onMatch=ACCEPT 澶т簬绛変簬 "level" 閰嶇疆鐨勭瓑绾у湴鏃ュ織杈撳嚭 @@ -65,10 +64,10 @@ - ref: ROLLING_FILE #杈撳嚭鏃ュ織鏃讹紝棣栧厛鐢辨湰level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢变笂闈㈢殑Appenders.RollingFile.ThresholdFilter.level鍒ゆ柇鏄惁杈撳嚭 # 涓虹被鍖呰矾寰勯厤缃壒娈婄殑Log绾у埆锛屾柟渚胯皟璇曪紝 # 涓嶅彈Loggers.Root.level闄愬埗 - Logger: - - name: com.dy.pipIrrGlobal.daoBa - additivity: false #鍘婚櫎閲嶅鐨刲og - level: debug #杈撳嚭鏃ュ織绾у埆 - AppenderRef: - - ref: CONSOLE #杈撳嚭鏃ュ織鏃讹紝棣栧厛鐢辨湰.level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢变笂闈㈢殑Appenders.Console.ThresholdFilter.level鍒ゆ柇鏄惁杈撳嚭 - - ref: ROLLING_FILE #杈撳嚭鏃ュ織鏃讹紝棣栧厛鐢辨湰level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢变笂闈㈢殑Appenders.RollingFile.ThresholdFilter.level鍒ゆ柇鏄惁杈撳嚭 + # Logger: + # - name: com.dy.pipIrrGlobal.daoBa + # additivity: false #鍘婚櫎閲嶅鐨刲og + # level: debug #杈撳嚭鏃ュ織绾у埆 + # AppenderRef: + # - ref: CONSOLE #杈撳嚭鏃ュ織鏃讹紝棣栧厛鐢辨湰.level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢变笂闈㈢殑Appenders.Console.ThresholdFilter.level鍒ゆ柇鏄惁杈撳嚭 + # - ref: ROLLING_FILE #杈撳嚭鏃ュ織鏃讹紝棣栧厛鐢辨湰level鍒ゆ柇鏄惁杈撳嚭锛岀劧鍚庡啀鐢变笂闈㈢殑Appenders.RollingFile.ThresholdFilter.level鍒ゆ柇鏄惁杈撳嚭 -- Gitblit v1.8.0