예제 #1
0
  /**
   * <br>
   * [機 能] 稟議の確認を行う <br>
   * [解 説] <br>
   * [備 考]
   *
   * @param paramMdl パラメータ情報
   * @param con コネクション
   * @param cntCon MlCountMtController
   * @param userSid セッションユーザSID
   * @param appRootPath アプリケーションのルートパス
   * @param tempDir テンポラリディレクトリ
   * @throws Exception 実行例外
   */
  public void confirmationRingi(
      Rng030ParamModel paramMdl,
      Connection con,
      MlCountMtController cntCon,
      int userSid,
      String appRootPath,
      String tempDir)
      throws Exception {
    log__.debug("START");

    // 現在時刻
    UDate now = new UDate();

    // 稟議経路情報の更新
    RngChannelDao channelDao = new RngChannelDao(con);
    RngChannelModel channelMdl = __createChannelModel(paramMdl, userSid, now);
    channelMdl.setRncComment(paramMdl.getRng030Comment());
    channelMdl.setRncStatus(RngConst.RNG_RNCSTATUS_CONFIRMATION);
    channelMdl.setRncChkdate(now);
    channelDao.updateChannel(channelMdl);

    // 最終確認者の受信日を更新する
    channelDao.updateRcvdateForConfirmUser(channelMdl.getRngSid(), userSid, now);

    // 稟議添付情報の更新
    __updateRngBin(con, cntCon, paramMdl.getRngSid(), userSid, appRootPath, tempDir, now);

    log__.debug("End");
  }
예제 #2
0
  /**
   * <br>
   * [機 能] 稟議のスキップを行う <br>
   * [解 説] <br>
   * [備 考]
   *
   * @param paramMdl パラメータ情報
   * @param con コネクション
   * @param userSid セッションユーザSID
   * @throws Exception 実行例外
   */
  public void skipRingi(Rng030ParamModel paramMdl, Connection con, int userSid) throws Exception {
    log__.debug("START");

    int rngSid = paramMdl.getRngSid();
    UDate now = new UDate();

    RngChannelDao channelDao = new RngChannelDao(con);
    // 現在確認中のユーザを取得する
    int confirmUserSid = channelDao.getApprovalUser(rngSid);

    // 稟議経路情報の更新
    RngChannelModel channelMdl = __createChannelModel(paramMdl, userSid, now);
    channelMdl.setUsrSid(confirmUserSid);
    channelMdl.setRncComment(paramMdl.getRng030Comment());
    channelMdl.setRncStatus(RngConst.RNG_RNCSTATUS_NOSET);
    channelMdl.setRncChkdate(null);
    channelDao.updateChannel(channelMdl);

    // 次の承認者の稟議経路情報を更新する
    int nextUserSid = channelDao.getNextApproval(channelMdl, 1);
    if (nextUserSid > 0) {
      channelMdl.setUsrSid(nextUserSid);
      channelMdl.setRncStatus(RngConst.RNG_RNCSTATUS_CONFIRM);
      channelMdl.setRncRcvdate(now);
      channelMdl.setRncChkdate(null);
      channelDao.updateApprovalChannel(channelMdl);
    } else {
      // 次の承認者が存在しない場合、稟議を完了する
      RngRndataDao rngDao = new RngRndataDao(con);
      RngRndataModel rngData = new RngRndataModel();

      rngData.setRngSid(rngSid);
      rngData.setRngAuid(userSid);
      rngData.setRngAdate(now);
      rngData.setRngEuid(userSid);
      rngData.setRngEdate(now);
      rngDao.completeRingi(rngData, false);

      // 最終確認者の受信日を更新する
      channelDao.updateRcvdateForConfirmUser(rngData.getRngSid(), userSid, now);
    }

    log__.debug("End");
  }
