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

📄 orgselect.java

📁 EOSUserGuide项目 EOSUserGuide项目 EOSUserGuide项目 EOSUserGuide项目
💻 JAVA
字号:
/** EOS Tag Java File **/
package com.primeton.eos.fbframe.tag;

import java.sql.*;
import org.w3c.dom.*;
import javax.servlet.jsp.JspException;

import com.primeton.eos.webtag.html.BaseHandlerTag;
import com.primeton.eos.webtag.util.ResponseUtils;
import com.primeton.tp.web.driver.webdriver.StyleConfig;
import com.primeton.tp.common.logger.Logger;
import com.primeton.tp.web.driver.webdriver.WebDriver;
import com.primeton.tp.core.prservice.context.*;
import com.primeton.tp.common.xml.*;
import com.primeton.tp.core.api.BizServiceCaller;
import com.primeton.tp.core.api.BizServiceCallerFactory;
import com.primeton.tp.core.api.DataServiceException;
import com.primeton.tp.core.api.PersistenceBroker;
import com.primeton.tp.core.bizservice.EOSParameter;
import com.primeton.tp.core.config.EOSAppConfiguration;

public class OrgSelect extends BaseHandlerTag {

	String multiple;
	String size;
	String orgProperty;
	String value;
	String id;
	String property;
	String name;
	String nullOption;
	String nullLabel;
	String styleId;
	String orgId;
	String saveBody;
	String orgTypeId;
	
	public OrgSelect() {
		multiple = "false";
		size = null;
		id = WebDriver.REQUEST_REQUEST_CONTEXT;
		orgProperty = null;
		value = null;
		property = null;
		name = null;
		nullOption = "false";
		nullLabel = "";
		styleId = null;
		orgId = null;
		saveBody = null;
		orgTypeId = null;
		
	}

	public String getOrgProperty() {
		return orgProperty;
	}
	public void setOrgProperty(String value) {
		this.orgProperty = value;
	}
	public String getValue() {
		return value;
	}
	public void setValue(String value) {
		this.value = value;
	}
	public String getId() {
		return id;
	}
	public void setId(String value) {
		this.id = value;
	}
	public String getProperty() {
		return property;
	}
	public void setProperty(String value) {
		this.property = value;
	}
	public String getName() {
		return name;
	}
	public void setName(String value) {
		this.name = value;
	}
	public String getNullOption() {
		return nullOption;
	}
	public void setNullOption(String value) {
		this.nullOption = value;
	}
	public String getNullLabel() {
		return nullLabel;
	}
	public void setNullLabel(String value) {
		this.nullLabel = value;
	}
	public String getStyleId() {
		return styleId;
	}
	public void setStyleId(String value) {
		this.styleId = value;
	}

	/**
	 * @return 返回 multiple。
	 */
	public String getMultiple() {
		return multiple;
	}
	/**
	 * @param multiple 要设置的 multiple。
	 */
	public void setMultiple(String multiple) {
		this.multiple = multiple;
	}
	/**
	 * @return 返回 size。
	 */
	public String getSize() {
		return size;
	}
	/**
	 * @param size 要设置的 size。
	 */
	public void setSize(String size) {
		this.size = size;
	}

