예제 #1
0
  /**
   * <br>
   * [機 能] 送信メール情報の添付ファイル一覧を取得する <br>
   * [解 説] <br>
   * [備 考]
   *
   * @param tempRootDir テンポラリルートディレクトリ
   * @param reqMdl リクエスト情報
   * @return 添付ファイル情報
   * @throws IOToolsException 添付ファイル情報取得時に例外発生
   */
  private List<MailTempFileModel> __getSendMailFileData(String tempRootDir, RequestModel reqMdl)
      throws IOToolsException {

    List<MailTempFileModel> fileDataList = new ArrayList<MailTempFileModel>();

    String tempDir = getSendTempDir(tempRootDir, reqMdl);
    List<String> fileList = IOTools.getFileNames(tempDir);
    if (fileList != null && !fileList.isEmpty()) {

      Cmn110FileModel tempFileModel = null;
      CommonBiz cmnBiz = new CommonBiz();
      for (String fileName : fileList) {
        if (!fileName.endsWith(GSConstCommon.ENDSTR_OBJFILE)) {
          continue;
        }

        // オブジェクトファイルを取得
        ObjectFile objFile = new ObjectFile(tempDir, fileName);
        Object fObj = objFile.load();
        if (fObj == null) {
          continue;
        }

        tempFileModel = (Cmn110FileModel) fObj;
        MailTempFileModel sendFileData = new MailTempFileModel();
        sendFileData.setFileName(tempFileModel.getFileName());
        sendFileData.setFileSizeDsp(
            cmnBiz.getByteSizeString(new File(tempDir + tempFileModel.getSaveFileName()).length()));
        fileDataList.add(sendFileData);
      }
    }

    return fileDataList;
  }
예제 #2
0
  /**
   * <br>
   * [機 能] 添付ファイルダウンロードの処理 <br>
   * [解 説] <br>
   * [備 考]
   *
   * @param map アクションマッピング
   * @param form アクションフォーム
   * @param req リクエスト
   * @param res レスポンス
   * @param con コネクション
   * @throws SQLException SQL実行例外
   * @throws Exception 実行時例外
   * @return ActionForward
   */
  private ActionForward __doGetImageFile(
      ActionMapping map,
      Rsv010Form form,
      HttpServletRequest req,
      HttpServletResponse res,
      Connection con)
      throws SQLException, Exception {

    // 施設SID
    int rsdSid = form.getRsvSelectedSisetuSid();
    // バイナリSID
    Long binSid = form.getRsv010BinSid();

    Rsv010Biz biz = new Rsv010Biz(getRequestModel(req), con);
    RsvCommonBiz rsvBiz = new RsvCommonBiz();

    // 閲覧権限ある且つ施設SIDとバイナリSIDの組み合わせが一致している
    if (biz.isReadSisetsu(rsdSid) && rsvBiz.isCheckRsvImage(rsdSid, binSid, con)) {

      CommonBiz cmnBiz = new CommonBiz();
      CmnBinfModel cbMdl = null;

      cbMdl = cmnBiz.getBinInfo(con, binSid, GroupSession.getResourceManager().getDomain(req));

      if (cbMdl != null) {
        JDBCUtil.closeConnectionAndNull(con);

        // ファイルをダウンロードする
        TempFileUtil.downloadInline(req, res, cbMdl, getAppRootPath(), Encoding.UTF_8);
      }
    }

    return null;
  }
예제 #3
0
  /**
   * <br>
   * [機 能] 稟議添付情報の更新を行う <br>
   * [解 説] <br>
   * [備 考]
   *
   * @param con コネクション
   * @param cntCon MlCountMtController
   * @param rngSid 稟議SID
   * @param userSid セッションユーザSID
   * @param appRootPath アプリケーションのルートパス
   * @param tempDir テンポラリディレクトリ
   * @param now 現在日時
   * @throws SQLException SQL実行時例外
   * @throws IOException 添付ファイルの保存に失敗
   * @throws IOToolsException 添付ファイルの保存に失敗
   * @throws TempFileException 添付ファイルUtil内での例外
   */
  private void __updateRngBin(
      Connection con,
      MlCountMtController cntCon,
      int rngSid,
      int userSid,
      String appRootPath,
      String tempDir,
      UDate now)
      throws SQLException, IOException, IOToolsException, TempFileException {

    // 稟議添付情報の登録
    CommonBiz cmnBiz = new CommonBiz();
    RngBinDao binDao = new RngBinDao(con);

    // 更新の場合はバイナリー情報の論理削除、稟議添付情報の削除を行う
    RingiDao ringiDao = new RingiDao(con);
    ringiDao.removeRngBinData(rngSid, userSid, userSid, now);
    binDao.delete(rngSid, userSid);

    // バイナリー情報の登録
    List<String> binSidList = cmnBiz.insertBinInfo(con, tempDir, appRootPath, cntCon, userSid, now);

    // 稟議添付情報の登録
    if (binSidList != null && !binSidList.isEmpty()) {
      RngBinModel binMdl = new RngBinModel();
      binMdl.setRngSid(rngSid);
      binMdl.setUsrSid(userSid);

      for (String binSid : binSidList) {
        binMdl.setBinSid(Long.parseLong(binSid));
        binDao.insert(binMdl);
      }
    }
  }