예제 #3
0
  /**
   * <br>
   * [機 能] 稟議の再申請を行う <br>
   * [解 説] <br>
   * [備 考]
   *
   * @param paramMdl パラメータ情報
   * @param cntCon MlCountMtController
   * @param userSid セッションユーザSID
   * @param appRootPath アプリケーションのルートパス
   * @param tempDir テンポラリディレクトリ
   * @param pluginConfig プラグイン情報
   * @param smailPluginUseFlg ショートメールプラグイン有効フラグ
   * @throws Exception 実行例外
   */
  public void applicateRingi(
      Rng030ParamModel paramMdl,
      MlCountMtController cntCon,
      int userSid,
      String appRootPath,
      String tempDir,
      PluginConfig pluginConfig,
      boolean smailPluginUseFlg)
      throws Exception {

    log__.debug("START");

    int rngSid = paramMdl.getRngSid();
    UDate now = new UDate();

    // 稟議情報の更新
    RngRndataModel rngMdl = new RngRndataModel();
    rngMdl.setRngSid(rngSid);
    rngMdl.setRngTitle(paramMdl.getRng030Title());
    rngMdl.setRngContent(paramMdl.getRng030Content());
    rngMdl.setRngMakedate(now);
    rngMdl.setRngApplicate(userSid);
    rngMdl.setRngAppldate(now);
    rngMdl.setRngStatus(RngConst.RNG_STATUS_REQUEST);
    rngMdl.setRngCompflg(0);
    rngMdl.setRngAdmcomment(null);
    rngMdl.setRngEuid(userSid);
    rngMdl.setRngEdate(now);

    RngRndataDao rngDao = new RngRndataDao(con__);
    rngDao.update(rngMdl);

    // 稟議経路情報の更新
    RngChannelDao channelDao = new RngChannelDao(con__);
    RngChannelModel channelMdl = __createChannelModel(paramMdl, userSid, now);
    channelMdl.setUsrSid(userSid);
    channelMdl.setRncComment(null);
    channelMdl.setRncStatus(RngConst.RNG_RNCSTATUS_NOSET);
    channelMdl.setRncChkdate(null);
    channelDao.updateChannel(channelMdl);

    // 削除されたユーザを除外する
    int delCnt = channelDao.deleteChannelForDelUser(rngSid);
    if (delCnt > 0) {
      List<Integer> apprUserList = channelDao.getApprUserList(rngSid);
      int sort = 1;
      for (int apprUserSid : apprUserList) {
        channelDao.updateChannelSort(rngSid, apprUserSid, sort);
        sort++;
      }
    }
    // 最初の承認者の稟議経路情報を更新する
    channelMdl.setRncStatus(RngConst.RNG_RNCSTATUS_CONFIRM);
    channelMdl.setRncRcvdate(now);
    channelMdl.setRncChkdate(null);
    channelDao.updateFirstChannel(channelMdl);

    // 稟議添付情報の登録を行う
    RngBiz biz = new RngBiz(con__, cntCon);
    biz.insertRngBin(
        rngSid,
        userSid,
        now,
        appRootPath,
        tempDir,
        RngConst.RNG_CMDMODE_EDIT,
        RngBiz.APPLMODE_REAPPL);

    log__.debug("End");
  }
예제 #4
0
  /**
   * <br>
   * [機 能] 稟議の差し戻しを行う <br>
   * [解 説] <br>
   * [備 考]
   *
   * @param paramMdl パラメータ情報
   * @param cntCon MlCountMtController
   * @param userSid セッションユーザSID
   * @param appRootPath アプリケーションのルートパス
   * @param tempDir テンポラリディレクトリ
   * @param pluginConfig プラグイン情報
   * @param smailPluginUseFlg ショートメールプラグイン有効フラグ
   * @param reqMdl リクエスト情報
   * @throws Exception 実行例外
   */
  public void reflectionRingi(
      Rng030ParamModel paramMdl,
      MlCountMtController cntCon,
      int userSid,
      String appRootPath,
      String tempDir,
      PluginConfig pluginConfig,
      boolean smailPluginUseFlg,
      RequestModel reqMdl)
      throws Exception {
    log__.debug("START");

    log__.debug("START");

    // 現在時刻
    UDate now = new UDate();

    int rngSid = paramMdl.getRngSid();

    // 稟議経路情報の更新
    RngChannelDao channelDao = new RngChannelDao(con__);
    RngChannelModel channelMdl = __createChannelModel(paramMdl, userSid, now);
    channelMdl.setRncComment(paramMdl.getRng030Comment());
    channelMdl.setRncStatus(RngConst.RNG_RNCSTATUS_DENIAL);
    channelMdl.setRncChkdate(now);
    channelDao.updateChannel(channelMdl);

    // 稟議添付情報の更新
    __updateRngBin(con__, cntCon, rngSid, userSid, appRootPath, tempDir, now);

    // 稟議を却下状態にする
    RngRndataDao rngDao = new RngRndataDao(con__);
    RngRndataModel rngData = __createRndataModel(paramMdl, userSid, now);
    rngData.setRngStatus(RngConst.RNG_STATUS_REJECT);
    rngDao.updateRingiStatus(rngData);

    // 次に確認するユーザの経路情報を更新
    int beforeUserSid = channelDao.getNextApproval(channelMdl, 0);
    channelMdl.setRncStatus(RngConst.RNG_RNCSTATUS_CONFIRM);
    channelMdl.setRncRcvdate(now);
    channelMdl.setRncChkdate(null);
    if (beforeUserSid > 0) {
      // 最初の承認者ではない場合、前の承認者の稟議経路情報を更新する
      channelMdl.setUsrSid(beforeUserSid);
      channelDao.updateApprovalChannel(channelMdl);
    } else {
      // 最初の承認者の場合、申請者の経路情報を更新する
      channelDao.updateApplicateChannel(channelMdl);
    }

    // リスナーに定義された稟議差し戻し時の処理を行う
    RngBiz rngBiz = new RngBiz(con__);
    RingiListenerModel listenerMdl =
        rngBiz.createListenerModel(
            con__, cntCon, rngSid, appRootPath, pluginConfig, smailPluginUseFlg);
    String url = rngBiz.createThreadUrlRef(reqMdl, rngData.getRngSid());
    // URLを設定
    listenerMdl.setRngUrl(url);

    if (!rngBiz.isCheckRngAconfSmlNot(con__)) {
      RngAconfModel rngAdmMdl = rngBiz.getRngAconf(con__);
      listenerMdl.setSmlNtf(rngAdmMdl.getRarSmlNtf());

      IRingiListener[] listenerList = rngBiz.getRingiListeners(pluginConfig);
      for (IRingiListener listener : listenerList) {
        listener.doReflectionRingi(listenerMdl, reqMdl);
      }
    }

    log__.debug("End");
  }
