/** * <br> * [機 能] 稟議の強制完了を行う <br> * [解 説] <br> * [備 考] * * @param paramMdl パラメータ情報 * @param con コネクション * @param cntCon MlCountMtController * @param appRootPath アプリケーションのルートパス * @param userSid セッションユーザSID * @param pluginConfig プラグイン情報 * @throws Exception 実行例外 */ public void compelCompleteRingi( Rng030ParamModel paramMdl, Connection con, int userSid, MlCountMtController cntCon, String appRootPath, PluginConfig pluginConfig) throws Exception { log__.debug("START"); // 現在時刻 UDate now = new UDate(); // 稟議を完了状態にする RngRndataDao rngDao = new RngRndataDao(con); RngRndataModel rngData = __createRndataModel(paramMdl, userSid, now); rngData.setRngAdmcomment(paramMdl.getRng030Comment()); rngDao.completeRingi(rngData, false); // 最終確認者の受信日を更新する RngChannelDao channelDao = new RngChannelDao(con); channelDao.updateRcvdateForConfirmUser(rngData.getRngSid(), userSid, now); log__.debug("End"); }
/** * <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"); }
/** * <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"); }
/** * <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"); }
/** * <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"); }