예제 #4
0
  /**
   * <br>
   * [機 能] 初期表示処理 <br>
   * [解 説] <br>
   * [備 考]
   *
   * @param map マップ
   * @param form フォーム
   * @param req リクエスト
   * @param res レスポンス
   * @param con コネクション
   * @return ActionForward フォワード
   * @throws Exception 実行時例外
   */
  private ActionForward __doInit(
      ActionMapping map,
      Rsv010Form form,
      HttpServletRequest req,
      HttpServletResponse res,
      Connection con)
      throws Exception {

    try {

      con.setAutoCommit(true);
      RequestModel reqMdl = getRequestModel(req);
      Rsv010Biz biz = new Rsv010Biz(reqMdl, con);

      Rsv010ParamModel paramMdl = new Rsv010ParamModel();
      paramMdl.setParam(form);

      // 管理者フラグを設定する
      biz.setAdmFlg(paramMdl);

      // 施設グループの編集が可能か判定しフラグをセットする。
      biz.setGroupEditFlg(paramMdl);

      // 施設グループコンボリストを設定する
      biz.setGroupComboList(paramMdl);

      // 施設予約情報一覧を取得する
      int sessionUserSid = getSessionUserSid(req);
      biz.setYoyakuWeek(paramMdl, sessionUserSid);

      // 自動リロード時間を設定する
      biz.set010Reloadtime(con, paramMdl, sessionUserSid);

      paramMdl.setFormData(form);

      // 施設データが存在する場合のみ画像データを取得
      if (form.getRsv010SisetuList() != null && form.getRsv010SisetuList().size() > 0) {

        // テンポラリディレクトリパスを取得
        CommonBiz cmnBiz = new CommonBiz();
        String tempDir = cmnBiz.getTempDir(getTempPath(req), form.getRsv010pluginId(), reqMdl);

        paramMdl = new Rsv010ParamModel();
        paramMdl.setParam(form);
        biz.get010SisetuImgData(paramMdl, tempDir, getAppRootPath(), sessionUserSid);
        paramMdl.setFormData(form);
      }

      con.setAutoCommit(false);

    } catch (SQLException e) {
      log__.error("SQLException", e);
      throw e;
    }

    return map.getInputForward();
  }
예제 #5
0
  /**
   * 在席管理が利用可能かを 設定する <br>
   * [機 能] <br>
   * [解 説] <br>
   * [備 考]
   *
   * @param paramMdl パラメータ情報
   * @param con コネクション
   * @param pconfig プラグインコンフィグ
   * @throws SQLException SQL実行時例外
   */
  public void setCanUsePluginFlg(Sml250ParamModel paramMdl, Connection con, PluginConfig pconfig)
      throws SQLException {

    CommonBiz cmnBiz = new CommonBiz();
    // 在席管理は利用可能か判定
    if (cmnBiz.isCanUsePlugin(GSConstSmail.PLUGIN_ID_ZAISEKI, pconfig)) {
      paramMdl.setSml250ZaisekiPlugin(GSConstSmail.PLUGIN_USE);
    } else {
      paramMdl.setSml250ZaisekiPlugin(GSConstSmail.PLUGIN_NOT_USE);
    }
  }
예제 #6
0
  /**
   * <br>
   * [機 能] 追加(承認経路)ボタン押下時処理を行う <br>
   * [解 説] <br>
   * [備 考]
   *
   * @param map アクションマッピング
   * @param form アクションフォーム
   * @param req リクエスト
   * @param res レスポンス
   * @param con コネクション
   * @throws Exception 実行時例外
   * @return ActionForward
   */
  private ActionForward __doAddAppr(
      ActionMapping map,
      Rng020Form form,
      HttpServletRequest req,
      HttpServletResponse res,
      Connection con)
      throws Exception {

    CommonBiz cmnBiz = new CommonBiz();
    form.setRng020apprUser(cmnBiz.getAddMember(form.getRng020users(), form.getRng020apprUser()));
    return __doDsp(map, form, req, res, con);
  }
예제 #7
0
  /**
   * <br>
   * [機 能] 初期表示情報を設定する <br>
   * [解 説] <br>
   * [備 考]
   *
   * @param paramMdl BmkPtl020ParamModel
   * @param con コネクション
   * @throws Exception 実行例外
   */
  public void setInitData(BmkPtl020ParamModel paramMdl, Connection con) throws Exception {
    log__.debug("START");

    // プラグインポートレットコンボを設定
    CommonBiz cmnBiz = new CommonBiz();
    GsMessage gsMsg = new GsMessage(reqMdl__);
    paramMdl.setPortletTypeCombo(cmnBiz.getPluginPortletCombo(con, gsMsg, reqMdl__.getDomain()));

    // 表示グループを設定
    __setGroupList(paramMdl, con);

    log__.debug("End");
  }
