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

📄 departmentbean.java

📁 本书主要介绍了从基础开始建立Portal的快速应用开发过程(RAD)的方法。通过本书你可以了解到关于Oracle 9iAS Portal产品的主要特性、入口的开发和组织、网络开发和管理、实际的关系型数
💻 JAVA
📖 第 1 页 / 共 4 页
字号:

package oa.bean;

import java.sql.*;
import java.util.*;
import javax.swing.tree.DefaultMutableTreeNode;
import oa.main.*;

public class DepartmentBean extends ParentBean 
{
	String depNo = "";
	String zgNo = "";
	private	static DefaultMutableTreeNode s_root = null;
	//设置机构编号
	public void setID(String depNo)
	{
		this.depNo = depNo;
	}
	public void setZGBH(String zgNo)
	{
		this.zgNo = zgNo;
	}
	//构造函数
	public DepartmentBean()  {
	}

	public DefaultMutableTreeNode buildSelectedBMTree(String PersonNo)
	{
		DefaultMutableTreeNode root = buildTree(false);
		ResultSet rs = null;
		Statement stmt = null;
		if(!PersonNo.equals("1"))
		{							//操作者对当前部门有 "人员信息\分配职务:73" 的权限才能分配当前部门的职务
				String sql = " Select distinct a.BMBH "
					   + "   from ZZ_ZGZWB a,ZZ_ZWB b "
					   + "  where a.BMBH=b.BMBH and a.ZWBH=b.ZWBH "
					   + "    and (a.CZQX like '%,73' or  a.CZQX like '%,73,%' or  a.CZQX like '73,%'  "
					   + "    or   b.CZQX like '%,73' or  b.CZQX like '%,73,%' or  b.CZQX like '73%,') "
					   + "    and a.ZGBH='"+ PersonNo + "' "
					   + "  order by a.BMBH ";

			Vector vectBMBH = new Vector();
			try{
			rs = selectRecord(sql);		
			while (rs.next())
				vectBMBH.add(rs.getString("BMBH"));
			}catch(Exception e){System.out.println("DepartmentBean.buildSelectedBMTree(String)运行时出错:"+e);}
			finally{
				if(rs!=null)try{ stmt = rs.getStatement(); rs.close();}catch(Exception e){System.out.println("DepartmentBean.buildSelectedBMTree(String)关闭记录集rs时出错"+e);}
				if(stmt!=null) try{stmt.close();}catch(Exception e){System.out.println("DepartmentBean.buildSelectedBMTree(String)关闭声明时statement出错"+e);}		
			}

			//开始剪枝
			boolean canCut = true;
			boolean cut = true;
			while (canCut && root.getChildCount() > 0)
			{
				canCut = false;
				for (Enumeration e = root.preorderEnumeration(); e.hasMoreElements();)
				{
					DefaultMutableTreeNode node = (DefaultMutableTreeNode) e.nextElement();
					Hashtable hs = (Hashtable) (node.getUserObject());
					String strID = (String) hs.get("BMBH");

					if (!vectBMBH.contains(strID))
					{
						//检查这个节点的根路径上的节点是否有效  向下兼容
						Object[] obj = node.getUserObjectPath();
						cut = true;
						//检查其到根路径上的节点
						for (int i = 0; i < obj.length; i++) 
						{
							hs = (Hashtable) obj[i];
							strID = ds.toString((String) hs.get("BMBH"));
							if (vectBMBH.contains(strID)) 
							{
								cut = false;
							}
						}
						if ((cut) && (node.isLeaf())) 
						{
							node.removeFromParent();
							canCut = true;
							continue;
						}
						if (!cut) 
						{
							Hashtable hst = (Hashtable) node.getUserObject();
							hst.put("Enabled", "True");
						} //end if
					} 
					else
					{
						Hashtable hst = (Hashtable) node.getUserObject();
						hst.put("Enabled", "True");
					} //end if

				} //end for
			} //end while
		}
		else  //PersonNo=='1':admin
		{
			for (Enumeration e = root.preorderEnumeration(); e.hasMoreElements();) 
			{
				DefaultMutableTreeNode node = (DefaultMutableTreeNode) e.nextElement();
				Hashtable hst = (Hashtable) node.getUserObject();
				hst.put("Enabled", "True");
			}
		}
		return root;
	}

