/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：KKW00150SFLogic
*   ソースファイル名：KKW00150SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年08月10日
*＜機能概要＞
*   電波障害案件番号情報照会画面 Viewロジックです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/08/10   FJ）        新規作成
*
**********************************************************************/

package eo.web.webview.KKW00150SF;

import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;

import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCMessageCache;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.mapping.KKSV0253_KKSV0253OPDBMapper;

public class KKW00150SFLogic extends JCCWebBusinessLogic {

	/**/
	public boolean init() throws Exception{

		// 画面情報を取得し、サービスフォームBeanに設定
		HashMap<String, Object> parameterMap = JCCWebCommon.getScreenInfo( this );
		
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		
		if(parameterMap != null)
		{
			// 遷移元から検索キーを取得
			String ankenNo = (String)parameterMap.get("電波障害案件番号");
			
			if(ankenNo != null && !"".equals(ankenNo))
			{
				serviceBean.sendMessageString(KKW00150SFConst.DMPS_ANKENNO, X31CWebConst.DATABEAN_SET_VALUE, ankenNo);
				if(!callService(serviceBean))
				{
					return false;
				}
				
			}
			else
			{
				serviceBean.sendMessageString(KKW00150SFConst.SHK_PAYPRCAMNT, X31CWebConst.DATABEAN_SET_VALUE, "0");
				serviceBean.sendMessageString(KKW00150SFConst.GTGK_PAYPRCAMNT, X31CWebConst.DATABEAN_SET_VALUE, "0");
			}
			
		}
		else
		{
			serviceBean.sendMessageString(KKW00150SFConst.SHK_PAYPRCAMNT, X31CWebConst.DATABEAN_SET_VALUE, "0");
			serviceBean.sendMessageString(KKW00150SFConst.GTGK_PAYPRCAMNT, X31CWebConst.DATABEAN_SET_VALUE, "0");
		}
		 
		// 遷移先画面ID取得し、設定する。
		commoninfoBean.sendMessageString( CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW00150);
		commoninfoBean.sendMessageString( CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW00150);
		return true;
	}
	
	/**
	 * 電波障害案件情報取得処理を行います。
	 * <br>
	 * @param serviceBean 設定する画面のBean
	 * @return boolean サービス呼び出し結果
	 */
	private boolean callService(X31SDataBeanAccess serviceBean)throws Exception
	{
		
		// マッピングクラスに渡すために配列にする
		X31SDataBeanAccess[] paramBean = {serviceBean};
		
		// 検索処理のユースケースID格納用マップを生成
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0253");
		
		// データBeanとBPをマッピングするインスタンスを生成
		KKSV0253_KKSV0253OPDBMapper mapper = new KKSV0253_KKSV0253OPDBMapper();
		
		// 共通情報の設定
		HashMap<String, HashMap<String, Object>> inputMap = new HashMap<String, HashMap<String, Object>>();
		HashMap<String, HashMap<String, Object>> outputMap = new HashMap<String, HashMap<String, Object>>();
		
		mapper.setKKSV0253SC(paramBean, inputMap, "1");
		mapper.setKKSV025302SC(paramBean, inputMap, "1");
		
		
		
		// サービスの呼び出し
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return false;
		}
		
		// メッセージ定義ファイルを読み込む
		JCCMessageCache.setMessageCache();
		
		// サービス結果の転記
		mapper.getKKSV0253SC(paramBean, outputMap);
		mapper.getKKSV025302SC(paramBean, outputMap);

		return true;
	}

}