예제 #8
0
  /**
   * <br>
   * [機 能] 削除(最終確認)ボタン押下時処理を行う <br>
   * [解 説] <br>
   * [備 考]
   *
   * @param map アクションマッピング
   * @param form アクションフォーム
   * @param req リクエスト
   * @param res レスポンス
   * @param con コネクション
   * @throws Exception 実行時例外
   * @return ActionForward
   */
  private ActionForward __doDelConfirm(
      ActionMapping map,
      Rng020Form form,
      HttpServletRequest req,
      HttpServletResponse res,
      Connection con)
      throws Exception {

    CommonBiz cmnBiz = new CommonBiz();
    form.setRng020confirmUser(
        cmnBiz.getDeleteMember(form.getRng020selectConfirmUser(), form.getRng020confirmUser()));

    return __doDsp(map, form, req, res, con);
  }
예제 #9
0
  /**
   * <br>
   * [機 能] PDFファイルダウンロード処理 <br>
   * [解 説] <br>
   * [備 考]
   *
   * @param map アクションマッピング
   * @param form アクションフォーム
   * @param req リクエスト
   * @param res レスポンス
   * @param con コネクション
   * @return ActionForward
   * @throws SQLException SQL実行時例外
   * @throws IOException ファイルの書き出しに失敗
   * @throws IOToolsException テンポラリディレクトリの削除に失敗
   * @throws TempFileException 添付ファイル情報の取得に失敗
   * @throws Exception 実行例外
   */
  private ActionForward __doDownLoadPdf(
      ActionMapping map,
      Rsv010Form form,
      HttpServletRequest req,
      HttpServletResponse res,
      Connection con)
      throws SQLException, IOException, IOToolsException, TempFileException, Exception {

    log__.debug("ファイルダウンロード処理(PDF)");
    // データ取得
    __doInit(map, form, req, res, con);

    RequestModel reqMdl = getRequestModel(req);

    // アプリケーションルートパス取得
    String appRootPath = getAppRootPath();
    // プラグイン固有のテンポラリパス取得
    CommonBiz cmnBiz = new CommonBiz();
    String outTempDir =
        IOTools.replaceFileSep(
            cmnBiz.getTempDir(getTempPath(req), GSConstReserve.PLUGIN_ID_RESERVE, reqMdl)
                + "expsyupdf/");

    Rsv010Biz biz = new Rsv010Biz(reqMdl, con);
    // PDF生成
    Rsv010ParamModel paramMdl = new Rsv010ParamModel();
    paramMdl.setParam(form);
    RsvSyuPdfModel pdfMdl = biz.createRsvSyuPdf(paramMdl, con, appRootPath, outTempDir);
    paramMdl.setFormData(form);

    String outBookName = pdfMdl.getFileName();
    String saveFileName = pdfMdl.getSaveFileName();

    String outFilePath = IOTools.setEndPathChar(outTempDir) + saveFileName;

    // ログ出力処理
    AbstractReserveBiz rsvBiz = new AbstractReserveBiz(con);
    GsMessage gsMsg = new GsMessage(req);
    String logCode = "週間 施設グループ PDF出力 " + form.getRsvSelectedGrpSid();
    rsvBiz.outPutLog(
        map, req, res, gsMsg.getMessage("cmn.pdf"), GSConstLog.LEVEL_TRACE, outBookName, logCode);

    TempFileUtil.downloadAtachment(req, res, outFilePath, outBookName, Encoding.UTF_8);
    // TEMPディレクトリ削除
    IOTools.deleteDir(IOTools.setEndPathChar(outTempDir));

    return null;
  }
예제 #10
0
  /**
   * <br>
   * [機 能] 添付ファイル削除ボタンクリック時の処理 <br>
   * [解 説] <br>
   * [備 考]
   *
   * @param map アクションマッピング
   * @param form アクションフォーム
   * @param req リクエスト
   * @param res レスポンス
   * @param con コネクション
   * @throws Exception 実行例外
   * @return ActionForward
   */
  private ActionForward __doDelTemp(
      ActionMapping map,
      Rng020Form form,
      HttpServletRequest req,
      HttpServletResponse res,
      Connection con)
      throws Exception {

    // テンポラリディレクトリパスを取得
    CommonBiz cmnBiz = new CommonBiz();
    String tempDir = _getRingiDir(req);
    log__.debug("テンポラリディレクトリ = " + tempDir);

    // 選択された添付ファイルを削除する
    cmnBiz.deleteFile(form.getRng020files(), tempDir);

    return __doDsp(map, form, req, res, con);
  }
