/** * <br> * [機 能] 稟議情報の添付ファイルをテンポラリディレクトリに移動する <br> * [解 説] <br> * [備 考] * * @param con コネクション * @param rngSid 稟議SID * @param userSid ユーザSID * @param appRoot アプリケーションのルートパス * @param tempDir テンポラリディレクトリパス * @throws SQLException 実行例外 * @throws IOException 添付ファイルの操作に失敗 * @throws IOToolsException 添付ファイルの操作に失敗 * @throws TempFileException 添付ファイルUtil内での例外 */ public void readRngBinData( Connection con, int rngSid, int userSid, String appRoot, String tempDir) throws IOException, IOToolsException, SQLException, TempFileException { RngBiz rngBiz = new RngBiz(con); rngBiz.setRingiTempFileData(con, rngSid, userSid, appRoot, tempDir, new UDate(), reqMdl__); }
/** * <br> * [機 能] 上矢印(承認経路)ボタン押下時処理を行う <br> * [解 説] <br> * [備 考] * * @param map アクションマッピング * @param form アクションフォーム * @param req リクエスト * @param res レスポンス * @param con コネクション * @throws Exception 実行時例外 * @return ActionForward */ private ActionForward __doUpAppr( ActionMapping map, Rng020Form form, HttpServletRequest req, HttpServletResponse res, Connection con) throws Exception { RngBiz rngBiz = new RngBiz(con); form.setRng020apprUser( rngBiz.getUpMember(form.getRng020selectApprUser(), form.getRng020apprUser())); return __doDsp(map, form, req, res, con); }
/** * <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; }
/** * <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; }
/** * <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 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"); }
/** * <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"); }
/** * <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"); }