package com.kingdee.eas.custom.ot.util; import com.kingdee.bos.BOSException; import com.kingdee.bos.Context; import com.kingdee.bos.dao.IObjectPK; import com.kingdee.bos.dao.IObjectValue; import com.kingdee.bos.dao.ormapping.ObjectUuidPK; import com.kingdee.bos.dao.query.SQLExecutorFactory; import com.kingdee.bos.metadata.IMetaDataLoader; import com.kingdee.bos.metadata.MetaDataLoaderFactory; import com.kingdee.bos.metadata.entity.EntityViewInfo; import com.kingdee.bos.metadata.entity.FilterInfo; import com.kingdee.bos.metadata.entity.FilterItemInfo; import com.kingdee.bos.metadata.entity.SelectorItemCollection; import com.kingdee.bos.metadata.entity.SelectorItemInfo; import com.kingdee.bos.metadata.management.LanguageCollection; import com.kingdee.bos.metadata.management.SolutionInfo; import com.kingdee.bos.metadata.query.util.CompareType; import com.kingdee.bos.util.BOSUuid; import com.kingdee.bos.waf.ctx.WafContext; import com.kingdee.bos.waf.resource.Resources; import com.kingdee.eas.base.codingrule.CodingRuleManagerFactory; import com.kingdee.eas.base.codingrule.ICodingRuleManager; import com.kingdee.eas.base.param.util.ParamManager; import com.kingdee.eas.base.permission.IPermission; import com.kingdee.eas.base.permission.PermissionFactory; import com.kingdee.eas.base.permission.UserInfo; import com.kingdee.eas.basedata.org.AdminOrgUnitInfo; import com.kingdee.eas.basedata.org.CompanyOrgUnitInfo; import com.kingdee.eas.basedata.org.HROrgUnitInfo; import com.kingdee.eas.basedata.org.IOrgUnitRelation; import com.kingdee.eas.basedata.org.OrgUnitCollection; import com.kingdee.eas.basedata.org.OrgUnitRelationFactory; import com.kingdee.eas.basedata.person.IPerson; import com.kingdee.eas.basedata.person.PersonFactory; import com.kingdee.eas.basedata.person.PersonInfo; import com.kingdee.eas.common.EASBizException; import com.kingdee.eas.hr.emp.IPersonContactMethod; import com.kingdee.eas.hr.emp.IPersonDegree; import com.kingdee.eas.hr.emp.IPersonPosition; import com.kingdee.eas.hr.emp.PersonContactMethodFactory; import com.kingdee.eas.hr.emp.PersonContactMethodInfo; import com.kingdee.eas.hr.emp.PersonDegreeFactory; import com.kingdee.eas.hr.emp.PersonDegreeInfo; import com.kingdee.eas.hr.emp.PersonPositionFactory; import com.kingdee.eas.hr.emp.PersonPositionInfo; import com.kingdee.eas.util.app.ContextUtil; import com.kingdee.eas.util.app.DbUtil; import com.kingdee.jdbc.rowset.IRowSet; import com.kingdee.util.TypeConversionUtils; import com.kingdee.util.UuidException; import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Locale; import javax.faces.application.FacesMessage; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import org.apache.log4j.Logger; import org.operamasks.faces.component.form.impl.UIField; import org.operamasks.faces.component.grid.impl.UIDataGrid; public class HRUtils { protected static Logger logger = Logger.getLogger("com.kingdee.eas.hr.base.web.util.HRUtils"); public static PersonPositionInfo getPersonPosition(PersonInfo person) { new PersonPositionInfo(); try { SelectorItemCollection sic = new SelectorItemCollection(); sic.add(new SelectorItemInfo("*")); sic.add(new SelectorItemInfo("enrollSource.name")); sic.add(new SelectorItemInfo("personDep.name")); sic.add(new SelectorItemInfo("primaryPosition.name")); sic.add(new SelectorItemInfo("jobLevel.name")); sic.add(new SelectorItemInfo("primaryPosition.adminOrgUnit.name")); IPersonPosition bill = PersonPositionFactory.getRemoteInstance(); IObjectPK[] pks = bill.getPKList("where person.id='" + person.getId() + "'"); if (pks.length > 0) { PersonPositionInfo info = bill.getPersonPositionInfo(pks[0], sic); return info; } else { return null; } } catch (BOSException e) { logger.error("", e); return null; } catch (EASBizException e) { logger.error("", e); return null; } } public static PersonContactMethodInfo getPersonContactMethod(PersonInfo person) { new PersonContactMethodInfo(); try { IPersonContactMethod bill = PersonContactMethodFactory.getRemoteInstance(); IObjectPK[] pks = bill.getPKList("where person.id='" + person.getId() + "'"); if (pks.length > 0) { PersonContactMethodInfo info = bill.getPersonContactMethodInfo(pks[0]); return info; } else { return null; } } catch (BOSException e) { logger.error("", e); return null; } catch (EASBizException e) { logger.error("", e); return null; } } public static PersonDegreeInfo getPersonDegree(PersonInfo person) { new PersonDegreeInfo(); try { SelectorItemCollection sic = new SelectorItemCollection(); sic.add(new SelectorItemInfo("*")); sic.add(new SelectorItemInfo("diploma.name")); sic.add(new SelectorItemInfo("bwGraSchool.name")); sic.add(new SelectorItemInfo("bwMajor.name")); IPersonDegree bill = PersonDegreeFactory.getRemoteInstance(); IObjectPK[] pks = bill.getPKList("where person.id='" + person.getId() + "' and isHighest =1 "); if (pks.length > 0) { PersonDegreeInfo info = bill.getPersonDegreeInfo(pks[0], sic); return info; } else { return null; } } catch (BOSException e) { logger.error("", e); return null; } catch (EASBizException e) { logger.error("", e); return null; } } public static PersonInfo getPerson(PersonInfo person) { new PersonInfo(); try { SelectorItemCollection sic = new SelectorItemCollection(); sic.add(new SelectorItemInfo("*")); sic.add(new SelectorItemInfo("politicalFace.name")); IPerson bill = PersonFactory.getRemoteInstance(); IObjectPK[] pks = bill.getPKList("where id='" + person.getId() + "'"); if (pks.length > 0) { PersonInfo info = bill.getPersonInfo(pks[0], sic); return info; } else { return null; } } catch (BOSException e) { logger.error("", e); return null; } catch (EASBizException e) { logger.error("", e); return null; } } public static String getAutoCode(Context ctx ,IObjectValue objValue) { String NumberCode = ""; try { CompanyOrgUnitInfo company = ContextUtil.getCurrentFIUnit(ctx); if (company != null) { String companyId = company.getId().toString(); ICodingRuleManager codeRuleMgr = null; codeRuleMgr = CodingRuleManagerFactory.getRemoteInstance(); if (codeRuleMgr.isExist(objValue, companyId)) { if (codeRuleMgr.isUseIntermitNumber(objValue, companyId)) { NumberCode = codeRuleMgr.readNumber(objValue, companyId); } else { NumberCode = codeRuleMgr.getNumber(objValue, companyId); } } } } catch (EASBizException e) { logger.error("", e); } catch (BOSException e) { logger.error("", e); } catch (UuidException e) { logger.error("", e); } return NumberCode; } public static Boolean checkHasPermission(Context ctx ,String permission) { Boolean hasPermission = false; try { IPermission perm = PermissionFactory.getLocalInstance(ctx); UserInfo person = ContextUtil.getCurrentUserInfo(ctx); if (person != null) { IObjectPK userPK = new ObjectUuidPK(person.getId()); IObjectPK orgPK = new ObjectUuidPK(ContextUtil.getCurrentHRUnit(ctx).getId()); hasPermission = perm.hasFunctionPermission(userPK, orgPK, permission); return hasPermission; } else { return false; } } catch (BOSException var7) { return false; } catch (EASBizException var8) { return false; } } public static boolean isCodeRuleEnable(Context ctx ,IObjectValue objValue) { try { CompanyOrgUnitInfo company = ContextUtil.getCurrentFIUnit(ctx); if (company != null) { String companyId = company.getId().toString(); ICodingRuleManager codeRuleMgr = null; codeRuleMgr = CodingRuleManagerFactory.getRemoteInstance(); return codeRuleMgr.isExist(objValue, companyId); } } catch (EASBizException e) { logger.error("", e); } catch (BOSException e) { logger.error("", e); } catch (UuidException e) { logger.error("", e); } return false; } public static void lockComponentApprovedAmount(List componentList) { Iterator ite = componentList.iterator(); UIComponent component = null; while (ite.hasNext()) { component = (UIComponent) ite.next(); if (component instanceof UIField) { ((UIField) component).setDisabled(true); } else if (component.getChildCount() > 0) { lockComponentApprovedAmount(component.getChildren()); } } } public static FilterInfo getUserHROrg(Context ctx,String orgUnitColumnName) { String userID = ContextUtil.getCurrentUserInfo(ctx).getId().toString(); StringBuffer sql = new StringBuffer(); sql.append("Select FOrgID From T_PM_OrgRange ").append("Where FUserID='").append(userID).append("' And FType='10' "); FilterInfo filter = new FilterInfo(); FilterItemInfo item = new FilterItemInfo(orgUnitColumnName, sql.toString(), CompareType.INNER); filter.getFilterItems().add(item); return filter; } public static UserInfo getCurrentUser(Context ctx ) { return ContextUtil.getCurrentUserInfo(ctx); } public static CompanyOrgUnitInfo getCurrentCompany(Context ctx ) { CompanyOrgUnitInfo company = ContextUtil.getCurrentFIUnit(ctx); return company; } public static HROrgUnitInfo getCurrentHROrgUnit(Context ctx ) { HROrgUnitInfo info = ContextUtil.getCurrentHRUnit(ctx); return info; } public static AdminOrgUnitInfo getCurrentAdminOrgUnit(Context ctx ) { AdminOrgUnitInfo info = ContextUtil.getCurrentAdminUnit(ctx); return info; } public static FilterInfo getCurrentCUFilter(Context ctx ) { FilterInfo filter = new FilterInfo(); if (ContextUtil.getCurrentCtrlUnit(ctx) == null) { return filter; } else { filter.getFilterItems().add(new FilterItemInfo("CU.id", ContextUtil.getCurrentCtrlUnit(ctx).getId().toString(), CompareType.EQUALS)); return filter; } } public static EntityViewInfo getCurrentCUEntityViewInfo(Context ctx ) { EntityViewInfo viewInfo = new EntityViewInfo(); viewInfo.setFilter(getCurrentCUFilter(ctx)); return viewInfo; } public static FilterInfo getCurrentHRFilter(Context ctx ,String hrOrgUnitId) { FilterInfo filter = new FilterInfo(); if (getCurrentHROrgUnit(ctx) != null) { filter.getFilterItems().add(new FilterItemInfo(hrOrgUnitId, getCurrentHROrgUnit(ctx).getId().toString())); } return filter; } public static AdminOrgUnitInfo getUserOrgInfo(Context ctx,String personId) throws EASBizException, BOSException, UuidException { AdminOrgUnitInfo orgUnitInfo = null; if (personId != null && !"".equalsIgnoreCase(personId)) { orgUnitInfo = PersonFactory.getLocalInstance(ctx).getPrimaryAdminOrgUnit(BOSUuid.read(personId)); } return orgUnitInfo; } public static FilterInfo getHRAndAdminRangeFilterInfo(Context ctx,String hrColumnName, String orgUnitColumnName) { String hrOrgUnitID = ContextUtil.getCurrentHRUnit(ctx).getId().toString(); return getHRAndAdminRangeFilterInfo(ctx,hrColumnName, orgUnitColumnName, hrOrgUnitID); } public static FilterInfo getHRAndAdminRangeFilterInfo(Context ctx,String hrColumnName, String orgUnitColumnName, String hrOrgUnitId) { FilterInfo filter = getAdminRangeFilterInfo(ctx,orgUnitColumnName, hrOrgUnitId); FilterItemInfo item = new FilterItemInfo(hrColumnName, hrOrgUnitId); filter.getFilterItems().add(item); return filter; } public static FilterInfo getHRAndAdminRangeFilterInfo(Context ctx,String orgUnitColumnName) { BOSUuid hrOrgUnitId = ContextUtil.getCurrentHRUnit(ctx).getId(); if (!ContextUtil.getCurrentHRUnit(ctx).isIsBizUnit()) { try { hrOrgUnitId = getUserOrgInfo(ctx,ContextUtil.getCurrentUserInfo(ctx).getPerson().getId().toString()).getId(); } catch (EASBizException e) { logger.error("", e); } catch (BOSException e) { logger.error("", e); } catch (UuidException e) { logger.error("", e); } } return getAdminRangeFilterInfo(ctx,orgUnitColumnName, hrOrgUnitId.toString()); } public static FilterInfo getAdminRangeFilterInfo(Context ctx,String orgUnitColumnName, String hrOrgUnitId) { String userID = ContextUtil.getCurrentUserInfo(ctx).getId().toString(); StringBuffer sql = new StringBuffer(); sql.append("SELECT FFromUnitID FROM T_ORG_UnitRelation WHERE FToUnitID = "); sql.append("'"); sql.append(hrOrgUnitId); sql.append("'"); sql.append(" AND "); sql.append(" FTypeRelationID = "); sql.append("'00000000-0000-0000-0000-0000000000100FE9F8B5'"); sql.append(" AND "); sql.append("FFromUnitID IN ("); sql.append("SELECT FOrgID FROM T_PM_OrgRange WHERE FUserID = "); sql.append("'"); sql.append(userID); sql.append("'"); sql.append(" AND "); sql.append("FType = "); sql.append(20); sql.append(")"); FilterInfo filter = new FilterInfo(); FilterItemInfo item = new FilterItemInfo(orgUnitColumnName, sql.toString(), CompareType.INNER); filter.getFilterItems().add(item); return filter; } public static FilterInfo getAdminRangeFilterInfo(Context ctx,String orgUnitColumnName) { String hrOrgUnitID = ContextUtil.getCurrentHRUnit(ctx).getId().toString(); return getAdminRangeFilterInfo(ctx,orgUnitColumnName, hrOrgUnitID); } public static String getHRAndAdminRangePersonSQL(String hrOrgUnitID, String userID) { StringBuffer sql = new StringBuffer(); sql.append("SELECT PERSON.FID FROM T_BD_PERSON AS PERSON"); sql.append(" INNER JOIN T_HR_PERSONPOSITION AS PP ON PP.FPERSONID = PERSON.FID"); sql.append(" INNER JOIN T_ORG_UNITRELATION AS REL ON REL.FFROMUNITID = PP.FPERSONDEP"); sql.append(" INNER JOIN T_PM_ORGRANGE AS RANGE ON RANGE.FORGID = REL.FFROMUNITID"); sql.append(" WHERE "); sql.append(" REL.FTOUNITID = "); sql.append("'"); sql.append(hrOrgUnitID); sql.append("'"); sql.append(" AND "); sql.append(" REL.FTYPERELATIONID = "); sql.append("'"); sql.append("00000000-0000-0000-0000-0000000000100FE9F8B5"); sql.append("'"); sql.append(" AND "); sql.append(" RANGE.FUSERID = "); sql.append("'"); sql.append(userID); sql.append("'"); sql.append(" AND "); sql.append(" RANGE.FTYPE = "); sql.append(20); return sql.toString(); } public static FilterInfo getHRAndAdminRangePersonFilterInfo(Context ctx ,String hrColumnName, String personColumnName) { String userID = ContextUtil.getCurrentUserInfo(ctx).getId().toString(); String hrOrgUnitID = ContextUtil.getCurrentHRUnit(ctx).getId().toString(); FilterInfo filterInfo = new FilterInfo(); String sql = getHRAndAdminRangePersonSQL(hrOrgUnitID, userID); filterInfo.getFilterItems().add(new FilterItemInfo(personColumnName, sql, CompareType.INNER)); filterInfo.getFilterItems().add(new FilterItemInfo(hrColumnName, hrOrgUnitID)); return filterInfo; } public static String getHRAndAdminRangePersonSQL_All(String hrOrgUnitID, String userID) { StringBuffer sql = new StringBuffer(); sql.append("SELECT PERSON.FID FROM T_BD_PERSON AS PERSON"); sql.append(" INNER JOIN T_ORG_POSITIONMEMBER AS PM ON PM.FPERSONID = PERSON.FID"); sql.append(" INNER JOIN T_ORG_POSITION AS Position ON PM.FPOSITIONID = Position.FID"); sql.append(" INNER JOIN T_ORG_UNITRELATION AS REL ON REL.FFROMUNITID = Position.FAdminOrgUnitID"); sql.append(" INNER JOIN T_PM_ORGRANGE AS RANGE ON RANGE.FORGID = REL.FFROMUNITID"); sql.append(" WHERE "); sql.append(" REL.FTOUNITID = "); sql.append("'"); sql.append(hrOrgUnitID); sql.append("'"); sql.append(" AND "); sql.append(" REL.FTYPERELATIONID = "); sql.append("'"); sql.append("00000000-0000-0000-0000-0000000000100FE9F8B5"); sql.append("'"); sql.append(" AND "); sql.append(" RANGE.FUSERID = "); sql.append("'"); sql.append(userID); sql.append("'"); sql.append(" AND "); sql.append(" RANGE.FTYPE = "); sql.append(20); return sql.toString(); } public static FilterInfo getHRAndAdminRangePersonFilterInfo_All(Context ctx ,String hrColumnName, String personColumnName) { String userID = ContextUtil.getCurrentUserInfo(ctx).getId().toString(); String hrOrgUnitID = ContextUtil.getCurrentHRUnit(ctx).getId().toString(); FilterInfo filterInfo = new FilterInfo(); String sql = getHRAndAdminRangePersonSQL_All(hrOrgUnitID, userID); filterInfo.getFilterItems().add(new FilterItemInfo(personColumnName, sql, CompareType.INNER)); filterInfo.getFilterItems().add(new FilterItemInfo(hrColumnName, hrOrgUnitID)); return filterInfo; } public static String getHRAndAdminRangePersonSQL(Context ctx ) { String userID = ContextUtil.getCurrentUserInfo(ctx).getId().toString(); String hrOrgUnitID = ContextUtil.getCurrentHRUnit(ctx).getId().toString(); String sql = getHRAndAdminRangePersonSQL_All(hrOrgUnitID, userID); return sql; } public static HROrgUnitInfo getHROrgUnitInfo(Context ctx,BOSUuid souId) throws EASBizException, BOSException { if (souId == null) { return null; } else { IOrgUnitRelation iUnitRel = OrgUnitRelationFactory.getLocalInstance(ctx); HROrgUnitInfo ret = (HROrgUnitInfo) iUnitRel.getDefaultToUnit(souId.toString(), 0, 16); if (ret == null) { OrgUnitCollection orgCol = iUnitRel.getToUnit(souId.toString(), 0, 16); ret = (HROrgUnitInfo) orgCol.get(0); } return ret; } } private static String getCurrentDate() { new GregorianCalendar(); Calendar cal = new GregorianCalendar(); SimpleDateFormat sFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return "{ts'" + sFormat.format(((Calendar) cal).getTime()) + "'}"; } public static FilterInfo isPersonInAffairProcessOrInPool(String person) { String currDate = getCurrentDate(); StringBuffer oql = new StringBuffer("select fpersonid "); oql.append("from t_hr_hraffairbiz "); oql.append(" where "); oql.append(" (fbillState = "); oql.append(0); oql.append(" or fbillState = "); oql.append(1); oql.append(" or fbillState = "); oql.append(2); oql.append(" or (fbillState = "); oql.append(3); oql.append(" and fentryBizDate >= "); oql.append(currDate); oql.append(" )"); oql.append(" and fpersonid is not null) "); FilterInfo filter = new FilterInfo(); FilterItemInfo item = new FilterItemInfo(person, oql.toString(), CompareType.NOTINNER); filter.getFilterItems().add(item); StringBuffer sql = new StringBuffer("select fpersonid "); sql.append("from t_hr_EmployeePool"); FilterItemInfo item2 = new FilterItemInfo(person, sql.toString(), CompareType.NOTINNER); filter.getFilterItems().add(item2); return filter; } public static String getOrgFilter(Context ctx,String param) { String strFilterInfo = ""; if (param != null && "adminOrgUnit".equals(param)) { FilterInfo fi = new FilterInfo(); FilterInfo adminFilter = getHRAndAdminRangeFilterInfo(ctx,"id"); if (adminFilter != null && !"null".equals(adminFilter)) { if (fi.getFilterItems().size() > 0) { try { fi.mergeFilter(adminFilter, "and"); } catch (BOSException e) { logger.error("", e); } } else { fi = adminFilter; } } strFilterInfo = fi.toString(); } else if (param != null && "hrOrgUnit".equals(param)) { FilterInfo fi = new FilterInfo(); FilterInfo hrFilter = getUserHROrg(ctx,"id"); if (hrFilter != null && !"null".equals(hrFilter)) { if (fi.getFilterItems().size() > 0) { try { fi.mergeFilter(hrFilter, "and"); } catch (BOSException e) { logger.error("", e); } } else { fi = hrFilter; } } strFilterInfo = fi.toString(); } return strFilterInfo; } public static boolean checkSelectRow(UIDataGrid grid) { if (grid.getSelections() != null && grid.getSelections().length > 0 && grid.getSelections()[0] != -1) { return true; } else { FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, Resources.getText("noRowSelected"), (String) null); FacesContext.getCurrentInstance().addMessage((String) null, message); return false; } } public static boolean getParamValue(Context ctx ,String id) throws EASBizException, BOSException { String hrOrgId = null; String paramValue = null; if (ContextUtil.getCurrentHRUnit(ctx) != null) { hrOrgId = ContextUtil.getCurrentHRUnit(ctx).getId().toString(); paramValue = ParamManager.getParamValue((Context) null, new ObjectUuidPK(hrOrgId), id); return TypeConversionUtils.objToBoolean(paramValue); } else { return false; } } public static Locale getOriginalLocale(Locale easLocale) { SolutionInfo solution = null; IMetaDataLoader loader = MetaDataLoaderFactory.getRemoteMetaDataLoader(); solution = loader.getSolution(); if (solution != null) { LanguageCollection lc = solution.getLanguages(); for (int i = 0; i < lc.size(); ++i) { if (lc.get(i).getLocale().equals(easLocale)) { return lc.get(i).getOriginalLocale(); } } } return easLocale; } public static FilterItemInfo getAdminRangeFilterItemInfo(Context ctx, String orgID) { String sql = getAdminRangeSql(ctx); FilterItemInfo item = new FilterItemInfo(orgID, sql, CompareType.INNER); return item; } public static String getAdminRangeSql(Context ctx) { String userID = getCurrentUserId(ctx); StringBuffer sql = new StringBuffer(); sql.append("SELECT FFromUnitID FROM T_ORG_UnitRelation WHERE FToUnitID in ("); sql.append(getHRRangeByUserId(userID)); sql.append(") AND FTypeRelationID = '00000000-0000-0000-0000-0000000000100FE9F8B5'"); sql.append(" AND FFromUnitID IN ("); sql.append("SELECT FOrgID FROM T_PM_OrgRange WHERE FUserID = "); sql.append("'"); sql.append(userID); sql.append("'"); sql.append(" AND FType = "); sql.append(20); sql.append(")"); return sql.toString(); } private static String getCurrentUserId(Context ctx) { String userID = null; if (ctx != null) { userID = ContextUtil.getCurrentUserInfo(ctx).getId().toString(); } else { userID = ContextUtil.getCurrentUserInfo(WafContext.getInstance().getContext()).getId().toString(); } return userID; } public static String getHRRangeByUserId(String userID) { StringBuffer sql = new StringBuffer(); sql.append("select orgRange.forgId as forgId from T_PM_OrgRange orgRange inner join "); sql.append("T_ORG_HRO hro on orgRange.forgId = hro.fid "); sql.append("where orgRange.ftype = "); sql.append(10); sql.append(" and fuserid = '"); sql.append(userID); sql.append("' "); return sql.toString(); } public static FilterItemInfo getUserAdminRangeFilter(String queryColumn) { Context context = WafContext.getInstance().getContext(); String userID = ContextUtil.getCurrentUserInfo(context).getId().toString(); StringBuffer sql = new StringBuffer(); sql.append("SELECT FOrgID FROM T_PM_OrgRange WHERE FUserID = "); sql.append("'"); sql.append(userID); sql.append("'"); sql.append(" AND "); sql.append("FType = "); sql.append(20); FilterItemInfo item = new FilterItemInfo(queryColumn, sql.toString(), CompareType.INNER); return item; } public static HashSet getHRRange(Context ctx) throws BOSException, EASBizException { String userID = getCurrentUserId(ctx); String sql = getHRRangeByUserId(userID); HashSet set = new HashSet(); IRowSet rows = null; if (ctx != null) { rows = DbUtil.executeQuery(ctx, sql.toString()); } else { rows = SQLExecutorFactory.getRemoteInstance(sql).executeSQL(); } if (rows != null) { try { while (rows.next()) { set.add(rows.getString("forgId")); } } catch (SQLException e) { throw new BOSException(e); } } return set; } public static String appendServiceId(String url) { StringBuffer sb = new StringBuffer(url); if (url.indexOf("&") == -1) { sb.append("?"); } else { sb.append("&"); } sb.append("ISERVICE_ServiceID="); sb.append(WafContext.getInstance().getRequest().getParameter("ISERVICE_ServiceID")); return sb.toString(); } }