예제 #11
0
  /**
   * <br>
   * [機 能] 権限チェック <br>
   * [解 説] <br>
   * [備 考]
   *
   * @param map ActionMapping
   * @param req HttpServletRequest
   * @param con DB Connection
   * @return ActionForward
   * @throws Exception 実行時例外
   */
  public ActionForward checkPow(ActionMapping map, HttpServletRequest req, Connection con)
      throws Exception {

    // ユーザ情報を取得
    HttpSession session = req.getSession(false);
    BaseUserModel usModel = (BaseUserModel) session.getAttribute(GSConst.SESSION_KEY);

    // GS管理者権限を取得
    CommonBiz cmnBiz = new CommonBiz();
    boolean gsAdmFlg = cmnBiz.isPluginAdmin(con, usModel, GSConstAddress.PLUGIN_ID_ADDRESS);

    // 業種編集権限を取得
    con.setAutoCommit(true);
    AdrAconfDao dao = new AdrAconfDao(con);
    AdrAconfModel model = dao.selectAconf();
    con.setAutoCommit(false);

    if (!gsAdmFlg && (model != null && model.getAacAtiEdit() == GSConstAddress.POW_LIMIT)) {
      return map.findForward("gf_power");
    }

    return null;
  }
예제 #12
0
  /**
   * <br>
   * [機 能] 添付ファイルダウンロードの処理 <br>
   * [解 説] <br>
   * [備 考]
   *
   * @param map アクションマッピング
   * @param form アクションフォーム
   * @param req リクエスト
   * @param res レスポンス
   * @param con コネクション
   * @throws SQLException SQL実行例外
   * @throws Exception 実行時例外
   * @return ActionForward
   */
  private ActionForward __doDownLoad(
      ActionMapping map,
      Rng020Form form,
      HttpServletRequest req,
      HttpServletResponse res,
      Connection con)
      throws SQLException, Exception {

    RequestModel reqMdl = getRequestModel(req);
    CommonBiz cmnBiz = new CommonBiz();
    String tempDir = cmnBiz.getTempDir(getTempPath(req), RngConst.PLUGIN_ID_RINGI, reqMdl);
    Rng020Biz biz = new Rng020Biz(reqMdl);
    tempDir = biz.getTemplateFileDir(tempDir);
    String fileId = form.getRng020TemplateFileId();

    // オブジェクトファイルを取得
    ObjectFile objFile = new ObjectFile(tempDir, fileId.concat(GSConstCommon.ENDSTR_OBJFILE));
    Object fObj = objFile.load();
    Cmn110FileModel fMdl = (Cmn110FileModel) fObj;
    // 添付ファイル保存用のパスを取得する(フルパス)
    String filePath = tempDir + fileId.concat(GSConstCommon.ENDSTR_SAVEFILE);
    filePath = IOTools.replaceFileSep(filePath);

    GsMessage gsMsg = new GsMessage(reqMdl);
    String msg = gsMsg.getMessage("cmn.download");

    // ログ出力処理
    RngBiz rngBiz = new RngBiz(con);
    rngBiz.outPutLog(map, msg, GSConstLog.LEVEL_INFO, fMdl.getFileName(), reqMdl);

    // 時間のかかる処理の前にコネクションを破棄
    JDBCUtil.closeConnectionAndNull(con);
    // ファイルをダウンロードする
    TempFileUtil.downloadAtachment(req, res, filePath, fMdl.getFileName(), Encoding.UTF_8);

    return null;
  }
예제 #13
0
  @Override
  public Document createXml(
      ActionForm aForm,
      HttpServletRequest req,
      HttpServletResponse res,
      Connection con,
      BaseUserModel umodel)
      throws Exception {
    log__.debug("createXml start");
    // 施設予約プラグインアクセス権限確認
    if (!canAccsessSelectPlugin(GSConst.PLUGIN_ID_RESERVE)) {
      addErrors(req, addCantAccsessPluginError(req, null, GSConst.PLUGIN_ID_RESERVE));
      return null;
    }
    RequestModel reqMdl = getRequestModel(req);
    int sessionUsrSid = umodel.getUsrsid(); // セッションユーザSID

    CommonBiz cmnBiz = new CommonBiz();

    // 施設予約の管理者
    boolean rsvAdmin = cmnBiz.isPluginAdmin(con, umodel, GSConstSchedule.PLUGIN_ID_RESERVE);

    RsvCommonBiz rsvCmnBiz = new RsvCommonBiz();
    RsvUserModel rsvUserConf = rsvCmnBiz.getRevUserModel(sessionUsrSid, con);

    int dfReservGpSid = GSConstReserve.COMBO_DEFAULT_VALUE;
    if (rsvUserConf != null) {
      dfReservGpSid = rsvUserConf.getRsgSid();
    }

    List<RsvSisGrpModel> list = __getReserveGroupList(con, sessionUsrSid, rsvAdmin, reqMdl);
    Map<Integer, RsvSisKbnModel> kbnMap = __getReserveKbnMap(con);

    // ルートエレメントResultSet
    Element resultSet = new Element("ResultSet");
    Document doc = new Document(resultSet);

    if (list != null) {
      int index = 0;
      for (RsvSisGrpModel model : list) {
        Element result = new Element("Result");
        resultSet.addContent(result);

        // Rsgsid グループSID
        result.addContent(_createElement("RsgSid", model.getRsgSid()));

        // GrpName グループ名
        result.addContent(_createElement("RsgName", model.getRsgName()));

        // グループID
        result.addContent(_createElement("RsgId", NullDefault.getString(model.getRsgId(), "")));
        // 施設区分SID
        result.addContent(_createElement("RskSid", String.valueOf(model.getRskSid())));
        // 施設区分名
        if (kbnMap.containsKey(model.getRskSid())) {
          RsvSisKbnModel kbn = kbnMap.get(model.getRskSid());
          result.addContent(_createElement("RskName", kbn.getRskName()));
        } else {
          result.addContent(_createElement("RskName", ""));
        }
        if (dfReservGpSid == Integer.valueOf(model.getRsgSid())) {
          resultSet.setAttribute("DefaultIndex", String.valueOf(index));
        }
        index++;
      }
      resultSet.setAttribute("Count", String.valueOf(list.size()));
    }
    log__.debug("createXml end");

    return doc;
  }
