LoadQueue.java 5.59 KB
Newer Older
TongZuu committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
package com.csc.library.config;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.rmi.RemoteException;
import java.util.Iterator;
import java.util.List;
import java.util.StringTokenizer;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;

import com.csc.library.session.DbInquiry;
import com.csc.library.session.DbRecord;
import com.csc.library.session.InitialEnvironment;
import com.csc.library.session.InitialInquiry;
import com.csc.library.session.InitialRecord;
import com.csc.library.utilities.MyLog;
import com.csc.library.utilities.ThaiUtilities;
import com.csc.library.utilities.UProfile;

public class LoadQueue {
	private UProfile upf=null;
	Element str;	
		public LoadQueue(){
		this.upf = new UProfile();
		this.upf.setDefault();
		try {
			InitialEnvironment env = new InitialEnvironment("GLOBAL");
			SAXBuilder builder = new SAXBuilder();
			String pathName="";
			pathName=env.getValue("config-dir") +"CSC_QUEUE.xml";
			File configxml=new File(pathName);
			if(!configxml.exists()){
				createConfigXML(pathName);
			}else{
				Document stru = builder.build(new File(pathName));			
				str = stru.getRootElement();
				this.process();
			}
		} catch (Exception ex) {
			MyLog.error(this, this.upf, ex);
		}		
	}
	private void process(){
		try {		
				DbRecord db = new InitialRecord(this.upf).getDbRecord("com.csc.entity.CSC_Quque");
				db.setColumn("*");			 
				Element data;			
				List list = str.getChildren();
				Iterator it = list.iterator();
				while (it.hasNext()) {
					data = (Element) it.next();
					db.set("ququeid", data.getAttributeValue("ququeid"));
					if(db.search()<1){
						List sub_list =data.getChildren();
						Iterator sub_it = sub_list.iterator();
						Element fm_data;
						while (sub_it.hasNext()) {
							fm_data = (Element) sub_it.next();
							db.set(fm_data.getName(), fm_data.getText());
						}						
						db.save();
					}
				}			 
			} catch (RemoteException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}			
	}
	
	private void createConfigXML(String pathName){
	     try {
	    	 System.out.println("\tCREATE CSC_QUEUE FILE..");
			 File configxml = new File(pathName);
			 OutputStream out = new BufferedOutputStream(new FileOutputStream(configxml));
			 PrintWriter writer = new PrintWriter(out);
			 writer.println("<?xml version=\"1.0\" encoding=\"TIS-620\"?>");
			 writer.println("<QUEUE>");

			 DbInquiry configinq=new InitialInquiry(this.upf).getDbInquiry();
			 configinq.initMyTable("com.csc.entity.CSC_Quque","","");
			 configinq.setColumn("*");
			 configinq.setFilter("process_type='R'");
			 configinq.refresh();
			 ThaiUtilities th=new ThaiUtilities();
			 while(configinq.next()){
				 writer.println("\t<DATA ququeid=\""+th.ASCII2Unicode(configinq.getString("QUQUEID"))+"\">");
				 writer.println("\t\t<TNAME><![CDATA["+th.ASCII2Unicode(configinq.getString("TNAME"))+"]]></TNAME>");
				 writer.println("\t\t<ENAME><![CDATA["+th.ASCII2Unicode(configinq.getString("ENAME"))+"]]></ENAME>");
				 writer.println("\t\t<CLASS_NAME><![CDATA["+th.ASCII2Unicode(configinq.getString("CLASS_NAME"))+"]]></CLASS_NAME>");
				 writer.println("\t\t<PROCESS_STATUS><![CDATA["+th.ASCII2Unicode(configinq.getString("PROCESS_STATUS"))+"]]></PROCESS_STATUS>");
				 writer.println("\t\t<PROCESS_TYPE><![CDATA["+th.ASCII2Unicode(configinq.getString("PROCESS_TYPE"))+"]]></PROCESS_TYPE>");
				 writer.println("\t\t<PROCESS_GROUP><![CDATA["+th.ASCII2Unicode(configinq.getString("PROCESS_GROUP"))+"]]></PROCESS_GROUP>");
				 writer.println("\t\t<OWNER><![CDATA["+th.ASCII2Unicode(configinq.getString("OWNER"))+"]]></OWNER>");
				 writer.println("\t\t<REMOTE_IP><![CDATA["+th.ASCII2Unicode(configinq.getString("REMOTE_IP"))+"]]></REMOTE_IP>");
				 writer.println("\t\t<EMPLOYEEID><![CDATA["+th.ASCII2Unicode(configinq.getString("EMPLOYEEID"))+"]]></EMPLOYEEID>");
				 writer.println("\t\t<COMPANYID><![CDATA["+th.ASCII2Unicode(configinq.getString("COMPANYID"))+"]]></COMPANYID>");
				 writer.println("\t\t<USER_NAME><![CDATA["+th.ASCII2Unicode(configinq.getString("USER_NAME"))+"]]></USER_NAME>");
				 writer.println("\t\t<SCREEN_NAME><![CDATA["+th.ASCII2Unicode(configinq.getString("SCREEN_NAME"))+"]]></SCREEN_NAME>");
				 writer.println("\t\t<SERVER_NAME><![CDATA["+th.ASCII2Unicode(configinq.getString("SERVER_NAME"))+"]]></SERVER_NAME>");
				 writer.println("\t\t<NEXT_TIME><![CDATA["+th.ASCII2Unicode(configinq.getString("NEXT_TIME"))+"]]></NEXT_TIME>");
				 writer.println("\t\t<START_TIME><![CDATA["+th.ASCII2Unicode(configinq.getString("START_TIME"))+"]]></START_TIME>");
				 writer.println("\t\t<END_TIME><![CDATA["+th.ASCII2Unicode(configinq.getString("END_TIME"))+"]]></END_TIME>");
				 writer.println("\t\t<REMARK><![CDATA["+th.ASCII2Unicode(configinq.getString("REMARK"))+"]]></REMARK>");
				 writer.println("\t\t<PROCESS_PRIORITY><![CDATA["+th.ASCII2Unicode(configinq.getString("PROCESS_PRIORITY"))+"]]></PROCESS_PRIORITY>");
				 writer.println("\t\t<CONDITION><![CDATA["+th.ASCII2Unicode(configinq.getString("CONDITION"))+"]]></CONDITION>");
				 writer.println("\t\t<PARENTID><![CDATA["+th.ASCII2Unicode(configinq.getString("PARENTID"))+"]]></PARENTID>");
				 writer.println("\t\t<PTYPE><![CDATA["+th.ASCII2Unicode(configinq.getString("PTYPE"))+"]]></PTYPE>");
				 writer.println("\t</DATA>");
				 writer.println();
			 }
			 writer.println("</QUEUE>");
			 writer.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}