/** * <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 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 paramMdl Cir090knParamModel */ public void updateIgnoreYearMonth(Cir090knParamModel paramMdl) { if (!ValidateUtil.isNumber(paramMdl.getCir090JYear())) { paramMdl.setCir090JYear(""); } if (!ValidateUtil.isNumber(paramMdl.getCir090JMonth())) { paramMdl.setCir090JMonth(""); } if (!ValidateUtil.isNumber(paramMdl.getCir090SYear())) { paramMdl.setCir090SYear(""); } if (!ValidateUtil.isNumber(paramMdl.getCir090SMonth())) { paramMdl.setCir090SMonth(""); } if (!ValidateUtil.isNumber(paramMdl.getCir090DYear())) { paramMdl.setCir090DYear(""); } if (!ValidateUtil.isNumber(paramMdl.getCir090DMonth())) { paramMdl.setCir090DMonth(""); } }
/** * <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; }