📄 orgselect.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(" ");
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 + -