/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：マンション検索１(府県)
*   ソースファイル名：FUW00131SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年07月20日
*＜機能概要＞
*  マンション検索１（府県）のビューロジッククラスです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/07/20   FJ）大塚    新規作成
*
**********************************************************************/
package eo.web.webview.FUW00131SF;

import static com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG;

import java.util.HashMap;
import java.util.Map;

import com.fujitsu.futurity.web.x00.JCCBusinessException;
import com.fujitsu.futurity.web.x00.JCCWebServiceException;
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.JFUStrConst;
import eo.common.constant.JPCModelConstant;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JFUScreenConst;
import eo.web.webview.common.JFUWebCommon;
import eo.web.webview.mapping.FUSV0140_FUSV0140OPDBMapper;

/**
 * エリア検索のビューロジッククラスです。<p>
 * <BR>
 * @ author 富士通
 */
@SuppressWarnings("serial")
public class FUW00131SFLogic extends JCCWebBusinessLogic
{
	/** ユースケースID（FUSV0140） */
	private static final String USECASE_ID_FUSV0140 = "FUSV0140";

	// -----ST2-2012-0001440 2012/08/08 h.iwamoto 戻り遷移方法修正 START-----
	/** マンション情報.検索パターン：1 */
	private static final String MANSION_SEARCH_PCD = "1";
	
	/** マンション情報.検索パターン：2 */
	private static final String MANSION_SEARCH_NOT_PCD = "2";
	// -----ST2-2012-0001440 2012/08/08 h.iwamoto 戻り遷移方法修正 END-----
	
	/**
	 * 初期表示処理
	 * @throws Exception 
	 * 
	 * @ return
	 */
	public boolean init() throws Exception
	{
		// 共通クリア処理
		JFUWebCommon.comClear(this);
		
		// サービスフォームBean取得
		X31SDataBeanAccess serviceInfoBean = getServiceFormBean();

		// コード種別をセット
		serviceInfoBean.sendMessageString(FUW00131SFConst.CODE_SBT, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD_SBT_CD00691);
		// 基準日をセット
		serviceInfoBean.sendMessageString(FUW00131SFConst.STDARDYMD, X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon.getOpeDate(this,null));
		
		// サービスIDをparamにセット
		Map<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_FUSV0140);

		// DataBean-BPマッピング
		FUSV0140_FUSV0140OPDBMapper mapper = new FUSV0140_FUSV0140OPDBMapper();

		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		X31SDataBeanAccess[] paramBean = { serviceInfoBean };

		// 機能コード「1」を設定
		mapper.setMskmUcwkMap(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);

		try
		{
			// サービス呼び出し
			invokeService(paramMap, inputMap, outputMap);
		}
		catch (JCCWebServiceException se)
		{
			// システムエラー
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}

		X31SDataBeanAccess[] paramBeanOut = { serviceInfoBean };

		// サービスからの戻りデータをBeanにセット(下りマッピング)
		mapper.getMskmUcwkMap(paramBeanOut, outputMap);

		// 申込受付実績登録部品実行
		JFUWebCommon.executeWebMskmUkJskAdd(this);