예제 #14
0
  /**
   * <br>
   * [機 能] 稟議情報登録処理を行う <br>
   * [解 説] <br>
   * [備 考]
   *
   * @param map アクションマッピング
   * @param form アクションフォーム
   * @param req リクエスト
   * @param res レスポンス
   * @param con コネクション
   * @param mode 登録モード 0:申請 1:草稿に保存
   * @throws Exception 実行時例外
   * @return ActionForward
   */
  private ActionForward __doEntry(
      ActionMapping map,
      Rng020Form form,
      HttpServletRequest req,
      HttpServletResponse res,
      Connection con,
      int mode)
      throws Exception {

    if (!isTokenValid(req, true)) {
      log__.info("2重投稿");
      return getSubmitErrorPage(map, req);
    }

    // 入力チェックを行う
    ActionErrors errors = null;
    if (mode == 0) {
      errors = form.validateCheck(Rng020Form.CHECKTYPE_REQUEST, req);
    } else if (mode == 1) {
      errors = form.validateCheck(Rng020Form.CHECKTYPE_DRAFT, req);
    }
    if (errors != null && !errors.isEmpty()) {
      addErrors(req, errors);
      return __doDsp(map, form, req, res, con);
    }

    // 新規作成の場合、確認画面へ遷移する。
    if (mode == 0) {
      return map.findForward("rng020kn");
    }
    ActionForward forward = null;
    boolean commit = false;
    PluginConfig pconfig = getPluginConfigForMain(getPluginConfig(req), con);
    CommonBiz cmnBiz = new CommonBiz();
    boolean smailPluginUseFlg = cmnBiz.isCanUsePlugin(GSConstMain.PLUGIN_ID_SMAIL, pconfig);

    try {
      RequestModel reqMdl = getRequestModel(req);
      Rng020ParamModel paramMdl = new Rng020ParamModel();
      paramMdl.setParam(form);
      Rng020Biz biz = new Rng020Biz(con, reqMdl, getSessionUserSid(req));
      biz.entryRingiData(
          paramMdl,
          getCountMtController(req),
          getAppRootPath(),
          _getRingiDir(req),
          mode,
          getPluginConfig(req),
          smailPluginUseFlg,
          getRequestModel(req));
      paramMdl.setFormData(form);

      forward = __setCompPageParam(map, req, form);

      GsMessage gsMsg = new GsMessage(reqMdl);
      String msg = gsMsg.getMessage("cmn.entry");
      String msg2 = gsMsg.getMessage("cmn.save.draft");

      // ログ出力処理
      RngBiz rngBiz = new RngBiz(con);
      String opCode = msg;

      rngBiz.outPutLog(map, opCode, GSConstLog.LEVEL_TRACE, msg2, reqMdl);

      con.commit();
      commit = true;

      // テンポラリディレクトリの削除
      IOTools.deleteDir(_getRingiDir(req));
    } catch (Exception e) {
      log__.error("稟議情報の登録に失敗", e);
      throw e;
    } finally {
      if (!commit) {
        con.rollback();
      }
    }

    return forward;
  }
