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

📄 bocbc4xml.java

📁 MQ通讯,FTP,上传,下载,批量调度处理等等..从静态的xml配置文件中读取,不需要在WEB应用时自动加载,所以修改xml的配置时不需要重新启动应用,每次操作会去读一次xml配置
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
		return flag;
	}
	//约30分钟调用一次;(移植时须修改数据库连接方式)
	public static boolean executeFTP(){
		boolean flag=false;
		Connection conn=null;
		//批次中任意一条短信的内容或号码缺失将导致整个批次操作失败;
		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=4 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("无符合发送要求的短信..");
				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=4 and " +
					" trunc(PLAN_SEND_TIME,'dd')=to_date(?,'yyyyMMdd')";
			PreparedStatement ps=conn.prepareStatement(sqlstr);
			ps.setString(1, date);
			ResultSet rs=ps.executeQuery();
			List list=new ArrayList();
			while(rs.next()){
				ConfigBean CB=new ConfigBean();
				CB.setMsgMSG_CONT(rs.getString("SMSG_CONTENT"));
				CB.setMsgTAG_TEL(rs.getString("CELL"));
				
				int key=rs.getInt("SEQ_SHORTMSG");
//				System.out.println("in executeMQ()..");
//				System.out.println("SND_COUNT:"+MB.getSND_COUNT());
//				System.out.println("TAG_TEL:"+MB.getTAG_TEL());
//				System.out.println("TXN_TIME:"+MB.getTXN_TIME());
//				System.out.println("TXN_DATE:"+MB.getTXN_DATE());
				list.add(CB);
			}
			flag=FTP(list);
		}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);
				}
			}
		}
		return flag;
	}
	//暂定每周五晚20:00开始执行;(移植时须修改数据库连接方式)
	public static boolean executeWL(){
		boolean flag=false;
		Connection conn=null;
		try{
			//1,查询库表将未提交状态的客户号码COUNT返回,判断如果<1则return false;
			//2,将状态为未提交状态的客户号码查询出来,调用WhiteList(List numbers)函数,执行清洗,生成TXT文件和上传;
			conn=getConn(1);
			String sqlcount="select count(1) count from SMS_WL where STATE='A'";
			PreparedStatement pscount=conn.prepareStatement(sqlcount);
			ResultSet rscount=pscount.executeQuery();
			int count=0;
			while(rscount.next()){
				count=rscount.getInt("count");
			}
			pscount.close();
			System.out.println("WL count:"+count);
			if(count<1){
				logger.debug("没有需要提交的白名单数据..");
				return flag;
			}
			String sqlstr="select CELLNUMBER from SMS_WL where STATE='A'";
			PreparedStatement ps=conn.prepareStatement(sqlstr);
			ResultSet rs=ps.executeQuery();
			List list=new ArrayList();
			String number=null;
			while(rs.next()){
				number=rs.getString("CELLNUMBER");
				list.add(number);
			}
			ps.close();
			if(list.size()<1){
				logger.error("白名单号码集数量不正确..");
				return flag;
			}
			flag=WhiteList(list);
			if(flag){
				//白名单申请号码操作完成,修改状态字段值;
				StringBuffer num=new StringBuffer();
				for(int i=0;i<list.size();i++){
					if(i+1<list.size()){
						num=num.append("'"+list.get(i)+"',");
					}
					if(i+1==list.size()){
						num=num.append("'"+list.get(i)+"'");
					}
				}
//				System.out.println(num.toString());
				String s="update SMS_WL set STATE='B',EXPORTDATE=sysdate where CELLNUMBER in ( "+num+" )";
				PreparedStatement p=conn.prepareStatement(s);
//				p.setString(1,num.toString());
				int i=p.executeUpdate();
				p.close();
//				System.out.println("修改记录数:"+i);
//				System.out.println("提交记录数:"+list.size());
				if(i==list.size()){
					flag=flag && true;
					logger.debug("修改记录条数与提交记录条数一致..");
				}else{
					flag=flag && false;
					logger.error("修改记录条数与提交记录条数不一致,请核对..");
				}
			}
		}catch(Exception er){
			logger.error("executeWL() 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);
				}
			}
		}
		return flag;
	}
	//暂定每天18:00开始执行一次,将短信表中的手机号码导入白名单申请表;(移植时须修改数据库连接方式)
	public static boolean executeImportWL(){
		boolean flag=false;
		Connection conn=null;
		try{
			conn=getConn(1);
			String str1="select count(distinct(CON_CONT)) count from CUS_BASDATA_CON_T " +
							"where CON_TYP='1' and (WL_STATE='C' or WL_STATE='D')";
			PreparedStatement ps1=conn.prepareStatement(str1);
			ResultSet rs1=ps1.executeQuery();
			int count=0;
			while(rs1.next()){
				count=rs1.getInt("count");
			}
			rs1.close();
			ps1.close();
			if(count<1){
				logger.debug("无需要提交白名单申请的数据..");
				return flag;
			}
			String str2="select distinct(CON_CONT) numbers from CUS_BASDATA_CON_T " +
							"where CON_TYP='1' and  ISSEND = '1' and (APPLY_STS='1' or APPLY_STS='2')";
			PreparedStatement ps2=conn.prepareStatement(str2);
			ResultSet rs2=ps2.executeQuery();
			List list=new ArrayList();
			while(rs2.next()){
				list.add(rs2.getString("numbers"));
			}
			rs2.close();
			ps2.close();
			List startwith=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++){
				startwith.add(n[j]);
			}
			List CMCC=new ArrayList();
			for(int i=0;i<list.size();i++){
				String num=list.get(i).toString();
				for(int j=0;j<startwith.size();j++){
					String regex=startwith.get(j).toString();
					if(checkInput(num,regex,length)){
						CMCC.add(num);
						continue;
					}
				}
			}
			if(CMCC.size()<1){
				logger.debug("本批次号码中不存在中国移动公司用户..");
				return flag;
			}
			boolean b=false;
			for(int i=0;i<CMCC.size();i++){
				String s="select count(1) count from SMS_WL where CELLNUMBER=?";
				PreparedStatement p=conn.prepareStatement(s);
				p.setString(1,CMCC.get(i).toString());
				ResultSet r=p.executeQuery();
				int j=0;
				while(r.next()){
					j=r.getInt("count");
				}
				r.close();
				p.close();
				if(j>0){
					logger.debug("号码["+CMCC.get(i).toString()+"]在移动白名单申请表中已经存在,取消插入本记录操作..");
					continue;
				}
				String str3="insert into SMS_WL (CELLNUMBER,CREATEDATE,STATE) values (?,sysdate,'A')";
				PreparedStatement ps3=conn.prepareStatement(str3);
				ps3.setString(1,CMCC.get(i).toString());
				int c=ps3.executeUpdate();
				ps3.close();
				if(c<1){
					logger.error("号码["+CMCC.get(i).toString()+"]执行插入移动白名单申请表失败,请查实..");
					continue;
				}
				String str4="update CUS_BASDATA_CON_T set APPLY_STS='3' where CON_CONT=? and  ISSEND = '1' and  CON_TYP='1'";
				PreparedStatement ps4=conn.prepareStatement(str4);
				ps4.setString(1,CMCC.get(i).toString());
				int m=ps4.executeUpdate();
				ps4.close();
				if(m<1){
					logger.error("号码["+CMCC.get(i).toString()+"]提交至移动白名单申请表后返回修改短信表状态操作失败,请查实..");
					continue;
				}
				b=true;
				flag=flag && b;
			}
		}catch(Exception er){
			logger.error("executeImportWL() 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);
				}
			}
		}
		return flag;
	}

	//**********************************************MAIN************************************************
	public static void main(String[] args) {
		//test MQ(ConfigBean bean);----------------------------successful
//		ConfigBean bean=new ConfigBean();
//		bean.setMsgMSG_CONT("msgMSG_CONT:中文还是西文??");
//		bean.setMsgTAG_TEL("13501218514");
//		bean.setMsgTXN_TIME(getDT().substring(8,14));
//		bean.setMsgTXN_DATE(getDT().substring(0,8));
//		System.out.println(MQ(bean));
		//test FTP();------------------------------------------successful
//		List list=new ArrayList();
//		for(int i=0;i<10000;i++){
//			ConfigBean bean=new ConfigBean();
//			bean.setMsgMSG_CONT("msgMSG_CONT:中文还是西文??");
//			bean.setMsgTAG_TEL("13501218514");
//			list.add(bean);
//		}
//		System.out.println(FTP(list));
		//test WhiteList();------------------------------------successful
//		List list=new ArrayList();
//		list.add("13abc45678910");
//		list.add("1115525759");
//		list.add("abcdefghijglmnopqrstuvwxyz");
//		list.add("HelloWorld");
//		list.add("13112345678");
//		list.add("1501234567a");
//		list.add("199callwho");
//		list.add("2000000000000");
//		list.add("13501218514");
//		list.add("13901001000");
//		list.add("15177889999");
//		WhiteList(list);
		//test executeMQ();------------------------------------successful
//		executeMQ();
		//test executeFTP();------------------------------------successful
//		executeFTP();
		//test executeWL();------------------------------------successful
//		executeWL();
		//test importWL------------------------------------successful
//		executeImportWL();
	}
}

⌨️ 快捷键说明

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