		return true;
	}

	/**
	 * 次へボタン押下時（郵便番号から検索）
	 * 
	 * @return 処理結果
	 * @throws Exception 例外
	 */
	public boolean postNext() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess serviceformBean = getServiceFormBean();

		// 郵便番号を取得
		String zipFront = serviceformBean.sendMessageString(FUW00131SFConst.ZIPFRONT, X31CWebConst.DATABEAN_GET_VALUE);
		String zipRear = serviceformBean.sendMessageString(FUW00131SFConst.ZIPREAR, X31CWebConst.DATABEAN_GET_VALUE);

		// 共有フォームBean取得
		X31SDataBeanAccess bean = getCommonInfoBean();
		// WEB新規情報
		X31SDataBeanAccessArray web_new_info = bean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		X31SDataBeanAccess web_new_infobean = web_new_info.getDataBean(0);

		// WEB新規情報>マンション情報
		X31SDataBeanAccessArray mansionInfo = web_new_infobean.getDataBeanArray(CommonInfoCFConst.MANSION_INFO);
		X31SDataBeanAccess mansionInfoBean = mansionInfo.getDataBean(0);

		// 共有フォームBeanへ設定
		mansionInfoBean.sendMessageString(CommonInfoCFConst.SEARCH_PCD1_16, X31CWebConst.DATABEAN_SET_VALUE, zipFront);
		mansionInfoBean.sendMessageString(CommonInfoCFConst.SEARCH_PCD2_16, X31CWebConst.DATABEAN_SET_VALUE, zipRear);

		// ----次画面IDの設定----
		// -----ST2-2012-0001440 2012/08/08 h.iwamoto 戻り遷移方法修正 START-----
		// マンション検索パターンを設定(1:郵便番号検索)
		mansionInfoBean.sendMessageString(CommonInfoCFConst.SEARCH_PTN_16, X31CWebConst.DATABEAN_SET_VALUE, MANSION_SEARCH_PCD);
		// -----ST2-2012-0001440 2012/08/08 h.iwamoto 戻り遷移方法修正 END-----

		// 遷移先画面ＩＤ
		bean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW00134);
		// 遷移先画面名称
		bean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW00134);

		return true;
	}

	/**
	 * 次へボタン押下時（リストから検索）
	 * 
	 * @return 処理結果
	 * @throws Exception 例外
	 */
	public boolean fukenNext() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess serviceformBean = getServiceFormBean();

		// 府県リストを取得
		X31SDataBeanAccessArray fukenDataBeanAccessArray = serviceformBean.getDataBeanArray(FUW00131SFConst.FUKEN_LIST);
		X31SDataBeanAccess fukenBean = fukenDataBeanAccessArray.getDataBean(0);

		// プルダウンの選択値を取得
		String fukenNumber = fukenBean.sendMessageString(FUW00131SFConst.FUKEN_NUMBER_01, X31CWebConst.DATABEAN_GET_VALUE);

		// 選択値より配列番号を取得
		int selectIndex1 = Integer.valueOf(fukenNumber).intValue();

		// 配列番号より府県名称リスト値を取得
		String fukenName = fukenBean.sendMessageString(FUW00131SFConst.FUKEN_NAME_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, selectIndex1);

		// 共有フォームBean取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// WEB新規情報
		X31SDataBeanAccessArray web_new_info = commonInfoBean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		X31SDataBeanAccess web_new_infobean = web_new_info.getDataBean(0);

		// WEB新規情報 >マンション情報
		X31SDataBeanAccessArray mansionInfo = web_new_infobean.getDataBeanArray(CommonInfoCFConst.MANSION_INFO);
		X31SDataBeanAccess mansionInfoBean = mansionInfo.getDataBean(0);

		// 共有フォームBeanへ設定
		mansionInfoBean.sendMessageString(CommonInfoCFConst.SEARCH_STATE_16, X31CWebConst.DATABEAN_SET_VALUE, fukenName);

		// ------次画面IDの設定-------
		// -----ST2-2012-0001440 2012/08/08 h.iwamoto 戻り遷移方法修正 START-----
		// マンション検索パターンを設定(2:郵便番号検索でない)
		mansionInfoBean.sendMessageString(CommonInfoCFConst.SEARCH_PTN_16, X31CWebConst.DATABEAN_SET_VALUE, MANSION_SEARCH_NOT_PCD);
		// -----ST2-2012-0001440 2012/08/08 h.iwamoto 戻り遷移方法修正 END-----

		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW00132);

		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW00132);

		return true;
	}

	/**
	 * 住所検索部品呼出処理です。
	 * 
	 * <br>
	 * @return
	 * @throws Exception
	 */
	public boolean searchAddress() throws Exception
	{
		DEBUG_LOG.info("★★★住所検索部品呼出処理開始★★★");
		JFUWebCommon.searchAddress(this);
		DEBUG_LOG.info("★★★住所検索部品呼出処理終了★★★");

		return true;
	}
}
