⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bocbc4xml.java

📁 MQ通讯,FTP,上传,下载,批量调度处理等等..从静态的xml配置文件中读取,不需要在WEB应用时自动加载,所以修改xml的配置时不需要重新启动应用,每次操作会去读一次xml配置
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
				}
				if(type.toUpperCase().equals("MSG")){
					System.out.println("load message information..");
					CB.setMsgMSG_TYPE(((Element)children.get(i)).getAttributeValue("msgMSG_TYPE"));
					CB.setMsgSYS_ID(((Element)children.get(i)).getAttributeValue("msgSYS_ID"));
					CB.setMsgTERM_ID(((Element)children.get(i)).getAttributeValue("msgTERM_ID"));
					CB.setMsgTELL_NO(((Element)children.get(i)).getAttributeValue("msgTELL_NO"));
					CB.setMsgSRV_CODE(((Element)children.get(i)).getAttributeValue("msgSRV_CODE"));
					CB.setMsgRPT_FLAG(((Element)children.get(i)).getAttributeValue("msgRPT_FLAG"));
					CB.setMsgSND_COUNT(((Element)children.get(i)).getAttributeValue("msgSND_COUNT"));
					CB.setMsgORG_ID(((Element)children.get(i)).getAttributeValue("msgORG_ID"));
					CB.setMsgSEND_TIME(((Element)children.get(i)).getAttributeValue("msgSEND_TIME"));
					CB.setMsgVALID_TIME(((Element)children.get(i)).getAttributeValue("msgVALID_TIME"));
					CB.setMsgTIME_OUT(((Element)children.get(i)).getAttributeValue("msgTIME_OUT"));
					CB.setMsgMODE_NO(((Element)children.get(i)).getAttributeValue("msgMODE_NO"));
					CB.setMsgTRACE_NO(((Element)children.get(i)).getAttributeValue("msgTRACE_NO"));
				}
				if(type.toUpperCase().equals("WL")){
					System.out.println("load whitelist config information");
					CB.setWhitelistMobielNumberStartWith(((Element)children.get(i)).getAttributeValue("mobielNumberStartWith"));
					CB.setWhitelistMobielNumberLength(((Element)children.get(i)).getAttributeValue("mobielNumberLength"));
					CB.setWhitelistServerIp(((Element)children.get(i)).getAttributeValue("whiteListServerIp"));
					CB.setWhitelistServerPort(((Element)children.get(i)).getAttributeValue("whiteListPort"));
					CB.setWhitelistServerUser(((Element)children.get(i)).getAttributeValue("whiteListUser"));
					CB.setWhitelistServerPswd(((Element)children.get(i)).getAttributeValue("whiteListPswd"));
					CB.setWhitelistLocalPath(((Element)children.get(i)).getAttributeValue("whiteListLocalPath"));
					CB.setWhitelistRemotePath(((Element)children.get(i)).getAttributeValue("whiteListRemotePath"));
				}
				list.add(CB);
			}
		}catch(Exception er){
			logger.error("Load xml config Exception..");
			logger.error(er);
			er.printStackTrace();
		}
		return list;
	}
	private static boolean isBlank(String str){
		boolean flag=true;
		if(str!=null && str.trim().length()>0){
			flag=false;
		}
		return flag;
	}
	private static String getDT(){
		String dt=null;
		java.text.SimpleDateFormat sd=new java.text.SimpleDateFormat("yyyyMMddHHmmss");
		try{
			dt=sd.format(new java.util.Date());
		}catch(Exception er){
			logger.error("make datetime string exception..");
		}
		return dt;
	}
	
	public static boolean WhiteList(List numbers){
		boolean flag=false;
		List CMCC=new ArrayList();
//		List list=loadConfig3();
		List list=new ArrayList();
		ConfigBean bean=(ConfigBean)loadConfig("wl").get(0);
		
		String n[]=bean.getWhitelistMobielNumberStartWith().split(",");
		String length=bean.getWhitelistMobielNumberLength();
		for(int j=0;j<n.length;j++){
			list.add(n[j]);
		}
		try{
			if(numbers.size()<1){
				return flag;
			}
			for(int i=0;i<numbers.size();i++){
				String num=numbers.get(i).toString();
				for(int j=0;j<list.size();j++){
					String regex=list.get(j).toString();
					if(checkInput(num,regex,length)){
						CMCC.add(num);
					}
				}
			}
			if(makeAndUpload(CMCC)){
				flag=true;
			}
		}catch(Exception er){
			logger.error("WhiltList.() method Exception..");
			logger.error(er);
			er.printStackTrace();
		}
		return flag;
	}
	private static boolean checkInput(String input,String startwith,String length){
		boolean b1=false;
		if(startwith.equals(input.substring(0,3))) b1=true;
		boolean b2=false;
//		int len=Integer.parseInt(loadConfig4().get(0).toString());
		int len=Integer.parseInt(length);
		if(input.length()==len) b2=true;
		boolean b3=false;
		if(input.matches("\\d{"+len+"}")) b3=true;
		return  (b1 && b2 && b3);
	}
	
	private static boolean makeAndUpload(List WhiteList){
		boolean flag=false;
		if(WhiteList.size()<1) return flag;
		TelnetOutputStream os = null;
		FileInputStream is = null;
		FtpClient ftpClient = null;
		try{
//			String localpath=loadConfig4().get(1).toString();
//			String remotepath=loadConfig4().get(2).toString();
//			XMLBean XB=getInfo1();
			ConfigBean CB=(ConfigBean)loadConfig("wl").get(0);
			String localpath=CB.getWhitelistLocalPath();
			String remotepath=CB.getWhitelistRemotePath();
			String serverip=CB.getWhitelistServerIp();
			String serveruser=CB.getWhitelistServerUser();
			String serverpswd=CB.getWhitelistServerPswd();
			String serverport=CB.getWhitelistServerPort();
			
			ftpClient=new FtpClient();
			ftpClient.openServer(serverip, Integer.parseInt(serverport));
			ftpClient.login(serveruser, serverpswd);
			ftpClient.cd(remotepath);
			ftpClient.binary();
			
			String FileName=null;
			File localfile=null;
			FileOutputStream fos = null;
			OutputStreamWriter osw = null;
			BufferedWriter writer = null;
			
//			MSGVOBean bean=getInfo2();
			ConfigBean bean=(ConfigBean)loadConfig("msg").get(0);
			String SRV_CODE=bean.getMsgSRV_CODE();
			String ORG_ID=bean.getMsgORG_ID();
			
			
			String head="A~"+ORG_ID;
			for(int i=0;i<WhiteList.size();i++){
				if(i==0){
					FileName="WL_"+SRV_CODE+getDT().substring(0,14)+".TXT";
					localfile=new File(localpath+FileName);
					
					if(!localfile.exists()){
						localfile.createNewFile();
						logger.error("文件不存在..");
					}
					fos = new FileOutputStream(localfile);
					osw = new OutputStreamWriter(fos);
					writer = new BufferedWriter(osw);
					writer.write(head);
					String msg=WhiteList.get(i).toString();
					writer.newLine();
					writer.write(msg);
					writer.flush();
					fos.close();
					osw.close();
					writer.close();
				}else{
					fos = new FileOutputStream(localfile,true);
					osw = new OutputStreamWriter(fos);
					writer = new BufferedWriter(osw);
					String msg=WhiteList.get(i).toString();
					writer.newLine();
					writer.write(msg);
					writer.flush();
					fos.close();
					osw.close();
					writer.close();
				}
				
			}
			os = ftpClient.put(remotepath+FileName);
			is = new FileInputStream(localfile);
			byte[] bytes = new byte[1024];
			int c;
			while ((c = is.read(bytes)) != -1) {
				os.write(bytes, 0, c);
			}
			if (is != null) {
				is.close();
			}
			if (os != null) {
				os.close();
			}
			flag=true;
		}catch(Exception er){
			logger.error("makeAndUpload.() method Exception..");
			logger.error(er);
			er.printStackTrace();
		}finally{
			if (ftpClient != null && ftpClient.serverIsOpen()) {
				try{
					ftpClient.closeServer();
				}catch(Exception er){
					logger.error("close ftp connection exception..");
					logger.error(er);
				}
			}
		}
		return flag;
	}
	private static Connection getConn(int type){
		Connection c = null;
		try{
			Class.forName("oracle.jdbc.driver.OracleDriver");
			String url = null;
			if(type==1){
				url = "jdbc:oracle:thin:@22.8.2.98:1521:wmsrpt";
				c = DriverManager.getConnection(url, "wmsr", "wmsr");
			}
			if(type==2){
				url = "jdbc:oracle:thin:@22.8.2.90:1521:wms";
				c = DriverManager.getConnection(url, "wms2", "wms2");
			}
				
			
		}catch(Exception er){
			logger.error(er);
		}
		return c;
	}
	//约10分钟被调用一次;(移植时须修改数据库连接方式)
	public static boolean executeMQ(){
		boolean flag=true;
		Connection conn=null;
		//如果返回FALSE,说明存在两种可能,1,全部发送失败;2,部分发送失败
		try{
			conn=getConn(1);
			String date=getDT().substring(0,8);
//			System.out.println("date:"+date);
//			CallableStatement proc =conn.prepareCall("{call EXECUTEMQ(?)}");
//			proc.setString(1, date);
//			proc.execute();
//			ResultSet rs=proc.getResultSet();
			//No message,return;
			String sqlcount="select count(*) count from SEC_SHORT_MSG_T" +
					" where SMSG_STS=1 and SMSG_SOURCE=1 and" +
					" trunc(PLAN_SEND_TIME,'dd') = to_date(?,'yyyyMMdd')";
			PreparedStatement s=conn.prepareStatement(sqlcount);
			s.setString(1,date);
			ResultSet r=s.executeQuery();
			int count=0;
			while(r.next()){
				count=r.getInt("count");
			}
//			System.out.println("count:"+count);
			if(count<1){
				logger.debug("无符合发送要求的短信..");System.out.println("无符合发送要求的短信..");
				return flag;
			}
			//Have message,go ahead,key primary: SEQ_SHORTMSG;
			String sqlstr="select SEQ_SHORTMSG,CELL,SMSG_CONTENT from SEC_SHORT_MSG_T" +
					" where SMSG_STS=1 and SMSG_SOURCE=1 and " +
					" trunc(PLAN_SEND_TIME,'dd')=to_date(?,'yyyyMMdd')";
			PreparedStatement ps=conn.prepareStatement(sqlstr);
			ps.setString(1, date);
			ResultSet rs=ps.executeQuery();
			while(rs.next()){
				ConfigBean CB=new ConfigBean();
				CB.setMsgMSG_CONT(rs.getString("SMSG_CONTENT"));
				CB.setMsgTAG_TEL(rs.getString("CELL"));
				CB.setMsgTXN_TIME(getDT().substring(8,14));
				CB.setMsgTXN_DATE(getDT().substring(0,8));
				
				int key=rs.getInt("SEQ_SHORTMSG");
//				System.out.println("in executeMQ()..");
//				System.out.println("SND_COUNT:"+CB.getMsgMSG_CONT());
//				System.out.println("TAG_TEL:"+CB.getMsgTAG_TEL());
//				System.out.println("TXN_TIME:"+CB.getMsgTXN_TIME());
//				System.out.println("TXN_DATE:"+CB.getMsgTXN_DATE());
				boolean tmp=MQ(CB);
				if(tmp){
					//改变信息状态为已发送;
//					System.out.println("短信发送成功,执行修改短信流水表本短信状态..");
					String sqlupdate="update SEC_SHORT_MSG_T set SMSG_STS=2,REAL_SEND_TIME=sysdate where" +
							" SEQ_SHORTMSG=?";
					PreparedStatement psupdate=conn.prepareStatement(sqlupdate);
					psupdate.setInt(1,key);
					int update=psupdate.executeUpdate();
//					System.out.println("修改状态条数:"+update);
					//如果修改条数为0,则...
				}
				flag=flag && tmp;
			}
//			System.out.println("finished..");
		}catch(Exception er){
			logger.error("executeMQ() method Exception");
			logger.error(er);
//			er.printStackTrace();
		}finally{
			if(conn!=null){
				try{
					conn.close();
				}catch(Exception er){
					logger.error("Close connection exception..");
					logger.error(er);
				}
			}
		}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -