Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV
42个文件已修改
108个文件已添加
10个文件已删除
| | |
| | | |
| | | short index = ProtocolConstantV206V1.dataIndex + 1 ; |
| | | //累计æµéï¼5åèBCDç ï¼åå¼èå´0~99999999.99ï¼åä½ä¸ºm3ã |
| | | int tpInt = ByteUtil.BCD2Int_LE(bs, index, index + 4) ; |
| | | cdData.totalAmount = tpInt/100.0 ; |
| | | long tpLong = ByteUtil.BCD2Long_LE(bs, index, index + 4) ; |
| | | cdData.totalAmount = tpLong/100.0 ; |
| | | |
| | | index += 5 ; |
| | | //ç¨æ°´æ·å·æ°æ®æ ¼å¼ï¼8åèä½ä½å¨åé«ä½å¨åã |
| | | if(ByteUtil.bytesIsAll0xFF(bs, index, 8)){ |
| | | throw new Exception("ICå¡å·æ°æ®æ ¼å¼é误ï¼8åèå
¨é¨ä¸º0xFFï¼è弿°æ®") ; |
| | | } |
| | | cdData.icCardNo = GlParse.parseIcCardNo(bs, index) ; |
| | | |
| | | index += 8 ; |
| | | //ICå¡å·æ ¼å¼ï¼4åèHEXç ä½ä½å¨åé«ä½å¨åã |
| | | if(ByteUtil.bytesIsAll0xFF(bs, index, 4)){ |
| | | throw new Exception("ICå°åæ°æ®æ ¼å¼é误ï¼4åèå
¨é¨ä¸º0xFFï¼è弿°æ®") ; |
| | | } |
| | | cdData.icCardAddr = ByteUtil.bytes2Hex_LE(bs, false, index, 4) ; |
| | | |
| | | index += 4 ; |
| | | //ç¨æ°´æ·ä½é¢ï¼ç¨æ·ä½é¢4åèBCDç ï¼åå¼èå´0.00~999999.99ï¼åä½ä¸ºå
ã |
| | | tpInt = ByteUtil.BCD2Int_LE(bs, index, index + 3) ; |
| | | int tpInt = ByteUtil.BCD2Int_LE(bs, index, index + 3) ; |
| | | cdData.remainMoney = tpInt/100.0 ; |
| | | |
| | | index += 4 ; |
| | |
| | | |
| | | short index = ProtocolConstantV206V1.dataIndex + 1 ; |
| | | //累计æµéï¼5åèBCDç ï¼åå¼èå´0~9999999999ï¼åä½ä¸ºm3ã |
| | | int tpInt = ByteUtil.BCD2Int_LE(bs, index, index + 4) ; |
| | | cdData.totalAmount = tpInt/100.0 ; |
| | | long tpLong = ByteUtil.BCD2Long_LE(bs, index, index + 4) ; |
| | | cdData.totalAmount = tpLong/100.0 ; |
| | | |
| | | index += 5 ; |
| | | //ç¨æ°´æ·å·æ°æ®æ ¼å¼ï¼8åèä½ä½å¨åé«ä½å¨åã |
| | | if(ByteUtil.bytesIsAll0xFF(bs, index, 8)){ |
| | | throw new Exception("ICå¡å·æ°æ®æ ¼å¼é误ï¼8åèå
¨é¨ä¸º0xFFï¼è弿°æ®") ; |
| | | } |
| | | cdData.icCardNo = GlParse.parseIcCardNo(bs, index) ; |
| | | |
| | | index += 8 ; |
| | | //ICå¡å·æ ¼å¼ï¼4åèHEXç ä½ä½å¨åé«ä½å¨åã |
| | | if(ByteUtil.bytesIsAll0xFF(bs, index, 4)){ |
| | | throw new Exception("ICå°åæ°æ®æ ¼å¼é误ï¼4åèå
¨é¨ä¸º0xFFï¼è弿°æ®") ; |
| | | } |
| | | cdData.icCardAddr = ByteUtil.bytes2Hex_LE(bs, false, index, 4) ; |
| | | |
| | | index += 4 ; |
| | | //ç¨æ°´æ·ä½é¢ï¼ç¨æ·ä½é¢4åèBCDç ï¼åå¼èå´0.00~999999.99ï¼åä½ä¸ºå
ã |
| | | tpInt = ByteUtil.BCD2Int_LE(bs, index, index + 3) ; |
| | | cdData.remainMoney = tpInt/100.0 ; |
| | | tpLong = ByteUtil.BCD2Long_LE(bs, index, index + 3) ; |
| | | cdData.remainMoney = tpLong/100.0 ; |
| | | |
| | | index += 4 ; |
| | | //ç¨æ°´æ·ç¨æ°´å¼å§æ¶é´ï¼6åèBCDç ï¼é¡ºåºæ¯å¹´ææ¥æ¶åç§ï¼å
¶ä¸å
Œ
å¹´=2000+å¹´ã |
| | |
| | | |
| | | index += 6 ; |
| | | //ç¨æ°´æ·æ¬æ¬¡ç¨æ°´éï¼ç´¯è®¡æµé5åèBCDç ï¼åå¼èå´0~9999999999ï¼åä½ä¸ºm3ã |
| | | tpInt = ByteUtil.BCD2Int_LE(bs, index, index + 4) ; |
| | | cdData.thisAmount = tpInt/100.0 ; |
| | | tpLong = ByteUtil.BCD2Long_LE(bs, index, index + 4) ; |
| | | cdData.thisAmount = tpLong/100.0 ; |
| | | |
| | | index += 5 ; |
| | | //ç¨æ°´æ·æ¬æ¬¡æ¶è´¹éé¢ï¼ç¨æ·ä½é¢4åèBCDç ï¼åå¼èå´0.00~999999.99ï¼åä½ä¸ºå
ã |
| | | tpInt = ByteUtil.BCD2Int_LE(bs, index, index + 3) ; |
| | | cdData.thisMoney = tpInt/100.0 ; |
| | | tpLong = ByteUtil.BCD2Long_LE(bs, index, index + 3) ; |
| | | cdData.thisMoney = tpLong/100.0 ; |
| | | |
| | | index += 4 ; |
| | | //ç¨æ°´æ·æ¬æ¬¡ç¨æ°´æ¶é¿ï¼ç¨æ°´æ¶é¿2åèBCDç ï¼åå¼èå´0~9999ï¼åä½ä¸ºåéã |
| | | tpInt = ByteUtil.BCD2Int_LE(bs, index, index + 1) ; |
| | | int tpInt = ByteUtil.BCD2Int_LE(bs, index, index + 1) ; |
| | | cdData.thisTime = tpInt; |
| | | |
| | | index += 2 ; |
| | |
| | | |
| | | short index = ProtocolConstantV206V2.dataIndex + 1 ; |
| | | //累计æµéï¼5åèBCDç ï¼åå¼èå´0~99999999.99ï¼åä½ä¸ºm3ã |
| | | int tpInt = ByteUtil.BCD2Int_LE(bs, index, index + 4) ; |
| | | cdData.totalAmount = tpInt/100.0 ; |
| | | long tpLong = ByteUtil.BCD2Long_LE(bs, index, index + 4) ; |
| | | cdData.totalAmount = tpLong/100.0 ; |
| | | |
| | | index += 5 ; |
| | | //ç¨æ°´æ·å·æ°æ®æ ¼å¼ï¼8åèä½ä½å¨åé«ä½å¨åã |
| | | cdData.icCardNo = GlParse.parseIcCardNo(bs, index) ; |
| | | if(ByteUtil.bytesIsAll0xFF(bs, index, 8)){ |
| | | throw new Exception("ICå¡å·æ°æ®æ ¼å¼é误ï¼8åèå
¨é¨ä¸º0xFFï¼è弿°æ®") ; |
| | | }cdData.icCardNo = GlParse.parseIcCardNo(bs, index) ; |
| | | |
| | | index += 8 ; |
| | | //ICå¡å·æ ¼å¼ï¼4åèHEXç ä½ä½å¨åé«ä½å¨åã |
| | | if(ByteUtil.bytesIsAll0xFF(bs, index, 4)){ |
| | | throw new Exception("ICå°åæ°æ®æ ¼å¼é误ï¼4åèå
¨é¨ä¸º0xFFï¼è弿°æ®") ; |
| | | } |
| | | cdData.icCardAddr = ByteUtil.bytes2Hex_LE(bs, false, index, 4) ; |
| | | |
| | | index += 4 ; |
| | | //ç¨æ°´æ·ä½é¢ï¼ç¨æ·ä½é¢4åèBCDç ï¼åå¼èå´0.00~999999.99ï¼åä½ä¸ºå
ã |
| | | tpInt = ByteUtil.BCD2Int_LE(bs, index, index + 3) ; |
| | | int tpInt = ByteUtil.BCD2Int_LE(bs, index, index + 3) ; |
| | | cdData.remainMoney = tpInt/100.0 ; |
| | | |
| | | index += 4 ; |
| | |
| | | |
| | | short index = ProtocolConstantV206V2.dataIndex + 1 ; |
| | | //累计æµéï¼5åèBCDç ï¼åå¼èå´0~9999999999ï¼åä½ä¸ºm3ã |
| | | int tpInt = ByteUtil.BCD2Int_LE(bs, index, index + 4) ; |
| | | cdData.totalAmount = tpInt/100.0 ; |
| | | long tpLong = ByteUtil.BCD2Long_LE(bs, index, index + 4) ; |
| | | cdData.totalAmount = tpLong/100.0 ; |
| | | |
| | | index += 5 ; |
| | | //ç¨æ°´æ·å·æ°æ®æ ¼å¼ï¼8åèä½ä½å¨åé«ä½å¨åã |
| | | if(ByteUtil.bytesIsAll0xFF(bs, index, 8)){ |
| | | throw new Exception("ICå¡å·æ°æ®æ ¼å¼é误ï¼8åèå
¨é¨ä¸º0xFFï¼è弿°æ®") ; |
| | | } |
| | | cdData.icCardNo = GlParse.parseIcCardNo(bs, index) ; |
| | | |
| | | index += 8 ; |
| | | //ICå¡å·æ ¼å¼ï¼4åèHEXç ä½ä½å¨åé«ä½å¨åã |
| | | if(ByteUtil.bytesIsAll0xFF(bs, index, 4)){ |
| | | throw new Exception("ICå°åæ°æ®æ ¼å¼é误ï¼4åèå
¨é¨ä¸º0xFFï¼è弿°æ®") ; |
| | | } |
| | | cdData.icCardAddr = ByteUtil.bytes2Hex_LE(bs, false, index, 4) ; |
| | | |
| | | index += 4 ; |
| | | //ç¨æ°´æ·ä½é¢ï¼ç¨æ·ä½é¢4åèBCDç ï¼åå¼èå´0.00~999999.99ï¼åä½ä¸ºå
ã |
| | | tpInt = ByteUtil.BCD2Int_LE(bs, index, index + 3) ; |
| | | cdData.remainMoney = tpInt/100.0 ; |
| | | tpLong = ByteUtil.BCD2Long_LE(bs, index, index + 3) ; |
| | | cdData.remainMoney = tpLong/100.0 ; |
| | | |
| | | index += 4 ; |
| | | //ç¨æ°´æ·ç¨æ°´å¼å§æ¶é´ï¼6åèBCDç ï¼é¡ºåºæ¯å¹´ææ¥æ¶åç§ï¼å
¶ä¸å
Œ
å¹´=2000+å¹´ã |
| | |
| | | |
| | | index += 6 ; |
| | | //ç¨æ°´æ·æ¬æ¬¡ç¨æ°´éï¼ç´¯è®¡æµé5åèBCDç ï¼åå¼èå´0~9999999999ï¼åä½ä¸ºm3ã |
| | | tpInt = ByteUtil.BCD2Int_LE(bs, index, index + 4) ; |
| | | cdData.thisAmount = tpInt/100.0 ; |
| | | tpLong = ByteUtil.BCD2Long_LE(bs, index, index + 4) ; |
| | | cdData.thisAmount = tpLong/100.0 ; |
| | | |
| | | index += 5 ; |
| | | //ç¨æ°´æ·æ¬æ¬¡æ¶è´¹éé¢ï¼ç¨æ·ä½é¢4åèBCDç ï¼åå¼èå´0.00~999999.99ï¼åä½ä¸ºå
ã |
| | | tpInt = ByteUtil.BCD2Int_LE(bs, index, index + 3) ; |
| | | cdData.thisMoney = tpInt/100.0 ; |
| | | tpLong = ByteUtil.BCD2Long_LE(bs, index, index + 3) ; |
| | | cdData.thisMoney = tpLong/100.0 ; |
| | | |
| | | index += 4 ; |
| | | //ç¨æ°´æ·æ¬æ¬¡ç¨æ°´æ¶é¿ï¼ç¨æ°´æ¶é¿2åèBCDç ï¼åå¼èå´0~9999ï¼åä½ä¸ºåéã |
| | | tpInt = ByteUtil.BCD2Int_LE(bs, index, index + 1) ; |
| | | int tpInt = ByteUtil.BCD2Int_LE(bs, index, index + 1) ; |
| | | cdData.thisTime = tpInt; |
| | | |
| | | index += 2 ; |
| | |
| | | }; |
| | | } |
| | | /** |
| | | * 0x01ï¼å·å¡å¼é => p206V1 1 |
| | | * 0x02ï¼ä¸å¿ç«å¼é => p206V1 3 |
| | | * 0x08ï¼ç¨æ·Appè¿ç¨å¼é => p206V1 3 |
| | | * 0x0Bï¼å·¡æ£å¡å¼é => p206V1 11 |
| | | * @param type |
| | | * @return |
| | | */ |
| | | public static byte openType2P206V1(byte type){ |
| | | return switch (type) { |
| | | case 1 -> (byte)1 ; |
| | | case 2 -> (byte)3 ; |
| | | case 8 -> (byte)3 ; |
| | | case 11 -> (byte)11 ; |
| | | default -> (byte)-1; |
| | | }; |
| | | } |
| | | |
| | | /** |
| | | * å¾å°å
³å¼éç±»ååç§° |
| | | * 0x00:å·å¡é |
| | | * 0x01:å¹³å°å
³ |
| | |
| | | * 0x06:å©ä½æ°´éä¸è¶³å
³ |
| | | * 0x07:å©ä½éé¢ä¸º0å
³ |
| | | * 0x08:弿³µ/éåç®¡éæ²¡ææµéå
³ |
| | | * 0x09:æçµåä¸çµå
³ï¼ |
| | | * 0x0a:æ°´è¡¨ç¬æ¶æµé为0å
³ï¼ |
| | | * 0x0b:å·å¡å¼æ³µï¼è¿ç¨å
³ã |
| | | * 0x0c:çµæ± ä½çµåå
³ã |
| | | * 0x09:æçµåä¸çµå
³ |
| | | * 0x0a:æ°´è¡¨ç¬æ¶æµé为0å
³ |
| | | * 0x0b:å·å¡å¼æ³µï¼è¿ç¨å
³ |
| | | * 0x0c:çµæ± ä½çµåå
³ |
| | | * @param type åè |
| | | * @return åç§° |
| | | */ |
| | |
| | | default -> "æªç¥"; |
| | | }; |
| | | } |
| | | /** |
| | | * å¾å°å
³å¼éç±»ååç§° |
| | | * 0x00:å·å¡é => p206V1 2 |
| | | * 0x01:å¹³å°å
³ => p206V1 4 |
| | | * 0x02:APPå
³ => p206V1 4 |
| | | * 0x03:éæ³å¡å
³ => p206V1 12 |
| | | * 0x04:水表é讯å¼å¸¸å
³ => p206V1 6 |
| | | * 0x05:çµè¡¨å¼å¸¸å
³ => p206V1 6 |
| | | * 0x06:å©ä½æ°´éä¸è¶³å
³ => p206V1 5 |
| | | * 0x07:å©ä½éé¢ä¸º0å
³ => p206V1 5 |
| | | * 0x08:弿³µ/éåç®¡éæ²¡ææµéå
³ => p206V1 16 |
| | | * 0x09:æçµåä¸çµå
³ï¼ => p206V1 7 |
| | | * 0x0a:æ°´è¡¨ç¬æ¶æµé为0å
³ï¼ => p206V1 5 |
| | | * 0x0b:å·å¡å¼æ³µï¼è¿ç¨å
³ã => p206V1 9 |
| | | * 0x0c:çµæ± ä½çµåå
³ã => p206V1 7 |
| | | * @param type åè |
| | | * @return åç§° |
| | | */ |
| | | public static byte closeType2P206V1(byte type){ |
| | | return switch (type) { |
| | | case 0 -> (byte)2; |
| | | case 1,2 -> (byte)4; |
| | | case 3 -> (byte)12; |
| | | case 4,5 -> (byte)6; |
| | | case 6,7,10 -> (byte)5; |
| | | case 8 -> (byte)16; |
| | | case 9,12 -> (byte)7; |
| | | case 11 -> (byte)9; |
| | | default -> (byte)-1; |
| | | }; |
| | | } |
| | | |
| | | public static String ctrlDevType(String hex){ |
| | | return switch (hex) { |
| | |
| | | |
| | | index ++ ;//å½åç¨æ°´æ¹å¼ |
| | | cdData.opType = bs[index]; |
| | | //è¿è¡å
¼å®¹è½¬æ¢ |
| | | cdData.opType = CommonV202404.openType2P206V1(cdData.opType) ; |
| | | |
| | | index++ ; |
| | | cdData.icCardAddr = ByteUtil.bytes2Hex(bs, false, index, 4) ; |
| | |
| | | bs[index] = cvo.projectNo.byteValue() ; |
| | | |
| | | index ++ ; |
| | | if(cvo.controllerType.equals("01")){ |
| | | bs[index] = (byte)0xF0 ; |
| | | }else{ |
| | | bs[index] = (byte)0x00 ; |
| | | } |
| | | GlCreate.createValveOrPump(cvo.controllerType, bs, index) ; |
| | | |
| | | index ++ ; |
| | | GlCreate.createIcCardNo(cvo.icCardNo, bs, index); |
| | |
| | | bs[index] = cvo.projectNo.byteValue() ; |
| | | |
| | | index ++ ; |
| | | if(cvo.controllerType.equals("01")){ |
| | | bs[index] = (byte)0xF0 ; |
| | | }else{ |
| | | bs[index] = (byte)0x00 ; |
| | | } |
| | | GlCreate.createValveOrPump(cvo.controllerType, bs, index) ; |
| | | |
| | | index ++ ; |
| | | GlCreate.createIcCardNo(cvo.icCardNo, bs, index); |
| | |
| | | if(para.data != null && para.data.getSubData() != null){ |
| | | DataCd93_A3Vo subData = (DataCd93_A3Vo)((DataV202404)para.data.getSubData()).subData ; |
| | | //opResult ;//å
³æ³µ/éç»æ: 0x00:æå 0x81:失败 |
| | | callback.notify(new ValveStateInfo(subData.opResult.byteValue()==0?false:true)); |
| | | callback.notify(new ValveStateInfo(subData.clResult.byteValue()==0?false:true)); |
| | | } |
| | | |
| | | return new MidResult[]{midRs} ; |
| | |
| | | return bsHead ; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 0xf0éé¨ 0x00æ°´æ³µ |
| | | * @param controllerTypeByHex |
| | | * @param bs |
| | | * @param index |
| | | */ |
| | | public static void createValveOrPump(String controllerTypeByHex, byte[] bs, int index){ |
| | | if(controllerTypeByHex != null && controllerTypeByHex.equals("57")){ |
| | | bs[index] = (byte)0x00 ; |
| | | }else{ |
| | | bs[index] = (byte)0xF0 ; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * çææ§å¶å¨å°å |
| | | * 6åèBCDç ï¼12ä½è¡æ¿åºåï¼ + 2åèHEX |
| | |
| | | package com.dy.common.mw.protocol.p206V202404.parse.global; |
| | | |
| | | import com.dy.common.mw.protocol.p206V202404.CommonV202404; |
| | | import com.dy.common.mw.protocol.p206V202404.ProtocolConstantV206V202404; |
| | | import com.dy.common.mw.protocol.p206V202404.upVos.*; |
| | | import com.dy.common.util.ByteUtil; |
| | |
| | | |
| | | index ++ ; |
| | | cdData.clType = bs[index]; |
| | | //è¿è¡å
¼å®¹è½¬æ¢ |
| | | cdData.clType = CommonV202404.closeType2P206V1(cdData.clType) ; |
| | | |
| | | index++ ; |
| | | cdData.icCardAddr = ByteUtil.bytes2Hex(bs, false, index, 4) ; |
| | |
| | | cdData.projectNo = (int)bs[index]; |
| | | |
| | | index ++ ; |
| | | cdData.opResult = bs[index]; |
| | | cdData.clResult = bs[index]; |
| | | |
| | | index ++ ; |
| | | cdData.opType = bs[index]; |
| | | cdData.clType = bs[index]; |
| | | |
| | | index++ ; |
| | | cdData.icCardAddr = ByteUtil.bytes2Hex(bs, false, index, 4) ; |
| | |
| | | index += 8 ; |
| | | cdData.startDt = GlParse.parseRtuDt(bs, index) ; |
| | | |
| | | if(cdData.opResult == (byte)0x81){ |
| | | if(cdData.clResult == (byte)0x81){ |
| | | //失败äºï¼ä¸é¢å°±æ²¡ææ°æ®äº |
| | | return ; |
| | | } |
| | |
| | | |
| | | public String controllerType;//æ§å¶å¨ç±»å |
| | | public Integer projectNo ;//项ç®ç¼å· |
| | | public Byte opResult ;//å
³æ³µ/éç»æ: 0x00:æå 0x81:失败 |
| | | public Byte opType ;//å
³æ³µ/éæ¹å¼: 0x00:å·å¡é 0x01:å¹³å°å
³ 0x02:APPå
³ 0x03:éæ³å¡å
³ 0x04:水表å¼å¸¸å
³ 0x05:çµè¡¨å¼å¸¸å
³ 0x06:å©ä½æ°´éä¸è¶³å
³ 0x07:å©ä½éé¢ä¸è¶³å
³ 0x08:弿³µ/éåç®¡éæ²¡ææµéå
³ 0x09:æçµåä¸çµã |
| | | public Byte clResult;//å
³æ³µ/éç»æ: 0x00:æå 0x81:失败 |
| | | public Byte clType;//å
³æ³µ/éæ¹å¼: 0x00:å·å¡é 0x01:å¹³å°å
³ 0x02:APPå
³ 0x03:éæ³å¡å
³ 0x04:水表å¼å¸¸å
³ 0x05:çµè¡¨å¼å¸¸å
³ 0x06:å©ä½æ°´éä¸è¶³å
³ 0x07:å©ä½éé¢ä¸è¶³å
³ 0x08:弿³µ/éåç®¡éæ²¡ææµéå
³ 0x09:æçµåä¸çµã |
| | | public String icCardAddr ;//ICå¡å°åï¼è¿ç¨å
³éæ¶ä¸º0ï¼ |
| | | public String icCardNo ;//ICå¡ç¼å·ï¼17使°åï¼ |
| | | public String orderNo ;//订åå·ï¼16使°åï¼ |
| | |
| | | sb.append(projectNo == null?"æªç¥":projectNo) ; |
| | | sb.append("\n") ; |
| | | sb.append(" å
³æ³µ/éç±»å : ") ; |
| | | sb.append(opType == null?"æªç¥":(opType.byteValue() == 0x00 ? "å·å¡":(opType.byteValue() == 0x01 ? "å¹³å°":(opType.byteValue() == 0x02 ? "APP":(opType.byteValue() == 0x03 ? "éæ³å¡":(opType.byteValue() == 0x04 ? "水表å¼å¸¸":(opType.byteValue() == 0x05 ? "çµè¡¨å¼å¸¸":(opType.byteValue() == 0x06 ? "å©ä½æ°´éä¸è¶³":(opType.byteValue() == 0x07 ? "å©ä½éé¢ä¸è¶³":(opType.byteValue() == 0x08 ? "æ æµé":(opType.byteValue() == 0x09 ? "æçµåä¸çµ":"æªç¥"))))))))))) ; |
| | | sb.append(clType == null?"æªç¥":(clType.byteValue() == 0x00 ? "å·å¡":(clType.byteValue() == 0x01 ? "å¹³å°":(clType.byteValue() == 0x02 ? "APP":(clType.byteValue() == 0x03 ? "éæ³å¡":(clType.byteValue() == 0x04 ? "水表å¼å¸¸":(clType.byteValue() == 0x05 ? "çµè¡¨å¼å¸¸":(clType.byteValue() == 0x06 ? "å©ä½æ°´éä¸è¶³":(clType.byteValue() == 0x07 ? "å©ä½éé¢ä¸è¶³":(clType.byteValue() == 0x08 ? "æ æµé":(clType.byteValue() == 0x09 ? "æçµåä¸çµ":"æªç¥"))))))))))) ; |
| | | sb.append("\n") ; |
| | | sb.append(" å
³å¯æ³µ/éç»æ : ") ; |
| | | sb.append(opResult == null?"æªç¥":(opResult.byteValue() == 0x01 ? "æå":"失败")) ; |
| | | sb.append(clResult == null?"æªç¥":(clResult.byteValue() == 0x01 ? "æå":"失败")) ; |
| | | sb.append("\n") ; |
| | | sb.append(" ICå¡å°å : ") ; |
| | | sb.append(icCardAddr == null?"æªç¥":icCardAddr) ; |
New file |
| | |
| | | package com.dy.common.util; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/3/13 9:35 |
| | | * @Description |
| | | */ |
| | | public interface HttpCallback { |
| | | void call(String statusCode, String charset, String body) ; |
| | | } |
New file |
| | |
| | | common: |
| | | # 以䏿¯ä¸é´ä»¶åºç¨ |
| | | # 233æå¡å¨ï¼ |
| | | # ym: 8070 9070 |
| | | # sp: 8073 9073 |
| | | # test: 8072 9072 |
| | | # mj: 8071 9071 |
| | | # 121æå¡å¨ï¼ |
| | | # mq: 8100 9100 |
| | | # yq: 8101 9101 |
| | | # hlj: 8102 9102 |
| | | # gz: 8103 9103 |
| | | # lz: 8104 9104 |
| | | # jc: 8105 9105 |
| | | pipIrr_mw_webPort: 8100 #éä¿¡ä¸é´ä»¶ä¸åºç¨ï¼ä¸è½å¨web模åç³»ç»ä¸åºç¨ |
| | | pipIrr_mw_actutorPort: 9100 #éä¿¡ä¸é´ä»¶ä¸åºç¨ï¼ä¸è½å¨web模åç³»ç»ä¸åºç¨ |
| | | |
| | | # 233æå¡å¨ï¼ |
| | | # ym: pipIrr_ym |
| | | # sp: pipIrr_sp |
| | | # test: pipIrr_test |
| | | # mj: pipIrr_mj |
| | | # 121æå¡å¨ï¼ |
| | | # mq: pipIrr_mq |
| | | # yq: pipIrr_yq |
| | | # hlj: pipIrr_hlj |
| | | # gz: pipIrr_gz |
| | | # lz: pipIrr_lz |
| | | # jc: pipIrr_jc |
| | | spring_datasource_url_dbname: pipIrr_mq |
New file |
| | |
| | | common: |
| | | # 233æå¡å¨ï¼ym,mj,sp,test |
| | | # 121æå¡å¨ï¼mq,yq,hlj,gz,lz,jc |
| | | spring_main_datasource_names: mq,yq,hlj,gz,lz,jc |
New file |
| | |
| | | common: |
| | | # 233æå¡å¨ï¼ym,mj,sp,test |
| | | # 121æå¡å¨ï¼mq,yq,hlj,gz,lz,jc |
| | | spring_main_datasource_names: ym,mj,sp,test |
New file |
| | |
| | | common: |
| | | # 233æå¡å¨ï¼ym,mj,sp,test |
| | | # 121æå¡å¨ï¼mq,yq,hlj,gz,lz,jc |
| | | spring_main_datasource_names: ym,mj,sp,test |
| | |
| | | # æ°æ®æºé
ç½® |
| | | spring: |
| | | #夿°æ®æºéè¦é
ç½® |
| | | main: |
| | | allow-bean-definition-overriding: true #设置为trueæ¶ï¼åå®ä¹çbeanä¼è¦çä¹åå®ä¹çç¸ååç§°çbean |
| | | datasource: #é
ç½®æ°æ®æº |
| | | #å¤ä¸ªæ°æ®æºåç§°å¨æ¤é
ç½®ï¼è¦æ±ä¸springãdatasourceã[ym][sp][test]ä¸çä¸è´ |
| | | names: ym |
New file |
| | |
| | | # æ°æ®æºé
ç½® |
| | | spring: |
| | | datasource: #é
ç½®æ°æ®æº |
| | | gz: |
| | | #name: ym |
| | | type: com.alibaba.druid.pool.DruidDataSource |
| | | driverClassName: com.mysql.cj.jdbc.Driver |
| | | # url: jdbc:mysql://192.168.40.166:3306/pipIrr_gz?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull |
| | | # url: jdbc:mysql://8.130.130.233:3306/pipIrr_gz?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull |
| | | url: jdbc:mysql://127.0.0.1:3306/pipIrr_gz?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull |
| | | username: root |
| | | password: dysql,;.abc!@# |
| | | druid: |
| | | # æ°æ®æºåç§°ï¼å½åå¨å¤ä¸ªæ°æ®æºæ¶ï¼è®¾ç½®ååå¯ä»¥å¾æ¹ä¾¿çæ¥è¿è¡åºå,é»è®¤èªå¨çæåç§°ï¼æ ¼å¼æ¯ï¼"DataSource-" + System.identityHashCode(this) |
| | | name: druid-mysql-gz |
| | | #é
ç½®åå§å大å°ãæå°ãæå¤§ |
| | | initialSize: 10 |
| | | minIdle: 10 |
| | | maxActive: 100 |
| | | # è·åè¿æ¥æ¶æå¤§çå¾
æ¶é´,å使¯«ç§ãé
ç½®äºmaxWaitä¹å,缺çå¯ç¨å
¬å¹³é,å¹¶åæç伿æä¸é,妿éè¦å¯ä»¥éè¿é
ç½®useUnfairLock屿§ä¸ºtrue使ç¨éå
¬å¹³é |
| | | maxWait: 60000 |
| | | #é
ç½®é´éå¤ä¹
è¿è¡ä¸æ¬¡æ£æµï¼æ£æµéè¦å
³éç空é²è¿æ¥ï¼å使¯«ç§ã é»è®¤æ¯60sï¼å¤ªé¿å¯è½ä¼å¯¼è´æ æ³åæ¶æ£æµå°è¿æ¥ä¸æ |
| | | timeBetweenEvictionRunsMillis: 60000 |
| | | #é
ç½®ä¸ä¸ªè¿æ¥å¨è¿æ¥æ± ä¸çæå°çåæ¶é´ãæå¤§çåæ¶é´ï¼è¶
è¿æå¤§çåæ¶é´ä¼è¢«ç§»é¤ï¼å使¯«ç§ã |
| | | minEvictableIdleTimeMillis: 300000 |
| | | maxEvictableIdleTimeMillis: 900000 |
| | | #æ¢æ´»ãéªè¯é¾æ¥æææ§çæ¥è¯¢ï¼æ°çæ¬é»è®¤ä½¿ç¨mysqlPingä»£æ¿ |
| | | #validation-query: select 1 #注éæï¼éç¨é»è®¤çmysqlPing |
| | | #é
ç½®ä»è¿æ¥æ± è·åè¿æ¥æ¶ï¼å½è¿æ¥ç©ºé²æ¶é´å¤§äºtimeBetweenEvictionRunsMillisæ¶æ¯å¦æ£æ¥è¿æ¥æææ§ï¼trueæ¯æ¬¡é½æ£æ¥ï¼false䏿£æ¥ã |
| | | testWhileIdle: true |
| | | #é
ç½®ä»è¿æ¥æ± è·åè¿æ¥æ¶ååè¿æ¥æ± å½è¿è¿æ¥æ¶ï¼æ¯å¦æ£æ¥è¿æ¥æææ§ |
| | | #æ¯æ¬¡è·åæå½è¿è¿æ¥é½æ£æµå¤ªé¢ç¹ï¼é¤éç¹å«éè¦æç½ç»ç¹å«ä¸å¯é çæ
åµï¼å»ºè®®ç¨testWhileIdle + timeBetweenEvictionRunsMillis代æ¿ã--> |
| | | testOnBorrow: false |
| | | testOnReturn: false |
| | | #é
ç½®æ¯å¦å®ææ¢æ´»ãæ¢æ´»é´é, é»è®¤120s |
| | | keepAlive: true |
| | | #keepAliveBetweenTimeMillis must be greater than timeBetweenEvictionRunsMillis |
| | | keepAliveBetweenTimeMillis: 1200000 |
| | | #é
ç½®ä¸ä¸ªè¿æ¥æå¤§ä½¿ç¨æ¬¡æ°ï¼é¿å
é¿æ¶é´ä½¿ç¨ç¸åè¿æ¥é ææå¡å¨ç«¯è´è½½ä¸åè¡¡ã |
| | | phyMaxUseCount: 1000 |
| | | #æ¯å¦ç¼åpreparedStatementï¼ä¹å°±æ¯PSCacheãPSCacheå¯¹æ¯ææ¸¸æ çæ°æ®åºæ§è½æåå·¨å¤§ï¼æ¯å¦è¯´oracleãå¨mysqlä¸å»ºè®®å
³éã |
| | | poolPreparedStatements: false |
| | | #è¦å¯ç¨PSCacheï¼å¿
é¡»é
置大äº0ï¼å½å¤§äº0æ¶ï¼poolPreparedStatementsèªå¨è§¦åä¿®æ¹ä¸ºtrueãå¨Druidä¸ï¼ä¸ä¼åå¨Oracleä¸PSCacheå ç¨å
åè¿å¤çé®é¢ï¼å¯ä»¥æè¿ä¸ªæ°å¼é
置大ä¸äºï¼æ¯å¦è¯´100 |
| | | maxOpenPreparedStatements: -1 |
| | | #æå®æ¯ä¸ªè¿æ¥ä¸PSCacheçå¤§å° |
| | | maxPoolPreparedStatementPerConnectionSize: 20 |
| | | #屿§ç±»åæ¯å符串ï¼éè¿å«åçæ¹å¼é
ç½®æ©å±æä»¶ï¼å¸¸ç¨çæä»¶æï¼ |
| | | #çæ§ç»è®¡ç¨çfilter:statï¼æ¥å¿ç¨çfilter:log4jï¼é²å¾¡sql注å
¥çfilter:wall |
| | | #filters: stat,wall,config |
| | | filters: wall,config |
| | | webStatFilter: |
| | | # æ·»å è¿æ»¤è§å |
| | | urlPattern: /* |
| | | # 忽ç¥è¿æ»¤æ ¼å¼ |
| | | exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*" |
| | | statViewServlet: |
| | | # 设置ipç½åå |
| | | # allow: 127.0.0.1 |
| | | # 设置ipé»ååï¼ä¼å
级é«äºç½åå |
| | | deny: |
| | | # 设置æ§å¶å°ç®¡çç¨æ· |
| | | # loginUsername: root |
| | | # loginPassword: root |
| | | # æ¯å¦å¯ä»¥éç½®æ°æ® |
| | | resetEnable: false |
| | | # å¼å¯druidçæ§é¡µé¢ |
| | | #enabled: true |
| | | enabled: false |
| | | |
New file |
| | |
| | | # æ°æ®æºé
ç½® |
| | | spring: |
| | | datasource: #é
ç½®æ°æ®æº |
| | | hlj: |
| | | #name: ym |
| | | type: com.alibaba.druid.pool.DruidDataSource |
| | | driverClassName: com.mysql.cj.jdbc.Driver |
| | | # url: jdbc:mysql://192.168.40.166:3306/pipIrr_hlj?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull |
| | | # url: jdbc:mysql://8.130.130.233:3306/pipIrr_hlj?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull |
| | | url: jdbc:mysql://127.0.0.1:3306/pipIrr_hlj?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull |
| | | username: root |
| | | password: dysql,;.abc!@# |
| | | druid: |
| | | # æ°æ®æºåç§°ï¼å½åå¨å¤ä¸ªæ°æ®æºæ¶ï¼è®¾ç½®ååå¯ä»¥å¾æ¹ä¾¿çæ¥è¿è¡åºå,é»è®¤èªå¨çæåç§°ï¼æ ¼å¼æ¯ï¼"DataSource-" + System.identityHashCode(this) |
| | | name: druid-mysql-hlj |
| | | #é
ç½®åå§å大å°ãæå°ãæå¤§ |
| | | initialSize: 10 |
| | | minIdle: 10 |
| | | maxActive: 100 |
| | | # è·åè¿æ¥æ¶æå¤§çå¾
æ¶é´,å使¯«ç§ãé
ç½®äºmaxWaitä¹å,缺çå¯ç¨å
¬å¹³é,å¹¶åæç伿æä¸é,妿éè¦å¯ä»¥éè¿é
ç½®useUnfairLock屿§ä¸ºtrue使ç¨éå
¬å¹³é |
| | | maxWait: 60000 |
| | | #é
ç½®é´éå¤ä¹
è¿è¡ä¸æ¬¡æ£æµï¼æ£æµéè¦å
³éç空é²è¿æ¥ï¼å使¯«ç§ã é»è®¤æ¯60sï¼å¤ªé¿å¯è½ä¼å¯¼è´æ æ³åæ¶æ£æµå°è¿æ¥ä¸æ |
| | | timeBetweenEvictionRunsMillis: 60000 |
| | | #é
ç½®ä¸ä¸ªè¿æ¥å¨è¿æ¥æ± ä¸çæå°çåæ¶é´ãæå¤§çåæ¶é´ï¼è¶
è¿æå¤§çåæ¶é´ä¼è¢«ç§»é¤ï¼å使¯«ç§ã |
| | | minEvictableIdleTimeMillis: 300000 |
| | | maxEvictableIdleTimeMillis: 900000 |
| | | #æ¢æ´»ãéªè¯é¾æ¥æææ§çæ¥è¯¢ï¼æ°çæ¬é»è®¤ä½¿ç¨mysqlPingä»£æ¿ |
| | | #validation-query: select 1 #注éæï¼éç¨é»è®¤çmysqlPing |
| | | #é
ç½®ä»è¿æ¥æ± è·åè¿æ¥æ¶ï¼å½è¿æ¥ç©ºé²æ¶é´å¤§äºtimeBetweenEvictionRunsMillisæ¶æ¯å¦æ£æ¥è¿æ¥æææ§ï¼trueæ¯æ¬¡é½æ£æ¥ï¼false䏿£æ¥ã |
| | | testWhileIdle: true |
| | | #é
ç½®ä»è¿æ¥æ± è·åè¿æ¥æ¶ååè¿æ¥æ± å½è¿è¿æ¥æ¶ï¼æ¯å¦æ£æ¥è¿æ¥æææ§ |
| | | #æ¯æ¬¡è·åæå½è¿è¿æ¥é½æ£æµå¤ªé¢ç¹ï¼é¤éç¹å«éè¦æç½ç»ç¹å«ä¸å¯é çæ
åµï¼å»ºè®®ç¨testWhileIdle + timeBetweenEvictionRunsMillis代æ¿ã--> |
| | | testOnBorrow: false |
| | | testOnReturn: false |
| | | #é
ç½®æ¯å¦å®ææ¢æ´»ãæ¢æ´»é´é, é»è®¤120s |
| | | keepAlive: true |
| | | #keepAliveBetweenTimeMillis must be greater than timeBetweenEvictionRunsMillis |
| | | keepAliveBetweenTimeMillis: 1200000 |
| | | #é
ç½®ä¸ä¸ªè¿æ¥æå¤§ä½¿ç¨æ¬¡æ°ï¼é¿å
é¿æ¶é´ä½¿ç¨ç¸åè¿æ¥é ææå¡å¨ç«¯è´è½½ä¸åè¡¡ã |
| | | phyMaxUseCount: 1000 |
| | | #æ¯å¦ç¼åpreparedStatementï¼ä¹å°±æ¯PSCacheãPSCacheå¯¹æ¯ææ¸¸æ çæ°æ®åºæ§è½æåå·¨å¤§ï¼æ¯å¦è¯´oracleãå¨mysqlä¸å»ºè®®å
³éã |
| | | poolPreparedStatements: false |
| | | #è¦å¯ç¨PSCacheï¼å¿
é¡»é
置大äº0ï¼å½å¤§äº0æ¶ï¼poolPreparedStatementsèªå¨è§¦åä¿®æ¹ä¸ºtrueãå¨Druidä¸ï¼ä¸ä¼åå¨Oracleä¸PSCacheå ç¨å
åè¿å¤çé®é¢ï¼å¯ä»¥æè¿ä¸ªæ°å¼é
置大ä¸äºï¼æ¯å¦è¯´100 |
| | | maxOpenPreparedStatements: -1 |
| | | #æå®æ¯ä¸ªè¿æ¥ä¸PSCacheçå¤§å° |
| | | maxPoolPreparedStatementPerConnectionSize: 20 |
| | | #屿§ç±»åæ¯å符串ï¼éè¿å«åçæ¹å¼é
ç½®æ©å±æä»¶ï¼å¸¸ç¨çæä»¶æï¼ |
| | | #çæ§ç»è®¡ç¨çfilter:statï¼æ¥å¿ç¨çfilter:log4jï¼é²å¾¡sql注å
¥çfilter:wall |
| | | #filters: stat,wall,config |
| | | filters: wall,config |
| | | webStatFilter: |
| | | # æ·»å è¿æ»¤è§å |
| | | urlPattern: /* |
| | | # 忽ç¥è¿æ»¤æ ¼å¼ |
| | | exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*" |
| | | statViewServlet: |
| | | # 设置ipç½åå |
| | | # allow: 127.0.0.1 |
| | | # 设置ipé»ååï¼ä¼å
级é«äºç½åå |
| | | deny: |
| | | # 设置æ§å¶å°ç®¡çç¨æ· |
| | | # loginUsername: root |
| | | # loginPassword: root |
| | | # æ¯å¦å¯ä»¥éç½®æ°æ® |
| | | resetEnable: false |
| | | # å¼å¯druidçæ§é¡µé¢ |
| | | #enabled: true |
| | | enabled: false |
| | | |
New file |
| | |
| | | # æ°æ®æºé
ç½® |
| | | spring: |
| | | datasource: #é
ç½®æ°æ®æº |
| | | jc: |
| | | #name: ym |
| | | type: com.alibaba.druid.pool.DruidDataSource |
| | | driverClassName: com.mysql.cj.jdbc.Driver |
| | | # url: jdbc:mysql://192.168.40.166:3306/pipIrr_jc?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull |
| | | # url: jdbc:mysql://8.130.130.233:3306/pipIrr_jc?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull |
| | | url: jdbc:mysql://127.0.0.1:3306/pipIrr_jc?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull |
| | | username: root |
| | | password: dysql,;.abc!@# |
| | | druid: |
| | | # æ°æ®æºåç§°ï¼å½åå¨å¤ä¸ªæ°æ®æºæ¶ï¼è®¾ç½®ååå¯ä»¥å¾æ¹ä¾¿çæ¥è¿è¡åºå,é»è®¤èªå¨çæåç§°ï¼æ ¼å¼æ¯ï¼"DataSource-" + System.identityHashCode(this) |
| | | name: druid-mysql-jc |
| | | #é
ç½®åå§å大å°ãæå°ãæå¤§ |
| | | initialSize: 10 |
| | | minIdle: 10 |
| | | maxActive: 100 |
| | | # è·åè¿æ¥æ¶æå¤§çå¾
æ¶é´,å使¯«ç§ãé
ç½®äºmaxWaitä¹å,缺çå¯ç¨å
¬å¹³é,å¹¶åæç伿æä¸é,妿éè¦å¯ä»¥éè¿é
ç½®useUnfairLock屿§ä¸ºtrue使ç¨éå
¬å¹³é |
| | | maxWait: 60000 |
| | | #é
ç½®é´éå¤ä¹
è¿è¡ä¸æ¬¡æ£æµï¼æ£æµéè¦å
³éç空é²è¿æ¥ï¼å使¯«ç§ã é»è®¤æ¯60sï¼å¤ªé¿å¯è½ä¼å¯¼è´æ æ³åæ¶æ£æµå°è¿æ¥ä¸æ |
| | | timeBetweenEvictionRunsMillis: 60000 |
| | | #é
ç½®ä¸ä¸ªè¿æ¥å¨è¿æ¥æ± ä¸çæå°çåæ¶é´ãæå¤§çåæ¶é´ï¼è¶
è¿æå¤§çåæ¶é´ä¼è¢«ç§»é¤ï¼å使¯«ç§ã |
| | | minEvictableIdleTimeMillis: 300000 |
| | | maxEvictableIdleTimeMillis: 900000 |
| | | #æ¢æ´»ãéªè¯é¾æ¥æææ§çæ¥è¯¢ï¼æ°çæ¬é»è®¤ä½¿ç¨mysqlPingä»£æ¿ |
| | | #validation-query: select 1 #注éæï¼éç¨é»è®¤çmysqlPing |
| | | #é
ç½®ä»è¿æ¥æ± è·åè¿æ¥æ¶ï¼å½è¿æ¥ç©ºé²æ¶é´å¤§äºtimeBetweenEvictionRunsMillisæ¶æ¯å¦æ£æ¥è¿æ¥æææ§ï¼trueæ¯æ¬¡é½æ£æ¥ï¼false䏿£æ¥ã |
| | | testWhileIdle: true |
| | | #é
ç½®ä»è¿æ¥æ± è·åè¿æ¥æ¶ååè¿æ¥æ± å½è¿è¿æ¥æ¶ï¼æ¯å¦æ£æ¥è¿æ¥æææ§ |
| | | #æ¯æ¬¡è·åæå½è¿è¿æ¥é½æ£æµå¤ªé¢ç¹ï¼é¤éç¹å«éè¦æç½ç»ç¹å«ä¸å¯é çæ
åµï¼å»ºè®®ç¨testWhileIdle + timeBetweenEvictionRunsMillis代æ¿ã--> |
| | | testOnBorrow: false |
| | | testOnReturn: false |
| | | #é
ç½®æ¯å¦å®ææ¢æ´»ãæ¢æ´»é´é, é»è®¤120s |
| | | keepAlive: true |
| | | #keepAliveBetweenTimeMillis must be greater than timeBetweenEvictionRunsMillis |
| | | keepAliveBetweenTimeMillis: 1200000 |
| | | #é
ç½®ä¸ä¸ªè¿æ¥æå¤§ä½¿ç¨æ¬¡æ°ï¼é¿å
é¿æ¶é´ä½¿ç¨ç¸åè¿æ¥é ææå¡å¨ç«¯è´è½½ä¸åè¡¡ã |
| | | phyMaxUseCount: 1000 |
| | | #æ¯å¦ç¼åpreparedStatementï¼ä¹å°±æ¯PSCacheãPSCacheå¯¹æ¯ææ¸¸æ çæ°æ®åºæ§è½æåå·¨å¤§ï¼æ¯å¦è¯´oracleãå¨mysqlä¸å»ºè®®å
³éã |
| | | poolPreparedStatements: false |
| | | #è¦å¯ç¨PSCacheï¼å¿
é¡»é
置大äº0ï¼å½å¤§äº0æ¶ï¼poolPreparedStatementsèªå¨è§¦åä¿®æ¹ä¸ºtrueãå¨Druidä¸ï¼ä¸ä¼åå¨Oracleä¸PSCacheå ç¨å
åè¿å¤çé®é¢ï¼å¯ä»¥æè¿ä¸ªæ°å¼é
置大ä¸äºï¼æ¯å¦è¯´100 |
| | | maxOpenPreparedStatements: -1 |
| | | #æå®æ¯ä¸ªè¿æ¥ä¸PSCacheçå¤§å° |
| | | maxPoolPreparedStatementPerConnectionSize: 20 |
| | | #屿§ç±»åæ¯å符串ï¼éè¿å«åçæ¹å¼é
ç½®æ©å±æä»¶ï¼å¸¸ç¨çæä»¶æï¼ |
| | | #çæ§ç»è®¡ç¨çfilter:statï¼æ¥å¿ç¨çfilter:log4jï¼é²å¾¡sql注å
¥çfilter:wall |
| | | #filters: stat,wall,config |
| | | filters: wall,config |
| | | webStatFilter: |
| | | # æ·»å è¿æ»¤è§å |
| | | urlPattern: /* |
| | | # 忽ç¥è¿æ»¤æ ¼å¼ |
| | | exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*" |
| | | statViewServlet: |
| | | # 设置ipç½åå |
| | | # allow: 127.0.0.1 |
| | | # 设置ipé»ååï¼ä¼å
级é«äºç½åå |
| | | deny: |
| | | # 设置æ§å¶å°ç®¡çç¨æ· |
| | | # loginUsername: root |
| | | # loginPassword: root |
| | | # æ¯å¦å¯ä»¥éç½®æ°æ® |
| | | resetEnable: false |
| | | # å¼å¯druidçæ§é¡µé¢ |
| | | #enabled: true |
| | | enabled: false |
| | | |
New file |
| | |
| | | # æ°æ®æºé
ç½® |
| | | spring: |
| | | datasource: #é
ç½®æ°æ®æº |
| | | lz: |
| | | #name: ym |
| | | type: com.alibaba.druid.pool.DruidDataSource |
| | | driverClassName: com.mysql.cj.jdbc.Driver |
| | | # url: jdbc:mysql://192.168.40.166:3306/pipIrr_lz?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull |
| | | # url: jdbc:mysql://8.130.130.233:3306/pipIrr_lz?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull |
| | | url: jdbc:mysql://127.0.0.1:3306/pipIrr_lz?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull |
| | | username: root |
| | | password: dysql,;.abc!@# |
| | | druid: |
| | | # æ°æ®æºåç§°ï¼å½åå¨å¤ä¸ªæ°æ®æºæ¶ï¼è®¾ç½®ååå¯ä»¥å¾æ¹ä¾¿çæ¥è¿è¡åºå,é»è®¤èªå¨çæåç§°ï¼æ ¼å¼æ¯ï¼"DataSource-" + System.identityHashCode(this) |
| | | name: druid-mysql-lz |
| | | #é
ç½®åå§å大å°ãæå°ãæå¤§ |
| | | initialSize: 10 |
| | | minIdle: 10 |
| | | maxActive: 100 |
| | | # è·åè¿æ¥æ¶æå¤§çå¾
æ¶é´,å使¯«ç§ãé
ç½®äºmaxWaitä¹å,缺çå¯ç¨å
¬å¹³é,å¹¶åæç伿æä¸é,妿éè¦å¯ä»¥éè¿é
ç½®useUnfairLock屿§ä¸ºtrue使ç¨éå
¬å¹³é |
| | | maxWait: 60000 |
| | | #é
ç½®é´éå¤ä¹
è¿è¡ä¸æ¬¡æ£æµï¼æ£æµéè¦å
³éç空é²è¿æ¥ï¼å使¯«ç§ã é»è®¤æ¯60sï¼å¤ªé¿å¯è½ä¼å¯¼è´æ æ³åæ¶æ£æµå°è¿æ¥ä¸æ |
| | | timeBetweenEvictionRunsMillis: 60000 |
| | | #é
ç½®ä¸ä¸ªè¿æ¥å¨è¿æ¥æ± ä¸çæå°çåæ¶é´ãæå¤§çåæ¶é´ï¼è¶
è¿æå¤§çåæ¶é´ä¼è¢«ç§»é¤ï¼å使¯«ç§ã |
| | | minEvictableIdleTimeMillis: 300000 |
| | | maxEvictableIdleTimeMillis: 900000 |
| | | #æ¢æ´»ãéªè¯é¾æ¥æææ§çæ¥è¯¢ï¼æ°çæ¬é»è®¤ä½¿ç¨mysqlPingä»£æ¿ |
| | | #validation-query: select 1 #注éæï¼éç¨é»è®¤çmysqlPing |
| | | #é
ç½®ä»è¿æ¥æ± è·åè¿æ¥æ¶ï¼å½è¿æ¥ç©ºé²æ¶é´å¤§äºtimeBetweenEvictionRunsMillisæ¶æ¯å¦æ£æ¥è¿æ¥æææ§ï¼trueæ¯æ¬¡é½æ£æ¥ï¼false䏿£æ¥ã |
| | | testWhileIdle: true |
| | | #é
ç½®ä»è¿æ¥æ± è·åè¿æ¥æ¶ååè¿æ¥æ± å½è¿è¿æ¥æ¶ï¼æ¯å¦æ£æ¥è¿æ¥æææ§ |
| | | #æ¯æ¬¡è·åæå½è¿è¿æ¥é½æ£æµå¤ªé¢ç¹ï¼é¤éç¹å«éè¦æç½ç»ç¹å«ä¸å¯é çæ
åµï¼å»ºè®®ç¨testWhileIdle + timeBetweenEvictionRunsMillis代æ¿ã--> |
| | | testOnBorrow: false |
| | | testOnReturn: false |
| | | #é
ç½®æ¯å¦å®ææ¢æ´»ãæ¢æ´»é´é, é»è®¤120s |
| | | keepAlive: true |
| | | #keepAliveBetweenTimeMillis must be greater than timeBetweenEvictionRunsMillis |
| | | keepAliveBetweenTimeMillis: 1200000 |
| | | #é
ç½®ä¸ä¸ªè¿æ¥æå¤§ä½¿ç¨æ¬¡æ°ï¼é¿å
é¿æ¶é´ä½¿ç¨ç¸åè¿æ¥é ææå¡å¨ç«¯è´è½½ä¸åè¡¡ã |
| | | phyMaxUseCount: 1000 |
| | | #æ¯å¦ç¼åpreparedStatementï¼ä¹å°±æ¯PSCacheãPSCacheå¯¹æ¯ææ¸¸æ çæ°æ®åºæ§è½æåå·¨å¤§ï¼æ¯å¦è¯´oracleãå¨mysqlä¸å»ºè®®å
³éã |
| | | poolPreparedStatements: false |
| | | #è¦å¯ç¨PSCacheï¼å¿
é¡»é
置大äº0ï¼å½å¤§äº0æ¶ï¼poolPreparedStatementsèªå¨è§¦åä¿®æ¹ä¸ºtrueãå¨Druidä¸ï¼ä¸ä¼åå¨Oracleä¸PSCacheå ç¨å
åè¿å¤çé®é¢ï¼å¯ä»¥æè¿ä¸ªæ°å¼é
置大ä¸äºï¼æ¯å¦è¯´100 |
| | | maxOpenPreparedStatements: -1 |
| | | #æå®æ¯ä¸ªè¿æ¥ä¸PSCacheçå¤§å° |
| | | maxPoolPreparedStatementPerConnectionSize: 20 |
| | | #屿§ç±»åæ¯å符串ï¼éè¿å«åçæ¹å¼é
ç½®æ©å±æä»¶ï¼å¸¸ç¨çæä»¶æï¼ |
| | | #çæ§ç»è®¡ç¨çfilter:statï¼æ¥å¿ç¨çfilter:log4jï¼é²å¾¡sql注å
¥çfilter:wall |
| | | #filters: stat,wall,config |
| | | filters: wall,config |
| | | webStatFilter: |
| | | # æ·»å è¿æ»¤è§å |
| | | urlPattern: /* |
| | | # 忽ç¥è¿æ»¤æ ¼å¼ |
| | | exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*" |
| | | statViewServlet: |
| | | # 设置ipç½åå |
| | | # allow: 127.0.0.1 |
| | | # 设置ipé»ååï¼ä¼å
级é«äºç½åå |
| | | deny: |
| | | # 设置æ§å¶å°ç®¡çç¨æ· |
| | | # loginUsername: root |
| | | # loginPassword: root |
| | | # æ¯å¦å¯ä»¥éç½®æ°æ® |
| | | resetEnable: false |
| | | # å¼å¯druidçæ§é¡µé¢ |
| | | #enabled: true |
| | | enabled: false |
| | | |
New file |
| | |
| | | # æ°æ®æºé
ç½® |
| | | spring: |
| | | datasource: #é
ç½®æ°æ®æº |
| | | yq: |
| | | #name: ym |
| | | type: com.alibaba.druid.pool.DruidDataSource |
| | | driverClassName: com.mysql.cj.jdbc.Driver |
| | | # url: jdbc:mysql://192.168.40.166:3306/pipIrr_yq?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull |
| | | # url: jdbc:mysql://8.130.130.233:3306/pipIrr_yq?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull |
| | | url: jdbc:mysql://127.0.0.1:3306/pipIrr_yq?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull |
| | | username: root |
| | | password: dysql,;.abc!@# |
| | | druid: |
| | | # æ°æ®æºåç§°ï¼å½åå¨å¤ä¸ªæ°æ®æºæ¶ï¼è®¾ç½®ååå¯ä»¥å¾æ¹ä¾¿çæ¥è¿è¡åºå,é»è®¤èªå¨çæåç§°ï¼æ ¼å¼æ¯ï¼"DataSource-" + System.identityHashCode(this) |
| | | name: druid-mysql-yq |
| | | #é
ç½®åå§å大å°ãæå°ãæå¤§ |
| | | initialSize: 10 |
| | | minIdle: 10 |
| | | maxActive: 100 |
| | | # è·åè¿æ¥æ¶æå¤§çå¾
æ¶é´,å使¯«ç§ãé
ç½®äºmaxWaitä¹å,缺çå¯ç¨å
¬å¹³é,å¹¶åæç伿æä¸é,妿éè¦å¯ä»¥éè¿é
ç½®useUnfairLock屿§ä¸ºtrue使ç¨éå
¬å¹³é |
| | | maxWait: 60000 |
| | | #é
ç½®é´éå¤ä¹
è¿è¡ä¸æ¬¡æ£æµï¼æ£æµéè¦å
³éç空é²è¿æ¥ï¼å使¯«ç§ã é»è®¤æ¯60sï¼å¤ªé¿å¯è½ä¼å¯¼è´æ æ³åæ¶æ£æµå°è¿æ¥ä¸æ |
| | | timeBetweenEvictionRunsMillis: 60000 |
| | | #é
ç½®ä¸ä¸ªè¿æ¥å¨è¿æ¥æ± ä¸çæå°çåæ¶é´ãæå¤§çåæ¶é´ï¼è¶
è¿æå¤§çåæ¶é´ä¼è¢«ç§»é¤ï¼å使¯«ç§ã |
| | | minEvictableIdleTimeMillis: 300000 |
| | | maxEvictableIdleTimeMillis: 900000 |
| | | #æ¢æ´»ãéªè¯é¾æ¥æææ§çæ¥è¯¢ï¼æ°çæ¬é»è®¤ä½¿ç¨mysqlPingä»£æ¿ |
| | | #validation-query: select 1 #注éæï¼éç¨é»è®¤çmysqlPing |
| | | #é
ç½®ä»è¿æ¥æ± è·åè¿æ¥æ¶ï¼å½è¿æ¥ç©ºé²æ¶é´å¤§äºtimeBetweenEvictionRunsMillisæ¶æ¯å¦æ£æ¥è¿æ¥æææ§ï¼trueæ¯æ¬¡é½æ£æ¥ï¼false䏿£æ¥ã |
| | | testWhileIdle: true |
| | | #é
ç½®ä»è¿æ¥æ± è·åè¿æ¥æ¶ååè¿æ¥æ± å½è¿è¿æ¥æ¶ï¼æ¯å¦æ£æ¥è¿æ¥æææ§ |
| | | #æ¯æ¬¡è·åæå½è¿è¿æ¥é½æ£æµå¤ªé¢ç¹ï¼é¤éç¹å«éè¦æç½ç»ç¹å«ä¸å¯é çæ
åµï¼å»ºè®®ç¨testWhileIdle + timeBetweenEvictionRunsMillis代æ¿ã--> |
| | | testOnBorrow: false |
| | | testOnReturn: false |
| | | #é
ç½®æ¯å¦å®ææ¢æ´»ãæ¢æ´»é´é, é»è®¤120s |
| | | keepAlive: true |
| | | #keepAliveBetweenTimeMillis must be greater than timeBetweenEvictionRunsMillis |
| | | keepAliveBetweenTimeMillis: 1200000 |
| | | #é
ç½®ä¸ä¸ªè¿æ¥æå¤§ä½¿ç¨æ¬¡æ°ï¼é¿å
é¿æ¶é´ä½¿ç¨ç¸åè¿æ¥é ææå¡å¨ç«¯è´è½½ä¸åè¡¡ã |
| | | phyMaxUseCount: 1000 |
| | | #æ¯å¦ç¼åpreparedStatementï¼ä¹å°±æ¯PSCacheãPSCacheå¯¹æ¯ææ¸¸æ çæ°æ®åºæ§è½æåå·¨å¤§ï¼æ¯å¦è¯´oracleãå¨mysqlä¸å»ºè®®å
³éã |
| | | poolPreparedStatements: false |
| | | #è¦å¯ç¨PSCacheï¼å¿
é¡»é
置大äº0ï¼å½å¤§äº0æ¶ï¼poolPreparedStatementsèªå¨è§¦åä¿®æ¹ä¸ºtrueãå¨Druidä¸ï¼ä¸ä¼åå¨Oracleä¸PSCacheå ç¨å
åè¿å¤çé®é¢ï¼å¯ä»¥æè¿ä¸ªæ°å¼é
置大ä¸äºï¼æ¯å¦è¯´100 |
| | | maxOpenPreparedStatements: -1 |
| | | #æå®æ¯ä¸ªè¿æ¥ä¸PSCacheçå¤§å° |
| | | maxPoolPreparedStatementPerConnectionSize: 20 |
| | | #屿§ç±»åæ¯å符串ï¼éè¿å«åçæ¹å¼é
ç½®æ©å±æä»¶ï¼å¸¸ç¨çæä»¶æï¼ |
| | | #çæ§ç»è®¡ç¨çfilter:statï¼æ¥å¿ç¨çfilter:log4jï¼é²å¾¡sql注å
¥çfilter:wall |
| | | #filters: stat,wall,config |
| | | filters: wall,config |
| | | webStatFilter: |
| | | # æ·»å è¿æ»¤è§å |
| | | urlPattern: /* |
| | | # 忽ç¥è¿æ»¤æ ¼å¼ |
| | | exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*" |
| | | statViewServlet: |
| | | # 设置ipç½åå |
| | | # allow: 127.0.0.1 |
| | | # 设置ipé»ååï¼ä¼å
级é«äºç½åå |
| | | deny: |
| | | # 设置æ§å¶å°ç®¡çç¨æ· |
| | | # loginUsername: root |
| | | # loginPassword: root |
| | | # æ¯å¦å¯ä»¥éç½®æ°æ® |
| | | resetEnable: false |
| | | # å¼å¯druidçæ§é¡µé¢ |
| | | #enabled: true |
| | | enabled: false |
| | | |
| | |
| | | # æ°æ®æºé
ç½® |
| | | spring: |
| | | #夿°æ®æºéè¦é
ç½® |
| | | main: |
| | | allow-bean-definition-overriding: true #设置为trueæ¶ï¼åå®ä¹çbeanä¼è¦çä¹åå®ä¹çç¸ååç§°çbean |
| | | datasource: #é
ç½®æ°æ®æº |
| | | #å¤ä¸ªæ°æ®æºåç§°å¨æ¤é
ç½®ï¼è¦æ±ä¸springãdatasourceã[ym][sp][test]ä¸çä¸è´ |
| | | names: ym,mj,sp,test,mq |
| | | names: ${common.spring_main_datasource_names} |
| | |
| | | spring: |
| | | main: |
| | | allow-bean-definition-overriding: true #设置为trueæ¶ï¼åå®ä¹çbeanä¼è¦çä¹åå®ä¹çç¸ååç§°çbean |
| | | servlet: |
| | | multipart: |
| | | # å端ä¸ä¼ æä»¶ï¼éå¶å个æä»¶ç大å°åéå¶æææä»¶çå¤§å° |
| | |
| | | mj: |
| | | url: "http://127.0.0.1:8071" |
| | | comSendUrl: "http://127.0.0.1:8071/rtuMw/com/send" |
| | | mq: |
| | | url: "http://127.0.0.1:8100" |
| | | comSendUrl: "http://127.0.0.1:8100/rtuMw/com/send" |
| | | sp: |
| | | url: "http://127.0.0.1:8073" |
| | | comSendUrl: "http://127.0.0.1:8073/rtuMw/com/send" |
| | | test: |
| | | url: "http://127.0.0.1:8072" |
| | | comSendUrl: "http://127.0.0.1:8072/rtuMw/com/send" |
| | | mq: |
| | | url: "http://127.0.0.1:8100" |
| | | comSendUrl: "http://127.0.0.1:8100/rtuMw/com/send" |
| | | yq: |
| | | url: "http://127.0.0.1:8101" |
| | | comSendUrl: "http://127.0.0.1:8101/rtuMw/com/send" |
| | | hlj: |
| | | url: "http://127.0.0.1:8102" |
| | | comSendUrl: "http://127.0.0.1:8102/rtuMw/com/send" |
| | | gz: |
| | | url: "http://127.0.0.1:8103" |
| | | comSendUrl: "http://127.0.0.1:8103/rtuMw/com/send" |
| | | lz: |
| | | url: "http://127.0.0.1:8104" |
| | | comSendUrl: "http://127.0.0.1:8104/rtuMw/com/send" |
| | | jc: |
| | | url: "http://127.0.0.1:8105" |
| | | comSendUrl: "http://127.0.0.1:8105/rtuMw/com/send" |
| | | #Rtuè¿ç¨å½ä»¤ç»æåè°å°å |
| | | rtuCallbackUrl_rm: "http://127.0.0.1:8081/remote/comRes/receive" |
| | | #æ¥æ¶éä¿¡ä¸é´ä»¶æ¶æ¯ä¸å¿æ¶æ¯çå°å |
| | |
| | | spring: |
| | | main: |
| | | allow-bean-definition-overriding: true #设置为trueæ¶ï¼åå®ä¹çbeanä¼è¦çä¹åå®ä¹çç¸ååç§°çbean |
| | | servlet: |
| | | multipart: |
| | | # å端ä¸ä¼ æä»¶ï¼éå¶å个æä»¶ç大å°åéå¶æææä»¶çå¤§å° |
| | |
| | | dev: false #æ¯å¦å¼åé¶æ®µï¼trueæfalse |
| | | dsName: ym #å¼åé¶æ®µï¼è®¾ç½®ä¸´æ¶çæ°æ®åºåç§° |
| | | nginx: |
| | | root: E:/apps/pipIrr/nginx-1.27.0 |
| | | root: D:/apps/pipIrr/nginx-1.27.0 |
| | | webPort: 54321 |
| | | webFilePort: 19913 |
| | | webFilePort: 64321 |
| | | mw: |
| | | webPort: 8070 #éä¿¡ä¸é´ä»¶ä¸åºç¨ï¼ä¸è½å¨web模åç³»ç»ä¸åºç¨ |
| | | actutorPort: 9070 #éä¿¡ä¸é´ä»¶ä¸åºç¨ï¼ä¸è½å¨web模åç³»ç»ä¸åºç¨ |
| | | webPort: ${common.pipIrr_mw_webPort} #éä¿¡ä¸é´ä»¶ä¸åºç¨ï¼ä¸è½å¨web模åç³»ç»ä¸åºç¨ |
| | | actutorPort: ${common.pipIrr_mw_actutorPort} #éä¿¡ä¸é´ä»¶ä¸åºç¨ï¼ä¸è½å¨web模åç³»ç»ä¸åºç¨ |
| | | idSuffix: 0 |
| | | sso: |
| | | cacheMaximumSize: 10000 #ç»å½ç¨æ·ç¼åå¯ç¼åç¨æ·çæå¤§å¼ |
| | |
| | | hashStart: 0 |
| | | hashEnd: 5461 |
| | | restUrl: http://127.0.0.1:${pipIrr.file1.webPort}/file #fileæ¯ä¸ä¸æ,ip为å±åç½ipææ¬å°IP |
| | | webUrl: http://no253541tf71.vicp.fun:${pipIrr.nginx.webFilePort}/webfiles/ #nginxæå¡è·¯å¾,å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webDownloadPath: http://no253541tf71.vicp.fun:${pipIrr.nginx.webPort}/file/download/down?id= #å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webUrl: http://8.130.130.233:${pipIrr.nginx.webFilePort}/webfiles/ #nginxæå¡è·¯å¾,å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webDownloadPath: http://8.130.130.233:${pipIrr.nginx.webPort}/file/download/down?id= #å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | sv2: |
| | | id: dyFile2 |
| | | absolutePath: ${pipIrr.nginx.root}/html/webfiles/ |
| | |
| | | hashStart: 5462 |
| | | hashEnd: 10923 |
| | | restUrl: http://127.0.0.1:${pipIrr.file2.webPort}/file |
| | | webUrl: http://no253541tf71.vicp.fun:${pipIrr.nginx.webFilePort}/webfiles/ #nginxæå¡è·¯å¾,å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webDownloadPath: http://no253541tf71.vicp.fun:${pipIrr.nginx.webPort}/file/download/down?id= #å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webUrl: http://8.130.130.233:${pipIrr.nginx.webFilePort}/webfiles/ #nginxæå¡è·¯å¾,å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webDownloadPath: http://8.130.130.233:${pipIrr.nginx.webPort}/file/download/down?id= #å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | sv3: |
| | | id: dyFile3 |
| | | absolutePath: ${pipIrr.nginx.root}/html/webfiles/ |
| | |
| | | hashStart: 10924 |
| | | hashEnd: 16385 |
| | | restUrl: http://127.0.0.1:${pipIrr.file3.webPort}/file |
| | | webUrl: http://no253541tf71.vicp.fun:${pipIrr.nginx.webFilePort}/webfiles/ #nginxæå¡è·¯å¾,å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webDownloadPath: http://no253541tf71.vicp.fun:${pipIrr.nginx.webPort}/file/download/down?id= #å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webUrl: http://8.130.130.233:${pipIrr.nginx.webFilePort}/webfiles/ #nginxæå¡è·¯å¾,å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webDownloadPath: http://8.130.130.233:${pipIrr.nginx.webPort}/file/download/down?id= #å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | sv4: |
| | | id: dyFile4 |
| | | absolutePath: ${pipIrr.nginx.root}/html/webfiles/ |
| | |
| | | hashStart: 16386 |
| | | hashEnd: 21847 |
| | | restUrl: http://127.0.0.1:${pipIrr.file4.webPort}/file |
| | | webUrl: http://no253541tf71.vicp.fun:${pipIrr.nginx.webFilePort}/webfiles/ #nginxæå¡è·¯å¾,å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webDownloadPath: http://no253541tf71.vicp.fun:${pipIrr.nginx.webPort}/file/download/down?id= #å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webUrl: http://8.130.130.233:${pipIrr.nginx.webFilePort}/webfiles/ #nginxæå¡è·¯å¾,å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webDownloadPath: http://8.130.130.233:${pipIrr.nginx.webPort}/file/download/down?id= #å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | sv5: |
| | | id: dyFile5 |
| | | absolutePath: ${pipIrr.nginx.root}/html/webfiles/ |
| | |
| | | hashStart: 21848 |
| | | hashEnd: 27309 |
| | | restUrl: http://127.0.0.1:${pipIrr.file5.webPort}/file |
| | | webUrl: http://no253541tf71.vicp.fun:${pipIrr.nginx.webFilePort}/webfiles/ #nginxæå¡è·¯å¾,å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webDownloadPath: http://no253541tf71.vicp.fun:${pipIrr.nginx.webPort}/file/download/down?id= #å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webUrl: http://8.130.130.233:${pipIrr.nginx.webFilePort}/webfiles/ #nginxæå¡è·¯å¾,å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webDownloadPath: http://8.130.130.233:${pipIrr.nginx.webPort}/file/download/down?id= #å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | sv6: |
| | | id: dyFile6 |
| | | absolutePath: ${pipIrr.nginx.root}/html/webfiles/ |
| | |
| | | hashStart: 27310 |
| | | hashEnd: 32767 |
| | | restUrl: http://127.0.0.1:${pipIrr.file6.webPort}/file |
| | | webUrl: http://no253541tf71.vicp.fun:${pipIrr.nginx.webFilePort}/webfiles/ #nginxæå¡è·¯å¾,å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webDownloadPath: http://no253541tf71.vicp.fun:${pipIrr.nginx.webPort}/file/download/down?id= #å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webUrl: http://8.130.130.233:${pipIrr.nginx.webFilePort}/webfiles/ #nginxæå¡è·¯å¾,å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webDownloadPath: http://8.130.130.233:${pipIrr.nginx.webPort}/file/download/down?id= #å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | sv7: |
| | | id: dyFile7 |
| | | absolutePath: ${pipIrr.nginx.root}/html/webfiles/ |
| | |
| | | hashStart: 32768 |
| | | hashEnd: 38229 |
| | | restUrl: http://127.0.0.1:${pipIrr.file7.webPort}/file |
| | | webUrl: http://no253541tf71.vicp.fun:${pipIrr.nginx.webFilePort}/webfiles/ #nginxæå¡è·¯å¾,å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webDownloadPath: http://no253541tf71.vicp.fun:${pipIrr.nginx.webPort}/file/download/down?id= #å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webUrl: http://8.130.130.233:${pipIrr.nginx.webFilePort}/webfiles/ #nginxæå¡è·¯å¾,å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webDownloadPath: http://8.130.130.233:${pipIrr.nginx.webPort}/file/download/down?id= #å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | sv8: |
| | | id: dyFile8 |
| | | absolutePath: ${pipIrr.nginx.root}/html/webfiles/ |
| | |
| | | hashStart: 38230 |
| | | hashEnd: 43691 |
| | | restUrl: http://127.0.0.1:${pipIrr.file8.webPort}/file |
| | | webUrl: http://no253541tf71.vicp.fun:${pipIrr.nginx.webFilePort}/webfiles/ #nginxæå¡è·¯å¾,å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webDownloadPath: http://no253541tf71.vicp.fun:${pipIrr.nginx.webPort}/file/download/down?id= #å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webUrl: http://8.130.130.233:${pipIrr.nginx.webFilePort}/webfiles/ #nginxæå¡è·¯å¾,å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webDownloadPath: http://8.130.130.233:${pipIrr.nginx.webPort}/file/download/down?id= #å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | sv9: |
| | | id: dyFile9 |
| | | absolutePath: ${pipIrr.nginx.root}/html/webfiles/ |
| | |
| | | hashStart: 43692 |
| | | hashEnd: 49153 |
| | | restUrl: http://127.0.0.1:${pipIrr.file9.webPort}/file |
| | | webUrl: http://no253541tf71.vicp.fun:${pipIrr.nginx.webFilePort}/webfiles/ #nginxæå¡è·¯å¾,å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webDownloadPath: http://no253541tf71.vicp.fun:${pipIrr.nginx.webPort}/file/download/down?id= #å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webUrl: http://8.130.130.233:${pipIrr.nginx.webFilePort}/webfiles/ #nginxæå¡è·¯å¾,å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webDownloadPath: http://8.130.130.233:${pipIrr.nginx.webPort}/file/download/down?id= #å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | sv10: |
| | | id: dyFile10 |
| | | absolutePath: ${pipIrr.nginx.root}/html/webfiles/ |
| | |
| | | hashStart: 49154 |
| | | hashEnd: 54615 |
| | | restUrl: http://127.0.0.1:${pipIrr.file10.webPort}/file |
| | | webUrl: http://no253541tf71.vicp.fun:${pipIrr.nginx.webFilePort}/webfiles/ #nginxæå¡è·¯å¾,å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webDownloadPath: http://no253541tf71.vicp.fun:${pipIrr.nginx.webPort}/file/download/down?id= #å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webUrl: http://8.130.130.233:${pipIrr.nginx.webFilePort}/webfiles/ #nginxæå¡è·¯å¾,å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webDownloadPath: http://8.130.130.233:${pipIrr.nginx.webPort}/file/download/down?id= #å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | sv11: |
| | | id: dyFile11 |
| | | absolutePath: ${pipIrr.nginx.root}/html/webfiles/ |
| | |
| | | hashStart: 54616 |
| | | hashEnd: 60077 |
| | | restUrl: http://127.0.0.1:${pipIrr.file11.webPort}/file |
| | | webUrl: http://no253541tf71.vicp.fun:${pipIrr.nginx.webFilePort}/webfiles/ #nginxæå¡è·¯å¾,å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webDownloadPath: http://no253541tf71.vicp.fun:${pipIrr.nginx.webPort}/file/download/down?id= #å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webUrl: http://8.130.130.233:${pipIrr.nginx.webFilePort}/webfiles/ #nginxæå¡è·¯å¾,å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webDownloadPath: http://8.130.130.233:${pipIrr.nginx.webPort}/file/download/down?id= #å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | sv12: |
| | | id: dyFile12 |
| | | absolutePath: ${pipIrr.nginx.root}/html/webfiles/ |
| | |
| | | hashStart: 60078 |
| | | hashEnd: 65535 |
| | | restUrl: http://127.0.0.1:${pipIrr.file12.webPort}/file |
| | | webUrl: http://no253541tf71.vicp.fun:${pipIrr.nginx.webFilePort}/webfiles/ #nginxæå¡è·¯å¾,å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webDownloadPath: http://no253541tf71.vicp.fun:${pipIrr.nginx.webPort}/file/download/down?id= #å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webUrl: http://8.130.130.233:${pipIrr.nginx.webFilePort}/webfiles/ #nginxæå¡è·¯å¾,å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | webDownloadPath: http://8.130.130.233:${pipIrr.nginx.webPort}/file/download/down?id= #å®è£
é¨ç½²æ¶IPæ¹æå¤ç½IPæåå |
| | | |
| | | #项ç®ç¼å· |
| | | #projectCode: |
| | |
| | | mj: |
| | | url: "http://127.0.0.1:8071" |
| | | comSendUrl: "http://127.0.0.1:8071/rtuMw/com/send" |
| | | mq: |
| | | url: "http://127.0.0.1:8100" |
| | | comSendUrl: "http://127.0.0.1:8100/rtuMw/com/send" |
| | | sp: |
| | | url: "http://127.0.0.1:8073" |
| | | comSendUrl: "http://127.0.0.1:8073/rtuMw/com/send" |
| | | test: |
| | | url: "http://127.0.0.1:8072" |
| | | comSendUrl: "http://127.0.0.1:8072/rtuMw/com/send" |
| | | mq: |
| | | url: "http://127.0.0.1:8100" |
| | | comSendUrl: "http://127.0.0.1:8100/rtuMw/com/send" |
| | | yq: |
| | | url: "http://127.0.0.1:8101" |
| | | comSendUrl: "http://127.0.0.1:8101/rtuMw/com/send" |
| | | hlj: |
| | | url: "http://127.0.0.1:8102" |
| | | comSendUrl: "http://127.0.0.1:8102/rtuMw/com/send" |
| | | gz: |
| | | url: "http://127.0.0.1:8103" |
| | | comSendUrl: "http://127.0.0.1:8103/rtuMw/com/send" |
| | | lz: |
| | | url: "http://127.0.0.1:8104" |
| | | comSendUrl: "http://127.0.0.1:8104/rtuMw/com/send" |
| | | jc: |
| | | url: "http://127.0.0.1:8105" |
| | | comSendUrl: "http://127.0.0.1:8105/rtuMw/com/send" |
| | | #Rtuè¿ç¨å½ä»¤ç»æåè°å°å |
| | | rtuCallbackUrl_rm: "http://127.0.0.1:8081/remote/comRes/receive" |
| | | #æ¥æ¶éä¿¡ä¸é´ä»¶æ¶æ¯ä¸å¿æ¶æ¯çå°å |
| | |
| | | #ééæ¶æ¯æ¨é |
| | | dingtalk: |
| | | ym: |
| | | enable: true #æ¯å¦å¯ç¨ |
| | | enable: false #æ¯å¦å¯ç¨ |
| | | robot: |
| | | url: https://oapi.dingtalk.com/robot/send |
| | | access-token: fecef8e7725998f8912af05419580861aafc73413c4920036c07c050fa33055f |
| | |
| | | at-all: true |
| | | mobile: 18602657034 |
| | | mj: |
| | | enable: true #æ¯å¦å¯ç¨ |
| | | robot: |
| | | url: https://oapi.dingtalk.com/robot/send |
| | | access-token: fecef8e7725998f8912af05419580861aafc73413c4920036c07c050fa33055f |
| | | secret: SEC6042bc964d08899a5853eb321eb5a4d842a395982777f815bd07451c879228b7 |
| | | at-all: true |
| | | mobile: 18602657034 |
| | | mq: |
| | | enable: true #æ¯å¦å¯ç¨ |
| | | enable: false #æ¯å¦å¯ç¨ |
| | | robot: |
| | | url: https://oapi.dingtalk.com/robot/send |
| | | access-token: fecef8e7725998f8912af05419580861aafc73413c4920036c07c050fa33055f |
| | |
| | | at-all: true |
| | | mobile: 18602657034 |
| | | sp: |
| | | enable: true #æ¯å¦å¯ç¨ |
| | | enable: false #æ¯å¦å¯ç¨ |
| | | robot: |
| | | url: https://oapi.dingtalk.com/robot/send |
| | | access-token: fecef8e7725998f8912af05419580861aafc73413c4920036c07c050fa33055f |
| | |
| | | at-all: true |
| | | mobile: 18602657034 |
| | | test: |
| | | enable: true #æ¯å¦å¯ç¨ |
| | | enable: false #æ¯å¦å¯ç¨ |
| | | robot: |
| | | url: https://oapi.dingtalk.com/robot/send |
| | | access-token: fecef8e7725998f8912af05419580861aafc73413c4920036c07c050fa33055f |
| | | secret: SEC6042bc964d08899a5853eb321eb5a4d842a395982777f815bd07451c879228b7 |
| | | at-all: true |
| | | mobile: 18602657034 |
| | | mq: |
| | | enable: false #æ¯å¦å¯ç¨ |
| | | robot: |
| | | url: https://oapi.dingtalk.com/robot/send |
| | | access-token: fecef8e7725998f8912af05419580861aafc73413c4920036c07c050fa33055f |
| | | secret: SEC6042bc964d08899a5853eb321eb5a4d842a395982777f815bd07451c879228b7 |
| | | at-all: true |
| | | mobile: 18602657034 |
| | | yq: |
| | | enable: false #æ¯å¦å¯ç¨ |
| | | robot: |
| | | url: https://oapi.dingtalk.com/robot/send |
| | | access-token: fecef8e7725998f8912af05419580861aafc73413c4920036c07c050fa33055f |
| | | secret: SEC6042bc964d08899a5853eb321eb5a4d842a395982777f815bd07451c879228b7 |
| | | at-all: true |
| | | mobile: 18602657034 |
| | | hlj: |
| | | enable: false #æ¯å¦å¯ç¨ |
| | | robot: |
| | | url: https://oapi.dingtalk.com/robot/send |
| | | access-token: fecef8e7725998f8912af05419580861aafc73413c4920036c07c050fa33055f |
| | | secret: SEC6042bc964d08899a5853eb321eb5a4d842a395982777f815bd07451c879228b7 |
| | | at-all: true |
| | | mobile: 18602657034 |
| | | gz: |
| | | enable: false #æ¯å¦å¯ç¨ |
| | | robot: |
| | | url: https://oapi.dingtalk.com/robot/send |
| | | access-token: fecef8e7725998f8912af05419580861aafc73413c4920036c07c050fa33055f |
| | | secret: SEC6042bc964d08899a5853eb321eb5a4d842a395982777f815bd07451c879228b7 |
| | | at-all: true |
| | | mobile: 18602657034 |
| | | lz: |
| | | enable: false #æ¯å¦å¯ç¨ |
| | | robot: |
| | | url: https://oapi.dingtalk.com/robot/send |
| | | access-token: fecef8e7725998f8912af05419580861aafc73413c4920036c07c050fa33055f |
| | | secret: SEC6042bc964d08899a5853eb321eb5a4d842a395982777f815bd07451c879228b7 |
| | | at-all: true |
| | | mobile: 18602657034 |
| | | jc: |
| | | enable: false #æ¯å¦å¯ç¨ |
| | | robot: |
| | | url: https://oapi.dingtalk.com/robot/send |
| | | access-token: fecef8e7725998f8912af05419580861aafc73413c4920036c07c050fa33055f |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <config> |
| | | <orgs> |
| | | <!-- å¤ä¸ªç»ç»ï¼ç¨ç¼å·åºåï¼ç¼å·ä»1å¼å§ï¼enable表示æ¯å¦å¯ç¨ --> |
| | | <org1 tag="mq" name="æ°å¤" enable="true"> |
| | | <districts> |
| | | <province name="çèç" num="62" level="0"> |
| | | <city name="æ¦å¨å¸" num="06" level="1"> |
| | | <country name="æ°å¤å¿" num="21" level="2" /> |
| | | </city> |
| | | </province> |
| | | </districts> |
| | | <dictionaries> |
| | | <dict code="icProtocol" title="ICå¡åè®®" valueType="2"> |
| | | <dictItem> |
| | | <!-- é³å»ºä¼çæ¬ICå¡åè®® å¡ä¸ç¼å·å·²ç»å é¿ï¼ä¸çæ±æµ·çæ¬ä¸è´ï¼ï¼ä¸çº¯èçæ¬åè®®ä¸å --> |
| | | <item1 dictCode="icProtocol" value="icP202203" name="èå¡åè®®" status="1" sort="0" /> |
| | | <!-- çæ±æµ·çæ¬ICå¡åè®® --> |
| | | <item2 dictCode="icProtocol" value="icP202404" name="æ°å¡åè®®" status="0" sort="1" /> |
| | | </dictItem> |
| | | </dict> |
| | | </dictionaries> |
| | | <user name="è¶
级管çå" phone="admin" password="dyyjy" supperAdmin="1" /> |
| | | <payments> |
| | | <item1 name="ç°é"/> |
| | | <item2 name="POSæº"/> |
| | | <item3 name="é¶è¡è½¬è´¦"/> |
| | | </payments> |
| | | <settings> |
| | | <item1 item_name="lng" item_value="103.09122920036317" remarks="ç»åº¦"/> |
| | | <item2 item_name="lat" item_value="38.62387375005241" remarks="纬度"/> |
| | | <item3 item_name="zoomMp" item_value="12" remarks="ææºå°å¾ç¼©æ¾çº§å«"/> |
| | | <item4 item_name="zoomPc" item_value="19" remarks="PCæºå°å¾ç¼©æ¾çº§å«"/> |
| | | <item5 item_name="projectName" item_value="é«ææºæ
§ç®¡çå¾®çäºæå¡ç®¡çå¹³å°" remarks="项ç®åç§°"/> |
| | | </settings> |
| | | <waterTypes> |
| | | <item1 typeName="çæºç¨æ°´"/> |
| | | <item2 typeName="å·¥ä¸ç¨æ°´"/> |
| | | <item3 typeName="çæ´»ç¨æ°´"/> |
| | | <item4 typeName="å
»æ®ç¨æ°´"/> |
| | | <item5 typeName="绿åç¨æ°´"/> |
| | | </waterTypes> |
| | | <waterPrice price="0.90" /> |
| | | <irrigateProfile> |
| | | <item1 defaultValue = "10" unit = "2" sort = "1" type = "1"/> |
| | | <item2 defaultValue = "20" unit = "2" sort = "2" type = "1" /> |
| | | <item3 defaultValue = "1" unit = "1" sort = "3" type = "1"/> |
| | | <item4 defaultValue = "2" unit = "1" sort = "4" type = "1"/> |
| | | <item5 defaultValue = "20" unit = "3" sort = "1" type = "2"/> |
| | | <item6 defaultValue = "30" unit = "3" sort = "2" type = "2"/> |
| | | <item7 defaultValue = "50" unit = "3" sort = "3" type = "2"/> |
| | | <item8 defaultValue = "80" unit = "3" sort = "4" type = "2"/> |
| | | </irrigateProfile> |
| | | <rechargeProfile> |
| | | <item1 rechargeAmount = "50" sort = "1"/> |
| | | <item2 rechargeAmount = "100" sort = "2" /> |
| | | <item3 rechargeAmount = "200" sort = "3"/> |
| | | <item4 rechargeAmount = "300" sort = "4"/> |
| | | <item5 rechargeAmount = "500" sort = "5"/> |
| | | <item6 rechargeAmount = "1000" sort = "6"/> |
| | | </rechargeProfile> |
| | | <taskType> |
| | | <item1 typeName="设å¤å®è£
"/> |
| | | <item2 typeName="设å¤ç»´ä¿®"/> |
| | | <item3 typeName="设å¤ä¿å
»"/> |
| | | </taskType> |
| | | </org1> |
| | | <org2 tag="yq" name="å»¶åº" enable="true"> |
| | | <districts> |
| | | <province name="å京å¸" num="11" level="0"> |
| | | <city name="å京å¸" num="01" level="1"> |
| | | <country name="å»¶åºåº" num="19" level="2" /> |
| | | </city> |
| | | </province> |
| | | </districts> |
| | | <dictionaries> |
| | | <dict code="icProtocol" title="ICå¡åè®®" valueType="2"> |
| | | <dictItem> |
| | | <!-- é³å»ºä¼çæ¬ICå¡åè®® å¡ä¸ç¼å·å·²ç»å é¿ï¼ä¸çæ±æµ·çæ¬ä¸è´ï¼ï¼ä¸çº¯èçæ¬åè®®ä¸å --> |
| | | <item1 dictCode="icProtocol" value="icP202203" name="èå¡åè®®" status="1" sort="0" /> |
| | | <!-- çæ±æµ·çæ¬ICå¡åè®® --> |
| | | <item2 dictCode="icProtocol" value="icP202404" name="æ°å¡åè®®" status="0" sort="1" /> |
| | | </dictItem> |
| | | </dict> |
| | | </dictionaries> |
| | | <user name="è¶
级管çå" phone="admin" password="dyyjy" supperAdmin="1" /> |
| | | <payments> |
| | | <item1 name="ç°é"/> |
| | | <item2 name="POSæº"/> |
| | | <item3 name="é¶è¡è½¬è´¦"/> |
| | | </payments> |
| | | <settings> |
| | | <item1 item_name="lng" item_value="115.96875071525575" remarks="ç»åº¦"/> |
| | | <item2 item_name="lat" item_value="40.45565885043379" remarks="纬度"/> |
| | | <item3 item_name="zoomMp" item_value="12" remarks="ææºå°å¾ç¼©æ¾çº§å«"/> |
| | | <item4 item_name="zoomPc" item_value="19" remarks="PCæºå°å¾ç¼©æ¾çº§å«"/> |
| | | <item5 item_name="projectName" item_value="é«ææºæ
§ç®¡çå¾®çäºæå¡ç®¡çå¹³å°" remarks="项ç®åç§°"/> |
| | | </settings> |
| | | <waterTypes> |
| | | <item1 typeName="çæºç¨æ°´"/> |
| | | <item2 typeName="å·¥ä¸ç¨æ°´"/> |
| | | <item3 typeName="çæ´»ç¨æ°´"/> |
| | | <item4 typeName="å
»æ®ç¨æ°´"/> |
| | | <item5 typeName="绿åç¨æ°´"/> |
| | | </waterTypes> |
| | | <waterPrice price="0.90" /> |
| | | <irrigateProfile> |
| | | <item1 defaultValue = "10" unit = "2" sort = "1" type = "1"/> |
| | | <item2 defaultValue = "20" unit = "2" sort = "2" type = "1" /> |
| | | <item3 defaultValue = "1" unit = "1" sort = "3" type = "1"/> |
| | | <item4 defaultValue = "2" unit = "1" sort = "4" type = "1"/> |
| | | <item5 defaultValue = "20" unit = "3" sort = "1" type = "2"/> |
| | | <item6 defaultValue = "30" unit = "3" sort = "2" type = "2"/> |
| | | <item7 defaultValue = "50" unit = "3" sort = "3" type = "2"/> |
| | | <item8 defaultValue = "80" unit = "3" sort = "4" type = "2"/> |
| | | </irrigateProfile> |
| | | <rechargeProfile> |
| | | <item1 rechargeAmount = "50" sort = "1"/> |
| | | <item2 rechargeAmount = "100" sort = "2" /> |
| | | <item3 rechargeAmount = "200" sort = "3"/> |
| | | <item4 rechargeAmount = "300" sort = "4"/> |
| | | <item5 rechargeAmount = "500" sort = "5"/> |
| | | <item6 rechargeAmount = "1000" sort = "6"/> |
| | | </rechargeProfile> |
| | | <taskType> |
| | | <item1 typeName="设å¤å®è£
"/> |
| | | <item2 typeName="设å¤ç»´ä¿®"/> |
| | | <item3 typeName="设å¤ä¿å
»"/> |
| | | </taskType> |
| | | </org2> |
| | | <org3 tag="hlj" name="é»é¾æ±" enable="true"> |
| | | <districts> |
| | | <province name="é»é¾æ±ç" num="23" level="0"> |
| | | <city name="å°å¸" num="06" level="1"> |
| | | <country name="åºå¿" num="24" level="2" /> |
| | | </city> |
| | | </province> |
| | | </districts> |
| | | <dictionaries> |
| | | <dict code="icProtocol" title="ICå¡åè®®" valueType="2"> |
| | | <dictItem> |
| | | <!-- é³å»ºä¼çæ¬ICå¡åè®® å¡ä¸ç¼å·å·²ç»å é¿ï¼ä¸çæ±æµ·çæ¬ä¸è´ï¼ï¼ä¸çº¯èçæ¬åè®®ä¸å --> |
| | | <item1 dictCode="icProtocol" value="icP202203" name="èå¡åè®®" status="1" sort="0" /> |
| | | <!-- çæ±æµ·çæ¬ICå¡åè®® --> |
| | | <item2 dictCode="icProtocol" value="icP202404" name="æ°å¡åè®®" status="0" sort="1" /> |
| | | </dictItem> |
| | | </dict> |
| | | </dictionaries> |
| | | <user name="è¶
级管çå" phone="admin" password="dyyjy" supperAdmin="1" /> |
| | | <payments> |
| | | <item1 name="ç°é"/> |
| | | <item2 name="POSæº"/> |
| | | <item3 name="é¶è¡è½¬è´¦"/> |
| | | </payments> |
| | | <settings> |
| | | <item1 item_name="lng" item_value="126.56593322753908" remarks="ç»åº¦"/> |
| | | <item2 item_name="lat" item_value="45.78421494658246" remarks="纬度"/> |
| | | <item3 item_name="zoomMp" item_value="12" remarks="ææºå°å¾ç¼©æ¾çº§å«"/> |
| | | <item4 item_name="zoomPc" item_value="19" remarks="PCæºå°å¾ç¼©æ¾çº§å«"/> |
| | | <item5 item_name="projectName" item_value="é«ææºæ
§ç®¡çå¾®çäºæå¡ç®¡çå¹³å°" remarks="项ç®åç§°"/> |
| | | </settings> |
| | | <waterTypes> |
| | | <item1 typeName="çæºç¨æ°´"/> |
| | | <item2 typeName="å·¥ä¸ç¨æ°´"/> |
| | | <item3 typeName="çæ´»ç¨æ°´"/> |
| | | <item4 typeName="å
»æ®ç¨æ°´"/> |
| | | <item5 typeName="绿åç¨æ°´"/> |
| | | </waterTypes> |
| | | <waterPrice price="0.90" /> |
| | | <irrigateProfile> |
| | | <item1 defaultValue = "10" unit = "2" sort = "1" type = "1"/> |
| | | <item2 defaultValue = "20" unit = "2" sort = "2" type = "1" /> |
| | | <item3 defaultValue = "1" unit = "1" sort = "3" type = "1"/> |
| | | <item4 defaultValue = "2" unit = "1" sort = "4" type = "1"/> |
| | | <item5 defaultValue = "20" unit = "3" sort = "1" type = "2"/> |
| | | <item6 defaultValue = "30" unit = "3" sort = "2" type = "2"/> |
| | | <item7 defaultValue = "50" unit = "3" sort = "3" type = "2"/> |
| | | <item8 defaultValue = "80" unit = "3" sort = "4" type = "2"/> |
| | | </irrigateProfile> |
| | | <rechargeProfile> |
| | | <item1 rechargeAmount = "50" sort = "1"/> |
| | | <item2 rechargeAmount = "100" sort = "2" /> |
| | | <item3 rechargeAmount = "200" sort = "3"/> |
| | | <item4 rechargeAmount = "300" sort = "4"/> |
| | | <item5 rechargeAmount = "500" sort = "5"/> |
| | | <item6 rechargeAmount = "1000" sort = "6"/> |
| | | </rechargeProfile> |
| | | <taskType> |
| | | <item1 typeName="设å¤å®è£
"/> |
| | | <item2 typeName="设å¤ç»´ä¿®"/> |
| | | <item3 typeName="设å¤ä¿å
»"/> |
| | | </taskType> |
| | | </org3> |
| | | <org4 tag="gz" name="çå·" enable="true"> |
| | | <districts> |
| | | <province name="çèç" num="62" level="0"> |
| | | <city name="å¼ æå¸" num="07" level="1"> |
| | | <country name="çå·åº" num="02" level="2" /> |
| | | </city> |
| | | </province> |
| | | </districts> |
| | | <dictionaries> |
| | | <dict code="icProtocol" title="ICå¡åè®®" valueType="2"> |
| | | <dictItem> |
| | | <!-- é³å»ºä¼çæ¬ICå¡åè®® å¡ä¸ç¼å·å·²ç»å é¿ï¼ä¸çæ±æµ·çæ¬ä¸è´ï¼ï¼ä¸çº¯èçæ¬åè®®ä¸å --> |
| | | <item1 dictCode="icProtocol" value="icP202203" name="èå¡åè®®" status="1" sort="0" /> |
| | | <!-- çæ±æµ·çæ¬ICå¡åè®® --> |
| | | <item2 dictCode="icProtocol" value="icP202404" name="æ°å¡åè®®" status="0" sort="1" /> |
| | | </dictItem> |
| | | </dict> |
| | | </dictionaries> |
| | | <user name="è¶
级管çå" phone="admin" password="dyyjy" supperAdmin="1" /> |
| | | <payments> |
| | | <item1 name="ç°é"/> |
| | | <item2 name="POSæº"/> |
| | | <item3 name="é¶è¡è½¬è´¦"/> |
| | | </payments> |
| | | <settings> |
| | | <item1 item_name="lng" item_value="100.41364431381226" remarks="ç»åº¦"/> |
| | | <item2 item_name="lat" item_value="38.94326819677022" remarks="纬度"/> |
| | | <item3 item_name="zoomMp" item_value="12" remarks="ææºå°å¾ç¼©æ¾çº§å«"/> |
| | | <item4 item_name="zoomPc" item_value="19" remarks="PCæºå°å¾ç¼©æ¾çº§å«"/> |
| | | <item5 item_name="projectName" item_value="é«ææºæ
§ç®¡çå¾®çäºæå¡ç®¡çå¹³å°" remarks="项ç®åç§°"/> |
| | | </settings> |
| | | <waterTypes> |
| | | <item1 typeName="çæºç¨æ°´"/> |
| | | <item2 typeName="å·¥ä¸ç¨æ°´"/> |
| | | <item3 typeName="çæ´»ç¨æ°´"/> |
| | | <item4 typeName="å
»æ®ç¨æ°´"/> |
| | | <item5 typeName="绿åç¨æ°´"/> |
| | | </waterTypes> |
| | | <waterPrice price="0.90" /> |
| | | <irrigateProfile> |
| | | <item1 defaultValue = "10" unit = "2" sort = "1" type = "1"/> |
| | | <item2 defaultValue = "20" unit = "2" sort = "2" type = "1" /> |
| | | <item3 defaultValue = "1" unit = "1" sort = "3" type = "1"/> |
| | | <item4 defaultValue = "2" unit = "1" sort = "4" type = "1"/> |
| | | <item5 defaultValue = "20" unit = "3" sort = "1" type = "2"/> |
| | | <item6 defaultValue = "30" unit = "3" sort = "2" type = "2"/> |
| | | <item7 defaultValue = "50" unit = "3" sort = "3" type = "2"/> |
| | | <item8 defaultValue = "80" unit = "3" sort = "4" type = "2"/> |
| | | </irrigateProfile> |
| | | <rechargeProfile> |
| | | <item1 rechargeAmount = "50" sort = "1"/> |
| | | <item2 rechargeAmount = "100" sort = "2" /> |
| | | <item3 rechargeAmount = "200" sort = "3"/> |
| | | <item4 rechargeAmount = "300" sort = "4"/> |
| | | <item5 rechargeAmount = "500" sort = "5"/> |
| | | <item6 rechargeAmount = "1000" sort = "6"/> |
| | | </rechargeProfile> |
| | | <taskType> |
| | | <item1 typeName="设å¤å®è£
"/> |
| | | <item2 typeName="设å¤ç»´ä¿®"/> |
| | | <item3 typeName="设å¤ä¿å
»"/> |
| | | </taskType> |
| | | </org4> |
| | | <org4 tag="lz" name="åå·" enable="true"> |
| | | <districts> |
| | | <province name="çèç" num="62" level="0"> |
| | | <city name="æ¦å¨å¸" num="06" level="1"> |
| | | <country name="åå·åº" num="02" level="2" /> |
| | | </city> |
| | | </province> |
| | | </districts> |
| | | <dictionaries> |
| | | <dict code="icProtocol" title="ICå¡åè®®" valueType="2"> |
| | | <dictItem> |
| | | <!-- é³å»ºä¼çæ¬ICå¡åè®® å¡ä¸ç¼å·å·²ç»å é¿ï¼ä¸çæ±æµ·çæ¬ä¸è´ï¼ï¼ä¸çº¯èçæ¬åè®®ä¸å --> |
| | | <item1 dictCode="icProtocol" value="icP202203" name="èå¡åè®®" status="1" sort="0" /> |
| | | <!-- çæ±æµ·çæ¬ICå¡åè®® --> |
| | | <item2 dictCode="icProtocol" value="icP202404" name="æ°å¡åè®®" status="0" sort="1" /> |
| | | </dictItem> |
| | | </dict> |
| | | </dictionaries> |
| | | <user name="è¶
级管çå" phone="admin" password="dyyjy" supperAdmin="1" /> |
| | | <payments> |
| | | <item1 name="ç°é"/> |
| | | <item2 name="POSæº"/> |
| | | <item3 name="é¶è¡è½¬è´¦"/> |
| | | </payments> |
| | | <settings> |
| | | <item1 item_name="lng" item_value="102.61985778808594" remarks="ç»åº¦"/> |
| | | <item2 item_name="lat" item_value="37.93533677500249" remarks="纬度"/> |
| | | <item3 item_name="zoomMp" item_value="12" remarks="ææºå°å¾ç¼©æ¾çº§å«"/> |
| | | <item4 item_name="zoomPc" item_value="19" remarks="PCæºå°å¾ç¼©æ¾çº§å«"/> |
| | | <item5 item_name="projectName" item_value="é«ææºæ
§ç®¡çå¾®çäºæå¡ç®¡çå¹³å°" remarks="项ç®åç§°"/> |
| | | </settings> |
| | | <waterTypes> |
| | | <item1 typeName="çæºç¨æ°´"/> |
| | | <item2 typeName="å·¥ä¸ç¨æ°´"/> |
| | | <item3 typeName="çæ´»ç¨æ°´"/> |
| | | <item4 typeName="å
»æ®ç¨æ°´"/> |
| | | <item5 typeName="绿åç¨æ°´"/> |
| | | </waterTypes> |
| | | <waterPrice price="0.90" /> |
| | | <irrigateProfile> |
| | | <item1 defaultValue = "10" unit = "2" sort = "1" type = "1"/> |
| | | <item2 defaultValue = "20" unit = "2" sort = "2" type = "1" /> |
| | | <item3 defaultValue = "1" unit = "1" sort = "3" type = "1"/> |
| | | <item4 defaultValue = "2" unit = "1" sort = "4" type = "1"/> |
| | | <item5 defaultValue = "20" unit = "3" sort = "1" type = "2"/> |
| | | <item6 defaultValue = "30" unit = "3" sort = "2" type = "2"/> |
| | | <item7 defaultValue = "50" unit = "3" sort = "3" type = "2"/> |
| | | <item8 defaultValue = "80" unit = "3" sort = "4" type = "2"/> |
| | | </irrigateProfile> |
| | | <rechargeProfile> |
| | | <item1 rechargeAmount = "50" sort = "1"/> |
| | | <item2 rechargeAmount = "100" sort = "2" /> |
| | | <item3 rechargeAmount = "200" sort = "3"/> |
| | | <item4 rechargeAmount = "300" sort = "4"/> |
| | | <item5 rechargeAmount = "500" sort = "5"/> |
| | | <item6 rechargeAmount = "1000" sort = "6"/> |
| | | </rechargeProfile> |
| | | <taskType> |
| | | <item1 typeName="设å¤å®è£
"/> |
| | | <item2 typeName="设å¤ç»´ä¿®"/> |
| | | <item3 typeName="设å¤ä¿å
»"/> |
| | | </taskType> |
| | | </org4> |
| | | <org5 tag="jc" name="éå·" enable="true"> |
| | | <districts> |
| | | <province name="çèç" num="62" level="0"> |
| | | <city name="éæå¸" num="03" level="1"> |
| | | <country name="éå·åº" num="02" level="2" /> |
| | | </city> |
| | | </province> |
| | | </districts> |
| | | <dictionaries> |
| | | <dict code="icProtocol" title="ICå¡åè®®" valueType="2"> |
| | | <dictItem> |
| | | <!-- é³å»ºä¼çæ¬ICå¡åè®® å¡ä¸ç¼å·å·²ç»å é¿ï¼ä¸çæ±æµ·çæ¬ä¸è´ï¼ï¼ä¸çº¯èçæ¬åè®®ä¸å --> |
| | | <item1 dictCode="icProtocol" value="icP202203" name="èå¡åè®®" status="1" sort="0" /> |
| | | <!-- çæ±æµ·çæ¬ICå¡åè®® --> |
| | | <item2 dictCode="icProtocol" value="icP202404" name="æ°å¡åè®®" status="0" sort="1" /> |
| | | </dictItem> |
| | | </dict> |
| | | </dictionaries> |
| | | <user name="è¶
级管çå" phone="admin" password="dyyjy" supperAdmin="1" /> |
| | | <payments> |
| | | <item1 name="ç°é"/> |
| | | <item2 name="POSæº"/> |
| | | <item3 name="é¶è¡è½¬è´¦"/> |
| | | </payments> |
| | | <settings> |
| | | <item1 item_name="lng" item_value="102.17924594879152" remarks="ç»åº¦"/> |
| | | <item2 item_name="lat" item_value="38.51321605740297" remarks="纬度"/> |
| | | <item3 item_name="zoomMp" item_value="12" remarks="ææºå°å¾ç¼©æ¾çº§å«"/> |
| | | <item4 item_name="zoomPc" item_value="19" remarks="PCæºå°å¾ç¼©æ¾çº§å«"/> |
| | | <item5 item_name="projectName" item_value="é«ææºæ
§ç®¡çå¾®çäºæå¡ç®¡çå¹³å°" remarks="项ç®åç§°"/> |
| | | </settings> |
| | | <waterTypes> |
| | | <item1 typeName="çæºç¨æ°´"/> |
| | | <item2 typeName="å·¥ä¸ç¨æ°´"/> |
| | | <item3 typeName="çæ´»ç¨æ°´"/> |
| | | <item4 typeName="å
»æ®ç¨æ°´"/> |
| | | <item5 typeName="绿åç¨æ°´"/> |
| | | </waterTypes> |
| | | <waterPrice price="0.90" /> |
| | | <irrigateProfile> |
| | | <item1 defaultValue = "10" unit = "2" sort = "1" type = "1"/> |
| | | <item2 defaultValue = "20" unit = "2" sort = "2" type = "1" /> |
| | | <item3 defaultValue = "1" unit = "1" sort = "3" type = "1"/> |
| | | <item4 defaultValue = "2" unit = "1" sort = "4" type = "1"/> |
| | | <item5 defaultValue = "20" unit = "3" sort = "1" type = "2"/> |
| | | <item6 defaultValue = "30" unit = "3" sort = "2" type = "2"/> |
| | | <item7 defaultValue = "50" unit = "3" sort = "3" type = "2"/> |
| | | <item8 defaultValue = "80" unit = "3" sort = "4" type = "2"/> |
| | | </irrigateProfile> |
| | | <rechargeProfile> |
| | | <item1 rechargeAmount = "50" sort = "1"/> |
| | | <item2 rechargeAmount = "100" sort = "2" /> |
| | | <item3 rechargeAmount = "200" sort = "3"/> |
| | | <item4 rechargeAmount = "300" sort = "4"/> |
| | | <item5 rechargeAmount = "500" sort = "5"/> |
| | | <item6 rechargeAmount = "1000" sort = "6"/> |
| | | </rechargeProfile> |
| | | <taskType> |
| | | <item1 typeName="设å¤å®è£
"/> |
| | | <item2 typeName="设å¤ç»´ä¿®"/> |
| | | <item3 typeName="设å¤ä¿å
»"/> |
| | | </taskType> |
| | | </org5> |
| | | </orgs> |
| | | </config> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <config> |
| | | <orgs> |
| | | <!-- å¤ä¸ªç»ç»ï¼ç¨ç¼å·åºåï¼ç¼å·ä»1å¼å§ï¼enable表示æ¯å¦å¯ç¨ --> |
| | | <org1 tag="ym" name="å
è°" enable="true"> |
| | | <districts> |
| | | <province name="äºåç" num="53" level="0"> |
| | | <city name="æ¥éå½æèªæ²»å·" num="23" level="1"> |
| | | <country name="å
è°å¿" num="28" level="2" /> |
| | | </city> |
| | | </province> |
| | | </districts> |
| | | <dictionaries> |
| | | <dict code="icProtocol" title="ICå¡åè®®" valueType="2"> |
| | | <dictItem> |
| | | <!-- é³å»ºä¼çæ¬ICå¡åè®® å¡ä¸ç¼å·å·²ç»å é¿ï¼ä¸çæ±æµ·çæ¬ä¸è´ï¼ï¼ä¸çº¯èçæ¬åè®®ä¸å --> |
| | | <item1 dictCode="icProtocol" value="icP202203" name="èå¡åè®®" status="1" sort="0" /> |
| | | <!-- çæ±æµ·çæ¬ICå¡åè®® --> |
| | | <item2 dictCode="icProtocol" value="icP202404" name="æ°å¡åè®®" status="0" sort="1" /> |
| | | </dictItem> |
| | | </dict> |
| | | </dictionaries> |
| | | <user name="è¶
级管çå" phone="admin" password="dyyjy" supperAdmin="1" /> |
| | | <payments> |
| | | <item1 name="ç°é"/> |
| | | <item2 name="POSæº"/> |
| | | <item3 name="é¶è¡è½¬è´¦"/> |
| | | </payments> |
| | | <settings> |
| | | <item1 item_name="lng" item_value="101.89878161146011" remarks="ç»åº¦"/> |
| | | <item2 item_name="lat" item_value="25.673963608371185" remarks="纬度"/> |
| | | <item3 item_name="zoomMp" item_value="12" remarks="ææºå°å¾ç¼©æ¾çº§å«"/> |
| | | <item4 item_name="zoomPc" item_value="19" remarks="PCæºå°å¾ç¼©æ¾çº§å«"/> |
| | | <item5 item_name="projectName" item_value="é«ææºæ
§ç®¡çå¾®çäºæå¡ç®¡çå¹³å°" remarks="项ç®åç§°"/> |
| | | </settings> |
| | | <waterTypes> |
| | | <item1 typeName="çæºç¨æ°´"/> |
| | | <item2 typeName="å·¥ä¸ç¨æ°´"/> |
| | | <item3 typeName="çæ´»ç¨æ°´"/> |
| | | <item4 typeName="å
»æ®ç¨æ°´"/> |
| | | <item5 typeName="绿åç¨æ°´"/> |
| | | </waterTypes> |
| | | <waterPrice price="0.90" /> |
| | | <irrigateProfile> |
| | | <item1 defaultValue = "10" unit = "2" sort = "1" type = "1"/> |
| | | <item2 defaultValue = "20" unit = "2" sort = "2" type = "1" /> |
| | | <item3 defaultValue = "1" unit = "1" sort = "3" type = "1"/> |
| | | <item4 defaultValue = "2" unit = "1" sort = "4" type = "1"/> |
| | | <item5 defaultValue = "20" unit = "3" sort = "1" type = "2"/> |
| | | <item6 defaultValue = "30" unit = "3" sort = "2" type = "2"/> |
| | | <item7 defaultValue = "50" unit = "3" sort = "3" type = "2"/> |
| | | <item8 defaultValue = "80" unit = "3" sort = "4" type = "2"/> |
| | | </irrigateProfile> |
| | | <rechargeProfile> |
| | | <item1 rechargeAmount = "50" sort = "1"/> |
| | | <item2 rechargeAmount = "100" sort = "2" /> |
| | | <item3 rechargeAmount = "200" sort = "3"/> |
| | | <item4 rechargeAmount = "300" sort = "4"/> |
| | | <item5 rechargeAmount = "500" sort = "5"/> |
| | | <item6 rechargeAmount = "1000" sort = "6"/> |
| | | </rechargeProfile> |
| | | <taskType> |
| | | <item1 typeName="设å¤å®è£
"/> |
| | | <item2 typeName="设å¤ç»´ä¿®"/> |
| | | <item3 typeName="设å¤ä¿å
»"/> |
| | | </taskType> |
| | | </org1> |
| | | <org2 tag="mj" name="æ¢
æ±" enable="true"> |
| | | <districts> |
| | | <province name="æ±è¥¿ç" num="36" level="0"> |
| | | <city name="èµ£å·å¸" num="07" level="1"> |
| | | <country name="å®é½å¿" num="30" level="2" /> |
| | | </city> |
| | | </province> |
| | | </districts> |
| | | <dictionaries> |
| | | <dict code="icProtocol" title="ICå¡åè®®" valueType="2"> |
| | | <dictItem> |
| | | <!-- é³å»ºä¼çæ¬ICå¡åè®® å¡ä¸ç¼å·å·²ç»å é¿ï¼ä¸çæ±æµ·çæ¬ä¸è´ï¼ï¼ä¸çº¯èçæ¬åè®®ä¸å --> |
| | | <item1 dictCode="icProtocol" value="icP202203" name="èå¡åè®®" status="1" sort="0" /> |
| | | <!-- çæ±æµ·çæ¬ICå¡åè®® --> |
| | | <item2 dictCode="icProtocol" value="icP202404" name="æ°å¡åè®®" status="0" sort="1" /> |
| | | </dictItem> |
| | | </dict> |
| | | </dictionaries> |
| | | <user name="è¶
级管çå" phone="admin" password="dyyjy" supperAdmin="1" /> |
| | | <payments> |
| | | <item1 name="ç°é"/> |
| | | <item2 name="POSæº"/> |
| | | <item3 name="é¶è¡è½¬è´¦"/> |
| | | </payments> |
| | | <settings> |
| | | <item1 item_name="lng" item_value="116.00433826446535" remarks="ç»åº¦"/> |
| | | <item2 item_name="lat" item_value="26.473821341291966" remarks="纬度"/> |
| | | <item3 item_name="zoomMp" item_value="12" remarks="ææºå°å¾ç¼©æ¾çº§å«"/> |
| | | <item4 item_name="zoomPc" item_value="19" remarks="PCæºå°å¾ç¼©æ¾çº§å«"/> |
| | | <item5 item_name="projectName" item_value="é«ææºæ
§ç®¡çå¾®çäºæå¡ç®¡çå¹³å°" remarks="项ç®åç§°"/> |
| | | </settings> |
| | | <waterTypes> |
| | | <item1 typeName="çæºç¨æ°´"/> |
| | | <item2 typeName="å·¥ä¸ç¨æ°´"/> |
| | | <item3 typeName="çæ´»ç¨æ°´"/> |
| | | <item4 typeName="å
»æ®ç¨æ°´"/> |
| | | <item5 typeName="绿åç¨æ°´"/> |
| | | </waterTypes> |
| | | <waterPrice price="0.90" /> |
| | | <irrigateProfile> |
| | | <item1 defaultValue = "10" unit = "2" sort = "1" type = "1"/> |
| | | <item2 defaultValue = "20" unit = "2" sort = "2" type = "1" /> |
| | | <item3 defaultValue = "1" unit = "1" sort = "3" type = "1"/> |
| | | <item4 defaultValue = "2" unit = "1" sort = "4" type = "1"/> |
| | | <item5 defaultValue = "20" unit = "3" sort = "1" type = "2"/> |
| | | <item6 defaultValue = "30" unit = "3" sort = "2" type = "2"/> |
| | | <item7 defaultValue = "50" unit = "3" sort = "3" type = "2"/> |
| | | <item8 defaultValue = "80" unit = "3" sort = "4" type = "2"/> |
| | | </irrigateProfile> |
| | | <rechargeProfile> |
| | | <item1 rechargeAmount = "50" sort = "1"/> |
| | | <item2 rechargeAmount = "100" sort = "2" /> |
| | | <item3 rechargeAmount = "200" sort = "3"/> |
| | | <item4 rechargeAmount = "300" sort = "4"/> |
| | | <item5 rechargeAmount = "500" sort = "5"/> |
| | | <item6 rechargeAmount = "1000" sort = "6"/> |
| | | </rechargeProfile> |
| | | <taskType> |
| | | <item1 typeName="设å¤å®è£
"/> |
| | | <item2 typeName="设å¤ç»´ä¿®"/> |
| | | <item3 typeName="设å¤ä¿å
»"/> |
| | | </taskType> |
| | | </org2> |
| | | <org3 tag="sp" name="æ²ç" enable="true"> |
| | | <districts> |
| | | <province name="çèç" num="62" level="0"> |
| | | <city name="é
æ³å¸" num="09" level="1"> |
| | | <country name="èå·åº" num="02" level="2" /> |
| | | </city> |
| | | </province> |
| | | </districts> |
| | | <dictionaries> |
| | | <dict code="icProtocol" title="ICå¡åè®®" valueType="2"> |
| | | <dictItem> |
| | | <!-- é³å»ºä¼çæ¬ICå¡åè®® å¡ä¸ç¼å·å·²ç»å é¿ï¼ä¸çæ±æµ·çæ¬ä¸è´ï¼ï¼ä¸çº¯èçæ¬åè®®ä¸å --> |
| | | <item1 dictCode="icProtocol" value="icP202203" name="èå¡åè®®" status="1" sort="0" /> |
| | | <!-- çæ±æµ·çæ¬ICå¡åè®® --> |
| | | <item2 dictCode="icProtocol" value="icP202404" name="æ°å¡åè®®" status="0" sort="1" /> |
| | | </dictItem> |
| | | </dict> |
| | | </dictionaries> |
| | | <user name="è¶
级管çå" phone="admin" password="admin" supperAdmin="1" /> |
| | | <payments> |
| | | <item1 name="ç°é"/> |
| | | <item2 name="POSæº"/> |
| | | <item3 name="é¶è¡è½¬è´¦"/> |
| | | </payments> |
| | | <settings> |
| | | <item1 item_name="lng" item_value="101.87345" remarks="ç»åº¦"/> |
| | | <item2 item_name="lat" item_value="25.70424" remarks="纬度"/> |
| | | <item3 item_name="zoomMp" item_value="12" remarks="ææºå°å¾ç¼©æ¾çº§å«"/> |
| | | <item4 item_name="zoomPc" item_value="19" remarks="PCæºå°å¾ç¼©æ¾çº§å«"/> |
| | | <item5 item_name="projectName" item_value="é«ææºæ
§ç®¡çå¾®çäºæå¡ç®¡çå¹³å°" remarks="项ç®åç§°"/> |
| | | </settings> |
| | | <waterTypes> |
| | | <item1 typeName="çæºç¨æ°´"/> |
| | | <item2 typeName="å·¥ä¸ç¨æ°´"/> |
| | | <item3 typeName="çæ´»ç¨æ°´"/> |
| | | <item4 typeName="å
»æ®ç¨æ°´"/> |
| | | <item5 typeName="绿åç¨æ°´"/> |
| | | </waterTypes> |
| | | <waterPrice price="0.90" /> |
| | | <irrigateProfile> |
| | | <item1 defaultValue = "10" unit = "2" sort = "1" type = "1"/> |
| | | <item2 defaultValue = "20" unit = "2" sort = "2" type = "1" /> |
| | | <item3 defaultValue = "1" unit = "1" sort = "3" type = "1"/> |
| | | <item4 defaultValue = "2" unit = "1" sort = "4" type = "1"/> |
| | | <item5 defaultValue = "20" unit = "3" sort = "1" type = "2"/> |
| | | <item6 defaultValue = "30" unit = "3" sort = "2" type = "2"/> |
| | | <item7 defaultValue = "50" unit = "3" sort = "3" type = "2"/> |
| | | <item8 defaultValue = "80" unit = "3" sort = "4" type = "2"/> |
| | | </irrigateProfile> |
| | | <rechargeProfile> |
| | | <item1 rechargeAmount = "50" sort = "1"/> |
| | | <item2 rechargeAmount = "100" sort = "2" /> |
| | | <item3 rechargeAmount = "200" sort = "3"/> |
| | | <item4 rechargeAmount = "300" sort = "4"/> |
| | | <item5 rechargeAmount = "500" sort = "5"/> |
| | | <item6 rechargeAmount = "1000" sort = "6"/> |
| | | </rechargeProfile> |
| | | <taskType> |
| | | <item1 typeName="设å¤å®è£
"/> |
| | | <item2 typeName="设å¤ç»´ä¿®"/> |
| | | <item3 typeName="设å¤ä¿å
»"/> |
| | | </taskType> |
| | | </org3> |
| | | <org4 tag="test" name="æµè¯" enable="true"> |
| | | <districts> |
| | | <province name="天津å¸" num="12" level="0"> |
| | | <city name="å¸è¾åº" num="01" level="1"> |
| | | <country name="æ¦æ¸
åº" num="14" level="2" /> |
| | | </city> |
| | | </province> |
| | | </districts> |
| | | <dictionaries> |
| | | <dict code="icProtocol" title="ICå¡åè®®" valueType="2"> |
| | | <dictItem> |
| | | <!-- é³å»ºä¼çæ¬ICå¡åè®® å¡ä¸ç¼å·å·²ç»å é¿ï¼ä¸çæ±æµ·çæ¬ä¸è´ï¼ï¼ä¸çº¯èçæ¬åè®®ä¸å --> |
| | | <item1 dictCode="icProtocol" value="icP202203" name="èå¡åè®®" status="1" sort="0" /> |
| | | <!-- çæ±æµ·çæ¬ICå¡åè®® --> |
| | | <item2 dictCode="icProtocol" value="icP202404" name="æ°å¡åè®®" status="0" sort="1" /> |
| | | </dictItem> |
| | | </dict> |
| | | </dictionaries> |
| | | <user name="è¶
级管çå" phone="admin" password="admin" supperAdmin="1" /> |
| | | <payments> |
| | | <item1 name="ç°é"/> |
| | | <item2 name="POSæº"/> |
| | | <item3 name="é¶è¡è½¬è´¦"/> |
| | | </payments> |
| | | <settings> |
| | | <item1 item_name="lng" item_value="101.87345" remarks="ç»åº¦"/> |
| | | <item2 item_name="lat" item_value="25.70424" remarks="纬度"/> |
| | | <item3 item_name="zoomMp" item_value="12" remarks="ææºå°å¾ç¼©æ¾çº§å«"/> |
| | | <item4 item_name="zoomPc" item_value="19" remarks="PCæºå°å¾ç¼©æ¾çº§å«"/> |
| | | <item5 item_name="projectName" item_value="é«ææºæ
§ç®¡çå¾®çäºæå¡ç®¡çå¹³å°" remarks="项ç®åç§°"/> |
| | | </settings> |
| | | <waterTypes> |
| | | <item1 typeName="çæºç¨æ°´"/> |
| | | <item2 typeName="å·¥ä¸ç¨æ°´"/> |
| | | <item3 typeName="çæ´»ç¨æ°´"/> |
| | | <item4 typeName="å
»æ®ç¨æ°´"/> |
| | | <item5 typeName="绿åç¨æ°´"/> |
| | | </waterTypes> |
| | | <waterPrice price="0.90" /> |
| | | <irrigateProfile> |
| | | <item1 defaultValue = "10" unit = "2" sort = "1" type = "1"/> |
| | | <item2 defaultValue = "20" unit = "2" sort = "2" type = "1" /> |
| | | <item3 defaultValue = "1" unit = "1" sort = "3" type = "1"/> |
| | | <item4 defaultValue = "2" unit = "1" sort = "4" type = "1"/> |
| | | <item5 defaultValue = "20" unit = "3" sort = "1" type = "2"/> |
| | | <item6 defaultValue = "30" unit = "3" sort = "2" type = "2"/> |
| | | <item7 defaultValue = "50" unit = "3" sort = "3" type = "2"/> |
| | | <item8 defaultValue = "80" unit = "3" sort = "4" type = "2"/> |
| | | </irrigateProfile> |
| | | <rechargeProfile> |
| | | <item1 rechargeAmount = "50" sort = "1"/> |
| | | <item2 rechargeAmount = "100" sort = "2" /> |
| | | <item3 rechargeAmount = "200" sort = "3"/> |
| | | <item4 rechargeAmount = "300" sort = "4"/> |
| | | <item5 rechargeAmount = "500" sort = "5"/> |
| | | <item6 rechargeAmount = "1000" sort = "6"/> |
| | | </rechargeProfile> |
| | | <taskType> |
| | | <item1 typeName="设å¤å®è£
"/> |
| | | <item2 typeName="设å¤ç»´ä¿®"/> |
| | | <item3 typeName="设å¤ä¿å
»"/> |
| | | </taskType> |
| | | </org4> |
| | | <org5 tag="mq" name="æ°å¤" enable="true"> |
| | | <districts> |
| | | <province name="çèç" num="62" level="0"> |
| | | <city name="æ¦å¨å¸" num="06" level="1"> |
| | | <country name="æ°å¤å¿" num="21" level="2" /> |
| | | </city> |
| | | </province> |
| | | </districts> |
| | | <dictionaries> |
| | | <dict code="icProtocol" title="ICå¡åè®®" valueType="2"> |
| | | <dictItem> |
| | | <!-- é³å»ºä¼çæ¬ICå¡åè®® å¡ä¸ç¼å·å·²ç»å é¿ï¼ä¸çæ±æµ·çæ¬ä¸è´ï¼ï¼ä¸çº¯èçæ¬åè®®ä¸å --> |
| | | <item1 dictCode="icProtocol" value="icP202203" name="èå¡åè®®" status="1" sort="0" /> |
| | | <!-- çæ±æµ·çæ¬ICå¡åè®® --> |
| | | <item2 dictCode="icProtocol" value="icP202404" name="æ°å¡åè®®" status="0" sort="1" /> |
| | | </dictItem> |
| | | </dict> |
| | | </dictionaries> |
| | | <user name="è¶
级管çå" phone="admin" password="dyyjy" supperAdmin="1" /> |
| | | <payments> |
| | | <item1 name="ç°é"/> |
| | | <item2 name="POSæº"/> |
| | | <item3 name="é¶è¡è½¬è´¦"/> |
| | | </payments> |
| | | <settings> |
| | | <item1 item_name="lng" item_value="103.09122920036317" remarks="ç»åº¦"/> |
| | | <item2 item_name="lat" item_value="38.62387375005241" remarks="纬度"/> |
| | | <item3 item_name="zoomMp" item_value="12" remarks="ææºå°å¾ç¼©æ¾çº§å«"/> |
| | | <item4 item_name="zoomPc" item_value="19" remarks="PCæºå°å¾ç¼©æ¾çº§å«"/> |
| | | <item5 item_name="projectName" item_value="é«ææºæ
§ç®¡çå¾®çäºæå¡ç®¡çå¹³å°" remarks="项ç®åç§°"/> |
| | | </settings> |
| | | <waterTypes> |
| | | <item1 typeName="çæºç¨æ°´"/> |
| | | <item2 typeName="å·¥ä¸ç¨æ°´"/> |
| | | <item3 typeName="çæ´»ç¨æ°´"/> |
| | | <item4 typeName="å
»æ®ç¨æ°´"/> |
| | | <item5 typeName="绿åç¨æ°´"/> |
| | | </waterTypes> |
| | | <waterPrice price="0.90" /> |
| | | <irrigateProfile> |
| | | <item1 defaultValue = "10" unit = "2" sort = "1" type = "1"/> |
| | | <item2 defaultValue = "20" unit = "2" sort = "2" type = "1" /> |
| | | <item3 defaultValue = "1" unit = "1" sort = "3" type = "1"/> |
| | | <item4 defaultValue = "2" unit = "1" sort = "4" type = "1"/> |
| | | <item5 defaultValue = "20" unit = "3" sort = "1" type = "2"/> |
| | | <item6 defaultValue = "30" unit = "3" sort = "2" type = "2"/> |
| | | <item7 defaultValue = "50" unit = "3" sort = "3" type = "2"/> |
| | | <item8 defaultValue = "80" unit = "3" sort = "4" type = "2"/> |
| | | </irrigateProfile> |
| | | <rechargeProfile> |
| | | <item1 rechargeAmount = "50" sort = "1"/> |
| | | <item2 rechargeAmount = "100" sort = "2" /> |
| | | <item3 rechargeAmount = "200" sort = "3"/> |
| | | <item4 rechargeAmount = "300" sort = "4"/> |
| | | <item5 rechargeAmount = "500" sort = "5"/> |
| | | <item6 rechargeAmount = "1000" sort = "6"/> |
| | | </rechargeProfile> |
| | | <taskType> |
| | | <item1 typeName="设å¤å®è£
"/> |
| | | <item2 typeName="设å¤ç»´ä¿®"/> |
| | | <item3 typeName="设å¤ä¿å
»"/> |
| | | </taskType> |
| | | </org5> |
| | | </orgs> |
| | | </config> |
| | |
| | | @Component |
| | | public class TestMsResource { |
| | | |
| | | // è®¾ç½®å®æ¶åç§ä¸æ¬¡ |
| | | // è®¾ç½®å®æ¶Nç§ä¸æ¬¡ |
| | | @Scheduled(cron = "0/4 * * * * ?") |
| | | public void test1() throws Exception { |
| | | MsObj msObj = new MsObj() ; |
| | |
| | | } |
| | | |
| | | |
| | | // è®¾ç½®å®æ¶åç§ä¸æ¬¡ |
| | | // è®¾ç½®å®æ¶Nç§ä¸æ¬¡ |
| | | @Scheduled(cron = "0/6 * * * * ?") |
| | | public void test2() throws Exception { |
| | | MsObj msObj = new MsObj() ; |
| | |
| | | MsCenterUnit.getInstance().pushMs(msObj); |
| | | } |
| | | |
| | | // è®¾ç½®å®æ¶åç§ä¸æ¬¡ |
| | | // è®¾ç½®å®æ¶Nç§ä¸æ¬¡ |
| | | @Scheduled(cron = "0/10 * * * * ?") |
| | | public void test3() throws Exception { |
| | | MsObj msObj = new MsObj() ; |
| | |
| | | datasource: #é
ç½®æ°æ®æº |
| | | type: com.alibaba.druid.pool.DruidDataSource |
| | | driver-class-name: com.mysql.cj.jdbc.Driver |
| | | # url: jdbc:mysql://127.0.0.1:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull |
| | | url: jdbc:mysql://192.168.40.166:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull |
| | | url: jdbc:mysql://127.0.0.1:3306/${common.spring_datasource_url_dbname}?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull |
| | | username: root |
| | | password: dysql,;.abc!@# |
| | | druid: |
| | |
| | | console: UTF-8 |
| | | config: |
| | | classpath: log4j2.yml |
| | | |
| | | spring: |
| | | devtools: |
| | | livereload: |
| | | enabled: false |
| | | profiles: |
| | | include: global, database |
| | | include: common-mw, global, database |
| | | |
| | | #actutorçwebç«¯å£ |
| | | management: |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <config> |
| | | <server name="éä¿¡ä¸é´ä»¶" showStartInfo="true" company="http://www.dyjs.com"/> |
| | | <!-- |
| | | åºæ¬é
ç½® |
| | | orgTag æºætag(å¯¹åºæºætag,åæ°æ®æºåç¼) |
| | | isLowPower: æ¯å¦ä¸ºä½åè |
| | | onlyDealRtus:åªå¤çæå®RTUå°å设å¤ï¼å
¶ä»è®¾å¤æ°æ®ä¸¢å¼ï¼å¤ä¸ªRTUå°åç¨è±æéå·éå¼ï¼ |
| | | onlyOneProtocolï¼å¨æ¯æå¤éä¿¡åè®®æ¶ï¼åªæRTUä¸çº¿äºï¼æè½è¯å«åºè¯¥RTUå®é
ç¨çéä¿¡åè®®ï¼è¿èç¨æ¤å议解æä¸è¡æ°æ®åæé ä¸è¡å½ä»¤ã |
| | | 妿RTUæªæ¾ä¸çº¿ï¼éä¿¡ä¸é´ä»¶å¯å¨å该RTUæªæ¾ä¸çº¿ï¼ï¼é£ä¹å¨åå®åéä¸è¡å½ä»¤æ¶ï¼ä¸è½å¤æåºå
¶éç¨çåè®®ï¼ä¹ä¸è½æé å½ä»¤ï¼å°¤å
¶æ¯ä½åèæ
åµä¸ï¼ä¸ä¸çº¿æ¯æ£å¸¸ç°è±¡ã |
| | | å½åªæä¸ä¸ªåè®®æ
åµä¸ï¼å¨RTUæªæ¾ä¸çº¿æ¶ï¼ä¹è½ç¨æ¤åè®®æé å½ä»¤å¹¶ç¼å䏿¥ï¼å°¤å
¶éåä½åèæ
åµã |
| | | onlyOneProtocol=true: éä¿¡ä¸é´ä»¶å½ååªæä¸ä¸ªåè®® |
| | | downComandMaxResendTimes: ä¸è¡å½ä»¤å
许åéçæå¤§æ¬¡æ°Xï¼å³å
许éåX-1 |
| | | commandSendInterval: é对ä¸ä¸ªRTUï¼ä¸åå½ä»¤çæ¶é´é´é(ç§) |
| | | fastCommandSendInterval: é对ä¸ä¸ªRTUï¼ä¸åå¿«éå½ä»¤ï¼å¦å级å½ä»¤ï¼çæ¶é´é´é(毫ç§)ï¼æ¤é
ç½®ä½ç¨ååä¸é¢é
置项lastUpDataTimeLiveéå¶ |
| | | cacheWaitResultTimeout: å½ä»¤å·²ç»åéè¾¾æå¤§æ¬¡æ°ï¼ä»æªæ¶å°å½ä»¤ç»æï¼éè¦å¨ç¼åç»§ç»çå¾
ï¼å
¶çå¾
æå¤§æ¶é¿(ç§)ï¼æ¬ç³»ç»RTUï¼å¯¹äºå¼å
³æ³µå½ä»¤ï¼å
¶å
æ§è¡å¼å
³æ³µæ¥ï¼ç¶ååè¿è¡å½ä»¤åºçï¼æä»¥æ¤å¼ è¦å¤§ä¸äº |
| | | offLineCacheTimeout: ä¸å¨çº¿ç¼åçå½ä»¤æå¤§ç¼åæ¶é¿(ç§) |
| | | lastUpDataTimeLive: TCPä¸è¡æ°æ®æ¶å»ç¼åæ¶é¿(毫ç§)ï¼å½è¾¾å°æ¶é¿æ¶ï¼TCPä¸è¡æ°æ®æ¶å»è¢«æ¸
空ï¼éç¨TCPä¸è¡æ°æ®æ¶å»ç®çæ¯ï¼é»æ¢ä¸è¡æ°æ®åæ¶ä¸åæ°æ®ï¼å 为RTUå¤çä¸è¿æ¥ |
| | | dbDataIdSuffixï¼æ°æ®åºæ°æ®idçæå¨çidåç¼ï¼0æ¯é»è®¤çåç¼ï¼ä¸è¬webç³»ç»åºç¨ï¼æ°æ®ä¸é´ä»¶idåç¼å¤§äºçäº1 |
| | | cacheUpDownDataWarnCountï¼ä¸ä¸è¡æ°æ®ç¼åéåä¸ç¼åæ°æ®ä¸ªæ°çæ¥è¦éï¼è¿ä¸ªä¸ç°å®é¡¹ç®ææ¥æ°´è¡¨æ°ç¸å
³ |
| | | cacheUpDownDataMaxCountï¼ä¸ä¸è¡æ°æ®ç¼åéåä¸ç¼åæ°æ®ä¸ªæ°çæå¤§å¼ï¼è¿ä¸ªä¸ç°å®é¡¹ç®ææ¥æ°´è¡¨æ°ç¸å
³ |
| | | disconnectedByNoUpDataMinutesï¼æ²¡æä¸è¡æ°æ®çåéæ°ï¼è¾¾å°è¿ä¸ªåéæ°ï¼è®¤ä¸ºRTUæç½äºï¼åå¼èå´æ¯2-100 |
| | | workReportDealOneByTimes: 工使¥å¤ªé¢ç¹ï¼Næ¬¡ä¸æ¥å¤ç1次ï¼åå¼èå´æ¯1-100 |
| | | intakeAlarmLossMinValue: 触ååéééæ¥è¦æ¶æ¯çåæ°´å£æ¥æ¼æéçæå°å¼ï¼å
æ¬ä½é¤0.0å¤ï¼ï¼å°æ°ï¼ |
| | | sendDingDingAlarmMsInterval: ææ¥è¦åçæ¶ï¼åééåéæ¶æ¯çé´éæ¶é¿ï¼åéï¼ |
| | | --> |
| | | <base |
| | | orgTag="gz" |
| | | isLowPower="false" |
| | | onlyDealRtus="" |
| | | onlyOneProtocol="false" |
| | | downComandMaxResendTimes="1" |
| | | commandSendInterval="3" |
| | | fastCommandSendInterval="500" |
| | | cacheWaitResultTimeout="120" |
| | | offLineCacheTimeout="86400" |
| | | lastUpDataTimeLive="500" |
| | | dbDataIdSuffix="0" |
| | | cacheUpDownDataWarnCount="100000" |
| | | cacheUpDownDataMaxCount="110000" |
| | | disconnectedByNoUpDataMinutes="3" |
| | | workReportDealOneByTimes="1" |
| | | intakeAlarmLossMinValue="1.0" |
| | | sendDingDingAlarmMsInterval="60" |
| | | /> |
| | | |
| | | <!-- |
| | | 2024-08-22 æ¤é
ç½®ææ¶æªåºç¨ |
| | | centerAddr: ä¸å¿å°åï¼å½åï¼centerAddræªç¨å° |
| | | synchroRtuClock: æ¯å¦å¯¹RTUæ ¡æ¶ |
| | | synchroRtuClockTimepiecesï¼å½RTU䏿å¡å¨æ¶éç¸å·®ä¸å®æ¯«ç§ï¼é
ç½®æä»¶æ¯ç§éï¼åï¼è¿è¡æ ¡æ¶ |
| | | --> |
| | | <protocol |
| | | centerAddr="1" |
| | | synchroRtuClock="true" |
| | | synchroRtuClockTimepieces="300000" |
| | | /> |
| | | |
| | | <!-- RTU æ¶æ¯ä¸å¿ |
| | | enable: æ¨¡åæ¯å¦å¯å¨ |
| | | notifyInterval: æ¶æ¯éç¥é´éï¼ç§ï¼ |
| | | --> |
| | | <msCenter enable="true" |
| | | notifyInterval="5" |
| | | /> |
| | | |
| | | <!-- RTU 软件å级 |
| | | enable: æ¨¡åæ¯å¦å¯å¨ |
| | | openNoUpgrade: éå¼ï¼æ³µå¼ï¼ä¸æ§è¡å级 |
| | | lastOpenMaxGoOn: éå¼ï¼æ³µå¼ï¼ç¶æè®¾ç½®ä»¥æ¥æç»æé¿æ¶é´ï¼ç§éï¼ï¼è¶
è¿è¿ä¸ªæ¶é´è®¤ä¸ºç¶ææ æï¼è¿ä¸ªæ¶é¿åå³äºå·¥ä½æ¥é´éï¼ |
| | | noOneRtuUpgradeMaxDurationï¼å级任å¡è®¾ç½®åï¼æ ä¸è®¾å¤å级æå¤§æ¶é¿ï¼ç§ï¼ï¼è¶
è¿è¿ä¸ªæ¶é¿ï¼è®¤ä¸ºå级任å¡å®æï¼åå¼èå´æ¯5åé~60åé |
| | | runningAndIdleDurationï¼rtuå级å¯å¨åè¿å
¥å级ä¸ç¶æï¼ä½æç§æ
åµä¸RTUä¸åéä¿¡äºï¼ä¸ç´å¤äºçå¾
ç¶æï¼çå¾
è¾¾å°ä¸å®æ¶é¿ï¼ç§ï¼ä¸è¬ä¸noOneRtuUpgradeMaxDurationç¸çï¼è®¤ä¸ºå级失败ï¼ä¸å
æ»æå¤å
æ»ï¼ï¼åå¼èå´æ¯5åé~60åé |
| | | failTryTimesï¼å级失败åï¼éå¯¹çæ¯å¨çº¿è¿è¡äºå级ä¸åå½ä»¤ï¼ï¼éæ°å¿è¯å级次æ°ï¼å½è®¾ç½®ä¸º0æ¶è¡¨ç¤ºä¸éæ°å¿è¯å级 |
| | | ugMaxRtuAtOnceï¼ä¸ºäºç¼è§£éä¿¡ä¸é´ä»¶çååï¼åæ¶æ¯æå级çRTUå°æ°ï¼å½è®¾ç½®ä¸º0æ¶è¡¨ç¤ºä¸åéå¶ |
| | | rtuOffLineWaitDuration: rtu离线ï¼çå¾
å
¶åçº§çæ¶é¿ï¼ç§ï¼ï¼è¶
è¿è¿ä¸ªæ¶é´ï¼è®¾ç½®å
¶å级失败ï¼ä¸è®¾ç½®å级任å¡å®æ |
| | | notifyStateInterval: åçº§ç¶æéç¥é´éï¼ç§ï¼ |
| | | notifyTimesAfterOver: åçº§ç»æåï¼ååwebæå¡ç³»ç»éç¥ç¶æçæ¬¡æ° |
| | | --> |
| | | <upgrade enable="true" |
| | | openNoUpgrade="true" |
| | | lastOpenMaxGoOn="1800" |
| | | noOneRtuUpgradeMaxDuration="1200" |
| | | runningAndIdleDuration="1200" |
| | | failTryTimes="2" |
| | | ugMaxRtuAtOnce="5000" |
| | | rtuOffLineWaitDuration="1800" |
| | | notifyStateInterval="2" |
| | | notifyTimesAfterOver="1" |
| | | /> |
| | | |
| | | |
| | | <!-- |
| | | æ¯ææ¨¡å |
| | | ç工使¶é¿çº¿ç¨æ± ï¼çº¿ç¨è´è´£ç¨æ¶è¾ççå·¥ä½ä»»å¡ |
| | | short_maxThreadï¼ æ± ä¸æå¤§çº¿ç¨æ°ä¸ºææCPUæ ¸æ°+1ï¼shortæ± ä¸longæ± ååä¸åï¼ï¼è¥ä¸º-1ï¼ä¸åéå¶ ï¼è®¾ç½®ä¸º0ï¼è¡¨ç¤ºä¸å¯å¨çº¿ç¨æ± |
| | | short_minThreadï¼ æ± ä¸æå°çº¿ç¨æ°ï¼è¥ä¸º-1ï¼ä¸åéå¶ï¼è®¾ç½®ä¸º0ï¼è¡¨ç¤ºä¸å¯å¨çº¿ç¨æ± |
| | | short_freeTimeoutï¼ çº¿ç¨æ°ç©ºé²æ¶é¿ï¼è¥æ± ä¸çº¿ç¨æ°é大äºminThreadï¼ä¸æç线ç¨ç©ºé²æ¶é¿è¶
è¿freeTimeoutï¼åæ¸
é¤è¯¥çº¿ç¨ï¼ä¸ºäºä¸æ¸
é¤ï¼æminThreadä¸maxThread设置ç¸ç |
| | | short_busyTimeoutï¼çº¿ç¨ä¸é´æå·¥ä½æ¶é¿ï¼åä½ä¸ºç§)è¶
æ¶éï¼è®¤ä¸ºçº¿ç¨å·²ç»äºå´©æºï¼å°å¼ºå¶æ¸
é¤ï¼ç工使¶é¿è®¾ç½®ä¸º5ç§ |
| | | é¿å·¥ä½æ¶é¿çº¿ç¨æ± ï¼çº¿ç¨è´è´£ç¨æ¶è¾é¿çå·¥ä½ä»»å¡ï¼ä¾å¦æ°æ®åºååæä½ |
| | | long_maxThreadï¼ æ± ä¸æå¤§çº¿ç¨æ°ä¸ºææCPUæ ¸æ°+1ï¼shortæ± ä¸longæ± ååä¸åï¼ï¼è¥ä¸º-1ï¼ä¸åéå¶ï¼è®¾ç½®ä¸º0ï¼è¡¨ç¤ºä¸å¯å¨çº¿ç¨æ± |
| | | long_minThreadï¼ æ± ä¸æå°çº¿ç¨æ°ï¼è¥ä¸º-1ï¼ä¸åéå¶ï¼è®¾ç½®ä¸º0ï¼è¡¨ç¤ºä¸å¯å¨çº¿ç¨æ± |
| | | long_freeTimeoutï¼ çº¿ç¨æ°ç©ºé²æ¶é¿ï¼è¥æ± ä¸çº¿ç¨æ°é大äºminThreadï¼ä¸æç线ç¨ç©ºé²æ¶é¿è¶
è¿freeTimeoutï¼åæ¸
é¤è¯¥çº¿ç¨ |
| | | long_busyTimeoutï¼çº¿ç¨ä¸é´æå·¥ä½æ¶é¿ï¼åä½ä¸ºç§)è¶
æ¶éï¼è¥ä¸º-1ï¼ä¸åéå¶ |
| | | enableThreadPoolï¼æ¯å¦å¯ç¨çº¿ç¨æ± |
| | | --> |
| | | <support |
| | | short_maxThread="6" |
| | | short_minThread="6" |
| | | short_freeTimeout="60" |
| | | short_busyTimeout="5" |
| | | long_maxThread="6" |
| | | long_minThread="6" |
| | | long_freeTimeout="60" |
| | | long_busyTimeout="-1" |
| | | enableThreadPool="true" |
| | | /> |
| | | |
| | | <!-- |
| | | èµæºæ¨¡å |
| | | rtuLogDirï¼RTUæ¥å¿æä»¶åå¨ç®å½(ç¸å¯¹ç®å½) |
| | | rtuLogFileMaxSizeï¼RTUæ¥å¿æä»¶æå¤§åèæ°(B) |
| | | rtuLogFileMaxCountï¼RTUæ¥å¿æä»¶æå¤§æä»¶æ° |
| | | monitorIntervalï¼Rtuç¶æçè§é´é(åé) |
| | | saveDbIntervalï¼Rtuç¶æåæ°æ®åºé´é(åé) |
| | | --> |
| | | <resource |
| | | rtuLogDir="rtuLogs/" |
| | | rtuLogFileMaxSize="1000000" |
| | | rtuLogFileMaxCount="3" |
| | | monitorInterval="2" |
| | | saveDbInterval="10" |
| | | /> |
| | | |
| | | |
| | | <!-- |
| | | 2024-08-22 æ¤é
ç½®ææ¶æªåºç¨ |
| | | portï¼rmiæå¡ç«¯å£å· |
| | | contextï¼rmiæå¡ä¸ä¸æ |
| | | --> |
| | | <rmi enable="true" |
| | | port="65400" |
| | | context="rtuMw" |
| | | /> |
| | | |
| | | <!-- |
| | | coreIntervalï¼ä¸»çº¿ç¨æ¯æ¬¡æ§è¡é´éæ¶é¿ï¼æ¯«ç§ï¼ |
| | | queueWarnSize: ç¼åéåèç¹æ°è¦åæ°é |
| | | queueMaxSize: ç¼åéåèç¹æ°æå¤§æ°é |
| | | --> |
| | | <core |
| | | coreInterval="100" |
| | | queueWarnSize="100000" |
| | | queueMaxSize="300000" |
| | | /> |
| | | |
| | | <!-- |
| | | portï¼ç«¯å£ |
| | | processorsï¼ Mina IO å¤çä¸ä¸è¡æ°æ®ççº¿ç¨æ°ï¼ä¸è¬æ¯CPUæ»æ ¸æ°+1 |
| | | idle: ååæ¶é¿ï¼ç§ï¼ |
| | | --> |
| | | <tcp enable="true" |
| | | port="60103" |
| | | processors="3" |
| | | idle="10" |
| | | /> |
| | | |
| | | </config> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <config> |
| | | <server name="éä¿¡ä¸é´ä»¶" showStartInfo="true" company="http://www.dyjs.com"/> |
| | | <!-- |
| | | åºæ¬é
ç½® |
| | | orgTag æºætag(å¯¹åºæºætag,åæ°æ®æºåç¼) |
| | | isLowPower: æ¯å¦ä¸ºä½åè |
| | | onlyDealRtus:åªå¤çæå®RTUå°å设å¤ï¼å
¶ä»è®¾å¤æ°æ®ä¸¢å¼ï¼å¤ä¸ªRTUå°åç¨è±æéå·éå¼ï¼ |
| | | onlyOneProtocolï¼å¨æ¯æå¤éä¿¡åè®®æ¶ï¼åªæRTUä¸çº¿äºï¼æè½è¯å«åºè¯¥RTUå®é
ç¨çéä¿¡åè®®ï¼è¿èç¨æ¤å议解æä¸è¡æ°æ®åæé ä¸è¡å½ä»¤ã |
| | | 妿RTUæªæ¾ä¸çº¿ï¼éä¿¡ä¸é´ä»¶å¯å¨å该RTUæªæ¾ä¸çº¿ï¼ï¼é£ä¹å¨åå®åéä¸è¡å½ä»¤æ¶ï¼ä¸è½å¤æåºå
¶éç¨çåè®®ï¼ä¹ä¸è½æé å½ä»¤ï¼å°¤å
¶æ¯ä½åèæ
åµä¸ï¼ä¸ä¸çº¿æ¯æ£å¸¸ç°è±¡ã |
| | | å½åªæä¸ä¸ªåè®®æ
åµä¸ï¼å¨RTUæªæ¾ä¸çº¿æ¶ï¼ä¹è½ç¨æ¤åè®®æé å½ä»¤å¹¶ç¼å䏿¥ï¼å°¤å
¶éåä½åèæ
åµã |
| | | onlyOneProtocol=true: éä¿¡ä¸é´ä»¶å½ååªæä¸ä¸ªåè®® |
| | | downComandMaxResendTimes: ä¸è¡å½ä»¤å
许åéçæå¤§æ¬¡æ°Xï¼å³å
许éåX-1 |
| | | commandSendInterval: é对ä¸ä¸ªRTUï¼ä¸åå½ä»¤çæ¶é´é´é(ç§) |
| | | fastCommandSendInterval: é对ä¸ä¸ªRTUï¼ä¸åå¿«éå½ä»¤ï¼å¦å级å½ä»¤ï¼çæ¶é´é´é(毫ç§)ï¼æ¤é
ç½®ä½ç¨ååä¸é¢é
置项lastUpDataTimeLiveéå¶ |
| | | cacheWaitResultTimeout: å½ä»¤å·²ç»åéè¾¾æå¤§æ¬¡æ°ï¼ä»æªæ¶å°å½ä»¤ç»æï¼éè¦å¨ç¼åç»§ç»çå¾
ï¼å
¶çå¾
æå¤§æ¶é¿(ç§)ï¼æ¬ç³»ç»RTUï¼å¯¹äºå¼å
³æ³µå½ä»¤ï¼å
¶å
æ§è¡å¼å
³æ³µæ¥ï¼ç¶ååè¿è¡å½ä»¤åºçï¼æä»¥æ¤å¼ è¦å¤§ä¸äº |
| | | offLineCacheTimeout: ä¸å¨çº¿ç¼åçå½ä»¤æå¤§ç¼åæ¶é¿(ç§) |
| | | lastUpDataTimeLive: TCPä¸è¡æ°æ®æ¶å»ç¼åæ¶é¿(毫ç§)ï¼å½è¾¾å°æ¶é¿æ¶ï¼TCPä¸è¡æ°æ®æ¶å»è¢«æ¸
空ï¼éç¨TCPä¸è¡æ°æ®æ¶å»ç®çæ¯ï¼é»æ¢ä¸è¡æ°æ®åæ¶ä¸åæ°æ®ï¼å 为RTUå¤çä¸è¿æ¥ |
| | | dbDataIdSuffixï¼æ°æ®åºæ°æ®idçæå¨çidåç¼ï¼0æ¯é»è®¤çåç¼ï¼ä¸è¬webç³»ç»åºç¨ï¼æ°æ®ä¸é´ä»¶idåç¼å¤§äºçäº1 |
| | | cacheUpDownDataWarnCountï¼ä¸ä¸è¡æ°æ®ç¼åéåä¸ç¼åæ°æ®ä¸ªæ°çæ¥è¦éï¼è¿ä¸ªä¸ç°å®é¡¹ç®ææ¥æ°´è¡¨æ°ç¸å
³ |
| | | cacheUpDownDataMaxCountï¼ä¸ä¸è¡æ°æ®ç¼åéåä¸ç¼åæ°æ®ä¸ªæ°çæå¤§å¼ï¼è¿ä¸ªä¸ç°å®é¡¹ç®ææ¥æ°´è¡¨æ°ç¸å
³ |
| | | disconnectedByNoUpDataMinutesï¼æ²¡æä¸è¡æ°æ®çåéæ°ï¼è¾¾å°è¿ä¸ªåéæ°ï¼è®¤ä¸ºRTUæç½äºï¼åå¼èå´æ¯2-100 |
| | | workReportDealOneByTimes: 工使¥å¤ªé¢ç¹ï¼Næ¬¡ä¸æ¥å¤ç1次ï¼åå¼èå´æ¯1-100 |
| | | intakeAlarmLossMinValue: 触ååéééæ¥è¦æ¶æ¯çåæ°´å£æ¥æ¼æéçæå°å¼ï¼å
æ¬ä½é¤0.0å¤ï¼ï¼å°æ°ï¼ |
| | | sendDingDingAlarmMsInterval: ææ¥è¦åçæ¶ï¼åééåéæ¶æ¯çé´éæ¶é¿ï¼åéï¼ |
| | | --> |
| | | <base |
| | | orgTag="hlj" |
| | | isLowPower="false" |
| | | onlyDealRtus="" |
| | | onlyOneProtocol="false" |
| | | downComandMaxResendTimes="1" |
| | | commandSendInterval="3" |
| | | fastCommandSendInterval="500" |
| | | cacheWaitResultTimeout="120" |
| | | offLineCacheTimeout="86400" |
| | | lastUpDataTimeLive="500" |
| | | dbDataIdSuffix="0" |
| | | cacheUpDownDataWarnCount="100000" |
| | | cacheUpDownDataMaxCount="110000" |
| | | disconnectedByNoUpDataMinutes="3" |
| | | workReportDealOneByTimes="1" |
| | | intakeAlarmLossMinValue="1.0" |
| | | sendDingDingAlarmMsInterval="60" |
| | | /> |
| | | |
| | | <!-- |
| | | 2024-08-22 æ¤é
ç½®ææ¶æªåºç¨ |
| | | centerAddr: ä¸å¿å°åï¼å½åï¼centerAddræªç¨å° |
| | | synchroRtuClock: æ¯å¦å¯¹RTUæ ¡æ¶ |
| | | synchroRtuClockTimepiecesï¼å½RTU䏿å¡å¨æ¶éç¸å·®ä¸å®æ¯«ç§ï¼é
ç½®æä»¶æ¯ç§éï¼åï¼è¿è¡æ ¡æ¶ |
| | | --> |
| | | <protocol |
| | | centerAddr="1" |
| | | synchroRtuClock="true" |
| | | synchroRtuClockTimepieces="300000" |
| | | /> |
| | | |
| | | <!-- RTU æ¶æ¯ä¸å¿ |
| | | enable: æ¨¡åæ¯å¦å¯å¨ |
| | | notifyInterval: æ¶æ¯éç¥é´éï¼ç§ï¼ |
| | | --> |
| | | <msCenter enable="true" |
| | | notifyInterval="5" |
| | | /> |
| | | |
| | | <!-- RTU 软件å级 |
| | | enable: æ¨¡åæ¯å¦å¯å¨ |
| | | openNoUpgrade: éå¼ï¼æ³µå¼ï¼ä¸æ§è¡å级 |
| | | lastOpenMaxGoOn: éå¼ï¼æ³µå¼ï¼ç¶æè®¾ç½®ä»¥æ¥æç»æé¿æ¶é´ï¼ç§éï¼ï¼è¶
è¿è¿ä¸ªæ¶é´è®¤ä¸ºç¶ææ æï¼è¿ä¸ªæ¶é¿åå³äºå·¥ä½æ¥é´éï¼ |
| | | noOneRtuUpgradeMaxDurationï¼å级任å¡è®¾ç½®åï¼æ ä¸è®¾å¤å级æå¤§æ¶é¿ï¼ç§ï¼ï¼è¶
è¿è¿ä¸ªæ¶é¿ï¼è®¤ä¸ºå级任å¡å®æï¼åå¼èå´æ¯5åé~60åé |
| | | runningAndIdleDurationï¼rtuå级å¯å¨åè¿å
¥å级ä¸ç¶æï¼ä½æç§æ
åµä¸RTUä¸åéä¿¡äºï¼ä¸ç´å¤äºçå¾
ç¶æï¼çå¾
è¾¾å°ä¸å®æ¶é¿ï¼ç§ï¼ä¸è¬ä¸noOneRtuUpgradeMaxDurationç¸çï¼è®¤ä¸ºå级失败ï¼ä¸å
æ»æå¤å
æ»ï¼ï¼åå¼èå´æ¯5åé~60åé |
| | | failTryTimesï¼å级失败åï¼éå¯¹çæ¯å¨çº¿è¿è¡äºå级ä¸åå½ä»¤ï¼ï¼éæ°å¿è¯å级次æ°ï¼å½è®¾ç½®ä¸º0æ¶è¡¨ç¤ºä¸éæ°å¿è¯å级 |
| | | ugMaxRtuAtOnceï¼ä¸ºäºç¼è§£éä¿¡ä¸é´ä»¶çååï¼åæ¶æ¯æå级çRTUå°æ°ï¼å½è®¾ç½®ä¸º0æ¶è¡¨ç¤ºä¸åéå¶ |
| | | rtuOffLineWaitDuration: rtu离线ï¼çå¾
å
¶åçº§çæ¶é¿ï¼ç§ï¼ï¼è¶
è¿è¿ä¸ªæ¶é´ï¼è®¾ç½®å
¶å级失败ï¼ä¸è®¾ç½®å级任å¡å®æ |
| | | notifyStateInterval: åçº§ç¶æéç¥é´éï¼ç§ï¼ |
| | | notifyTimesAfterOver: åçº§ç»æåï¼ååwebæå¡ç³»ç»éç¥ç¶æçæ¬¡æ° |
| | | --> |
| | | <upgrade enable="true" |
| | | openNoUpgrade="true" |
| | | lastOpenMaxGoOn="1800" |
| | | noOneRtuUpgradeMaxDuration="1200" |
| | | runningAndIdleDuration="1200" |
| | | failTryTimes="2" |
| | | ugMaxRtuAtOnce="5000" |
| | | rtuOffLineWaitDuration="1800" |
| | | notifyStateInterval="2" |
| | | notifyTimesAfterOver="1" |
| | | /> |
| | | |
| | | |
| | | <!-- |
| | | æ¯ææ¨¡å |
| | | ç工使¶é¿çº¿ç¨æ± ï¼çº¿ç¨è´è´£ç¨æ¶è¾ççå·¥ä½ä»»å¡ |
| | | short_maxThreadï¼ æ± ä¸æå¤§çº¿ç¨æ°ä¸ºææCPUæ ¸æ°+1ï¼shortæ± ä¸longæ± ååä¸åï¼ï¼è¥ä¸º-1ï¼ä¸åéå¶ ï¼è®¾ç½®ä¸º0ï¼è¡¨ç¤ºä¸å¯å¨çº¿ç¨æ± |
| | | short_minThreadï¼ æ± ä¸æå°çº¿ç¨æ°ï¼è¥ä¸º-1ï¼ä¸åéå¶ï¼è®¾ç½®ä¸º0ï¼è¡¨ç¤ºä¸å¯å¨çº¿ç¨æ± |
| | | short_freeTimeoutï¼ çº¿ç¨æ°ç©ºé²æ¶é¿ï¼è¥æ± ä¸çº¿ç¨æ°é大äºminThreadï¼ä¸æç线ç¨ç©ºé²æ¶é¿è¶
è¿freeTimeoutï¼åæ¸
é¤è¯¥çº¿ç¨ï¼ä¸ºäºä¸æ¸
é¤ï¼æminThreadä¸maxThread设置ç¸ç |
| | | short_busyTimeoutï¼çº¿ç¨ä¸é´æå·¥ä½æ¶é¿ï¼åä½ä¸ºç§)è¶
æ¶éï¼è®¤ä¸ºçº¿ç¨å·²ç»äºå´©æºï¼å°å¼ºå¶æ¸
é¤ï¼ç工使¶é¿è®¾ç½®ä¸º5ç§ |
| | | é¿å·¥ä½æ¶é¿çº¿ç¨æ± ï¼çº¿ç¨è´è´£ç¨æ¶è¾é¿çå·¥ä½ä»»å¡ï¼ä¾å¦æ°æ®åºååæä½ |
| | | long_maxThreadï¼ æ± ä¸æå¤§çº¿ç¨æ°ä¸ºææCPUæ ¸æ°+1ï¼shortæ± ä¸longæ± ååä¸åï¼ï¼è¥ä¸º-1ï¼ä¸åéå¶ï¼è®¾ç½®ä¸º0ï¼è¡¨ç¤ºä¸å¯å¨çº¿ç¨æ± |
| | | long_minThreadï¼ æ± ä¸æå°çº¿ç¨æ°ï¼è¥ä¸º-1ï¼ä¸åéå¶ï¼è®¾ç½®ä¸º0ï¼è¡¨ç¤ºä¸å¯å¨çº¿ç¨æ± |
| | | long_freeTimeoutï¼ çº¿ç¨æ°ç©ºé²æ¶é¿ï¼è¥æ± ä¸çº¿ç¨æ°é大äºminThreadï¼ä¸æç线ç¨ç©ºé²æ¶é¿è¶
è¿freeTimeoutï¼åæ¸
é¤è¯¥çº¿ç¨ |
| | | long_busyTimeoutï¼çº¿ç¨ä¸é´æå·¥ä½æ¶é¿ï¼åä½ä¸ºç§)è¶
æ¶éï¼è¥ä¸º-1ï¼ä¸åéå¶ |
| | | enableThreadPoolï¼æ¯å¦å¯ç¨çº¿ç¨æ± |
| | | --> |
| | | <support |
| | | short_maxThread="6" |
| | | short_minThread="6" |
| | | short_freeTimeout="60" |
| | | short_busyTimeout="5" |
| | | long_maxThread="6" |
| | | long_minThread="6" |
| | | long_freeTimeout="60" |
| | | long_busyTimeout="-1" |
| | | enableThreadPool="true" |
| | | /> |
| | | |
| | | <!-- |
| | | èµæºæ¨¡å |
| | | rtuLogDirï¼RTUæ¥å¿æä»¶åå¨ç®å½(ç¸å¯¹ç®å½) |
| | | rtuLogFileMaxSizeï¼RTUæ¥å¿æä»¶æå¤§åèæ°(B) |
| | | rtuLogFileMaxCountï¼RTUæ¥å¿æä»¶æå¤§æä»¶æ° |
| | | monitorIntervalï¼Rtuç¶æçè§é´é(åé) |
| | | saveDbIntervalï¼Rtuç¶æåæ°æ®åºé´é(åé) |
| | | --> |
| | | <resource |
| | | rtuLogDir="rtuLogs/" |
| | | rtuLogFileMaxSize="1000000" |
| | | rtuLogFileMaxCount="3" |
| | | monitorInterval="2" |
| | | saveDbInterval="10" |
| | | /> |
| | | |
| | | |
| | | <!-- |
| | | 2024-08-22 æ¤é
ç½®ææ¶æªåºç¨ |
| | | portï¼rmiæå¡ç«¯å£å· |
| | | contextï¼rmiæå¡ä¸ä¸æ |
| | | --> |
| | | <rmi enable="true" |
| | | port="65400" |
| | | context="rtuMw" |
| | | /> |
| | | |
| | | <!-- |
| | | coreIntervalï¼ä¸»çº¿ç¨æ¯æ¬¡æ§è¡é´éæ¶é¿ï¼æ¯«ç§ï¼ |
| | | queueWarnSize: ç¼åéåèç¹æ°è¦åæ°é |
| | | queueMaxSize: ç¼åéåèç¹æ°æå¤§æ°é |
| | | --> |
| | | <core |
| | | coreInterval="100" |
| | | queueWarnSize="100000" |
| | | queueMaxSize="300000" |
| | | /> |
| | | |
| | | <!-- |
| | | portï¼ç«¯å£ |
| | | processorsï¼ Mina IO å¤çä¸ä¸è¡æ°æ®ççº¿ç¨æ°ï¼ä¸è¬æ¯CPUæ»æ ¸æ°+1 |
| | | idle: ååæ¶é¿ï¼ç§ï¼ |
| | | --> |
| | | <tcp enable="true" |
| | | port="60102" |
| | | processors="3" |
| | | idle="10" |
| | | /> |
| | | |
| | | </config> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <config> |
| | | <server name="éä¿¡ä¸é´ä»¶" showStartInfo="true" company="http://www.dyjs.com"/> |
| | | <!-- |
| | | åºæ¬é
ç½® |
| | | orgTag æºætag(å¯¹åºæºætag,åæ°æ®æºåç¼) |
| | | isLowPower: æ¯å¦ä¸ºä½åè |
| | | onlyDealRtus:åªå¤çæå®RTUå°å设å¤ï¼å
¶ä»è®¾å¤æ°æ®ä¸¢å¼ï¼å¤ä¸ªRTUå°åç¨è±æéå·éå¼ï¼ |
| | | onlyOneProtocolï¼å¨æ¯æå¤éä¿¡åè®®æ¶ï¼åªæRTUä¸çº¿äºï¼æè½è¯å«åºè¯¥RTUå®é
ç¨çéä¿¡åè®®ï¼è¿èç¨æ¤å议解æä¸è¡æ°æ®åæé ä¸è¡å½ä»¤ã |
| | | 妿RTUæªæ¾ä¸çº¿ï¼éä¿¡ä¸é´ä»¶å¯å¨å该RTUæªæ¾ä¸çº¿ï¼ï¼é£ä¹å¨åå®åéä¸è¡å½ä»¤æ¶ï¼ä¸è½å¤æåºå
¶éç¨çåè®®ï¼ä¹ä¸è½æé å½ä»¤ï¼å°¤å
¶æ¯ä½åèæ
åµä¸ï¼ä¸ä¸çº¿æ¯æ£å¸¸ç°è±¡ã |
| | | å½åªæä¸ä¸ªåè®®æ
åµä¸ï¼å¨RTUæªæ¾ä¸çº¿æ¶ï¼ä¹è½ç¨æ¤åè®®æé å½ä»¤å¹¶ç¼å䏿¥ï¼å°¤å
¶éåä½åèæ
åµã |
| | | onlyOneProtocol=true: éä¿¡ä¸é´ä»¶å½ååªæä¸ä¸ªåè®® |
| | | downComandMaxResendTimes: ä¸è¡å½ä»¤å
许åéçæå¤§æ¬¡æ°Xï¼å³å
许éåX-1 |
| | | commandSendInterval: é对ä¸ä¸ªRTUï¼ä¸åå½ä»¤çæ¶é´é´é(ç§) |
| | | fastCommandSendInterval: é对ä¸ä¸ªRTUï¼ä¸åå¿«éå½ä»¤ï¼å¦å级å½ä»¤ï¼çæ¶é´é´é(毫ç§)ï¼æ¤é
ç½®ä½ç¨ååä¸é¢é
置项lastUpDataTimeLiveéå¶ |
| | | cacheWaitResultTimeout: å½ä»¤å·²ç»åéè¾¾æå¤§æ¬¡æ°ï¼ä»æªæ¶å°å½ä»¤ç»æï¼éè¦å¨ç¼åç»§ç»çå¾
ï¼å
¶çå¾
æå¤§æ¶é¿(ç§)ï¼æ¬ç³»ç»RTUï¼å¯¹äºå¼å
³æ³µå½ä»¤ï¼å
¶å
æ§è¡å¼å
³æ³µæ¥ï¼ç¶ååè¿è¡å½ä»¤åºçï¼æä»¥æ¤å¼ è¦å¤§ä¸äº |
| | | offLineCacheTimeout: ä¸å¨çº¿ç¼åçå½ä»¤æå¤§ç¼åæ¶é¿(ç§) |
| | | lastUpDataTimeLive: TCPä¸è¡æ°æ®æ¶å»ç¼åæ¶é¿(毫ç§)ï¼å½è¾¾å°æ¶é¿æ¶ï¼TCPä¸è¡æ°æ®æ¶å»è¢«æ¸
空ï¼éç¨TCPä¸è¡æ°æ®æ¶å»ç®çæ¯ï¼é»æ¢ä¸è¡æ°æ®åæ¶ä¸åæ°æ®ï¼å 为RTUå¤çä¸è¿æ¥ |
| | | dbDataIdSuffixï¼æ°æ®åºæ°æ®idçæå¨çidåç¼ï¼0æ¯é»è®¤çåç¼ï¼ä¸è¬webç³»ç»åºç¨ï¼æ°æ®ä¸é´ä»¶idåç¼å¤§äºçäº1 |
| | | cacheUpDownDataWarnCountï¼ä¸ä¸è¡æ°æ®ç¼åéåä¸ç¼åæ°æ®ä¸ªæ°çæ¥è¦éï¼è¿ä¸ªä¸ç°å®é¡¹ç®ææ¥æ°´è¡¨æ°ç¸å
³ |
| | | cacheUpDownDataMaxCountï¼ä¸ä¸è¡æ°æ®ç¼åéåä¸ç¼åæ°æ®ä¸ªæ°çæå¤§å¼ï¼è¿ä¸ªä¸ç°å®é¡¹ç®ææ¥æ°´è¡¨æ°ç¸å
³ |
| | | disconnectedByNoUpDataMinutesï¼æ²¡æä¸è¡æ°æ®çåéæ°ï¼è¾¾å°è¿ä¸ªåéæ°ï¼è®¤ä¸ºRTUæç½äºï¼åå¼èå´æ¯2-100 |
| | | workReportDealOneByTimes: 工使¥å¤ªé¢ç¹ï¼Næ¬¡ä¸æ¥å¤ç1次ï¼åå¼èå´æ¯1-100 |
| | | intakeAlarmLossMinValue: 触ååéééæ¥è¦æ¶æ¯çåæ°´å£æ¥æ¼æéçæå°å¼ï¼å
æ¬ä½é¤0.0å¤ï¼ï¼å°æ°ï¼ |
| | | sendDingDingAlarmMsInterval: ææ¥è¦åçæ¶ï¼åééåéæ¶æ¯çé´éæ¶é¿ï¼åéï¼ |
| | | --> |
| | | <base |
| | | orgTag="jc" |
| | | isLowPower="false" |
| | | onlyDealRtus="" |
| | | onlyOneProtocol="false" |
| | | downComandMaxResendTimes="1" |
| | | commandSendInterval="3" |
| | | fastCommandSendInterval="500" |
| | | cacheWaitResultTimeout="120" |
| | | offLineCacheTimeout="86400" |
| | | lastUpDataTimeLive="500" |
| | | dbDataIdSuffix="0" |
| | | cacheUpDownDataWarnCount="100000" |
| | | cacheUpDownDataMaxCount="110000" |
| | | disconnectedByNoUpDataMinutes="3" |
| | | workReportDealOneByTimes="1" |
| | | intakeAlarmLossMinValue="1.0" |
| | | sendDingDingAlarmMsInterval="60" |
| | | /> |
| | | |
| | | <!-- |
| | | 2024-08-22 æ¤é
ç½®ææ¶æªåºç¨ |
| | | centerAddr: ä¸å¿å°åï¼å½åï¼centerAddræªç¨å° |
| | | synchroRtuClock: æ¯å¦å¯¹RTUæ ¡æ¶ |
| | | synchroRtuClockTimepiecesï¼å½RTU䏿å¡å¨æ¶éç¸å·®ä¸å®æ¯«ç§ï¼é
ç½®æä»¶æ¯ç§éï¼åï¼è¿è¡æ ¡æ¶ |
| | | --> |
| | | <protocol |
| | | centerAddr="1" |
| | | synchroRtuClock="true" |
| | | synchroRtuClockTimepieces="300000" |
| | | /> |
| | | |
| | | <!-- RTU æ¶æ¯ä¸å¿ |
| | | enable: æ¨¡åæ¯å¦å¯å¨ |
| | | notifyInterval: æ¶æ¯éç¥é´éï¼ç§ï¼ |
| | | --> |
| | | <msCenter enable="true" |
| | | notifyInterval="5" |
| | | /> |
| | | |
| | | <!-- RTU 软件å级 |
| | | enable: æ¨¡åæ¯å¦å¯å¨ |
| | | openNoUpgrade: éå¼ï¼æ³µå¼ï¼ä¸æ§è¡å级 |
| | | lastOpenMaxGoOn: éå¼ï¼æ³µå¼ï¼ç¶æè®¾ç½®ä»¥æ¥æç»æé¿æ¶é´ï¼ç§éï¼ï¼è¶
è¿è¿ä¸ªæ¶é´è®¤ä¸ºç¶ææ æï¼è¿ä¸ªæ¶é¿åå³äºå·¥ä½æ¥é´éï¼ |
| | | noOneRtuUpgradeMaxDurationï¼å级任å¡è®¾ç½®åï¼æ ä¸è®¾å¤å级æå¤§æ¶é¿ï¼ç§ï¼ï¼è¶
è¿è¿ä¸ªæ¶é¿ï¼è®¤ä¸ºå级任å¡å®æï¼åå¼èå´æ¯5åé~60åé |
| | | runningAndIdleDurationï¼rtuå级å¯å¨åè¿å
¥å级ä¸ç¶æï¼ä½æç§æ
åµä¸RTUä¸åéä¿¡äºï¼ä¸ç´å¤äºçå¾
ç¶æï¼çå¾
è¾¾å°ä¸å®æ¶é¿ï¼ç§ï¼ä¸è¬ä¸noOneRtuUpgradeMaxDurationç¸çï¼è®¤ä¸ºå级失败ï¼ä¸å
æ»æå¤å
æ»ï¼ï¼åå¼èå´æ¯5åé~60åé |
| | | failTryTimesï¼å级失败åï¼éå¯¹çæ¯å¨çº¿è¿è¡äºå级ä¸åå½ä»¤ï¼ï¼éæ°å¿è¯å级次æ°ï¼å½è®¾ç½®ä¸º0æ¶è¡¨ç¤ºä¸éæ°å¿è¯å级 |
| | | ugMaxRtuAtOnceï¼ä¸ºäºç¼è§£éä¿¡ä¸é´ä»¶çååï¼åæ¶æ¯æå级çRTUå°æ°ï¼å½è®¾ç½®ä¸º0æ¶è¡¨ç¤ºä¸åéå¶ |
| | | rtuOffLineWaitDuration: rtu离线ï¼çå¾
å
¶åçº§çæ¶é¿ï¼ç§ï¼ï¼è¶
è¿è¿ä¸ªæ¶é´ï¼è®¾ç½®å
¶å级失败ï¼ä¸è®¾ç½®å级任å¡å®æ |
| | | notifyStateInterval: åçº§ç¶æéç¥é´éï¼ç§ï¼ |
| | | notifyTimesAfterOver: åçº§ç»æåï¼ååwebæå¡ç³»ç»éç¥ç¶æçæ¬¡æ° |
| | | --> |
| | | <upgrade enable="true" |
| | | openNoUpgrade="true" |
| | | lastOpenMaxGoOn="1800" |
| | | noOneRtuUpgradeMaxDuration="1200" |
| | | runningAndIdleDuration="1200" |
| | | failTryTimes="2" |
| | | ugMaxRtuAtOnce="5000" |
| | | rtuOffLineWaitDuration="1800" |
| | | notifyStateInterval="2" |
| | | notifyTimesAfterOver="1" |
| | | /> |
| | | |
| | | |
| | | <!-- |
| | | æ¯ææ¨¡å |
| | | ç工使¶é¿çº¿ç¨æ± ï¼çº¿ç¨è´è´£ç¨æ¶è¾ççå·¥ä½ä»»å¡ |
| | | short_maxThreadï¼ æ± ä¸æå¤§çº¿ç¨æ°ä¸ºææCPUæ ¸æ°+1ï¼shortæ± ä¸longæ± ååä¸åï¼ï¼è¥ä¸º-1ï¼ä¸åéå¶ ï¼è®¾ç½®ä¸º0ï¼è¡¨ç¤ºä¸å¯å¨çº¿ç¨æ± |
| | | short_minThreadï¼ æ± ä¸æå°çº¿ç¨æ°ï¼è¥ä¸º-1ï¼ä¸åéå¶ï¼è®¾ç½®ä¸º0ï¼è¡¨ç¤ºä¸å¯å¨çº¿ç¨æ± |
| | | short_freeTimeoutï¼ çº¿ç¨æ°ç©ºé²æ¶é¿ï¼è¥æ± ä¸çº¿ç¨æ°é大äºminThreadï¼ä¸æç线ç¨ç©ºé²æ¶é¿è¶
è¿freeTimeoutï¼åæ¸
é¤è¯¥çº¿ç¨ï¼ä¸ºäºä¸æ¸
é¤ï¼æminThreadä¸maxThread设置ç¸ç |
| | | short_busyTimeoutï¼çº¿ç¨ä¸é´æå·¥ä½æ¶é¿ï¼åä½ä¸ºç§)è¶
æ¶éï¼è®¤ä¸ºçº¿ç¨å·²ç»äºå´©æºï¼å°å¼ºå¶æ¸
é¤ï¼ç工使¶é¿è®¾ç½®ä¸º5ç§ |
| | | é¿å·¥ä½æ¶é¿çº¿ç¨æ± ï¼çº¿ç¨è´è´£ç¨æ¶è¾é¿çå·¥ä½ä»»å¡ï¼ä¾å¦æ°æ®åºååæä½ |
| | | long_maxThreadï¼ æ± ä¸æå¤§çº¿ç¨æ°ä¸ºææCPUæ ¸æ°+1ï¼shortæ± ä¸longæ± ååä¸åï¼ï¼è¥ä¸º-1ï¼ä¸åéå¶ï¼è®¾ç½®ä¸º0ï¼è¡¨ç¤ºä¸å¯å¨çº¿ç¨æ± |
| | | long_minThreadï¼ æ± ä¸æå°çº¿ç¨æ°ï¼è¥ä¸º-1ï¼ä¸åéå¶ï¼è®¾ç½®ä¸º0ï¼è¡¨ç¤ºä¸å¯å¨çº¿ç¨æ± |
| | | long_freeTimeoutï¼ çº¿ç¨æ°ç©ºé²æ¶é¿ï¼è¥æ± ä¸çº¿ç¨æ°é大äºminThreadï¼ä¸æç线ç¨ç©ºé²æ¶é¿è¶
è¿freeTimeoutï¼åæ¸
é¤è¯¥çº¿ç¨ |
| | | long_busyTimeoutï¼çº¿ç¨ä¸é´æå·¥ä½æ¶é¿ï¼åä½ä¸ºç§)è¶
æ¶éï¼è¥ä¸º-1ï¼ä¸åéå¶ |
| | | enableThreadPoolï¼æ¯å¦å¯ç¨çº¿ç¨æ± |
| | | --> |
| | | <support |
| | | short_maxThread="6" |
| | | short_minThread="6" |
| | | short_freeTimeout="60" |
| | | short_busyTimeout="5" |
| | | long_maxThread="6" |
| | | long_minThread="6" |
| | | long_freeTimeout="60" |
| | | long_busyTimeout="-1" |
| | | enableThreadPool="true" |
| | | /> |
| | | |
| | | <!-- |
| | | èµæºæ¨¡å |
| | | rtuLogDirï¼RTUæ¥å¿æä»¶åå¨ç®å½(ç¸å¯¹ç®å½) |
| | | rtuLogFileMaxSizeï¼RTUæ¥å¿æä»¶æå¤§åèæ°(B) |
| | | rtuLogFileMaxCountï¼RTUæ¥å¿æä»¶æå¤§æä»¶æ° |
| | | monitorIntervalï¼Rtuç¶æçè§é´é(åé) |
| | | saveDbIntervalï¼Rtuç¶æåæ°æ®åºé´é(åé) |
| | | --> |
| | | <resource |
| | | rtuLogDir="rtuLogs/" |
| | | rtuLogFileMaxSize="1000000" |
| | | rtuLogFileMaxCount="3" |
| | | monitorInterval="2" |
| | | saveDbInterval="10" |
| | | /> |
| | | |
| | | |
| | | <!-- |
| | | 2024-08-22 æ¤é
ç½®ææ¶æªåºç¨ |
| | | portï¼rmiæå¡ç«¯å£å· |
| | | contextï¼rmiæå¡ä¸ä¸æ |
| | | --> |
| | | <rmi enable="true" |
| | | port="65400" |
| | | context="rtuMw" |
| | | /> |
| | | |
| | | <!-- |
| | | coreIntervalï¼ä¸»çº¿ç¨æ¯æ¬¡æ§è¡é´éæ¶é¿ï¼æ¯«ç§ï¼ |
| | | queueWarnSize: ç¼åéåèç¹æ°è¦åæ°é |
| | | queueMaxSize: ç¼åéåèç¹æ°æå¤§æ°é |
| | | --> |
| | | <core |
| | | coreInterval="100" |
| | | queueWarnSize="100000" |
| | | queueMaxSize="300000" |
| | | /> |
| | | |
| | | <!-- |
| | | portï¼ç«¯å£ |
| | | processorsï¼ Mina IO å¤çä¸ä¸è¡æ°æ®ççº¿ç¨æ°ï¼ä¸è¬æ¯CPUæ»æ ¸æ°+1 |
| | | idle: ååæ¶é¿ï¼ç§ï¼ |
| | | --> |
| | | <tcp enable="true" |
| | | port="60105" |
| | | processors="3" |
| | | idle="10" |
| | | /> |
| | | |
| | | </config> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <config> |
| | | <server name="éä¿¡ä¸é´ä»¶" showStartInfo="true" company="http://www.dyjs.com"/> |
| | | <!-- |
| | | åºæ¬é
ç½® |
| | | orgTag æºætag(å¯¹åºæºætag,åæ°æ®æºåç¼) |
| | | isLowPower: æ¯å¦ä¸ºä½åè |
| | | onlyDealRtus:åªå¤çæå®RTUå°å设å¤ï¼å
¶ä»è®¾å¤æ°æ®ä¸¢å¼ï¼å¤ä¸ªRTUå°åç¨è±æéå·éå¼ï¼ |
| | | onlyOneProtocolï¼å¨æ¯æå¤éä¿¡åè®®æ¶ï¼åªæRTUä¸çº¿äºï¼æè½è¯å«åºè¯¥RTUå®é
ç¨çéä¿¡åè®®ï¼è¿èç¨æ¤å议解æä¸è¡æ°æ®åæé ä¸è¡å½ä»¤ã |
| | | 妿RTUæªæ¾ä¸çº¿ï¼éä¿¡ä¸é´ä»¶å¯å¨å该RTUæªæ¾ä¸çº¿ï¼ï¼é£ä¹å¨åå®åéä¸è¡å½ä»¤æ¶ï¼ä¸è½å¤æåºå
¶éç¨çåè®®ï¼ä¹ä¸è½æé å½ä»¤ï¼å°¤å
¶æ¯ä½åèæ
åµä¸ï¼ä¸ä¸çº¿æ¯æ£å¸¸ç°è±¡ã |
| | | å½åªæä¸ä¸ªåè®®æ
åµä¸ï¼å¨RTUæªæ¾ä¸çº¿æ¶ï¼ä¹è½ç¨æ¤åè®®æé å½ä»¤å¹¶ç¼å䏿¥ï¼å°¤å
¶éåä½åèæ
åµã |
| | | onlyOneProtocol=true: éä¿¡ä¸é´ä»¶å½ååªæä¸ä¸ªåè®® |
| | | downComandMaxResendTimes: ä¸è¡å½ä»¤å
许åéçæå¤§æ¬¡æ°Xï¼å³å
许éåX-1 |
| | | commandSendInterval: é对ä¸ä¸ªRTUï¼ä¸åå½ä»¤çæ¶é´é´é(ç§) |
| | | fastCommandSendInterval: é对ä¸ä¸ªRTUï¼ä¸åå¿«éå½ä»¤ï¼å¦å级å½ä»¤ï¼çæ¶é´é´é(毫ç§)ï¼æ¤é
ç½®ä½ç¨ååä¸é¢é
置项lastUpDataTimeLiveéå¶ |
| | | cacheWaitResultTimeout: å½ä»¤å·²ç»åéè¾¾æå¤§æ¬¡æ°ï¼ä»æªæ¶å°å½ä»¤ç»æï¼éè¦å¨ç¼åç»§ç»çå¾
ï¼å
¶çå¾
æå¤§æ¶é¿(ç§)ï¼æ¬ç³»ç»RTUï¼å¯¹äºå¼å
³æ³µå½ä»¤ï¼å
¶å
æ§è¡å¼å
³æ³µæ¥ï¼ç¶ååè¿è¡å½ä»¤åºçï¼æä»¥æ¤å¼ è¦å¤§ä¸äº |
| | | offLineCacheTimeout: ä¸å¨çº¿ç¼åçå½ä»¤æå¤§ç¼åæ¶é¿(ç§) |
| | | lastUpDataTimeLive: TCPä¸è¡æ°æ®æ¶å»ç¼åæ¶é¿(毫ç§)ï¼å½è¾¾å°æ¶é¿æ¶ï¼TCPä¸è¡æ°æ®æ¶å»è¢«æ¸
空ï¼éç¨TCPä¸è¡æ°æ®æ¶å»ç®çæ¯ï¼é»æ¢ä¸è¡æ°æ®åæ¶ä¸åæ°æ®ï¼å 为RTUå¤çä¸è¿æ¥ |
| | | dbDataIdSuffixï¼æ°æ®åºæ°æ®idçæå¨çidåç¼ï¼0æ¯é»è®¤çåç¼ï¼ä¸è¬webç³»ç»åºç¨ï¼æ°æ®ä¸é´ä»¶idåç¼å¤§äºçäº1 |
| | | cacheUpDownDataWarnCountï¼ä¸ä¸è¡æ°æ®ç¼åéåä¸ç¼åæ°æ®ä¸ªæ°çæ¥è¦éï¼è¿ä¸ªä¸ç°å®é¡¹ç®ææ¥æ°´è¡¨æ°ç¸å
³ |
| | | cacheUpDownDataMaxCountï¼ä¸ä¸è¡æ°æ®ç¼åéåä¸ç¼åæ°æ®ä¸ªæ°çæå¤§å¼ï¼è¿ä¸ªä¸ç°å®é¡¹ç®ææ¥æ°´è¡¨æ°ç¸å
³ |
| | | disconnectedByNoUpDataMinutesï¼æ²¡æä¸è¡æ°æ®çåéæ°ï¼è¾¾å°è¿ä¸ªåéæ°ï¼è®¤ä¸ºRTUæç½äºï¼åå¼èå´æ¯2-100 |
| | | workReportDealOneByTimes: 工使¥å¤ªé¢ç¹ï¼Næ¬¡ä¸æ¥å¤ç1次ï¼åå¼èå´æ¯1-100 |
| | | intakeAlarmLossMinValue: 触ååéééæ¥è¦æ¶æ¯çåæ°´å£æ¥æ¼æéçæå°å¼ï¼å
æ¬ä½é¤0.0å¤ï¼ï¼å°æ°ï¼ |
| | | sendDingDingAlarmMsInterval: ææ¥è¦åçæ¶ï¼åééåéæ¶æ¯çé´éæ¶é¿ï¼åéï¼ |
| | | --> |
| | | <base |
| | | orgTag="lz" |
| | | isLowPower="false" |
| | | onlyDealRtus="" |
| | | onlyOneProtocol="false" |
| | | downComandMaxResendTimes="1" |
| | | commandSendInterval="3" |
| | | fastCommandSendInterval="500" |
| | | cacheWaitResultTimeout="120" |
| | | offLineCacheTimeout="86400" |
| | | lastUpDataTimeLive="500" |
| | | dbDataIdSuffix="0" |
| | | cacheUpDownDataWarnCount="100000" |
| | | cacheUpDownDataMaxCount="110000" |
| | | disconnectedByNoUpDataMinutes="3" |
| | | workReportDealOneByTimes="1" |
| | | intakeAlarmLossMinValue="1.0" |
| | | sendDingDingAlarmMsInterval="60" |
| | | /> |
| | | |
| | | <!-- |
| | | 2024-08-22 æ¤é
ç½®ææ¶æªåºç¨ |
| | | centerAddr: ä¸å¿å°åï¼å½åï¼centerAddræªç¨å° |
| | | synchroRtuClock: æ¯å¦å¯¹RTUæ ¡æ¶ |
| | | synchroRtuClockTimepiecesï¼å½RTU䏿å¡å¨æ¶éç¸å·®ä¸å®æ¯«ç§ï¼é
ç½®æä»¶æ¯ç§éï¼åï¼è¿è¡æ ¡æ¶ |
| | | --> |
| | | <protocol |
| | | centerAddr="1" |
| | | synchroRtuClock="true" |
| | | synchroRtuClockTimepieces="300000" |
| | | /> |
| | | |
| | | <!-- RTU æ¶æ¯ä¸å¿ |
| | | enable: æ¨¡åæ¯å¦å¯å¨ |
| | | notifyInterval: æ¶æ¯éç¥é´éï¼ç§ï¼ |
| | | --> |
| | | <msCenter enable="true" |
| | | notifyInterval="5" |
| | | /> |
| | | |
| | | <!-- RTU 软件å级 |
| | | enable: æ¨¡åæ¯å¦å¯å¨ |
| | | openNoUpgrade: éå¼ï¼æ³µå¼ï¼ä¸æ§è¡å级 |
| | | lastOpenMaxGoOn: éå¼ï¼æ³µå¼ï¼ç¶æè®¾ç½®ä»¥æ¥æç»æé¿æ¶é´ï¼ç§éï¼ï¼è¶
è¿è¿ä¸ªæ¶é´è®¤ä¸ºç¶ææ æï¼è¿ä¸ªæ¶é¿åå³äºå·¥ä½æ¥é´éï¼ |
| | | noOneRtuUpgradeMaxDurationï¼å级任å¡è®¾ç½®åï¼æ ä¸è®¾å¤å级æå¤§æ¶é¿ï¼ç§ï¼ï¼è¶
è¿è¿ä¸ªæ¶é¿ï¼è®¤ä¸ºå级任å¡å®æï¼åå¼èå´æ¯5åé~60åé |
| | | runningAndIdleDurationï¼rtuå级å¯å¨åè¿å
¥å级ä¸ç¶æï¼ä½æç§æ
åµä¸RTUä¸åéä¿¡äºï¼ä¸ç´å¤äºçå¾
ç¶æï¼çå¾
è¾¾å°ä¸å®æ¶é¿ï¼ç§ï¼ä¸è¬ä¸noOneRtuUpgradeMaxDurationç¸çï¼è®¤ä¸ºå级失败ï¼ä¸å
æ»æå¤å
æ»ï¼ï¼åå¼èå´æ¯5åé~60åé |
| | | failTryTimesï¼å级失败åï¼éå¯¹çæ¯å¨çº¿è¿è¡äºå级ä¸åå½ä»¤ï¼ï¼éæ°å¿è¯å级次æ°ï¼å½è®¾ç½®ä¸º0æ¶è¡¨ç¤ºä¸éæ°å¿è¯å级 |
| | | ugMaxRtuAtOnceï¼ä¸ºäºç¼è§£éä¿¡ä¸é´ä»¶çååï¼åæ¶æ¯æå级çRTUå°æ°ï¼å½è®¾ç½®ä¸º0æ¶è¡¨ç¤ºä¸åéå¶ |
| | | rtuOffLineWaitDuration: rtu离线ï¼çå¾
å
¶åçº§çæ¶é¿ï¼ç§ï¼ï¼è¶
è¿è¿ä¸ªæ¶é´ï¼è®¾ç½®å
¶å级失败ï¼ä¸è®¾ç½®å级任å¡å®æ |
| | | notifyStateInterval: åçº§ç¶æéç¥é´éï¼ç§ï¼ |
| | | notifyTimesAfterOver: åçº§ç»æåï¼ååwebæå¡ç³»ç»éç¥ç¶æçæ¬¡æ° |
| | | --> |
| | | <upgrade enable="true" |
| | | openNoUpgrade="true" |
| | | lastOpenMaxGoOn="1800" |
| | | noOneRtuUpgradeMaxDuration="1200" |
| | | runningAndIdleDuration="1200" |
| | | failTryTimes="2" |
| | | ugMaxRtuAtOnce="5000" |
| | | rtuOffLineWaitDuration="1800" |
| | | notifyStateInterval="2" |
| | | notifyTimesAfterOver="1" |
| | | /> |
| | | |
| | | |
| | | <!-- |
| | | æ¯ææ¨¡å |
| | | ç工使¶é¿çº¿ç¨æ± ï¼çº¿ç¨è´è´£ç¨æ¶è¾ççå·¥ä½ä»»å¡ |
| | | short_maxThreadï¼ æ± ä¸æå¤§çº¿ç¨æ°ä¸ºææCPUæ ¸æ°+1ï¼shortæ± ä¸longæ± ååä¸åï¼ï¼è¥ä¸º-1ï¼ä¸åéå¶ ï¼è®¾ç½®ä¸º0ï¼è¡¨ç¤ºä¸å¯å¨çº¿ç¨æ± |
| | | short_minThreadï¼ æ± ä¸æå°çº¿ç¨æ°ï¼è¥ä¸º-1ï¼ä¸åéå¶ï¼è®¾ç½®ä¸º0ï¼è¡¨ç¤ºä¸å¯å¨çº¿ç¨æ± |
| | | short_freeTimeoutï¼ çº¿ç¨æ°ç©ºé²æ¶é¿ï¼è¥æ± ä¸çº¿ç¨æ°é大äºminThreadï¼ä¸æç线ç¨ç©ºé²æ¶é¿è¶
è¿freeTimeoutï¼åæ¸
é¤è¯¥çº¿ç¨ï¼ä¸ºäºä¸æ¸
é¤ï¼æminThreadä¸maxThread设置ç¸ç |
| | | short_busyTimeoutï¼çº¿ç¨ä¸é´æå·¥ä½æ¶é¿ï¼åä½ä¸ºç§)è¶
æ¶éï¼è®¤ä¸ºçº¿ç¨å·²ç»äºå´©æºï¼å°å¼ºå¶æ¸
é¤ï¼ç工使¶é¿è®¾ç½®ä¸º5ç§ |
| | | é¿å·¥ä½æ¶é¿çº¿ç¨æ± ï¼çº¿ç¨è´è´£ç¨æ¶è¾é¿çå·¥ä½ä»»å¡ï¼ä¾å¦æ°æ®åºååæä½ |
| | | long_maxThreadï¼ æ± ä¸æå¤§çº¿ç¨æ°ä¸ºææCPUæ ¸æ°+1ï¼shortæ± ä¸longæ± ååä¸åï¼ï¼è¥ä¸º-1ï¼ä¸åéå¶ï¼è®¾ç½®ä¸º0ï¼è¡¨ç¤ºä¸å¯å¨çº¿ç¨æ± |
| | | long_minThreadï¼ æ± ä¸æå°çº¿ç¨æ°ï¼è¥ä¸º-1ï¼ä¸åéå¶ï¼è®¾ç½®ä¸º0ï¼è¡¨ç¤ºä¸å¯å¨çº¿ç¨æ± |
| | | long_freeTimeoutï¼ çº¿ç¨æ°ç©ºé²æ¶é¿ï¼è¥æ± ä¸çº¿ç¨æ°é大äºminThreadï¼ä¸æç线ç¨ç©ºé²æ¶é¿è¶
è¿freeTimeoutï¼åæ¸
é¤è¯¥çº¿ç¨ |
| | | long_busyTimeoutï¼çº¿ç¨ä¸é´æå·¥ä½æ¶é¿ï¼åä½ä¸ºç§)è¶
æ¶éï¼è¥ä¸º-1ï¼ä¸åéå¶ |
| | | enableThreadPoolï¼æ¯å¦å¯ç¨çº¿ç¨æ± |
| | | --> |
| | | <support |
| | | short_maxThread="6" |
| | | short_minThread="6" |
| | | short_freeTimeout="60" |
| | | short_busyTimeout="5" |
| | | long_maxThread="6" |
| | | long_minThread="6" |
| | | long_freeTimeout="60" |
| | | long_busyTimeout="-1" |
| | | enableThreadPool="true" |
| | | /> |
| | | |
| | | <!-- |
| | | èµæºæ¨¡å |
| | | rtuLogDirï¼RTUæ¥å¿æä»¶åå¨ç®å½(ç¸å¯¹ç®å½) |
| | | rtuLogFileMaxSizeï¼RTUæ¥å¿æä»¶æå¤§åèæ°(B) |
| | | rtuLogFileMaxCountï¼RTUæ¥å¿æä»¶æå¤§æä»¶æ° |
| | | monitorIntervalï¼Rtuç¶æçè§é´é(åé) |
| | | saveDbIntervalï¼Rtuç¶æåæ°æ®åºé´é(åé) |
| | | --> |
| | | <resource |
| | | rtuLogDir="rtuLogs/" |
| | | rtuLogFileMaxSize="1000000" |
| | | rtuLogFileMaxCount="3" |
| | | monitorInterval="2" |
| | | saveDbInterval="10" |
| | | /> |
| | | |
| | | |
| | | <!-- |
| | | 2024-08-22 æ¤é
ç½®ææ¶æªåºç¨ |
| | | portï¼rmiæå¡ç«¯å£å· |
| | | contextï¼rmiæå¡ä¸ä¸æ |
| | | --> |
| | | <rmi enable="true" |
| | | port="65400" |
| | | context="rtuMw" |
| | | /> |
| | | |
| | | <!-- |
| | | coreIntervalï¼ä¸»çº¿ç¨æ¯æ¬¡æ§è¡é´éæ¶é¿ï¼æ¯«ç§ï¼ |
| | | queueWarnSize: ç¼åéåèç¹æ°è¦åæ°é |
| | | queueMaxSize: ç¼åéåèç¹æ°æå¤§æ°é |
| | | --> |
| | | <core |
| | | coreInterval="100" |
| | | queueWarnSize="100000" |
| | | queueMaxSize="300000" |
| | | /> |
| | | |
| | | <!-- |
| | | portï¼ç«¯å£ |
| | | processorsï¼ Mina IO å¤çä¸ä¸è¡æ°æ®ççº¿ç¨æ°ï¼ä¸è¬æ¯CPUæ»æ ¸æ°+1 |
| | | idle: ååæ¶é¿ï¼ç§ï¼ |
| | | --> |
| | | <tcp enable="true" |
| | | port="60104" |
| | | processors="3" |
| | | idle="10" |
| | | /> |
| | | |
| | | </config> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <config> |
| | | <server name="éä¿¡ä¸é´ä»¶" showStartInfo="true" company="http://www.dyjs.com"/> |
| | | <!-- |
| | | åºæ¬é
ç½® |
| | | orgTag æºætag(å¯¹åºæºætag,åæ°æ®æºåç¼) |
| | | isLowPower: æ¯å¦ä¸ºä½åè |
| | | onlyDealRtus:åªå¤çæå®RTUå°å设å¤ï¼å
¶ä»è®¾å¤æ°æ®ä¸¢å¼ï¼å¤ä¸ªRTUå°åç¨è±æéå·éå¼ï¼ |
| | | onlyOneProtocolï¼å¨æ¯æå¤éä¿¡åè®®æ¶ï¼åªæRTUä¸çº¿äºï¼æè½è¯å«åºè¯¥RTUå®é
ç¨çéä¿¡åè®®ï¼è¿èç¨æ¤å议解æä¸è¡æ°æ®åæé ä¸è¡å½ä»¤ã |
| | | 妿RTUæªæ¾ä¸çº¿ï¼éä¿¡ä¸é´ä»¶å¯å¨å该RTUæªæ¾ä¸çº¿ï¼ï¼é£ä¹å¨åå®åéä¸è¡å½ä»¤æ¶ï¼ä¸è½å¤æåºå
¶éç¨çåè®®ï¼ä¹ä¸è½æé å½ä»¤ï¼å°¤å
¶æ¯ä½åèæ
åµä¸ï¼ä¸ä¸çº¿æ¯æ£å¸¸ç°è±¡ã |
| | | å½åªæä¸ä¸ªåè®®æ
åµä¸ï¼å¨RTUæªæ¾ä¸çº¿æ¶ï¼ä¹è½ç¨æ¤åè®®æé å½ä»¤å¹¶ç¼å䏿¥ï¼å°¤å
¶éåä½åèæ
åµã |
| | | onlyOneProtocol=true: éä¿¡ä¸é´ä»¶å½ååªæä¸ä¸ªåè®® |
| | | downComandMaxResendTimes: ä¸è¡å½ä»¤å
许åéçæå¤§æ¬¡æ°Xï¼å³å
许éåX-1 |
| | | commandSendInterval: é对ä¸ä¸ªRTUï¼ä¸åå½ä»¤çæ¶é´é´é(ç§) |
| | | fastCommandSendInterval: é对ä¸ä¸ªRTUï¼ä¸åå¿«éå½ä»¤ï¼å¦å级å½ä»¤ï¼çæ¶é´é´é(毫ç§)ï¼æ¤é
ç½®ä½ç¨ååä¸é¢é
置项lastUpDataTimeLiveéå¶ |
| | | cacheWaitResultTimeout: å½ä»¤å·²ç»åéè¾¾æå¤§æ¬¡æ°ï¼ä»æªæ¶å°å½ä»¤ç»æï¼éè¦å¨ç¼åç»§ç»çå¾
ï¼å
¶çå¾
æå¤§æ¶é¿(ç§)ï¼æ¬ç³»ç»RTUï¼å¯¹äºå¼å
³æ³µå½ä»¤ï¼å
¶å
æ§è¡å¼å
³æ³µæ¥ï¼ç¶ååè¿è¡å½ä»¤åºçï¼æä»¥æ¤å¼ è¦å¤§ä¸äº |
| | | offLineCacheTimeout: ä¸å¨çº¿ç¼åçå½ä»¤æå¤§ç¼åæ¶é¿(ç§) |
| | | lastUpDataTimeLive: TCPä¸è¡æ°æ®æ¶å»ç¼åæ¶é¿(毫ç§)ï¼å½è¾¾å°æ¶é¿æ¶ï¼TCPä¸è¡æ°æ®æ¶å»è¢«æ¸
空ï¼éç¨TCPä¸è¡æ°æ®æ¶å»ç®çæ¯ï¼é»æ¢ä¸è¡æ°æ®åæ¶ä¸åæ°æ®ï¼å 为RTUå¤çä¸è¿æ¥ |
| | | dbDataIdSuffixï¼æ°æ®åºæ°æ®idçæå¨çidåç¼ï¼0æ¯é»è®¤çåç¼ï¼ä¸è¬webç³»ç»åºç¨ï¼æ°æ®ä¸é´ä»¶idåç¼å¤§äºçäº1 |
| | | cacheUpDownDataWarnCountï¼ä¸ä¸è¡æ°æ®ç¼åéåä¸ç¼åæ°æ®ä¸ªæ°çæ¥è¦éï¼è¿ä¸ªä¸ç°å®é¡¹ç®ææ¥æ°´è¡¨æ°ç¸å
³ |
| | | cacheUpDownDataMaxCountï¼ä¸ä¸è¡æ°æ®ç¼åéåä¸ç¼åæ°æ®ä¸ªæ°çæå¤§å¼ï¼è¿ä¸ªä¸ç°å®é¡¹ç®ææ¥æ°´è¡¨æ°ç¸å
³ |
| | | disconnectedByNoUpDataMinutesï¼æ²¡æä¸è¡æ°æ®çåéæ°ï¼è¾¾å°è¿ä¸ªåéæ°ï¼è®¤ä¸ºRTUæç½äºï¼åå¼èå´æ¯2-100 |
| | | workReportDealOneByTimes: 工使¥å¤ªé¢ç¹ï¼Næ¬¡ä¸æ¥å¤ç1次ï¼åå¼èå´æ¯1-100 |
| | | intakeAlarmLossMinValue: 触ååéééæ¥è¦æ¶æ¯çåæ°´å£æ¥æ¼æéçæå°å¼ï¼å
æ¬ä½é¤0.0å¤ï¼ï¼å°æ°ï¼ |
| | | sendDingDingAlarmMsInterval: ææ¥è¦åçæ¶ï¼åééåéæ¶æ¯çé´éæ¶é¿ï¼åéï¼ |
| | | --> |
| | | <base |
| | | orgTag="yq" |
| | | isLowPower="false" |
| | | onlyDealRtus="" |
| | | onlyOneProtocol="false" |
| | | downComandMaxResendTimes="1" |
| | | commandSendInterval="3" |
| | | fastCommandSendInterval="500" |
| | | cacheWaitResultTimeout="120" |
| | | offLineCacheTimeout="86400" |
| | | lastUpDataTimeLive="500" |
| | | dbDataIdSuffix="0" |
| | | cacheUpDownDataWarnCount="100000" |
| | | cacheUpDownDataMaxCount="110000" |
| | | disconnectedByNoUpDataMinutes="3" |
| | | workReportDealOneByTimes="1" |
| | | intakeAlarmLossMinValue="1.0" |
| | | sendDingDingAlarmMsInterval="60" |
| | | /> |
| | | |
| | | <!-- |
| | | 2024-08-22 æ¤é
ç½®ææ¶æªåºç¨ |
| | | centerAddr: ä¸å¿å°åï¼å½åï¼centerAddræªç¨å° |
| | | synchroRtuClock: æ¯å¦å¯¹RTUæ ¡æ¶ |
| | | synchroRtuClockTimepiecesï¼å½RTU䏿å¡å¨æ¶éç¸å·®ä¸å®æ¯«ç§ï¼é
ç½®æä»¶æ¯ç§éï¼åï¼è¿è¡æ ¡æ¶ |
| | | --> |
| | | <protocol |
| | | centerAddr="1" |
| | | synchroRtuClock="true" |
| | | synchroRtuClockTimepieces="300000" |
| | | /> |
| | | |
| | | <!-- RTU æ¶æ¯ä¸å¿ |
| | | enable: æ¨¡åæ¯å¦å¯å¨ |
| | | notifyInterval: æ¶æ¯éç¥é´éï¼ç§ï¼ |
| | | --> |
| | | <msCenter enable="true" |
| | | notifyInterval="5" |
| | | /> |
| | | |
| | | <!-- RTU 软件å级 |
| | | enable: æ¨¡åæ¯å¦å¯å¨ |
| | | openNoUpgrade: éå¼ï¼æ³µå¼ï¼ä¸æ§è¡å级 |
| | | lastOpenMaxGoOn: éå¼ï¼æ³µå¼ï¼ç¶æè®¾ç½®ä»¥æ¥æç»æé¿æ¶é´ï¼ç§éï¼ï¼è¶
è¿è¿ä¸ªæ¶é´è®¤ä¸ºç¶ææ æï¼è¿ä¸ªæ¶é¿åå³äºå·¥ä½æ¥é´éï¼ |
| | | noOneRtuUpgradeMaxDurationï¼å级任å¡è®¾ç½®åï¼æ ä¸è®¾å¤å级æå¤§æ¶é¿ï¼ç§ï¼ï¼è¶
è¿è¿ä¸ªæ¶é¿ï¼è®¤ä¸ºå级任å¡å®æï¼åå¼èå´æ¯5åé~60åé |
| | | runningAndIdleDurationï¼rtuå级å¯å¨åè¿å
¥å级ä¸ç¶æï¼ä½æç§æ
åµä¸RTUä¸åéä¿¡äºï¼ä¸ç´å¤äºçå¾
ç¶æï¼çå¾
è¾¾å°ä¸å®æ¶é¿ï¼ç§ï¼ä¸è¬ä¸noOneRtuUpgradeMaxDurationç¸çï¼è®¤ä¸ºå级失败ï¼ä¸å
æ»æå¤å
æ»ï¼ï¼åå¼èå´æ¯5åé~60åé |
| | | failTryTimesï¼å级失败åï¼éå¯¹çæ¯å¨çº¿è¿è¡äºå级ä¸åå½ä»¤ï¼ï¼éæ°å¿è¯å级次æ°ï¼å½è®¾ç½®ä¸º0æ¶è¡¨ç¤ºä¸éæ°å¿è¯å级 |
| | | ugMaxRtuAtOnceï¼ä¸ºäºç¼è§£éä¿¡ä¸é´ä»¶çååï¼åæ¶æ¯æå级çRTUå°æ°ï¼å½è®¾ç½®ä¸º0æ¶è¡¨ç¤ºä¸åéå¶ |
| | | rtuOffLineWaitDuration: rtu离线ï¼çå¾
å
¶åçº§çæ¶é¿ï¼ç§ï¼ï¼è¶
è¿è¿ä¸ªæ¶é´ï¼è®¾ç½®å
¶å级失败ï¼ä¸è®¾ç½®å级任å¡å®æ |
| | | notifyStateInterval: åçº§ç¶æéç¥é´éï¼ç§ï¼ |
| | | notifyTimesAfterOver: åçº§ç»æåï¼ååwebæå¡ç³»ç»éç¥ç¶æçæ¬¡æ° |
| | | --> |
| | | <upgrade enable="true" |
| | | openNoUpgrade="true" |
| | | lastOpenMaxGoOn="1800" |
| | | noOneRtuUpgradeMaxDuration="1200" |
| | | runningAndIdleDuration="1200" |
| | | failTryTimes="2" |
| | | ugMaxRtuAtOnce="5000" |
| | | rtuOffLineWaitDuration="1800" |
| | | notifyStateInterval="2" |
| | | notifyTimesAfterOver="1" |
| | | /> |
| | | |
| | | |
| | | <!-- |
| | | æ¯ææ¨¡å |
| | | ç工使¶é¿çº¿ç¨æ± ï¼çº¿ç¨è´è´£ç¨æ¶è¾ççå·¥ä½ä»»å¡ |
| | | short_maxThreadï¼ æ± ä¸æå¤§çº¿ç¨æ°ä¸ºææCPUæ ¸æ°+1ï¼shortæ± ä¸longæ± ååä¸åï¼ï¼è¥ä¸º-1ï¼ä¸åéå¶ ï¼è®¾ç½®ä¸º0ï¼è¡¨ç¤ºä¸å¯å¨çº¿ç¨æ± |
| | | short_minThreadï¼ æ± ä¸æå°çº¿ç¨æ°ï¼è¥ä¸º-1ï¼ä¸åéå¶ï¼è®¾ç½®ä¸º0ï¼è¡¨ç¤ºä¸å¯å¨çº¿ç¨æ± |
| | | short_freeTimeoutï¼ çº¿ç¨æ°ç©ºé²æ¶é¿ï¼è¥æ± ä¸çº¿ç¨æ°é大äºminThreadï¼ä¸æç线ç¨ç©ºé²æ¶é¿è¶
è¿freeTimeoutï¼åæ¸
é¤è¯¥çº¿ç¨ï¼ä¸ºäºä¸æ¸
é¤ï¼æminThreadä¸maxThread设置ç¸ç |
| | | short_busyTimeoutï¼çº¿ç¨ä¸é´æå·¥ä½æ¶é¿ï¼åä½ä¸ºç§)è¶
æ¶éï¼è®¤ä¸ºçº¿ç¨å·²ç»äºå´©æºï¼å°å¼ºå¶æ¸
é¤ï¼ç工使¶é¿è®¾ç½®ä¸º5ç§ |
| | | é¿å·¥ä½æ¶é¿çº¿ç¨æ± ï¼çº¿ç¨è´è´£ç¨æ¶è¾é¿çå·¥ä½ä»»å¡ï¼ä¾å¦æ°æ®åºååæä½ |
| | | long_maxThreadï¼ æ± ä¸æå¤§çº¿ç¨æ°ä¸ºææCPUæ ¸æ°+1ï¼shortæ± ä¸longæ± ååä¸åï¼ï¼è¥ä¸º-1ï¼ä¸åéå¶ï¼è®¾ç½®ä¸º0ï¼è¡¨ç¤ºä¸å¯å¨çº¿ç¨æ± |
| | | long_minThreadï¼ æ± ä¸æå°çº¿ç¨æ°ï¼è¥ä¸º-1ï¼ä¸åéå¶ï¼è®¾ç½®ä¸º0ï¼è¡¨ç¤ºä¸å¯å¨çº¿ç¨æ± |
| | | long_freeTimeoutï¼ çº¿ç¨æ°ç©ºé²æ¶é¿ï¼è¥æ± ä¸çº¿ç¨æ°é大äºminThreadï¼ä¸æç线ç¨ç©ºé²æ¶é¿è¶
è¿freeTimeoutï¼åæ¸
é¤è¯¥çº¿ç¨ |
| | | long_busyTimeoutï¼çº¿ç¨ä¸é´æå·¥ä½æ¶é¿ï¼åä½ä¸ºç§)è¶
æ¶éï¼è¥ä¸º-1ï¼ä¸åéå¶ |
| | | enableThreadPoolï¼æ¯å¦å¯ç¨çº¿ç¨æ± |
| | | --> |
| | | <support |
| | | short_maxThread="6" |
| | | short_minThread="6" |
| | | short_freeTimeout="60" |
| | | short_busyTimeout="5" |
| | | long_maxThread="6" |
| | | long_minThread="6" |
| | | long_freeTimeout="60" |
| | | long_busyTimeout="-1" |
| | | enableThreadPool="true" |
| | | /> |
| | | |
| | | <!-- |
| | | èµæºæ¨¡å |
| | | rtuLogDirï¼RTUæ¥å¿æä»¶åå¨ç®å½(ç¸å¯¹ç®å½) |
| | | rtuLogFileMaxSizeï¼RTUæ¥å¿æä»¶æå¤§åèæ°(B) |
| | | rtuLogFileMaxCountï¼RTUæ¥å¿æä»¶æå¤§æä»¶æ° |
| | | monitorIntervalï¼Rtuç¶æçè§é´é(åé) |
| | | saveDbIntervalï¼Rtuç¶æåæ°æ®åºé´é(åé) |
| | | --> |
| | | <resource |
| | | rtuLogDir="rtuLogs/" |
| | | rtuLogFileMaxSize="1000000" |
| | | rtuLogFileMaxCount="3" |
| | | monitorInterval="2" |
| | | saveDbInterval="10" |
| | | /> |
| | | |
| | | |
| | | <!-- |
| | | 2024-08-22 æ¤é
ç½®ææ¶æªåºç¨ |
| | | portï¼rmiæå¡ç«¯å£å· |
| | | contextï¼rmiæå¡ä¸ä¸æ |
| | | --> |
| | | <rmi enable="true" |
| | | port="65400" |
| | | context="rtuMw" |
| | | /> |
| | | |
| | | <!-- |
| | | coreIntervalï¼ä¸»çº¿ç¨æ¯æ¬¡æ§è¡é´éæ¶é¿ï¼æ¯«ç§ï¼ |
| | | queueWarnSize: ç¼åéåèç¹æ°è¦åæ°é |
| | | queueMaxSize: ç¼åéåèç¹æ°æå¤§æ°é |
| | | --> |
| | | <core |
| | | coreInterval="100" |
| | | queueWarnSize="100000" |
| | | queueMaxSize="300000" |
| | | /> |
| | | |
| | | <!-- |
| | | portï¼ç«¯å£ |
| | | processorsï¼ Mina IO å¤çä¸ä¸è¡æ°æ®ççº¿ç¨æ°ï¼ä¸è¬æ¯CPUæ»æ ¸æ°+1 |
| | | idle: ååæ¶é¿ï¼ç§ï¼ |
| | | --> |
| | | <tcp enable="true" |
| | | port="60101" |
| | | processors="3" |
| | | idle="10" |
| | | /> |
| | | |
| | | </config> |
| | |
| | | sendDingDingAlarmMsInterval: ææ¥è¦åçæ¶ï¼åééåéæ¶æ¯çé´éæ¶é¿ï¼åéï¼ |
| | | --> |
| | | <base |
| | | orgTag="ym" |
| | | orgTag="mq" |
| | | isLowPower="false" |
| | | onlyDealRtus="" |
| | | onlyOneProtocol="false" |
| | |
| | | idle: ååæ¶é¿ï¼ç§ï¼ |
| | | --> |
| | | <tcp enable="true" |
| | | port="60000" |
| | | port="60100" |
| | | processors="3" |
| | | idle="10" |
| | | /> |
New file |
| | |
| | | /mvnw text eol=lf |
| | | *.cmd text eol=crlf |
New file |
| | |
| | | HELP.md |
| | | target/ |
| | | /pipIrr-mw-rtu3rd.iml |
| | | !.mvn/wrapper/maven-wrapper.jar |
| | | !**/src/main/**/target/ |
| | | !**/src/test/**/target/ |
| | | |
| | | ### STS ### |
| | | .apt_generated |
| | | .classpath |
| | | .factorypath |
| | | .project |
| | | .settings |
| | | .springBeans |
| | | .sts4-cache |
| | | |
| | | ### IntelliJ IDEA ### |
| | | .idea |
| | | *.iws |
| | | *.iml |
| | | *.ipr |
| | | |
| | | ### NetBeans ### |
| | | /nbproject/private/ |
| | | /nbbuild/ |
| | | /dist/ |
| | | /nbdist/ |
| | | /.nb-gradle/ |
| | | build/ |
| | | !**/src/main/**/build/ |
| | | !**/src/test/**/build/ |
| | | |
| | | ### VS Code ### |
| | | .vscode/ |
New file |
| | |
| | | # Licensed to the Apache Software Foundation (ASF) under one |
| | | # or more contributor license agreements. See the NOTICE file |
| | | # distributed with this work for additional information |
| | | # regarding copyright ownership. The ASF licenses this file |
| | | # to you under the Apache License, Version 2.0 (the |
| | | # "License"); you may not use this file except in compliance |
| | | # with the License. You may obtain a copy of the License at |
| | | # |
| | | # http://www.apache.org/licenses/LICENSE-2.0 |
| | | # |
| | | # Unless required by applicable law or agreed to in writing, |
| | | # software distributed under the License is distributed on an |
| | | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| | | # KIND, either express or implied. See the License for the |
| | | # specific language governing permissions and limitations |
| | | # under the License. |
| | | wrapperVersion=3.3.2 |
| | | distributionType=only-script |
| | | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.zip |
New file |
| | |
| | | #!/bin/sh |
| | | # ---------------------------------------------------------------------------- |
| | | # Licensed to the Apache Software Foundation (ASF) under one |
| | | # or more contributor license agreements. See the NOTICE file |
| | | # distributed with this work for additional information |
| | | # regarding copyright ownership. The ASF licenses this file |
| | | # to you under the Apache License, Version 2.0 (the |
| | | # "License"); you may not use this file except in compliance |
| | | # with the License. You may obtain a copy of the License at |
| | | # |
| | | # http://www.apache.org/licenses/LICENSE-2.0 |
| | | # |
| | | # Unless required by applicable law or agreed to in writing, |
| | | # software distributed under the License is distributed on an |
| | | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| | | # KIND, either express or implied. See the License for the |
| | | # specific language governing permissions and limitations |
| | | # under the License. |
| | | # ---------------------------------------------------------------------------- |
| | | |
| | | # ---------------------------------------------------------------------------- |
| | | # Apache Maven Wrapper startup batch script, version 3.3.2 |
| | | # |
| | | # Optional ENV vars |
| | | # ----------------- |
| | | # JAVA_HOME - location of a JDK home dir, required when download maven via java source |
| | | # MVNW_REPOURL - repo url base for downloading maven distribution |
| | | # MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven |
| | | # MVNW_VERBOSE - true: enable verbose log; debug: trace the mvnw script; others: silence the output |
| | | # ---------------------------------------------------------------------------- |
| | | |
| | | set -euf |
| | | [ "${MVNW_VERBOSE-}" != debug ] || set -x |
| | | |
| | | # OS specific support. |
| | | native_path() { printf %s\\n "$1"; } |
| | | case "$(uname)" in |
| | | CYGWIN* | MINGW*) |
| | | [ -z "${JAVA_HOME-}" ] || JAVA_HOME="$(cygpath --unix "$JAVA_HOME")" |
| | | native_path() { cygpath --path --windows "$1"; } |
| | | ;; |
| | | esac |
| | | |
| | | # set JAVACMD and JAVACCMD |
| | | set_java_home() { |
| | | # For Cygwin and MinGW, ensure paths are in Unix format before anything is touched |
| | | if [ -n "${JAVA_HOME-}" ]; then |
| | | if [ -x "$JAVA_HOME/jre/sh/java" ]; then |
| | | # IBM's JDK on AIX uses strange locations for the executables |
| | | JAVACMD="$JAVA_HOME/jre/sh/java" |
| | | JAVACCMD="$JAVA_HOME/jre/sh/javac" |
| | | else |
| | | JAVACMD="$JAVA_HOME/bin/java" |
| | | JAVACCMD="$JAVA_HOME/bin/javac" |
| | | |
| | | if [ ! -x "$JAVACMD" ] || [ ! -x "$JAVACCMD" ]; then |
| | | echo "The JAVA_HOME environment variable is not defined correctly, so mvnw cannot run." >&2 |
| | | echo "JAVA_HOME is set to \"$JAVA_HOME\", but \"\$JAVA_HOME/bin/java\" or \"\$JAVA_HOME/bin/javac\" does not exist." >&2 |
| | | return 1 |
| | | fi |
| | | fi |
| | | else |
| | | JAVACMD="$( |
| | | 'set' +e |
| | | 'unset' -f command 2>/dev/null |
| | | 'command' -v java |
| | | )" || : |
| | | JAVACCMD="$( |
| | | 'set' +e |
| | | 'unset' -f command 2>/dev/null |
| | | 'command' -v javac |
| | | )" || : |
| | | |
| | | if [ ! -x "${JAVACMD-}" ] || [ ! -x "${JAVACCMD-}" ]; then |
| | | echo "The java/javac command does not exist in PATH nor is JAVA_HOME set, so mvnw cannot run." >&2 |
| | | return 1 |
| | | fi |
| | | fi |
| | | } |
| | | |
| | | # hash string like Java String::hashCode |
| | | hash_string() { |
| | | str="${1:-}" h=0 |
| | | while [ -n "$str" ]; do |
| | | char="${str%"${str#?}"}" |
| | | h=$(((h * 31 + $(LC_CTYPE=C printf %d "'$char")) % 4294967296)) |
| | | str="${str#?}" |
| | | done |
| | | printf %x\\n $h |
| | | } |
| | | |
| | | verbose() { :; } |
| | | [ "${MVNW_VERBOSE-}" != true ] || verbose() { printf %s\\n "${1-}"; } |
| | | |
| | | die() { |
| | | printf %s\\n "$1" >&2 |
| | | exit 1 |
| | | } |
| | | |
| | | trim() { |
| | | # MWRAPPER-139: |
| | | # Trims trailing and leading whitespace, carriage returns, tabs, and linefeeds. |
| | | # Needed for removing poorly interpreted newline sequences when running in more |
| | | # exotic environments such as mingw bash on Windows. |
| | | printf "%s" "${1}" | tr -d '[:space:]' |
| | | } |
| | | |
| | | # parse distributionUrl and optional distributionSha256Sum, requires .mvn/wrapper/maven-wrapper.properties |
| | | while IFS="=" read -r key value; do |
| | | case "${key-}" in |
| | | distributionUrl) distributionUrl=$(trim "${value-}") ;; |
| | | distributionSha256Sum) distributionSha256Sum=$(trim "${value-}") ;; |
| | | esac |
| | | done <"${0%/*}/.mvn/wrapper/maven-wrapper.properties" |
| | | [ -n "${distributionUrl-}" ] || die "cannot read distributionUrl property in ${0%/*}/.mvn/wrapper/maven-wrapper.properties" |
| | | |
| | | case "${distributionUrl##*/}" in |
| | | maven-mvnd-*bin.*) |
| | | MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ |
| | | case "${PROCESSOR_ARCHITECTURE-}${PROCESSOR_ARCHITEW6432-}:$(uname -a)" in |
| | | *AMD64:CYGWIN* | *AMD64:MINGW*) distributionPlatform=windows-amd64 ;; |
| | | :Darwin*x86_64) distributionPlatform=darwin-amd64 ;; |
| | | :Darwin*arm64) distributionPlatform=darwin-aarch64 ;; |
| | | :Linux*x86_64*) distributionPlatform=linux-amd64 ;; |
| | | *) |
| | | echo "Cannot detect native platform for mvnd on $(uname)-$(uname -m), use pure java version" >&2 |
| | | distributionPlatform=linux-amd64 |
| | | ;; |
| | | esac |
| | | distributionUrl="${distributionUrl%-bin.*}-$distributionPlatform.zip" |
| | | ;; |
| | | maven-mvnd-*) MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ ;; |
| | | *) MVN_CMD="mvn${0##*/mvnw}" _MVNW_REPO_PATTERN=/org/apache/maven/ ;; |
| | | esac |
| | | |
| | | # apply MVNW_REPOURL and calculate MAVEN_HOME |
| | | # maven home pattern: ~/.m2/wrapper/dists/{apache-maven-<version>,maven-mvnd-<version>-<platform>}/<hash> |
| | | [ -z "${MVNW_REPOURL-}" ] || distributionUrl="$MVNW_REPOURL$_MVNW_REPO_PATTERN${distributionUrl#*"$_MVNW_REPO_PATTERN"}" |
| | | distributionUrlName="${distributionUrl##*/}" |
| | | distributionUrlNameMain="${distributionUrlName%.*}" |
| | | distributionUrlNameMain="${distributionUrlNameMain%-bin}" |
| | | MAVEN_USER_HOME="${MAVEN_USER_HOME:-${HOME}/.m2}" |
| | | MAVEN_HOME="${MAVEN_USER_HOME}/wrapper/dists/${distributionUrlNameMain-}/$(hash_string "$distributionUrl")" |
| | | |
| | | exec_maven() { |
| | | unset MVNW_VERBOSE MVNW_USERNAME MVNW_PASSWORD MVNW_REPOURL || : |
| | | exec "$MAVEN_HOME/bin/$MVN_CMD" "$@" || die "cannot exec $MAVEN_HOME/bin/$MVN_CMD" |
| | | } |
| | | |
| | | if [ -d "$MAVEN_HOME" ]; then |
| | | verbose "found existing MAVEN_HOME at $MAVEN_HOME" |
| | | exec_maven "$@" |
| | | fi |
| | | |
| | | case "${distributionUrl-}" in |
| | | *?-bin.zip | *?maven-mvnd-?*-?*.zip) ;; |
| | | *) die "distributionUrl is not valid, must match *-bin.zip or maven-mvnd-*.zip, but found '${distributionUrl-}'" ;; |
| | | esac |
| | | |
| | | # prepare tmp dir |
| | | if TMP_DOWNLOAD_DIR="$(mktemp -d)" && [ -d "$TMP_DOWNLOAD_DIR" ]; then |
| | | clean() { rm -rf -- "$TMP_DOWNLOAD_DIR"; } |
| | | trap clean HUP INT TERM EXIT |
| | | else |
| | | die "cannot create temp dir" |
| | | fi |
| | | |
| | | mkdir -p -- "${MAVEN_HOME%/*}" |
| | | |
| | | # Download and Install Apache Maven |
| | | verbose "Couldn't find MAVEN_HOME, downloading and installing it ..." |
| | | verbose "Downloading from: $distributionUrl" |
| | | verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName" |
| | | |
| | | # select .zip or .tar.gz |
| | | if ! command -v unzip >/dev/null; then |
| | | distributionUrl="${distributionUrl%.zip}.tar.gz" |
| | | distributionUrlName="${distributionUrl##*/}" |
| | | fi |
| | | |
| | | # verbose opt |
| | | __MVNW_QUIET_WGET=--quiet __MVNW_QUIET_CURL=--silent __MVNW_QUIET_UNZIP=-q __MVNW_QUIET_TAR='' |
| | | [ "${MVNW_VERBOSE-}" != true ] || __MVNW_QUIET_WGET='' __MVNW_QUIET_CURL='' __MVNW_QUIET_UNZIP='' __MVNW_QUIET_TAR=v |
| | | |
| | | # normalize http auth |
| | | case "${MVNW_PASSWORD:+has-password}" in |
| | | '') MVNW_USERNAME='' MVNW_PASSWORD='' ;; |
| | | has-password) [ -n "${MVNW_USERNAME-}" ] || MVNW_USERNAME='' MVNW_PASSWORD='' ;; |
| | | esac |
| | | |
| | | if [ -z "${MVNW_USERNAME-}" ] && command -v wget >/dev/null; then |
| | | verbose "Found wget ... using wget" |
| | | wget ${__MVNW_QUIET_WGET:+"$__MVNW_QUIET_WGET"} "$distributionUrl" -O "$TMP_DOWNLOAD_DIR/$distributionUrlName" || die "wget: Failed to fetch $distributionUrl" |
| | | elif [ -z "${MVNW_USERNAME-}" ] && command -v curl >/dev/null; then |
| | | verbose "Found curl ... using curl" |
| | | curl ${__MVNW_QUIET_CURL:+"$__MVNW_QUIET_CURL"} -f -L -o "$TMP_DOWNLOAD_DIR/$distributionUrlName" "$distributionUrl" || die "curl: Failed to fetch $distributionUrl" |
| | | elif set_java_home; then |
| | | verbose "Falling back to use Java to download" |
| | | javaSource="$TMP_DOWNLOAD_DIR/Downloader.java" |
| | | targetZip="$TMP_DOWNLOAD_DIR/$distributionUrlName" |
| | | cat >"$javaSource" <<-END |
| | | public class Downloader extends java.net.Authenticator |
| | | { |
| | | protected java.net.PasswordAuthentication getPasswordAuthentication() |
| | | { |
| | | return new java.net.PasswordAuthentication( System.getenv( "MVNW_USERNAME" ), System.getenv( "MVNW_PASSWORD" ).toCharArray() ); |
| | | } |
| | | public static void main( String[] args ) throws Exception |
| | | { |
| | | setDefault( new Downloader() ); |
| | | java.nio.file.Files.copy( java.net.URI.create( args[0] ).toURL().openStream(), java.nio.file.Paths.get( args[1] ).toAbsolutePath().normalize() ); |
| | | } |
| | | } |
| | | END |
| | | # For Cygwin/MinGW, switch paths to Windows format before running javac and java |
| | | verbose " - Compiling Downloader.java ..." |
| | | "$(native_path "$JAVACCMD")" "$(native_path "$javaSource")" || die "Failed to compile Downloader.java" |
| | | verbose " - Running Downloader.java ..." |
| | | "$(native_path "$JAVACMD")" -cp "$(native_path "$TMP_DOWNLOAD_DIR")" Downloader "$distributionUrl" "$(native_path "$targetZip")" |
| | | fi |
| | | |
| | | # If specified, validate the SHA-256 sum of the Maven distribution zip file |
| | | if [ -n "${distributionSha256Sum-}" ]; then |
| | | distributionSha256Result=false |
| | | if [ "$MVN_CMD" = mvnd.sh ]; then |
| | | echo "Checksum validation is not supported for maven-mvnd." >&2 |
| | | echo "Please disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2 |
| | | exit 1 |
| | | elif command -v sha256sum >/dev/null; then |
| | | if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | sha256sum -c >/dev/null 2>&1; then |
| | | distributionSha256Result=true |
| | | fi |
| | | elif command -v shasum >/dev/null; then |
| | | if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | shasum -a 256 -c >/dev/null 2>&1; then |
| | | distributionSha256Result=true |
| | | fi |
| | | else |
| | | echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." >&2 |
| | | echo "Please install either command, or disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2 |
| | | exit 1 |
| | | fi |
| | | if [ $distributionSha256Result = false ]; then |
| | | echo "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised." >&2 |
| | | echo "If you updated your Maven version, you need to update the specified distributionSha256Sum property." >&2 |
| | | exit 1 |
| | | fi |
| | | fi |
| | | |
| | | # unzip and move |
| | | if command -v unzip >/dev/null; then |
| | | unzip ${__MVNW_QUIET_UNZIP:+"$__MVNW_QUIET_UNZIP"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -d "$TMP_DOWNLOAD_DIR" || die "failed to unzip" |
| | | else |
| | | tar xzf${__MVNW_QUIET_TAR:+"$__MVNW_QUIET_TAR"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -C "$TMP_DOWNLOAD_DIR" || die "failed to untar" |
| | | fi |
| | | printf %s\\n "$distributionUrl" >"$TMP_DOWNLOAD_DIR/$distributionUrlNameMain/mvnw.url" |
| | | mv -- "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" "$MAVEN_HOME" || [ -d "$MAVEN_HOME" ] || die "fail to move MAVEN_HOME" |
| | | |
| | | clean || : |
| | | exec_maven "$@" |
New file |
| | |
| | | <# : batch portion |
| | | @REM ---------------------------------------------------------------------------- |
| | | @REM Licensed to the Apache Software Foundation (ASF) under one |
| | | @REM or more contributor license agreements. See the NOTICE file |
| | | @REM distributed with this work for additional information |
| | | @REM regarding copyright ownership. The ASF licenses this file |
| | | @REM to you under the Apache License, Version 2.0 (the |
| | | @REM "License"); you may not use this file except in compliance |
| | | @REM with the License. You may obtain a copy of the License at |
| | | @REM |
| | | @REM http://www.apache.org/licenses/LICENSE-2.0 |
| | | @REM |
| | | @REM Unless required by applicable law or agreed to in writing, |
| | | @REM software distributed under the License is distributed on an |
| | | @REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| | | @REM KIND, either express or implied. See the License for the |
| | | @REM specific language governing permissions and limitations |
| | | @REM under the License. |
| | | @REM ---------------------------------------------------------------------------- |
| | | |
| | | @REM ---------------------------------------------------------------------------- |
| | | @REM Apache Maven Wrapper startup batch script, version 3.3.2 |
| | | @REM |
| | | @REM Optional ENV vars |
| | | @REM MVNW_REPOURL - repo url base for downloading maven distribution |
| | | @REM MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven |
| | | @REM MVNW_VERBOSE - true: enable verbose log; others: silence the output |
| | | @REM ---------------------------------------------------------------------------- |
| | | |
| | | @IF "%__MVNW_ARG0_NAME__%"=="" (SET __MVNW_ARG0_NAME__=%~nx0) |
| | | @SET __MVNW_CMD__= |
| | | @SET __MVNW_ERROR__= |
| | | @SET __MVNW_PSMODULEP_SAVE=%PSModulePath% |
| | | @SET PSModulePath= |
| | | @FOR /F "usebackq tokens=1* delims==" %%A IN (`powershell -noprofile "& {$scriptDir='%~dp0'; $script='%__MVNW_ARG0_NAME__%'; icm -ScriptBlock ([Scriptblock]::Create((Get-Content -Raw '%~f0'))) -NoNewScope}"`) DO @( |
| | | IF "%%A"=="MVN_CMD" (set __MVNW_CMD__=%%B) ELSE IF "%%B"=="" (echo %%A) ELSE (echo %%A=%%B) |
| | | ) |
| | | @SET PSModulePath=%__MVNW_PSMODULEP_SAVE% |
| | | @SET __MVNW_PSMODULEP_SAVE= |
| | | @SET __MVNW_ARG0_NAME__= |
| | | @SET MVNW_USERNAME= |
| | | @SET MVNW_PASSWORD= |
| | | @IF NOT "%__MVNW_CMD__%"=="" (%__MVNW_CMD__% %*) |
| | | @echo Cannot start maven from wrapper >&2 && exit /b 1 |
| | | @GOTO :EOF |
| | | : end batch / begin powershell #> |
| | | |
| | | $ErrorActionPreference = "Stop" |
| | | if ($env:MVNW_VERBOSE -eq "true") { |
| | | $VerbosePreference = "Continue" |
| | | } |
| | | |
| | | # calculate distributionUrl, requires .mvn/wrapper/maven-wrapper.properties |
| | | $distributionUrl = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionUrl |
| | | if (!$distributionUrl) { |
| | | Write-Error "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties" |
| | | } |
| | | |
| | | switch -wildcard -casesensitive ( $($distributionUrl -replace '^.*/','') ) { |
| | | "maven-mvnd-*" { |
| | | $USE_MVND = $true |
| | | $distributionUrl = $distributionUrl -replace '-bin\.[^.]*$',"-windows-amd64.zip" |
| | | $MVN_CMD = "mvnd.cmd" |
| | | break |
| | | } |
| | | default { |
| | | $USE_MVND = $false |
| | | $MVN_CMD = $script -replace '^mvnw','mvn' |
| | | break |
| | | } |
| | | } |
| | | |
| | | # apply MVNW_REPOURL and calculate MAVEN_HOME |
| | | # maven home pattern: ~/.m2/wrapper/dists/{apache-maven-<version>,maven-mvnd-<version>-<platform>}/<hash> |
| | | if ($env:MVNW_REPOURL) { |
| | | $MVNW_REPO_PATTERN = if ($USE_MVND) { "/org/apache/maven/" } else { "/maven/mvnd/" } |
| | | $distributionUrl = "$env:MVNW_REPOURL$MVNW_REPO_PATTERN$($distributionUrl -replace '^.*'+$MVNW_REPO_PATTERN,'')" |
| | | } |
| | | $distributionUrlName = $distributionUrl -replace '^.*/','' |
| | | $distributionUrlNameMain = $distributionUrlName -replace '\.[^.]*$','' -replace '-bin$','' |
| | | $MAVEN_HOME_PARENT = "$HOME/.m2/wrapper/dists/$distributionUrlNameMain" |
| | | if ($env:MAVEN_USER_HOME) { |
| | | $MAVEN_HOME_PARENT = "$env:MAVEN_USER_HOME/wrapper/dists/$distributionUrlNameMain" |
| | | } |
| | | $MAVEN_HOME_NAME = ([System.Security.Cryptography.MD5]::Create().ComputeHash([byte[]][char[]]$distributionUrl) | ForEach-Object {$_.ToString("x2")}) -join '' |
| | | $MAVEN_HOME = "$MAVEN_HOME_PARENT/$MAVEN_HOME_NAME" |
| | | |
| | | if (Test-Path -Path "$MAVEN_HOME" -PathType Container) { |
| | | Write-Verbose "found existing MAVEN_HOME at $MAVEN_HOME" |
| | | Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD" |
| | | exit $? |
| | | } |
| | | |
| | | if (! $distributionUrlNameMain -or ($distributionUrlName -eq $distributionUrlNameMain)) { |
| | | Write-Error "distributionUrl is not valid, must end with *-bin.zip, but found $distributionUrl" |
| | | } |
| | | |
| | | # prepare tmp dir |
| | | $TMP_DOWNLOAD_DIR_HOLDER = New-TemporaryFile |
| | | $TMP_DOWNLOAD_DIR = New-Item -Itemtype Directory -Path "$TMP_DOWNLOAD_DIR_HOLDER.dir" |
| | | $TMP_DOWNLOAD_DIR_HOLDER.Delete() | Out-Null |
| | | trap { |
| | | if ($TMP_DOWNLOAD_DIR.Exists) { |
| | | try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null } |
| | | catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" } |
| | | } |
| | | } |
| | | |
| | | New-Item -Itemtype Directory -Path "$MAVEN_HOME_PARENT" -Force | Out-Null |
| | | |
| | | # Download and Install Apache Maven |
| | | Write-Verbose "Couldn't find MAVEN_HOME, downloading and installing it ..." |
| | | Write-Verbose "Downloading from: $distributionUrl" |
| | | Write-Verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName" |
| | | |
| | | $webclient = New-Object System.Net.WebClient |
| | | if ($env:MVNW_USERNAME -and $env:MVNW_PASSWORD) { |
| | | $webclient.Credentials = New-Object System.Net.NetworkCredential($env:MVNW_USERNAME, $env:MVNW_PASSWORD) |
| | | } |
| | | [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 |
| | | $webclient.DownloadFile($distributionUrl, "$TMP_DOWNLOAD_DIR/$distributionUrlName") | Out-Null |
| | | |
| | | # If specified, validate the SHA-256 sum of the Maven distribution zip file |
| | | $distributionSha256Sum = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionSha256Sum |
| | | if ($distributionSha256Sum) { |
| | | if ($USE_MVND) { |
| | | Write-Error "Checksum validation is not supported for maven-mvnd. `nPlease disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." |
| | | } |
| | | Import-Module $PSHOME\Modules\Microsoft.PowerShell.Utility -Function Get-FileHash |
| | | if ((Get-FileHash "$TMP_DOWNLOAD_DIR/$distributionUrlName" -Algorithm SHA256).Hash.ToLower() -ne $distributionSha256Sum) { |
| | | Write-Error "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised. If you updated your Maven version, you need to update the specified distributionSha256Sum property." |
| | | } |
| | | } |
| | | |
| | | # unzip and move |
| | | Expand-Archive "$TMP_DOWNLOAD_DIR/$distributionUrlName" -DestinationPath "$TMP_DOWNLOAD_DIR" | Out-Null |
| | | Rename-Item -Path "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" -NewName $MAVEN_HOME_NAME | Out-Null |
| | | try { |
| | | Move-Item -Path "$TMP_DOWNLOAD_DIR/$MAVEN_HOME_NAME" -Destination $MAVEN_HOME_PARENT | Out-Null |
| | | } catch { |
| | | if (! (Test-Path -Path "$MAVEN_HOME" -PathType Container)) { |
| | | Write-Error "fail to move MAVEN_HOME" |
| | | } |
| | | } finally { |
| | | try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null } |
| | | catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" } |
| | | } |
| | | |
| | | Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD" |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| | | xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> |
| | | <modelVersion>4.0.0</modelVersion> |
| | | <parent> |
| | | <artifactId>pipIrr-mw</artifactId> |
| | | <groupId>com.dy</groupId> |
| | | <version>1.0.0</version> |
| | | <relativePath>../pom.xml</relativePath> |
| | | </parent> |
| | | |
| | | <packaging>jar</packaging> |
| | | <artifactId>pipIrr-mw-rtu3rd</artifactId> |
| | | <version>1.0.0</version> |
| | | <name>pipIrr-mw-rtu3rd</name> |
| | | <description>ç¬¬ä¸æ¹æ¥å
¥ä¸é´ä»¶</description> |
| | | |
| | | <dependencies> |
| | | <dependency> |
| | | <groupId>org.springframework.boot</groupId> |
| | | <artifactId>spring-boot-starter-web</artifactId> |
| | | <exclusions> |
| | | <exclusion> |
| | | <groupId>org.springframework.boot</groupId> |
| | | <artifactId>spring-boot-starter-logging</artifactId> |
| | | </exclusion> |
| | | </exclusions> |
| | | </dependency> |
| | | <!-- 卿å è½½æ°ç¼è¯çç±» --> |
| | | <dependency> |
| | | <groupId>org.springframework.boot</groupId> |
| | | <artifactId>spring-boot-devtools</artifactId> |
| | | <scope>runtime</scope> |
| | | </dependency> |
| | | |
| | | <!-- apache mina --> |
| | | <dependency> |
| | | <groupId>org.apache.mina</groupId> |
| | | <artifactId>mina-core</artifactId> |
| | | <version>2.2.2</version> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>org.slf4j</groupId> |
| | | <artifactId>slf4j-api</artifactId> |
| | | <version>2.0.7</version> |
| | | </dependency> |
| | | |
| | | <!-- é¿éfastjson --> |
| | | <dependency> |
| | | <groupId>com.alibaba.fastjson2</groupId> |
| | | <artifactId>fastjson2</artifactId> |
| | | <version>2.0.40</version> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>com.alibaba.fastjson2</groupId> |
| | | <artifactId>fastjson2-extension-spring6</artifactId> |
| | | <version>2.0.40</version> |
| | | </dependency> |
| | | |
| | | <!-- æµè¯ --> |
| | | <dependency> |
| | | <groupId>org.springframework.boot</groupId> |
| | | <artifactId>spring-boot-starter-test</artifactId> |
| | | <scope>test</scope> |
| | | </dependency> |
| | | </dependencies> |
| | | |
| | | <build> |
| | | <plugins> |
| | | <!-- çæä¸å
å«ä¾èµjarç坿§è¡jarå
|
| | | <plugin> |
| | | !- spring bootæä¾çmavenæå
æä»¶ - |
| | | <groupId>org.springframework.boot</groupId> |
| | | <artifactId>spring-boot-maven-plugin</artifactId> |
| | | <executions> |
| | | <execution> |
| | | !- |
| | | <goals> |
| | | <goal>repackage</goal> |
| | | </goals> |
| | | - |
| | | <configuration> |
| | | !- ä¸å çè¯æç»å
å为: ${artifactId}-${version}.jar, å äºçè¯æç»å
å: ${artifactId}-${version}-${classifier}.jar - |
| | | <classifier>execute</classifier> |
| | | !- 䏿å®çæè·¯å¾çè¯, é»è®¤ä¿åå¨ ${build.directory} ä¸ - |
| | | <outputDirectory>${project.build.directory}/execute</outputDirectory> |
| | | <finalName>${artifactId}-${version}</finalName> |
| | | <layout>ZIP</layout> |
| | | <mainClass>com.dy.pipIrrBase.PipIrrBaseApplication</mainClass> |
| | | <includes> |
| | | <include> |
| | | <groupId>com.dy</groupId> |
| | | <artifactId>pipIrr-common</artifactId> |
| | | </include> |
| | | <include> |
| | | <groupId>com.dy</groupId> |
| | | <artifactId>pipIrr-global</artifactId> |
| | | </include> |
| | | </includes> |
| | | <excludes> |
| | | <exclude> |
| | | <groupId>org.projectlombok</groupId> |
| | | <artifactId>lombok</artifactId> |
| | | </exclude> |
| | | </excludes> |
| | | </configuration> |
| | | </execution> |
| | | </executions> |
| | | |
| | | </plugin> |
| | | --> |
| | | <!-- æ·è´ä¾èµçjarå
å°libç®å½--> |
| | | <plugin> |
| | | <groupId>org.springframework.boot</groupId> |
| | | <artifactId>spring-boot-maven-plugin</artifactId> |
| | | <executions> |
| | | <execution> |
| | | <configuration> |
| | | <!-- ä¸å çè¯æç»å
å为: ${artifactId}-${version}.jar, å äºçè¯æç»å
å: ${artifactId}-${version}-${classifier}.jar |
| | | <classifier>execute</classifier> |
| | | --> |
| | | <!-- ${project.build.directory}æ¯mavenåéï¼å
ç½®çï¼è¡¨ç¤ºtargetç®å½,妿ä¸åï¼å°å¨æ ¹ç®å½ä¸å建/lib --> |
| | | <outputDirectory>${project.build.directory}/lib</outputDirectory> |
| | | <!-- excludeTransitive:æ¯å¦ä¸å
å«é´æ¥ä¾èµå
ï¼æ¯å¦æä»¬ä¾èµAï¼ä½æ¯Aåä¾èµäºBï¼æä»¬æ¯å¦ä¹è¦æBæè¿å» é»è®¤ä¸æ--> |
| | | <excludeTransitive>false</excludeTransitive> |
| | | <!-- å¤å¶çjaræä»¶å»æçæ¬ä¿¡æ¯ --> |
| | | <stripVersion>false</stripVersion> |
| | | <finalName>${project.artifactId}-${project.version}</finalName> |
| | | <layout>ZIP</layout> |
| | | <mainClass>com.dy.rtuMw.PipIrrMwAcceptApplication</mainClass> |
| | | <includes> |
| | | <include> |
| | | <groupId>com.dy</groupId> |
| | | <artifactId>pipIrr-common</artifactId> |
| | | </include> |
| | | <include> |
| | | <groupId>com.dy</groupId> |
| | | <artifactId>pipIrr-global</artifactId> |
| | | </include> |
| | | </includes> |
| | | <excludes> |
| | | <exclude> |
| | | <groupId>org.projectlombok</groupId> |
| | | <artifactId>lombok</artifactId> |
| | | </exclude> |
| | | </excludes> |
| | | </configuration> |
| | | </execution> |
| | | </executions> |
| | | </plugin> |
| | | |
| | | <plugin> |
| | | <!-- 设置javaç¼è¯çæ¬ï¼è¿è¡ç¯å¢çæ¬ --> |
| | | <groupId>org.apache.maven.plugins</groupId> |
| | | <artifactId>maven-compiler-plugin</artifactId> |
| | | <!-- sourceï¼ æºä»£ç ç¼è¯çæ¬ï¼targetï¼ ç®æ å¹³å°ç¼è¯çæ¬ï¼encodingï¼ å符éç¼ç ã --> |
| | | <configuration> |
| | | <source>${java.version}</source> |
| | | <target>${java.version}</target> |
| | | <encoding>${encoding}</encoding> |
| | | </configuration> |
| | | </plugin> |
| | | <plugin> |
| | | <!-- è§£å³èµæºæä»¶çç¼ç é®é¢ --> |
| | | <groupId>org.apache.maven.plugins</groupId> |
| | | <artifactId>maven-resources-plugin</artifactId> |
| | | <configuration> |
| | | <encoding>${encoding}</encoding> |
| | | </configuration> |
| | | </plugin> |
| | | <plugin> |
| | | <!-- mavenéæ§è¡æµè¯ç¨ä¾çæä»¶ --> |
| | | <groupId>org.apache.maven.plugins</groupId> |
| | | <artifactId>maven-surefire-plugin</artifactId> |
| | | <configuration> |
| | | <skipTests>true</skipTests> |
| | | </configuration> |
| | | </plugin> |
| | | <plugin> |
| | | <!-- ä¸é¢è§£å³ï¼å½è¿è¡Maven Lifecycle packageæ¶æ¥éï¼Could not find artifact org.apache.mina:mina-core:bundle:2.2.1 in maven (https://repo1.maven.org/maven2/)--> |
| | | <groupId>org.apache.felix</groupId> |
| | | <artifactId>maven-bundle-plugin</artifactId> |
| | | <extensions>true</extensions> |
| | | </plugin> |
| | | </plugins> |
| | | </build> |
| | | </project> |
New file |
| | |
| | | package com.dy.rtuMw3rd; |
| | | |
| | | |
| | | import com.dy.rtuMw3rd.http4Xjnk.HttpUnitAdapter; |
| | | import com.dy.rtuMw3rd.http4Xjnk.HttpUnitConfigVo; |
| | | import com.dy.rtuMw3rd.tcp4Bjnl.TcpClUnitAdapter; |
| | | import com.dy.rtuMw3rd.tcp4Bjnl.TcpClUnitConfigVo; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/03/18 15:49 |
| | | * @Description |
| | | */ |
| | | public class AdapterImp_HttpUnit implements HttpUnitAdapter { |
| | | |
| | | private HttpUnitConfigVo configVo ; |
| | | |
| | | public HttpUnitConfigVo getConfig() { |
| | | return configVo; |
| | | } |
| | | |
| | | public void setConfig(HttpUnitConfigVo configVo){ |
| | | this.configVo = configVo ; |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd; |
| | | |
| | | |
| | | import com.dy.rtuMw3rd.tcp4Bjnl.TcpClUnitAdapter; |
| | | import com.dy.rtuMw3rd.tcp4Bjnl.TcpClUnitConfigVo; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/03/18 15:49 |
| | | * @Description |
| | | */ |
| | | public class AdapterImp_TcpClUnit implements TcpClUnitAdapter { |
| | | |
| | | private TcpClUnitConfigVo configVo ; |
| | | |
| | | public TcpClUnitConfigVo getConfig() { |
| | | return configVo; |
| | | } |
| | | |
| | | public void setConfig(TcpClUnitConfigVo configVo){ |
| | | this.configVo = configVo ; |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd; |
| | | |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.boot.CommandLineRunner; |
| | | import org.springframework.boot.autoconfigure.SpringBootApplication; |
| | | import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; |
| | | import org.springframework.boot.builder.SpringApplicationBuilder; |
| | | import org.springframework.context.annotation.ComponentScan; |
| | | import org.springframework.context.annotation.EnableAspectJAutoProxy; |
| | | import org.springframework.context.annotation.FilterType; |
| | | |
| | | |
| | | @Slf4j |
| | | @EnableAspectJAutoProxy |
| | | @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) //ç¦æ¢å¯å¨æ°æ®åºè¿æ¥æ± |
| | | @ComponentScan(basePackages = {"com.dy.common", "com.dy.pipIrrGlobal", "com.dy.rtuMw3rd"}, |
| | | excludeFilters = { |
| | | @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = { |
| | | com.dy.common.apiDoc.SpringApiConfig.class, //ä¸ç§æé¤ç±»çæ¹å¼ |
| | | com.dy.pipIrrGlobal.config.DingTalk.class |
| | | }), |
| | | @ComponentScan.Filter(type = FilterType.REGEX, pattern = { |
| | | //äºç§æé¤ç±»çæ¹å¼ï¼åæ£å表达å¼ï¼éè¦å¯¹ç®æ ç±»çå®å
¨éå®åå®å
¨å¹é
ï¼å¦åä¸çæ |
| | | "com.dy.common.aop..*", |
| | | "com.dy.common.apiDoc..*", |
| | | "com.dy.common.multiDataSource..*", |
| | | "com.dy.common.mybatis..*", |
| | | "com.dy.common.singleDataSource..*", |
| | | "com.dy.common.webFilter..*", |
| | | "com.dy.common.webListener..*", |
| | | "com.dy.pipIrrGlobal.webCtrls..*" |
| | | }) |
| | | } |
| | | ) |
| | | public class PipIrrMwRtu3rdApplication implements CommandLineRunner { |
| | | |
| | | public static void main(String[] args) { |
| | | new SpringApplicationBuilder(PipIrrMwRtu3rdApplication.class).run(args); |
| | | } |
| | | |
| | | /** |
| | | * Spring容å¨å¯å¨å®æåï¼æ§è¡ä¸é¢æ¹æ³ |
| | | * @param args åæ° |
| | | * @throws Exception å¼å¸¸ |
| | | */ |
| | | @Override |
| | | public void run(String... args) throws Exception { |
| | | try{ |
| | | //çå¾
ä¸ä¸ |
| | | Thread.sleep(500L); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | finally { |
| | | this.startMwSv() ; |
| | | } |
| | | } |
| | | private Server sv ; |
| | | @Autowired |
| | | public void setSv(Server sv){ |
| | | this.sv = sv ; |
| | | } |
| | | private void startMwSv(){ |
| | | if(sv != null){ |
| | | sv.startServer(); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd; |
| | | |
| | | import com.dy.common.mw.UnitInterface; |
| | | import com.dy.common.util.ConfigXml4Springboot; |
| | | import com.dy.rtuMw3rd.http4Xjnk.HttpUnit; |
| | | import com.dy.rtuMw3rd.http4Xjnk.HttpUnitConfigVo; |
| | | import com.dy.rtuMw3rd.tcp4Bjnl.TcpClUnit; |
| | | import com.dy.rtuMw3rd.tcp4Bjnl.TcpClUnitConfigVo; |
| | | import org.jdom2.Document; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.core.io.ResourceLoader; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/03/18 15:49 |
| | | * @Description |
| | | */ |
| | | @Component |
| | | public class Server { |
| | | @Autowired |
| | | protected ResourceLoader resourceLoader ; |
| | | |
| | | private ConfigXml4Springboot conf = null ; |
| | | private Document doc = null ; |
| | | private boolean showStartInfo = false ; |
| | | |
| | | private List<UnitInterface> units = new ArrayList<UnitInterface>() ; |
| | | |
| | | /** |
| | | * å¯å¨æå¡ |
| | | */ |
| | | public void startServer() { |
| | | long start = System.currentTimeMillis(); |
| | | try { |
| | | this.conf = new ConfigXml4Springboot() ; |
| | | this.doc = this.conf.createDom(resourceLoader, "config.xml") ; |
| | | //////////////// |
| | | //æå¡ é
ç½® |
| | | this.showStartInfo = this.conf.getSetAttrBoolean(this.doc, "config.server", "showStartInfo", null, null) ; |
| | | |
| | | this.startUnits() ; |
| | | |
| | | String svName ; |
| | | try{ |
| | | svName = this.conf.getSetAttrTxt(this.doc, "config.server", "name", null, false, null) ; |
| | | }catch(Exception e){ |
| | | svName = "" ; |
| | | } |
| | | |
| | | String company ; |
| | | try{ |
| | | company = this.conf.getSetAttrTxt(this.doc, "config.server", "company", null, true, null) ; |
| | | }catch(Exception e){ |
| | | company = "" ; |
| | | } |
| | | System.out.println("0O0OOOOOOOOO00 OOOOOOOO OOOOOOOO") ; |
| | | System.out.println("@@@@@@@@@@@@@@@@@#O $@@@@@@@@& @@@@@@@@#") ; |
| | | System.out.println("@@@@@@@@@@@@@@@@@@@@# @@@@@@@@# $@@@@@@@@&") ; |
| | | System.out.println("@@@@@@@@@@@@@@@@@@@@@@# #@@@@@@@@@@@@@@@@O") ; |
| | | System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@ &@@@@@@@@@@@@@@") ; |
| | | System.out.println("@@@@@@@$ $@@@@@@@@@& O@@@@@@@@@@@#") ; |
| | | System.out.println("@@@@@@@$ @@@@@@@@@ @@@@@@@@@& " + svName ) ; |
| | | System.out.println("@@@@@@@$ O@@@@@@@@@ &@@@@@@@@") ; |
| | | |
| | | if(ServerProperties.BjnlServerIp != null){ |
| | | System.out.println("@@@@@@@$ O@@@@@@@@@ &@@@@@@@@ åäº¬åææå¡ " + (ServerProperties.BjnlServerIp + " " + ServerProperties.BjnlServerPort) ) ; |
| | | }else{ |
| | | System.out.println("@@@@@@@$ O@@@@@@@@@ &@@@@@@@@") ; |
| | | } |
| | | if(ServerProperties.XjnkServerHttpsBaseUrl != null){ |
| | | System.out.println("@@@@@@@$ O@@@@@@@@@ &@@@@@@@@ æ°çåå¦--æå¡ " + (ServerProperties.XjnkServerHttpsBaseUrl) ) ; |
| | | }else{ |
| | | System.out.println("@@@@@@@$ O@@@@@@@@@ &@@@@@@@@") ; |
| | | } |
| | | System.out.println("@@@@@@@$ #@@@@@@@@@$ &@@@@@@@@") ; |
| | | System.out.println("@@@@@@@@@@@@@@@@@@@@@@@# &@@@@@@@@ Running in standalone mode" ) ; |
| | | System.out.println("@@@@@@@@@@@@@@@@@@@@@@& &@@@@@@@@ Startup in " + (System.currentTimeMillis() - start) + " MS" ) ; |
| | | System.out.println("@@@@@@@@@@@@@@@@@@@@# &@@@@@@@@ " + company) ; |
| | | System.out.println("@@@@@@@@@@@@@@@@@#O &@@@@@@@@") ; |
| | | |
| | | }catch(Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | |
| | | private void startUnits() { |
| | | try { |
| | | // /////////////// |
| | | // http 模å |
| | | HttpUnitConfigVo httpVo = new HttpUnitConfigVo(); |
| | | httpVo.httpsBaseUr = this.conf.getSetAttrTxt(this.doc, "config.xjnk", "httpsBaseUrl", null, false, null) ; |
| | | httpVo.appid = this.conf.getSetAttrTxt(this.doc, "config.xjnk", "appid", null, false, null) ; |
| | | httpVo.secret = this.conf.getSetAttrTxt(this.doc, "config.xjnk", "secret", null, false, null) ; |
| | | httpVo.flushDataFromSvInterval = conf.getSetAttrPlusInt(this.doc, "config.xjnk", "flushDataFromSvInterval", null, 1, 7200000, null) ; |
| | | |
| | | ServerProperties.XjnkServerHttpsBaseUrl = httpVo.httpsBaseUr ; |
| | | |
| | | AdapterImp_HttpUnit httpAdapt = new AdapterImp_HttpUnit(); |
| | | httpAdapt.setConfig(httpVo); |
| | | HttpUnit httpUnit = HttpUnit.getInstance(); |
| | | httpUnit.setAdapter(httpAdapt); |
| | | httpUnit.start(obj -> { |
| | | }); |
| | | units.add(httpUnit) ; |
| | | |
| | | // /////////////// |
| | | // TCP 模å |
| | | TcpClUnitConfigVo tcpVo = new TcpClUnitConfigVo(); |
| | | tcpVo.BjnlServerIp = this.conf.getSetAttrTxt(this.doc, "config.bjnl", "ip", null, false, null) ; |
| | | tcpVo.BjnlServerPort = conf.getSetAttrPlusInt(this.doc, "config.bjnl", "port", null, 1, 65536, null) ; |
| | | tcpVo.BjnlConnectTimeout = conf.getSetAttrPlusInt(this.doc, "config.bjnl", "connectTimeout", null, 1, 65536, null) ; |
| | | tcpVo.BjnlApikey = this.conf.getSetAttrTxt(this.doc, "config.bjnl", "apikey", null, false, null) ; |
| | | tcpVo.BjnlSecretkey = this.conf.getSetAttrTxt(this.doc, "config.bjnl", "secretkey", null, false, null) ; |
| | | tcpVo.heartBeatInterval = conf.getSetAttrPlusInt(this.doc, "config.bjnl", "heartBeatInterval", null, 1, 3600000, null) ; |
| | | |
| | | ServerProperties.BjnlServerIp = tcpVo.BjnlServerIp ; |
| | | ServerProperties.BjnlServerPort = tcpVo.BjnlServerPort ; |
| | | |
| | | AdapterImp_TcpClUnit tcpAdapt = new AdapterImp_TcpClUnit(); |
| | | tcpAdapt.setConfig(tcpVo); |
| | | TcpClUnit tcpUnit = TcpClUnit.getInstance(); |
| | | tcpUnit.setAdapter(tcpAdapt); |
| | | tcpUnit.start(obj -> { |
| | | }); |
| | | units.add(tcpUnit) ; |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd; |
| | | |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/02/26 11:03 |
| | | * @Description |
| | | */ |
| | | public class ServerProperties { |
| | | public static String XjnkServerHttpsBaseUrl = "https://www.sshyun.com" ;//æå¡ç«¯httpsæå¡URL |
| | | public static String BjnlServerIp = "127.0.0.1" ;//æå¡ç«¯IP |
| | | public static Integer BjnlServerPort = 1234 ;//æå¡ç«¯ç«¯å£ |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd.http4Xjnk; |
| | | |
| | | import com.dy.rtuMw3rd.http4Xjnk.deal.XjnkDealer; |
| | | import com.dy.rtuMw3rd.http4Xjnk.protocol.statusPush.ControllerStatusVo; |
| | | import jakarta.servlet.http.HttpServletRequest; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/3/17 11:24 |
| | | * @Description |
| | | */ |
| | | @Slf4j |
| | | @RestController |
| | | @RequestMapping(path="xjnkCtrl") |
| | | public class HttpSvCtrl { |
| | | |
| | | private XjnkDealer dealer ; |
| | | @Autowired |
| | | private void setDealer(XjnkDealer dealer){ |
| | | this.dealer = dealer; |
| | | } |
| | | |
| | | @PostMapping(path = "receive") |
| | | public void receive(HttpServletRequest request, @RequestBody Map<String, Object> body){ |
| | | log.info("æ¥æ¶çæ°æ®ï¼", body); |
| | | ControllerStatusVo vo = ControllerStatusVo.may2Vo(body) ; |
| | | this.dealer.dealPush(vo); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd.http4Xjnk; |
| | | |
| | | import com.dy.common.mw.UnitAdapterInterface; |
| | | import com.dy.common.mw.UnitCallbackInterface; |
| | | import com.dy.common.mw.UnitInterface; |
| | | import com.dy.common.springUtil.SpringContextUtil; |
| | | import org.apache.logging.log4j.LogManager; |
| | | import org.apache.logging.log4j.Logger; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/3/19 15:14 |
| | | * @Description |
| | | */ |
| | | public class HttpUnit implements UnitInterface { |
| | | |
| | | private static final Logger log = LogManager.getLogger(HttpUnit.class) ; |
| | | |
| | | private static HttpUnit instance = new HttpUnit() ; |
| | | |
| | | public static HttpUnitAdapter adapter ; |
| | | public static HttpUnitConfigVo confVo ; |
| | | |
| | | private HttpUnit(){} ; |
| | | |
| | | public static HttpUnit getInstance(){ |
| | | return instance ; |
| | | } |
| | | |
| | | @Override |
| | | public void setAdapter(UnitAdapterInterface adapter) throws Exception { |
| | | if(adapter == null){ |
| | | throw new Exception("Http模åéé
å¨å¯¹è±¡ä¸è½ä¸ºç©ºï¼") ; |
| | | } |
| | | HttpUnit.adapter = (HttpUnitAdapter)adapter ; |
| | | HttpUnit.confVo = HttpUnit.adapter.getConfig() ; |
| | | if(HttpUnit.confVo == null){ |
| | | throw new Exception("Http模åé
置对象ä¸è½ä¸ºç©ºï¼") ; |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void start(UnitCallbackInterface callback) throws Exception { |
| | | System.out.println("Http模åæåå¯å¨"); |
| | | this.doStart(); |
| | | callback.call(null) ; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void stop(UnitCallbackInterface callback) throws Exception { |
| | | callback.call(null); |
| | | } |
| | | |
| | | private void doStart(){ |
| | | Worker w = SpringContextUtil.getBean(Worker.class) ; |
| | | w.setHttpsBaseUr(confVo.httpsBaseUr); |
| | | w.setAppid(confVo.appid); |
| | | w.setSecret(confVo.secret ); |
| | | w.setWorkInterval(confVo.flushDataFromSvInterval + 0L); |
| | | w.start(); |
| | | } |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd.http4Xjnk; |
| | | |
| | | import com.dy.common.mw.UnitAdapterInterface; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/3/19 15:15 |
| | | * @Description |
| | | */ |
| | | public interface HttpUnitAdapter extends UnitAdapterInterface { |
| | | |
| | | HttpUnitConfigVo getConfig() ; |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd.http4Xjnk; |
| | | |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/3/19 15:15 |
| | | * @Description |
| | | */ |
| | | @Data |
| | | public class HttpUnitConfigVo { |
| | | public String httpsBaseUr ; |
| | | public String appid ; |
| | | public String secret ; |
| | | public Integer flushDataFromSvInterval = 120000 ; |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd.http4Xjnk; |
| | | |
| | | import com.dy.common.util.HttpCallback; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.web.client.RestTemplate; |
| | | |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/3/17 11:14 |
| | | * @Description |
| | | */ |
| | | @Component() |
| | | public class HttpsRq extends HttpRq { |
| | | /** |
| | | * get请æ±ï¼è¿åjsonå
容 |
| | | * 忥 |
| | | * @param httpsBaseUrl |
| | | * @param params |
| | | * @param cb |
| | | * @throws Exception |
| | | */ |
| | | public void get4JsonBySync(String httpsBaseUrl, Map<String, String> params, HttpCallback cb) throws Exception { |
| | | super.get4JsonBySync(httpsBaseUrl, params, cb); |
| | | } |
| | | /** |
| | | * get请æ±ï¼è¿åjsonå
容 |
| | | * 弿¥ |
| | | * @param httpsBaseUrl |
| | | * @param params |
| | | * @param cb |
| | | * @throws Exception |
| | | */ |
| | | public void get4JsonByAsync(String httpsBaseUrl, Map<String, String> params, HttpCallback cb) throws Exception { |
| | | super.get4JsonByAsync(httpsBaseUrl, params, cb); |
| | | } |
| | | |
| | | /** |
| | | * get请æ±ï¼è¿åjsonå
容 |
| | | * 忥 |
| | | * @param httpsBaseUrl |
| | | * @param params |
| | | * @param cb |
| | | * @throws Exception |
| | | */ |
| | | public void post4JsonBySync(String httpsBaseUrl, Map<String, String> params, HttpCallback cb) throws Exception { |
| | | super.post4JsonBySync(httpsBaseUrl, params, cb); |
| | | } |
| | | /** |
| | | * get请æ±ï¼è¿åjsonå
容 |
| | | * 弿¥ |
| | | * @param httpsBaseUrl |
| | | * @param params |
| | | * @param cb |
| | | * @throws Exception |
| | | */ |
| | | public void post4JsonByAsync(String httpsBaseUrl, Map<String, String> params, HttpCallback cb) throws Exception { |
| | | super.post4JsonByAsync(httpsBaseUrl, params, cb); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd.http4Xjnk; |
| | | |
| | | |
| | | import java.util.*; |
| | | |
| | | import com.alibaba.fastjson2.JSON; |
| | | import com.dy.rtuMw3rd.http4Xjnk.deal.XjnkDealer; |
| | | import com.dy.rtuMw3rd.http4Xjnk.protocol.XjnkResVo; |
| | | import com.dy.rtuMw3rd.http4Xjnk.protocol.controller.ControllerVo; |
| | | import com.dy.rtuMw3rd.http4Xjnk.protocol.mainController.MainControllerVo; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | | import com.dy.rtuMw3rd.http4Xjnk.protocol.XjnkProtocol; |
| | | import com.dy.rtuMw3rd.http4Xjnk.protocol.accessToken.Res4AccessTokenVo; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/3/19 15:53 |
| | | * @Description |
| | | */ |
| | | @Slf4j |
| | | @Component() |
| | | public class Worker extends TimerTask { |
| | | |
| | | private HttpsRq httpsRq ; |
| | | private XjnkDealer dealer ; |
| | | |
| | | public String httpsBaseUr ; |
| | | public String appid ; |
| | | public String secret ; |
| | | private Long workInterval ;//循ç¯ä»»å¡é´é |
| | | |
| | | private Timer timer; |
| | | |
| | | private boolean stop; |
| | | |
| | | private boolean first = true ; |
| | | private boolean isAccessTokenGot = false ; |
| | | private List<MainControllerVo> mainControllerVos ; |
| | | private List<ControllerVo> controllerVos ; |
| | | |
| | | @Autowired |
| | | public void setHttpsRq(HttpsRq httpsRq){ |
| | | this.httpsRq = httpsRq ; |
| | | } |
| | | @Autowired |
| | | private void setDealer(XjnkDealer dealer){ |
| | | this.dealer = dealer; |
| | | } |
| | | public void setHttpsBaseUr(String httpsBaseUr){ |
| | | this.httpsBaseUr = httpsBaseUr ; |
| | | } |
| | | public void setAppid(String appid){ |
| | | this.appid = appid ; |
| | | } |
| | | public void setSecret(String secret){ |
| | | this.secret = secret ; |
| | | } |
| | | public void setWorkInterval(Long workInterval){ |
| | | this.workInterval = workInterval ; |
| | | } |
| | | |
| | | public void stop(){ |
| | | this.stop = true ; |
| | | if(this.timer != null){ |
| | | this.timer.cancel(); |
| | | } |
| | | } |
| | | |
| | | public boolean isStop(){ |
| | | return this.stop ; |
| | | } |
| | | |
| | | public void start(){ |
| | | this.timer = new Timer(); |
| | | this.stop = false ; |
| | | new Thread(() -> { |
| | | while(true){ |
| | | try { |
| | | getAccessToken() ; |
| | | }catch (Exception e){ |
| | | log.error("æ°çåå¦--è·å¾AccessTokenå¼å¸¸" + (e.getMessage() == null ? "" : (":" + e.getMessage())), e); |
| | | } |
| | | try{ |
| | | Thread.sleep(10000); |
| | | }catch (Exception e){ |
| | | } |
| | | if(isAccessTokenGot){ |
| | | timer.schedule(this, 0, this.workInterval); |
| | | break ; |
| | | } |
| | | } |
| | | }).start(); |
| | | } |
| | | |
| | | @Override |
| | | public void run() { |
| | | if(first){ |
| | | first = false ; |
| | | }else{ |
| | | try{ |
| | | getAccessToken() ; |
| | | }catch(Exception e){ |
| | | log.error("æ°çåå¦--è·å¾AccessTokenå¼å¸¸" + (e.getMessage() == null ? "" : (":" + e.getMessage())), e); |
| | | } |
| | | } |
| | | if(isAccessTokenGot) { |
| | | try { |
| | | getMainControllers(); |
| | | } catch (Exception e) { |
| | | log.error("æ°çåå¦--è·å¾ä¸»æ§å¶å¨å¼å¸¸" + (e.getMessage() == null ? "" : (":" + e.getMessage())), e); |
| | | } |
| | | try { |
| | | getControllers(); |
| | | } catch (Exception e) { |
| | | log.error("æ°çåå¦--è·å¾æ§å¶å¨å¼å¸¸" + (e.getMessage() == null ? "" : (":" + e.getMessage())), e); |
| | | } |
| | | } |
| | | } |
| | | |
| | | public void getAccessToken() throws Exception{ |
| | | this.httpsRq.get4JsonBySync(this.httpsBaseUr + "/thirdapi/token?appid=" + this.appid + "&secret=" + this.secret, |
| | | null, |
| | | (statusCode, charset, body) -> { |
| | | // æå°ååºç¶æç |
| | | //System.out.println("Status Code: " + statusCode); |
| | | // æå°ååºå
容ç¼ç ç±»å |
| | | //System.out.println("Response encoding: " + charset); |
| | | // æå°ååºä½å
容 |
| | | //System.out.println("Response Body: " + body); |
| | | if(statusCode != null && statusCode.equals(XjnkProtocol.SuccessCode)){ |
| | | Res4AccessTokenVo vo = JSON.parseObject(body, Res4AccessTokenVo.class); |
| | | if(vo != null && vo.errcode != null && vo.errcode.length() > 0){ |
| | | log.error("æ°çåå¦--è·åAccessToken失败ï¼errcodeï¼" + vo.errcode + "ï¼errmsgï¼" + vo.errmsg); |
| | | }else{ |
| | | isAccessTokenGot = true ; |
| | | XjnkProtocol.AccessToken = vo.accessToken ; |
| | | XjnkProtocol.AccessTokenExpires = vo.expires ; |
| | | log.info("æ°çåå¦--è·åAccessTokenæåï¼accessTokenï¼" + vo.accessToken + "ï¼expiresï¼" + vo.expires); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /** |
| | | * è·å主æ§å¶å¨ |
| | | * @throws Exception |
| | | */ |
| | | public void getMainControllers() throws Exception{ |
| | | this.httpsRq.get4JsonBySync(this.httpsBaseUr + "/thirdapi/pridevice/all?access_token=" + XjnkProtocol.AccessToken, |
| | | null, |
| | | (statusCode, charset, body) -> { |
| | | if(statusCode != null && statusCode.equals(XjnkProtocol.SuccessCode)){ |
| | | try{ |
| | | //é¦å
认为è¿åçæ¯é误信æ¯ï¼è¿è¡å°è¯ |
| | | XjnkResVo vo = JSON.parseObject(body, XjnkResVo.class); |
| | | if(vo != null && vo.errcode != null && vo.errcode.length() > 0){ |
| | | log.error("æ°çåå¦--è·å主æ§å¶å¨å¤±è´¥ï¼errcodeï¼" + vo.errcode + "ï¼errmsgï¼" + vo.errmsg); |
| | | } |
| | | }catch (Exception e){ |
| | | //妿䏿¯é误信æ¯ï¼é£å°±æ¯æ£ç¡®ä¿¡æ¯ |
| | | try{ |
| | | mainControllerVos = JSON.parseArray(body, MainControllerVo.class); |
| | | log.info("æ°çåå¦--è·å主æ§å¶å¨æåï¼"); |
| | | if(mainControllerVos != null && mainControllerVos.size() > 0){ |
| | | this.dealer.dealMainController(mainControllerVos); |
| | | for(MainControllerVo cvo : mainControllerVos){ |
| | | log.info("主æ§å¶å¨ï¼" + cvo); |
| | | } |
| | | } |
| | | }catch (Exception ee){ |
| | | log.error("æ°çåå¦--è·å主æ§å¶å¨å¼å¸¸" + (ee.getMessage() == null ? "" : (":" + ee.getMessage())), ee); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | /** |
| | | * è·åæ§å¶å¨ |
| | | * @throws Exception |
| | | */ |
| | | public void getControllers() throws Exception{ |
| | | if(this.mainControllerVos != null && this.mainControllerVos.size() > 0){ |
| | | for(MainControllerVo mcvo : this.mainControllerVos){ |
| | | Map<String, String> params = new HashMap<>() ; |
| | | params.put("pdId", "" + mcvo.id) ; |
| | | this.httpsRq.post4JsonBySync(this.httpsBaseUr + "/thirdapi/control_device/query?access_token=" + XjnkProtocol.AccessToken, |
| | | params, |
| | | (statusCode, charset, body) -> { |
| | | if(statusCode != null && statusCode.equals(XjnkProtocol.SuccessCode)){ |
| | | try{ |
| | | //é¦å
认为è¿åçæ¯é误信æ¯ï¼è¿è¡å°è¯ |
| | | XjnkResVo vo = JSON.parseObject(body, XjnkResVo.class); |
| | | if(vo != null && vo.errcode != null && vo.errcode.length() > 0){ |
| | | log.error("æ°çåå¦--è·åæ§å¶å¨å¤±è´¥ï¼errcodeï¼" + vo.errcode + "ï¼errmsgï¼" + vo.errmsg); |
| | | } |
| | | }catch (Exception e){ |
| | | //妿䏿¯é误信æ¯ï¼é£å°±æ¯æ£ç¡®ä¿¡æ¯ |
| | | try{ |
| | | controllerVos = JSON.parseArray(body, ControllerVo.class); |
| | | log.info("æ°çåå¦--è·åæ§å¶å¨æåï¼"); |
| | | if(controllerVos != null && controllerVos.size() > 0){ |
| | | this.dealer.dealController(controllerVos); |
| | | for(ControllerVo cvo : controllerVos){ |
| | | log.info("æ§å¶å¨ï¼" + cvo); |
| | | } |
| | | } |
| | | }catch (Exception ee){ |
| | | log.error("æ°çåå¦--è·åæ§å¶å¨å¼å¸¸" + (ee.getMessage() == null ? "" : (":" + ee.getMessage())), ee); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd.http4Xjnk.deal; |
| | | |
| | | import com.dy.rtuMw3rd.http4Xjnk.protocol.controller.ControllerVo; |
| | | import com.dy.rtuMw3rd.http4Xjnk.protocol.mainController.MainControllerVo; |
| | | import com.dy.rtuMw3rd.http4Xjnk.protocol.statusPush.ControllerStatusVo; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/3/20 16:09 |
| | | * @Description |
| | | */ |
| | | @Slf4j |
| | | @Component() |
| | | public class XjnkDealer { |
| | | |
| | | public void dealMainController(List<MainControllerVo> list){ |
| | | log.warn("æ°çåå¦--主æ§å¶å¨æ°æ®å¤çé»è¾æªå®ç°"); |
| | | } |
| | | |
| | | public void dealController(List<ControllerVo> list){ |
| | | log.warn("æ°çåå¦--æ§å¶å¨æ°æ®å¤çé»è¾æªå®ç°"); |
| | | } |
| | | |
| | | public void dealPush(ControllerStatusVo vo){ |
| | | log.warn("æ°çåå¦--ç¶ææ¨éæ°æ®å¤çé»è¾æªå®ç°"); |
| | | } |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd.http4Xjnk.protocol; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/3/19 16:27 |
| | | * @Description |
| | | */ |
| | | public class XjnkProtocol { |
| | | public static String AccessToken = null ; |
| | | public static Integer AccessTokenExpires = null ; |
| | | |
| | | public static final String SuccessCode = "200" ; |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd.http4Xjnk.protocol; |
| | | |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/3/19 17:00 |
| | | * @Description |
| | | */ |
| | | @Data |
| | | public class XjnkResVo { |
| | | public String errcode ; |
| | | public String errmsg ; |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd.http4Xjnk.protocol.accessToken; |
| | | |
| | | import com.dy.rtuMw3rd.http4Xjnk.protocol.XjnkResVo; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/3/19 16:53 |
| | | * @Description |
| | | */ |
| | | @Data |
| | | @EqualsAndHashCode(callSuper=false) |
| | | public class Res4AccessTokenVo extends XjnkResVo { |
| | | public String accessToken ; |
| | | public Integer expires ; |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd.http4Xjnk.protocol.controller; |
| | | |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/3/20 14:40 |
| | | * @Description |
| | | */ |
| | | @Data |
| | | public class ControllerVo { |
| | | public String name ; //"é1", æ§å¶å¨ID |
| | | public String code ; //"SS110",åç§° |
| | | public Integer ctId ; //1,设å¤ç¼ç |
| | | public Integer pdId ; //1,设å¤ç±»å |
| | | public String action ; //"",主æ§ID |
| | | public Integer groupId ; //1,åç»ID |
| | | public String mode ; //"gprs",è®¾å¤æ¨¡å¼ |
| | | public String iccid ; //"SS112",设å¤iccid |
| | | public Integer sort ; //1,æåº |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd.http4Xjnk.protocol.mainController; |
| | | |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/3/19 17:17 |
| | | * @Description |
| | | */ |
| | | @Data |
| | | public class MainControllerVo { |
| | | public String channel = "1" ; |
| | | public String deviceid = "sanfangceshipingtai" ; |
| | | public Long id = 393L ; |
| | | public Double lat = 0.0 ; |
| | | public Double lng = 0.0 ; |
| | | public String mode = "virtual" ; |
| | | public String name = "䏿¹å¯¹æ¥æµè¯å¹³å°" ; |
| | | public String panid = "1" ; |
| | | public Integer sort = 0 ; |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd.http4Xjnk.protocol.statusPush; |
| | | |
| | | import lombok.Data; |
| | | |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/3/20 15:59 |
| | | * @Description |
| | | */ |
| | | @Data |
| | | public class ControllerStatusVo { |
| | | public String classify ; //": "1", |
| | | public String code ; //": "723", |
| | | public String line ; //": true, |
| | | public String pdId ; //": "29", |
| | | public String category; // "C", |
| | | |
| | | public String quality; //ä¿¡å·å¼ºåº¦ db ("quality": "-36") |
| | | public String battery; //çµé % ("battery": "100",) |
| | | public String realtimePressure; // 宿¶åå bar |
| | | public String constantPressure; // æå®åå bar |
| | | public String flowRate; // ç¬æ¶æµéï¼å¯éï¼ m³/h |
| | | public String totalFlowA; // 累计æµé Aï¼å¯éï¼ m³ |
| | | public String totalFlowB; // 累计æµé Bï¼å¯éï¼ m³ |
| | | public String onoff; // ç¶æï¼â0âï¼å
³éï¼â1âï¼å¼å¯ ï¼"onoff": "1",ï¼ |
| | | public String angle; // éé¨è§åº¦ï¼â0âï¼å
¨å
³ï¼â90âï¼A éå
¨å¼ï¼â1-90âï¼A éå¼å¯ï¼â180âï¼B éå
¨å¼ï¼â91-180âï¼B éå¼å¯ |
| | | |
| | | public static ControllerStatusVo may2Vo(Map<String, Object> map){ |
| | | ControllerStatusVo vo = new ControllerStatusVo() ; |
| | | vo.classify = map.get("classify").toString(); |
| | | vo.code = map.get("code").toString(); |
| | | vo.line = map.get("line").toString(); |
| | | vo.pdId = map.get("pdId").toString(); |
| | | vo.category = map.get("category").toString(); |
| | | |
| | | vo.quality = map.get("quality").toString(); |
| | | vo.battery = map.get("battery").toString(); |
| | | vo.realtimePressure = map.get("realtimePressure").toString(); |
| | | vo.constantPressure = map.get("constantPressure").toString(); |
| | | vo.flowRate = map.get("flowRate").toString(); |
| | | vo.totalFlowA = map.get("totalFlowA").toString(); |
| | | vo.totalFlowB = map.get("totalFlowB").toString(); |
| | | vo.onoff = map.get("onoff").toString(); |
| | | vo.angle = map.get("angle").toString(); |
| | | return vo ; |
| | | } |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd.tcp4Bjnl; |
| | | |
| | | import org.apache.mina.core.session.IoSession; |
| | | import org.apache.mina.filter.codec.ProtocolCodecFactory; |
| | | import org.apache.mina.filter.codec.ProtocolDecoder; |
| | | import org.apache.mina.filter.codec.ProtocolEncoder; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/03/18 14:20 |
| | | * @Description |
| | | */ |
| | | public class NetDataCodecFactory implements ProtocolCodecFactory { |
| | | private ProtocolEncoder encoder; |
| | | private ProtocolDecoder decoder; |
| | | |
| | | public NetDataCodecFactory() { |
| | | encoder = new NetDataEncoder(); |
| | | decoder = new NetDataDecoder(); |
| | | } |
| | | |
| | | /** |
| | | * å¾å°åè®®ç¼ç å¨ |
| | | * @param ioSession ç½ç»ä¼è¯ |
| | | * @return åè®®ç¼ç å¨ |
| | | */ |
| | | @Override |
| | | public ProtocolEncoder getEncoder(IoSession ioSession) { |
| | | return encoder; |
| | | } |
| | | /** |
| | | * å¾å°å议解ç å¨ |
| | | * @param ioSession ç½ç»ä¼è¯ |
| | | * @return å议解ç å¨ |
| | | */ |
| | | @Override |
| | | public ProtocolDecoder getDecoder(IoSession ioSession) { |
| | | return decoder; |
| | | } |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd.tcp4Bjnl; |
| | | |
| | | import com.alibaba.fastjson2.JSON; |
| | | import com.dy.common.springUtil.SpringContextUtil; |
| | | import com.dy.rtuMw3rd.tcp4Bjnl.deal.BjnlDealer; |
| | | import com.dy.rtuMw3rd.tcp4Bjnl.protocol.BjnlProtocol; |
| | | import com.dy.rtuMw3rd.tcp4Bjnl.protocol.Result; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.mina.core.buffer.IoBuffer; |
| | | import org.apache.mina.core.session.IoSession; |
| | | import org.apache.mina.filter.codec.CumulativeProtocolDecoder; |
| | | import org.apache.mina.filter.codec.ProtocolDecoderOutput; |
| | | |
| | | import java.io.IOException; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/03/18 14:20 |
| | | * @Description |
| | | */ |
| | | @Slf4j |
| | | public class NetDataDecoder extends CumulativeProtocolDecoder { |
| | | |
| | | /** |
| | | * 对ç½ç»ä¼ è¾æ¥çæ°æ®è¿è¡è§£ç |
| | | */ |
| | | protected boolean doDecode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) throws IOException, Exception{ |
| | | int remain = in.remaining() ; |
| | | if(remain > 0){ |
| | | byte[] bs = new byte[remain]; |
| | | in.get(bs) ; |
| | | in.position(0) ; |
| | | String s = new String(bs, "UTF-8") ; |
| | | if(s != null && s.length() > 0){ |
| | | s = s.trim() ; |
| | | } |
| | | this.receive(s); |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | |
| | | private void receive(String json){ |
| | | log.info("å京åæ--æ¶å°æ°æ®ï¼" + json); |
| | | try{ |
| | | if(JSON.isValid(json)){ |
| | | Result res = JSON.parseObject(json, Result.class) ; |
| | | if(res.status != null && res.status.code != null && res.status.code.equals(BjnlProtocol.SuccessCode)){ |
| | | if(res.status.type != null){ |
| | | if(res.status.type.equals(BjnlProtocol.ResultTypeAuth)){ |
| | | forLogin(res) ; |
| | | }else if(res.status.type.equals(BjnlProtocol.ResultTypeData)){ |
| | | forData(res) ; |
| | | }else if(res.status.type.equals(BjnlProtocol.ResultTypeControl)){ |
| | | forControl(res) ; |
| | | }else{ |
| | | log.error("å京åæ--æå¡ç«¯è¿åæ°æ®å
¶ç±»åä¸å¯è¯å«ï¼" + res.status.type); |
| | | } |
| | | } |
| | | }else{ |
| | | //å¯è½æ¨éçæ°æ®ä¸ä¸å
å«statusåæ°æ® |
| | | if(res.data != null && res.data.length() > 0){ |
| | | forData(res) ; |
| | | }else{ |
| | | log.error("å京åæ--æå¡ç«¯è¿å失败信æ¯ï¼" + json); |
| | | } |
| | | |
| | | } |
| | | }else{ |
| | | log.error("å京åæ--æå¡ç«¯è¿åæ°æ®éææJSONæ°æ®ï¼\næ°æ®ä¸º" + json); |
| | | } |
| | | }catch (Exception e){ |
| | | log.error("å京åæ--æå¡ç«¯è¿åæ°æ®è½¬JSONå¼å¸¸ï¼\næ°æ®ä¸º" + json ,e); |
| | | } |
| | | } |
| | | |
| | | private void forLogin(Result res){ |
| | | Worker.getInstance().setLogined(); |
| | | BjnlDealer d = SpringContextUtil.getBean(BjnlDealer.class) ; |
| | | d.logined(res); |
| | | } |
| | | |
| | | private void forData(Result res){ |
| | | BjnlDealer d = SpringContextUtil.getBean(BjnlDealer.class) ; |
| | | d.receiveData(res); |
| | | } |
| | | |
| | | private void forControl(Result res){ |
| | | BjnlDealer d = SpringContextUtil.getBean(BjnlDealer.class) ; |
| | | d.controlRes(res); |
| | | } |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd.tcp4Bjnl; |
| | | |
| | | import org.apache.logging.log4j.LogManager; |
| | | import org.apache.logging.log4j.Logger; |
| | | import org.apache.mina.core.buffer.IoBuffer; |
| | | import org.apache.mina.core.session.IoSession; |
| | | import org.apache.mina.filter.codec.ProtocolEncoderAdapter; |
| | | import org.apache.mina.filter.codec.ProtocolEncoderOutput; |
| | | |
| | | import java.io.IOException; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/03/18 14:20 |
| | | * @Description |
| | | */ |
| | | public class NetDataEncoder extends ProtocolEncoderAdapter { |
| | | |
| | | private static final Logger log = LogManager.getLogger(NetDataEncoder.class) ; |
| | | |
| | | /** |
| | | * å¯¹æ°æ®è¿è¡ç¼ç ï¼ä»¥å¤ç½ç»ä¼ è¾ |
| | | */ |
| | | public void encode(IoSession session, Object message, ProtocolEncoderOutput out) throws IOException, Exception{ |
| | | byte[] data = (byte[])message; |
| | | //log.info("ä¸è¡æ°æ®ï¼" + ByteUtil.bytes2Hex(data, true)); |
| | | |
| | | out.write(IoBuffer.allocate((data==null?0:data.length), false).put(data).flip()); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd.tcp4Bjnl; |
| | | |
| | | import com.dy.common.mw.UnitAdapterInterface; |
| | | import com.dy.common.mw.UnitCallbackInterface; |
| | | import com.dy.common.mw.UnitInterface; |
| | | import com.dy.common.util.Callback; |
| | | import com.dy.rtuMw3rd.tcp4Bjnl.protocol.BjnlProtocol; |
| | | import org.apache.logging.log4j.LogManager; |
| | | import org.apache.logging.log4j.Logger; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/03/18 14:20 |
| | | * @Description |
| | | */ |
| | | public class TcpClUnit implements UnitInterface { |
| | | |
| | | private static final Logger log = LogManager.getLogger(TcpClUnit.class) ; |
| | | |
| | | private static TcpClUnit instance = new TcpClUnit() ; |
| | | |
| | | public static TcpClUnitAdapter adapter ; |
| | | public static TcpClUnitConfigVo confVo ; |
| | | |
| | | private TcpClUnit(){} ; |
| | | |
| | | public static TcpClUnit getInstance(){ |
| | | return instance ; |
| | | } |
| | | |
| | | @Override |
| | | public void setAdapter(UnitAdapterInterface adapter) throws Exception { |
| | | if(adapter == null){ |
| | | throw new Exception("Tcp Client模åéé
å¨å¯¹è±¡ä¸è½ä¸ºç©ºï¼") ; |
| | | } |
| | | TcpClUnit.adapter = (TcpClUnitAdapter)adapter ; |
| | | TcpClUnit.confVo = TcpClUnit.adapter.getConfig() ; |
| | | if(TcpClUnit.confVo == null){ |
| | | throw new Exception("Tcp Client模åé
置对象ä¸è½ä¸ºç©ºï¼") ; |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void start(UnitCallbackInterface callback) throws Exception { |
| | | System.out.println("Tcp Client模åæåå¯å¨"); |
| | | this.doStart(); |
| | | callback.call(null) ; |
| | | } |
| | | |
| | | @Override |
| | | public void stop(UnitCallbackInterface callback) throws Exception { |
| | | callback.call(null); |
| | | } |
| | | |
| | | private void doStart(){ |
| | | new Thread(() -> { |
| | | Exception ex ; |
| | | while(true){ |
| | | ex = null ; |
| | | try { |
| | | new TcpConnect().createSession( |
| | | confVo.BjnlServerIp, |
| | | confVo.BjnlServerPort, |
| | | confVo.BjnlConnectTimeout, |
| | | new TcpHandler(), |
| | | new Callback() { |
| | | @Override |
| | | public void call(Object obj) { |
| | | if (obj == null) { |
| | | log.error("å京åæ--å建ç½ç»ä¼è¯è¿å为null"); |
| | | } else { |
| | | log.info("å京åæ--æåå建ç½ç»è¿æ¥"); |
| | | Worker w = Worker.getInstance() ; |
| | | w.setApikey(confVo.BjnlApikey); |
| | | w.setSecretkey(confVo.BjnlSecretkey ); |
| | | w.setWorkInterval(confVo.heartBeatInterval + 0L); |
| | | w.start(); |
| | | } |
| | | } |
| | | @Override |
| | | public void call(Object... objs) { |
| | | } |
| | | @Override |
| | | public void exception(Exception e) { |
| | | } |
| | | }); |
| | | }catch (Exception e){ |
| | | ex = e ; |
| | | } |
| | | if(ex == null){ |
| | | break ; |
| | | }else{ |
| | | try{ |
| | | Thread.sleep(100); |
| | | }catch (Exception e){ |
| | | } |
| | | } |
| | | } |
| | | }).start(); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd.tcp4Bjnl; |
| | | |
| | | import com.dy.common.mw.UnitAdapterInterface; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/03/18 14:20 |
| | | * @Description |
| | | */ |
| | | public interface TcpClUnitAdapter extends UnitAdapterInterface { |
| | | |
| | | TcpClUnitConfigVo getConfig() ; |
| | | |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd.tcp4Bjnl; |
| | | |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/03/18 14:20 |
| | | * @Description |
| | | */ |
| | | @Data |
| | | public class TcpClUnitConfigVo { |
| | | public String BjnlServerIp = "127.0.0.1" ;//æå¡ç«¯IP |
| | | public Integer BjnlServerPort = 1234 ;//æå¡ç«¯ç«¯å£ |
| | | public Integer BjnlConnectTimeout = 3000 ; |
| | | public String BjnlApikey = "afcd5254fea7ba348bbdf8723c421fa7eab04545" ; |
| | | public String BjnlSecretkey = "4ebb2143c994d5ecbf3cb4af364642a74294c3be" ; |
| | | public Integer heartBeatInterval = 120000 ; |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd.tcp4Bjnl; |
| | | |
| | | import com.dy.common.util.Callback; |
| | | import org.apache.mina.core.future.ConnectFuture; |
| | | import org.apache.mina.core.session.IoSession; |
| | | import org.apache.mina.filter.codec.ProtocolCodecFilter; |
| | | import org.apache.mina.transport.socket.SocketConnector; |
| | | import org.apache.mina.transport.socket.nio.NioSocketConnector; |
| | | |
| | | import java.net.InetSocketAddress; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/03/18 14:20 |
| | | * @Description |
| | | */ |
| | | public class TcpConnect { |
| | | |
| | | private static IoSession ioSession ; |
| | | |
| | | public static IoSession getIoSession(){ |
| | | return ioSession; |
| | | } |
| | | |
| | | /** |
| | | * 夿ä¼è¯æ¯å¦ææ |
| | | * @return æ¯å¦è¿æ¥ |
| | | */ |
| | | public static boolean isConnected() { |
| | | return (ioSession != null && ioSession.isConnected()); |
| | | } |
| | | |
| | | /** |
| | | * å建æ°ä¼è¯ |
| | | * @param host æå¡å¨URI |
| | | * @param port æå¡å¨ç«¯å£ |
| | | * @param connectTimeout è¿æ¥è¶
æ¶æ¶é¿ |
| | | * @param handler æ°æ®å¤çè
|
| | | * @param callback åè° |
| | | * @return ç½ç»ä¼è¯ |
| | | */ |
| | | public static void createSession(String host , |
| | | int port , |
| | | int connectTimeout , |
| | | TcpHandler handler, |
| | | Callback callback) throws Exception{ |
| | | SocketConnector connector = new NioSocketConnector(); |
| | | connector.getFilterChain().addLast("codec", new ProtocolCodecFilter(new NetDataCodecFactory())); |
| | | connector.setHandler(handler); |
| | | ConnectFuture connectFuture = connector.connect(new InetSocketAddress(host, port)); |
| | | connectFuture.awaitUninterruptibly(connectTimeout); |
| | | ioSession = connectFuture.getSession(); |
| | | callback.call(ioSession) ; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * å
³éä¼è¯èæ¥ |
| | | * @param se |
| | | * @param connectTimeout |
| | | */ |
| | | public static void disconnect(IoSession se , int connectTimeout) { |
| | | if (se != null) { |
| | | try{ |
| | | se.closeNow().awaitUninterruptibly(connectTimeout); |
| | | }catch(Exception e){ |
| | | if(se.isConnected()){ |
| | | se.closeNow().awaitUninterruptibly(connectTimeout); |
| | | } |
| | | }finally{ |
| | | se = null; |
| | | } |
| | | } |
| | | } |
| | | |
| | | public static void output(byte[] bs) throws Exception{ |
| | | if (!isConnected()) { |
| | | throw new Exception("æªå建ç½ç»è¿æ¥"); |
| | | }else{ |
| | | ioSession.write(bs); |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd.tcp4Bjnl; |
| | | |
| | | import com.dy.common.util.ByteUtil; |
| | | import org.apache.logging.log4j.LogManager; |
| | | import org.apache.logging.log4j.Logger; |
| | | import org.apache.mina.core.service.IoHandlerAdapter; |
| | | import org.apache.mina.core.session.IdleStatus; |
| | | import org.apache.mina.core.session.IoSession; |
| | | import org.apache.mina.filter.FilterEvent; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/03/18 14:20 |
| | | * @Description |
| | | */ |
| | | public class TcpHandler extends IoHandlerAdapter { |
| | | |
| | | private static Logger log = LogManager.getLogger(TcpHandler.class.getName()) ; |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public void sessionCreated(IoSession session) throws Exception { |
| | | super.sessionCreated(session); |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public void sessionOpened(IoSession session) throws Exception { |
| | | super.sessionOpened(session); |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public void sessionClosed(IoSession session) throws Exception { |
| | | super.sessionClosed(session); |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public void sessionIdle(IoSession session, IdleStatus status) throws Exception { |
| | | super.sessionIdle(session, status); |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public void exceptionCaught(IoSession session, Throwable cause) throws Exception { |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public void messageReceived(IoSession session, Object message) throws Exception { |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public void messageSent(IoSession session, Object message) throws Exception { |
| | | if(message != null){ |
| | | log.info("å京åæ--åéæ°æ®ï¼" + new String((byte[])message, "UTF-8")); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public void inputClosed(IoSession session) throws Exception { |
| | | session.closeNow(); |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public void event(IoSession session, FilterEvent event) throws Exception { |
| | | } |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd.tcp4Bjnl; |
| | | |
| | | import com.alibaba.fastjson2.JSON; |
| | | import com.dy.rtuMw3rd.tcp4Bjnl.protocol.*; |
| | | import org.apache.logging.log4j.LogManager; |
| | | import org.apache.logging.log4j.Logger; |
| | | |
| | | import java.util.Timer; |
| | | import java.util.TimerTask; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/2/26 14:39 |
| | | * @Description |
| | | */ |
| | | public class Worker extends TimerTask { |
| | | |
| | | private static final Logger log = LogManager.getLogger(Worker.class) ; |
| | | |
| | | private static Worker instance = new Worker() ; |
| | | |
| | | private String apikey ; |
| | | private String secretkey ; |
| | | private Long workInterval ;//循ç¯ä»»å¡é´é |
| | | |
| | | private Timer timer; |
| | | |
| | | private boolean stop; |
| | | |
| | | private boolean first = true ; |
| | | private static boolean isLogined = false ; |
| | | |
| | | private Worker(){ |
| | | this.timer = new Timer(); |
| | | this.stop = false ; |
| | | } |
| | | |
| | | public static Worker getInstance(){ |
| | | return instance ; |
| | | } |
| | | |
| | | |
| | | public void setApikey(String apikey){ |
| | | this.apikey = apikey ; |
| | | } |
| | | public void setSecretkey(String secretkey){ |
| | | this.secretkey = secretkey ; |
| | | } |
| | | public void setWorkInterval(Long workInterval){ |
| | | this.workInterval = workInterval ; |
| | | } |
| | | |
| | | public void setLogined(){ |
| | | log.info("å京åæ--请æ±ç»å½æå"); |
| | | isLogined = true ; |
| | | } |
| | | |
| | | public void stop(){ |
| | | this.stop = true ; |
| | | if(this.timer != null){ |
| | | this.timer.cancel(); |
| | | } |
| | | } |
| | | public boolean isStop(){ |
| | | return this.stop ; |
| | | } |
| | | |
| | | public void start(){ |
| | | new Thread(() -> { |
| | | while(true){ |
| | | try { |
| | | login() ; |
| | | }catch (Exception e){ |
| | | log.error("å京åæ--请æ±ç»å½å¼å¸¸" + (e.getMessage() == null ? "" : (":" + e.getMessage())), e); |
| | | } |
| | | try{ |
| | | Thread.sleep(10000); |
| | | }catch (Exception e){ |
| | | } |
| | | if(isLogined){ |
| | | timer.schedule(this, 0, this.workInterval); |
| | | break ; |
| | | } |
| | | } |
| | | }).start(); |
| | | } |
| | | |
| | | @Override |
| | | public void run() { |
| | | if(first){ |
| | | first = false ; |
| | | }else{ |
| | | if(TcpConnect.isConnected() && isLogined) { |
| | | try{ |
| | | heartbeat() ; |
| | | }catch(Exception e){ |
| | | log.error("å京åæ--åéå¿è·³å¼å¸¸" + (e.getMessage() == null ? "" : (":" + e.getMessage())), e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | private void login(){ |
| | | ParamLogin pl = new ParamLogin() ; |
| | | pl.protocol = new ParamProtocol() ; |
| | | pl.auth = new ParamAuth() ; |
| | | pl.protocol.version = BjnlProtocol.ProtocolVersion ; |
| | | pl.protocol.protocolcode = BjnlProtocol.Protocolcode ; |
| | | pl.auth.apikey = apikey ; |
| | | pl.auth.secretkey = secretkey ; |
| | | |
| | | String json = JSON.toJSONString(pl) ; |
| | | byte[] bs = BjnlCommon.wrap(json) ; |
| | | try { |
| | | TcpConnect.output(bs); |
| | | } catch (Exception e) { |
| | | log.error(e.getMessage(), e); |
| | | } |
| | | } |
| | | private void heartbeat() throws Exception{ |
| | | try { |
| | | TcpConnect.output(BjnlProtocol.HeartBeat); |
| | | } catch (Exception e) { |
| | | log.error(e.getMessage(), e); |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd.tcp4Bjnl.deal; |
| | | |
| | | import com.dy.rtuMw3rd.tcp4Bjnl.protocol.Result; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/3/20 16:29 |
| | | * @Description |
| | | */ |
| | | @Slf4j |
| | | @Component() |
| | | public class BjnlDealer { |
| | | |
| | | public void logined(Result res){ |
| | | log.warn("å京åæ--ç»å½è¿åå¤çé»è¾æªå®ç°"); |
| | | } |
| | | |
| | | public void receiveData(Result res){ |
| | | log.warn("å京åæ--æ°æ®æ¨éå¤çé»è¾æªå®ç°"); |
| | | } |
| | | |
| | | public void controlRes(Result res){ |
| | | log.warn("å京åæ--è¿ç¨æ§å¶è¿åå¤çé»è¾æªå®ç°"); |
| | | } |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd.tcp4Bjnl.protocol; |
| | | |
| | | import com.dy.common.util.ByteUtil; |
| | | |
| | | import java.nio.charset.StandardCharsets; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/3/18 15:06 |
| | | * @Description |
| | | */ |
| | | public class BjnlCommon { |
| | | public static byte[] wrap(String msg){ |
| | | byte[] bs = BjnlProtocol.FrameHeadBytes; |
| | | if(msg != null && msg.length() > 0){ |
| | | bs = ByteUtil.bytesMerge(bs, msg.getBytes(StandardCharsets.UTF_8)) ; |
| | | } |
| | | bs = ByteUtil.bytesMerge(bs, BjnlProtocol.FrameTailBytes) ; |
| | | return bs; |
| | | } |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd.tcp4Bjnl.protocol; |
| | | |
| | | import java.nio.charset.StandardCharsets; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/3/18 11:54 |
| | | * @Description |
| | | */ |
| | | public class BjnlProtocol { |
| | | public static final String ProtocolName = "beiJingNongLin" ;//å京å¸åæç§å¦é¢æºè½è£
夿æ¯ç ç©¶ä¸å¿ |
| | | public static final String ProtocolVersion = "1.0" ;//çæ¬å· |
| | | public static final String Protocolcode = "v1.0" ;//åè®®å· |
| | | |
| | | public static final byte MinDataLength = 4 ;//æ°æ®æå°é¿åº¦ï¼å³å¸§å¤´4个åèï¼ |
| | | public static final byte[] FrameHeadBytes = new byte[]{(byte)0xCA, (byte)0xFE, (byte)0xBA, (byte)0xBE} ; |
| | | public static final byte[] FrameTailBytes = "&_#".getBytes(StandardCharsets.UTF_8) ; |
| | | |
| | | public static final String SuccessCode = "200" ; |
| | | public static final String ResultTypeAuth = "auth" ; |
| | | public static final String ResultTypeData = "data" ; |
| | | public static final String ResultTypeControl = "control" ; |
| | | |
| | | public static final byte[] HeartBeat = "ping".getBytes(StandardCharsets.UTF_8) ; |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd.tcp4Bjnl.protocol; |
| | | |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/3/18 15:13 |
| | | * @Description |
| | | */@Data |
| | | public class ParamAuth { |
| | | public String apikey ; // éªè¯keyå¼ å¯ä¸ä¸å¯æ´æ¹ |
| | | public String secretkey; //éªè¯keyå¼ å¯ä¸ä¸å¯æ´æ¹ |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd.tcp4Bjnl.protocol; |
| | | |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/3/18 15:15 |
| | | * @Description |
| | | */ |
| | | @Data |
| | | public class ParamLogin { |
| | | public ParamProtocol protocol ; |
| | | public ParamAuth auth ; |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd.tcp4Bjnl.protocol; |
| | | |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/3/18 15:12 |
| | | * @Description |
| | | */ |
| | | @Data |
| | | public class ParamProtocol { |
| | | public String version ; |
| | | public String protocolcode ; |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd.tcp4Bjnl.protocol; |
| | | |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/3/18 16:31 |
| | | * @Description |
| | | */ |
| | | @Data |
| | | public class ResProtocol { |
| | | public String version ; |
| | | public String protocolcode ; |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd.tcp4Bjnl.protocol; |
| | | |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/3/18 16:32 |
| | | * @Description |
| | | */ |
| | | @Data |
| | | public class ResStatus { |
| | | public String code ; |
| | | public String msg ; |
| | | public String time ; |
| | | public String type ; |
| | | public String uuid ; |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw3rd.tcp4Bjnl.protocol; |
| | | |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/3/18 16:36 |
| | | * @Description |
| | | */ |
| | | @Data |
| | | public class Result { |
| | | public ResProtocol protocol ; |
| | | public ResStatus status ; |
| | | public String data ; |
| | | } |
New file |
| | |
| | | logging: |
| | | charset: |
| | | console: UTF-8 |
| | | config: |
| | | classpath: log4j2.yml |
| | | spring: |
| | | devtools: |
| | | livereload: |
| | | enabled: false |
| | | |
| | | #webæå¡ç«¯å£ï¼tomcaté»è®¤æ¯8080 |
| | | server: |
| | | port: 65530 |
| | | servlet: |
| | | context-path: /rtuMw3rd #web访é®ä¸ä¸æè·¯å¾ |
| | | |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <config> |
| | | <server name="ç¬¬ä¸æ¹æ¥å
¥ä¸é´ä»¶" showStartInfo="true" company="http://www.dyjs.com"/> |
| | | |
| | | <!-- |
| | | flushDataFromSvInterval:è·åaccess_tokené´éï¼ä¸å°æ¶ï¼3600000ï¼ï¼ç®åaccess_tokençæææéè¿è¿åçexpire_inæ¥ä¼ è¾¾ï¼ç®åæ¯7200ç§(120åéãä¸¤ä¸ªå°æ¶)ä¹å
çå¼ |
| | | --> |
| | | <xjnk httpsBaseUrl="https://www.sshyun.com" |
| | | appid="f34e4ac6be4441a6b7d13790313f22d0" |
| | | secret="b691aef23bf944599963786862370346" |
| | | flushDataFromSvInterval="3600000" |
| | | ></xjnk> |
| | | |
| | | <bjnl ip="210.12.220.75" |
| | | port="15006" |
| | | connectTimeout="3000" |
| | | apikey="d3358a6a0270dbcd3017706c1062883fe6c0c45c" |
| | | secretkey="58cf2e5319ab4341c93724f2141b5305414ca87e" |
| | | heartBeatInterval = "120000" |
| | | ></bjnl> |
| | | </config> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <Configuration status="OFF"> |
| | | <Appenders> |
| | | <Console name="Console" target="SYSTEM_OUT"> |
| | | <PatternLayout charset="UTF-8" pattern="%d %-5p [%t] (%F:%L) - %m%n%throwable"/> |
| | | </Console> |
| | | <RollingFile name="File" fileName="logs/rtuMw3rd.log" filePattern="logs/rtuMw3rd-%d{yyyyMMdd}-%i.log"> |
| | | <PatternLayout charset="UTF-8" pattern="%d %-5p [%t] (%class.%method:%L) - %m%n%throwable"/> |
| | | <Policies> |
| | | <TimeBasedTriggeringPolicy interval="7" /> |
| | | <SizeBasedTriggeringPolicy size="10MB"/> |
| | | </Policies> |
| | | <DefaultRolloverStrategy max="50" /> |
| | | </RollingFile> |
| | | </Appenders> |
| | | <Loggers> |
| | | <!-- |
| | | <Logger name="com.zhzc.jgTest" level="debug"> |
| | | <AppenderRef ref="Console"/> |
| | | </Logger> |
| | | <Logger name="org.jgroups" level="info"> |
| | | <AppenderRef ref="File"/> |
| | | </Logger> |
| | | --> |
| | | <!-- Rootä¸å个Loggeråæ¶èµ·ä½ç¨ --> |
| | | <Root level="info"> |
| | | <AppenderRef ref="Console"/> |
| | | <AppenderRef ref="File"/> |
| | | </Root> |
| | | </Loggers> |
| | | </Configuration> |
New file |
| | |
| | | package com.dy.rtuMw3rd; |
| | | |
| | | import org.junit.jupiter.api.Test; |
| | | import org.springframework.boot.test.context.SpringBootTest; |
| | | |
| | | @SpringBootTest |
| | | class PipIrrMwRtu3rdApplicationTests { |
| | | |
| | | @Test |
| | | void contextLoads() { |
| | | } |
| | | |
| | | } |
| | |
| | | console: UTF-8 |
| | | config: |
| | | classpath: log4j2.yml |
| | | spring: |
| | | devtools: |
| | | livereload: |
| | | enabled: false |
| | |
| | | private static String orderNo = null ; |
| | | private static String openValveDt = null ; |
| | | |
| | | private static Double totalWaterAmount = 1234.56 ;//累计æµé |
| | | private static Double remainMoney = 65.4321 ;//å©ä½éé¢ |
| | | private static Double totalWaterAmount = 12345.67 ;//累计æµé |
| | | private static Double remainMoney = 8765.4321 ;//å©ä½éé¢ |
| | | |
| | | private static Double thisWaterAmount = 100.00 ;//æ¬æ¬¡ä½¿ç¨æ°´é |
| | | private static Double thisMoney = 10.00 ;//æ¬æ¬¡ä½¿ç¨éé¢ |
| | |
| | | console: UTF-8 |
| | | config: |
| | | classpath: log4j2.yml |
| | | spring: |
| | | devtools: |
| | | livereload: |
| | | enabled: false |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <config> |
| | | <server name="RTU模æå¨ï¼çæ±æµ·ï¼" showStartInfo="true" company="http://www.dyjs.com"/> |
| | | <server name="RTU模æå¨ï¼è¡¨éä¸ä½æºï¼" showStartInfo="true" company="http://www.dyjs.com"/> |
| | | |
| | | </config> |
| | |
| | | <Console name="Console" target="SYSTEM_OUT"> |
| | | <PatternLayout charset="UTF-8" pattern="%d %-5p [%t] (%F:%L) - %m%n%throwable"/> |
| | | </Console> |
| | | <RollingFile name="File" fileName="logs/simRtu202404.log" filePattern="logs/simRtu-%d{yyyyMMdd}-%i.log"> |
| | | <RollingFile name="File" fileName="logs/simRtu202404.log" filePattern="logs/simRtu202404-%d{yyyyMMdd}-%i.log"> |
| | | <PatternLayout charset="UTF-8" pattern="%d %-5p [%t] (%class.%method:%L) - %m%n%throwable"/> |
| | | <Policies> |
| | | <TimeBasedTriggeringPolicy interval="7" /> |
| | |
| | | |
| | | <modules> |
| | | <module>pipIrr-mw-rtu</module> |
| | | <module>pipIrr-mw-rtu3rd</module> |
| | | <module>pipIrr-mw-simulate-rtu</module> |
| | | <module>pipIrr-mw-simulate-rtu202404</module> |
| | | <module>pipIrr-mwTest-server</module> |
| | | <module>pipIrr-mwTest-client</module> |
| | | <module>pipIrr-mw-shzTest</module> |
| | | </modules> |
| | | |
| | | <dependencies> |
New file |
| | |
| | | spring: |
| | | profiles: |
| | | #121æå¡å¨ï¼common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self |
| | | include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self |
New file |
| | |
| | | spring: |
| | | profiles: |
| | | #233æå¡å¨ï¼common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
| | | include: common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
New file |
| | |
| | | spring: |
| | | main: |
| | | allow-circular-references: true |
| | | #actutorçwebç«¯å£ |
| | | management: |
| | | server: |
| | | port: ${pipIrr.app.actutorPort} |
| | | #webæå¡ç«¯å£ï¼tomcaté»è®¤æ¯8088 |
| | | server: |
| | | port: ${pipIrr.app.webPort} |
| | | servlet: |
| | | context-path: /app #web访é®ä¸ä¸æè·¯å¾ |
| | | context-parameters: |
| | | #GenerateIdSetSuffixListenerä¸åºç¨ï¼åå¼èå´æ¯0-99 |
| | | idSuffix: ${pipIrr.app.idSuffix} |
| | | #MQTT |
| | | mqtt: |
| | | broker: tcp://127.0.0.1:1883 |
| | | username: mqtt_yjy |
| | | password: yjy |
| | | topic: workOrder |
| | | qos: 2 |
| | | |
| | | logging: |
| | | level: |
| | | com: |
| | | dy: |
| | | pipIrrGlobal: |
| | | daoOp: trace |
| | |
| | | spring: |
| | | profiles: |
| | | include: global, database, database-ym, database-sp, database-test,database-mj,database-mq |
| | | main: |
| | | allow-circular-references: true |
| | | |
| | | #actutorçwebç«¯å£ |
| | | management: |
| | | server: |
| | | port: ${pipIrr.app.actutorPort} |
| | | #webæå¡ç«¯å£ï¼tomcaté»è®¤æ¯8088 |
| | | server: |
| | | port: ${pipIrr.app.webPort} |
| | | servlet: |
| | | context-path: /app #web访é®ä¸ä¸æè·¯å¾ |
| | | context-parameters: |
| | | #GenerateIdSetSuffixListenerä¸åºç¨ï¼åå¼èå´æ¯0-99 |
| | | idSuffix: ${pipIrr.app.idSuffix} |
| | | #MQTT |
| | | mqtt: |
| | | broker: tcp://127.0.0.1:1883 |
| | | username: mqtt_yjy |
| | | password: yjy |
| | | topic: workOrder |
| | | qos: 2 |
| | | |
| | | logging: |
| | | level: |
| | | com: |
| | | dy: |
| | | pipIrrGlobal: |
| | | daoOp: trace |
| | | include: common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
New file |
| | |
| | | spring: |
| | | profiles: |
| | | #121æå¡å¨ï¼common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self |
| | | include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self |
New file |
| | |
| | | spring: |
| | | profiles: |
| | | #233æå¡å¨ï¼common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
| | | include: common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
New file |
| | |
| | | user: |
| | | defaultTrueRandomFalsePassword: true #true:éç¨é»è®¤å¯ç ï¼false:ç³»ç»äº§çéæºå¯ç |
| | | defaultPassword: "abc_123" |
| | | # defaultPassword: "admin" |
| | | |
| | | #actutorçwebç«¯å£ |
| | | management: |
| | | server: |
| | | port: ${pipIrr.base.actutorPort} |
| | | #webæå¡ç«¯å£ï¼tomcaté»è®¤æ¯8080 |
| | | server: |
| | | port: ${pipIrr.base.webPort} |
| | | servlet: |
| | | context-path: /base #web访é®ä¸ä¸æè·¯å¾ |
| | | context-parameters: |
| | | #GenerateIdSetSuffixListenerä¸åºç¨ï¼åå¼èå´æ¯0-99 |
| | | idSuffix: ${pipIrr.base.idSuffix} |
| | |
| | | spring: |
| | | profiles: |
| | | include: global, database, database-ym, database-sp, database-test,database-mj,database-mq |
| | | user: |
| | | defaultTrueRandomFalsePassword: true #true:éç¨é»è®¤å¯ç ï¼false:ç³»ç»äº§çéæºå¯ç |
| | | defaultPassword: "abc_123" |
| | | # defaultPassword: "admin" |
| | | |
| | | #actutorçwebç«¯å£ |
| | | management: |
| | | server: |
| | | port: ${pipIrr.base.actutorPort} |
| | | #webæå¡ç«¯å£ï¼tomcaté»è®¤æ¯8080 |
| | | server: |
| | | port: ${pipIrr.base.webPort} |
| | | servlet: |
| | | context-path: /base #web访é®ä¸ä¸æè·¯å¾ |
| | | context-parameters: |
| | | #GenerateIdSetSuffixListenerä¸åºç¨ï¼åå¼èå´æ¯0-99 |
| | | idSuffix: ${pipIrr.base.idSuffix} |
| | | include: common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
New file |
| | |
| | | spring: |
| | | profiles: |
| | | #121æå¡å¨ï¼common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self |
| | | include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self |
New file |
| | |
| | | spring: |
| | | profiles: |
| | | #233æå¡å¨ï¼common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
| | | include: common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
New file |
| | |
| | | #actutorçwebç«¯å£ |
| | | management: |
| | | server: |
| | | port: ${pipIrr.file1.actutorPort} |
| | | #webæå¡ç«¯å£ï¼tomcaté»è®¤æ¯8088 |
| | | server: |
| | | port: ${pipIrr.file1.webPort} |
| | | servlet: |
| | | context-path: /file #web访é®ä¸ä¸æè·¯å¾ |
| | | context-parameters: |
| | | #GenerateIdSetSuffixListenerä¸åºç¨ï¼åå¼èå´æ¯0-99 |
| | | idSuffix: ${pipIrr.file.idSuffix} |
| | |
| | | spring: |
| | | profiles: |
| | | include: global, database, database-ym, database-sp, database-test,database-mj,database-mq |
| | | |
| | | #actutorçwebç«¯å£ |
| | | management: |
| | | server: |
| | | port: ${pipIrr.file1.actutorPort} |
| | | #webæå¡ç«¯å£ï¼tomcaté»è®¤æ¯8088 |
| | | server: |
| | | port: ${pipIrr.file1.webPort} |
| | | servlet: |
| | | context-path: /file #web访é®ä¸ä¸æè·¯å¾ |
| | | context-parameters: |
| | | #GenerateIdSetSuffixListenerä¸åºç¨ï¼åå¼èå´æ¯0-99 |
| | | idSuffix: ${pipIrr.file.idSuffix} |
| | | include: common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
New file |
| | |
| | | spring: |
| | | profiles: |
| | | #121æå¡å¨ï¼common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self |
| | | include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self |
New file |
| | |
| | | spring: |
| | | profiles: |
| | | #233æå¡å¨ï¼common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
| | | include: common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
New file |
| | |
| | | #actutorçwebç«¯å£ |
| | | management: |
| | | server: |
| | | port: ${pipIrr.gis.actutorPort} |
| | | #webæå¡ç«¯å£ï¼tomcaté»è®¤æ¯8080 |
| | | server: |
| | | port: ${pipIrr.gis.webPort} |
| | | servlet: |
| | | context-path: /gis #web访é®ä¸ä¸æè·¯å¾ |
| | | context-parameters: |
| | | #GenerateIdSetSuffixListenerä¸åºç¨ï¼åå¼èå´æ¯0-99 |
| | | idSuffix: ${pipIrr.gis.idSuffix} |
| | |
| | | spring: |
| | | profiles: |
| | | include: global, database, database-ym, database-sp, database-test,database-mj,database-mq |
| | | |
| | | #actutorçwebç«¯å£ |
| | | management: |
| | | server: |
| | | port: ${pipIrr.gis.actutorPort} |
| | | #webæå¡ç«¯å£ï¼tomcaté»è®¤æ¯8080 |
| | | server: |
| | | port: ${pipIrr.gis.webPort} |
| | | servlet: |
| | | context-path: /gis #web访é®ä¸ä¸æè·¯å¾ |
| | | context-parameters: |
| | | #GenerateIdSetSuffixListenerä¸åºç¨ï¼åå¼èå´æ¯0-99 |
| | | idSuffix: ${pipIrr.gis.idSuffix} |
| | | include: common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
New file |
| | |
| | | spring: |
| | | profiles: |
| | | #121æå¡å¨ï¼common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self |
| | | include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self |
New file |
| | |
| | | spring: |
| | | profiles: |
| | | #233æå¡å¨ï¼common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
| | | include: common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
New file |
| | |
| | | #actutorçwebç«¯å£ |
| | | management: |
| | | server: |
| | | port: ${pipIrr.irrigate.actutorPort} |
| | | #webæå¡ç«¯å£ï¼8086 |
| | | server: |
| | | port: ${pipIrr.irrigate.webPort} |
| | | servlet: |
| | | context-path: /irrigate #web访é®ä¸ä¸æè·¯å¾ |
| | | context-parameters: |
| | | #GenerateIdSetSuffixListenerä¸åºç¨ï¼åå¼èå´æ¯0-99 |
| | | idSuffix: ${pipIrr.irrigate.idSuffix} |
| | |
| | | spring: |
| | | profiles: |
| | | include: global, database, database-ym, database-sp, database-test,database-mj,database-mq |
| | | |
| | | #actutorçwebç«¯å£ |
| | | management: |
| | | server: |
| | | port: ${pipIrr.irrigate.actutorPort} |
| | | #webæå¡ç«¯å£ï¼8086 |
| | | server: |
| | | port: ${pipIrr.irrigate.webPort} |
| | | servlet: |
| | | context-path: /irrigate #web访é®ä¸ä¸æè·¯å¾ |
| | | context-parameters: |
| | | #GenerateIdSetSuffixListenerä¸åºç¨ï¼åå¼èå´æ¯0-99 |
| | | idSuffix: ${pipIrr.irrigate.idSuffix} |
| | | profiles: |
| | | include: common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
New file |
| | |
| | | spring: |
| | | profiles: |
| | | #121æå¡å¨ï¼common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self |
| | | include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self |
New file |
| | |
| | | spring: |
| | | profiles: |
| | | #233æå¡å¨ï¼common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
| | | include: common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
New file |
| | |
| | | #actutorçwebç«¯å£ |
| | | management: |
| | | server: |
| | | port: ${pipIrr.operation.actutorPort} |
| | | #webæå¡ç«¯å£ï¼tomcaté»è®¤æ¯8089 |
| | | server: |
| | | port: ${pipIrr.operation.webPort} |
| | | servlet: |
| | | context-path: /operation #web访é®ä¸ä¸æè·¯å¾ |
| | | context-parameters: |
| | | #GenerateIdSetSuffixListenerä¸åºç¨ï¼åå¼èå´æ¯0-99 |
| | | idSuffix: ${pipIrr.operation.idSuffix} |
| | |
| | | spring: |
| | | profiles: |
| | | include: global, database, database-ym, database-sp, database-test,database-mj,database-mq |
| | | |
| | | #actutorçwebç«¯å£ |
| | | management: |
| | | server: |
| | | port: ${pipIrr.operation.actutorPort} |
| | | #webæå¡ç«¯å£ï¼tomcaté»è®¤æ¯8089 |
| | | server: |
| | | port: ${pipIrr.operation.webPort} |
| | | servlet: |
| | | context-path: /operation #web访é®ä¸ä¸æè·¯å¾ |
| | | context-parameters: |
| | | #GenerateIdSetSuffixListenerä¸åºç¨ï¼åå¼èå´æ¯0-99 |
| | | idSuffix: ${pipIrr.operation.idSuffix} |
| | | include: common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
| | |
| | | */ |
| | | |
| | | public int update(PrIntake po) { |
| | | if (po.getTownId() == null || po.getTownId() == 0) { |
| | | Long townId = getSupperByVillageId(po.getVillageId()); |
| | | po.setTownId(townId); |
| | | } |
| | | if (po.getCountyId() == null || po.getCountyId() == 0) { |
| | | Long countyId = getSupperByVillageId(getSupperByVillageId(po.getVillageId())); |
| | | po.setCountyId(countyId); |
| | | } |
| | | // if (po.getTownId() == null || po.getTownId() == 0) { |
| | | // Long townId = getSupperByVillageId(po.getVillageId()); |
| | | // po.setTownId(townId); |
| | | // } |
| | | // if (po.getCountyId() == null || po.getCountyId() == 0) { |
| | | // Long countyId = getSupperByVillageId(getSupperByVillageId(po.getVillageId())); |
| | | // po.setCountyId(countyId); |
| | | // } |
| | | return this.prIntakeMapper.updateByPrimaryKeySelective(po); |
| | | // return this.prIntakeMapper.updateByPrimaryKey(po); |
| | | } |
New file |
| | |
| | | spring: |
| | | profiles: |
| | | #121æå¡å¨ï¼common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self |
| | | include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self |
New file |
| | |
| | | spring: |
| | | profiles: |
| | | #233æå¡å¨ï¼common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
| | | include: common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
New file |
| | |
| | | #actutorçwebç«¯å£ |
| | | management: |
| | | server: |
| | | port: ${pipIrr.project.actutorPort} |
| | | #webæå¡ç«¯å£ï¼8085 |
| | | server: |
| | | port: ${pipIrr.project.webPort} |
| | | servlet: |
| | | context-path: /project #web访é®ä¸ä¸æè·¯å¾ |
| | | context-parameters: |
| | | #GenerateIdSetSuffixListenerä¸åºç¨ï¼åå¼èå´æ¯0-99 |
| | | idSuffix: ${pipIrr.project.idSuffix} |
| | |
| | | spring: |
| | | profiles: |
| | | include: global, database, database-ym, database-sp, database-test,database-mj,database-mq |
| | | |
| | | #actutorçwebç«¯å£ |
| | | management: |
| | | server: |
| | | port: ${pipIrr.project.actutorPort} |
| | | #webæå¡ç«¯å£ï¼8085 |
| | | server: |
| | | port: ${pipIrr.project.webPort} |
| | | servlet: |
| | | context-path: /project #web访é®ä¸ä¸æè·¯å¾ |
| | | context-parameters: |
| | | #GenerateIdSetSuffixListenerä¸åºç¨ï¼åå¼èå´æ¯0-99 |
| | | idSuffix: ${pipIrr.project.idSuffix} |
| | | profiles: |
| | | include: common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
| | |
| | | // è®¾ç½®å®æ¶åç§ä¸æ¬¡ |
| | | @Scheduled(cron = "0/10 * * * * ?") |
| | | public void WsHeartBeat() throws Exception { |
| | | WebSocketServer.sendAllMessage(getHeartBeatMessage()); |
| | | WebSocketServer.sendMessage2AllClient(getHeartBeatMessage()); |
| | | } |
| | | |
| | | public static String getHeartBeatMessage() { |
| | |
| | | /** |
| | | * æå¡å¨ä¸»å¨ç¾¤æ¨éæ¶æ¯ |
| | | */ |
| | | public static void sendAllMessage(String message) throws IOException { |
| | | public static void sendMessage2AllClient(String message) throws IOException { |
| | | ConcurrentHashMap.KeySetView<String, WebSocketServer> ids = webSocketMap.keySet(); |
| | | for (String id : ids) { |
| | | WebSocketServer webSocketServer = webSocketMap.get(id); |
| | |
| | | /** |
| | | * æå¡å¨æå®å®¢æ·ç«¯æ¨éæ¶æ¯ |
| | | */ |
| | | public static void sendOneMessage(String message, String id) throws IOException { |
| | | public static void sendMessage2OneClient(String message, String id) throws IOException { |
| | | if (message != null && message.length() != 0 && webSocketMap.containsKey(id)) { |
| | | webSocketMap.get(id).sendMessage(message); |
| | | } else { |
| | |
| | | vo.type = WebSocketMessage.TYPE_JSON ; |
| | | vo.content = list ; |
| | | try { |
| | | WebSocketServer.sendAllMessage(JSON.toJSONString(vo)); |
| | | WebSocketServer.sendMessage2AllClient(JSON.toJSONString(vo)); |
| | | }catch (Exception e){ |
| | | log.error("æ¨éæ¶æ¯å¤±è´¥", e) ; |
| | | } |
New file |
| | |
| | | spring: |
| | | profiles: |
| | | #121æå¡å¨ï¼common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self |
| | | include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self |
New file |
| | |
| | | spring: |
| | | profiles: |
| | | #233æå¡å¨ï¼common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
| | | include: common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
New file |
| | |
| | | #actutorçwebç«¯å£ |
| | | management: |
| | | server: |
| | | port: ${pipIrr.remote.actutorPort} |
| | | #webæå¡ç«¯å£ï¼tomcaté»è®¤æ¯8081 |
| | | server: |
| | | port: ${pipIrr.remote.webPort} |
| | | servlet: |
| | | context-path: /remote #web访é®ä¸ä¸æè·¯å¾ |
| | | context-parameters: |
| | | #GenerateIdSetSuffixListenerä¸åºç¨ï¼åå¼èå´æ¯0-99 |
| | | idSuffix: ${pipIrr.remote.idSuffix} |
| | |
| | | spring: |
| | | profiles: |
| | | include: global, database, database-ym, database-sp, database-test,database-mj,database-mq |
| | | |
| | | #actutorçwebç«¯å£ |
| | | management: |
| | | server: |
| | | port: ${pipIrr.remote.actutorPort} |
| | | #webæå¡ç«¯å£ï¼tomcaté»è®¤æ¯8081 |
| | | server: |
| | | port: ${pipIrr.remote.webPort} |
| | | servlet: |
| | | context-path: /remote #web访é®ä¸ä¸æè·¯å¾ |
| | | context-parameters: |
| | | #GenerateIdSetSuffixListenerä¸åºç¨ï¼åå¼èå´æ¯0-99 |
| | | idSuffix: ${pipIrr.remote.idSuffix} |
| | | include: common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
New file |
| | |
| | | spring: |
| | | profiles: |
| | | #121æå¡å¨ï¼common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self |
| | | include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self |
New file |
| | |
| | | spring: |
| | | profiles: |
| | | #233æå¡å¨ï¼common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
| | | include: common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
New file |
| | |
| | | #actutorçwebç«¯å£ |
| | | management: |
| | | server: |
| | | port: ${pipIrr.sell.actutorPort} |
| | | #webæå¡ç«¯å£ï¼8084 |
| | | server: |
| | | port: ${pipIrr.sell.webPort} |
| | | servlet: |
| | | context-path: /sell #web访é®ä¸ä¸æè·¯å¾ |
| | | context-parameters: |
| | | #GenerateIdSetSuffixListenerä¸åºç¨ï¼åå¼èå´æ¯0-99 |
| | | idSuffix: ${pipIrr.sell.idSuffix} |
| | | |
| | | #é¿éçä¿¡æå¡ |
| | | aliyun: |
| | | sms: |
| | | sms-access-key-id: LTAI5tPCmHqfyJ9YnoPorEwt |
| | | sms-access-key-secret: sU2CoLdNgcjnf5uPPU2dY7NNGNvOIX |
| | | sms-template-code: SMS_460776024 |
| | | sms-sign-name: å¤§ç¦¹èæ°´ |
| | | #redis |
| | | redis: |
| | | host: localhost |
| | | #password:ææ¯æ²¡é
ç½®å¯ç ç |
| | | port: 6379 |
| | | database: 6 #æä½çæ¯6å·æ°æ®åº |
| | | pool: |
| | | max-active: 8 #æå¤§è¿æ¥æ° |
| | | max-wait: -1 #è¿æ¥æ± æå¤§é»å¡çå¾
æ¶é´ -1表示æ é |
| | | max-idle: 4 #è¿æ¥æ± ä¸çæå¤§ç©ºé²è¿æ¥ |
| | | min-idle: 0 #è¿æ¥æ± ä¸çæå°ç©ºé²è¿æ¥ |
| | |
| | | spring: |
| | | profiles: |
| | | include: global, database, database-ym, database-sp, database-test,database-mj,database-mq |
| | | |
| | | #actutorçwebç«¯å£ |
| | | management: |
| | | server: |
| | | port: ${pipIrr.sell.actutorPort} |
| | | #webæå¡ç«¯å£ï¼8084 |
| | | server: |
| | | port: ${pipIrr.sell.webPort} |
| | | servlet: |
| | | context-path: /sell #web访é®ä¸ä¸æè·¯å¾ |
| | | context-parameters: |
| | | #GenerateIdSetSuffixListenerä¸åºç¨ï¼åå¼èå´æ¯0-99 |
| | | idSuffix: ${pipIrr.sell.idSuffix} |
| | | |
| | | #é¿éçä¿¡æå¡ |
| | | aliyun: |
| | | sms: |
| | | sms-access-key-id: LTAI5tPCmHqfyJ9YnoPorEwt |
| | | sms-access-key-secret: sU2CoLdNgcjnf5uPPU2dY7NNGNvOIX |
| | | sms-template-code: SMS_460776024 |
| | | sms-sign-name: å¤§ç¦¹èæ°´ |
| | | #redis |
| | | redis: |
| | | host: localhost |
| | | #password:ææ¯æ²¡é
ç½®å¯ç ç |
| | | port: 6379 |
| | | database: 6 #æä½çæ¯6å·æ°æ®åº |
| | | pool: |
| | | max-active: 8 #æå¤§è¿æ¥æ° |
| | | max-wait: -1 #è¿æ¥æ± æå¤§é»å¡çå¾
æ¶é´ -1表示æ é |
| | | max-idle: 4 #è¿æ¥æ± ä¸çæå¤§ç©ºé²è¿æ¥ |
| | | min-idle: 0 #è¿æ¥æ± ä¸çæå°ç©ºé²è¿æ¥ |
| | | profiles: |
| | | include: common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
New file |
| | |
| | | spring: |
| | | profiles: |
| | | #121æå¡å¨ï¼common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self |
| | | include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self |
New file |
| | |
| | | spring: |
| | | profiles: |
| | | #233æå¡å¨ï¼common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
| | | include: common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
New file |
| | |
| | | #actutorçwebç«¯å£ |
| | | management: |
| | | server: |
| | | port: ${pipIrr.sso.actutorPort} |
| | | #webæå¡ç«¯å£ï¼tomcaté»è®¤æ¯8080 |
| | | server: |
| | | port: ${pipIrr.sso.webPort} |
| | | servlet: |
| | | context-path: /sso #web访é®ä¸ä¸æè·¯å¾ |
| | | context-parameters: |
| | | #GenerateIdSetSuffixListenerä¸åºç¨ï¼åå¼èå´æ¯0-99 |
| | | IdSuffix: ${pipIrr.sso.IdSuffix} |
| | |
| | | spring: |
| | | profiles: |
| | | include: global, database, database-ym, database-sp, database-test,database-mj,database-mq |
| | | |
| | | #actutorçwebç«¯å£ |
| | | management: |
| | | server: |
| | | port: ${pipIrr.sso.actutorPort} |
| | | #webæå¡ç«¯å£ï¼tomcaté»è®¤æ¯8080 |
| | | server: |
| | | port: ${pipIrr.sso.webPort} |
| | | servlet: |
| | | context-path: /sso #web访é®ä¸ä¸æè·¯å¾ |
| | | context-parameters: |
| | | #GenerateIdSetSuffixListenerä¸åºç¨ï¼åå¼èå´æ¯0-99 |
| | | IdSuffix: ${pipIrr.sso.IdSuffix} |
| | | include: common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
New file |
| | |
| | | spring: |
| | | profiles: |
| | | #121æå¡å¨ï¼common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self |
| | | include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self |
New file |
| | |
| | | spring: |
| | | profiles: |
| | | #233æå¡å¨ï¼common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
| | | include: common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
New file |
| | |
| | | #actutorçwebç«¯å£ |
| | | management: |
| | | server: |
| | | port: ${pipIrr.statistics.actutorPort} |
| | | #webæå¡ç«¯å£ï¼tomcaté»è®¤æ¯8080 |
| | | server: |
| | | port: ${pipIrr.statistics.webPort} |
| | | servlet: |
| | | context-path: /statistics #web访é®ä¸ä¸æè·¯å¾ |
| | | context-parameters: |
| | | #GenerateIdSetSuffixListenerä¸åºç¨ï¼åå¼èå´æ¯0-99 |
| | | idSuffix: ${pipIrr.statistics.idSuffix} |
| | |
| | | spring: |
| | | profiles: |
| | | include: global, database, database-ym, database-sp, database-test,database-mj,database-mq |
| | | |
| | | #actutorçwebç«¯å£ |
| | | management: |
| | | server: |
| | | port: ${pipIrr.statistics.actutorPort} |
| | | #webæå¡ç«¯å£ï¼tomcaté»è®¤æ¯8080 |
| | | server: |
| | | port: ${pipIrr.statistics.webPort} |
| | | servlet: |
| | | context-path: /statistics #web访é®ä¸ä¸æè·¯å¾ |
| | | context-parameters: |
| | | #GenerateIdSetSuffixListenerä¸åºç¨ï¼åå¼èå´æ¯0-99 |
| | | idSuffix: ${pipIrr.statistics.idSuffix} |
| | | include: common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
New file |
| | |
| | | spring: |
| | | profiles: |
| | | #121æå¡å¨ï¼common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self |
| | | include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self |
New file |
| | |
| | | spring: |
| | | profiles: |
| | | #233æå¡å¨ï¼common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
| | | include: common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
New file |
| | |
| | | user: |
| | | defaultTrueRandomFalsePassword: true #true:éç¨é»è®¤å¯ç ï¼false:ç³»ç»äº§çéæºå¯ç |
| | | defaultPassword: "abc_123" |
| | | # defaultPassword: "admin" |
| | | |
| | | #actutorçwebç«¯å£ |
| | | management: |
| | | server: |
| | | port: ${pipIrr.temp.actutorPort} |
| | | #webæå¡ç«¯å£ï¼tomcaté»è®¤æ¯8080 |
| | | server: |
| | | port: ${pipIrr.temp.webPort} |
| | | servlet: |
| | | context-path: /temp #web访é®ä¸ä¸æè·¯å¾ |
| | | context-parameters: |
| | | #GenerateIdSetSuffixListenerä¸åºç¨ï¼åå¼èå´æ¯0-99 |
| | | idSuffix: ${pipIrr.temp.idSuffix} |
| | |
| | | spring: |
| | | profiles: |
| | | include: global, database, database-ym, database-sp, database-test,database-mj,database-mq |
| | | user: |
| | | defaultTrueRandomFalsePassword: true #true:éç¨é»è®¤å¯ç ï¼false:ç³»ç»äº§çéæºå¯ç |
| | | defaultPassword: "abc_123" |
| | | # defaultPassword: "admin" |
| | | |
| | | #actutorçwebç«¯å£ |
| | | management: |
| | | server: |
| | | port: ${pipIrr.temp.actutorPort} |
| | | #webæå¡ç«¯å£ï¼tomcaté»è®¤æ¯8080 |
| | | server: |
| | | port: ${pipIrr.temp.webPort} |
| | | servlet: |
| | | context-path: /temp #web访é®ä¸ä¸æè·¯å¾ |
| | | context-parameters: |
| | | #GenerateIdSetSuffixListenerä¸åºç¨ï¼åå¼èå´æ¯0-99 |
| | | idSuffix: ${pipIrr.temp.idSuffix} |
| | | include: common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
New file |
| | |
| | | spring: |
| | | profiles: |
| | | #121æå¡å¨ï¼common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self |
| | | include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self |
New file |
| | |
| | | spring: |
| | | profiles: |
| | | #233æå¡å¨ï¼common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
| | | include: common-web, global, database, database-ym, database-sp, database-test,database-mj, self |
New file |
| | |
| | | spring: |
| | | jpa: |
| | | show-sql=true:#actutorçwebç«¯å£ |
| | | management: |
| | | server: |
| | | port: ${pipIrr.wechat.actutorPort} |
| | | #webæå¡ç«¯å£ï¼tomcaté»è®¤æ¯8087 |
| | | server: |
| | | port: ${pipIrr.wechat.webPort} |
| | | servlet: |
| | | context-path: /wx #web访é®ä¸ä¸æè·¯å¾ |
| | | context-parameters: |
| | | #GenerateIdSetSuffixListenerä¸åºç¨ï¼åå¼èå´æ¯0-99 |
| | | idSuffix: ${pipIrr.wechat.idSuffix} |
| | | |
| | | #é¿éçä¿¡æå¡ |
| | | aliyun: |
| | | sms: |
| | | sms-access-key-id: LTAI5tPCmHqfyJ9YnoPorEwt |
| | | sms-access-key-secret: sU2CoLdNgcjnf5uPPU2dY7NNGNvOIX |
| | | sms-template-code: SMS_460776024 |
| | | sms-sign-name: å¤§ç¦¹èæ°´ |
| | |
| | | spring: |
| | | profiles: |
| | | include: global, database, database-ym, database-sp, database-test,database-mj,database-mq |
| | | |
| | | |
| | | jpa: |
| | | show-sql=true:#actutorçwebç«¯å£ |
| | | management: |
| | | server: |
| | | port: ${pipIrr.wechat.actutorPort} |
| | | #webæå¡ç«¯å£ï¼tomcaté»è®¤æ¯8087 |
| | | server: |
| | | port: ${pipIrr.wechat.webPort} |
| | | servlet: |
| | | context-path: /wx #web访é®ä¸ä¸æè·¯å¾ |
| | | context-parameters: |
| | | #GenerateIdSetSuffixListenerä¸åºç¨ï¼åå¼èå´æ¯0-99 |
| | | idSuffix: ${pipIrr.wechat.idSuffix} |
| | | |
| | | #é¿éçä¿¡æå¡ |
| | | aliyun: |
| | | sms: |
| | | sms-access-key-id: LTAI5tPCmHqfyJ9YnoPorEwt |
| | | sms-access-key-secret: sU2CoLdNgcjnf5uPPU2dY7NNGNvOIX |
| | | sms-template-code: SMS_460776024 |
| | | sms-sign-name: å¤§ç¦¹èæ°´ |
| | | include: common-web, global, database, database-ym, database-sp, database-test,database-mj, self |