/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：KKW12801SFLogic
*   ソースファイル名：KKW12801SFLogic.java
*   作成者          ：富士通
*   日付            ：2012年06月13日
*＜機能概要＞
*   WEBデータ集計画面のビューロジックです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/04/14   FJ）高川    新規作成
*   v4.00.00    2013/02/26   FJ）谷口    【課題-0554】ＷＥＢ集計画面の表示対応
*
**********************************************************************/
package eo.web.webview.KKW12801SF;

import static eo.web.webview.common.JKKKeiNewCmnLogicUtil.KKSV0584;
import static eo.web.webview.common.JKKKeiNewCmnLogicUtil.KKSV0585;

import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.constant.JPCModelConstant;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKWebCommon;
import eo.web.webview.common.JZMWebCommon;
import eo.web.webview.mapping.KKSV0584_KKSV0584OPDBMapper;
import eo.web.webview.mapping.KKSV0585_KKSV0585OPDBMapper;


/**
 * WEBデータ集計を行います。
 * <BR>
 * @author 富士通
 */
public class KKW12801SFLogic extends JCCWebBusinessLogic
{
	/** ファイル削除年月日  */
	private static final String DELYMD = "20991231";
	
	/**
	 * 初期表示処理です。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception エラーが発生した場合
	 */
	public boolean init() throws Exception
	{
		JKKWebCommon.setSelfScreenID(this);
		
		// サービスフォームBean
		X31SDataBeanAccess dataBean = getServiceFormBean();

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess[] paramBean = {dataBean};

		// ユースケースID格納用マップ
		HashMap<String, Object> paramMap = new HashMap<String, Object>();;

		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// ユースケースIDの設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, KKSV0584);
		
		// マッピングクラスのインスタンスを生成
		KKSV0584_KKSV0584OPDBMapper mapper = new KKSV0584_KKSV0584OPDBMapper();
		mapper.setKKSV058401SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		
		// サービスの呼び出し
		invokeService(paramMap, dataMap, outputMap);
		
		// サービス実行結果の取得
		mapper.getKKSV058401SC(paramBean, outputMap);
		
		// ディレイド処理依頼ステータスの初期化
		X31SDataBeanAccessArray beanList = dataBean.getDataBeanArray(KKW12801SFConst.DLYD_TRN_REQ_INFO);
		if (0 > beanList.getCount() - 1)
		{
			X31SDataBeanAccess subbean = beanList.addDataBean();
			subbean.sendMessageString(KKW12801SFConst.DLYD_TRN_REQ_STAT_02, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		
		return true;
	}
	
	/**
	 * 集計&CSV作成ボタン処理を行います。
	 * <br>
	 * @return 処理結果 
	 * @throws Exception 予期せぬエラー
	 */
	@SuppressWarnings("unchecked")
	public boolean shukCsvCreate()throws Exception
	{
		JKKWebCommon.setSelfScreenID(this);

		// 共有フォームBean
		X31SDataBeanAccess commonBean = getCommonInfoBean();

		// サービスフォームBean
		X31SDataBeanAccess dataBean = getServiceFormBean();

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess[] paramBean = {dataBean};

		// ユースケースID格納用マップ
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// ユースケースIDの設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, KKSV0585);
		
		// 取込開始日付の設定
		String trkmStaYmd = JCCWebCommon.getOpeDate(this, null);
		dataBean.sendMessageString(KKW12801SFConst.TRKM_STAYMD, X31CWebConst.DATABEAN_SET_VALUE, trkmStaYmd);
		
		// 集計対象件数の初期化
		X31SDataBeanAccess subbean = dataBean.getDataBeanArray(KKW12801SFConst.WEBMK_SRLT_INFO).getDataBean(0);
		subbean.sendMessageString(KKW12801SFConst.SHUK_TG_CNT_01, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// マッピングクラスのインスタンスを生成
		KKSV0585_KKSV0585OPDBMapper mapper = new KKSV0585_KKSV0585OPDBMapper();
		mapper.setKKSV058501SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setKKSV058502SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setKKSV058503SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_3);
		mapper.setKKSV058504SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		
		HashMap<String, Object> inDataMap = (HashMap<String, Object>)dataMap.get("KKSV058503SC");
		inDataMap.put("dlyd_trn_jssi_unyo_dtm", JCCWebCommon.getOpeDateTimeStamp(this, null));
		
		inDataMap = (HashMap<String, Object>)dataMap.get("KKSV058504SC");
		inDataMap.put("trn_req_dtm", JCCWebCommon.getOpeDateTimeStamp(this, null).substring(0, 12));
		inDataMap.put("file_del_ymd", DELYMD);
		inDataMap.put("trn_iraisha_opeacnt", JZMWebCommon.getSendMessageString(commonBean, CommonInfoCFConst.USER_ID));
		
		// サービスの呼び出し
		invokeService(paramMap, dataMap, outputMap);
		
		// サービス実行結果の取得
		mapper.getKKSV058501SC(paramBean, outputMap);
		mapper.getKKSV058502SC(paramBean, outputMap);
		mapper.getKKSV058503SC(paramBean, outputMap);
		
		return true;
	}
}
