/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：FUSV0309_FUSV0309OPDBMapper
*	ソースファイル名：FUSV0309_FUSV0309OPDBMapper.java
*	作成者			：富士通
*	日付			：2017年07月28日
*＜機能概要＞
*	BP(GH申込(初期表示))へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*   v33.00      2017/07/28	FJ)美濃原 	【ANK-3217-00-00】GHサービス開始対応
*   v39.00      2018/09/19	FJ)中野		【ANK-3484-00-00】おうちの機器補償サービス対応
*   v42.00.00   2019/05/15  FJ)大島     【ANK-3642-00-00】スマートリンクタブレット新機種追加（2019年6月〜）
**********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.fujitsu.futurity.common.JCMConstants;
import com.fujitsu.futurity.web.x31.X31BWebBusinessLogic;
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.util.JKKStringUtil;
import eo.common.util.JPCUtilCommon;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.FUW10701SF.FUW10701SFConst;
import eo.web.webview.common.JFUTabletInfoUtil;
import eo.web.webview.common.JFUWebCommon;

/**
 * DataBean-BPマッピングをします。
 * 
 * <br>
 * @author 富士通
 */
public class FUSV0309_FUSV0309OPDBMapper
{
	/** 配列番号[1]:ＳＳＯ情報 */
	private static final int INFO_IDX_SSO_INFO = 1;
	/** 配列番号[2]:サービス契約情報 */
	private static final int INFO_IDX_SVC_KEI = 2;
	/** 配列番号[3]:請求契約情報 */
	private static final int INFO_IDX_SEIKY_KEI = 3;

	/** 割賦プラン一覧照会(eoスマートリンク) */
	private static final String FUSV030901SC = "FUSV030901SC";
	/** 機器提供サービス契約一覧照会(サービス契約番号) */
	private static final String FUSV030902SC = "FUSV030902SC";
	/** オプションサービス契約一覧照会(サービス契約番号) */
	private static final String FUSV030903SC = "FUSV030903SC";
	/** 料金コース_オプションサービス一意照会 */
	private static final String FUSV030904SC = "FUSV030904SC";
	/** 料金プラン固定単価 */
	private static final String FUSV030905SC = "FUSV030905SC";
	/** コード名称管理一覧照会 */
	private static final String FUSV030906SC = "FUSV030906SC";
	/** 業務パラメータ管理一意照会 */
	private static final String FUSV030907SC = "FUSV030907SC";
	/** 業務パラメータ管理一意照会(ＧＨ宅内機器型式） */
	private static final String FUSV030908SC = "FUSV030908SC";
	// ANK-3484-00-00 ADD START
	/** 料金プラン固定単価(PCワイドプラン) */
	private static final String FUSV030909SC = "FUSV030909SC";
	/** 料金プラン固定単価(PCプラン) */
	private static final String FUSV030910SC = "FUSV030910SC";
	// ANK-3484-00-00 ADD END
	/** eoスマートリンク関連チェックコンポーネントCC */
	private static final String FUSV030901CC = "FUSV030901CC";
	/** GH申込表示制御CC */
	private static final String FUSV030902CC = "FUSV030902CC";
	// ANK-3484-00-00 ADD START
	/** 端末補償操作CC */
	private static final String FUSV030903CC = "FUSV030903CC";
	// ANK-3484-00-00 ADD END

	/** 割賦プラン一覧照会(eoスマートリンク)明細 */
	private static final String EKK2521B501CBSMSG1LIST = "EKK2521B501CBSMsg1List";
	/** 割賦契約一覧照会(eoスマートリンク)明細 */
	private static final String EKK2541B501CBSMSG1LIST = "EKK2541B501CBSMsg1List";
	/** オプションサービス契約一覧照会(サービス契約番号)明細 */
	private static final String EKK0351B002CBSMSG1LIST = "EKK0351B002CBSMsg1List";
	/** 料金コース_オプションサービス一意照会明細 */
	private static final String EKK0811A010CBSMSG1LIST = "EKK0811A010CBSMsg1List";
	/** 料金プラン固定単価明細 */
	private static final String EKK0601B001CBSMSG1LIST = "EKK0601B001CBSMsg1List";
	/** コード名称管理一覧照会明細 */
	private static final String EZM0171B010CBSMSG1LIST = "EZM0171B010CBSMsg1List";
	/** 業務パラメータ管理一意照会明細 */
	private static final String EZM0321A010CBSMSG1LIST = "EZM0321A010CBSMsg1List";

	/** 業務パラメータ設定値 */
	private static final String WORK_PARAM_SETTE_VALUE = "work_param_sette_value";

	/** ＫＥＹ＿サービス契約番号 */
	private static final String KEY_SVC_KEI_NO = "key_svc_kei_no";
	/** ＫＥＹ＿料金コースコード */
	private static final String KEY_PCRS_CD = "key_pcrs_cd";
	/** ＫＥＹ＿SYSID */
	private static final String KEY_SYSID = "key_sysid";
	/** ＫＥＹ＿請求契約番号 */
	private static final String KEY_SEIKY_KEI_NO = "key_seiky_kei_no";
	/** 項目：宅内機器型式コード */
	private static final String TAKNKIKI_MODEL_CD = "taknkiki_model_cd";
	/** 項目：サービス契約番号 */
	private static final String SVC_KEI_NO = "svc_kei_no";

	/** 定義取得パス 端末情報 */
	private static final String QUERY_PATH = "DISPSETTING/SETTING[@screenId='FUW10701']/DISPTEXT[@groupid='SMARTLINK_MSKM_LMT']";
	/** 属性名 */
	private static final String QUERY_ATTR_NAME = "id";
	/** 属性名 Ｎｅｔ新規申込み台数制限値 */
	private static final String NET_NEW_MSKM_CNT_MAX = "net_new_mskm_cnt_max";
	/** 属性名 複数台申込不可期間申込可能台数制限値 */
	private static final String MULTI_MSKM_PSB_MSKM_CNT_MAX = "multi_mskm_not_psb_mskm_cnt_max";

	/** ＣＣ出力マップ項目(タブレット支払残高有無) */
	private static final String TABLET_PAY_ZAN_UM = "tablet_pay_zan_um";
	/** ＣＣ出力マップ項目(タブレット通算台数上限) */
	private static final String KK_TAB_TOTAL_CNT_MAX = "kk_tab_total_cnt_max";
	/** ＣＣ出力マップ項目(同時割賦契約数上限) */
	private static final String KK_KAP_SHR_CNT_MAX = "kk_kap_shr_cnt_max";
	/** ＣＣ出力マップ項目(フロント同時申込台数) */
	private static final String FU_SHR_MSKM_CNT_MAX = "fu_shr_mskm_cnt_max";
	/** ＣＣ出力マップ項目(割賦契約割引適用上限数) */
	private static final String KK_KAP_WRBK_MAX = "kk_kap_wrbk_max";

	/** ＣＣ出力マップ項目(保有ルーター区分) **/
	private static final String HOYU_ROOTER_KBN = "hoyu_rt_kbn";

	// ANK-3484-00-00 ADD START
	/** 機能コード */
	private static final String FUNC_CD = "func_cd";
	/** 申込年月日 */
	private static final String MSKM_YMD = "mskm_ymd";
	/** 処理区分 */
	private static final String SHORI_DIV = "shori_div";
	/** 処理区分：照会モード */
	private static final String SHOKAI_MODE = "1";
	/** オプションサービス契約ステータス：解約済 */
	private static final String DSL_ZM = "910";
	/** ＰＣプラン申込状態識別コード：ＰＣプラン未契約 */
	private static final String PC_PLAN_NOT_CONTRACT = "1";
	/** ＰＣプラン申込状態識別コード：ＰＣプラン解約後10ヶ月経過 */
	private static final String PC_PLAN_DSL_TEN_MONTH_LATER = "2";
	/** ＰＣプラン申込状態識別コード：ＰＣプラン解約後10ヶ月未満 */
	private static final String PC_PLAN_DSL_TEN_MONTH_EARLIER = "3";
	/** ＰＣプラン申込状態識別コード：ＰＣワイドプラン契約 */
	private static final String PC_WIDE_PLAN_CONTRACT = "4";
	/** ＰＣプラン申込状態識別コード：ＰＣプラン契約 */
	private static final String PC_PLAN_CONTRACT = "5";
	/** ＣＣ出力マップ項目(サービス課金終了年月日) */
	private static final String SVC_CHRG_ENDYMD = "svc_chrg_endymd";
	/** ＣＣ出力マップ項目(オプションサービス契約ステータス) */
	private static final String OP_SVC_KEI_STAT = "op_svc_kei_stat";
	/** ＣＣ出力マップ項目(オプションサービス契約番号) */
	private static final String OP_SVC_KEI_NO = "op_svc_kei_no";
	/** ＣＣ出力マップ項目(サブオプションサービス契約ステータス) */
	private static final String SBOP_SVC_KEI_STAT = "sbop_svc_kei_stat";
	/** ＣＣ出力マップ項目(キャンセル連携年月日) */
	private static final String TMCP_CNCL_RNKI_YMD = "tmcp_cncl_rnki_ymd";

