/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹構築
*	モジュール名	：FUSV0206_FUSV0206OPDBMapper
*	ソースファイル名：FUSV0206_FUSV0206OPDBMapper.java
*	作成者			：FJ
*	日付			：2012年02月23日
*＜機能概要＞
*	BP（同番移転可否確認(量販・訪販)）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/02/23	FJ			新規作成
*   v11.00      2014/11/05  FJ) 谷本    【ANK-2141-01-00】【案件内仕様変更】フロント画面の文言見直し
*
**********************************************************************/
package eo.web.webview.mapping;

import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;

import eo.common.constant.JFUStrConst;
import eo.web.webview.FUW01403SF.FUW01403SFConst;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class FUSV0206_FUSV0206OPDBMapper
{

	/** 電話番号１ */
	private static final String KEY_TELNO1 = "key_telno1";
	/** 郵便番号（前） */
	private static final String KEY_PCD_BF = "key_pcd_bf";
	/** 郵便番号（後） */
	private static final String KEY_PCD_AF = "key_pcd_af";
	/** 例外入力 */
	private static final String KEY_EXCEPTION_INPUT = "key_exception_input";
	/** 同一住所フラグ */
	private static final String SAME_AD_FLG = "same_ad_flg";
	/** 住所コード一覧最大検索件数 */
	private static final String AD_CD_LIST_MAX_SEARCH_NUM = "ad_cd_list_max_search_num";

	/** 例外入力：1(例外) */
	private static final String EXCEPTION_INPUT_1 = "1";
	/** 同一住所フラグ：1(同一) */
	private static final String SAME_AD_FLG_1 = "1";

	/** 住所情報分割CC */
	private static final String CC_TITLE_FUSV020601 = "FUSV020601CC";
	/** サービスIF結果データ移送CC */
	private static final String CC_TITLE_FUSV020602 = "FUSV020602CC";
	/** 同番移転チェックCC */
	private static final String CC_TITLE_FUSV020603 = "FUSV020603CC";

	/** マップキー 移送先名取得 */
	private static final String KEY_TRAN_NAME = "tranNm";
	/** マップキー キーカウント */
	private static final String KEY_KEY_CNT = "key_cnt";
	/** マップキー キーカウント */
	private static final String RPG_KEY_CNT_4 = "4";

	/** 移送用キー1 */
	private static final String TRANS_KEY_1 = "key_1";
	/** 移送用キー1 */
	private static final String TRANS_KEY_2 = "key_2";
	/** 移送用キー1 */
	private static final String TRANS_KEY_3 = "key_3";
	/** 移送用キー1 */
	private static final String TRANS_KEY_4 = "key_4";

	/** 都道府県 */
	private static final String TRANS_KEY_1_VALUE_1 = CC_TITLE_FUSV020601 + "::state_nm,::key_state_nm";
	/** 市区町村 */
	private static final String TRANS_KEY_1_VALUE_2 = CC_TITLE_FUSV020601 + "::city_nm,::key_city_nm";
	/** 大字通称名 */
	private static final String TRANS_KEY_1_VALUE_3 = CC_TITLE_FUSV020601 + "::oaztsu_nm,::key_oaztsu_nm";
	/** 字丁目名 */
	private static final String TRANS_KEY_1_VALUE_4 = CC_TITLE_FUSV020601 + "::azcho_nm,::key_azcho_nm";

	/**
	 * コンストラクタ
	 */
	public FUSV0206_FUSV0206OPDBMapper()
	{
	}

	/**
	 * 上りマッピングをする
	 * @param bean データBean配列
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV020601CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 都道府県・市区町村 → 住所分割処理マップ.都道府県・市区町村
		parentMap.put("state_city", bean[0].sendMessageString("都道府県・市区町村", X31CWebConst.DATABEAN_GET_VALUE));
		// 字 → 住所分割処理マップ.字
		parentMap.put("aza", bean[0].sendMessageString("字", X31CWebConst.DATABEAN_GET_VALUE));
		// 丁目・番地等 → 住所分割処理マップ.丁目・番地等
		parentMap.put("chome_bnchi", bean[0].sendMessageString("丁目・番地等", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV020601CC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングを行います。
	 * <br>
	 * @param bean データBean配列
	 * @param outputMap
	 * @return 送信情報
	 */
	public HashMap setFUSV020602CC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// データ移送数
		parentMap.put(KEY_KEY_CNT, RPG_KEY_CNT_4);

		// データ移送先
		parentMap.put(KEY_TRAN_NAME, CC_TITLE_FUSV020603);

		// 都道府県
		parentMap.put(TRANS_KEY_1, TRANS_KEY_1_VALUE_1);
		// 市区町村
		parentMap.put(TRANS_KEY_2, TRANS_KEY_1_VALUE_2);
		// 大字通称名
		parentMap.put(TRANS_KEY_3, TRANS_KEY_1_VALUE_3);
		// 字丁目名
		parentMap.put(TRANS_KEY_4, TRANS_KEY_1_VALUE_4);

		// 共通情報のマッピング
		outputMap.put(CC_TITLE_FUSV020602, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean データBean配列
	 * @param outputMap
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV020603CC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 電話番号１
		parentMap.put(KEY_TELNO1, bean[0].sendMessageString("電話番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 郵便番号（前）
		parentMap.put(KEY_PCD_BF, bean[0].sendMessageString("郵便番号（前）", X31CWebConst.DATABEAN_GET_VALUE));
		// 郵便番号（後）
		parentMap.put(KEY_PCD_AF, bean[0].sendMessageString("郵便番号（後）", X31CWebConst.DATABEAN_GET_VALUE));
		// 例外入力
		parentMap.put(KEY_EXCEPTION_INPUT, EXCEPTION_INPUT_1); // "1":例外
		// 同一住所フラグ
		parentMap.put(SAME_AD_FLG, SAME_AD_FLG_1); // "1":同一
		// 住所コード一覧最大検索件数
		parentMap.put(AD_CD_LIST_MAX_SEARCH_NUM, JFUStrConst.MAX_SEARCH_NUM); // "200"

		outputMap.put(CC_TITLE_FUSV020603, parentMap);

		return outputMap;
	}

}