/** * <br> * [機 能] 選択された会社情報を設定する <br> * [解 説] <br> * [備 考] * * @param con コネクション * @param paramMdl Adr020ParamModel * @throws SQLException SQL実行時例外 */ protected void _setCompanyData(Connection con, Adr020ParamModel paramMdl) throws SQLException { if (!StringUtil.isNullZeroString(paramMdl.getAdr020selectCompany())) { AdrCompanyDao companyDao = new AdrCompanyDao(con); AdrCompanyModel companyMdl = companyDao.select(Integer.parseInt(paramMdl.getAdr020selectCompany())); if (companyMdl != null) { paramMdl.setAdr020companyCode(companyMdl.getAcoCode()); paramMdl.setAdr020companyName(companyMdl.getAcoName()); if (!StringUtil.isNullZeroString(paramMdl.getAdr020selectCompanyBase())) { AdrCompanyBaseDao companyBaseDao = new AdrCompanyBaseDao(con); AdrCompanyBaseModel companyBaseMdl = companyBaseDao.select(Integer.parseInt(paramMdl.getAdr020selectCompanyBase())); if (companyBaseMdl != null) { String companyBaseName = companyBaseMdl.getAbaName(); String companyBaseType = AddressBiz.getCompanyBaseTypeName(companyBaseMdl.getAbaType(), reqMdl_); if (!StringUtil.isNullZeroString(companyBaseType)) { companyBaseName = companyBaseType + " : " + companyBaseName; } paramMdl.setAdr020companyBaseName(companyBaseName); } else { paramMdl.setAdr020selectCompanyBase(null); } } } else { paramMdl.setAdr020selectCompany(null); paramMdl.setAdr020selectCompanyBase(null); } } }
/** * <br> * [機 能] 検索条件Modelを生成する <br> * [解 説] <br> * [備 考] * * @param paramMdl パラメータ情報 * @param usrSid ユーザSID * @param listCnt 一覧表示最大件数 * @return 検索条件Model */ private Enq010SearchModel __createSearchModel( Enq230ParamModel paramMdl, int usrSid, int listCnt) { Enq010SearchModel searchMdl = new Enq010SearchModel(); searchMdl.setPage(paramMdl.getEnq230pageTop()); searchMdl.setMaxCount(listCnt); searchMdl.setSessionUserSid(usrSid); searchMdl.setFolder(Enq010Const.FOLDER_TEMPLATE); // 種類 searchMdl.setEnqType(paramMdl.getEnq230svType()); // キーワード // キーワード 種別 String[] keywordList = null; if (!StringUtil.isNullZeroString(paramMdl.getEnq230svKeyword())) { keywordList = paramMdl.getEnq230svKeyword().split(" "); } searchMdl.setKeyword(keywordList); searchMdl.setKeywordType(paramMdl.getEnq230svKeywordType()); // 重要度 searchMdl.setPriority(paramMdl.getEnq230svPriority()); // 状態 searchMdl.setStatus(paramMdl.getEnq230svStatus()); // 匿名 searchMdl.setAnony(paramMdl.getEnq230svAnony()); return searchMdl; }
/** * <br> * [機 能] 初期表示を設定する。 <br> * [解 説] <br> * [備 考] * * @param paramMdl Fil130ParamModel * @param buMdl セッションユーザモデル * @throws SQLException SQL実行例外 */ public void setInitData(Fil130ParamModel paramMdl, BaseUserModel buMdl) throws SQLException { log__.debug("fil130Biz Start"); // 初期表示の場合、DB登録値を表示する。 if (StringUtil.isNullZeroString(paramMdl.getFil130SmailSend())) { __setData(paramMdl, buMdl.getUsrsid()); } }
/** * <br> * [機 能] 入力チェックを行う <br> * [解 説] <br> * [備 考] * * @param con コネクション * @param gsMsg GsMessage * @param usrSid ユーザSID * @return エラー * @throws SQLException SQL実行時例外 */ public ActionErrors validateCmnDownload(Connection con, GsMessage gsMsg, int usrSid) throws SQLException { ActionErrors errors = new ActionErrors(); ActionMessage msg = null; if (StringUtil.isNullZeroString(binSid__)) { // 未入力 msg = new ActionMessage("error.input.required.text", gsMsg.getMessage(GSConstApi.TEXT_BIN_SID)); StrutsUtil.addMessage(errors, msg, "binSid"); } else if (!ValidateUtil.isNumber(binSid__)) { // 数字チェック msg = new ActionMessage( "error.input.number.hankaku", gsMsg.getMessage(GSConstApi.TEXT_BIN_SID)); StrutsUtil.addMessage(errors, msg, "binSid"); } if (StringUtil.isNullZeroString(smlSid__)) { // 未入力 msg = new ActionMessage("error.input.required.text", gsMsg.getMessage(GSConstApi.TEXT_SML_SID)); StrutsUtil.addMessage(errors, msg, "smlSid"); } else if (!ValidateUtil.isNumber(smlSid__)) { // 数字チェック msg = new ActionMessage( "error.input.number.hankaku", gsMsg.getMessage(GSConstApi.TEXT_SML_SID)); StrutsUtil.addMessage(errors, msg, "smlSid"); } if (errors.size() < 1) { // ショートメール添付ファイルチェック if (!__isFileOk(usrSid, con)) { msg = new ActionMessage( "search.notfound.tdfkcode", gsMsg.getMessage(GSConstApi.TEXT_TEMP_FILE)); StrutsUtil.addMessage(errors, msg, "smlSid"); } } return errors; }
/** * <br> * [機 能] 初期表示を行う <br> * [解 説] <br> * [備 考] * * @param con コネクション * @param paramMdl パラメータ情報 * @param userSid ユーザSID * @param reqMdl リクエスト情報 * @throws SQLException SQL実行時例外 */ public void setInitData( Connection con, Sml310ParamModel paramMdl, int userSid, RequestModel reqMdl) throws SQLException { List<AccountDataModel> adMdlList = new ArrayList<AccountDataModel>(); List<LabelDataModel> ldMdlList = new ArrayList<LabelDataModel>(); Sml310Dao dao = new Sml310Dao(con); // SmlCommonBiz comonBiz = new SmlCommonBiz(con, reqMdl); // //アカウントリストを取得 // adMdlList = dao.getAccountList(userSid); // paramMdl.setAcntList(comonBiz.getAcntCombo(reqMdl, adMdlList)); // アカウント名取得 int selectSacSid = paramMdl.getSmlAccountSid(); SmlAccountDao sacDao = new SmlAccountDao(con); SmlAccountModel sacMdl = sacDao.select(selectSacSid); paramMdl.setSml310accountName(sacMdl.getSacName()); // ラベルリストを取得 int dspCnt = paramMdl.getDspCount(); if (dspCnt == 0 && adMdlList.size() != 0) { paramMdl.setSmlAccountSid(adMdlList.get(0).getAccountSid()); paramMdl.setDspCount(1); } int selectAccountNum = paramMdl.getSmlAccountSid(); ldMdlList = dao.getLabelList(selectAccountNum); LabelDataModel sldDspMdl = null; int count = 0; // ラベルを画面表示用に加工する List<LabelDataModel> lbList = new ArrayList<LabelDataModel>(); for (LabelDataModel sldSetMdl : ldMdlList) { sldDspMdl = new LabelDataModel(); sldDspMdl.setLabelSid(sldSetMdl.getLabelSid()); sldDspMdl.setLabelName(sldSetMdl.getLabelName()); sldDspMdl.setLabelOrder(sldSetMdl.getLabelOrder()); sldDspMdl.setLbValue( __getRadioValueStr(sldSetMdl.getLabelSid(), sldSetMdl.getLabelOrder(), count)); count++; lbList.add(sldDspMdl); } paramMdl.setLbnList(lbList); // チェックされている並び順がNULLの場合、初期値設定 if (StringUtil.isNullZeroString(paramMdl.getSml310SortRadio()) && ldMdlList.size() > 0) { LabelDataModel sldMdl = ldMdlList.get(0); paramMdl.setSml310SortRadio( __getRadioValueStr(sldMdl.getLabelSid(), sldMdl.getLabelOrder(), 0)); } }
/** * <br> * [機 能] 送信先一覧を取得する <br> * [解 説] <br> * [備 考] * * @param address 送信先メールアドレス(宛先 or CC or BCC) * @param domainMap ドメインとドメイン種別のMapping * @return 送信先一覧 */ private List<Wml012AddressModel> __createAddressList( String address, Map<String, String> domainMap) { List<Wml012AddressModel> addressList = new ArrayList<Wml012AddressModel>(); if (StringUtil.isNullZeroString(address)) { return addressList; } InternetAddress[] sendAddressList = null; try { sendAddressList = WmlBiz.parseAddress(address); } catch (AddressException ae) { } if (sendAddressList == null) { return addressList; } for (InternetAddress iAdress : sendAddressList) { Wml012AddressModel addressData = new Wml012AddressModel(); String sendAddress = WmlBiz.convertIAdress2String(iAdress); int atIndex = sendAddress.lastIndexOf("@"); if (atIndex <= 0) { addressData.setAddress(sendAddress); } else { addressData.setUser(sendAddress.substring(0, atIndex)); String domain = sendAddress.substring(atIndex + 1, sendAddress.length()).trim(); if (domain.endsWith(">")) { domain = domain.substring(0, domain.length() - 1); addressData.setDomainEnd(">"); } addressData.setDomain(domain); String type = domainMap.get(domain); if (type != null) { addressData.setDomainType(type); } else { domainType__++; if (domainType__ > Wml012AddressModel.MAX_DOMAINTYPE) { domainType__ = Wml012AddressModel.MIN_DOMAINTYPE; } addressData.setDomainType(Integer.toString(domainType__)); domainMap.put(domain, addressData.getDomainType()); } } addressList.add(addressData); } return addressList; }
/** * <br> * [機 能] 初期表示情報を設定する <br> * [解 説] <br> * [備 考] * * @param reqMdl リクエスト情報 * @param paramMdl パラメータ情報 * @param cmd コマンド * @param con コネクション * @param buMdl セッションユーザモデル * @param pluginConfig プラグイン設定 * @throws SQLException SQL実行時例外 */ public void setInitData( RequestModel reqMdl, Man410ParamModel paramMdl, String cmd, Connection con, BaseUserModel buMdl, PluginConfig pluginConfig) throws SQLException { // プラグイン使用制限情報を設定 __setUsablePlugin(paramMdl, buMdl, con, pluginConfig); // 年ラベル paramMdl.setYearLabelList(Man400Biz.createDelYearCombo(reqMdl)); // 月ラベル paramMdl.setMonthLabelList(Man400Biz.createDelMonthCombo(reqMdl)); // 戻り先のプラグインを設定 String backPlugin = ""; if (!StringUtil.isNullZeroString(paramMdl.getBackPlugin())) { backPlugin = paramMdl.getBackPlugin(); } else { if (cmd.equals("wmlLogManualDelete")) { // WEBメール backPlugin = GSConst.PLUGINID_WML; } else if (cmd.equals("smlLogManualDelete")) { // ショートメール backPlugin = GSConst.PLUGINID_SML; } else if (cmd.equals("cirLogManualDelete")) { // 回覧板 backPlugin = GSConst.PLUGINID_CIR; } else if (cmd.equals("filLogManualDelete")) { // ファイル管理 backPlugin = GSConst.PLUGIN_ID_FILE; } else if (cmd.equals("bbsLogManualDelete")) { // 掲示板 backPlugin = GSConst.PLUGIN_ID_BULLETIN; } } paramMdl.setBackPlugin(backPlugin); }
/** * <br> * [機 能] 指定された項目の未入力チェックを行う <br> * [解 説] <br> * [備 考] * * @param errors アクションエラー * @param value 項目の値 * @param element 項目名 * @param elementName 項目名(日本語) * @return チェック結果 true : 正常, false : 異常 */ private boolean __checkNoInput( ActionErrors errors, String value, String element, String elementName) { boolean result = true; ActionMessage msg = null; if (StringUtil.isNullZeroString(value)) { msg = new ActionMessage("error.input.required.text", elementName); errors.add(element + "error.input.required.text", msg); result = false; log__.debug("error:6"); } else { // スペースのみの入力かチェック if (ValidateUtil.isSpace(value)) { msg = new ActionMessage("error.input.spase.only", elementName); errors.add(element + "error.input.spase.only", msg); result = false; } } return result; }
/** * <br> * [機 能] 検索結果の件数取得 <br> * [解 説] <br> * [備 考] * * @param searchMdl 検索パラメータ * @return 検索結果件数 * @throws SQLException SQL実行時例外 */ public int recordCount(Sml380SearchModel searchMdl) throws SQLException { PreparedStatement pstmt = null; ResultSet rs = null; Connection con = null; int ret = 0; con = getCon(); try { // SQL文 SqlBuffer sql = new SqlBuffer(); sql.addSql(" select "); sql.addSql(" count(SBC_SID) as CNT"); sql.addSql(" from "); sql.addSql(" SML_BAN_DEST_CONF"); if (!StringUtil.isNullZeroString(searchMdl.getKeyword())) { sql.addSql(" where "); sql.addSql(" SBC_NAME "); String value = " like '%" + JDBCUtil.encFullStringLike(searchMdl.getKeyword()) + "%' ESCAPE '" + JDBCUtil.def_esc + "'"; sql.addSql(value); } pstmt = con.prepareStatement(sql.toSqlString()); log__.info(sql.toLogString()); rs = pstmt.executeQuery(); if (rs.next()) { ret = rs.getInt("CNT"); } } catch (SQLException e) { throw e; } finally { JDBCUtil.closeResultSet(rs); JDBCUtil.closeStatement(pstmt); } return ret; }
/** * <br> * [機 能] 順序変更処理 <br> * [解 説] <br> * [備 考] * * @param con コネクション * @param paramMdl パラメータ情報 * @param changeKbn 処理区分 0:順序をあげる 1:順序を下げる * @throws SQLException SQL実行時例外 */ public void updateSort(Connection con, Sml310ParamModel paramMdl, int changeKbn) throws SQLException { // 画面表示全キーリスト取得 String[] keyList = paramMdl.getSml310sortLabel(); if (keyList == null || keyList.length < 1) { return; } // ラジオ選択値取得 String selectedKey = paramMdl.getSml310SortRadio(); if (StringUtil.isNullZeroString(selectedKey)) { return; } String[] selectKeyList = selectedKey.split(SORT_SEPARATE); // 画面表示順 int selectedKeyDispNum = Integer.parseInt(selectKeyList[2]); log__.debug("画面表示順 = " + selectedKeyDispNum); // 画面の最初に表示されている項目 + 順位を上げる if (selectedKeyDispNum == 0 && changeKbn == GSConstSmail.SORT_UP) { return; // 画面の最後に表示されている項目 + 順位を下げる } else if (selectedKeyDispNum == keyList.length - 1 && changeKbn == GSConstSmail.SORT_DOWN) { return; } // 選択された項目のラベルSID + ソート順 int motoSid = Integer.parseInt(selectKeyList[0]); int motoSort = Integer.parseInt(selectKeyList[1]); int sakiSid = -1; int sakiSort = -1; int target = selectedKeyDispNum; if (changeKbn == GSConstSmail.SORT_UP) { target -= 1; } else if (changeKbn == GSConstSmail.SORT_DOWN) { target += 1; } // 画面表示全キーから入れ替え先のデータを探す TreeMap<Integer, String> sortMap = new TreeMap<Integer, String>(); for (String allKey : keyList) { String[] allKeyList = allKey.split(SORT_SEPARATE); int allKeyDispNum = Integer.parseInt(allKeyList[2]); if (allKeyDispNum == target) { sakiSid = Integer.parseInt(allKeyList[0]); sakiSort = Integer.parseInt(allKeyList[1]); } else if (allKeyDispNum > target) { sortMap.put(allKeyDispNum, allKey); } } if (sakiSid == -1 || sakiSort == -1) { return; } // 順序入れ替え if (motoSort == sakiSort) { motoSort++; } Sml310Dao dao = new Sml310Dao(con); dao.updateSort(motoSid, motoSort, sakiSid, sakiSort); int newSort = sakiSort; // 新しいキーを設定 paramMdl.setSml310SortRadio(__getRadioValueStr(motoSid, newSort, target)); }
/** * <br> * [機 能] 一覧取得 <br> * [解 説] <br> * [備 考] * * @param searchMdl 検索パラメータ * @return 検索結果 * @throws SQLException SQL実行時例外 */ public List<Sml380DataModel> searchSbc(Sml380SearchModel searchMdl) throws SQLException { PreparedStatement pstmt = null; ResultSet rs = null; Connection con = null; ArrayList<Sml380DataModel> ret = new ArrayList<Sml380DataModel>(); con = getCon(); try { // SQL文 SqlBuffer sql = new SqlBuffer(); sql.addSql(" select "); sql.addSql(" SBC_SID,"); sql.addSql(" SBC_NAME,"); sql.addSql(" SBC_BIKO,"); sql.addSql(" SBC_AUID,"); sql.addSql(" SBC_ADATE,"); sql.addSql(" SBC_EUID,"); sql.addSql(" SBC_EDATE"); sql.addSql(" from "); sql.addSql(" SML_BAN_DEST_CONF"); if (!StringUtil.isNullZeroString(searchMdl.getKeyword())) { sql.addSql(" where "); sql.addSql(" SBC_NAME "); String value = " like '%" + JDBCUtil.encFullStringLike(searchMdl.getKeyword()) + "%' ESCAPE '" + JDBCUtil.def_esc + "'"; sql.addSql(value); } sql.addSql(" order by "); sql.addSql(" SML_BAN_DEST_CONF.SBC_NAME "); if (searchMdl.getOrder() == GSConstSmail.ORDER_KEY_ASC) { sql.addSql(" asc "); } else { sql.addSql(" desc "); } pstmt = con.prepareStatement( sql.toSqlString(), ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); sql.setParameter(pstmt); log__.info(sql.toLogString()); rs = pstmt.executeQuery(); int start = searchMdl.getStart(); int maxCount = searchMdl.getLimit(); if (start > 1) { rs.absolute(start - 1); } for (int i = 0; rs.next() && i < maxCount; i++) { Sml380DataModel bean = new Sml380DataModel(); bean.setSbcSid(rs.getInt("SBC_SID")); bean.setDspSbcName(rs.getString("SBC_NAME")); bean.setDspSbcBiko(StringUtilHtml.transToHTmlPlusAmparsant(rs.getString("SBC_BIKO"))); ret.add(bean); } } catch (SQLException e) { throw e; } finally { JDBCUtil.closeResultSet(rs); JDBCUtil.closeStatement(pstmt); } return ret; }
/** * <br> * [機 能] 初期表示処理を行います <br> * [解 説] <br> * [備 考] * * @param con コネクション * @param paramMdl パラメータ情報 * @param usrSid ユーザSID * @throws SQLException SQL実行時例外 */ public void initDsp(Connection con, Ptl140ParamModel paramMdl, int usrSid) throws SQLException { PtlPortalDao dao = new PtlPortalDao(con); // ポータルを取得する ArrayList<PtlPortalModel> list = dao.selectForUser(usrSid); if (list == null) { list = new ArrayList<PtlPortalModel>(); } else { // ポータル個人並び順のレコードがあるか判定 PtlPortalSortDao sortDao = new PtlPortalSortDao(con); ArrayList<PtlPortalSortModel> sortList = new ArrayList<PtlPortalSortModel>(); sortList = sortDao.select(usrSid); // ポータルの個人並び順新規作成 if (sortList.isEmpty() || sortList.size() != list.size()) { log__.debug("個人並び順なし"); int sort = 1; // 一度並び順を削除してから登録 sortDao.deleteSortForUser(usrSid); for (PtlPortalModel ptlMdl : list) { boolean commit = false; try { PtlPortalSortModel mdl = new PtlPortalSortModel(); mdl.setPtlSid(ptlMdl.getPtlSid()); mdl.setPtsKbn(GSConstPortal.PTS_KBN_USER); mdl.setPtsSort(sort); mdl.setUsrSid(usrSid); sortDao.insert(mdl); ptlMdl.setPtsSort(sort); sort++; con.commit(); commit = true; } catch (SQLException e) { log__.error("ポータル登録処理エラー", e); throw e; } finally { if (!commit) { con.rollback(); } } } } } for (PtlPortalModel model : list) { // html表示用に整形 String dspSetumei = StringUtilHtml.transToHTml(model.getPtlDescription()); // 整形したものを入れなおす model.setPtlDescription(dspSetumei); } if (!list.isEmpty()) { // ラジオの文字列作成 for (PtlPortalModel model : list) { int sid = model.getPtlSid(); int sort = model.getPtsSort(); String strSort = __getRadioValueStr(sid, sort); model.setStrPtsSort(strSort); } } paramMdl.setPtl140portalList(list); // チェックされているラジオがNULLの場合、初期値設定 if (StringUtil.isNullZeroString(paramMdl.getPtl140sortPortal()) && list.size() > 0) { PtlPortalModel model = list.get(0); paramMdl.setPtl140sortPortal(__getRadioValueStr(model.getPtlSid(), model.getPtsSort())); } // ポータル初期表示権限 PtlAdmConfDao aConfDao = new PtlAdmConfDao(con); PtlAdmConfModel aConfModel = aConfDao.select(); if (aConfModel == null) { aConfModel = new PtlAdmConfModel(); } int pow = aConfModel.getPacDefKbn(); paramMdl.setPtlDefPow(pow); // ポータルの表示順変更権限 paramMdl.setPtlSortPow(aConfModel.getPacPtlEditkbn()); // ポータルの初期表示取得 PtlUconfModel uconfMdl = new PtlUconfModel(); PtlUconfDao uconfDao = new PtlUconfDao(con); uconfMdl = uconfDao.select(usrSid); if (uconfMdl == null) { uconfMdl = new PtlUconfModel(); } paramMdl.setPtlType(uconfMdl.getPucDefType()); }
/** * <br> * [機 能] 順序変更処理 <br> * [解 説] <br> * [備 考] * * @param con コネクション * @param paramMdl パラメータ情報 * @param sortKbn 処理区分 0:順序をあげる 1:順序を下げる * @param sessionUserSid セッションユーザSID * @throws SQLException SQL実行時例外 */ public void updateSort(Connection con, Ptl140ParamModel paramMdl, int sortKbn, int sessionUserSid) throws SQLException { // 画面表示全キーリスト取得 String[] keyList = paramMdl.getArrayPtl140sortPortal(); if (keyList == null || keyList.length < 1) { return; } HashMap<Integer, Integer> map = new HashMap<Integer, Integer>(); // 画面表示全ラジオの値をマップに格納 int index = 0; for (String strRadio : keyList) { String[] sidSort = strRadio.split(SORT_SEPARATE); int sid = Integer.parseInt(sidSort[0]); map.put(sid, index); index++; } // ラジオ選択値取得 String strSelectSort = paramMdl.getPtl140sortPortal(); if (StringUtil.isNullZeroString(strSelectSort)) { return; } String[] selectKeyList = strSelectSort.split(SORT_SEPARATE); // 選択されたポートレットSID int selectSid = Integer.parseInt(selectKeyList[0]); // 選択された画面上の並び順 int selectSort = map.get(selectSid); // 画面の最初に表示されている項目 + 順位を上げる if (selectSort == 0 && sortKbn == SORT_UP) { return; // 画面の最後に表示されている項目 + 順位を下げる } else if (selectSort == keyList.length - 1 && sortKbn == SORT_DOWN) { return; } // 選択された項目のポートレットSID + DBソート順 int motoSid = Integer.parseInt(selectKeyList[0]); int motoSort = Integer.parseInt(selectKeyList[1]); int sakiSid = -1; int sakiSort = -1; int target = selectSort; if (sortKbn == SORT_UP) { target -= 1; } else if (sortKbn == SORT_DOWN) { target += 1; } // 画面表示全キーから入れ替え先のデータを探す for (String allKey : keyList) { String[] allKeyList = allKey.split(SORT_SEPARATE); int allKeyDispSid = Integer.parseInt(allKeyList[0]); int dspSort = map.get(allKeyDispSid); if (dspSort == target) { sakiSid = Integer.parseInt(allKeyList[0]); sakiSort = Integer.parseInt(allKeyList[1]); break; } } if (sakiSid == -1 || sakiSort == -1) { return; } // 順序入れ替え PtlPortalSortDao dao = new PtlPortalSortDao(con); dao.updateSort(motoSid, motoSort, sakiSid, sakiSort, sessionUserSid); // 新しいキーを設定 paramMdl.setPtl140sortPortal(__getRadioValueStr(motoSid, sakiSort)); }
/** * <br> * [機 能] 入力チェックを行う <br> * [解 説] <br> * [備 考] * * @param con コネクション * @param reqMdl リクエスト情報 * @param sessionUsrSid セッションユーザSID * @return errors エラー * @throws SQLException SQL実行時例外 */ public ActionErrors validateCheck(Connection con, RequestModel reqMdl, int sessionUsrSid) throws SQLException { ActionErrors errors = new ActionErrors(); ActionMessage msg = null; boolean errorFlg = false; GsMessage gsMsg = new GsMessage(reqMdl); // 利用目的 未入力チェック if (StringUtil.isNullZeroString(rsv210Mokuteki__)) { msg = new ActionMessage("error.input.required.text", gsMsg.getMessage("reserve.72")); StrutsUtil.addMessage(errors, msg, "rsv210Mokuteki"); errorFlg = true; // 利用目的 桁数チェック } else if (rsv210Mokuteki__.length() > GSConstReserve.MAX_LENGTH_MOKUTEKI) { msg = new ActionMessage( "error.input.length.text", gsMsg.getMessage("reserve.72"), String.valueOf(GSConstReserve.MAX_LENGTH_MOKUTEKI)); StrutsUtil.addMessage(errors, msg, "rsv210Mokuteki"); errorFlg = true; // 利用目的 スペースのみチェック } else if (ValidateUtil.isSpace(rsv210Mokuteki__)) { msg = new ActionMessage("error.input.spase.only", gsMsg.getMessage("reserve.72")); StrutsUtil.addMessage(errors, msg, "rsv210Mokuteki"); errorFlg = true; // 利用目的 先頭スペースチェック } else if (ValidateUtil.isSpaceStart(rsv210Mokuteki__)) { msg = new ActionMessage("error.input.spase.start", gsMsg.getMessage("reserve.72")); StrutsUtil.addMessage(errors, msg, "rsv210Mokuteki"); errorFlg = true; // 利用目的 タブスペースチェック } else if (ValidateUtil.isTab(rsv210Mokuteki__)) { msg = new ActionMessage("error.input.tab.text", gsMsg.getMessage("reserve.72")); StrutsUtil.addMessage(errors, msg, "rsv210Mokuteki"); errorFlg = true; // 利用目的 JIS第2水準チェック } else if (!GSValidateUtil.isGsJapaneaseString(rsv210Mokuteki__)) { // 利用不可能な文字を入力した場合 String nstr = GSValidateUtil.getNotGsJapaneaseString(rsv210Mokuteki__); msg = new ActionMessage("error.input.njapan.text", gsMsg.getMessage("reserve.72"), nstr); StrutsUtil.addMessage(errors, msg, "rsv210Mokuteki"); errorFlg = true; } // 時間大小チェック String timeFrom = StringUtil.toDecFormat(rsv210SelectedHourFr__, "00") + StringUtil.toDecFormat(rsv210SelectedMinuteFr__, "00"); String timeTo = StringUtil.toDecFormat(rsv210SelectedHourTo__, "00") + StringUtil.toDecFormat(rsv210SelectedMinuteTo__, "00"); boolean timeError = Integer.parseInt(timeFrom) >= Integer.parseInt(timeTo); if (timeError) { msg = new ActionMessage( "error.input.comp.text", gsMsg.getMessage("reserve.159"), gsMsg.getMessage("cmn.start.lessthan.end")); StrutsUtil.addMessage(errors, msg, "rsvtime"); errorFlg = true; } // 内容 if (!StringUtil.isNullZeroString(rsv210Naiyo__)) { // 内容 桁数チェック if (rsv210Naiyo__.length() > GSConstReserve.MAX_LENGTH_NAIYO) { msg = new ActionMessage( "error.input.length.textarea", gsMsg.getMessage("cmn.content"), String.valueOf(GSConstReserve.MAX_LENGTH_NAIYO)); StrutsUtil.addMessage(errors, msg, "rsv210Naiyo"); errorFlg = true; } // 内容 スペース・改行のみチェック if (ValidateUtil.isSpaceOrKaigyou(rsv210Naiyo__)) { msg = new ActionMessage("error.input.spase.cl.only", gsMsg.getMessage("cmn.content")); StrutsUtil.addMessage(errors, msg, "rsv210Naiyo"); errorFlg = true; } // 内容 JIS第2水準チェック if (!GSValidateUtil.isGsJapaneaseStringTextArea(rsv210Naiyo__)) { // 利用不可能な文字を入力した場合 String nstr = GSValidateUtil.getNotGsJapaneaseStringTextArea(rsv210Naiyo__); msg = new ActionMessage("error.input.njapan.text", gsMsg.getMessage("cmn.content"), nstr); StrutsUtil.addMessage(errors, msg, "rsv210Naiyo"); errorFlg = true; } } // 予約チェック if (!errorFlg) { ArrayList<String> hiddArray = __getIkkatuKey(); RsvSisDataDao dataDao = new RsvSisDataDao(con); HashMap<Integer, Rsv210Model> map = dataDao.getIkkatuTorokuGroupMap(hiddArray); for (String key : hiddArray) { errorFlg = false; // 施設の情報を取得 String sisetuSid = key.substring(key.indexOf("-") + 1); Rsv210Model mapMdl = map.get(new Integer(sisetuSid)); if (mapMdl == null) { continue; } // 予約可能期限チェック(期限が設定されていればチェックする) String kigen = mapMdl.getRsdProp6(); if (!StringUtil.isNullZeroString(kigen)) { // 施設グループ管理者の場合は予約可能期限チェックをパスする RsvCommonBiz rsvBiz = new RsvCommonBiz(); if (!rsvBiz.isGroupAdmin(con, new Integer(sisetuSid), reqMdl.getSmodel().getUsrsid())) { UDate now = new UDate(); UDate udKigen = now.cloneUDate(); udKigen.addDay(Integer.parseInt(kigen)); String kigenYmd = udKigen.getDateString(); String keyYmd = key.substring(0, key.indexOf("-")); if (Integer.parseInt(keyYmd) > Integer.parseInt(kigenYmd)) { UDate errDay = new UDate(); errDay.setDate(keyYmd); String errDayStr = gsMsg.getMessage("cmn.year", new String[] {errDay.getStrYear()}) + errDay.getStrMonth() + gsMsg.getMessage("cmn.month") + errDay.getStrDay() + gsMsg.getMessage("cmn.day") + "(" + UDateUtil.getStrWeek(errDay.getWeek(), reqMdl) + ") " + mapMdl.getRsdName(); String kigenStr = gsMsg.getMessage("cmn.comments") + mapMdl.getRsdProp6() + gsMsg.getMessage("cmn.days.after"); msg = new ActionMessage("error.kigen.over.sisetu", errDayStr, kigenStr); StrutsUtil.addMessage(errors, msg, "sisetu" + key); errorFlg = true; } } } // 重複のチェック(重複登録 = 不可の場合にチェック) String tyohuku = mapMdl.getRsdProp7(); if (!errorFlg && !StringUtil.isNullZeroString(tyohuku) && Integer.parseInt(tyohuku) == GSConstReserve.PROP_KBN_HUKA) { RsvSisYrkDao yrkDao = new RsvSisYrkDao(con); UDate[] chkDate = __getYrkDate(key); UDate udYrk = chkDate[0]; UDate chkFrDate = chkDate[1]; UDate chkToDate = chkDate[2]; // 登録予定の時間帯に既に予約がある場合はエラー if (!yrkDao.isYrkOk(-1, Integer.parseInt(sisetuSid), chkFrDate, chkToDate)) { String errDayStr = gsMsg.getMessage("cmn.year", new String[] {udYrk.getStrYear()}) + udYrk.getStrMonth() + gsMsg.getMessage("cmn.month") + udYrk.getStrDay() + gsMsg.getMessage("cmn.day") + "(" + UDateUtil.getStrWeek(udYrk.getWeek(), reqMdl) + ") " + mapMdl.getRsdName(); msg = new ActionMessage("error.yrk.exist.reserve", errDayStr); StrutsUtil.addMessage(errors, msg, "tyohuku" + key); } } } } // スケジュール重複チェック if (!timeError) { RelationBetweenScdAndRsvChkBiz schChkBiz = new RelationBetweenScdAndRsvChkBiz(reqMdl, con); if (rsv210SchKbn__ == GSConstReserve.RSV_SCHKBN_GROUP) { String grpSid = getRsv210SchGroupSid(); if (NullDefault.getInt(grpSid, -1) >= 0) { // 例外アクセス schChkBiz.validateSpCaceGroupForSchedule( errors, grpSid, sessionUsrSid, "rsv210SchGroupSid"); // schChkBiz.validateGroupForSchedule(errors, grpSid, // sessionUsrSid, "rsv210SchGroupSid"); } } else { String[] users = getSv_users(); if (rsv210SchKbn__ == GSConstReserve.RSV_SCHKBN_USER && users != null && users.length > 0) { ArrayList<String> hiddArray = __getIkkatuKey(); List<UDate[]> dateList = new ArrayList<UDate[]>(); for (String key : hiddArray) { UDate[] chkDate = __getYrkDate(key); dateList.add(new UDate[] {chkDate[1], chkDate[2]}); } // 例外アクセス schChkBiz.validateSpCaceUserForSchedule(errors, users, sessionUsrSid, "sv_users"); schChkBiz.validateDateForSchedule( errors, dateList, users, 0, false, sessionUsrSid, "rsv210Date"); } } } return errors; }
/** * <br> * [機 能] 入力チェックを行う <br> * [解 説] <br> * [備 考] * * @param map アクションマッピング * @param req リクエスト * @param con コネクション * @param sessionUsrSid ユーザSID * @return エラー * @throws SQLException SQL実行時例外 */ public Map<Integer, ActionErrors> validateCheck( ActionMapping map, HttpServletRequest req, Connection con, int sessionUsrSid) throws SQLException { ActionMessage msg = null; GsMessage gsMsg = new GsMessage(); // 行番号とエラー内容を格納するMAP Map<Integer, ActionErrors> errorsMap = new TreeMap<Integer, ActionErrors>(); for (Ntp030Param ntpData : ntp030nippouDataList__) { ActionErrors errors = new ActionErrors(); String number = String.valueOf(ntpData.getRowId()); String ntpYear = String.valueOf(ntpData.getNtpYear()); String ntpMonth = String.valueOf(ntpData.getNtpMonth()); String ntpDay = String.valueOf(ntpData.getNtpDay()); String frHour = String.valueOf(ntpData.getFrHour()); String frMin = String.valueOf(ntpData.getFrMin()); String toHour = String.valueOf(ntpData.getToHour()); String toMin = String.valueOf(ntpData.getToMin()); String title = String.valueOf(ntpData.getTitle()); String naiyou = String.valueOf(ntpData.getValueStr()); // 開始年月日チェックフラグ(true=入力OK、false=NG) boolean fromOk = false; int iSYear = -1; if (!StringUtil.isNullZeroStringSpace(ntpYear)) { iSYear = Integer.parseInt(ntpYear); } int iSMonth = Integer.parseInt(ntpMonth); int iSDay = Integer.parseInt(ntpDay); UDate frDate = new UDate(); frDate.setDate(iSYear, iSMonth, iSDay); frDate.setSecond(GSConstSchedule.DAY_START_SECOND); frDate.setMilliSecond(GSConstSchedule.DAY_START_MILLISECOND); if (frDate.getYear() != iSYear || frDate.getMonth() != iSMonth || frDate.getIntDay() != iSDay) { msg = new ActionMessage( "error.input.notfound.date", gsMsg.getMessage(req, "schedule.sch100.10")); errors.add("error.input.notfound.date", msg); log__.debug("error:1"); } else { fromOk = true; } // 終了年月日チェックフラグ(true=入力OK、false=NG) boolean toOk = false; int iEYear = -1; if (!StringUtil.isNullZeroStringSpace(ntpYear)) { iEYear = Integer.parseInt(ntpYear); } int iEMonth = Integer.parseInt(ntpMonth); int iEDay = Integer.parseInt(ntpDay); UDate toDate = new UDate(); toDate.setDate(iEYear, iEMonth, iEDay); toDate.setSecond(GSConstSchedule.DAY_START_SECOND); toDate.setMilliSecond(GSConstSchedule.DAY_START_MILLISECOND); if (toDate.getYear() != iEYear || toDate.getMonth() != iEMonth || toDate.getIntDay() != iEDay) { msg = new ActionMessage( "error.input.notfound.date", gsMsg.getMessage(req, "schedule.sch100.15")); errors.add("error.input.notfound.date", msg); log__.debug("error:2"); } else { toOk = true; } if (fromOk && toOk && ntp030TimeKbn__.equals(String.valueOf(GSConstSchedule.TIME_EXIST))) { if (frHour.equals("-1") || frMin.equals("-1") || toHour.equals("-1") || toMin.equals("-1")) { // 時分 String textHourMinute = gsMsg.getMessage(req, "schedule.src.36"); msg = new ActionMessage("error.input.required.text", textHourMinute); errors.add("" + "error.input.required.text", msg); fromOk = false; } } // 個別チェックOKの場合 if (fromOk && toOk) { if (ntp030TimeKbn__.equals(String.valueOf(GSConstSchedule.TIME_EXIST))) { if (frHour.equals("-1") && frMin.equals("-1")) { frDate.setHour(GSConstSchedule.DAY_START_HOUR); frDate.setMinute(GSConstSchedule.DAY_START_MINUTES); } else { frDate.setHour(Integer.parseInt(frHour)); frDate.setMinute(Integer.parseInt(frMin)); } if (toHour.equals("-1") && toMin.equals("-1")) { toDate.setHour(GSConstSchedule.DAY_END_HOUR); toDate.setMinute(GSConstSchedule.DAY_SYSMAX_MINUTES); } else { toDate.setHour(Integer.parseInt(toHour)); toDate.setMinute(Integer.parseInt(toMin)); } } else { frDate.setZeroHhMmSs(); toDate.setMaxHhMmSs(); } // from~to大小チェック if (frDate.compare(frDate, toDate) != UDate.LARGE) { // 開始 < 終了 String textStartLessEnd = gsMsg.getMessage(req, "cmn.start.lessthan.end"); // 開始・終了 String textStartEnd = gsMsg.getMessage(req, "cmn.start.end"); msg = new ActionMessage("error.input.comp.text", textStartEnd, textStartLessEnd); errors.add("" + "error.input.comp.text", msg); log__.debug("error:5"); } } // タイトルのチェック if (__checkNoInput(errors, title, "ntp030Title", gsMsg.getMessage(req, "cmn.title"))) { if (__checkRange( errors, title, "ntp030Title", gsMsg.getMessage(req, "cmn.title"), GSConstSchedule.MAX_LENGTH_TITLE)) { // 先頭スペースチェック if (ValidateUtil.isSpaceStart(title)) { // タイトル String textTitle = gsMsg.getMessage(req, "cmn.title"); msg = new ActionMessage("error.input.spase.start", textTitle); StrutsUtil.addMessage(errors, msg, "ntp030Title"); } else { __checkJisString(errors, title, "ntp030Title", gsMsg.getMessage(req, "cmn.title")); } } } boolean valueError = false; // 内容のチェック if (__checkRangeTextarea( errors, naiyou, "ntp030Value", gsMsg.getMessage(req, "cmn.content"), GSConstSchedule.MAX_LENGTH_VALUE)) { if (!StringUtil.isNullZeroString(naiyou)) { // スペースのみチェック if (!valueError && ValidateUtil.isSpaceOrKaigyou(naiyou)) { msg = new ActionMessage( "error.input.spase.cl.only", gsMsg.getMessage(req, "cmn.content")); StrutsUtil.addMessage(errors, msg, "ntp030Value"); valueError = true; } if (!valueError) { // JIS __checkJisString(errors, naiyou, "ntp030Value", gsMsg.getMessage(req, "cmn.content")); } } } if (errors.size() > 0) { errorsMap.put(Integer.valueOf(number), errors); } } return errorsMap; }