예제 #5
0
  /**
   * <br>
   * [機 能] 稟議の却下を行う <br>
   * [解 説] <br>
   * [備 考]
   *
   * @param paramMdl パラメータ情報
   * @param cntCon MlCountMtController
   * @param userSid セッションユーザSID
   * @param appRootPath アプリケーションのルートパス
   * @param tempDir テンポラリディレクトリ
   * @param pluginConfig プラグイン情報
   * @param smailPluginUseFlg ショートメールプラグイン有効フラグ
   * @param reqMdl リクエスト情報
   * @throws Exception 実行例外
   */
  public void denialRingi(
      Rng030ParamModel paramMdl,
      MlCountMtController cntCon,
      int userSid,
      String appRootPath,
      String tempDir,
      PluginConfig pluginConfig,
      boolean smailPluginUseFlg,
      RequestModel reqMdl)
      throws Exception {
    log__.debug("START");

    // 現在時刻
    UDate now = new UDate();

    int rngSid = paramMdl.getRngSid();

    // 稟議経路情報の更新
    RngChannelDao channelDao = new RngChannelDao(con__);
    RngChannelModel channelMdl = __createChannelModel(paramMdl, userSid, now);
    channelMdl.setRncComment(paramMdl.getRng030Comment());
    channelMdl.setRncStatus(RngConst.RNG_RNCSTATUS_DENIAL);
    channelMdl.setRncChkdate(now);
    channelDao.updateChannel(channelMdl);

    // 稟議添付情報の更新
    __updateRngBin(con__, cntCon, rngSid, userSid, appRootPath, tempDir, now);

    RngBiz rngBiz = new RngBiz(con__);
    rngBiz.getRingiListeners(pluginConfig);

    // 稟議を却下状態で完了する
    RngRndataDao rngDao = new RngRndataDao(con__);
    RngRndataModel rngData = __createRndataModel(paramMdl, userSid, now);
    rngData.setRngStatus(RngConst.RNG_STATUS_REJECT);
    rngData.setRngAdmcomment(null);
    rngDao.completeRingi(rngData, true);

    // 最終確認者の受信日を更新する
    channelDao.updateRcvdateForConfirmUser(rngSid, userSid, now);

    IRingiListener[] listenerList = rngBiz.getRingiListeners(pluginConfig);

    // リスナーに定義された稟議完了時の処理を行う
    RingiListenerModel listenerMdl =
        rngBiz.createListenerModel(
            con__, cntCon, rngSid, appRootPath, pluginConfig, smailPluginUseFlg);
    String url = rngBiz.createThreadUrl(reqMdl, rngData.getRngSid());
    // URLを設定
    listenerMdl.setRngUrl(url);

    if (!rngBiz.isCheckRngAconfSmlNot(con__)) {
      RngAconfModel rngAdmMdl = rngBiz.getRngAconf(con__);
      listenerMdl.setSmlNtf(rngAdmMdl.getRarSmlNtf());

      for (IRingiListener listener : listenerList) {
        listener.doRejectRingi(listenerMdl, reqMdl);
      }
    }

    log__.debug("End");
  }
