/*系统参数查询*/ package com.back.protocol; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Properties; import com.back.action.Log; import com.back.common.MeterTimingParams; import com.back.common.OpcDeviceParams; import com.back.common.RunParams; import com.back.jdbc.SQLHelper; import com.back.*; public class SystemParameter { public static RunParams runParams = new RunParams(); //前置机运行参数 public static MeterTimingParams meterTimingParams = new MeterTimingParams();//定采运行参数 public static OpcDeviceParams opcDeviceParams = new OpcDeviceParams();// opc客户端运行参数 private static String clazzName = new Object() { public String getClassName() { String clazzName = this.getClass().getName(); return clazzName.substring(0, clazzName.lastIndexOf('$')); } }.getClassName(); /** 获取定采工作配置参数 */ public static MeterTimingParams GetMeterTiming() { meterTimingParams.reSend = 3; //错误重发次数 meterTimingParams.parallel = 30; //并发次数 meterTimingParams.logSet = 2; //巡检日志工作状态 0 不记录 1 记录错误 2 全部记录 meterTimingParams.intervalTiming = 30;//运行间隔时间(补抄) 单位:分钟 meterTimingParams.runNum = 8; meterTimingParams.density = 1;//曲线抄表间隔 int i,j; String str; String strsql = "SELECT code,content FROM syscode WHERE type=2 AND code>'0000' ORDER BY code"; java.sql.Statement stmt = null; ResultSet rSet = SQLHelper.getResultSet(strsql); if (rSet == null) { Log.writelog(SystemParameter.clazzName,Thread.currentThread().getStackTrace()[1].getMethodName() + "->读取定采工作配置参数不成功!"); return null; } try { while (rSet.next()) { str = rSet.getString("code"); str = str.trim(); i = Integer.valueOf(str); str = rSet.getString("content"); switch(i) { case 1://错误重发次数 meterTimingParams.reSend = Integer.valueOf(str); break; case 2://并发次数 meterTimingParams.parallel = Integer.valueOf(str); break; case 3://巡检日志工作状态 0 不记录 1 记录错误 2 全部记录 meterTimingParams.logSet = Integer.valueOf(str); break; case 4://开始时间 格式: HH:MM meterTimingParams.firstRunTime = str; break; case 5://运行间隔时间 单位:分钟 meterTimingParams.intervalTiming = Integer.valueOf(str); break; case 6://每天运行次数 meterTimingParams.runNum = Integer.valueOf(str); break; case 7://曲线密度 0:不冻结 1:15 2:30 3:60 254:5 255:1 meterTimingParams.density = Integer.valueOf(str); break; case 8://通信包大小 meterTimingParams.packsize = Integer.valueOf(str); break; case 9://光感控制-照度变化阀值 meterTimingParams.luxChangeLimit = Long.valueOf(str); break; } } } catch (SQLException e) { Log.writelog(SystemParameter.clazzName,Thread.currentThread().getStackTrace()[1].getMethodName() + "->ERROR:" + e.getMessage()); } try { stmt = rSet.getStatement(); rSet.close(); stmt.close(); rSet = null; stmt = null; } catch (Exception e) { e.printStackTrace(); } return meterTimingParams; } /** 获取电表定采工作设置参数 */ public static String GetPowerTiming() { String result = ""; String content[] = new String[4]; content[0] = "1"; //数据冻结密度(m)(1:15分钟;2:30分钟;3:60分钟) content[1] = "3"; //补抄次数 content[2] = "06"; //日冻结数据抄读时间(整点) 格式:HH Object[] objects; String str; int i,j; String strsql = "SELECT code, content FROM syscode WHERE type=62 AND code>'0000' ORDER BY code"; java.sql.Statement stmt = null; ResultSet rSet = SQLHelper.getResultSet(strsql); if (rSet == null) { return ""; } try { while (rSet.next()) { str = rSet.getString("code"); str = str.trim(); i = Integer.valueOf(str); content[i - 1] = rSet.getString("content"); } } catch (SQLException e) { Log.writelog(SystemParameter.clazzName,Thread.currentThread().getStackTrace()[1].getMethodName() + "->ERROR:" + e.getMessage()); } try { stmt = rSet.getStatement(); rSet.close(); stmt.close(); rSet = null; stmt = null; } catch (Exception e) { e.printStackTrace(); } for ( j = 0; j < content.length; j++) { if (j==0) result = content[j]; else result = result + '|' + content[j]; } return result; } //运行参数结构体 /*配置参数 */ public static RunParams GetPostParams() { runParams.gprsIp = "1.190.175.75";//GPRS服务器IP (黑龙电服务器) runParams.gprsPort = 3040;//GPRS服务器端口 runParams.gprsIpLon = "1.190.175.75";//GPRS服务器IP (黑龙服务器) runParams.gprsPortLon = 3040;//GPRS服务器端口 runParams.reSend =1; //错误重发次数 runParams.gprsTimeOut = 60000;//GPRS超时时间(单位:毫秒) runParams.timeDiscard = 120;//指令超时不处理时间(单位:秒) runParams.threadsize = 200;//指令转发处理线程池线程数 runParams.intervalEvent = 1;//数据报文解析处理间隔时间(单位:分钟) runParams.intervalScan = 20;//检测线程池线程运行状态间隔时间 runParams.terminalCom = "com1" ;//集中器串口 //获取语言 try { //InputStream ins = new FileInputStream(System.getProperty("user.dir") + "\\conn.properties"); InputStream ins = SQLHelper.class.getClassLoader().getResourceAsStream("conn.properties"); Properties p = new Properties(); p.load(ins); runParams.language = p.getProperty("language"); runParams.opcControl = Boolean.valueOf(p.getProperty("opcControl"));//光控转发处理 runParams.MControlTiming15 = Boolean.valueOf(p.getProperty("MControlTiming15"));//线路开关 15分钟定时抄读任务 runParams.MControlTiming60 = Boolean.valueOf(p.getProperty("MControlTiming60"));//线路开关 60分钟定时抄读任务 runParams.LampTiming = Boolean.valueOf(p.getProperty("LampTiming"));//路灯曲线 抄读任务 runParams.ForWard485 = Boolean.valueOf(p.getProperty("ForWard485"));//485转发 抄读任务 runParams.LampDay3761Timing = Boolean.valueOf(p.getProperty("LampDay3761Timing"));//灯具 日冻结 抄读任务 runParams.TerminalDay3761Timing = Boolean.valueOf(p.getProperty("TerminalDay3761Timing"));//集中器 日冻结 抄读任务 runParams.AnalysisOfTunnelElectricity = Boolean.valueOf(p.getProperty("AnalysisOfTunnelElectricity"));//隧道电量分析 runParams.gprsIp = p.getProperty("gprsIp"); runParams.gprsPort = 2030; } catch (IOException e) { // TODO Auto-generated catch block Log.writelog(SystemParameter.clazzName,Thread.currentThread().getStackTrace()[1].getMethodName() + "->ERROR:" + e.getMessage()); } int i,j; String strsql = "SELECT code,content FROM syscode WHERE type=60 AND code>'0000' ORDER BY code"; java.sql.Statement stmt = null; ResultSet rSet = SQLHelper.getResultSet(strsql); if (rSet == null) { if (runParams.language.equals("en")) Log.writelog(SystemParameter.clazzName,Thread.currentThread().getStackTrace()[1].getMethodName() + "->Read the frontend configuration parameter is not successful!"); else Log.writelog(SystemParameter.clazzName,Thread.currentThread().getStackTrace()[1].getMethodName() + "->读取前置机配置参数不成功!"); return runParams; } String str; try { while (rSet.next()) { str = rSet.getString("code"); str = str.trim(); i = Integer.valueOf(str); str = rSet.getString("content").trim(); switch (i) { case 1: //GPRS服务器 runParams.gprsIp = str; break; case 2://GPRS服务器端口 runParams.gprsPort = Integer.valueOf(str); break; case 3://错误重发次数千 runParams.reSend = Integer.valueOf(str); break; case 4://GPRS通信超时时间(单位:毫秒) runParams.gprsTimeOut = Integer.valueOf(str); break; case 5://指令超时不处理时间(单位:秒) runParams.timeDiscard = Integer.valueOf(str); break; case 6://指转发处理线程池大小 runParams.threadsize = Integer.valueOf(str); break; case 7://事件处理间隔(单位:分钟) runParams.intervalEvent = Integer.valueOf(str); break; case 8://检测试线程运行间隔(单位:分钟) runParams.intervalScan = Integer.valueOf(str); break; case 9://本地串口通信端口(例:com1) runParams.terminalCom = str.toUpperCase(); break; case 10://串口通信超时时间 runParams.comTimeOut = Integer.valueOf(str); break; case 11://485总线通信口 runParams.terminalCom485 = str.toUpperCase(); break; case 12://485集中器心跳周期 runParams.beat485 = Integer.valueOf(str); break; case 13://485集中器命令超时时间 runParams.comTimeOut485 = Integer.valueOf(str); break; case 15: {// 设备数据同步周期(单位:秒) runParams.devideSyncTime = Integer.valueOf(str); break; } case 16: {// websocket ip runParams.websocketIp = str; break; } case 17: {// websocket port runParams.websocketPort = Integer.valueOf(str); break; } case 18: { // 车检器连接IP runParams.carCheckSocketIp = str; break; } case 19: {// 车检器连接端口 runParams.carCheckSocketPort = Integer.valueOf(str); break; } case 20: { runParams.carCheckSocketTimeOut = Integer.valueOf(str); break; } case 21: { runParams.carCheckSocketSaveInteval = Integer.valueOf(str); break; } case 30: //GPRS服务器 Lon16 runParams.gprsIpLon = str; break; case 31://GPRS服务器端口 Lon16 runParams.gprsPortLon = Integer.valueOf(str); break; default: break; } } } catch (Exception e) { Log.writelog(SystemParameter.clazzName,Thread.currentThread().getStackTrace()[1].getMethodName() + "->ERROR:" + e.getMessage()); } String strsql2 = "SELECT code,content FROM syscode WHERE type=100 AND code>'0000' ORDER BY code"; java.sql.Statement stmt2 = null; ResultSet rSet2 = SQLHelper.getResultSet(strsql2); if (rSet2 == null) { if (runParams.language.equals("en")) Log.writelog(SystemParameter.clazzName,Thread.currentThread().getStackTrace()[1].getMethodName() + "->Read the frontend configuration parameter is not successful!"); else Log.writelog(SystemParameter.clazzName,Thread.currentThread().getStackTrace()[1].getMethodName() + "->读取前置机配置参数不成功!"); return runParams; } String str2; try { while (rSet2.next()) { str2 = rSet2.getString("code"); str2 = str2.trim(); i = Integer.valueOf(str2); str2 = rSet2.getString("content").trim(); switch (i) { case 2: {// 车检器是否开启 runParams.carCheckSocketIsOpen = "0".equals(str2)?false:true; break; } } } } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } try { stmt = rSet.getStatement(); rSet.close(); stmt.close(); rSet = null; stmt = null; stmt2 = rSet2.getStatement(); rSet2.close(); stmt2.close(); rSet2 = null; stmt2 = null; } catch (Exception e) { e.printStackTrace(); } return runParams; } /** * opc配置参数 * @return */ public static OpcDeviceParams GetOpcDeviceParams() { opcDeviceParams.opcIp = "127.0.0.1"; opcDeviceParams.opcPort = "49320"; opcDeviceParams.opcTimeOut = 30; String strsql = "SELECT code,content FROM syscode WHERE type=25 AND code>'0000' ORDER BY code"; ResultSet rSet = SQLHelper.getResultSet(strsql); if (rSet == null) { if (runParams.language.equals("en")) { Log.writelog(SystemParameter.clazzName,Thread.currentThread().getStackTrace()[1].getMethodName() + "->Read the frontend configuration parameter is not successful!"); } else { Log.writelog(SystemParameter.clazzName,Thread.currentThread().getStackTrace()[1].getMethodName() + "->读取前置机配置参数不成功!"); } return opcDeviceParams; } String str; int i,j; try { while (rSet.next()) { str = rSet.getString("code"); str = str.trim(); i = Integer.valueOf(str); str = rSet.getString("content").trim(); switch (i) { case 1: opcDeviceParams.enable = "0".equals(str)?false:true; case 2: opcDeviceParams.opcIp = str; break; case 3: opcDeviceParams.opcPort = str; break; case 4: opcDeviceParams.opcUserName = str; break; case 5: opcDeviceParams.opcPassword = str; break; case 6: opcDeviceParams.opcCycleTime = Integer.valueOf(str); break; case 7: opcDeviceParams.opcTimeOut = Integer.valueOf(str); break; default: break; } } } catch (Exception e) { Log.writelog(SystemParameter.clazzName,Thread.currentThread().getStackTrace()[1].getMethodName() + "->ERROR:" + e.getMessage()); } return opcDeviceParams; } /** 获取短信猫配置参数 */ public static String getSmsParams() { String result = ""; String strsql = "SELECT content FROM syscode WHERE type=61 AND code='0004' ORDER BY code"; java.sql.Statement stmt = null; ResultSet rSet = SQLHelper.getResultSet(strsql); if (rSet == null) { Log.writelog(SystemParameter.clazzName,Thread.currentThread().getStackTrace()[1].getMethodName() + "->读取短信猫配置参数不成功!"); return ""; } try { while (rSet.next()) { result = result + rSet.getString("content") + "|"; } } catch (Exception e) { Log.writelog(SystemParameter.clazzName,Thread.currentThread().getStackTrace()[1].getMethodName() + "->ERROR:" + e.getMessage()); } try { stmt = rSet.getStatement(); rSet.close(); stmt.close(); rSet = null; stmt = null; } catch (Exception e) { e.printStackTrace(); } if (!result.equals("")) { result = result.substring(0, result.length() - 1); } return result; } /** 获取短信信息中心号码 */ public static String getenter() { String center = ""; String strsql = "select content from syscode where type=61 and code='0001'"; java.sql.Statement stmt = null; ResultSet rSet = SQLHelper.getResultSet(strsql); if (rSet == null) { return ""; } try { while (rSet.next()) { center = rSet.getString("content"); } } catch (SQLException e) { e.printStackTrace(); } try { stmt = rSet.getStatement(); rSet.close(); stmt.close(); rSet = null; stmt = null; } catch (Exception e) { e.printStackTrace(); } return center; } /** 获取短信息最大发送次数 */ public static int getmaxCount() { int count = 0; String strsql = "select content from syscode where type=61 and code='0003'"; java.sql.Statement stmt = null; ResultSet rSet = SQLHelper.getResultSet(strsql); if (rSet == null) { return 0; } try { while (rSet.next()) { count = rSet.getInt("content"); } } catch (SQLException e) { e.printStackTrace(); } try { stmt = rSet.getStatement(); rSet.close(); stmt.close(); rSet = null; stmt = null; } catch (Exception e) { e.printStackTrace(); } return count; } /** 获取短信猫连接口参数 */ public static String smsport() { String serialport = ""; String strsql = "select content from syscode where type=61 and code='0002'"; java.sql.Statement stmt = null; ResultSet rSet = SQLHelper.getResultSet(strsql); if (rSet == null) { return ""; } try { while (rSet.next()) { serialport = rSet.getString("content"); } } catch (SQLException e) { Log.writelog(SystemParameter.clazzName,Thread.currentThread().getStackTrace()[1].getMethodName() + "->Error:" + e.getMessage()); } try { stmt = rSet.getStatement(); rSet.close(); stmt.close(); rSet = null; stmt = null; } catch (Exception e) { e.printStackTrace(); } return serialport.toUpperCase(); } }