예제 #15
0
  /**
   * <br>
   * [機 能] プラグイン追加処理を行う <br>
   * [解 説] <br>
   * [備 考]
   *
   * @param paramMdl BmkPtl020ParamModel
   * @param con コネクション
   * @param pconfig プラグインコンフィグ
   * @throws SQLException SQL実行例外
   */
  public void insertData(BmkPtl020ParamModel paramMdl, Connection con, PluginConfig pconfig)
      throws SQLException {

    PtlPortalPositionParamDao positionParamDao = new PtlPortalPositionParamDao(con);
    PtlPortalPositionDao ptlPositionDao = new PtlPortalPositionDao(con);
    PtlPortalLayoutDao layoutDao = new PtlPortalLayoutDao(con);
    int ptlSid = paramMdl.getPtlPortalSid();
    UDate now = new UDate();
    String itemId = now.getTimeStamp();
    CommonBiz cmnBiz = new CommonBiz();

    int groupSid = paramMdl.getBmkptl020GrpSid();
    // プラグイン選択済フラグ
    paramMdl.setBmkptl020selectFlg(true);

    // レイアウト情報を取得する。
    List<PtlPortalLayoutModel> layoutList =
        layoutDao.getLayoutList(ptlSid, GSConstPortal.LAYOUT_VIEW_ON);

    // プラグインを追加するポジションを取得する。
    List<Integer> positionSidList = new ArrayList<Integer>();
    positionSidList.add(GSConstPortal.LAYOUT_POSITION_LEFT);
    positionSidList.add(GSConstPortal.LAYOUT_POSITION_CENTER);
    positionSidList.add(GSConstPortal.LAYOUT_POSITION_RIGHT);
    positionSidList.add(GSConstPortal.LAYOUT_POSITION_TOP);
    positionSidList.add(GSConstPortal.LAYOUT_POSITION_BOTTOM);

    int plyPosition = GSConstPortal.LAYOUT_POSITION_LEFT;
    boolean endFlg = false;
    for (Integer position : positionSidList) {

      for (PtlPortalLayoutModel model : layoutList) {
        if (model.getPlyPosition() == position) {
          plyPosition = position;
          endFlg = true;
          break;
        }
      }
      if (endFlg) {
        break;
      }
    }

    // ポータル位置情報の最大値を取得する。
    int maxSort = ptlPositionDao.getMaxSort(ptlSid, plyPosition);

    // 選択画面ID
    String screenId = GSConstBookmark.SCREENID_BMKPTL020;

    // ポートレット画面IDを取得する。
    String dspScreenId =
        cmnBiz.getPluginPortletScreenId(pconfig, GSConstBookmark.PLUGIN_ID_BOOKMARK, screenId);

    // ポータル位置情報を登録する。
    PtlPortalPositionModel posiModel = new PtlPortalPositionModel();
    posiModel.setPtlSid(ptlSid);
    posiModel.setPtpItemid(now.getTimeStamp());
    posiModel.setPlyPosition(plyPosition);
    posiModel.setPtpSort(maxSort + 1);
    posiModel.setPtpType(GSConstPortal.PTP_TYPE_PLUGINPORTLET);
    posiModel.setPltSid(-1);
    posiModel.setPctPid(GSConstBookmark.PLUGIN_ID_BOOKMARK);
    posiModel.setMscId(dspScreenId);
    posiModel.setPtpView(GSConstPortal.PTL_OPENKBN_OK);
    posiModel.setPtpParamkbn(GSConstPortal.PTP_PARAMKBN_ON);
    ptlPositionDao.insert(posiModel);

    // ポータル_位置設定_パラメータを登録する。(1つ目 groupSid)
    PtlPortalPositionParamModel positionParamModel = new PtlPortalPositionParamModel();
    positionParamModel.setPtlSid(ptlSid);
    positionParamModel.setPtpItemid(itemId);
    positionParamModel.setPpmParamNo(1);
    positionParamModel.setPpmParamName(BMK_PORTLET_PARAM1);
    positionParamModel.setPpmParamValue(String.valueOf(groupSid));
    positionParamDao.insert(positionParamModel);

    // ポータル_位置設定_パラメータを登録する(2つ目 itemId)
    positionParamModel = new PtlPortalPositionParamModel();
    positionParamModel.setPtlSid(ptlSid);
    positionParamModel.setPtpItemid(itemId);
    positionParamModel.setPpmParamNo(2);
    positionParamModel.setPpmParamName(BMK_PORTLET_PARAM2);
    positionParamModel.setPpmParamValue(String.valueOf(itemId));
    positionParamDao.insert(positionParamModel);
  }
