/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：FUSV0041_FUSV0041OPDBMapper
*	ソースファイル名：FUSV0041_FUSV0041OPDBMapper.java
*	作成者			：FJ
*	日付			：2012年01月31日
*＜機能概要＞
*	BP（2番号サービスお申し込み(初期表示)）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/01/31	FJ			新規作成
*	v5.00		2013/01/29	FJ)西村		【ST2-2013-0000294】照査済・締結済の場合の機器変更対応
*	v5.00		2013/02/06	FJ)美濃原	【ANK-1399-00-00】  フロントＳ文言確認修正対応 初期費用
*	v5.00		2013/02/08	FJ)西村		【ST2-2013-0000691】予約適用コード(EKK0081B508)追加対応
*	v9.00		2014/05/21	FJ)若崎		【ANK-2057-00-00】eo多機能ルーターによる複数通話対応
*  v29.00       2017/01/23  FJ)張本     【ANK-2953-00-00】電話番号のポート割当方法改善
*	v31.00.00	2017/11/20	FJ)杉本		【ANK-3136-00-00】OPMSハードウエア保守切れ対応
*  v61.00       2023/04/10  FJ)張本     【ANK-4315-00-00】【eo定期】eoホームゲートウェイ導入対応
**********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
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.JFUStrConst;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.FUW01403SF.FUW01403SFConst;

/**
 * DataBean-BPマッピングをする。
 *
 */
public class FUSV0041_FUSV0041OPDBMapper
{

	/** 機器オプションサービス契約登録コモンコンポーネント部品CC */
	private static final String CC_TITLE_FUSV004103 = "FUSV004103CC";
	
	/** 整理番号 */
	private static final String KEY_SEIRI_NO = "key_seiri_no";
	
	/** OUT項目:ルーター保有区分 */
	private static final String OUT_ROUTER_HOYU_KBN = "out_router_hoyu_kbn";
	/** OUT項目:2ポートVA保有区分 */
	private static final String OUT_TOW_PORT_VA_HOYU_KB = "out_tow_port_va_hoyu_kb";
	