	// ANK-3484-00-00 ADD END

	/**
	 * 上りマッピングをします。(割賦プラン一覧照会(eoスマートリンク)SC)
	 * 
	 * <br>
	 * @param bean  [0]：eoスマートリンク申込  [1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code  機能コード
	 * @return HashMap
	 */
	public HashMap<String, Object> setFUSV030901SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(JCMConstants.FUNC_CODE_KEY, func_code);

		// ＫＥＹ＿料金コースコード
		parentMap.put(KEY_PCRS_CD, bean[INFO_IDX_SVC_KEI].sendMessageString(CommonInfoCFConst.PCRS_CD_23, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put(FUSV030901SC, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをします。(割賦契約一覧照会(eoスマートリンク)SC)
	 * 
	 * <br>
	 * @param bean  [0]：eoスマートリンク申込  [1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code  機能コード
	 * @return HashMap
	 */
	public HashMap<String, Object> setFUSV030902SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(JCMConstants.FUNC_CODE_KEY, func_code);

		// ＫＥＹ＿サービス契約番号
		parentMap.put(KEY_SVC_KEI_NO, bean[INFO_IDX_SVC_KEI].sendMessageString(CommonInfoCFConst.SVC_KEI_NO_23, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put(FUSV030902SC, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをします。(オプションサービス契約一覧照会(サービス契約番号)SC)
	 * 
	 * <br>
	 * @param bean  [0]：eoスマートリンク申込  [1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code  機能コード
	 * @return HashMap
	 */
	public HashMap<String, Object> setFUSV030903SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(JCMConstants.FUNC_CODE_KEY, func_code);

		// ＫＥＹ＿サービス契約番号
		parentMap.put(KEY_SVC_KEI_NO, bean[INFO_IDX_SVC_KEI].sendMessageString(CommonInfoCFConst.SVC_KEI_NO_23, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put(FUSV030903SC, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをします。(料金コース_オプションサービス一意照会SC)
	 * 
	 * <br>
	 * @param bean  [0]：eoスマートリンク申込  [1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code  機能コード
	 * @return HashMap
	 */
	public HashMap<String, Object> setFUSV030904SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(JCMConstants.FUNC_CODE_KEY, func_code);

		// ＫＥＹ＿料金コースコード
		parentMap.put(KEY_PCRS_CD, bean[INFO_IDX_SVC_KEI].sendMessageString(CommonInfoCFConst.PCRS_CD_23, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put(FUSV030904SC, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをします。(料金プラン固定単価SC)
	 * 
	 * <br>
	 * @param bean  [0]：eoスマートリンク申込  [1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code  機能コード
	 * @return HashMap
	 */
	public HashMap<String, Object> setFUSV030905SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(JCMConstants.FUNC_CODE_KEY, func_code);

		outputMap.put(FUSV030905SC, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをします。(コード名称管理一覧照会SC)
	 * 
	 * <br>
	 * @param bean  [0]：eoスマートリンク申込  [1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code  機能コード
	 * @return HashMap
	 */
	public HashMap<String, Object> setFUSV030906SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(JCMConstants.FUNC_CODE_KEY, func_code);

		outputMap.put(FUSV030906SC, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをします。(業務パラメータ管理一意照会)
	 *
	 * <br>
	 * @param bean　[0]：登録証照会　[1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	public HashMap<String, Object> setFUSV030907SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(JCMConstants.FUNC_CODE_KEY, func_code);

		outputMap.put(FUSV030907SC, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをします。(業務パラメータ管理一意照会)<br>
	 * （ＧＨ宅内機器型式）
	 *
	 * <br>
	 * @param bean　[0]：登録証照会　[1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	public HashMap<String, Object> setFUSV030908SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(JCMConstants.FUNC_CODE_KEY, func_code);

		outputMap.put(FUSV030908SC, parentMap);

		return outputMap;
	}
	// ANK-3484-00-00 ADD START
	/**
	 * 上りマッピングをします。(料金プラン固定単価SC（ＰＣワイドプラン）)
	 * 
	 * <br>
	 * @param bean  [0]：eoスマートリンク申込  [1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code  機能コード
	 * @return HashMap
	 */
	public HashMap<String, Object> setFUSV030909SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(JCMConstants.FUNC_CODE_KEY, func_code);

		outputMap.put(FUSV030909SC, parentMap);

		return outputMap;
	}
	// ANK-3484-00-00 ADD END
	
	// ANK-3484-00-00 ADD START
	/**
	 * 上りマッピングをします。(料金プラン固定単価SC（ＰＣプラン）)
	 * 
	 * <br>
	 * @param bean  [0]：eoスマートリンク申込  [1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code  機能コード
	 * @return HashMap
	 */
	public HashMap<String, Object> setFUSV030910SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(JCMConstants.FUNC_CODE_KEY, func_code);

		outputMap.put(FUSV030910SC, parentMap);

		return outputMap;
	}
	// ANK-3484-00-00 ADD END
	/**
	 * 上りマッピングをします。(eoスマートリンク関連チェックコンポーネントCC)
	 * 
	 * <br>
	 * @param bean  [0]：eoスマートリンク申込  [1]：共有フォームビーン
	 * @param outputMap
	 * @return HashMap
	 */
	public HashMap<String, Object> setFUSV030901CC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// IN項目:ＳＹＳＩＤ
		parentMap.put(KEY_SYSID, bean[INFO_IDX_SSO_INFO].sendMessageString(CommonInfoCFConst.SYSID_21, X31CWebConst.DATABEAN_GET_VALUE));
		// IN項目:サービス契約情報.サービス契約番号
		parentMap.put(KEY_SVC_KEI_NO, bean[INFO_IDX_SVC_KEI].sendMessageString(CommonInfoCFConst.SVC_KEI_NO_23, X31CWebConst.DATABEAN_GET_VALUE));
		// IN項目:請求契約情報.請求契約番号
		parentMap.put(KEY_SEIKY_KEI_NO, bean[INFO_IDX_SEIKY_KEI]
				.sendMessageString(CommonInfoCFConst.SEIKY_KEI_NO_32, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put(FUSV030901CC, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをします。(GH申込表示制御CC)
	 * 
	 * <br>
	 * @param bean  [0]：eoスマートリンク申込  [1]：共有フォームビーン
	 * @param outputMap
	 * @return HashMap
	 */
	public HashMap<String, Object> setFUSV030902CC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// IN項目:サービス契約情報.サービス契約番号
		parentMap.put(SVC_KEI_NO, bean[INFO_IDX_SVC_KEI].sendMessageString(CommonInfoCFConst.SVC_KEI_NO_23, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put(FUSV030902CC, parentMap);

		return outputMap;
	}
	// ANK-3484-00-00 ADD START
	/**
	 * 上りマッピングをします。(端末補償操作CC)
	 * 
	 * <br>
	 * @param bean  [0]：eoスマートリンク申込  [1]：共有フォームビーン
	 * @param outputMap
	 * @return HashMap
	 */
	public HashMap<String, Object> setFUSV030903CC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 共通情報のマッピング
		parentMap.put(JCMConstants.FUNC_CODE_KEY, func_code);
		
		// IN 項目：処理区分
		parentMap.put(SHORI_DIV, SHOKAI_MODE);
		
		// IN項目:サービス契約情報.サービス契約番号
		parentMap.put(SVC_KEI_NO, bean[INFO_IDX_SVC_KEI].sendMessageString(CommonInfoCFConst.SVC_KEI_NO_23, X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put(FUSV030903CC, parentMap);
		
		return outputMap;
	}
	// ANK-3484-00-00 ADD END
	
	/**
	 * 下りマッピングをします。(割賦プラン一覧照会(eoスマートリンク)SC)
	 * 
	 * <br> 
	 * @param bean eoスマートリンク申込
	 * @param outputMap
	 * @return X31SDataBeanAccess
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess getFUSV030901SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, X31BWebBusinessLogic bl) throws Exception
	{

		HashMap parentMap = null;
		if (outputMap.containsKey(FUSV030901SC))
		{
			parentMap = (HashMap)outputMap.get(FUSV030901SC);
		}

// ANK-3642-00-00 DEL START
//		// GH対象機器リスト取得
//		List<String> ghTaishoList = getKkGhTkkmdl(bean, outputMap);
// ANK-3642-00-00 DEL END

		ArrayList childList = null;

// ANK-3642-00-00 MOD START
		X31SDataBeanAccessArray listFUSV030901SC_kk_m_kap_plan_EKK2521B501CBSMsg1List = bean[0].getDataBeanArray(FUW10701SFConst.KK_M_KAP_PLAN);
// ANK-3642-00-00 MOD END

		childList = null;

// ANK-3642-00-00 ADD START
		// ワークマップ
		HashMap<String, String> workMap = new HashMap<String, String>();
		editTabletCheckParam(workMap, bean[INFO_IDX_SVC_KEI], bl);
// ANK-3642-00-00 ADD END

		if (listFUSV030901SC_kk_m_kap_plan_EKK2521B501CBSMsg1List != null && parentMap != null && parentMap.containsKey(EKK2521B501CBSMSG1LIST))
		{

			childList = (ArrayList)parentMap.get(EKK2521B501CBSMSG1LIST);

			for (int i = 0; i < childList.size(); i++)
			{

				HashMap childMap = (HashMap)childList.get(i);

				// 宅内機器型式コードを取得
				String taknkikiModelCd = (String)childMap.get(TAKNKIKI_MODEL_CD);

// ANK-3642-00-00 MOD START
				workMap.put("taknkikiModelCd", taknkikiModelCd);
				workMap.put(JFUStrConst.TABLET_DSP_SYUBETSU, "");
				if (!JFUTabletInfoUtil.checkShowTablet("FUW10701", workMap))
				{
					continue;
				}
				if (!"GH".equals(workMap.get(JFUStrConst.TABLET_DSP_SYUBETSU)))
				{
					continue;
				}
// ANK-3642-00-00 MOD END

				X31SDataBeanAccess subbean = null;
				if (listFUSV030901SC_kk_m_kap_plan_EKK2521B501CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = listFUSV030901SC_kk_m_kap_plan_EKK2521B501CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = listFUSV030901SC_kk_m_kap_plan_EKK2521B501CBSMsg1List.addDataBean();
				}

				if (subbean == null)
				{
					continue;
				}

				if (childMap == null)
				{
					continue;
				}

				// 割賦プラン一覧明細タイプ.割賦プランコード ←                  割賦プラン一覧照会(eoスマートリンク)明細.割賦プランコード
				subbean.sendMessageString(FUW10701SFConst.KAP_PLAN_CD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kap_plan_cd"));
				// 割賦プラン一覧明細タイプ.宅内機器型式コード ←                割賦プラン一覧照会(eoスマートリンク)明細.宅内機器型式コード
				subbean.sendMessageString(FUW10701SFConst.TAKNKIKI_MODEL_CD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("taknkiki_model_cd"));
				// 割賦プラン一覧明細タイプ.割賦販売形態コード ←                割賦プラン一覧照会(eoスマートリンク)明細.割賦販売形態コード
				subbean.sendMessageString(FUW10701SFConst.KAP_HAMBAI_FORM_CD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kap_hambai_form_cd"));
				// 割賦プラン一覧明細タイプ.割賦販売形態コード名称 ←            割賦プラン一覧照会(eoスマートリンク)明細.割賦販売形態コード名称
				subbean.sendMessageString(FUW10701SFConst.KAP_HAMBAI_FORM_CD_NM_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kap_hambai_form_cd_nm"));
				// 割賦プラン一覧明細タイプ.割賦支払い回数 ←                    割賦プラン一覧照会(eoスマートリンク)明細.割賦支払い回数
				subbean.sendMessageString(FUW10701SFConst.KAP_PAY_CNT_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kap_pay_cnt"));
				// 割賦プラン一覧明細タイプ.割賦プラン料金単価種別コード ←      割賦プラン一覧照会(eoスマートリンク)明細.割賦プラン料金単価種別コード
				subbean.sendMessageString(FUW10701SFConst.KAP_PLAN_PRC_TANKA_SBT_CD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kap_plan_prc_tanka_sbt_cd"));
				// 割賦プラン一覧明細タイプ.割賦プラン料金額 ←                  割賦プラン一覧照会(eoスマートリンク)明細.割賦プラン料金額
				subbean.sendMessageString(FUW10701SFConst.KAP_PLAN_PRC_AMNT_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kap_plan_prc_amnt"));
				// 割賦プラン一覧明細タイプ.割賦プラン料金割引額 ←              割賦プラン一覧照会(eoスマートリンク)明細.割賦プラン料金割引額
				subbean.sendMessageString(FUW10701SFConst.KAP_PLAN_PRC_AMNT_WRIB_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kap_plan_prc_amnt_wrib"));
				// 割賦プラン一覧明細タイプ.割賦プラン料金割引額２ ←            割賦プラン一覧照会(eoスマートリンク)明細.割賦プラン料金割引額２
				subbean.sendMessageString(FUW10701SFConst.KAP_PLAN_PRC_AMNT_WRIB2_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kap_plan_prc_amnt_wrib2"));
				// 割賦プラン一覧明細タイプ.複数端末購入不可期間   ←            割賦プラン一覧照会(eoスマートリンク)明細.複数端末購入不可期間
				subbean.sendMessageString(FUW10701SFConst.HUKUSU_TNMT_BUY_FAIL_PRD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("hukusu_tnmt_buy_fail_prd"));
				// 割賦プラン一覧明細タイプ.宅内機器型式名 ←                    割賦プラン一覧照会(eoスマートリンク)明細.宅内機器型式名
				subbean.sendMessageString(FUW10701SFConst.TAKNKIKI_MODEL_NM_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("taknkiki_model_nm"));
				// 割賦プラン一覧明細タイプ.メーカー保証期間開始日算出方法識別コード
				//                                         ← 割賦プラン一覧照会(eoスマートリンク)明細.メーカー保証期間開始日算出方法識別コード
				subbean.sendMessageString(FUW10701SFConst.MKHS_PRD_STAD_SSW_SKCD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("mkhs_prd_stad_ssw_skcd"));
				// 割賦プラン一覧明細タイプ.端末補償期間開始日算出方法識別コード← 割賦プラン一覧照会(eoスマートリンク)明細.端末補償期間開始日算出方法識別コード
				subbean.sendMessageString(FUW10701SFConst.TMCP_PRD_STAD_SSW_SKCD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("tmcp_prd_stad_ssw_skcd"));
				// 割賦プラン一覧明細タイプ.お客様機器メーカー保証期間  ←       割賦プラン一覧照会(eoスマートリンク)明細.お客様機器メーカー保証期間
				subbean.sendMessageString(FUW10701SFConst.CUST_KIKI_MKHS_PRD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("cust_kiki_mkhs_prd"));
				// 割賦プラン一覧明細タイプ.お客様機器延長保証期間  ←           割賦プラン一覧照会(eoスマートリンク)明細.お客様機器延長保証期間
				subbean.sendMessageString(FUW10701SFConst.CUST_KIKI_ECHS_PRD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("cust_kiki_echs_prd"));
				// 割賦プラン一覧明細タイプ.端末補償期間   ←                    割賦プラン一覧照会(eoスマートリンク)明細.端末補償期間
				subbean.sendMessageString(FUW10701SFConst.TMCP_PRD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("tmcp_prd"));
				// 割賦プラン一覧明細タイプ.料金プラン固定単価料金コースコード ← 割賦プラン一覧照会(eoスマートリンク)明細.料金プラン固定単価料金コースコード
				subbean.sendMessageString(FUW10701SFConst.KTTANKA_PCRS_CD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kttanka_pcrs_cd"));
				// 割賦プラン一覧明細タイプ.料金プラン固定単価料金プランコード← 割賦プラン一覧照会(eoスマートリンク)明細.料金プラン固定単価料金プランコード
				subbean.sendMessageString(FUW10701SFConst.KTTANKA_PPLAN_CD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kttanka_pplan_cd"));
				// 割賦プラン一覧明細タイプ.料金プラン固定金額  ←               割賦プラン一覧照会(eoスマートリンク)明細.料金プラン固定金額
				subbean.sendMessageString(FUW10701SFConst.PPLAN_KOTEI_AMNT_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_kotei_amnt"));
				// 割賦プラン一覧明細タイプ.料金プラン固定単位コード名  ←       割賦プラン一覧照会(eoスマートリンク)明細.料金プラン固定単位コード名
				subbean.sendMessageString(FUW10701SFConst.PPLAN_KOTEI_TANI_CD_NM_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_kotei_tani_cd_nm"));
				// 割賦プラン一覧明細タイプ.料金プラン固定単位コード略称  ←     割賦プラン一覧照会(eoスマートリンク)明細.料金プラン固定単位コード略称
				subbean.sendMessageString(FUW10701SFConst.PPLAN_KOTEI_TANI_CD_ALI_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_kotei_tani_cd_ali"));
			}
		}
// ANK-3642-00-00 MOD START
		return bean[0];
// ANK-3642-00-00 MOD END
	}

	/**
	 * 下りマッピングをします。(割賦契約一覧照会(eoスマートリンク)SC)
	 * 
	 * <br> 
	 * @param bean eoスマートリンク申込
	 * @param outputMap
	 * @return X31SDataBeanAccess
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess getFUSV030902SC(X31SDataBeanAccess bean, HashMap<String, Object> outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey(FUSV030902SC))
		{
			parentMap = (HashMap)outputMap.get(FUSV030902SC);
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listFUSV030902SC_kk_t_kap_kei_EKK2541B501CBSMsg1List = bean.getDataBeanArray(FUW10701SFConst.KK_T_KAP_KEI);

		childList = null;

		if (listFUSV030902SC_kk_t_kap_kei_EKK2541B501CBSMsg1List != null && parentMap != null && parentMap.containsKey(EKK2541B501CBSMSG1LIST))
		{

			childList = (ArrayList)parentMap.get(EKK2541B501CBSMSG1LIST);

			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if (listFUSV030902SC_kk_t_kap_kei_EKK2541B501CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = listFUSV030902SC_kk_t_kap_kei_EKK2541B501CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = listFUSV030902SC_kk_t_kap_kei_EKK2541B501CBSMsg1List.addDataBean();
				}

				HashMap childMap = (HashMap)childList.get(i);

				if (subbean == null)
				{
					continue;
				}

				if (childMap == null)
				{
					continue;
				}

				// 割賦契約一覧明細タイプ.割賦契約番号 ←              割賦契約一覧照会(eoスマートリンク)明細.割賦契約番号
				subbean.sendMessageString(FUW10701SFConst.KAP_KEI_NO_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kap_kei_no"));
				// 割賦契約一覧明細タイプ.割賦契約ステータス ←        割賦契約一覧照会(eoスマートリンク)明細.割賦契約ステータス
				subbean.sendMessageString(FUW10701SFConst.KAP_KEI_STAT_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kap_kei_stat"));
				// 割賦契約一覧明細タイプ.割賦契約締結年月日 ←        割賦契約一覧照会(eoスマートリンク)明細.割賦契約締結年月日
				subbean.sendMessageString(FUW10701SFConst.KAP_KEI_CNC_YMD_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kap_kei_cnc_ymd"));
				// 割賦契約一覧明細タイプ.割賦請求開始年月 ←         割賦契約一覧照会(eoスマートリンク)明細.割賦請求開始年月
				subbean.sendMessageString(FUW10701SFConst.KAP_SEIKY_STA_YM_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kap_seiky_sta_ym"));
				// 割賦契約一覧明細タイプ.割賦契約課金開始年月日 ←         割賦契約一覧照会(eoスマートリンク)明細.割賦契約課金開始年月日
				subbean.sendMessageString(FUW10701SFConst.KAP_KEI_CHRG_STAYMD_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kap_kei_chrg_staymd"));
				// 割賦契約一覧明細タイプ.割賦支払い残回数 ←          割賦契約一覧照会(eoスマートリンク)明細.割賦支払い残回数
				subbean.sendMessageString(FUW10701SFConst.KAP_PAY_ZAN_CNT_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kap_pay_zan_cnt"));
				// 割賦契約一覧明細タイプ.割賦販売形態コード ←        割賦契約一覧照会(eoスマートリンク)明細.割賦販売形態コード
				subbean.sendMessageString(FUW10701SFConst.KAP_HAMBAI_FORM_CD_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kap_hambai_form_cd"));
				// 割賦契約一覧明細タイプ.割賦販売形態コード略称 ←    割賦契約一覧照会(eoスマートリンク)明細.割賦販売形態コード略称
				subbean.sendMessageString(FUW10701SFConst.KAP_HAMBAI_FORM_CD_ALI_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kap_hambai_form_cd_ali"));
				// 割賦契約一覧明細タイプ.割賦支払い回数 ←            割賦契約一覧照会(eoスマートリンク)明細.割賦支払い回数
				subbean.sendMessageString(FUW10701SFConst.KAP_PAY_CNT_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kap_pay_cnt"));
				// 割賦契約一覧明細タイプ.割賦残高 ←                  割賦契約一覧照会(eoスマートリンク)明細.割賦残高
				subbean.sendMessageString(FUW10701SFConst.KAP_ZDK_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kap_zdk"));
				// 割賦契約一覧明細タイプ.複数端末購入不可期間 ←      割賦契約一覧照会(eoスマートリンク)明細.複数端末購入不可期間
				subbean.sendMessageString(FUW10701SFConst.HUKUSU_TNMT_BUY_FAIL_PRD_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("hukusu_tnmt_buy_fail_prd"));
				// 割賦契約一覧明細タイプ.宅内機器型式名 ←            割賦契約一覧照会(eoスマートリンク)明細.宅内機器型式名
				subbean.sendMessageString(FUW10701SFConst.TAKNKIKI_MODEL_NM_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("taknkiki_model_nm"));
				// 割賦契約一覧明細タイプ.機器製造番号 ←              割賦契約一覧照会(eoスマートリンク)明細.機器製造番号
				subbean.sendMessageString(FUW10701SFConst.KIKI_SEIZO_NO_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kiki_seizo_no"));
				// 割賦契約一覧明細タイプ.機器提供サービス契約番号 ←  割賦契約一覧照会(eoスマートリンク)明細.機器提供サービス契約番号
				subbean.sendMessageString(FUW10701SFConst.KKTK_SVC_KEI_NO_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kktk_svc_kei_no"));
				// 割賦契約一覧明細タイプ.機器提供サービス契約ステータス ← 割賦契約一覧照会(eoスマートリンク)明細.機器提供サービス契約ステータス
				subbean.sendMessageString(FUW10701SFConst.KKTK_SVC_KEI_STAT_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kktk_svc_kei_stat"));
				// 割賦契約一覧明細タイプ.宅内機器型式コード ← 割賦契約一覧照会(eoスマートリンク)明細.宅内機器型式コード
				subbean.sendMessageString(FUW10701SFConst.TAKNKIKI_MODEL_CD_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("taknkiki_model_cd"));
				// 割賦契約一覧明細タイプ.保証・補償期間開始日算出基準年月日 ← 割賦契約一覧照会(eoスマートリンク)明細.保証・補償期間開始日算出基準年月日
				subbean.sendMessageString(FUW10701SFConst.HCPRD_STAD_SNSTSTD_YMD_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("hcprd_stad_snststd_ymd"));
				// 割賦契約一覧明細タイプ.メーカー保証期間開始日算出方法識別コード
				//                                          ← 割賦契約一覧照会(eoスマートリンク)明細.メーカー保証期間開始日算出方法識別コード
				subbean.sendMessageString(FUW10701SFConst.MKHS_PRD_STAD_SSW_SKCD_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("mkhs_prd_stad_ssw_skcd"));
				// 割賦契約一覧明細タイプ.端末補償期間開始日算出方法識別コード← 割賦契約一覧照会(eoスマートリンク)明細.端末補償期間開始日算出方法識別コード
				subbean.sendMessageString(FUW10701SFConst.TMCP_PRD_STAD_SSW_SKCD_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("tmcp_prd_stad_ssw_skcd"));
				// 割賦契約一覧明細タイプ.お客様機器メーカー保証期間  ← 割賦契約一覧照会(eoスマートリンク)明細.お客様機器メーカー保証期間
				subbean.sendMessageString(FUW10701SFConst.CUST_KIKI_MKHS_PRD_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("cust_kiki_mkhs_prd"));
				// 割賦契約一覧明細タイプ.お客様機器延長保証期間      ← 割賦契約一覧照会(eoスマートリンク)明細.お客様機器延長保証期間
				subbean.sendMessageString(FUW10701SFConst.CUST_KIKI_ECHS_PRD_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("cust_kiki_echs_prd"));
				// 割賦契約一覧明細タイプ.端末補償期間                ← 割賦契約一覧照会(eoスマートリンク)明細.端末補償期間
				subbean.sendMessageString(FUW10701SFConst.TMCP_PRD_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("tmcp_prd"));
				// 割賦契約一覧明細タイプ.機器オプションサービス契約番号 ← 割賦契約一覧照会(eoスマートリンク)明細.機器オプションサービス契約番号
				subbean.sendMessageString(FUW10701SFConst.KKOP_SVC_KEI_NO_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kkop_svc_kei_no"));
				// 割賦契約一覧明細タイプ.機器オプションサービス契約ステータス ← 割賦契約一覧照会(eoスマートリンク)明細.機器オプションサービス契約ステータス
				subbean.sendMessageString(FUW10701SFConst.KKOP_SVC_KEI_STAT_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kkop_svc_kei_stat"));
				// 割賦契約一覧明細タイプ.料金プラン固定単価料金コースコード ← 割賦契約一覧照会(eoスマートリンク)明細.料金プラン固定単価料金コースコード
				subbean.sendMessageString(FUW10701SFConst.KTTANKA_PCRS_CD_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kttanka_pcrs_cd"));
				// 割賦契約一覧明細タイプ.料金プラン固定単価料金プランコード← 割賦契約一覧照会(eoスマートリンク)明細.料金プラン固定単価料金プランコード
				subbean.sendMessageString(FUW10701SFConst.KTTANKA_PPLAN_CD_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kttanka_pplan_cd"));
				// 割賦契約一覧明細タイプ.料金プラン固定金額          ←  割賦契約一覧照会(eoスマートリンク)明細.料金プラン固定金額
				subbean.sendMessageString(FUW10701SFConst.PPLAN_KOTEI_AMNT_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_kotei_amnt"));
				// 割賦契約一覧明細タイプ.料金プラン固定単位コード名  ←  割賦契約一覧照会(eoスマートリンク)明細.料金プラン固定単位コード名
				subbean.sendMessageString(FUW10701SFConst.PPLAN_KOTEI_TANI_CD_NM_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_kotei_tani_cd_nm"));
				// 割賦契約一覧明細タイプ.料金プラン固定単位コード略称 ← 割賦契約一覧照会(eoスマートリンク)明細.料金プラン固定単位コード略称
				subbean.sendMessageString(FUW10701SFConst.PPLAN_KOTEI_TANI_CD_ALI_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_kotei_tani_cd_ali"));
				// 割賦契約一覧明細タイプ.割賦一括請求切替年月 ← 割賦契約一覧照会(eoスマートリンク)明細.割賦一括請求切替年月
				subbean.sendMessageString(FUW10701SFConst.KAP_IKT_SIKY_SWCH_YM_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kap_ikt_siky_swch_ym"));
				// 割賦契約一覧明細タイプ.保証・補償期間開始日算出基準年月日識別コード 
				//                                 ← 割賦契約一覧照会(eoスマートリンク)明細.保証・補償期間開始日算出基準年月日識別コード
				subbean.sendMessageString(FUW10701SFConst.HCPRD_STAD_SNSTSTD_YMD_SCD_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("hcprd_stad_snststd_ymd_scd"));
			}
		}

		return bean;
	}

	/**
	 * 下りマッピングをします。(オプションサービス契約一覧照会(サービス契約番号)SC)
	 * 
	 * <br> 
	 * @param bean eoスマートリンク申込
	 * @param outputMap
	 * @return X31SDataBeanAccess
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess getFUSV030903SC(X31SDataBeanAccess bean, HashMap<String, Object> outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey(FUSV030903SC))
		{
			parentMap = (HashMap)outputMap.get(FUSV030903SC);
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listFUSV030903SC_kk_t_op_svc_kei_EKK0351B002CBSMsg1List = bean.getDataBeanArray(FUW10701SFConst.KK_T_OP_SVC_KEI);

		childList = null;

		if (listFUSV030903SC_kk_t_op_svc_kei_EKK0351B002CBSMsg1List != null && parentMap != null && parentMap.containsKey(EKK0351B002CBSMSG1LIST))
		{

			childList = (ArrayList)parentMap.get(EKK0351B002CBSMSG1LIST);

			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if (listFUSV030903SC_kk_t_op_svc_kei_EKK0351B002CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = listFUSV030903SC_kk_t_op_svc_kei_EKK0351B002CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = listFUSV030903SC_kk_t_op_svc_kei_EKK0351B002CBSMsg1List.addDataBean();
				}

				HashMap childMap = (HashMap)childList.get(i);

				if (subbean == null)
				{
					continue;
				}

				if (childMap == null)
				{
					continue;
				}

				// オプションサービス契約一覧照会(サービス契約番号)タイプ.オプションサービスコード名称 
				// ← オプションサービス契約一覧照会(サービス契約番号)明細.オプションサービスコード名称
				subbean.sendMessageString(FUW10701SFConst.OP_SVC_CD_NM_04, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("op_svc_cd_nm"));
				// オプションサービス契約一覧照会(サービス契約番号)タイプ.オプションサービス契約ステータス 
				// ← オプションサービス契約一覧照会(サービス契約番号)明細.オプションサービス契約ステータス
				subbean.sendMessageString(FUW10701SFConst.OP_SVC_KEI_STAT_04, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("op_svc_kei_stat"));
				// オプションサービス契約一覧照会(サービス契約番号)タイプ.オプションサービス契約番号 
				// ← オプションサービス契約一覧照会(サービス契約番号)明細.オプションサービス契約番号
				subbean.sendMessageString(FUW10701SFConst.OP_SVC_KEI_NO_04, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("op_svc_kei_no"));
				// オプションサービス契約一覧照会(サービス契約番号)タイプ.オプションサービスコード 
				// ← オプションサービス契約一覧照会(サービス契約番号)明細.オプションサービスコード
				subbean.sendMessageString(FUW10701SFConst.OP_SVC_CD_04, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("op_svc_cd"));
				// オプションサービス契約一覧照会(サービス契約番号)タイプ.料金コースコード 
				// ← オプションサービス契約一覧照会(サービス契約番号)明細.料金コースコード
				subbean.sendMessageString(FUW10701SFConst.PCRS_CD_04, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pcrs_cd"));
				// オプションサービス契約一覧照会(サービス契約番号)タイプ.料金プランコード 
				// ← オプションサービス契約一覧照会(サービス契約番号)明細.料金プランコード
				subbean.sendMessageString(FUW10701SFConst.PPLAN_CD_04, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pplan_cd"));
				// オプションサービス契約一覧照会(サービス契約番号)タイプ.オプションサービス契約ステータス名称 
				// ← オプションサービス契約一覧照会(サービス契約番号)明細.オプションサービス契約ステータス名称
				subbean.sendMessageString(FUW10701SFConst.OP_SVC_KEI_STAT_NM_04, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("op_svc_kei_stat_nm"));
				// オプションサービス契約一覧照会(サービス契約番号)タイプ.サービス解約理由コード 
				// ← オプションサービス契約一覧照会(サービス契約番号)明細.サービス解約理由コード
				subbean.sendMessageString(FUW10701SFConst.SVC_DLRE_CD_04, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_dlre_cd"));
				// オプションサービス契約一覧照会(サービス契約番号)タイプ.サービス課金開始年月日
				// ← オプションサービス契約一覧照会(サービス契約番号)明細.サービス課金開始年月日
				subbean.sendMessageString(FUW10701SFConst.SVC_CHRG_STAYMD_04, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("svc_chrg_staymd"));
				// オプションサービス契約一覧照会(サービス契約番号)タイプ.サービス課金終了年月日
				// ← オプションサービス契約一覧照会(サービス契約番号)明細.サービス課金終了年月日
				subbean.sendMessageString(FUW10701SFConst.SVC_CHRG_ENDYMD_04, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("svc_chrg_endymd"));
				// オプションサービス契約一覧照会(サービス契約番号)タイプ.表示用サービス提供開始年月日 
				// ← オプションサービス契約一覧照会(サービス契約番号)明細.表示用サービス提供開始年月日
				subbean.sendMessageString(FUW10701SFConst.DSP_SVCTK_STAYMD_04, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("dsp_svctk_staymd"));
				// オプションサービス契約一覧照会(サービス契約番号)タイプ.最大オプションサービス数 
				// ←  オプションサービス契約一覧照会(サービス契約番号)明細.最大オプションサービス数
				subbean.sendMessageString(FUW10701SFConst.MAX_OP_SVC_CNT_04, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("max_op_svc_cnt"));

			}
		}

		return bean;
	}

	/**
	 * 下りマッピングをします。(料金コース_オプションサービス一意照会SC)
	 * 
	 * <br> 
	 * @param bean eoスマートリンク申込
	 * @param outputMap
	 * @return X31SDataBeanAccess
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess getFUSV030904SC(X31SDataBeanAccess bean, HashMap<String, Object> outputMap)
	{
		HashMap parentMap = null;
		if (outputMap.containsKey(FUSV030904SC))
		{
			parentMap = (HashMap)outputMap.get(FUSV030904SC);
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listFUSV030904SC_kk_m_pcrs_op_svc_EKK0811A010CBSMsg1List = bean.getDataBeanArray(FUW10701SFConst.KK_M_PCRS_OP_SVC);

		childList = null;

		if (listFUSV030904SC_kk_m_pcrs_op_svc_EKK0811A010CBSMsg1List != null && parentMap != null && parentMap.containsKey(EKK0811A010CBSMSG1LIST))
		{

			childList = (ArrayList)parentMap.get(EKK0811A010CBSMSG1LIST);

			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if (listFUSV030904SC_kk_m_pcrs_op_svc_EKK0811A010CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = listFUSV030904SC_kk_m_pcrs_op_svc_EKK0811A010CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = listFUSV030904SC_kk_m_pcrs_op_svc_EKK0811A010CBSMsg1List.addDataBean();
				}

				HashMap childMap = (HashMap)childList.get(i);

				if (subbean == null)
				{
					continue;
				}

				if (childMap == null)
				{
					continue;
				}

				// 料金コース_オプションサービス一意明細タイプ.最大オプションサービス数 ←  料金コース_オプションサービス一意照会明細.最大オプションサービス数
				subbean.sendMessageString(FUW10701SFConst.MAX_OP_SVC_CNT_05, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("max_op_svc_cnt"));
				// 料金コース_オプションサービス一意明細タイプ.無料オプションサービス数 ← 料金コース_オプションサービス一意照会明細.無料オプションサービス数
				subbean.sendMessageString(FUW10701SFConst.MRYO_OP_SVC_CNT_05, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("mryo_op_svc_cnt"));

			}
		}

		return bean;
	}

	/**
	 * 下りマッピングをします。(料金プラン固定単価SC)
	 * 
	 * <br> 
	 * @param bean eoスマートリンク申込
	 * @param outputMap
	 * @return X31SDataBeanAccess
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess getFUSV030905SC(X31SDataBeanAccess bean, HashMap<String, Object> outputMap)
	{
		HashMap parentMap = null;
		if (outputMap.containsKey(FUSV030905SC))
		{
			parentMap = (HashMap)outputMap.get(FUSV030905SC);
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listFUSV030905SC_kk_m_pplan_kttanka_EKK0601B001CBSMsg1List =
				bean.getDataBeanArray(FUW10701SFConst.KK_M_PPLAN_KTTANKA);

		childList = null;

		if (listFUSV030905SC_kk_m_pplan_kttanka_EKK0601B001CBSMsg1List != null && parentMap != null && parentMap.containsKey(EKK0601B001CBSMSG1LIST))
		{

			childList = (ArrayList)parentMap.get(EKK0601B001CBSMSG1LIST);

			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if (listFUSV030905SC_kk_m_pplan_kttanka_EKK0601B001CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = listFUSV030905SC_kk_m_pplan_kttanka_EKK0601B001CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = listFUSV030905SC_kk_m_pplan_kttanka_EKK0601B001CBSMsg1List.addDataBean();
				}

				HashMap childMap = (HashMap)childList.get(i);

				if (subbean == null)
				{
					continue;
				}

				if (childMap == null)
				{
					continue;
				}

				// 料金プラン固定単価明細タイプ.料金プラン固定金額 ←  料金プラン固定単価(オプション申込料金)明細.最大オプションサービス数
				subbean.sendMessageString(FUW10701SFConst.PPLAN_KOTEI_AMNT_06, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_kotei_amnt"));
				// 料金プラン固定単価明細タイプ.料金プラン固定単位コード ← 料金プラン固定単価(オプション申込料金)明細.料金プラン固定単位コード
				subbean.sendMessageString(FUW10701SFConst.PPLAN_KOTEI_TANI_CD_NM_06, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_kotei_tani_cd_nm"));
				// 料金プラン固定単価明細タイプ.料金プラン単価種別コード ← 料金プラン固定単価(オプション申込料金)明細.料金プラン単価種別コード
				subbean.sendMessageString(FUW10701SFConst.PPLAN_TANKA_SBT_CD_06, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_tanka_sbt_cd"));
				// 料金プラン固定単価明細タイプ.料金プラン料金種別コード ← 料金プラン固定単価(オプション申込料金)明細.料金プラン料金種別コード
				subbean.sendMessageString(FUW10701SFConst.PPLAN_PRC_SBT_CD_06, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_prc_sbt_cd"));

			}
		}

		return bean;
	}

	/**
	 * 下りマッピングをします。(コード名称管理一覧照会SC)
	 * 
	 * <br> 
	 * @param bean eoスマートリンク申込
	 * @param outputMap
	 * @return X31SDataBeanAccess
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess getFUSV030906SC(X31SDataBeanAccess bean, HashMap<String, Object> outputMap)
	{
		HashMap parentMap = null;
		if (outputMap.containsKey(FUSV030906SC))
		{
			parentMap = (HashMap)outputMap.get(FUSV030906SC);
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listFUSV030906SC_kap_hambai_form_cd_list_EZM0171B010CBSMsg1List =
				bean.getDataBeanArray(FUW10701SFConst.KAP_HAMBAI_FORM_CD_LIST);

		childList = null;

		if (listFUSV030906SC_kap_hambai_form_cd_list_EZM0171B010CBSMsg1List != null && parentMap != null
				&& parentMap.containsKey(EZM0171B010CBSMSG1LIST))
		{

			childList = (ArrayList)parentMap.get(EZM0171B010CBSMSG1LIST);

			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if (listFUSV030906SC_kap_hambai_form_cd_list_EZM0171B010CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = listFUSV030906SC_kap_hambai_form_cd_list_EZM0171B010CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = listFUSV030906SC_kap_hambai_form_cd_list_EZM0171B010CBSMsg1List.addDataBean();
				}

				HashMap childMap = (HashMap)childList.get(i);

				if (subbean == null)
				{
					continue;
				}

				if (childMap == null)
				{
					continue;
				}

				// 割賦販売形態コード明細タイプ.コード区分 ←  コード名称管理一覧照会明細.コード区分
				subbean.sendMessageString(FUW10701SFConst.CD_DIV_07, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cd_div"));
				// 割賦販売形態コード明細タイプ.コード区分名 ← コード名称管理一覧照会明細.コード区分名
				subbean.sendMessageString(FUW10701SFConst.CD_DIV_NM_07, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cd_div_nm"));
				// 割賦販売形態コード明細タイプ.コード区分略称 ← コード名称管理一覧照会明細.コード区分略称
				subbean.sendMessageString(FUW10701SFConst.CD_DIV_ALI_07, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cd_div_ali"));
			}
		}

		return bean;
	}

	/**
	 * 下りマッピングをします。(業務パラメータ管理一意照会マップ)
	 *
	 * <br>
	 * @param bean eoスマートリンク申込
	 * @param outputMap
	 * @return X31SDataBeanAccess
	 */
	public X31SDataBeanAccess getFUSV030907SC(X31SDataBeanAccess bean, HashMap<String, Object> outputMap)
	{
		return getEZM0321A010WorkParamSette(bean, outputMap, FUSV030907SC, FUW10701SFConst.INFO_TABLET_DISP_NUM);
	}

	/**
	 * 下りマッピングをします。(業務パラメータ管理一意照会マップ)<br>
	 * (ＧＨ宅内機器型式）
	 *
	 * <br>
	 * @param bean eoスマートリンク申込
	 * @param outputMap
	 * @return X31SDataBeanAccess
	 */
	public X31SDataBeanAccess getFUSV030908SC(X31SDataBeanAccess bean, HashMap<String, Object> outputMap)
	{
		return getEZM0321A010WorkParamSette(bean, outputMap, FUSV030908SC, FUW10701SFConst.KK_GH_TKKKMDL);
	}

	/**
	 * 下りマッピング用部品
	 * EZM0321A010のwork_param_sette_value項目をbeanのbeanItem項目にString型で設定します。
	 * <br>
	 * @param bean
	 * @param outputMap
	 * @param sc
	 * @param beanItem
	 * @return X31SDataBeanAccess
	 */
	@SuppressWarnings("unchecked")
	private X31SDataBeanAccess getEZM0321A010WorkParamSette(X31SDataBeanAccess bean, HashMap<String, Object> outputMap, String sc, String beanItem)
	{
		HashMap<String, Object> parentMap = null;
		if (outputMap.containsKey(sc))
		{
			parentMap = (HashMap<String, Object>)outputMap.get(sc);
		}

		if (null != parentMap && parentMap.containsKey(EZM0321A010CBSMSG1LIST))
		{
			ArrayList<HashMap<String, Object>> childList = (ArrayList<HashMap<String, Object>>)parentMap.get(EZM0321A010CBSMSG1LIST);

			for (int i = 0; i < childList.size(); i++)
			{
				HashMap<String, Object> childMap = childList.get(i);

				if (childMap.containsKey(WORK_PARAM_SETTE_VALUE))
				{
					// 引数beanItemの項目 ←
					// 業務パラメータ管理一意照会.業務パラメータ管理一意照会明細.業務パラメータ名
					bean.sendMessageString(beanItem, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get(WORK_PARAM_SETTE_VALUE));
				}
			}
		}
		return bean;
	}

	// ANK-3484-00-00 ADD START
	/**
	 * 下りマッピングをします。(料金プラン固定単価SC（ＰＣワイドプラン）)
	 * 
	 * <br> 
	 * @param bean eoスマートリンク申込
	 * @param outputMap
	 * @return X31SDataBeanAccess
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess getFUSV030909SC(X31SDataBeanAccess bean, HashMap<String, Object> outputMap)
	{
		HashMap parentMap = null;
		if (outputMap.containsKey(FUSV030909SC))
		{
			parentMap = (HashMap)outputMap.get(FUSV030909SC);
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listFUSV030909SC_kk_m_pplan_kttanka_pc_wid_plan_EKK0601B001CBSMsg1List =
				bean.getDataBeanArray(FUW10701SFConst.KK_M_PPLAN_KTTANKA_PC_WID_PLAN_LIST);

		childList = null;

		if (listFUSV030909SC_kk_m_pplan_kttanka_pc_wid_plan_EKK0601B001CBSMsg1List != null && parentMap != null && parentMap.containsKey(EKK0601B001CBSMSG1LIST))
		{

			childList = (ArrayList)parentMap.get(EKK0601B001CBSMSG1LIST);

			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if (listFUSV030909SC_kk_m_pplan_kttanka_pc_wid_plan_EKK0601B001CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = listFUSV030909SC_kk_m_pplan_kttanka_pc_wid_plan_EKK0601B001CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = listFUSV030909SC_kk_m_pplan_kttanka_pc_wid_plan_EKK0601B001CBSMsg1List.addDataBean();
				}

				HashMap childMap = (HashMap)childList.get(i);

				if (subbean == null)
				{
					continue;
				}

				if (childMap == null)
				{
					continue;
				}

				// 料金プラン固定単価明細タイプ.料金プラン固定金額 ←  料金プラン固定単価（ＰＣワイドプラン）明細.最大オプションサービス数
				subbean.sendMessageString(FUW10701SFConst.PPLAN_KOTEI_AMNT_PC_WID_PLAN_19, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_kotei_amnt"));
				// 料金プラン固定単価明細タイプ.料金プラン固定単位コード ← 料金プラン固定単価（ＰＣワイドプラン）明細.料金プラン固定単位コード
				subbean.sendMessageString(FUW10701SFConst.PPLAN_KOTEI_TANI_CD_NM_PC_WID_PLAN_19, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_kotei_tani_cd_nm"));
				// 料金プラン固定単価明細タイプ.料金プラン単価種別コード ← 料金プラン固定単価（ＰＣワイドプラン）明細.料金プラン単価種別コード
				subbean.sendMessageString(FUW10701SFConst.PPLAN_TANKA_SBT_CD_PC_WID_PLAN_19, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_tanka_sbt_cd"));
				// 料金プラン固定単価明細タイプ.料金プラン料金種別コード ← 料金プラン固定単価（ＰＣワイドプラン）明細.料金プラン料金種別コード
				subbean.sendMessageString(FUW10701SFConst.PPLAN_PRC_SBT_CD_PC_WID_PLAN_19, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_prc_sbt_cd"));

			}
		}

		return bean;
	}
	
	/**
	 * 下りマッピングをします。(料金プラン固定単価SC（ＰＣプラン）)
	 * 
	 * <br> 
	 * @param bean eoスマートリンク申込
	 * @param outputMap
	 * @return X31SDataBeanAccess
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess getFUSV030910SC(X31SDataBeanAccess bean, HashMap<String, Object> outputMap)
	{
		HashMap parentMap = null;
		if (outputMap.containsKey(FUSV030910SC))
		{
			parentMap = (HashMap)outputMap.get(FUSV030910SC);
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listFUSV030910SC_kk_m_pplan_kttanka_pc_plan_EKK0601B001CBSMsg1List =
				bean.getDataBeanArray(FUW10701SFConst.KK_M_PPLAN_KTTANKA_PC_PLAN_LIST);

		childList = null;

		if (listFUSV030910SC_kk_m_pplan_kttanka_pc_plan_EKK0601B001CBSMsg1List != null && parentMap != null && parentMap.containsKey(EKK0601B001CBSMSG1LIST))
		{

			childList = (ArrayList)parentMap.get(EKK0601B001CBSMSG1LIST);

			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if (listFUSV030910SC_kk_m_pplan_kttanka_pc_plan_EKK0601B001CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = listFUSV030910SC_kk_m_pplan_kttanka_pc_plan_EKK0601B001CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = listFUSV030910SC_kk_m_pplan_kttanka_pc_plan_EKK0601B001CBSMsg1List.addDataBean();
				}

				HashMap childMap = (HashMap)childList.get(i);

				if (subbean == null)
				{
					continue;
				}

				if (childMap == null)
				{
					continue;
				}

				// 料金プラン固定単価明細タイプ.料金プラン固定金額 ←  料金プラン固定単価（ＰＣプラン）明細.最大オプションサービス数
				subbean.sendMessageString(FUW10701SFConst.PPLAN_KOTEI_AMNT_PC_PLAN_18, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_kotei_amnt"));
				// 料金プラン固定単価明細タイプ.料金プラン固定単位コード ← 料金プラン固定単価（ＰＣプラン）明細.料金プラン固定単位コード
				subbean.sendMessageString(FUW10701SFConst.PPLAN_KOTEI_TANI_CD_NM_PC_PLAN_18, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_kotei_tani_cd_nm"));
				// 料金プラン固定単価明細タイプ.料金プラン単価種別コード ← 料金プラン固定単価（ＰＣプラン）明細.料金プラン単価種別コード
				subbean.sendMessageString(FUW10701SFConst.PPLAN_TANKA_SBT_CD_PC_PLAN_18, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_tanka_sbt_cd"));
				// 料金プラン固定単価明細タイプ.料金プラン料金種別コード ← 料金プラン固定単価（ＰＣプラン）明細.料金プラン料金種別コード
				subbean.sendMessageString(FUW10701SFConst.PPLAN_PRC_SBT_CD_PC_PLAN_18, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_prc_sbt_cd"));

			}
		}

		return bean;
	}
	// ANK-3484-00-00 ADD END
	
	/**
	 * 下りマッピングをします。(eoスマートリンク関連チェックコンポーネントCC)
	 *
	 * <br>
	 * @param bean eoスマートリンク申込
	 * @param outputMap
	 * @return X31SDataBeanAccess
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess getFUSV030901CC(X31SDataBeanAccess bean, HashMap<String, Object> outputMap) throws Exception
	{
		Map<String, String> item = JFUWebCommon.getDispItemsAsMap(QUERY_PATH, QUERY_ATTR_NAME);

		HashMap parentMap = null;
		if (outputMap.containsKey(FUSV030901CC))
		{
			parentMap = (HashMap)outputMap.get(FUSV030901CC);
		}

		X31SDataBeanAccessArray listFUSV030901CC_reration_kekka_list = bean.getDataBeanArray(FUW10701SFConst.RERATION_KEKKA_LIST);

		X31SDataBeanAccess subbean = listFUSV030901CC_reration_kekka_list.addDataBean();

		if (parentMap != null)
		{
			// 関連チェック結果リスト.関連チェック結果リスト ←  タブレット支払残高有無（ANK-2055-00-00にて未使用となる)
			subbean
					.sendMessageString(FUW10701SFConst.TABLET_PAY_ZAN_UM_16, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap
							.get(TABLET_PAY_ZAN_UM));
			// タブレット通算台数上限 ←  タブレット通算台数上限
			bean
					.sendMessageString(FUW10701SFConst.KK_TAB_TOTAL_CNT_MAX, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap
							.get(KK_TAB_TOTAL_CNT_MAX));
			// 同時割賦契約数上限 ←  同時割賦契約数上限
			bean.sendMessageString(FUW10701SFConst.KK_KAP_SHR_CNT_MAX, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get(KK_KAP_SHR_CNT_MAX));
			// フロント同時申込台数上限 ← 	 フロント同時申込台数上限
			bean.sendMessageString(FUW10701SFConst.FU_SHR_MSKM_CNT_MAX, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get(FU_SHR_MSKM_CNT_MAX));
			// 割賦契約割引適用上限数 ←  割賦契約割引適用上限数
			bean.sendMessageString(FUW10701SFConst.KK_KAP_WRBK_MAX, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get(KK_KAP_WRBK_MAX));
		}
		// Ｎｅｔ新規申込み台数制限値 ※プロパティファイルから取得
		bean.sendMessageString(FUW10701SFConst.NET_NEW_MSKM_CNT_MAX, X31CWebConst.DATABEAN_SET_VALUE, item.get(NET_NEW_MSKM_CNT_MAX));
		// 複数台申込不可期間申込可能台数制限値 ※プロパティファイルから取得
		bean.sendMessageString(FUW10701SFConst.MULTI_MSKM_NOT_PSB_MSKM_CNT_MAX, X31CWebConst.DATABEAN_SET_VALUE, item
				.get(MULTI_MSKM_PSB_MSKM_CNT_MAX));

		return bean;
	}

	/**
	 * 下りマッピングをします。(GH申込表示制御CC)
	 *
	 * <br>
	 * @param bean eoスマートリンク申込
	 * @param outputMap
	 * @return X31SDataBeanAccess
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess getFUSV030902CC(X31SDataBeanAccess bean, HashMap<String, Object> outputMap) throws Exception
	{
		HashMap parentMap = null;

		if (outputMap.containsKey(FUSV030902CC))
		{
			parentMap = (HashMap)outputMap.get(FUSV030902CC);
		}

		if (parentMap != null)
		{
			// ファミリーパック表示パターン
			bean.sendMessageString(FUW10701SFConst.GH_ROOTER_KBN, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get(HOYU_ROOTER_KBN));
		}

		return bean;
	}
	
	// ANK-3484-00-00 ADD START
	/**
	 * 下りマッピングをします。(端末保障操作CC)
	 *
	 * <br>
	 * @param bean 
	 * @param outputMap
	 * @return X31SDataBeanAccess
	 */
	public X31SDataBeanAccess getFUSV030903CC(X31SDataBeanAccess bean, HashMap<String, Object> outputMap, String opeDate) throws Exception
	{
		HashMap parentMap = null;

		if (outputMap.containsKey(FUSV030903CC))
		{
			parentMap = (HashMap)outputMap.get(FUSV030903CC);
		}

		if (parentMap != null)
		{
			HashMap<String, List<HashMap<String, Object>>> infoListMap = new HashMap<String, List<HashMap<String, Object>>>();
			List<HashMap<String, Object>> pcPlanList = new ArrayList<HashMap<String, Object>>();
			List<HashMap<String, Object>> pcWidePlanList = new ArrayList<HashMap<String, Object>>();
			HashMap<String, Object> pcPlanMap = new HashMap<String, Object>();
			HashMap<String, Object> pcWideMap = new HashMap<String, Object>();
			
			if (parentMap.get("info_list") != null)
			{
				infoListMap = (HashMap<String, List<HashMap<String, Object>>>) parentMap.get("info_list");
				if (infoListMap.get("pc_plan_list") != null)
				{
					pcPlanList = infoListMap.get("pc_plan_list");
					if (pcPlanList.size() != 0)
					{
						pcPlanMap = pcPlanList.get(0);
					}
				}
					
				if (infoListMap.get("pc_wide_list") != null)
				{
					pcWidePlanList = infoListMap.get("pc_wide_list");
					if (pcWidePlanList.size() != 0)
					{
						pcWideMap = pcWidePlanList.get(0);
					}
				}
			}
			
			if (!JKKStringUtil.isNullEmpty(pcPlanMap.get(OP_SVC_KEI_STAT)))
			{
				// ＰＣプランリスト.オプションサービス契約ステータスがnullまたは空文字でない場合、以下を行う。
				if (!JFUStrConst.CD00037_910.equals(pcPlanMap.get(OP_SVC_KEI_STAT)) && 
						!JFUStrConst.CD00037_920.equals(pcPlanMap.get(OP_SVC_KEI_STAT)))
				{
					// ************************************************************************************************
					// ＰＣプランを契約中の場合
					// （ＰＣプランリスト.オプションサービス契約ステータスが解約済でない、かつ、キャンセル済でない場合）
					// ************************************************************************************************
					if (!JKKStringUtil.isNullEmpty(pcWideMap.get(SBOP_SVC_KEI_STAT)))
					{
						// ＰＣワイドプランリスト.オプションサービス契約ステータスがnullまたは空文字でない場合、以下を行う。
						if (!JFUStrConst.CD00037_910.equals(pcWideMap.get(SBOP_SVC_KEI_STAT)) 
								&& !JFUStrConst.CD00037_920.equals(pcWideMap.get(SBOP_SVC_KEI_STAT)))
						{
							// *******************************************************************************************************
							// ＰＣワイドプランを契約中の場合
							// （ＰＣワイドプランリスト.オプションサービス契約ステータスが解約済でない、かつ、キャンセル済でない場合）
							// *******************************************************************************************************
							
							// ＰＣプラン申込状態識別コード
							bean.sendMessageString(FUW10701SFConst.PC_PLAN_STAT_SKCD, X31CWebConst.DATABEAN_SET_VALUE, PC_WIDE_PLAN_CONTRACT);
							return bean;
						}
						else
						{
							// ***********************************************************************************************
							// ＰＣワイドプランが解約済、または、キャンセル済の場合
							// （ＰＣワイドプランリスト.オプションサービス契約ステータスが解約済、または、キャンセル済の場合）
							// ***********************************************************************************************
							
							// ＰＣプラン申込状態識別コード
							bean.sendMessageString(FUW10701SFConst.PC_PLAN_STAT_SKCD, X31CWebConst.DATABEAN_SET_VALUE, PC_PLAN_CONTRACT);
							return bean;
						}
					}
					else
					{
						// ＰＣワイドプランリスト.オプションサービス契約ステータスがnullまたは空文字の場合
						// ＰＣプラン申込状態識別コード
						bean.sendMessageString(FUW10701SFConst.PC_PLAN_STAT_SKCD, X31CWebConst.DATABEAN_SET_VALUE, PC_PLAN_CONTRACT);
						return bean;
					}
				}
				else if (JFUStrConst.CD00037_910.equals(pcPlanMap.get(OP_SVC_KEI_STAT)))
				{
					// ******************************************************************
					// ＰＣプランが解約済の場合
					// （ＰＣプランリスト.オプションサービス契約ステータスが解約済の場合）
					// ******************************************************************
					
					// ＰＣプランリスト.サービス課金終了年月日を取得
					String svcChrgEndymd = (String)pcPlanMap.get(SVC_CHRG_ENDYMD);
					String tenMonthLaterSvcChrgEndymd = null;
					String tenMonthLaterSvcChrgEndym = null;
					String tmcpCnclRnkiYmd = (String)pcPlanMap.get(TMCP_CNCL_RNKI_YMD);
					if (!JKKStringUtil.isNullEmpty(svcChrgEndymd) && JFUWebCommon.isNull(tmcpCnclRnkiYmd))
					{
						// キャンセル連携年月日がnullまたは空文字の場合
						// サービス課金終了年月日がnullまたは空文字でない場合
						// サービス課金終了年月日の翌月から9ヶ月後の日付を取得
						tenMonthLaterSvcChrgEndymd = JPCUtilCommon.addMonth(svcChrgEndymd.substring(0, 6) + "01", 10);
						// サービス課金終了年月（10ヶ月後）を取得
						tenMonthLaterSvcChrgEndym = tenMonthLaterSvcChrgEndymd.substring(0, 6);
						
						if(Integer.parseInt(tenMonthLaterSvcChrgEndym) <= Integer.parseInt(opeDate.substring(0, 6)))
						{
							// **************************************************************
							// ＰＣプランのサービス課金終了日の翌月から9ヶ月経過している場合
							// **************************************************************
							// ＰＣプラン申込状態識別コード
							bean.sendMessageString(FUW10701SFConst.PC_PLAN_STAT_SKCD, X31CWebConst.DATABEAN_SET_VALUE, PC_PLAN_DSL_TEN_MONTH_LATER);
							return bean;
						}
						else
						{
							// *************************************
							// ＰＣプランが解約から10ヶ月未満の場合
							// *************************************
							// ＰＣプラン申込状態識別コード
							bean.sendMessageString(FUW10701SFConst.PC_PLAN_STAT_SKCD, X31CWebConst.DATABEAN_SET_VALUE, PC_PLAN_DSL_TEN_MONTH_EARLIER);
							return bean;
						}
					}
					else
					{
						// サービス課金終了年月日がnullまたは空文字の場合
						// ＰＣプラン申込状態識別コード
						bean.sendMessageString(FUW10701SFConst.PC_PLAN_STAT_SKCD, X31CWebConst.DATABEAN_SET_VALUE, PC_PLAN_NOT_CONTRACT);
						return bean;
					}
				}
				else if (JFUStrConst.CD00037_920.equals(pcPlanMap.get(OP_SVC_KEI_STAT)))
				{
					// ************************************************************************
					// ＰＣプランがキャンセル済の場合
					// （ＰＣプランリスト.オプションサービス契約ステータスがキャンセル済の場合）
					// ************************************************************************
					// ＰＣプラン申込状態識別コード
					bean.sendMessageString(FUW10701SFConst.PC_PLAN_STAT_SKCD, X31CWebConst.DATABEAN_SET_VALUE, PC_PLAN_NOT_CONTRACT);
					return bean;
				}
			}
			else
			{
				// ＰＣプランリスト.オプションサービス契約ステータスがnullまたは空文字の場合
				// ＰＣプラン申込状態識別コード
				bean.sendMessageString(FUW10701SFConst.PC_PLAN_STAT_SKCD, X31CWebConst.DATABEAN_SET_VALUE, PC_PLAN_NOT_CONTRACT);
				return bean;
			}
		}

		return bean;
	}
	// ANK-3484-00-00 ADD END
	
	@SuppressWarnings("unchecked")

	/**
	 * ＧＨ宅内機器型式を取得します。
	 * 
	 * <br>
	 * @param bean eoスマートリンク申込
	 * @param outputMap
	 * @return GHで対象となる宅内機器型式コードの一覧
	 */
	private List<String> getKkGhTkkmdl(X31SDataBeanAccess bean, HashMap<String, Object> outputMap)
	{
		getFUSV030908SC(bean, outputMap);

		String ghTaknkikiModelCd = bean.sendMessageString(FUW10701SFConst.KK_GH_TKKKMDL, X31CWebConst.DATABEAN_GET_VALUE);
		if (ghTaknkikiModelCd == null)
		{
			return new ArrayList<String>();
		}

		return Arrays.asList(ghTaknkikiModelCd.split(","));
	}
// ANK-3642-00-00 ADD START
	/**
	 * 表示対象宅内機器チェック用のパラメータ生成
	 * @param commoninfoBean
	 * @param bl
	 * @return
	 */
	private HashMap<String, String> editTabletCheckParam(HashMap<String, String> workMap, X31SDataBeanAccess bean, X31BWebBusinessLogic bl)
	{
		// 販売タイプを取得
		workMap.put(JFUStrConst.TABLET_DSP_HANBAI_TYPE, JFUStrConst.HNBAI_TYPE_CON);
		// 申込区分
		workMap.put(JFUStrConst.TABLET_DSP_MSKM_KBN, "3");
		// サービスタイプ
		String serviceType = null;
		if (JFUStrConst.CD00133_04.equals(bean.sendMessageString(CommonInfoCFConst.PRC_GRP_CD_23, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			serviceType = JFUStrConst.CD01176_MF;
		} else if (JFUStrConst.CD00133_03.equals(bean.sendMessageString(CommonInfoCFConst.PRC_GRP_CD_23, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			serviceType = JFUStrConst.CD01176_MZ;
		} else
		{
			serviceType = JFUStrConst.CD01176_HF;
		}
		workMap.put(JFUStrConst.TABLET_DSP_SERVICE_TYPE, serviceType);
		// オンライン運用日付
		String strOpeDate = JFUWebCommon.getOpeDate(bl, null);
		workMap.put(JFUStrConst.TABLET_DSP_DISPSTART_YMD, strOpeDate);
		
		return workMap;
	}
// ANK-3642-00-00 ADD END
}