📄 bocbc4xml.java
字号:
}
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 + -