	 public DefaultMutableTreeNode buildTree(){
		return buildTree(true);
	 }
	//生成树并返回根节点
	 public DefaultMutableTreeNode buildTree(boolean useStatic){
		 if(useStatic){
			synchronized(this){
				if(s_root==null)
					rebuildTree();
			}
			return s_root;
		 }
		 else
		 {
			DefaultMutableTreeNode root = null;
			boolean err = false;
			String sql =
				" Select BMBH,BMFBH,BMMC,JBXH from ZZ_BMB "
					+ " Where BMFBH is null "
					+ "   order by JBXH ";
			ResultSet rs = selectRecord(sql);
			Hashtable hash = new Hashtable();
			Statement stmt = null;
			try{
				ResultSetMetaData rsmd = rs.getMetaData();
				if (!(rs.next())) {
					return null;
				}
				int cols = rsmd.getColumnCount();
				hash.clear();
				for (int i = 1; i <= cols; i++) {
					String field = ds.toString(rsmd.getColumnName(i));
					String value = ds.toString(rs.getString(i));
					hash.put(field, value);
				}
			}catch(Exception e){System.out.println("DepartmentBean.buildTree()运行时出错:"+e);}
			finally{
				if(rs!=null)try{ stmt = rs.getStatement(); rs.close();}catch(Exception e){System.out.println("DepartmentBean.buildTree()关闭记录集rs时出错"+e);}
				if(stmt!=null) try{stmt.close();}catch(Exception e){System.out.println("DepartmentBean.buildTree()关闭声明时statement出错"+e);}		
			}
			root = new DefaultMutableTreeNode(hash);
			buildSubTree(root);
			return root;
		 }
	}

	//生成树并返回根节点
	public DefaultMutableTreeNode rebuildTree(){
		DefaultMutableTreeNode r=s_root;
		s_root = null;
		boolean err = false;
		String sql =
			" Select BMBH,BMFBH,BMMC,JBXH from ZZ_BMB "
				+ " Where BMFBH is null "
				+ "   order by JBXH ";
		ResultSet rs = selectRecord(sql);
		Hashtable hash = new Hashtable();
		Statement stmt = null;
		try{
			ResultSetMetaData rsmd = rs.getMetaData();
			//		结果集为空时返回
			if (!(rs.next())) {
				return null;
			}
			int cols = rsmd.getColumnCount();
			hash.clear();
			for (int i = 1; i <= cols; i++) {
				String field = ds.toString(rsmd.getColumnName(i));
				String value = ds.toString(rs.getString(i));
				hash.put(field, value);
			}
		}catch(Exception e){System.out.println("DepartmentBean.buildTree()运行时出错:"+e);err=true;}
		finally{
			if(rs!=null)try{ stmt = rs.getStatement(); rs.close();}catch(Exception e){System.out.println("DepartmentBean.buildTree()关闭记录集rs时出错"+e);}
			if(stmt!=null) try{stmt.close();}catch(Exception e){System.out.println("DepartmentBean.buildTree()关闭声明时statement出错"+e);}		
		}
		if(err)
			s_root=r;
		else{
			s_root = new DefaultMutableTreeNode(hash);
			buildSubTree(s_root);
		}
		return s_root;
	}
	
