- 论坛徽章:
- 0
|
项目到了年底,郁闷的不得了,原本不是中国做的JFreeChart由中国做了,并且给我做了,以前做过.Net的web统计图.Java,呵呵,我是半路出家.
不过还是硬着头皮做了下来,几天时间画了6个JFreeChart.由于这些图是原来运行的Unix下的用Unix C语言写的(佩服写程序的人)所以很难运用JFreeChart画的跟原来一样,索性日本娘们就在中国,可以随时QA所以基本没有费多大的力气就搞定了,由于做的太快,小日本居然一个个的都跑到我这里看效果,Fuck,PM拉着我和他照相,真搞笑呵呵.
搞得根什么似的,其实本人对于人家写好的框架再次开发并不感兴趣.作完了只能说JFreeChart功能还是不行.其实也不能怪JFreeChart是Web层的错误.
代码复制下来,留自己以后用赫赫.
/*
* DgmAction
* $Id: DgmAction.java,v 1.21 2006/01/04 11:40:06 liukx Exp $
* Copyright (c)
*/
package jp.co.mhcb.obs.web.riskreport.dgm.action;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import jp.co.mhcb.obs.biz.bean.riskreport.DgmBean;
import jp.co.mhcb.obs.biz.bean.riskreport.DgmDeltaMapGraphBean;
import jp.co.mhcb.obs.biz.bean.riskreport.DgmGammaMapGraphBean;
import jp.co.mhcb.obs.biz.facade.riskreport.dgm.DgmFacade;
import jp.co.mhcb.obs.biz.service.common.master.selection.CommonSelectConstants;
import jp.co.mhcb.obs.biz.service.common.master.selection.DealerForReportSelectTargetImpl;
import jp.co.mhcb.obs.biz.service.common.master.selection.DeptForReportSelectTargetImpl;
import jp.co.mhcb.obs.biz.service.common.master.selection.PortfolioForReportSelectTargetImpl;
import jp.co.mhcb.obs.biz.service.common.master.selection.SectionForReportSelectTargetImpl;
import jp.co.mhcb.obs.biz.service.common.master.selection.UnitForReportSelectTargetImpl;
import jp.co.mhcb.obs.biz.service.common.print.PdfData;
import jp.co.mhcb.obs.biz.service.risk.FrontFileConst;
import jp.co.mhcb.obs.common.ObsApplicationException;
import jp.co.mhcb.obs.framework.core.api.FwMessage;
import jp.co.mhcb.obs.framework.core.api.FwMessageManager;
import jp.co.mhcb.obs.framework.core.api.FwThreadContext;
import jp.co.mhcb.obs.framework.web.struts.action.ActionForwardException;
import jp.co.mhcb.obs.framework.web.struts.action.InitializableAction;
import jp.co.mhcb.obs.persis.entity.Currency;
import jp.co.mhcb.obs.persis.entity.Dept;
import jp.co.mhcb.obs.persis.entity.Portfolio;
import jp.co.mhcb.obs.persis.entity.Section;
import jp.co.mhcb.obs.persis.entity.Unit;
import jp.co.mhcb.obs.persis.entity.UserId;
import jp.co.mhcb.obs.web.common.confirm.action.ConfirmAction;
import jp.co.mhcb.obs.web.common.print.action.PdfPrintAction;
import jp.co.mhcb.obs.web.risk.transactionsearch.action.TransactionSearchAction;
import jp.co.mhcb.obs.web.riskreport.RiskReportConst;
import jp.co.mhcb.obs.web.riskreport.closingcsv.action.ClosingCsvAction;
import jp.co.mhcb.obs.web.riskreport.closingreport.action.ClosingReportAction;
import jp.co.mhcb.obs.web.riskreport.common.action.RiskReportCsvAction;
import jp.co.mhcb.obs.web.riskreport.dgm.form.DgmForm;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.MappingDispatchAction;
import org.apache.struts.util.LabelValueBean;
/**
* DELTA MAP & GAMMA MAPのAction
* @version $Revision: 1.21 $
* @author $Author: liukx $
*/
public class DgmAction extends MappingDispatchAction implements InitializableAction {
/** 確認画面メッセージID */
private static final String SCREEN_CONFIRM_MSGKEY = "Q14001";
/** FORM定数設定 */
private static final String DGM_FORM = "dgmForm";
/** Sessionキー : 画面隠蔵項目remark */
private static final String SESSION_DGM_FORM_REMARK = "DGM.FORM.REMARK";
/** Sessionキー : DgmBean */
private static final String SESSION_DGM_BEAN = "DGM.BEAN.DGM.BEAN";
/** Sessionキー : DgmDeltaBean */
private static final String SESSION_DGM_DELTA_GRAPH_BEAN = "DGM.DELTA.GRAPH.BEAN";
/** Sessionキー : DgmGammaBean */
private static final String SESSION_DGM_GAMMA_GRAPH_BEAN = "DGM.GAMMA.GRAPH.BEAN";
/** Sessionキー : 計表(PDF)ファイルパス */
private static final String SESSION_DGM_PDF_PATH = "DGM.PDF_PATH";
/** Sessionキー : 計表(CSV)ファイルパス */
private static final String SESSION_DGM_CSV_PATH = "DGM.CSV_PATH";
/** 確認画面タイトル */
private static final String SCREEN_TITLE = "Delta Map & Gamma Map";
/** 計表番号の3~5桁目を取得 */
private static final int LRA_TWO = 2;
/** FwMessageManagerオブジェクト */
private FwMessageManager messageManager;
/**
* FwMessageManagerを設定する
* @param messageManager 設定する値
*/
public void setMessageManager(FwMessageManager messageManager) {
this.messageManager = messageManager;
}
/** DgmFacadeの設定 */
private DgmFacade dgmFacade;
/**
* このアクションが使用するfacadeがDIされるように、セッタメソッドを用意
* @param dgmFacade オブジェクト
*/
public void setDgmFacade(DgmFacade dgmFacade) {
this.dgmFacade = dgmFacade;
}
/**
* 初期表示処理
* @param mapping アクションマッピング
* @param argForm アクションフォーム
* @param req リクエスト
* @param res レスポンス
* @throws Exception 例外が起こった時、スローする
* @return 転送先アクションフォワード
*/
public ActionForward start(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
throws Exception {
// 画面情報を取得する
DgmForm form = (DgmForm) argForm;
// Sessionに設定したデータをクリアする。
HttpSession session = req.getSession();
session.removeAttribute(SESSION_DGM_BEAN);
session.removeAttribute(SESSION_DGM_PDF_PATH);
session.removeAttribute(SESSION_DGM_CSV_PATH);
session.removeAttribute(SESSION_DGM_FORM_REMARK);
boolean accessFlg;
try {
// 初期表示チェック
accessFlg = dgmFacade.checkPrepare();
} catch (ObsApplicationException e) {
throw new ActionForwardException("fail", e);
}
// 初期表示データ設定
initializeForm(form, accessFlg);
return mapping.findForward("init");
}
/**
* 換算対象商品「SWAP SETS」選択時の処理
* @param mapping アクションマッピング
* @param argForm アクションフォーム
* @param req リクエスト
* @param res レスポンス
* @return 転送先アクションフォワード
* @throws Exception closingReport画面呼出処理時の例外
*/
public ActionForward refresh(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
throws Exception {
// 画面情報を取得する
DgmForm form = (DgmForm) argForm;
if (FrontFileConst.EQUIVALENT_SWAP_SETS.equals(form.getEquivalent())) {
form.setEquivalentItemsVisable(true);
form.setEquivalentItems(null);
} else if (FrontFileConst.EQUIVALENT_FUTURES.equals(form.getEquivalent())) {
form.setEquivalentItemsVisable(false);
}
return mapping.findForward("refresh");
}
/**
* Weight3設定
* @param mapping アクションマッピング
* @param argForm アクションフォーム
* @param req リクエスト
* @param res レスポンス
* @throws Exception 例外が起こった時、スローする
* @return 転送先アクションフォワード
*/
public ActionForward weight(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
throws Exception {
return mapping.findForward("weight");
}
/**
* 日締め計表出力
* @param mapping アクションマッピング
* @param argForm アクションフォーム
* @param req リクエスト
* @param res レスポンス
* @throws Exception 例外が起こった時、スローする
* @return 転送先アクションフォワード
*/
public ActionForward closingReport(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
throws Exception {
String reportId = null;
try {
// 計表フォーマット番号取得
reportId = dgmFacade.getReportId(null);
} catch (ObsApplicationException e) {
throw new ActionForwardException("fail", e);
}
req.setAttribute(ClosingReportAction.REQUEST_CLOSING_REPORT_ID, reportId);
req.setAttribute(ClosingReportAction.REQUEST_CLOSING_REPORT_CANCEL_URL, "/DgmCancel.do");
return mapping.findForward("closingReport");
}
/**
* 確認画面(共通)に遷移
* @param mapping アクションマッピング
* @param argForm アクションフォーム
* @param req リクエスト
* @param res レスポンス
* @throws Exception 例外が起こった時、スローする
* @return 転送先アクションフォワード
*/
public ActionForward closingCsv(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
throws Exception {
List messageList = new ArrayList();
messageList.add("get CSV files");
//OKボタン押下時に呼ばれるメソッド 削除処理
req.setAttribute(ConfirmAction.REQUEST_CONFIRM_TITLE, SCREEN_TITLE);
req.setAttribute(ConfirmAction.REQUEST_CONFIRM_OK_URL, "/DgmClosingCsvExec.do");
req.setAttribute(ConfirmAction.REQUEST_CONFIRM_NG_URL, "/DgmCancel.do");
req.setAttribute(ConfirmAction.REQUEST_CONFIRM_MESSAGEID, SCREEN_CONFIRM_MSGKEY);
req.setAttribute(ConfirmAction.REQUEST_CONFIRM_MESSAGELIST, messageList);
return mapping.findForward("common");
}
/**
* 日締め計表CSV出力の実行
* @param mapping アクションマッピング
* @param argForm アクションフォーム
* @param req リクエスト
* @param res レスポンス
* @throws Exception 例外が起こった時、スローする
* @return 転送先アクションフォワード
*/
public ActionForward closingCsvExec(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
throws Exception {
String reportId = null;
try {
// 計表フォーマット番号取得
reportId = StringUtils.substring(dgmFacade.getReportId(null), LRA_TWO);
} catch (ObsApplicationException e) {
throw new ActionForwardException("fail", e);
}
req.setAttribute(ClosingCsvAction.REQUEST_CLOSING_CSV_REPORT_ID, reportId);
req.setAttribute(ClosingCsvAction.REQUEST_CLOSING_CSV_CANCEL_URL, "/DgmCancel.do");
return mapping.findForward("closingCsv");
}
/**
* 対象取引選択
* @param mapping アクションマッピング
* @param argForm アクションフォーム
* @param req リクエスト
* @param res レスポンス
* @throws Exception 例外が起こった時、スローする
* @return 転送先アクションフォワード
*/
public ActionForward selectGroup(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
throws Exception {
// 画面情報の取得
DgmForm form = (DgmForm) argForm;
// 共通画面遷移先の選択
if (FrontFileConst.GROUP_BY_DEPARTMENT.equals(form.getGroupBy())) {
// 『DEPARTMENT』が選択されている場合
selectDept(req);
} else if (FrontFileConst.GROUP_BY_SECTION.equals(form.getGroupBy())) {
// 『SECTION』が選択されている場合
selectOtherGroup(req, CommonSelectConstants.TARGET_KEY_SECTION_FOR_REPORT, "/DgmSelectSectionOk.do");
} else if (FrontFileConst.GROUP_BY_UNIT.equals(form.getGroupBy())) {
// 『UNIT』が選択されている場合
selectOtherGroup(req, CommonSelectConstants.TARGET_KEY_UNIT_FOR_REPORT, "/DgmSelectUnitOk.do");
} else if (FrontFileConst.GROUP_BY_DEALER.equals(form.getGroupBy())) {
// 『DEALER』が選択されている場合
selectOtherGroup(req, CommonSelectConstants.TARGET_KEY_DEALER_FOR_REPORT, "/DgmSelectDealerOk.do");
} else if (FrontFileConst.GROUP_BY_PORTFOLIO.equals(form.getGroupBy())) {
// 『PORTFOLIO』が選択されている場合getGroupBy
selectOtherGroup(req, CommonSelectConstants.TARGET_KEY_PORTFOLIO_FOR_REPORT, "/DgmSelectPortfolioOk.do");
} else if (FrontFileConst.GROUP_BY_TRAN_SEARCH.equals(form.getGroupBy())) {
// TODO 未実装『TRAN.SEARCH』が選択されている場合、TransactionSearch画面へ遷移
transSearchForReport(req);
return mapping.findForward("transsearch");
} else if (FrontFileConst.GROUP_BY_ALL.equals(form.getGroupBy())) {
// 『ALL』が選択されている場合、共通画面に遷移しない
// 集計単位選択項目に『ALL』をセット
form.setGroupBySelected(FrontFileConst.GROUP_BY_ALL);
form.setGroupBySelectedList(null);
form.setGroupBySelectName(null);
return mapping.findForward("success");
}
// 共通リクエストパラメータのセット
req.setAttribute(CommonSelectConstants.SCREEN_ID, FrontFileConst.SCREEN_ID_DGM);
req.setAttribute(CommonSelectConstants.FORWARD_CANCEL, "/DgmCancel.do");
return mapping.findForward("common");
}
/**
* Dept画面への遷移
* @param req リクエスト
* @throws Exception
*/
private void selectDept(HttpServletRequest req) throws Exception {
// リクエストパラメータセット
Map paramMap = new HashMap();
String userId = null;
try {
// USER_IDエンティティ取得
userId = dgmFacade.dept();
} catch (ObsApplicationException e) {
throw new ActionForwardException("fail", e);
}
paramMap.put(DeptForReportSelectTargetImpl.PARAMS_KEY_USER_ID, userId);
// 共通画面遷移パラメータ設定
req.setAttribute(CommonSelectConstants.TARGET, CommonSelectConstants.TARGET_KEY_DEPT_FOR_REPORT);
req.setAttribute(CommonSelectConstants.FORWARD_OK, "/DgmSelectDeptOk.do");
req.setAttribute(CommonSelectConstants.MULTIPLE, Boolean.FALSE);
req.setAttribute(CommonSelectConstants.PARAMS, paramMap);
}
/**
* TransactionSearch画面への遷移
* @param req リクエスト
* @throws Exception 例外が起こった時、スローする
*/
public void transSearchForReport(HttpServletRequest req) throws Exception {
// ポートフォリオ選択画面(共通)に遷移
req.setAttribute(TransactionSearchAction.TRANSACTION_SEARCH_STRING_EXIT, "/DgmCancel.do");
}
/**
* Section, Unit, Dealer, Portfolio画面への遷移
* @param req リクエスト
* @param target タグ
* @param forward 転送先アクションフォワード
* @throws Exception
*/
private void selectOtherGroup(HttpServletRequest req, String target, String forward) throws Exception {
String userId = null;
Map paramMap = new HashMap();
Map addParamMap = new HashMap();
try {
// USER_IDエンティティ取得
userId = dgmFacade.otherGroup();
} catch (ObsApplicationException e) {
throw new ActionForwardException("fail", e);
}
// コンテキストから実行権限チェック結果取得
Boolean accessFlg = (Boolean) FwThreadContext.getAttribute(DgmFacade.ATTRIBUTE_DGM_ACCESS_FLG);
if (CommonSelectConstants.TARGET_KEY_SECTION_FOR_REPORT.equals(target)) {
// Sectionの場合のパラメータ
paramMap.put(SectionForReportSelectTargetImpl.PARAMS_KEY_USER_ID, userId);
addParamMap.put(SectionForReportSelectTargetImpl.PARAMS_KEY_ACCESS_PRIVILEGE_CHECK_FLG, accessFlg);
} else if (CommonSelectConstants.TARGET_KEY_UNIT_FOR_REPORT.equals(target)) {
// Unitの場合のパラメータ
paramMap.put(UnitForReportSelectTargetImpl.PARAMS_KEY_USER_ID, userId);
addParamMap.put(UnitForReportSelectTargetImpl.PARAMS_KEY_ACCESS_PRIVILEGE_CHECK_FLG, accessFlg);
} else if (CommonSelectConstants.TARGET_KEY_DEALER_FOR_REPORT.equals(target)) {
// Dealerの場合のパラメータ
paramMap.put(DealerForReportSelectTargetImpl.PARAMS_KEY_USER_ID, userId);
addParamMap.put(DealerForReportSelectTargetImpl.PARAMS_KEY_ACCESS_PRIVILEGE_CHECK_FLG, accessFlg);
} else if (CommonSelectConstants.TARGET_KEY_PORTFOLIO_FOR_REPORT.equals(target)) {
// Portfolioの場合のパラメータ
paramMap.put(PortfolioForReportSelectTargetImpl.PARAMS_KEY_USER_ID, userId);
addParamMap.put(PortfolioForReportSelectTargetImpl.PARAMS_KEY_ACCESS_PRIVILEGE_CHECK_FLG, accessFlg);
}
// 共通画面遷移パラメータ設定
req.setAttribute(CommonSelectConstants.TARGET, target);
req.setAttribute(CommonSelectConstants.FORWARD_OK, forward);
req.setAttribute(CommonSelectConstants.MULTIPLE, Boolean.TRUE);
req.setAttribute(CommonSelectConstants.PARAMS, paramMap);
req.setAttribute(CommonSelectConstants.ADDPARAMS, addParamMap);
}
/**
* 部署選択後の処理。
* @param mapping アクションマッピング
* @param argForm アクションフォーム
* @param req リクエスト
* @param res レスポンス
* @throws Exception 例外が起こった時、スローする
* @return 転送先アクションフォワード
*/
public ActionForward deptForReportSet(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
throws Exception {
// 画面情報の取得
DgmForm form = (DgmForm) argForm;
// リクエストから選択した組織情報の取得
List selectedList = (List) req.getAttribute(CommonSelectConstants.LIST_SELECTED);
// 単一選択
if (selectedList != null && !selectedList.isEmpty()) {
Object[] objects = (Object[]) selectedList.get(0);
form.setGroupBySelectName(((Dept) objects[0]).getFullName());
// Dept選択
form.setGroupBySelected(FrontFileConst.GROUP_BY_DEPARTMENT);
form.setGroupBySelectedList(selectedList);
}
return mapping.findForward("success");
}
/**
* 課班選択後の処理。
* @param mapping アクションマッピング
* @param argForm アクションフォーム
* @param req リクエスト
* @param res レスポンス
* @throws Exception 例外が起こった時、スローする
* @return 転送先アクションフォワード
*/
public ActionForward sectionForReportSet(ActionMapping mapping, ActionForm argForm, HttpServletRequest req,
HttpServletResponse res) throws Exception {
// 画面情報の取得
DgmForm form = (DgmForm) argForm;
// リクエストから選択した組織情報の取得
List selectedList = (List) req.getAttribute(CommonSelectConstants.LIST_SELECTED);
if (selectedList != null && !selectedList.isEmpty()) {
if (selectedList.size() > 1) {
// 複数選択の場合
form.setGroupBySelectName(FrontFileConst.MULTI_SELECT);
} else {
// 単一選択の場合
Object[] objects = (Object[]) selectedList.get(0);
form.setGroupBySelectName(((Section) objects[0]).getFullName());
}
// Section選択
form.setGroupBySelected(FrontFileConst.GROUP_BY_SECTION);
form.setGroupBySelectedList(selectedList);
}
return mapping.findForward("success");
}
/**
* ユニット選択後の処理。
* @param mapping アクションマッピング
* @param argForm アクションフォーム
* @param req リクエスト
* @param res レスポンス
* @throws Exception 例外が起こった時、スローする
* @return 転送先アクションフォワード
*/
public ActionForward unitForReportSet(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
throws Exception {
// 画面情報の取得
DgmForm form = (DgmForm) argForm;
// リクエストから選択した組織情報の取得
List selectedList = (List) req.getAttribute(CommonSelectConstants.LIST_SELECTED);
if (selectedList != null && !selectedList.isEmpty()) {
if (selectedList.size() > 1) {
form.setGroupBySelectName(FrontFileConst.MULTI_SELECT);
} else {
Object[] objects = (Object[]) selectedList.get(0);
form.setGroupBySelectName(((Unit) objects[1]).getFullName());
}
// Unit選択
form.setGroupBySelected(FrontFileConst.GROUP_BY_UNIT);
form.setGroupBySelectedList(selectedList);
}
return mapping.findForward("success");
}
/**
* ディーラー選択後の処理。
* @param mapping アクションマッピング
* @param argForm アクションフォーム
* @param req リクエスト
* @param res レスポンス
* @throws Exception 例外が起こった時、スローする
* @return 転送先アクションフォワード
*/
public ActionForward dealerForReportSet(ActionMapping mapping, ActionForm argForm, HttpServletRequest req,
HttpServletResponse res) throws Exception {
// 画面情報の取得
DgmForm form = (DgmForm) argForm;
// リクエストから選択した組織情報の取得
List selectedList = (List) req.getAttribute(CommonSelectConstants.LIST_SELECTED);
if (selectedList != null && !selectedList.isEmpty()) {
if (selectedList.size() > 1) {
form.setGroupBySelectName(FrontFileConst.MULTI_SELECT);
} else {
form.setGroupBySelectName(((UserId) selectedList.get(0)).getFullName());
}
// Dealer選択
form.setGroupBySelected(FrontFileConst.GROUP_BY_DEALER);
form.setGroupBySelectedList(selectedList);
}
return mapping.findForward("success");
}
/**
* Portfolio選択画面よりの戻り処理
* @param mapping アクションマッピング
* @param argForm アクションフォーム
* @param req リクエスト
* @param res レスポンス
* @throws Exception 例外が起こった時、スローする
* @return 転送先アクションフォワード
*/
public ActionForward portfolioForReportSet(ActionMapping mapping, ActionForm argForm, HttpServletRequest req,
HttpServletResponse res) throws Exception {
// 画面情報の取得
DgmForm form = (DgmForm) argForm;
// リクエストから選択した組織情報の取得
List selectedList = (List) req.getAttribute(CommonSelectConstants.LIST_SELECTED);
if (selectedList != null && !selectedList.isEmpty()) {
if (selectedList.size() > 1) {
form.setGroupBySelectName(FrontFileConst.MULTI_SELECT);
} else {
form.setGroupBySelectName(((Portfolio) selectedList.get(0)).getFullName());
}
// Portfolio選択
form.setGroupBySelected(FrontFileConst.GROUP_BY_PORTFOLIO);
form.setGroupBySelectedList(selectedList);
}
return mapping.findForward("success");
}
/**
* 対象通貨画面への遷移。
* @param mapping アクションマッピング
* @param argForm アクションフォーム
* @param req リクエスト
* @param res レスポンス
* @throws Exception 例外が起こった時、スローする
* @return 転送先アクションフォワード
*/
public ActionForward currency(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
throws Exception {
// 通貨情報選択画面(共通)に遷移
req.setAttribute(CommonSelectConstants.TARGET, CommonSelectConstants.TARGET_KEY_CURRENCY);
req.setAttribute(CommonSelectConstants.SCREEN_ID, FrontFileConst.SCREEN_ID_DGM);
req.setAttribute(CommonSelectConstants.FORWARD_OK, "/DgmCurrencyOk.do");
req.setAttribute(CommonSelectConstants.FORWARD_CANCEL, "/DgmCancel.do");
req.setAttribute(CommonSelectConstants.FORWARD_ALL, "/DgmSelectCurrencyAll.do");
req.setAttribute(CommonSelectConstants.MULTIPLE, new Boolean(false));
return mapping.findForward("common");
}
/**
* 対象通貨選択後の処理。(OKボタン押下時)
* @param mapping アクションマッピング
* @param argForm アクションフォーム
* @param req リクエスト
* @param res レスポンス
* @throws Exception 例外が起こった時、スローする
* @return 転送先アクションフォワード
*/
public ActionForward currencyReturn(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
throws Exception {
// 画面情報の取得
DgmForm form = (DgmForm) argForm;
// リクエストから選択した対象通貨の取得
List currencyList = (List) req.getAttribute(CommonSelectConstants.LIST_SELECTED);
StringBuffer stringBuffer = new StringBuffer();
if (currencyList != null) {
// NO DATAの場合はnull
for (Iterator itr = currencyList.iterator(); itr.hasNext();) {
if (stringBuffer.length() > 0) {
stringBuffer.append(" ");
}
stringBuffer.append(((Currency) itr.next()).getShortName());
}
}
// formのプロジェクトの属性は設ける
form.setCurrency(stringBuffer.toString());
return mapping.findForward("success");
}
/**
* 対象通貨選択後の処理。(ALLボタン押下時)
* @param mapping アクションマッピング
* @param argForm アクションフォーム
* @param req リクエスト
* @param res レスポンス
* @throws Exception 例外が起こった時、スローする
* @return 転送先アクションフォワード
*/
public ActionForward crrencyAll(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
throws Exception {
// 画面情報の取得
DgmForm form = (DgmForm) argForm;
// ALLが選択された場合、「ALL」を表示
form.setCurrency(FrontFileConst.CURRENCY_ALL);
return mapping.findForward("success");
}
/**
* 対象期間
* @param mapping アクションマッピング
* @param argForm アクションフォーム
* @param req リクエスト
* @param res レスポンス
* @throws Exception 例外が起こった時、スローする
* @return 転送先アクションフォワード
*/
public ActionForward term(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
throws Exception {
return mapping.findForward("success");
}
/**
* 計表作成確認画面への遷移
* @param mapping アクションマッピング
* @param argForm アクションフォーム
* @param req リクエスト
* @param res レスポンス
* @return 転送先アクションフォワード
* @throws Exception 計表作成確認画面呼出処理時の例外
*/
public ActionForward create(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
throws Exception {
// 画面情報の取得
DgmForm form = (DgmForm) argForm;
// DgmBean作成
DgmBean dgmBean = new DgmBean();
// 画面項目をDgmBeanへセット
BeanUtils.copyProperties(dgmBean, form);
// 通貨を選択
String[] equivalentItems = req.getParameterValues("equivalentItems");
if(equivalentItems == null)
{
equivalentItems = new String[0];
dgmBean.setEquivalentItems(equivalentItems);
}
else
{
dgmBean.setEquivalentItems(equivalentItems);
}
dgmBean.setEquivalentItems(equivalentItems);
dgmBean.setFreeGridList((List) req.getSession().getAttribute(
DgmFreeTermScheduleAction.SESSION_DGM_FREE_TERM_SCHEDULE_FREE_GRID_DATE_LIST));
dgmBean.setTermId((String) req.getSession().getAttribute(DgmFreeTermScheduleAction.SESSION_DGM_FREE_TERM_SCHEDULE_TERM_ID));
dgmBean.setRemark((String) req.getSession().getAttribute(DgmFreeTermScheduleAction.SESSION_DGM_FREE_TERM_SCHEDULE_REMARK));
dgmBean.setTermIdSel((String) req.getSession().getAttribute(
DgmFreeTermScheduleAction.SESSION_DGM_FREE_TERM_SCHEDULE_TERM_ID_SEL));
try {
// 計表作成前処理(チェックと画面項目以外の項目取得)
dgmBean = dgmFacade.prepareCreate(dgmBean);
} catch (ObsApplicationException e) {
throw new ActionForwardException("fail", e);
}
// 確認画面パラメータセット
List messageList = new ArrayList();
messageList.add("make the report");
req.setAttribute(ConfirmAction.REQUEST_CONFIRM_TITLE, SCREEN_TITLE);
req.setAttribute(ConfirmAction.REQUEST_CONFIRM_MESSAGEID, SCREEN_CONFIRM_MSGKEY);
req.setAttribute(ConfirmAction.REQUEST_CONFIRM_MESSAGELIST, messageList);
req.setAttribute(ConfirmAction.REQUEST_CONFIRM_OK_URL, "/DgmCreateExec.do");
req.setAttribute(ConfirmAction.REQUEST_CONFIRM_NG_URL, "/DgmCancel.do");
// Beanをsessionにセットする
req.getSession().setAttribute(SESSION_DGM_BEAN, dgmBean);
if (FrontFileConst.TERM_FREE.equals(dgmBean.getTerm())) {
messageManager.addMessage(new FwMessage("I03001", new String[] { "SWAP EQ.", "FREE TERM" }));
}
return mapping.findForward("common");
}
/**
* 計表作成
* @param mapping アクションマッピング
* @param argForm アクションフォーム
* @param req リクエスト
* @param res レスポンス
* @return 転送先アクションフォワード
* @throws Exception 計表作成時の例外
*/
public ActionForward createFile(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
throws Exception {
// 画面情報取得
DgmForm form = (DgmForm) argForm;
// DgmBean取得
DgmBean dgmBean = (DgmBean) req.getSession().getAttribute(SESSION_DGM_BEAN);
// TP1サーバによる計表作成処理
String[] filePath = null;
try {
// TP1サーバによる計表作成処理
filePath = dgmFacade.create(dgmBean);
} catch (ObsApplicationException e) {
throw new ActionForwardException("fail", e);
}
// グラフデータのファールパス
String[] graphFile = new String[2];
graphFile[0] = filePath[FrontFileConst.FILE_PATH_GRAPH1];
graphFile[1] = filePath[FrontFileConst.FILE_PATH_GRAPH2];
dgmBean.setGraphFile(graphFile);
// グラフデータのファールパス
DgmDeltaMapGraphBean dgmDeltaMapGraphBean = dgmBean.getDgmDeltaMapGraphBean();
DgmGammaMapGraphBean dgmGammaMapGraphBean = dgmBean.getDgmGammaMapGraphBean();
String[] currencyDelta = dgmDeltaMapGraphBean.getCurrencyList();
String[] currencyGamma = dgmGammaMapGraphBean.getCurrencyList();
if (currencyDelta.length == currencyGamma.length) {
int currencyCountDelta = dgmDeltaMapGraphBean.getCurrencyCount();
int currencyCountGamma = dgmGammaMapGraphBean.getCurrencyCount();
if (currencyCountDelta == currencyCountGamma) {
LabelValueBean[] labelValueBeanGraphCurrency = new LabelValueBean[currencyCountGamma];
for (int i = 0; i
List graphCurrencyList = Arrays.asList(labelValueBeanGraphCurrency);
form.setGraphCurrencyList(graphCurrencyList);
form.setGraphCurrency(currencyDelta[0]);
} else {
form.setGraphCurrencyList(null);
}
}
// 計表ファイルパスをSessionに保存
HttpSession session = req.getSession();
session.setAttribute(SESSION_DGM_PDF_PATH, filePath[FrontFileConst.FILE_PATH_PDF]);
session.setAttribute(SESSION_DGM_CSV_PATH, filePath[FrontFileConst.FILE_PATH_CSV]);
// 計表作成済みフラグセット
form.setCreateExecFlg(true);
form.setEquivalentItems(dgmBean.getEquivalentItems());
return mapping.findForward("success");
}
/**
* PDF作成
* @param mapping アクションマッピング
* @param argForm アクションフォーム
* @param req リクエスト
* @param res レスポンス
* @return 転送先アクションフォワード
* @throws Exception 計表作成時の例外
*/
public ActionForward createPdf(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
throws Exception {
// 計表(PDF)ファイルパスをSessionから取得
String filePath = (String) req.getSession().getAttribute(SESSION_DGM_PDF_PATH);
try {
// PDFデータの生成を行う
PdfData pdf = dgmFacade.createPdf(filePath);
// 生成されたPFDデータをリクエストコンテキストに保存
req.setAttribute(PdfPrintAction.PDF_DATA, pdf);
} catch (ObsApplicationException e) {
// なんらかの例外が発生した場合のページ遷移指定
throw new ActionForwardException("fail", e);
}
return mapping.findForward("success");
}
/**
* CSV作成
* @param mapping アクションマッピング
* @param argForm アクションフォーム
* @param req リクエスト
* @param res レスポンス
* @return 転送先アクションフォワード
* @throws Exception 計表作成時の例外
*/
public ActionForward createCsv(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
throws Exception {
// 計表(CSV)ファイルパスをSessionから取得
String filePath = (String) req.getSession().getAttribute(SESSION_DGM_CSV_PATH);
req.setAttribute(RiskReportCsvAction.REQUEST_CSV_PATH, filePath);
return mapping.findForward("success");
}
/**
* グラフ表示(Delta Map)
* @param mapping アクションマッピング
* @param argForm アクションフォーム
* @param req リクエスト
* @param res レスポンス
* @throws Exception 例外が起こった時、スローする
* @return 転送先アクションフォワード
*/
public ActionForward deltaDisplay(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
throws Exception {
// 画面情報の取得
DgmForm form = (DgmForm) argForm;
// Sessionに設定したデータをクリアする。
HttpSession session = req.getSession();
// DgmBean取得
DgmBean dgmBean = (DgmBean) session.getAttribute(SESSION_DGM_BEAN);
DgmDeltaMapGraphBean dgmDeltaMapGraphBean = dgmBean.getDgmDeltaMapGraphBean();
dgmDeltaMapGraphBean.setCurrency(form.getGraphCurrency());
dgmDeltaMapGraphBean.setEquivalent(dgmBean.getEquivalent());
try {
// Deltaグラフを作成する
dgmFacade.deltaDisplay(dgmBean);
} catch (ObsApplicationException bizex) {
throw new ActionForwardException("fail", bizex);
}
session.setAttribute(SESSION_DGM_DELTA_GRAPH_BEAN, dgmBean.getDgmDeltaMapGraphBean());
return mapping.findForward("success");
}
/**
* グラフ表示(Gamma Map)
* @param mapping アクションマッピング
* @param argForm アクションフォーム
* @param req リクエスト
* @param res レスポンス
* @throws Exception 例外が起こった時、スローする
* @return 転送先アクションフォワード
*/
public ActionForward gammaDisplay(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
throws Exception {
// 画面情報の取得
DgmForm form = (DgmForm) argForm;
// Sessionに設定したデータをクリアする。
HttpSession session = req.getSession();
// DgmBean取得
DgmBean dgmBean = (DgmBean) session.getAttribute(SESSION_DGM_BEAN);
DgmGammaMapGraphBean dgmGammaMapGraphBean = dgmBean.getDgmGammaMapGraphBean();
dgmGammaMapGraphBean.setCurrency(form.getGraphCurrency());
dgmGammaMapGraphBean.setEquivalent(dgmBean.getEquivalent());
try {
// Gammaグラフを作成する
dgmFacade.gammaDisplay(dgmBean);
} catch (ObsApplicationException bizex) {
throw new ActionForwardException("fail", bizex);
}
req.getSession().setAttribute(SESSION_DGM_GAMMA_GRAPH_BEAN, dgmBean.getDgmGammaMapGraphBean());
return mapping.findForward("success");
}
/**
* グラフ出力(Delta Map)
* @param mapping アクションマッピング
* @param argForm アクションフォーム
* @param req リクエスト
* @param res レスポンス
* @throws Exception 例外が起こった時、スローする
* @return 転送先アクションフォワード
*/
public ActionForward deltaExtract(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
throws Exception {
// 画面情報の取得
DgmForm form = (DgmForm) argForm;
// DgmBean取得する
DgmBean dgmBean = (DgmBean) req.getSession().getAttribute(SESSION_DGM_BEAN);
DgmDeltaMapGraphBean dgmDeltaMapGraphBean = dgmBean.getDgmDeltaMapGraphBean();
dgmDeltaMapGraphBean.setCurrency(form.getGraphCurrency());
dgmDeltaMapGraphBean.setEquivalent(dgmBean.getEquivalent());
try {
// DeltaのCSVを作成する
dgmFacade.deltaExtract(dgmBean, res);
} catch (ObsApplicationException bizex) {
throw new ActionForwardException("fail", bizex);
}
return mapping.findForward("success");
}
/**
* グラフ出力(Gamma Map)
* @param mapping アクションマッピング
* @param argForm アクションフォーム
* @param req リクエスト
* @param res レスポンス
* @throws Exception 例外が起こった時、スローする
* @return 転送先アクションフォワード
*/
public ActionForward gammaExtract(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
throws Exception {
// 画面情報の取得
DgmForm form = (DgmForm) argForm;
// DgmBean取得する
DgmBean dgmBean = (DgmBean) req.getSession().getAttribute(SESSION_DGM_BEAN);
DgmGammaMapGraphBean dgmGammaMapGraphBean = dgmBean.getDgmGammaMapGraphBean();
dgmGammaMapGraphBean.setCurrency(form.getGraphCurrency());
dgmGammaMapGraphBean.setEquivalent(dgmBean.getEquivalent());
try {
// GammaのCSVを作成する
dgmFacade.gammaExtract(dgmBean, res);
} catch (ObsApplicationException bizex) {
throw new ActionForwardException("fail", bizex);
}
return mapping.findForward("success");
}
/**
* 共通画面でCANCELボタン押下時に呼ばれるメソッド。
* @param mapping アクションマッピング
* @param argForm アクションフォーム
* @param req リクエスト
* @param res レスポンス
* @return 転送先アクションフォワード
* @throws Exception 例外が起こった時、スローする
*/
public ActionForward commonCancel(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
throws Exception {
// 画面情報の取得
DgmForm form = (DgmForm) argForm;
// DgmBean取得
DgmBean dgmBean = (DgmBean) req.getSession().getAttribute(SESSION_DGM_BEAN);
form.setEquivalentItems(dgmBean.getEquivalentItems());
return mapping.findForward("success");
}
/**
* 画面終了
* @param mapping アクションマッピング
* @param argForm アクションフォーム
* @param req リクエスト
* @param res レスポンス
* @throws Exception 例外が起こった時、スローする
* @return 転送先アクションフォワード
*/
public ActionForward exit(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
throws Exception {
try {
// 終了処理
dgmFacade.exit();
} catch (ObsApplicationException bizex) {
throw new ActionForwardException("fail", bizex);
}
// Sessionに設定したデータをクリアする。
HttpSession session = req.getSession();
session.removeAttribute(DGM_FORM);
session.removeAttribute(SESSION_DGM_BEAN);
session.removeAttribute(SESSION_DGM_PDF_PATH);
session.removeAttribute(SESSION_DGM_CSV_PATH);
session.removeAttribute(SESSION_DGM_FORM_REMARK);
session.removeAttribute(SESSION_DGM_DELTA_GRAPH_BEAN);
session.removeAttribute(SESSION_DGM_GAMMA_GRAPH_BEAN);
session.removeAttribute(DgmFreeTermScheduleAction.SESSION_DGM_FREE_TERM_SCHEDULE_FREE_GRID_DATE_LIST);
session.removeAttribute(DgmFreeTermScheduleAction.SESSION_DGM_FREE_TERM_SCHEDULE_TERM_ID);
session.removeAttribute(DgmFreeTermScheduleAction.SESSION_DGM_FREE_TERM_SCHEDULE_REMARK);
session.removeAttribute(DgmFreeTermScheduleAction.SESSION_DGM_FREE_TERM_SCHEDULE_TERM_ID_SEL);
return mapping.findForward("success");
}
/**
* 初期表示用Formを作成する
* @param form
*/
private void initializeForm(DgmForm form, boolean accessFlg) {
// 集計単位プルダウン
// 実行権限有無により、初期値を設定
if (accessFlg) {
form.setGroupByList(RiskReportConst.GROUP_BY_LIST_AUTH_NO_HEDGE_PORTFOLIO);
form.setGroupBy(FrontFileConst.GROUP_BY_ALL);
form.setGroupBySelected(FrontFileConst.GROUP_BY_ALL);
} else {
form.setGroupByList(RiskReportConst.GROUP_BY_LIST_NOTAUTH_NO_HEDGE_PORTFOLIO);
form.setGroupBy(FrontFileConst.GROUP_BY_SECTION);
// リクエストから選択した組織情報の取得
List sectionList = (List) FwThreadContext.getAttribute(DgmFacade.COMMON_SELECT_SECTION_LIST);
if (sectionList != null && !sectionList.isEmpty()) {
// 単一選択の場合
Object[] objects = (Object[]) sectionList.get(0);
form.setGroupBySelectName(((Section) objects[0]).getFullName());
}
// Section選択
form.setGroupBySelected(FrontFileConst.GROUP_BY_SECTION);
form.setGroupBySelectedList(sectionList);
}
// 初期値セット
form.setGroupBySelectName(null);
form.setGroupBySelectedList(null);
form.setCurrency(FrontFileConst.CURRENCY_ALL);
form.setCurrencyInccyFlg(null);
form.setEuroTotal(FrontFileConst.EURO_TOTAL_DETAILS);
form.setEuroExchange(FrontFileConst.EURO_EXCHANGE_NO);
form.setPosition(FrontFileConst.POSITION_REAL_POSITION);
form.setMarketInfo(FrontFileConst.MARKET_MASTER_MAIN);
form.setModel(FrontFileConst.MODEL_MB);
form.setTerm(FrontFileConst.TERM_IMM);
form.setEquivalent(FrontFileConst.EQUIVALENT_FUTURES);
form.setEquivalentItems(null);
form.setFixFloat(FrontFileConst.FIX_FLOAT_ALL);
form.setCreateExecFlg(false);
form.setMarketErrorFlg(false);
form.setMarketErrorMessage(null);
}
}
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/3787/showart_65428.html |
|