Beispiel #1
0
  /**
   * <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);
      }
    }
  }
Beispiel #2
0
  /**
   * <br>
   * [機 能] 入力チェックを行う <br>
   * [解 説] <br>
   * [備 考]
   *
   * @param reqMdl リクエスト情報
   * @return エラー
   */
  public ActionErrors ipk070ValidateCheck(RequestModel reqMdl) {

    ActionErrors errors = new ActionErrors();
    ActionMessage msg = null;

    GsMessage gsMsg = new GsMessage(reqMdl);
    String textKeyword = gsMsg.getMessage("cmn.keyword");
    String searchTarget = gsMsg.getMessage("cmn.search2");

    // -- キーワード --
    if (!StringUtil.isNullZeroStringSpace(ipk070KeyWord__)) {
      errors =
          IpkValidate.validateSearchFieldText(
              errors,
              textKeyword,
              ipk070KeyWord__,
              "ipk070KeyWord",
              IpkConst.MAX_LENGTH_IPAD,
              true);
    }

    // -- 検索対象未選択チェック --
    if (ipk070SearchTarget__ == null || ipk070SearchTarget__.length == 0) {
      msg = new ActionMessage("error.select.required.text", searchTarget);
      StrutsUtil.addMessage(errors, msg, "ipk070SearchTarget");
    }
    return errors;
  }