	public int doStartTag() throws JspException {
		//TODO Add your code here. 
		if (name == null)
			name = property;
		if (name == null) {
			throw new JspException("You should set name OR valueProperty!");
		}
		name = ResponseUtils.filter(name);
		StringBuffer stringbuffer = new StringBuffer("<select");
		stringbuffer.append(" name=\"");
		if (indexed)
			prepareIndex(stringbuffer, name);
		else
			stringbuffer.append(name);
		stringbuffer.append("\"");
		if (accesskey != null)
		{
			stringbuffer.append(" accesskey=\"");
			stringbuffer.append(accesskey);
			stringbuffer.append("\"");
		}
		if (multiple.equals("true"))
			stringbuffer.append(" multiple=\"multiple\"");
		if (size != null)
		{
			stringbuffer.append(" size=\"");
			stringbuffer.append(size);
			stringbuffer.append("\"");
		}
		if (tabindex != null)
		{
			stringbuffer.append(" tabindex=\"");
			stringbuffer.append(tabindex);
			stringbuffer.append("\"");
		}
		stringbuffer.append(prepareEventHandlers());
		stringbuffer.append(prepareStyles());
		stringbuffer.append(">\n");
		String userId = null;
		Node sessionEntity = null;
		try
		{
			RequestContext requestcontext = (RequestContext)pageContext.getAttribute(id);
			if (requestcontext == null)
				requestcontext = (RequestContext)pageContext.getRequest().getAttribute(id);
			if (requestcontext == null)
				requestcontext = (RequestContext)pageContext.getSession().getAttribute(id);
			if (requestcontext == null)
				throw new JspException("can not find dom");
			if (property != null)
				value = requestcontext.getProperty(property);
			if (orgProperty != null)
				orgId = requestcontext.getProperty(orgProperty);
			userId = ((SessionContext)pageContext.getSession().getAttribute(WebDriver.SESSION_CONTEXT)).getUserID();
			sessionEntity = ((SessionContext)pageContext.getSession().getAttribute(WebDriver.SESSION_CONTEXT)).getSessionEntity();
		}
		catch (Exception exception)
		{
			Logger.error(this, "error1", "  " + property);
		}
		EOSParameter param = new EOSParameter();
        param.setAppID(EOSAppConfiguration.getDefaultAppID());
        param.setUnitName("fborg");
        param.setUnitId("0");
		String orgSEQ = null;
        Document dom = null;
		try {
			dom = XmlUtil.parseString("<root><data/></root>");
		} catch (XmlUtilException e2) {
			// TODO 自动生成 catch 块
			e2.printStackTrace();
			throw new JspException(e2.toString());
		}
		/**
		 * 如果机构编号不存在,调用fborg.comm.getOwnerRootOrg
		 * 根据当前用户的session获得当前用户的管理的机构编号
		 */
		if (orgId == null) {
			try {
		        Node data = XmlUtil.findNode(dom, "/root/data");
		        if (sessionEntity == null)
		        	throw new Exception("Can't find session Entity in Session Context!");
		        data.appendChild(dom.importNode(sessionEntity, true));
		        BizServiceCaller bizCaller = BizServiceCallerFactory.newInstance("fborg", "0");
		        Document result = bizCaller.implement("comm.getOwnerRootOrg", dom);
		        Node org = XmlUtil.findNode(result, "/root/data/list/EOSORG_T_Organization/orgSEQ");
		        if (org != null) {
			        orgSEQ = XmlUtil.getNodeValue(org);
		        }
	        	if (orgSEQ == null)
	        		throw new Exception("Can't the root org seq!");
			} catch (Exception e) {
				// TODO 自动生成 catch 块
				throw new JspException(e.toString());
			}
			
		} else {
			/**
			 * 如果tag中有orgID,那么就根据用这个机构编号做为根机构编号
			 * 下面查询这个机构的机构序号
			 */
			Element org = dom.createElement("EOSORG_T_Organization");
			Element eid = dom.createElement("orgID");
			XmlUtil.setNodeValue(eid, orgId);
			org.appendChild(eid);
			org.setAttribute("criteria", "=");
			
			PersistenceBroker dbroker = null;
			try {
				dbroker = param.getDBBroker();
				dbroker.expandAll(org);
				orgSEQ = XmlUtil.getNodeValue(XmlUtil.findNode(org, "EOSORG_T_Organization/orgSEQ"));
			} catch (Exception e) {
				try {
					if (dbroker != null) dbroker.close();
				} catch (DataServiceException e1) {
					// TODO 自动生成 catch 块
					e1.printStackTrace();
				}
				e.printStackTrace();
				throw new JspException(e.toString());
			}
		}
		if (orgSEQ == null) {
			throw new JspException("Can't get org seq!");
		}
        
        PreparedStatement pstmt = null;
        ResultSet rs = null;

		try {
			Connection conn = param.getDBBroker().getConnection();
			String seq = orgSEQ.concat("%");
			String sql = "select orgID, orgName, orgSEQ from EOSORG_T_Organization where orgSEQ like ?";
			if (orgTypeId != null && !orgTypeId.equals(""))
				sql = sql + " and orgTypeId in (" + orgTypeId + ") order by orgSEQ";
			else {
				sql = sql + " order by orgSEQ";
			}
			//and (orgTypeID in ('0','1','2') order by orgSEQ";
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, seq);
            rs = pstmt.executeQuery();
            StringBuffer buff = new StringBuffer("");
            boolean find = false;
            if (rs.next()) {
	        	String orgID = rs.getString(1);
	        	String orgName = rs.getString(2);
	        	String tmpSEQ = rs.getString(3);
	   
	        	int rootLevel = getDotNum(tmpSEQ);
	        	buff.append("<option value=\"");
	        	buff.append(orgID);
	        	if (value != null && value.equals(orgID)) {
	        		buff.append("\" selected>");
	        		find = true;
	        	} else
	        		buff.append("\">");
	        	buff.append(orgName);
	        	buff.append("</option>\n");
	            while (rs.next()) {
	            	orgID = rs.getString(1);
	            	orgName = rs.getString(2);
	            	tmpSEQ = rs.getString(3);
	            	int level = getDotNum(tmpSEQ);
	            	buff.append("<option value=\"");
	            	buff.append(orgID);
	            	if (value != null && value.equals(orgID)) {
	            		buff.append("\" selected>");
	            		find = true;
	            	} else
	            		buff.append("\">");
	            	for (int i=0; i<(level-rootLevel); i++)
	            		buff.append("&nbsp;&nbsp;");
	            	buff.append("┠");
	            	buff.append(orgName);
	            	buff.append("</option>\n");
	            }
            }
            if (nullOption.equalsIgnoreCase("true")) {
            	if (find)
            		stringbuffer.append("<option value=\"\">");
            	else 
            		stringbuffer.append("<option value=\"\" selected>");
            	stringbuffer.append(nullLabel);
        		stringbuffer.append("</option>\n");
            }
            stringbuffer.append(buff);

		} catch (Exception ee){
			ee.printStackTrace();
			throw new JspException(ee.toString());
		}finally {
			try {
				if (rs == null) 	rs.close();
				if (pstmt == null) pstmt.close();
				param.closeDB();
			} catch (Exception e1) {
				// TODO 自动生成 catch 块
				e1.printStackTrace();
			}
		}
		ResponseUtils.write(pageContext, stringbuffer.toString());
		return 2;
	}

	private int getDotNum(String seq) {
		int n = 0;
		if (seq == null)
			return n;
		char[] v = seq.toCharArray();
		for (int i=0; i<v.length; i++)
			if (v[i] == '.')
				n++;
		return n;
	}
	public int doAfterBody() throws JspException
	{
		if (bodyContent != null)
		{
			String s = bodyContent.getString();
			if (s == null)
				s = "";
			saveBody = s.trim();
		}
		return 0;
	}

	public int doEndTag() throws JspException {
		//TODO Add your code here. 
		StringBuffer stringbuffer = new StringBuffer();
		if (saveBody != null)
			stringbuffer.append(saveBody);
		stringbuffer.append("</select>");
		ResponseUtils.write(pageContext, stringbuffer.toString());
		multiple = "false";
		size = null;
		id = WebDriver.REQUEST_REQUEST_CONTEXT;
		orgProperty = null;
		value = null;
		property = null;
		name = null;
		nullOption = "false";
		nullLabel = "";
		styleId = null;
		orgId = null;
		saveBody = null;
		return 6;
	}

	public void release()
	{
		multiple = "false";
		size = null;
		id = WebDriver.REQUEST_REQUEST_CONTEXT;
		orgProperty = null;
		value = null;
		property = null;
		name = null;
		nullOption = "false";
		nullLabel = "";
		styleId = null;
		orgId = null;
		saveBody = null;
		orgTypeId = null;
	}

	protected String getDefaultStyleClass()
	{
		// 实现的这个继承的抽象方法没有实际意义,已经被取消了
		return StyleConfig.getTagDefaultClass("com.primeton.business.bndict.taglib.SelectTag");
	}

	/**
	 * @return 返回 orgId。
	 */
	public String getOrgId() {
		return orgId;
	}
	/**
	 * @param orgId 要设置的 orgId。
	 */
	public void setOrgId(String orgId) {
		this.orgId = orgId;
	}
	/**
	 * @return 返回 orgTypeId。
	 */
	public String getOrgTypeId() {
		return orgTypeId;
	}
	/**
	 * @param orgTypeId 要设置的 orgTypeId。
	 */
	public void setOrgTypeId(String orgTypeId) {
		this.orgTypeId = orgTypeId;
	}
}

⌨️ 快捷键说明

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