/** * @param rundata * @param context * @return */ private SelectQuery<TurbineUser> getSelectQuery(RunData rundata, Context context) { SelectQuery<TurbineUser> query = null; String word = searchWord.getValue(); String transWord = ALStringUtil.convertHiragana2Katakana(ALStringUtil.convertH2ZKana(searchWord.getValue())); query = Database.query(TurbineUser.class); Expression exp_exclude_my_group = ExpressionFactory.matchExp( TurbineUser.TURBINE_USER_GROUP_ROLE_PROPERTY + "." + TurbineUserGroupRole.TURBINE_GROUP_PROPERTY + "." + TurbineGroup.OWNER_ID_PROPERTY, 1); Expression exp01 = ExpressionFactory.matchExp(TurbineUser.DISABLED_PROPERTY, "F"); query.setQualifier(exp01); Expression exp02 = ExpressionFactory.noMatchDbExp(TurbineUser.USER_ID_PK_COLUMN, Integer.valueOf(1)); Expression exp03 = ExpressionFactory.noMatchDbExp(TurbineUser.USER_ID_PK_COLUMN, Integer.valueOf(2)); Expression exp04 = ExpressionFactory.noMatchDbExp(TurbineUser.USER_ID_PK_COLUMN, Integer.valueOf(3)); query.andQualifier(exp02.andExp(exp03).andExp(exp04)); Expression exp11 = ExpressionFactory.likeExp(TurbineUser.FIRST_NAME_PROPERTY, "%" + word + "%"); Expression exp12 = ExpressionFactory.likeExp(TurbineUser.LAST_NAME_PROPERTY, "%" + word + "%"); Expression exp13 = ExpressionFactory.likeExp(TurbineUser.FIRST_NAME_KANA_PROPERTY, "%" + word + "%"); Expression exp14 = ExpressionFactory.likeExp(TurbineUser.LAST_NAME_KANA_PROPERTY, "%" + word + "%"); Expression exp15 = ExpressionFactory.likeExp(TurbineUser.EMAIL_PROPERTY, "%" + word + "%"); Expression exp16 = ExpressionFactory.likeExp( TurbineUser.TURBINE_USER_GROUP_ROLE_PROPERTY + "." + TurbineUserGroupRole.TURBINE_GROUP_PROPERTY + "." + TurbineGroup.GROUP_ALIAS_NAME_PROPERTY, "%" + word + "%"); exp16 = exp16.andExp(exp_exclude_my_group); Expression exp21 = ExpressionFactory.likeExp(TurbineUser.OUT_TELEPHONE_PROPERTY, "%" + word + "%"); Expression exp22 = ExpressionFactory.likeExp(TurbineUser.IN_TELEPHONE_PROPERTY, "%" + word + "%"); Expression exp23 = ExpressionFactory.likeExp(TurbineUser.CELLULAR_PHONE_PROPERTY, "%" + word + "%"); Expression exp31 = ExpressionFactory.likeExp(TurbineUser.FIRST_NAME_PROPERTY, "%" + transWord + "%"); Expression exp32 = ExpressionFactory.likeExp(TurbineUser.LAST_NAME_PROPERTY, "%" + transWord + "%"); Expression exp33 = ExpressionFactory.likeExp(TurbineUser.FIRST_NAME_KANA_PROPERTY, "%" + transWord + "%"); Expression exp34 = ExpressionFactory.likeExp(TurbineUser.LAST_NAME_KANA_PROPERTY, "%" + transWord + "%"); Expression exp35 = ExpressionFactory.likeExp( TurbineUser.TURBINE_USER_GROUP_ROLE_PROPERTY + "." + TurbineUserGroupRole.TURBINE_GROUP_PROPERTY + "." + TurbineGroup.GROUP_ALIAS_NAME_PROPERTY, "%" + transWord + "%"); exp35 = exp35.andExp(exp_exclude_my_group); Expression exp36 = ExpressionFactory.likeExp(TurbineUser.CODE_PROPERTY, "%" + transWord + "%"); if (word != null && !"".equals(word)) { query.andQualifier( exp11 .orExp(exp12) .orExp(exp13) .orExp(exp14) .orExp(exp15) .orExp(exp16) .orExp(exp21) .orExp(exp22) .orExp(exp23) .orExp(exp31) .orExp(exp32) .orExp(exp33) .orExp(exp34) .orExp(exp35) .orExp(exp36)); } query.distinct(); return query; }
/** * セッションで指定されたアドレスIDを持つアドレス情報を取得する。 * * @param rundata * @param context * @return */ public static EipMAddressbook getEipMAddressbook(RunData rundata, Context context) { // セッションから指定された アドレスID を取得 String addressid = ALEipUtils.getTemp(rundata, context, ALEipConstants.ENTITY_ID); try { if (addressid == null || Integer.valueOf(addressid) == null) { logger.debug("[AddressBook] Address ID..."); return null; } SelectQuery<EipMAddressbook> query = Database.query(EipMAddressbook.class); Expression exp11 = ExpressionFactory.matchDbExp( EipMAddressbook.ADDRESS_ID_PK_COLUMN, Integer.valueOf(addressid)); query.setQualifier(exp11); Expression exp21 = ExpressionFactory.matchExp(EipMAddressbook.PUBLIC_FLAG_PROPERTY, "T"); Expression exp22 = ExpressionFactory.matchExp( EipMAddressbook.OWNER_ID_PROPERTY, ALEipUtils.getUserId(rundata)); Expression exp23 = ExpressionFactory.matchExp(EipMAddressbook.PUBLIC_FLAG_PROPERTY, "F"); query.andQualifier(exp21.orExp(exp22.andExp(exp23))); List<EipMAddressbook> addresses = query.fetchList(); if (addresses == null || addresses.size() == 0) { logger.debug("[AddressBook] Not found Address ID..."); return null; } return addresses.get(0); } catch (Exception ex) { logger.error("AddressBookUtils.getEipMAddressbook", ex); return null; } }
public static Expression getIncompleteExpression() { Expression exp = null; for (String status : incompleteStatus) { Expression tmp = ExpressionFactory.matchExp(EipTProjectTask.STATUS_PROPERTY, status); if (null == exp) { exp = tmp; } else { exp = exp.orExp(tmp); } } return exp; }
private SelectQuery<EipTTodo> getSelectQueryForTodo(RunData rundata, Context context) { Integer uid = Integer.valueOf(userid); SelectQuery<EipTTodo> query = Database.query(EipTTodo.class); Expression exp1 = ExpressionFactory.noMatchExp(EipTTodo.STATE_PROPERTY, Short.valueOf((short) 100)); query.setQualifier(exp1); Expression exp01 = ExpressionFactory.matchDbExp(TurbineUser.USER_ID_PK_COLUMN, uid); Expression exp02 = ExpressionFactory.noMatchDbExp(TurbineUser.USER_ID_PK_COLUMN, uid); Expression exp03 = ExpressionFactory.matchExp(EipTTodo.PUBLIC_FLAG_PROPERTY, "T"); Expression exp04 = ExpressionFactory.matchExp(EipTTodo.ADDON_SCHEDULE_FLG_PROPERTY, "T"); query.andQualifier(exp01.orExp(exp02.andExp(exp03)).andExp(exp04)); // 終了日時 Expression exp11 = ExpressionFactory.greaterOrEqualExp(EipTTodo.END_DATE_PROPERTY, getViewDate().getValue()); // 開始日時 Expression exp12 = ExpressionFactory.lessOrEqualExp(EipTTodo.START_DATE_PROPERTY, getViewDate().getValue()); // 開始日時のみ指定されている ToDo を検索 Expression exp21 = ExpressionFactory.lessOrEqualExp(EipTTodo.START_DATE_PROPERTY, getViewDate().getValue()); Expression exp22 = ExpressionFactory.matchExp(EipTTodo.END_DATE_PROPERTY, ToDoUtils.getEmptyDate()); // 終了日時のみ指定されている ToDo を検索 Expression exp31 = ExpressionFactory.greaterOrEqualExp(EipTTodo.END_DATE_PROPERTY, getViewDate().getValue()); Expression exp32 = ExpressionFactory.matchExp(EipTTodo.START_DATE_PROPERTY, ToDoUtils.getEmptyDate()); query.andQualifier((exp11.andExp(exp12)).orExp(exp21.andExp(exp22)).orExp(exp31.andExp(exp32))); return query; }
/** * Returns a qualifier Expression that matches root entity of this tree and all its subentities. */ public Expression qualifierForEntityAndSubclasses() { Expression qualifier = entity.getDeclaredQualifier(); if (qualifier == null) { // match all return null; } if (subentities != null) { for (EntityInheritanceTree child : subentities) { Expression childQualifier = child.qualifierForEntityAndSubclasses(); // if any child qualifier is null, just return null, since no filtering is // possible if (childQualifier == null) { return null; } qualifier = qualifier.orExp(childQualifier); } } return qualifier; }
/** * 検索条件を設定した SelectQuery を返します。 <br> * * @param rundata * @param context * @return */ protected SelectQuery<TurbineUser> getSelectQuery(RunData rundata, Context context) { ObjectId oid = new ObjectId("TurbineUser", TurbineUser.USER_ID_PK_COLUMN, 3); Expression exp_base = ExpressionFactory.matchAllDbExp(oid.getIdSnapshot(), Expression.GREATER_THAN); SelectQuery<TurbineUser> query = Database.query(TurbineUser.class, exp_base) .where( Operations.eq(TurbineUser.COMPANY_ID_PROPERTY, Integer.valueOf(1)), Operations.ne(TurbineUser.DISABLED_PROPERTY, "T")); String filter = ALEipUtils.getTemp(rundata, context, LIST_FILTER_STR); String filter_role = ALEipUtils.getTemp(rundata, context, LIST_FILTER_ROLE_STR); currentPost = filter; currentRole = filter_role; if (target_keyword != null && !target_keyword.getValue().equals("")) { String transWord = ALStringUtil.convertHiragana2Katakana( ALStringUtil.convertH2ZKana(target_keyword.getValue())); transWord = transWord.replace(" ", "").replace(" ", ""); // 全角/半角スペースを削除 String[] transWords = transWord.split(""); // 1文字ずつに分解 for (int i = 0; i < transWords.length; i++) { Expression exp11 = ExpressionFactory.likeExp( TurbineUser.FIRST_NAME_PROPERTY, "%" + target_keyword.getValue() + "%"); Expression exp12 = ExpressionFactory.likeExp( TurbineUser.LAST_NAME_PROPERTY, "%" + target_keyword.getValue() + "%"); Expression exp13 = ExpressionFactory.likeExp( TurbineUser.FIRST_NAME_KANA_PROPERTY, "%" + target_keyword.getValue() + "%"); Expression exp14 = ExpressionFactory.likeExp( TurbineUser.LAST_NAME_KANA_PROPERTY, "%" + target_keyword.getValue() + "%"); Expression exp15 = ExpressionFactory.likeExp( TurbineUser.EMAIL_PROPERTY, "%" + target_keyword.getValue() + "%"); Expression exp16 = ExpressionFactory.likeExp( TurbineUser.TURBINE_USER_GROUP_ROLE_PROPERTY + "." + TurbineUserGroupRole.TURBINE_GROUP_PROPERTY + "." + TurbineGroup.GROUP_ALIAS_NAME_PROPERTY, "%" + target_keyword.getValue() + "%"); Expression exp17 = ExpressionFactory.likeExp( TurbineUser.LOGIN_NAME_PROPERTY, "%" + target_keyword.getValue() + "%"); Expression exp21 = ExpressionFactory.likeExp( TurbineUser.OUT_TELEPHONE_PROPERTY, "%" + target_keyword.getValue() + "%"); Expression exp22 = ExpressionFactory.likeExp( TurbineUser.IN_TELEPHONE_PROPERTY, "%" + target_keyword.getValue() + "%"); Expression exp23 = ExpressionFactory.likeExp( TurbineUser.CELLULAR_PHONE_PROPERTY, "%" + target_keyword.getValue() + "%"); Expression exp31 = ExpressionFactory.likeExp(TurbineUser.FIRST_NAME_PROPERTY, "%" + transWords[i] + "%"); Expression exp32 = ExpressionFactory.likeExp(TurbineUser.LAST_NAME_PROPERTY, "%" + transWords[i] + "%"); Expression exp33 = ExpressionFactory.likeExp( TurbineUser.FIRST_NAME_KANA_PROPERTY, "%" + transWords[i] + "%"); Expression exp34 = ExpressionFactory.likeExp( TurbineUser.LAST_NAME_KANA_PROPERTY, "%" + transWords[i] + "%"); Expression exp35 = ExpressionFactory.likeExp( TurbineUser.TURBINE_USER_GROUP_ROLE_PROPERTY + "." + TurbineUserGroupRole.TURBINE_GROUP_PROPERTY + "." + TurbineGroup.GROUP_ALIAS_NAME_PROPERTY, "%" + transWords[i] + "%"); query.andQualifier( exp11 .orExp(exp12) .orExp(exp13) .orExp(exp14) .orExp(exp15) .orExp(exp16) .orExp(exp17) .orExp(exp21) .orExp(exp22) .orExp(exp23) .orExp(exp31) .orExp(exp32) .orExp(exp33) .orExp(exp34) .orExp(exp35)); } } // ユーザーの状態によるフィルターが指定されている場合。 if (filter_role != null && !filter_role.equals("")) { // 管理者かどうか if (filter_role.equals(AccountUtils.ROLE_ADMIN.toString())) { try { Group group = JetspeedSecurity.getGroup("LoginUser"); Role adminrole = JetspeedSecurity.getRole("admin"); List<TurbineUserGroupRole> admins = Database.query(TurbineUserGroupRole.class) .where( Operations.eq(TurbineUserGroupRole.TURBINE_ROLE_PROPERTY, adminrole.getId()), Operations.eq(TurbineUserGroupRole.TURBINE_GROUP_PROPERTY, group.getId()), Operations.ne(TurbineUserGroupRole.TURBINE_USER_PROPERTY, 1)) .distinct(true) .fetchList(); List<Integer> admin_ids = new ArrayList<Integer>(); admin_ids.add(Integer.valueOf(1)); for (TurbineUserGroupRole tugr : admins) { admin_ids.add(tugr.getTurbineUser().getUserId()); } query.andQualifier(ExpressionFactory.inDbExp(TurbineUser.USER_ID_PK_COLUMN, admin_ids)); } catch (Exception ex) { logger.error("AccountUserSelectData.getSelectQuery", ex); } } // 有効ユーザーかどうか if (filter_role.equals(AccountUtils.ROLE_ACTIVE.toString())) { query.andQualifier(ExpressionFactory.matchExp(TurbineUser.DISABLED_PROPERTY, "F")); } // 有効ユーザーかどうか if (filter_role.equals(AccountUtils.ROLE_IN_ACTIVE.toString())) { query.andQualifier(ExpressionFactory.matchExp(TurbineUser.DISABLED_PROPERTY, "N")); } } // 部署によるフィルターが指定されている場合。 if (filter != null && !filter.equals("")) { String groupName = (ALEipManager.getInstance().getPostMap().get(Integer.valueOf(filter))) .getGroupName() .getValue(); query.where( Operations.eq( TurbineUser.TURBINE_USER_GROUP_ROLE_PROPERTY + "." + TurbineUserGroupRole.TURBINE_GROUP_PROPERTY + "." + TurbineGroup.GROUP_NAME_PROPERTY, groupName)); } query.distinct(); return query; }