Beispiel #3
0
  /**
   * <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;
  }
Beispiel #4
0
  /**
   * <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;
  }
Beispiel #6
0
  /**
   * <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));
    }
  }
Beispiel #7
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;
  }
Beispiel #8
0
  /**
   * <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;
  }
Beispiel #10
0
  /**
   * <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;
  }
Beispiel #11
0
  /**
   * <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));
  }
Beispiel #12
0
  /**
   * <br>
   * [機 能] 指定したアンケートの回答情報を取得する <br>
   * [解 説] <br>
   * [備 考]
   *
   * @param reqMdl リクエストモデル
   * @param emnSid アンケートSID
   * @param eqmSeq 設問連番
   * @param queKbn 設問種類
   * @return 回答情報
   * @throws SQLException SQL実行時例外
   */
  public List<Enq310QuestionSubModel> getAnswerSubList(
      RequestModel reqMdl, long emnSid, int eqmSeq, int queKbn) throws SQLException {

    PreparedStatement pstmt = null;
    ResultSet rs = null;
    Connection con = null;
    List<Enq310QuestionSubModel> ansSubList = new ArrayList<Enq310QuestionSubModel>();
    con = getCon();

    try {
      // SQL文
      SqlBuffer sql = new SqlBuffer();
      sql.addSql(" select ");
      sql.addSql("   ENQ_QUE_SUB.EMN_SID as EMN_SID,");
      sql.addSql("   ENQ_QUE_SUB.EQM_SEQ as EQM_SEQ,");
      sql.addSql("   ENQ_QUE_SUB.EQS_SEQ as EQS_SEQ,");
      sql.addSql("   ENQ_QUE_SUB.EQS_DSP_NAME as EQS_DSP_NAME,");
      sql.addSql("   ANS_MAIN.CNT as ALLCNT,");
      sql.addSql("   ANS_MAIN.ANS_CNT as ANS_CNT,");
      sql.addSql("   ANS_SUB.ANS_SUB_CNT as ANS_SUB_CNT");
      sql.addSql(" from");
      sql.addSql("   (");
      sql.addSql("     select");
      sql.addSql("       EMN_SID,");
      sql.addSql("       count(EMN_SID) as CNT,");
      sql.addSql("       count(case when EAM_STS_KBN = ? then 1 else null end) as ANS_CNT");
      sql.addSql("     from");
      sql.addSql("       ENQ_ANS_MAIN");
      sql.addSql("     where");
      sql.addSql("       ENQ_ANS_MAIN.EMN_SID = ?");
      sql.addSql("     group by");
      sql.addSql("       ENQ_ANS_MAIN.EMN_SID");
      sql.addSql("   ) ANS_MAIN,");
      sql.addSql("   ENQ_QUE_SUB");
      sql.addSql("   left join");
      sql.addSql("     (");
      sql.addSql("       select");
      sql.addSql("         ENQ_ANS_SUB.EMN_SID as EMN_SID,");
      sql.addSql("         ENQ_ANS_SUB.EQM_SEQ as EQM_SEQ,");
      sql.addSql("         ENQ_ANS_SUB.EQS_SEQ as EQS_SEQ,");
      sql.addSql("         count(ENQ_ANS_SUB.EAS_ANS) as ANS_SUB_CNT");
      sql.addSql("       from");
      sql.addSql("         ENQ_ANS_SUB");
      sql.addSql("       where");
      sql.addSql("         ENQ_ANS_SUB.EMN_SID = ?");
      sql.addSql("       and");
      sql.addSql("         ENQ_ANS_SUB.EQM_SEQ = ?");
      sql.addSql("       group by");
      sql.addSql("         ENQ_ANS_SUB.EMN_SID,");
      sql.addSql("         ENQ_ANS_SUB.EQM_SEQ,");
      sql.addSql("         ENQ_ANS_SUB.EQS_SEQ");
      sql.addSql("     ) ANS_SUB");
      sql.addSql("   on");
      sql.addSql("     ENQ_QUE_SUB.EMN_SID = ANS_SUB.EMN_SID");
      sql.addSql("     and ENQ_QUE_SUB.EQM_SEQ = ANS_SUB.EQM_SEQ");
      sql.addSql("     and ENQ_QUE_SUB.EQS_SEQ = ANS_SUB.EQS_SEQ");
      sql.addSql(" where");
      sql.addSql("   ENQ_QUE_SUB.EMN_SID = ?");
      sql.addSql(" and");
      sql.addSql("   ENQ_QUE_SUB.EQM_SEQ = ?");
      sql.addSql(" and");
      sql.addSql("   ENQ_QUE_SUB.EMN_SID = ANS_MAIN.EMN_SID ");
      sql.addSql(" order by");
      sql.addSql("   ENQ_QUE_SUB.EQS_DSP_SEC");
      sql.addIntValue(GSConstEnquete.EAM_STS_KBN_YES);
      sql.addLongValue(emnSid);
      sql.addLongValue(emnSid);
      sql.addLongValue(eqmSeq);
      sql.addLongValue(emnSid);
      sql.addLongValue(eqmSeq);

      log__.info(sql.toLogString());

      pstmt = con.prepareStatement(sql.toSqlString());
      sql.setParameter(pstmt);
      rs = pstmt.executeQuery();
      Enq310Biz biz310 = new Enq310Biz();
      while (rs.next()) {
        Enq310QuestionSubModel ansSubData = new Enq310QuestionSubModel();
        // 設問SID
        ansSubData.setEmnSid(emnSid);
        // 設問連番
        ansSubData.setQueSeq(eqmSeq);
        // 設問サブ連番
        ansSubData.setQueSubSeq(rs.getInt("EQS_SEQ"));
        // 表示名
        if (rs.getInt("EQS_SEQ") == GSConstEnquete.CHOICE_KBN_OTHER) {
          GsMessage gsMsg = new GsMessage(reqMdl);
          ansSubData.setDspName(gsMsg.getMessage("cmn.other"));
        } else {
          ansSubData.setDspName(rs.getString("EQS_DSP_NAME"));
        }
        // 対象人数
        int ansSubCnt = rs.getInt("ANS_SUB_CNT");
        ansSubData.setAnswer(StringUtil.toCommaFormat(String.valueOf(ansSubCnt)));
        ansSubData.setAnswerNum(String.valueOf(ansSubCnt));
        // 対象人数 割合 全体
        int allCnt = rs.getInt("ALLCNT");
        int arPer = biz310.getRatio(allCnt, ansSubCnt);
        ansSubData.setAnswerAllPer(String.valueOf(arPer));
        // 対象人数 割合 回答人数
        int ansCnt = rs.getInt("ANS_CNT");
        int ansPer = biz310.getRatio(ansCnt, ansSubCnt);
        ansSubData.setAnswerArPer(String.valueOf(ansPer));

        ansSubList.add(ansSubData);
      }
    } catch (SQLException e) {
      throw e;
    } finally {
      JDBCUtil.closeResultSet(rs);
      JDBCUtil.closeStatement(pstmt);
    }

    return ansSubList;
  }
