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

📄 departmentbean.java

📁 “JSP数据库项目案例导航”一书从第一章到第十一章各章实例的源程序文件以及数据库文件。 注意: 1. 本书中的案例提供的数据库环境不同
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
/**********************************************************
Copyright (C),2003-10-12, Beijing  USTB.
All rights reserved.
Filename: DepartmentBean.java
@author: 
@version 1.0
Date:2003-10-14
Description:部门管理表Bean
Other:
Variable List:
1.String depno;//部门父编号、部门编号

Function List:
1.public DepartmentBean()//构造函数
2.public void setID(String no)//设置部门编号
3.public Vector getArr()//查询某部门的职务信息记录

4.private String makeNewNo()//生成新增纪录的'部门编号'
5.public int addRec(Hashtable ht)//增加一条纪录
6.public int modRec(Hashtable ht,String flg)//修改一条纪录(由公共变量-部门编号depno确定)正确修改返回0,否则返回错误类型值
7.public boolean delRec()//判断纪录是否可以删除,可以,删除一条纪录返回true.否则返回false(由公共变量部门编号depno确定)

8.private buildSubTree(DefaultMutableTreeNode rootNode,String departNo)//迭代生成子树
9.public DefaultMutableTreeNode buildTree();//生成树并返回根节点

10.public String toName()//根据编号返回名称
11. public string getJBNo()//返回级别序号最大值+1
12.public String getFatherNo() throws SQLException//返回父编号
13.	public String getBmNo(String bmName)throws SQLException//根据部门名称返回部门编号。暂且没用,部门名称有相同的
14.	public String getBossDutyNo(String bossName)throws SQLException//根据职务名称返回职务编号
15.	public String getDutyNo()throws SQLException//根据部门编号返回其头职务编号
16.	public Vector allBmName()//返回所有的部门名称,除了自己
17.public Hashtable getAllInf()//返回某个部门的所有界面显示信息
18.public boolean nameExist(String bmname)//判断同一个部门下名称是否重
19 public Vector getOnePage(int page,int records);//分页时取得一页的数据量
20 public Vector getOneBMPs()//返回某个部门的所有人员
	
21.public Vector getOrgDutys() //查询某部门职务名称
22.public String getBmName()
23.public String getBMBH(String strPersonNO)//取得当前人员所在部门的部门编号new
24.public DefaultMutableTreeNode build1LevTree(String strDepartID)	//生成一层的树  
25.public DefaultMutableTreeNode buildSelectedBMTree(String PersonNo)  //根据职工权限生成这个职工相应权限的被剪枝的树

History:
1.  Date:2003-10-14
    Author:
    Modification:文件头、架子
2.  Date:2003-10-15,18
    Author:
    Modification:函数体
3.  Date:2003-10-17
    Author:
    Modification:函数9,10 
4.  Date:2003-11-1
    Author:
    Modification:getOnePage
5.  Date:2003-11-8
    Author:
    Modification:getOneBMPs()//返回某个部门的“在职”所有人员
6.  Date:2003-11-9
    Author:
    Modification:public Vector getOrgDutys() //查询某部门职务名称
7.  Date:2003-11-15
    Author:
    Modification:public DefaultMutableTreeNode buildTree(String strDepartID) //查询某部门职务名称根据职部门编号生成其子树并返回根节点
8.  Date:2003-11-16
    Author:
    Modification:isWho(String zgbh)//判断当前人员的身份new
9.  Date:2003-11-16
    Author: 
    Modification://管理员和文书数据汉化;
10. Date:2003-11-22
    Author: 
    Modification:级别序号问题修正
11.	Date:2003-11-23
    Author: 
    Modification:增加了2个函数
11.	Date:2003-11-30
    Author: 
    Modification:增加了1个函数
12.	public String getOrgNo(String bmbh) //取得二级部门编号

***********************************************************/
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 ";
			/*
			sql = "select distinct bmbh as BMBH "
				+ "  from zz_zgzwb "
				+ "  where zgbh='"+PersonNo+"'"
				+ "  and (CZQX like '%,73' or CZQX like '%,73,%' or CZQX like '73,%') "
				+ "union "
				+ "select distinct b.bmbh as BMBH "
				+ "  from zz_zgzwb a,zz_zwb b "
				+ "  where a.zgbh='"+PersonNo+"'"
				+ "  and a.bmbh=b.bmbh "
				+ "  and (b.CZQX like '%,73' or  b.CZQX like '%,73,%' or  b.CZQX like '73%,') ";*/

			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
		/*
			String sql =
					  " select distinct a.BMBH "
					+ "   from ZZ_ZGZWB a,ZZ_ZWB b "
					+ "  where a.BMBH = b.BMBH "
					+ "    and a.ZWBH = b.ZWBH "
					+ "    and (b.SFJC is null or b.SFJC=0) "
					+ "    and a.ZGBH='"+ PersonNo+ "'"
					+ "  order by a.BMBH"; //当前操作者有职务的部门
			ResultSet rs = selectRecord(sql);
			Vector vectBMBH = new Vector();
			while (rs.next())
				vectBMBH.add(rs.getString("BMBH"));
			rs.getStatement().close();

			//开始剪枝
			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)) 
					{
						cut = true;
						DefaultMutableTreeNode temproot = buildTree(strID); //检查这个节点的子路径上的节点是否有效
						for (Enumeration tempe = temproot.preorderEnumeration(); tempe.hasMoreElements();) 
						{						
							DefaultMutableTreeNode tempnode = (DefaultMutableTreeNode) tempe.nextElement();
							hs = (Hashtable) (tempnode.getUserObject());
							strID = ds.toString((String) hs.get("BMBH"));
							if (vectBMBH.contains(strID)) cut = false;
						}
						if (cut)
						{
							node.removeFromParent();
							canCut = true;
							continue;
						}
					} 
					else 
					{
						//System.out.println("\n"+toName(strID)+"		  Enabled!!!!!!!!!	");
						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;
	/*		for(int i=0;i<3;i++){
				System.gc();
				try{
					Thread.sleep(10);
				}catch(Exception e){}
			}
	//*/		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())) {
					//System.err.println("数据表错误:根为空。");
					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;
/*		for(int i=0;i<3;i++){
			System.gc();
			try{
				Thread.sleep(10);
			}catch(Exception e){}
		}
//*/		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())) {
				//System.err.println("数据表错误:根为空。");
				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())) {
				//System.err.println("内部错误:根为空。at oa.bean.PersonFileBean");
				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));

⌨️ 快捷键说明

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