예제 #16
0
  /**
   * <br>
   * [機 能] 初期表示情報を設定する <br>
   * [解 説] <br>
   * [備 考]
   *
   * @param paramMdl Adr020ParamModel
   * @param con コネクション
   * @param userMdl セッションユーザ情報
   * @throws Exception 実行例外
   */
  public void setInitData(Adr020ParamModel paramMdl, Connection con, BaseUserModel userMdl)
      throws Exception {

    AddressBiz addressBiz = new AddressBiz(reqMdl_);
    UserBiz userBiz = new UserBiz();

    GsMessage gsMsg = new GsMessage(reqMdl_);

    // 役職コンボを設定
    paramMdl.setPositionCmbList(getAddressPositionLabelList(con));

    // グループコンボを設定
    paramMdl.setGroupCmbList(addressBiz.getGroupLabelList(con));

    // ユーザコンボを設定
    if (paramMdl.getAdr010cmdMode() == Adr010Const.CMDMODE_CONTACT) {
      paramMdl.setUserCmbList(
          userBiz.getNormalUserLabelList(
              con, Integer.parseInt(paramMdl.getAdr010tantoGroupContact()), null, true, gsMsg));
    } else {
      paramMdl.setUserCmbList(
          userBiz.getNormalUserLabelList(
              con, Integer.parseInt(paramMdl.getAdr010tantoGroup()), null, true, gsMsg));
    }

    // 都道府県コンボを設定
    CommonBiz cmnBiz = new CommonBiz();
    paramMdl.setTdfkCmbList(cmnBiz.getTdfkLabelList(con, gsMsg));

    // 管理者設定ボタン表示フラグを設定
    boolean adminUser = cmnBiz.isPluginAdmin(con, userMdl, GSConstAddress.PLUGIN_ID_ADDRESS);

    AdrAconfDao aconfDao = new AdrAconfDao(con);
    AdrAconfModel aconfMdl = aconfDao.selectAconf();
    // 会社追加ボタン表示フラグを設定
    if (adminUser || (aconfMdl == null || aconfMdl.getAacAcoEdit() == 0)) {
      paramMdl.setAdr020addCompanyBtnFlg(1);
    }
    // ラベル追加ボタン表示フラグを設定
    if (adminUser || (aconfMdl == null || aconfMdl.getAacAlbEdit() == 0)) {
      paramMdl.setAdr020addLabelBtnFlg(1);
    }

    // 閲覧・編集権限の初期値を設定(初期表示時)
    if (paramMdl.getAdr020init() == 0) {
      if (aconfMdl != null) {
        // 管理者が設定
        if (aconfMdl.getAacVrmEdit() == GSConstAddress.MEM_DSP_ADM) {
          paramMdl.setAdr020permitView(aconfMdl.getAacPvwKbn());
          paramMdl.setAdr020permitEdit(aconfMdl.getAacPetKbn());
        } else {
          // 個人が設定
          AdrUconfDao uconfDao = new AdrUconfDao(con);
          AdrUconfModel uconfMdl = uconfDao.select(userMdl.getUsrsid());
          if (uconfMdl != null) {
            paramMdl.setAdr020permitView(uconfMdl.getAucPermitView());
            paramMdl.setAdr020permitEdit(uconfMdl.getAucPermitEdit());
          } else {
            paramMdl.setAdr020permitView(aconfMdl.getAacPvwKbn());
            paramMdl.setAdr020permitEdit(aconfMdl.getAacPetKbn());
          }
        }
      } else {
        paramMdl.setAdr020permitView(GSConst.ADR_VIEWPERMIT_OWN);
        paramMdl.setAdr020permitEdit(GSConstAddress.EDITPERMIT_OWN);
      }
    }

    // 初期表示
    if (paramMdl.getAdr020init() == 0) {

      // モード = 新規登録 の場合、担当者にセッションユーザを設定する
      if (paramMdl.getAdr020ProcMode() == GSConstAddress.PROCMODE_ADD) {
        paramMdl.setAdr020tantoList(new String[] {String.valueOf(userMdl.getUsrsid())});
      }

      // モード = 変更 の場合、DBからアドレス帳情報を読み込む
      if (paramMdl.getAdr020ProcMode() == GSConstAddress.PROCMODE_EDIT) {
        _setAddressData(con, paramMdl);
      }

      // WEBメールからの呼び出しの場合、氏名とメールアドレスを追加する
      if (paramMdl.getAdr020webmail() == 1) {
        long mailNum = paramMdl.getAdr020webmailId();
        WmlDao wmlDao = new WmlDao(con);
        WmlMailDataModel mailData = wmlDao.getMailData(mailNum, reqMdl_.getDomain());
        String webmailAddress = NullDefault.getString(mailData.getFromAddress(), "");

        if (webmailAddress.indexOf("<") > 0) {
          String userName = webmailAddress.substring(0, webmailAddress.indexOf("<")).trim();
          webmailAddress = webmailAddress.substring(webmailAddress.indexOf("<") + 1).trim();
          if (userName.startsWith("\"")) {
            userName = userName.substring(1);
          }
          if (userName.endsWith("\"")) {
            userName = userName.substring(0, userName.length() - 1);
          }
          userName = userName.replaceFirst(" ", " ");
          int userIdx = userName.indexOf(" ");
          if (userIdx > 0) {
            paramMdl.setAdr020unameSei(userName.substring(0, userIdx).trim());
            paramMdl.setAdr020unameMei(userName.substring(userIdx).trim());
          } else {
            paramMdl.setAdr020unameSei(userName);
          }

          if (webmailAddress.indexOf(">") > 0) {
            webmailAddress = webmailAddress.substring(0, webmailAddress.indexOf(">"));
          }
        }
        paramMdl.setAdr020mail1(webmailAddress);
      }

      paramMdl.setAdr020init(1);
    }
    // モード = 新規 かつ 複写ボタンをクリック時、DBからアドレス帳情報を読み込む
    if (paramMdl.getAdr020ProcMode() == GSConstAddress.PROCMODE_ADD
        && paramMdl.getAdrCopyFlg() == 1) {
      _setAddressData(con, paramMdl);
      paramMdl.setAdrCopyFlg(0);
    }

    // 会社名を設定
    _setCompanyData(con, paramMdl);

    // 役職を追加した場合の役職の設定
    if (paramMdl.getAdrPosition() > 0) {
      paramMdl.setAdr020position(paramMdl.getAdrPosition());
      paramMdl.setAdrPosition(0);
    }

    // ユーザ一覧を取得する
    CmnCmbsortConfDao sortDao = new CmnCmbsortConfDao(con);
    CmnCmbsortConfModel sortMdl = sortDao.getCmbSortData();
    AddressDao addressDao = new AddressDao(con);
    List<LabelValueBean> allUserCombo = addressDao.getAllUserList(sortMdl);

    // 担当者コンボの設定を行う
    if (paramMdl.getAdr020tantoGroup() == -2
        || paramMdl.getAdr020permitViewUserGroup() == -2
        || paramMdl.getAdr020permitEditUserGroup() == -2) {

      CmnBelongmDao belongmDao = new CmnBelongmDao(con);

      int userSid = userMdl.getUsrsid();
      int defGrpSid = belongmDao.selectUserBelongGroupDef(userSid);

      paramMdl.setAdr020tantoGroup(defGrpSid);
      paramMdl.setAdr020permitViewUserGroup(defGrpSid);
      paramMdl.setAdr020permitEditUserGroup(defGrpSid);
    }

    List<List<LabelValueBean>> tantoComboList =
        addressBiz.getUserCombo(
            con, allUserCombo, paramMdl.getAdr020tantoGroup(), paramMdl.getAdr020tantoList());
    paramMdl.setSelectTantoCombo(tantoComboList.get(0));
    paramMdl.setNoSelectTantoCombo(tantoComboList.get(1));
    ArrayList<String> selSidList = new ArrayList<String>();
    for (LabelValueBean bean : tantoComboList.get(0)) {
      selSidList.add(bean.getValue());
    }
    paramMdl.setAdr020tantoList(selSidList.toArray(new String[0]));

    // グループ一覧を取得
    ArrayList<LabelValueBean> allGroupCombo = new ArrayList<LabelValueBean>();
    GroupBiz groupBiz = new GroupBiz();
    ArrayList<GroupModel> gpList = groupBiz.getGroupList(con);

    for (GroupModel gpMdl : gpList) {
      allGroupCombo.add(
          new LabelValueBean(gpMdl.getGroupName(), String.valueOf(gpMdl.getGroupSid())));
    }
    // 閲覧グループコンボを設定する
    List<List<LabelValueBean>> viewPermitGroupComboList =
        addressBiz.getGroupCombo(con, allGroupCombo, paramMdl.getAdr020permitViewGroup());
    paramMdl.setSelectPermitViewGroup(viewPermitGroupComboList.get(0));
    paramMdl.setNoSelectPermitViewGroup(viewPermitGroupComboList.get(1));
    selSidList = new ArrayList<String>();
    for (LabelValueBean bean : viewPermitGroupComboList.get(0)) {
      selSidList.add(bean.getValue());
    }
    paramMdl.setAdr020permitViewGroup(selSidList.toArray(new String[0]));
    // 編集グループコンボを設定する
    List<List<LabelValueBean>> editPermitGroupComboList =
        addressBiz.getGroupCombo(con, allGroupCombo, paramMdl.getAdr020permitEditGroup());
    paramMdl.setSelectPermitEditGroup(editPermitGroupComboList.get(0));
    paramMdl.setNoSelectPermitEditGroup(editPermitGroupComboList.get(1));
    selSidList = new ArrayList<String>();
    for (LabelValueBean bean : editPermitGroupComboList.get(0)) {
      selSidList.add(bean.getValue());
    }
    paramMdl.setAdr020permitEditGroup(selSidList.toArray(new String[0]));

    // 閲覧ユーザコンボを設定する
    List<List<LabelValueBean>> viewPermitUserComboList =
        addressBiz.getUserCombo(
            con,
            allUserCombo,
            paramMdl.getAdr020permitViewUserGroup(),
            paramMdl.getAdr020permitViewUser());
    paramMdl.setSelectPermitViewUser(viewPermitUserComboList.get(0));
    paramMdl.setNoSelectPermitViewUser(viewPermitUserComboList.get(1));
    selSidList = new ArrayList<String>();
    for (LabelValueBean bean : viewPermitUserComboList.get(0)) {
      selSidList.add(bean.getValue());
    }
    paramMdl.setAdr020permitViewUser(selSidList.toArray(new String[0]));

    // 編集ユーザコンボを設定する
    List<List<LabelValueBean>> editPermitUserComboList =
        addressBiz.getUserCombo(
            con,
            allUserCombo,
            paramMdl.getAdr020permitEditUserGroup(),
            paramMdl.getAdr020permitEditUser());
    paramMdl.setSelectPermitEditUser(editPermitUserComboList.get(0));
    paramMdl.setNoSelectPermitEditUser(editPermitUserComboList.get(1));
    selSidList = new ArrayList<String>();
    for (LabelValueBean bean : editPermitUserComboList.get(0)) {
      selSidList.add(bean.getValue());
    }
    paramMdl.setAdr020permitEditUser(selSidList.toArray(new String[0]));

    // ラベル情報一覧を設定
    this._setLabelList(con, paramMdl);
  }
예제 #17
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;
  }