/** * @param id * @return */ @SuppressWarnings("unused") private String getPositionName(int id) { if (ALEipManager.getInstance().getPositionMap().containsKey(Integer.valueOf(id))) { return (ALEipManager.getInstance().getPositionMap().get(Integer.valueOf(id))) .getPositionName() .getValue(); } return null; }
/** * 『役職』を更新します。 <br> * * @param rundata * @param context * @param msgList * @return */ @Override protected boolean updateFormData(RunData rundata, Context context, List<String> msgList) { try { // オブジェクトモデルを取得 EipMPosition record = AccountUtils.getEipMPosition(rundata, context); if (record == null) { return false; } record.setPositionName(position_name.getValue()); record.setUpdateDate(new Date()); Database.commit(); // イベントログに保存 ALEventlogFactoryService.getInstance() .getEventlogHandler() .log( record.getPositionId(), ALEventlogConstants.PORTLET_TYPE_ACCOUNT, "役職「" + record.getPositionName() + "」を更新"); ALEipManager.getInstance().reloadPosition(); } catch (Exception ex) { Database.rollback(); logger.error("AccountPositionFormData.updateFormData", ex); return false; } return true; }
/** * 『役職』を追加します。 <br> * * @param rundata * @param context * @param msgList * @return */ @Override protected boolean insertFormData(RunData rundata, Context context, List<String> msgList) { try { EipMPosition position = Database.create(EipMPosition.class); position.setPositionName(position_name.getValue()); Date now = new Date(); position.setCreateDate(now); position.setUpdateDate(now); Database.commit(); // イベントログに保存 ALEventlogFactoryService.getInstance() .getEventlogHandler() .log( position.getPositionId(), ALEventlogConstants.PORTLET_TYPE_ACCOUNT, "役職「" + position.getPositionName() + "」を追加"); position_id = position.getPositionId().intValue(); ALEipManager.getInstance().reloadPosition(); } catch (Exception ex) { Database.rollback(); logger.error("AccountPositionFormData.insertFormData", ex); return false; } return true; }
/** * フィルタ用の <code>Criteria</code> を構築します。 * * @param crt * @param rundata * @param context * @return */ @Override protected SelectQuery<TurbineUser> buildSelectQueryForFilter( SelectQuery<TurbineUser> query, RunData rundata, Context context) { // 指定部署IDの取得 String filter = ALEipUtils.getTemp(rundata, context, LIST_FILTER_STR); String filter_role = ALEipUtils.getTemp(rundata, context, LIST_FILTER_ROLE_STR); // 指定部署が存在しているかを確認し、存在していなければ値を削除する Map<Integer, ALEipPost> gMap = ALEipManager.getInstance().getPostMap(); if (filter != null && filter.trim().length() != 0 && !gMap.containsKey(Integer.valueOf(filter))) { filter = null; } String filter_type = ALEipUtils.getTemp(rundata, context, LIST_FILTER_TYPE_STR); String crt_key = null; Attributes map = getColumnMap(); if (filter == null || filter_type == null || filter.equals("")) { return query; } crt_key = map.getValue(filter_type); if (crt_key == null) { return query; } Expression exp = ExpressionFactory.matchDbExp(crt_key, filter); query.andQualifier(exp); currentPost = filter; currentRole = filter_role; return query; }
/** * 会社名を取得します。 * * @param id 会社ID * @return 会社名 */ public String getCompanyName(int id) { String companyName = ""; Map<Integer, ALEipCompany> companyMap = ALEipManager.getInstance().getCompanyMap(); ALEipCompany company = companyMap.get(Integer.valueOf(id)); if (company != null) { companyName = company.getCompanyName().toString(); } return companyName; }
/** * 『役職』を削除します。 <br> * * @param rundata * @param context * @param msgList * @return */ @Override protected boolean deleteFormData(RunData rundata, Context context, List<String> msgList) { try { // オブジェクトモデルを取得 EipMPosition record = AccountUtils.getEipMPosition(rundata, context); if (record == null) { return false; } // 役職IDを取得 int positionId = record.getPositionId(); // 役職を削除 Database.delete(record); Database.commit(); // イベントログに保存 ALEventlogFactoryService.getInstance() .getEventlogHandler() .log( record.getPositionId(), ALEventlogConstants.PORTLET_TYPE_ACCOUNT, "役職「" + record.getPositionName() + "」を削除"); // この役職に設定されているユーザーの役職IDを0とする String sql = "UPDATE turbine_user set POSITION_ID = 0 where POSITION_ID = " + positionId; Database.sql(TurbineUser.class, sql).execute(); ALEipManager.getInstance().reloadPosition(); } catch (Exception ex) { Database.rollback(); logger.error("AccountPositionFormData.deleteFormData", ex); return false; } return true; }
/** * 部署マップを取得します。 * * @return */ public Map<Integer, ALEipPost> getPostMap() { return ALEipManager.getInstance().getPostMap(); }
/** * 会社名を取得します。 * * @param id 会社ID * @return 会社名 */ public String getCompanyName(int id) { Map<Integer, ALEipCompany> companyMap = ALEipManager.getInstance().getCompanyMap(); ALEipCompany company = companyMap.get(Integer.valueOf(id)); return company.getCompanyName().toString(); }
/** * 検索条件を設定した 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; }