	/** 機器オプションサービス契約一覧照会（複合検索）SC */
	private static final String FUSV004107_S_C = "FUSV004107SC";
	/** 機器オプションサービス契約一覧照会（複合検索）明細 */
	private static final String EKK2811_B504_C_B_S_MSG1_LIST = "EKK2811B504CBSMsg1List";
	/** 機能コード */
	private static final String FUNC_CODE = "func_code";
	/** ＫＥＹ＿SYSID */
	private static final String KEY_SYSID = "key_sysid";
	/** SYSID */
	private static final String SYSID = "sysid";
	/** サービス契約番号 */
	private static final String SVC_KEI_NO = "svc_kei_no";
	/** サービス契約回線内訳番号 */
	private static final String SVC_KEI_KAISEN_UCWK_NO = "svc_kei_kaisen_ucwk_no";
	/** 異動区分 */
	private static final String IDO_DIV = "ido_div";

	
	/**
	 * コンストラクタ
	 */
	public FUSV0041_FUSV0041OPDBMapper()
	{
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV004101SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// ＳＹＳＩＤ → eo光電話サービス契約情報一覧照会マップ.ＫＥＹ＿SYSID
		parentMap.put("key_sysid", bean[0].sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約番号 → eo光電話サービス契約情報一覧照会マップ.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV004101SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV004102SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// サービス契約番号 → 機器提供サービス契約一覧照会（サービス契約番号）マップ.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV004102SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV004104SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 部品呼び出し → 料金プラン固定単価（基本料金）一覧照会マップ.ＫＥＹ＿料金コースコード
		parentMap.put("key_pcrs_cd", JFUStrConst.EMPTY);
		// 料金プランコード → 料金プラン固定単価（基本料金）一覧照会マップ.ＫＥＹ＿料金プランコード
		parentMap.put("key_pplan_cd", bean[0].sendMessageString("料金プランコード", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV004104SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV004105SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 部品呼び出し → 料金プラン固定単価（eo光電話アダプター利用料）一覧照会マップ.ＫＥＹ＿料金コースコード
		parentMap.put("key_pcrs_cd", JFUStrConst.EMPTY);
		// 部品呼び出し → 料金プラン固定単価（eo光電話アダプター利用料）一覧照会マップ.ＫＥＹ＿料金プランコード
		parentMap.put("key_pplan_cd", JFUStrConst.EMPTY);

		outputMap.put("FUSV004105SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param isMansFlg true:マンション、false:マンション以外
	 */
	@SuppressWarnings("unchecked")
	public HashMap setJFUInitialCostShokaiCC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, boolean isMansFlg)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 初期費用照会 拡張ID取得キー
		if (isMansFlg)
		{
			// マンションの場合
			parentMap.put(JFUStrConst.INITIAL_COST_KEY, JFUStrConst.INITIAL_COST_FUSV0041_MANS);
		}
		else
		{
			// マンション以外の場合
			parentMap.put(JFUStrConst.INITIAL_COST_KEY, JFUStrConst.INITIAL_COST_FUSV0041);
		}

		outputMap.put("JFUInitialCostShokaiCC", parentMap);

		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV004106SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		// ＳＹＳＩＤ → eo光電話サービス契約情報一覧照会マップ.ＫＥＹ＿SYSID
		parentMap.put("key_sysid", bean[0].sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約回線内訳番号 → eo光電話サービス契約情報一覧照会マップ.サービス契約回線内訳番号
		parentMap.put("key_svc_kei_kaisen_ucwk_no", bean[0].sendMessageString(FUW01403SFConst.SVC_KEI_KAISEN_UCWK_NO, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV004106SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングを行います。
	 * @param bean　[0]：共有フォームビーン　[1]：２番号サービスお申し込み
	 * @param outputMap
	 * @param opeDate
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV004107SC(X31SDataBeanAccess[] bean, HashMap outputMap, String opeDate, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		// ＳＹＳＩＤ → ＫＥＹ＿SYSID
		parentMap.put(KEY_SYSID, bean[0].sendMessageString(FUW01403SFConst.SYSID, X31CWebConst.DATABEAN_GET_VALUE));
		// 運用日付 → ＫＥＹ＿予約適用年月日
		parentMap.put("key_rsv_aply_ymd", opeDate);
		
		ArrayList arrayList = new ArrayList<HashMap>();
		HashMap detailMap = new HashMap();
		arrayList.add(detailMap);
		parentMap.put(EKK2811_B504_C_B_S_MSG1_LIST, arrayList);
		

		outputMap.put(FUSV004107_S_C, parentMap);

		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setJFUInitialCostShokaiCCWari(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 初期費用照会 拡張ID取得キー
		parentMap.put(JFUStrConst.INITIAL_COST_KEY, JFUStrConst.INITIAL_COST_FUSV0041_WARIATE);

		outputMap.put("JFUInitialCostShokaiCCWari", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV004104CC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// SYSID → ２番号サービスお申し込みマップ.SYSID
		parentMap.put(SYSID, bean[0].sendMessageString(FUW01403SFConst.SYSID, X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約回線内訳番号 → ２番号サービスお申し込みマップ.サービス契約回線内訳番号
		parentMap.put(SVC_KEI_KAISEN_UCWK_NO, bean[0].sendMessageString(FUW01403SFConst.SVC_KEI_KAISEN_UCWK_NO, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV004104CC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV004105CC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// サービス契約番号 → ２番号サービスお申し込みマップ.サービス契約番号
		parentMap.put(SVC_KEI_NO, bean[0].sendMessageString(FUW01403SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約回線内訳番号 → ２番号サービスお申し込みマップ.サービス契約回線内訳番号
		parentMap.put(SVC_KEI_KAISEN_UCWK_NO, bean[0].sendMessageString(FUW01403SFConst.SVC_KEI_KAISEN_UCWK_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// 異動区分 → ２番号サービスお申し込みマップ.異動区分
		parentMap.put(IDO_DIV, JFUStrConst.CD00576_00041);

		outputMap.put("FUSV004105CC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setJFUInitialCostShokaiCCKoji(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		String jdgeFlg = bean[0].sendMessageString(FUW01403SFConst.PPLAN_JUDGE_FLG, X31CWebConst.DATABEAN_GET_VALUE);
	
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 初期費用照会 拡張ID取得キー
		if ("1".equals(jdgeFlg))
		{
			// ホームの場合
			parentMap.put(JFUStrConst.INITIAL_COST_KEY, "FUSV0041_KJ_HT");
		}
		else if ("2".equals(jdgeFlg))
		{
			// メゾンの場合
			parentMap.put(JFUStrConst.INITIAL_COST_KEY, "FUSV0041_KJ_MZ");
		}
		else if ("3".equals(jdgeFlg))
		{
			// マンションの場合
			parentMap.put(JFUStrConst.INITIAL_COST_KEY, "FUSV0041_KJ_MT");
		}

		outputMap.put("JFUInitialCostShokaiCCKoji", parentMap);

		return outputMap;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getFUSV004101SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("FUSV004101SC"))
		{
			parentMap = (HashMap)outputMap.get("FUSV004101SC");
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listFUSV004101SC_svc_kei_info_list_EKK0081B508CBSMsg1List = bean[0].getDataBeanArray("サービス契約情報リスト");
		childList = null;
		if (listFUSV004101SC_svc_kei_info_list_EKK0081B508CBSMsg1List != null && parentMap != null && parentMap.containsKey("EKK0081B508CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0081B508CBSMsg1List");

			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if (listFUSV004101SC_svc_kei_info_list_EKK0081B508CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = listFUSV004101SC_svc_kei_info_list_EKK0081B508CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = listFUSV004101SC_svc_kei_info_list_EKK0081B508CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null)
				{
					continue;
				}

				// サービス契約情報リスト.ＳＹＳＩＤ ← eo光電話サービス契約情報一覧照会マップ.eo光電話サービス契約情報一覧照会明細.SYSID
				if (childMap != null)
				{
					subbean.sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sysid"));
				}
				else
				{
					subbean.sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// サービス契約情報リスト.サービス契約番号 ← eo光電話サービス契約情報一覧照会マップ.eo光電話サービス契約情報一覧照会明細.サービス契約番号
				if (childMap != null)
				{
					subbean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_no"));
				}
				else
				{
					subbean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// サービス契約情報リスト.サービス契約ステータス ← eo光電話サービス契約情報一覧照会マップ.eo光電話サービス契約情報一覧照会明細.サービス契約ステータス
				if (childMap != null)
				{
					subbean.sendMessageString("サービス契約ステータス", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_stat"));
				}
				else
				{
					subbean.sendMessageString("サービス契約ステータス", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// サービス契約情報リスト.料金コースコード（サービス契約） ← eo光電話サービス契約情報一覧照会マップ.eo光電話サービス契約情報一覧照会明細.料金コースコード（サービス契約）
				if (childMap != null)
				{
					subbean.sendMessageString("料金コースコード（サービス契約）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kk0081_pcrs_cd"));
				}
				else
				{
					subbean.sendMessageString("料金コースコード（サービス契約）", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// サービス契約情報リスト.料金プランコード（サービス契約） ← eo光電話サービス契約情報一覧照会マップ.eo光電話サービス契約情報一覧照会明細.料金プランコード（サービス契約）
				if (childMap != null)
				{
					subbean.sendMessageString("料金プランコード（サービス契約）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kk0081_pplan_cd"));
				}
				else
				{
					subbean.sendMessageString("料金プランコード（サービス契約）", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// サービス契約情報リスト.サービス契約内訳番号 ← eo光電話サービス契約情報一覧照会マップ.eo光電話サービス契約情報一覧照会明細.サービス契約内訳番号
				if (childMap != null)
				{
					subbean.sendMessageString("サービス契約内訳番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_ucwk_no"));
				}
				else
				{
					subbean.sendMessageString("サービス契約内訳番号", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// サービス契約情報リスト.サービス契約内訳ステータス ← eo光電話サービス契約情報一覧照会マップ.eo光電話サービス契約情報一覧照会明細.サービス契約内訳ステータス
				if (childMap != null)
				{
					subbean.sendMessageString("サービス契約内訳ステータス", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_ucwk_stat"));
				}
				else
				{
					subbean.sendMessageString("サービス契約内訳ステータス", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// サービス契約情報リスト.サービス契約回線内訳番号 ← eo光電話サービス契約情報一覧照会マップ.eo光電話サービス契約情報一覧照会明細.サービス契約回線内訳番号
				if (childMap != null)
				{
					subbean.sendMessageString("サービス契約回線内訳番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_kaisen_ucwk_no"));
				}
				else
				{
					subbean.sendMessageString("サービス契約回線内訳番号", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// サービス契約情報リスト.サービス契約回線内訳ステータス ← eo光電話サービス契約情報一覧照会マップ.eo光電話サービス契約情報一覧照会明細.サービス契約回線内訳ステータス
				if (childMap != null)
				{
					subbean.sendMessageString("サービス契約回線内訳ステータス", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_kaisen_ucwk_stat"));
				}
				else
				{
					subbean.sendMessageString("サービス契約回線内訳ステータス", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// サービス契約情報リスト.回線場所住所コード ← eo光電話サービス契約情報一覧照会マップ.eo光電話サービス契約情報一覧照会明細.回線場所住所コード
				if (childMap != null)
				{
					subbean.sendMessageString("回線場所住所コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kaisen_place_ad_cd"));
				}
				else
				{
					subbean.sendMessageString("回線場所住所コード", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// サービス契約情報リスト.サービス契約内訳ステータス ← eo光電話サービス契約情報一覧照会マップ.eo光電話サービス契約情報一覧照会明細.サービス契約内訳ステータス
				if (childMap != null)
				{
					subbean.sendMessageString("予約適用コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("rsv_aply_cd"));
				}
				else
				{
					subbean.sendMessageString("予約適用コード", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}

				// サービス契約情報リスト.回線場所郵便番号 ← eo光電話サービス契約情報一覧照会マップ.eo光電話サービス契約情報一覧照会明細.回線場所郵便番号
				if (childMap != null)
				{
					subbean.sendMessageString("回線場所郵便番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kaisen_place_pcd"));
				}
				else
				{
					subbean.sendMessageString("回線場所郵便番号", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// サービス契約情報リスト.回線場所都道府県名 ← eo光電話サービス契約情報一覧照会マップ.eo光電話サービス契約情報一覧照会明細.回線場所都道府県名
				if (childMap != null)
				{
					subbean.sendMessageString("回線場所都道府県名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kaisen_place_state_nm"));
				}
				else
				{
					subbean.sendMessageString("回線場所都道府県名", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// サービス契約情報リスト.回線場所市区町村名 ← eo光電話サービス契約情報一覧照会マップ.eo光電話サービス契約情報一覧照会明細.回線場所市区町村名
				if (childMap != null)
				{
					subbean.sendMessageString("回線場所市区町村名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kaisen_place_city_nm"));
				}
				else
				{
					subbean.sendMessageString("回線場所市区町村名", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// サービス契約情報リスト.回線場所大字通称名 ← eo光電話サービス契約情報一覧照会マップ.eo光電話サービス契約情報一覧照会明細.回線場所大字通称名
				if (childMap != null)
				{
					subbean.sendMessageString("回線場所大字通称名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kaisen_place_oaztsu_nm"));
				}
				else
				{
					subbean.sendMessageString("回線場所大字通称名", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// サービス契約情報リスト.回線場所字丁目名 ← eo光電話サービス契約情報一覧照会マップ.eo光電話サービス契約情報一覧照会明細.回線場所字丁目名
				if (childMap != null)
				{
					subbean.sendMessageString("回線場所字丁目名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kaisen_place_azcho_nm"));
				}
				else
				{
					subbean.sendMessageString("回線場所字丁目名", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// サービス契約情報リスト.回線場所番地号 ← eo光電話サービス契約情報一覧照会マップ.eo光電話サービス契約情報一覧照会明細.回線場所番地号
				if (childMap != null)
				{
					subbean.sendMessageString("回線場所番地号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kaisen_place_bnchigo"));
				}
				else
				{
					subbean.sendMessageString("回線場所番地号", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// サービス契約情報リスト.回線場所住所補記・建物名 ← eo光電話サービス契約情報一覧照会マップ.eo光電話サービス契約情報一覧照会明細.回線場所住所補記・建物名
				if (childMap != null)
				{
					subbean.sendMessageString("回線場所住所補記・建物名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kaisen_place_adrttm"));
				}
				else
				{
					subbean.sendMessageString("回線場所住所補記・建物名", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// サービス契約情報リスト.回線場所住所補記・部屋番号 ← eo光電話サービス契約情報一覧照会マップ.eo光電話サービス契約情報一覧照会明細.回線場所住所補記・部屋番号
				if (childMap != null)
				{
					subbean.sendMessageString("回線場所住所補記・部屋番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kaisen_place_adrrm"));
				}
				else
				{
					subbean.sendMessageString("回線場所住所補記・部屋番号", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// サービス契約情報リスト.回線場所番号 ← eo光電話サービス契約情報一覧照会マップ.eo光電話サービス契約情報一覧照会明細.回線場所番号
				if (childMap != null)
				{
					subbean.sendMessageString("回線場所番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kaisen_place_no"));
				}
				else
				{
					subbean.sendMessageString("回線場所番号", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// サービス契約情報リスト.予約適用年月日（サービス契約） ← eo光電話サービス契約情報一覧照会マップ.eo光電話サービス契約情報一覧照会明細.予約適用年月日（サービス契約）
				if (childMap != null)
				{
					subbean.sendMessageString("予約適用年月日（サービス契約）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kk0081_rsv_aply_ymd"));
				}
				else
				{
					subbean.sendMessageString("予約適用年月日（サービス契約）", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// サービス契約情報リスト.予約適用年月日（サービス契約内訳） ← eo光電話サービス契約情報一覧照会マップ.eo光電話サービス契約情報一覧照会明細.予約適用年月日（サービス契約内訳）
				if (childMap != null)
				{
					subbean.sendMessageString("予約適用年月日（サービス契約内訳）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kk0161_rsv_aply_ymd"));
				}
				else
				{
					subbean.sendMessageString("予約適用年月日（サービス契約内訳）", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// サービス契約情報リスト.異動予約詳細コード（サービス契約） ← eo光電話サービス契約情報一覧照会マップ.eo光電話サービス契約情報一覧照会明細.異動予約詳細コード（サービス契約）
				if (childMap != null)
				{
					subbean.sendMessageString("異動予約詳細コード（サービス契約）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kk0081_ido_rsv_dtl_cd"));
				}
				else
				{
					subbean.sendMessageString("異動予約詳細コード（サービス契約）", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// サービス契約情報リスト.異動予約詳細コード（オプションサービス契約） ← eo光電話サービス契約情報一覧照会マップ.eo光電話サービス契約情報一覧照会明細.異動予約詳細コード（オプションサービス契約）
				if (childMap != null)
				{
					subbean.sendMessageString("異動予約詳細コード（オプションサービス契約）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
							.get("kk0351_ido_rsv_dtl_cd"));
				}
				else
				{
					subbean.sendMessageString("異動予約詳細コード（オプションサービス契約）", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// サービス契約情報リスト.異動予約詳細コード（サブオプションサービス契約） ← eo光電話サービス契約情報一覧照会マップ.eo光電話サービス契約情報一覧照会明細.異動予約詳細コード（サブオプションサービス契約）
				if (childMap != null)
				{
					subbean.sendMessageString("異動予約詳細コード（サブオプションサービス契約）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
							.get("kk0401_ido_rsv_dtl_cd"));
				}
				else
				{
					subbean.sendMessageString("異動予約詳細コード（サブオプションサービス契約）", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}

				// サービス契約情報リスト.電話番号（発信者番号通知） ← eo光電話サービス契約情報一覧照会マップ.eo光電話サービス契約情報一覧照会明細.電話番号
				if (childMap != null)
				{
					subbean.sendMessageString(FUW01403SFConst.HTC_TELNO_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("telno"));
				}
				else
				{
					subbean.sendMessageString(FUW01403SFConst.HTC_TELNO_01, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// サービス契約情報リスト.ＶＡポート番号（発信者番号通知） ← eo光電話サービス契約情報一覧照会マップ.eo光電話サービス契約情報一覧照会明細.ＶＡポート番号
				if (childMap != null)
				{
					subbean.sendMessageString(FUW01403SFConst.HTC_VA_PORT_NO_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("va_port_no"));
				}
				else
				{
					subbean.sendMessageString(FUW01403SFConst.HTC_VA_PORT_NO_01, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}

				// 発信者番号通知のオプションがある場合
				if (childMap != null && JFUStrConst.CD00136_B022.equals(childMap.get("op_svc_cd"))
						&& !JFUStrConst.CD00037_910.equals(childMap.get("op_svc_kei_stat"))
						&& !JFUStrConst.CD00037_920.equals(childMap.get("op_svc_kei_stat")))
				{

					// サービス契約情報リスト.オプションサービス契約番号（発信者番号通知） ← eo光電話サービス契約情報一覧照会マップ.eo光電話サービス契約情報一覧照会明細.オプションサービス契約番号
					if (childMap != null)
					{
						subbean.sendMessageString(FUW01403SFConst.HTC_OP_SVC_KEI_NO_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("op_svc_kei_no"));
					}
					else
					{
						subbean.sendMessageString(FUW01403SFConst.HTC_OP_SVC_KEI_NO_01, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
					}
					// サービス契約情報リスト.世代登録年月日時分秒（発信者番号通知） ← eo光電話サービス契約情報一覧照会マップ.eo光電話サービス契約情報一覧照会明細.世代登録年月日時分秒（オプションサービス契約）
					if (childMap != null)
					{
						subbean.sendMessageString(FUW01403SFConst.HTC_GENE_ADD_DTM_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kk0351_gene_add_dtm"));
					}
					else
					{
						subbean.sendMessageString(FUW01403SFConst.HTC_GENE_ADD_DTM_01, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
					}

				}
			}
		}

		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getFUSV004102SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("FUSV004102SC"))
		{
			parentMap = (HashMap)outputMap.get("FUSV004102SC");
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listFUSV004102SC_kktk_svc_kei_list_EKK0341B002CBSMsg1List = bean[0].getDataBeanArray("機器提供サービス契約リスト");
		childList = null;
		if (listFUSV004102SC_kktk_svc_kei_list_EKK0341B002CBSMsg1List != null && parentMap != null && parentMap.containsKey("EKK0341B002CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0341B002CBSMsg1List");

			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if (listFUSV004102SC_kktk_svc_kei_list_EKK0341B002CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = listFUSV004102SC_kktk_svc_kei_list_EKK0341B002CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = listFUSV004102SC_kktk_svc_kei_list_EKK0341B002CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null)
				{
					continue;
				}

				// 機器提供サービス契約リスト.機器提供サービス契約番号 ← 機器提供サービス契約一覧照会（サービス契約番号）マップ.機器提供サービス契約一覧照会（サービス契約番号）明細.機器提供サービス契約番号
				if (childMap != null)
				{
					subbean.sendMessageString("機器提供サービス契約番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kktk_svc_kei_no"));
				}
				else
				{
					subbean.sendMessageString("機器提供サービス契約番号", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// 機器提供サービス契約リスト.世代登録年月日 ← 機器提供サービス契約一覧照会（サービス契約番号）マップ.機器提供サービス契約一覧照会（サービス契約番号）明細.世代登録年月日
				if (childMap != null)
				{
					subbean.sendMessageString("世代登録年月日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("gene_add_dtm"));
				}
				else
				{
					subbean.sendMessageString("世代登録年月日", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// 機器提供サービス契約リスト.機器提供サービス契約ステータス ← 機器提供サービス契約一覧照会（サービス契約番号）マップ.機器提供サービス契約一覧照会（サービス契約番号）明細.機器提供サービス契約ステータス
				if (childMap != null)
				{
					subbean.sendMessageString("機器提供サービス契約ステータス", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kktk_svc_kei_stat"));
				}
				else
				{
					subbean.sendMessageString("機器提供サービス契約ステータス", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// 機器提供サービス契約リスト.料金コースコード ← 機器提供サービス契約一覧照会（サービス契約番号）マップ.機器提供サービス契約一覧照会（サービス契約番号）明細.料金コースコード
				if (childMap != null)
				{
					subbean.sendMessageString("料金コースコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pcrs_cd"));
				}
				else
				{
					subbean.sendMessageString("料金コースコード", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// 機器提供サービス契約リスト.料金プランコード ← 機器提供サービス契約一覧照会（サービス契約番号）マップ.機器提供サービス契約一覧照会（サービス契約番号）明細.料金プランコード
				if (childMap != null)
				{
					subbean.sendMessageString("料金プランコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pplan_cd"));
				}
				else
				{
					subbean.sendMessageString("料金プランコード", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// 機器提供サービス契約リスト.予約適用年月日 ← 機器提供サービス契約一覧照会（サービス契約番号）マップ.機器提供サービス契約一覧照会（サービス契約番号）明細.予約適用年月日
				if (childMap != null)
				{
					subbean.sendMessageString("予約適用年月日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("rsv_aply_ymd"));
				}
				else
				{
					subbean.sendMessageString("予約適用年月日", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// 機器提供サービス契約リスト.予約適用コード ← 機器提供サービス契約一覧照会（サービス契約番号）マップ.機器提供サービス契約一覧照会（サービス契約番号）明細.予約適用コード
				if (childMap != null)
				{
					subbean.sendMessageString("予約適用コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("rsv_aply_cd"));
				}
				else
				{
					subbean.sendMessageString("予約適用コード", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// 機器提供サービス契約リスト.最終更新年月日時分秒（機器提供サービス契約） ← 機器提供サービス契約一覧照会（サービス契約番号）マップ.機器提供サービス契約一覧照会（サービス契約番号）明細.最終更新年月日時分秒
				if (childMap != null)
				{
					subbean.sendMessageString("最終更新年月日時分秒（機器提供サービス契約）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("upd_dtm_bf"));
				}
				else
				{
					subbean.sendMessageString("最終更新年月日時分秒（機器提供サービス契約）", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
			}
		}

		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getFUSV004104SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("FUSV004104SC"))
		{
			parentMap = (HashMap)outputMap.get("FUSV004104SC");
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listFUSV004104SC_kihon_prc_list_EKK0601B001CBSMsg1List = bean[0].getDataBeanArray("料金プラン固定単価（基本料金）リスト");
		childList = null;
		if (listFUSV004104SC_kihon_prc_list_EKK0601B001CBSMsg1List != null && parentMap != null && parentMap.containsKey("EKK0601B001CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0601B001CBSMsg1List");

			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if (listFUSV004104SC_kihon_prc_list_EKK0601B001CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = listFUSV004104SC_kihon_prc_list_EKK0601B001CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = listFUSV004104SC_kihon_prc_list_EKK0601B001CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null)
				{
					continue;
				}

				// 料金プラン固定単価（基本料金）リスト.料金プラン固定金額 ← 料金プラン固定単価（基本料金）一覧照会マップ.料金プラン固定単価（基本料金）明細.料金プラン固定金額
				if (childMap != null)
				{
					subbean.sendMessageString("料金プラン固定金額", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pplan_kotei_amnt"));
				}
				else
				{
					subbean.sendMessageString("料金プラン固定金額", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// 料金プラン固定単価（基本料金）リスト.料金プラン固定単位コード名 ← 料金プラン固定単価（基本料金）一覧照会マップ.料金プラン固定単価（基本料金）明細.料金プラン固定単位コード名
				if (childMap != null)
				{
					subbean.sendMessageString("料金プラン固定単位コード名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pplan_kotei_tani_cd_nm"));
				}
				else
				{
					subbean.sendMessageString("料金プラン固定単位コード名", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
			}
		}

		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getFUSV004105SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("FUSV004105SC"))
		{
			parentMap = (HashMap)outputMap.get("FUSV004105SC");
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listFUSV004105SC_eoh_adaptor_fees_list_EKK0601B001CBSMsg1List =
				bean[0].getDataBeanArray("料金プラン固定単価（ｅｏ光電話アダプター利用料）リスト");
		childList = null;
		if (listFUSV004105SC_eoh_adaptor_fees_list_EKK0601B001CBSMsg1List != null && parentMap != null
				&& parentMap.containsKey("EKK0601B001CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0601B001CBSMsg1List");

			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if (listFUSV004105SC_eoh_adaptor_fees_list_EKK0601B001CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = listFUSV004105SC_eoh_adaptor_fees_list_EKK0601B001CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = listFUSV004105SC_eoh_adaptor_fees_list_EKK0601B001CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null)
				{
					continue;
				}

				// 料金プラン固定単価（ｅｏ光電話アダプター利用料）リスト.料金プラン固定金額 ← 料金プラン固定単価（eo光電話アダプター利用料）一覧照会マップ.料金プラン固定単価（eo光電話アダプター利用料）明細.料金プラン固定金額
				if (childMap != null)
				{
					subbean.sendMessageString("料金プラン固定金額", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pplan_kotei_amnt"));
				}
				else
				{
					subbean.sendMessageString("料金プラン固定金額", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// 料金プラン固定単価（ｅｏ光電話アダプター利用料）リスト.料金プラン固定単位コード名 ← 料金プラン固定単価（eo光電話アダプター利用料）一覧照会マップ.料金プラン固定単価（eo光電話アダプター利用料）明細.料金プラン固定単位コード名
				if (childMap != null)
				{
					subbean.sendMessageString("料金プラン固定単位コード名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pplan_kotei_tani_cd_nm"));
				}
				else
				{
					subbean.sendMessageString("料金プラン固定単位コード名", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
			}
		}

		return bean;
	}
	
	
	/**
	 * 機器オプションサービス契約一覧照会（フロント）SCの下りマッピングをします。
	 * @param bean メールアドレス追加申込
	 * @param outputMap マップ
	 * @return bean
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getFUSV004106SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;

		if (outputMap.containsKey("FUSV004106SC"))
		{
			parentMap = (HashMap)outputMap.get("FUSV004106SC");
		}
		
		X31SDataBeanAccessArray listFUSV004106SC_kktk_svc_kei_list_EKK2811B503CBSMsg1List = bean[0].getDataBeanArray("機器提供サービス契約リスト");
		ArrayList childList = null;
		if (listFUSV004106SC_kktk_svc_kei_list_EKK2811B503CBSMsg1List != null && parentMap != null && parentMap.containsKey("EKK2811B503CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK2811B503CBSMsg1List");

			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if (listFUSV004106SC_kktk_svc_kei_list_EKK2811B503CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = listFUSV004106SC_kktk_svc_kei_list_EKK2811B503CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = listFUSV004106SC_kktk_svc_kei_list_EKK2811B503CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null)
				{
					continue;
				}

				// 機器提供サービス契約リスト.機器提供サービス契約番号 ← 機器提供サービス契約一覧照会（サービス契約番号）マップ.機器提供サービス契約一覧照会（サービス契約番号）明細.機器提供サービス契約番号
				if (childMap != null)
				{
					subbean.sendMessageString("機器提供サービス契約番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kktk_svc_kei_no"));
				}
				else
				{
					subbean.sendMessageString("機器提供サービス契約番号", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// 機器提供サービス契約リスト.世代登録年月日 ← 機器提供サービス契約一覧照会（サービス契約番号）マップ.機器提供サービス契約一覧照会（サービス契約番号）明細.世代登録年月日
				if (childMap != null)
				{
					subbean.sendMessageString("世代登録年月日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("gene_add_dtm"));
				}
				else
				{
					subbean.sendMessageString("世代登録年月日", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// 機器提供サービス契約リスト.機器提供サービス契約ステータス ← 機器提供サービス契約一覧照会（サービス契約番号）マップ.機器提供サービス契約一覧照会（サービス契約番号）明細.機器提供サービス契約ステータス
				if (childMap != null)
				{
					subbean.sendMessageString("機器提供サービス契約ステータス", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kktk_svc_kei_stat"));
				}
				else
				{
					subbean.sendMessageString("機器提供サービス契約ステータス", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// 機器提供サービス契約リスト.料金コースコード ← 機器提供サービス契約一覧照会（サービス契約番号）マップ.機器提供サービス契約一覧照会（サービス契約番号）明細.料金コースコード
				if (childMap != null)
				{
					subbean.sendMessageString("料金コースコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pcrs_cd"));
				}
				else
				{
					subbean.sendMessageString("料金コースコード", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// 機器提供サービス契約リスト.料金プランコード ← 機器提供サービス契約一覧照会（サービス契約番号）マップ.機器提供サービス契約一覧照会（サービス契約番号）明細.料金プランコード
				if (childMap != null)
				{
					subbean.sendMessageString("料金プランコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pplan_cd"));
				}
				else
				{
					subbean.sendMessageString("料金プランコード", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// 機器提供サービス契約リスト.予約適用年月日 ← 機器提供サービス契約一覧照会（サービス契約番号）マップ.機器提供サービス契約一覧照会（サービス契約番号）明細.予約適用年月日
				if (childMap != null)
				{
					subbean.sendMessageString("予約適用年月日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("rsv_aply_ymd"));
				}
				else
				{
					subbean.sendMessageString("予約適用年月日", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// 機器提供サービス契約リスト.予約適用コード ← 機器提供サービス契約一覧照会（サービス契約番号）マップ.機器提供サービス契約一覧照会（サービス契約番号）明細.予約適用コード
				if (childMap != null)
				{
					subbean.sendMessageString("予約適用コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("rsv_aply_cd"));
				}
				else
				{
					subbean.sendMessageString("予約適用コード", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// 機器提供サービス契約リスト.最終更新年月日時分秒（機器提供サービス契約） ← 機器提供サービス契約一覧照会（サービス契約番号）マップ.機器提供サービス契約一覧照会（サービス契約番号）明細.最終更新年月日時分秒
				if (childMap != null)
				{
					subbean.sendMessageString("最終更新年月日時分秒（機器提供サービス契約）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("upd_dtm_bf"));
				}
				else
				{
					subbean.sendMessageString("最終更新年月日時分秒（機器提供サービス契約）", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
			}
		}

		return bean;
	}
	

	/**
	 * 下りマッピング
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getJFUInitialCostShokaiCC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;

		if (outputMap.containsKey("JFUInitialCostShokaiCC"))
		{
			parentMap = (HashMap)outputMap.get("JFUInitialCostShokaiCC");
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listJFUInitialCostShokaiCC_chg_jimu_commision_list_EKK0721A010CBSMsg1List =
				bean[0].getDataBeanArray("一時支払料金（変更事務手数料）リスト");
		childList = null;
		if (listJFUInitialCostShokaiCC_chg_jimu_commision_list_EKK0721A010CBSMsg1List != null && parentMap != null
				&& parentMap.containsKey("EKK0721A010CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0721A010CBSMsg1List");

			X31SDataBeanAccess subbean = null;
			for (int i = 0; i < childList.size(); i++)
			{
				if (listJFUInitialCostShokaiCC_chg_jimu_commision_list_EKK0721A010CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = listJFUInitialCostShokaiCC_chg_jimu_commision_list_EKK0721A010CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = listJFUInitialCostShokaiCC_chg_jimu_commision_list_EKK0721A010CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null)
				{
					continue;
				}

				// 一時支払料金（変更事務手数料）リスト.一時支払料金名 ← 初期費用一覧照会マップ.一時金一意照会明細.一時支払料金名
				if (childMap != null)
				{
					subbean.sendMessageString("一時支払料金名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("tmp_pay_prc_nm"));
				}
				else
				{
					subbean.sendMessageString("一時支払料金名", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// 一時支払料金（変更事務手数料）リスト.一時支払料金額 ← 初期費用一覧照会マップ.一時金一意照会明細.一時支払料金額
				if (childMap != null)
				{
					subbean.sendMessageString("一時支払料金額", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("tmp_pay_prc_amnt"));
				}
				else
				{
					subbean.sendMessageString("一時支払料金額", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
			}
		}

		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getJFUInitialCostShokaiCCWari(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("JFUInitialCostShokaiCCWari"))
		{
			parentMap = (HashMap)outputMap.get("JFUInitialCostShokaiCCWari");
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listFUSV004106SC_no_wariate_commision_list_EKK0721A010CBSMsg1List = bean[0].getDataBeanArray("一時支払料金（番号割り当て手数料）リスト");
		childList = null;
		if (listFUSV004106SC_no_wariate_commision_list_EKK0721A010CBSMsg1List != null && parentMap != null
				&& parentMap.containsKey("EKK0721A010CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0721A010CBSMsg1List");

			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if (listFUSV004106SC_no_wariate_commision_list_EKK0721A010CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = listFUSV004106SC_no_wariate_commision_list_EKK0721A010CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = listFUSV004106SC_no_wariate_commision_list_EKK0721A010CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null)
				{
					continue;
				}

				// 一時支払料金（番号割り当て手数料）リスト.一時支払料金名 ← 一時支払料金（番号割り当て手数料）一意照会マップ.一時支払料金（番号割り当て手数料）一意照会明細.一時支払料金名
				if (childMap != null)
				{
					subbean.sendMessageString("一時支払料金名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("tmp_pay_prc_nm"));
				}
				else
				{
					subbean.sendMessageString("一時支払料金名", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// 一時支払料金（番号割り当て手数料）リスト.一時支払料金額 ← 一時支払料金（番号割り当て手数料）一意照会マップ.一時支払料金（番号割り当て手数料）一意照会明細.一時支払料金額
				if (childMap != null)
				{
					subbean.sendMessageString("一時支払料金額", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("tmp_pay_prc_amnt"));
				}
				else
				{
					subbean.sendMessageString("一時支払料金額", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
			}
		}

		return bean;
	}
	
	/**
	 * 下りマッピング
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getJFUInitialCostShokaiCCKoji(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("JFUInitialCostShokaiCCKoji"))
		{
			parentMap = (HashMap)outputMap.get("JFUInitialCostShokaiCCKoji");
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray onu_koji_commision_list_EKK0721A010CBSMsg1List = bean[0].getDataBeanArray("一時支払料金（ＯＮＵ交換工事費）リスト");
		childList = null;
		if (onu_koji_commision_list_EKK0721A010CBSMsg1List != null && parentMap != null
				&& parentMap.containsKey("EKK0721A010CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0721A010CBSMsg1List");

			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if (onu_koji_commision_list_EKK0721A010CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = onu_koji_commision_list_EKK0721A010CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = onu_koji_commision_list_EKK0721A010CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null)
				{
					continue;
				}

				// 一時支払料金（ＯＮＵ交換工事費）リスト.一時支払料金名 ← 一時支払料金（ＯＮＵ交換工事費）一意照会マップ.一時支払料金（ＯＮＵ交換工事費）一意照会明細.一時支払料金名
				if (childMap != null)
				{
					subbean.sendMessageString("一時支払料金名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("tmp_pay_prc_nm"));
				}
				else
				{
					subbean.sendMessageString("一時支払料金名", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// 一時支払料金（ＯＮＵ交換工事費）リスト.一時支払料金額 ← 一時支払料金（ＯＮＵ交換工事費）一意照会マップ.一時支払料金（ＯＮＵ交換工事費）一意照会明細.一時支払料金額
				if (childMap != null)
				{
					subbean.sendMessageString("一時支払料金額", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("tmp_pay_prc_amnt"));
				}
				else
				{
					subbean.sendMessageString("一時支払料金額", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
			}
		}

		return bean;
	}

	/**
	 * 機器オプションサービス契約登録コモンコンポーネント部品CCの上りマッピング処理です。
	 * (ルーター保有有無確認用)
	 *
	 * <br>
	 * @param bean データBean配列
	 * @param outputMap アウトマップ
	 * @param func_code 機能コード
	 * @return 結果マップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap<String, Object> setFUSV004103CC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// ○WEB変更情報
		X31SDataBeanAccess webChgInfoBean = bean[1].getDataBeanArray(CommonInfoCFConst.WEB_CHG_INFO).getDataBean(0);
		// ○現顧客情報
		X31SDataBeanAccess genCustKeiInfoBean = webChgInfoBean.getDataBeanArray(CommonInfoCFConst.GEN_CUST_KEI_INFO).getDataBean(0);
		// ○サービス契約情報
		X31SDataBeanAccess svcKeiInfoBean = genCustKeiInfoBean.getDataBeanArray(CommonInfoCFConst.SVC_KEI_INFO).getDataBean(0);
		// ○サービス契約内訳情報
		X31SDataBeanAccess svcKeiUcwkInfoBean = svcKeiInfoBean.getDataBeanArray(CommonInfoCFConst.SVC_KEI_UCWK_INFO).getDataBean(0);

		// サービス契約番号 → ２番号サービスお申し込みマップ.サービス契約番号
		parentMap.put(SVC_KEI_NO, bean[0].sendMessageString(FUW01403SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約内訳番号
		parentMap.put("svc_kei_ucwk_no", svcKeiUcwkInfoBean.sendMessageString(CommonInfoCFConst.SVC_KEI_UCWK_NO_24, X31CWebConst.DATABEAN_GET_VALUE));
		// 整理番号
		parentMap.put(KEY_SEIRI_NO, bean[0].sendMessageString(FUW01403SFConst.SEIRI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 返却マップに設定
		outputMap.put(CC_TITLE_FUSV004103, parentMap);

		return outputMap;
	}
	
	/**
	 * 機器オプションサービス契約登録コモンコンポーネント部品(ルーター保有有無確認用)CCの下りマッピングをします。
	 * <br>
	 * @param bean
	 * @param outputMap
	 * @return X31SDataBeanAccess
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess getFUSV004103CC(X31SDataBeanAccess bean, HashMap outputMap)
	{
		HashMap parentMap = null;

		if (outputMap.containsKey(CC_TITLE_FUSV004103))
		{
			parentMap = (HashMap)outputMap.get(CC_TITLE_FUSV004103);
		}
		
		if (null != parentMap)
		{
			String routerHoyuKbn = (String)parentMap.get(OUT_ROUTER_HOYU_KBN);
			
			// ２ポートVAを保有している場合は、多機能ルータへの機器交換が発生しないため、多機能ルータ保有者と同様に扱う。
			if (JFUStrConst.CD00002_1.equals(parentMap.get(OUT_TOW_PORT_VA_HOYU_KB)))
			{
				// ２ポートVAを保有している場合は、工事費なし
				outputMap.remove("JFUInitialCostShokaiCCKoji");
				// ２ポートVAを保有している場合は、工事なし
				bean.sendMessageString(FUW01403SFConst.ONU_KOKAN_KOJI_UM, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
			}
			// eo光ルーター保有
			if (null != routerHoyuKbn && !JFUStrConst.EMPTY.equals(routerHoyuKbn) && JFUStrConst.CD00002_1.equals(routerHoyuKbn))
			{
				bean.sendMessageString(FUW01403SFConst.TAKINOU_ROUTER_HOYU_KBN, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00002_0);
				// eo光ルーター未保有、多機能ルーター保有
				bean.sendMessageString(FUW01403SFConst.HOSOKU_KBN, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00002_1);
				
			}
			// eo光ルーター未保有
			else
			{
				if (outputMap.containsKey("FUSV004106SC"))
				{
					parentMap = (HashMap)outputMap.get("FUSV004106SC");
				}

				if (null != parentMap && parentMap.containsKey("EKK2811B503CBSMsg1List"))
				{
					ArrayList childList = (ArrayList)parentMap.get("EKK2811B503CBSMsg1List");
					
					// eo光ルーター未保有かつ多機能ルーター保有時
					if (0 < childList.size())
					{
						// eo光ルーター未保有、多機能ルーター保有
						bean.sendMessageString(FUW01403SFConst.TAKINOU_ROUTER_HOYU_KBN, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00002_1);
						// eo光ルーター未保有、多機能ルーター保有
						bean.sendMessageString(FUW01403SFConst.HOSOKU_KBN, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00002_0);
						// 多機能を保有している場合は、工事費なし
						outputMap.remove("JFUInitialCostShokaiCCKoji");
						// 多機能を保有している場合は、工事なし
						bean.sendMessageString(FUW01403SFConst.ONU_KOKAN_KOJI_UM, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
					}
					else
					{
						// eo光ルーター未保有、多機能ルーター未保有
						bean.sendMessageString(FUW01403SFConst.HOSOKU_KBN, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00002_1);

					}
				}
			}
		}

		return bean;
	}
	
// ANK-3136-00-00 ADD START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV004108SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// サービス契約番号 → eo光電話サービス契約情報一覧照会マップ.ＫＥＹ＿サービス契約番号
		parentMap.put("key_kojiak_no_svc_kei_no", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV004108SC", parentMap);

		return outputMap;
	}

// ANK-3136-00-00 ADD END

	/**
	 * ＯＮＵ交換工事判定コモンコンポーネント部品(CCの下りマッピングをします。
	 * <br>
	 * @param bean
	 * @param outputMap
	 * @return X31SDataBeanAccess
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess getFUSV004104CC(X31SDataBeanAccess bean, HashMap outputMap)
	{
		HashMap parentMap = null;

		if (outputMap.containsKey("FUSV004104CC"))
		{
			parentMap = (HashMap)outputMap.get("FUSV004104CC");
		}

		if (null != parentMap)
		{
			bean.sendMessageString(FUW01403SFConst.ONU_KOKAN_KOJI_UM, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("chk_result"));
		}
		return bean;
	}
}