	//生成一层的树  
	public DefaultMutableTreeNode build1LevTree(String strDepartID)
	{
		String sql =
			" Select BMBH,BMFBH,BMMC,JBXH from ZZ_BMB "
				+ " Where BMBH ='"
				+ strDepartID
				+ "'"
				+ "   order by JBXH ";
		ResultSet rs = db.QuerySQL(sql);
		Statement stmt = null;
		Hashtable hash = new Hashtable();
		ResultSetMetaData rsmd = null;
		try{
			if (!(rs.next())) {
				return null;
			}
			rsmd = rs.getMetaData();
			int cols = rsmd.getColumnCount();
			hash.clear();
			for (int i = 1; i <= cols; i++) {
				String field = ds.toString(rsmd.getColumnName(i));
				String value = ds.toString(rs.getString(i));
				hash.put(field, value);
			}
		}catch(Exception e){System.out.println("DepartmentBean.build1LevTree(String)运行时出错:"+e);}
		finally{
			if(rs!=null)try{ stmt = rs.getStatement(); rs.close();}catch(Exception e){System.out.println("DepartmentBean.build1LevTree(String)关闭记录集rs时出错"+e);}
			if(stmt!=null) try{stmt.close();}catch(Exception e){System.out.println("DepartmentBean.build1LevTree(String)关闭声明时statement出错"+e);}		
		}
		DefaultMutableTreeNode root = new DefaultMutableTreeNode(hash);

		//选出rootNode的子节点
		String DepartNo =
			(String) ((Hashtable) root.getUserObject()).get("BMBH");
		sql =
			" Select BMBH,BMFBH,BMMC,JBXH from ZZ_BMB "
				+ " Where BMFBH='"
				+ DepartNo
				+ "' "
				+ " and BMZT=0  order by JBXH ";
		rs = db.QuerySQL(sql);
		try{
		rsmd = rs.getMetaData();
		int	cols = rsmd.getColumnCount();
		while (rs.next()) {
			hash = new Hashtable();
			hash.clear();
			for (int i = 1; i <= cols; i++) {
				String field = ds.toString(rsmd.getColumnName(i));
				String value = ds.toString(rs.getString(i));
				hash.put(field, value);
			}
			DefaultMutableTreeNode treeNode = new DefaultMutableTreeNode(hash);
			root.add(treeNode);
		}
		}catch(Exception e){System.out.println("DepartmentBean.build1LevTree(String)运行时出错:"+e);}
		finally{
			if(rs!=null)try{stmt = rs.getStatement();rs.close();}catch(Exception e){System.out.println("DepartmentBean.build1LevTree(String)释放记录集rs时出错:"+e);}
			if(stmt!=null)try{stmt.close();}catch(Exception e){System.out.println("DepartmentBean.build1LevTree(String)释放记录集stmt时出错:"+e);}
		}
		return root;
	}	
	

	//	根据职部门编号生成其子树并返回根节点
	public DefaultMutableTreeNode buildTree(String strDepartID)
	{
		strDepartID = ds.toString(strDepartID);
		String sql =
			" Select BMBH,BMFBH,BMMC,JBXH from ZZ_BMB "
				+ " Where BMBH ='"
				+ strDepartID
				+ "'"
				+ "   order by JBXH ";
		ResultSet rs = selectRecord(sql);
		Hashtable hash = new Hashtable();
		Statement stmt = null;
		try{
			ResultSetMetaData rsmd = rs.getMetaData();
			if (!(rs.next())) {
				return null;
			}
			int cols = rsmd.getColumnCount();
			hash.clear();
			for (int i = 1; i <= cols; i++) {
				String field = ds.toString(rsmd.getColumnName(i));
				String value = ds.toString(rs.getString(i));
				hash.put(field, value);
			}
		}catch(Exception e){System.out.println("DepartmentBean.buildTree(String)运行时出错:"+e);}
		finally{
			if(rs!=null)try{ stmt = rs.getStatement(); rs.close();}catch(Exception e){System.out.println("DepartmentBean.buildTree(String)关闭记录集rs时出错"+e);}
			if(stmt!=null) try{stmt.close();}catch(Exception e){System.out.println("DepartmentBean.buildTree(String)关闭声明时statement出错"+e);}		
		}
		DefaultMutableTreeNode root = new DefaultMutableTreeNode(hash);
		buildSubTree(root);
		return root;
	}

	public DefaultMutableTreeNode buildMyTree(String sql){
		ResultSet rs = selectRecord(sql);
		Hashtable hash = new Hashtable();
		Statement stmt = null;
		try{
			ResultSetMetaData rsmd = rs.getMetaData();
			if (!(rs.next())) {
				return null;
			}
			int cols = rsmd.getColumnCount();
			hash.clear();
			for (int i = 1; i <= cols; i++) {
				String field = ds.toString(rsmd.getColumnName(i));
				String value = ds.toString(rs.getString(i));
				hash.put(field, value);
			}
		}catch(Exception e){System.out.println("DepartmentBean.buildMyTree(String)运行时出错:"+e);}
		finally{
			if(rs!=null)try{ stmt = rs.getStatement(); rs.close();}catch(Exception e){System.out.println("DepartmentBean.buildMyTree(String)关闭记录集rs时出错"+e);}
			if(stmt!=null) try{stmt.close();}catch(Exception e){System.out.println("DepartmentBean.buildMyTree(String)关闭声明时statement出错"+e);}		
		}
		DefaultMutableTreeNode root = new DefaultMutableTreeNode(hash);
		buildSubTree(root);
		return root;
	}

	//迭代生成树
	private void buildSubTree(DefaultMutableTreeNode rootNode)
	{
		String sql = "";
		String DepartNo = "";

⌨️ 快捷键说明

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