/** * <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; }
/** * <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; }
/** * <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); } } }
/** * <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(); }
/** * 在席管理が利用可能かを 設定する <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); } }
/** * <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); }
/** * <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"); }
/** * <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); }
/** * <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; }
/** * <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); }
/** * <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; }
/** * <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; }
@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; }
/** * <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 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); }
/** * <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); }
/** * <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; }