Beispiel #13
0
  /**
   * <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;
  }
Beispiel #14
0
  /**
   * <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());
  }
Beispiel #15
0
  /**
   * <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));
  }
Beispiel #16
0
  /**
   * <br>
   * [機 能] 表示情報の設定を行う <br>
   * [解 説] <br>
   * [備 考]
   *
   * @param reqMdl リクエスト情報
   * @param paramMdl パラメータ情報
   * @param con コネクション
   * @param appRoot アプリケーションのルートパス
   * @param tempDir テンポラリディレクトリパス
   * @param userMdl セッションユーザ情報
   * @param req リクエスト
   * @throws SQLException SQL実行例外
   * @throws IOException 添付ファイルの操作に失敗
   * @throws IOToolsException 添付ファイルの操作に失敗
   * @throws TempFileException 添付ファイルUtil内での例外
   * @return 稟議が存在するか true:存在する false:存在しない
   */
  public boolean setDspData(
      RequestModel reqMdl,
      Rng030ParamModel paramMdl,
      Connection con,
      String appRoot,
      String tempDir,
      BaseUserModel userMdl,
      HttpServletRequest req)
      throws IOException, IOToolsException, SQLException, TempFileException {

    int apprMode = paramMdl.getRngApprMode();
    int rngSid = paramMdl.getRngSid();
    int userSid = userMdl.getUsrsid();

    // 稟議情報を設定
    RingiDao ringiDao = new RingiDao(con);
    RingiDataModel model = ringiDao.getRingiData(rngSid, userSid);

    // タイトル、内容がnullであれば存在しない
    if (model.getRngTitle() == null || model.getRngContent() == null) {
      return false;
    }

    paramMdl.setRng030Status(model.getRngStatus());
    paramMdl.setRng030apprUser(model.getApprUser());
    paramMdl.setRng030makeDate(model.getStrMakeDate());
    paramMdl.setRng030ViewTitle(model.getRngTitle());
    String content = NullDefault.getString(model.getRngContent(), "");
    content = StringUtilHtml.transToHTmlForTextArea(content);
    content = StringUtil.transToLink(content, StringUtil.OTHER_WIN, true);
    content = StringUtilHtml.returntoBR(content);
    paramMdl.setRng030ViewContent(content);
    paramMdl.setRng030completeFlg(model.getRngCompflg());

    // 処理モード設定
    String cmd = NullDefault.getString(req.getParameter("CMD"), "");

    RngChannelDao channelDao = new RngChannelDao(con);
    switch (apprMode) {
      case RngConst.RNG_APPRMODE_DISCUSSING:
        // 申請中案件管理画面からの遷移の場合は管理者承認モード
        paramMdl.setRng030CmdMode(Rng030Form.CMDMODE_ADMINAPPR);

        // 現在確認中のユーザが最後の承認者ではない場合、スキップボタンを表示する

        // 現在確認中のユーザが申請者、最後の承認者以外の場合、スキップボタンを表示する
        RngChannelModel channelData = channelDao.select(rngSid, model.getRngApplicate());
        if (channelData.getRncStatus() != RngConst.RNG_RNCSTATUS_CONFIRM
            && !isLastApproval(con, rngSid)) {
          paramMdl.setRng030skipBtnFlg(1);
        }
        break;

      case RngConst.RNG_APPRMODE_COMPLETE:
        // 完了案件管理画面からの遷移の場合は閲覧モード
        paramMdl.setRng030CmdMode(Rng030Form.CMDMODE_VIEW);
        break;

      case RngConst.RNG_APPRMODE_APPL:
        // 処理モード=再申請の場合は閲覧モード
        paramMdl.setRng030CmdMode(Rng030Form.CMDMODE_VIEW);

        if (cmd.equals("rng030") || paramMdl.getRngDspMode() == RngConst.RNG_MODE_MAIN) {
          // 稟議一覧からの遷移
          // またはメインからの遷移の場合はタイトル、内容、添付ファイルを設定
          paramMdl.setRng030Title(model.getRngTitle());
          paramMdl.setRng030Content(model.getRngContent());

          // 添付ファイルをテンポラリディレクトリへ移動する
          RngBiz rngBiz = new RngBiz(con);
          rngBiz.setRingiTempFileData(con, rngSid, 0, appRoot, tempDir, new UDate(), reqMdl__);
        }

        break;

      default:
        int rncStatus = model.getRncStatus();

        // 稟議が完了している場合
        if (model.getRngCompflg() == RngConst.RNG_COMPFLG_COMPLETE) {

          if (model.getRncType() == RngConst.RNG_RNCTYPE_APPR) {
            // 承認者の場合は閲覧モード
            paramMdl.setRng030CmdMode(Rng030Form.CMDMODE_VIEW);
          } else {
            // 最終確認者
            if (model.getRncType() == RngConst.RNG_RNCTYPE_CONFIRM
                && rncStatus == RngConst.RNG_RNCSTATUS_NOSET) {
              // 未確認の場合は確認モード
              paramMdl.setRng030CmdMode(Rng030Form.CMDMODE_CONFIRM);
            } else {
              // 確認済みの場合は閲覧モード
              paramMdl.setRng030CmdMode(Rng030Form.CMDMODE_VIEW);
            }
          }

          // 申請者 = ログインユーザの場合、複写して申請ボタンを表示する
          paramMdl.setRng030copyApplBtn(model.getRngApplicate() == userSid);
        } else {

          // 申請者 != ログインユーザ
          // かつ稟議一覧またはメインからの遷移の場合はコメントを設定
          if ((cmd.equals("rng030") || paramMdl.getRngDspMode() == RngConst.RNG_MODE_MAIN)
              && model.getRngApplicate() != userSid) {
            RngChannelModel channelMdl = channelDao.select(rngSid, userSid);
            if (channelMdl != null && paramMdl.getRng030Comment() == null) {
              paramMdl.setRng030Comment(channelMdl.getRncComment());
            }
          }

          // 稟議の承認順がログインユーザ かつ 申請者がログインユーザではない場合
          // 承認モードに設定する
          if (rncStatus == RngConst.RNG_RNCSTATUS_CONFIRM && model.getRngApplicate() != userSid) {

            paramMdl.setRng030CmdMode(Rng030Form.CMDMODE_APPR);
            paramMdl.setRng030rftBtnFlg(1);
          } else {
            paramMdl.setRng030CmdMode(Rng030Form.CMDMODE_VIEW);
          }

          // 稟議の状態 = 否認の時
          // 承認者 = ログインユーザ
          // またはログインユーザが却下した承認者の前に稟議を確認していた場合
          // 完了ボタンを表示する
          if (model.getRngStatus() == RngConst.RNG_STATUS_REJECT) {

            if (model.getRngApplicate() == userSid) {
              paramMdl.setRng030compBtnFlg(1);
            } else {
              if (channelDao.isBeforeApproval(rngSid, userSid)) {
                paramMdl.setRng030compBtnFlg(1);
              }
            }
          }
        }
    }

    // 処理モード=再申請以外の場合は添付情報を設定
    if (apprMode != RngConst.RNG_APPRMODE_APPL) {
      paramMdl.setTmpFileList(ringiDao.getRingiTmpFileList(rngSid, 0));
    }

    // 添付ファイル一覧を設定
    CommonBiz cmnBiz = new CommonBiz();
    paramMdl.setRng030fileList(cmnBiz.getTempFileLabelList(tempDir));

    // 稟議経路情報を設定
    List<RingiChannelDataModel> channelList = ringiDao.getChannelList(rngSid);
    List<RingiChannelDataModel> apprUser = new ArrayList<RingiChannelDataModel>();
    List<RingiChannelDataModel> confirmUser = new ArrayList<RingiChannelDataModel>();

    for (RingiChannelDataModel channelMdl : channelList) {
      if (channelMdl.getRncType() == RngConst.RNG_RNCTYPE_APPR) {
        apprUser.add(channelMdl);
      } else if (channelMdl.getRncType() == RngConst.RNG_RNCTYPE_CONFIRM) {
        confirmUser.add(channelMdl);
      } else if (channelMdl.getRncType() == RngConst.RNG_RNCTYPE_APPL) {
        // 申請者の経路情報は一番上に設定
        apprUser.add(0, channelMdl);
      }
    }
    paramMdl.setChannelList(apprUser);
    paramMdl.setConfirmChannelList(confirmUser);
    paramMdl.setChannelListCount(String.valueOf(apprUser.size()));
    paramMdl.setConfirmChannelListCount(String.valueOf(confirmUser.size()));

    log__.debug("End");
    return true;
  }
  /**
   * <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;
  }
Beispiel #18
0
  /**
   * <br>
   * [機 能] 入力チェックを行う <br>
   * [解 説] <br>
   * [備 考]
   *
   * @param reqMdl リクエスト情報
   * @param tempDir 添付DIR
   * @param con DBコネクション
   * @param netSid ネットワークSID
   * @param mode インポートモード
   * @return エラー
   * @throws SQLException SQL実行例外
   * @throws IOToolsException SQL実行例外
   * @throws Exception 実行例外
   */
  public ActionErrors validateCheck(
      RequestModel reqMdl, String tempDir, Connection con, int netSid, String mode)
      throws IOToolsException, SQLException, Exception {

    log__.debug("=== 入力チェック ===");
    ActionErrors errors = new ActionErrors();
    GsMessage gsMsg = new GsMessage(reqMdl);
    String textSelectFile = gsMsg.getMessage("cmn.capture.file");
    String textCsvFile = gsMsg.getMessage("cmn.csv.file.format");

    // インポートファイルチェック
    // テンポラリディレクトリにあるファイル名称を取得
    List<String> fileList = IOTools.getFileNames(tempDir);
    String saveFileName = "";
    String baseFileName = "";
    String eprefix = "inputFile.";
    if (fileList == null) {
      ActionMessage msg = new ActionMessage("error.select.required.text", textSelectFile);
      StrutsUtil.addMessage(errors, msg, eprefix + "error.select.required.text");
    } else {
      for (int i = 0; i < fileList.size(); i++) {
        // ファイル名を取得
        String fileName = fileList.get(i);
        if (!fileName.endsWith(GSConstCommon.ENDSTR_OBJFILE)) {
          continue;
        }

        // オブジェクトファイルを取得
        ObjectFile objFile = new ObjectFile(tempDir, fileName);
        Object fObj = objFile.load();
        if (fObj == null) {
          continue;
        }
        Cmn110FileModel fMdl = (Cmn110FileModel) fObj;
        saveFileName = fMdl.getSaveFileName();
        baseFileName = fMdl.getFileName();
      }
      boolean csvError = false;
      // 複数選択エラー
      if (fileList.size() > 2) {
        ActionMessage msg = new ActionMessage("error.input.notfound.file", textSelectFile);
        StrutsUtil.addMessage(errors, msg, eprefix + "error.input.notfound.file");
        csvError = true;
      } else {
        // 拡張子チェック
        String strExt = StringUtil.getExtension(baseFileName);
        if (strExt == null || !strExt.toUpperCase().equals(".CSV")) {
          ActionMessage msg = new ActionMessage("error.select.required.text", textCsvFile);
          StrutsUtil.addMessage(errors, msg, eprefix + "error.select.required.text");
          csvError = true;
        }
      }
      if (!csvError) {
        String fullPath = tempDir + saveFileName;
        ArrayList<String> ipadListCsv = new ArrayList<String>();
        IpkCsvCheck csvCheck = new IpkCsvCheck(errors, con, netSid, mode, ipadListCsv, reqMdl);
        // CSVチェック
        csvCheck.isCsvDataOk(fullPath);
      }
    }
    return errors;
  }
Beispiel #19
0
  /**
   * <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;
  }