예제 #6
0
  /**
   * <br>
   * [機 能] 稟議の承認を行う <br>
   * [解 説] <br>
   * [備 考]
   *
   * @param paramMdl パラメータ情報
   * @param cntCon MlCountMtController
   * @param userSid セッションユーザSID
   * @param appRootPath アプリケーションのルートパス
   * @param tempDir テンポラリディレクトリ
   * @param pluginConfig プラグイン情報
   * @param smailPluginUseFlg ショートメールプラグイン有効フラグ
   * @param reqMdl リクエスト情報
   * @throws Exception 実行例外
   */
  public void approvalRingi(
      Rng030ParamModel paramMdl,
      MlCountMtController cntCon,
      int userSid,
      String appRootPath,
      String tempDir,
      PluginConfig pluginConfig,
      boolean smailPluginUseFlg,
      RequestModel reqMdl)
      throws Exception {
    log__.debug("START");

    // 現在時刻
    UDate now = new UDate();

    int rngSid = paramMdl.getRngSid();

    // 稟議経路情報の更新
    RngChannelDao channelDao = new RngChannelDao(con__);
    RngChannelModel channelMdl = __createChannelModel(paramMdl, userSid, now);
    channelMdl.setRncComment(paramMdl.getRng030Comment());
    channelMdl.setRncStatus(RngConst.RNG_RNCSTATUS_APPR);
    channelMdl.setRncChkdate(now);
    channelDao.updateChannel(channelMdl);

    // 稟議添付情報の更新
    __updateRngBin(con__, cntCon, rngSid, userSid, appRootPath, tempDir, now);

    // 通知リスナーの情報を取得
    RngBiz rngBiz = new RngBiz(con__);
    RingiListenerModel listenerMdl =
        rngBiz.createListenerModel(
            con__, cntCon, rngSid, appRootPath, pluginConfig, smailPluginUseFlg);

    IRingiListener[] listenerList = rngBiz.getRingiListeners(pluginConfig);

    int nextUserSid = channelDao.getNextApproval(channelMdl, 1);
    if (nextUserSid < 0) {
      // ログインユーザが最終承認者の場合、稟議を完了する
      RngRndataDao rngDao = new RngRndataDao(con__);
      RngRndataModel rngData = __createRndataModel(paramMdl, userSid, now);
      rngData.setRngStatus(RngConst.RNG_STATUS_SETTLED);
      rngData.setRngAdmcomment(null);
      rngDao.completeRingi(rngData, true);
      String url = rngBiz.createThreadUrl(reqMdl, rngData.getRngSid());
      // URLを設定
      listenerMdl.setRngUrl(url);

      // 最終確認者の受信日を更新する
      channelDao.updateRcvdateForConfirmUser(rngSid, userSid, now);

      if (!rngBiz.isCheckRngAconfSmlNot(con__)) {
        RngAconfModel rngAdmMdl = rngBiz.getRngAconf(con__);
        listenerMdl.setSmlNtf(rngAdmMdl.getRarSmlNtf());

        // 稟議承認(完了)通知を行う
        for (IRingiListener listener : listenerList) {
          listener.doApprovalCompleteRingi(listenerMdl, reqMdl);
        }
      }

    } else {
      // ログインユーザが最終承認者ではない場合、次の承認者の稟議経路情報を更新する
      channelMdl.setRncStatus(RngConst.RNG_RNCSTATUS_CONFIRM);
      channelMdl.setRncRcvdate(now);
      channelMdl.setRncChkdate(null);
      channelMdl.setUsrSid(nextUserSid);
      channelDao.updateApprovalChannel(channelMdl);

      // 稟議を申請中状態にする
      RngRndataDao rngDao = new RngRndataDao(con__);
      RngRndataModel rngData = __createRndataModel(paramMdl, userSid, now);
      rngData.setRngStatus(RngConst.RNG_STATUS_REQUEST);
      rngDao.updateRingiStatus(rngData);
      String url = rngBiz.createThreadUrl(reqMdl, rngData.getRngSid());
      // URLを設定
      listenerMdl.setRngUrl(url);

      if (!rngBiz.isCheckRngAconfSmlNot(con__)) {
        RngAconfModel rngAdmMdl = rngBiz.getRngAconf(con__);
        listenerMdl.setSmlNtf(rngAdmMdl.getRarSmlNtf());

        // 稟議承認通知を行う
        for (IRingiListener listener : listenerList) {
          listener.doApprovalRingi(listenerMdl, reqMdl);
        }
      }
    }

    log__.debug("End");
  }