/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：FUSV0156_FUSV0156OPDBMapper
*	ソースファイル名：FUSV0156_FUSV0156OPDBMapper.java
*	作成者			：FJ
*	日付			：2011年10月20日
*＜機能概要＞
*	BP（eo光ネットオプション選択(初期表示)）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/10/20  FJ		    新規作成
*   v7.00.00    2013/11/21  FJ) 谷本    【ANK-1578-00-00】多機能ルーター（機器追加）
*   v7.00.00    2013/11/21  FJ) 岡井    【ANK-1578-00-00】多機能ルーター（機器追加）
*   v8.00.00    2014/01/09  FJ) 岡井    【ANK-1589-00-00】消費増税に伴う料金施策
*   v9.00.00    2014/06/23  FJ) 川瀬    【ANK-2180-00-00】【ＮＯ．１５７９】eoスマートリンクタブレット「S」売り止め対応
*   v32.00.00   2017/04/14  FJ) 謝      【ANK-3149-00-00】新セキュリティパック導入
*   v33.00.00   2017/07/26  FJ) 謝      【ANK-3217-00-00】GHサービス開始対応
*   v39.00.00   2018/10/12  FJ) 和田(康)【ANK-3484-00-00】端末補償サービス導入対応
*   v42.00.00   2019/04/24  FJ) 大島    【ANK-3642-00-00】スマートリンクタブレット新機種追加（2019年6月〜）
*   v50.00.00   2020/06/11  FJ) 美濃原  【ANK-3825-00-00】メッシュWiFi導入対応
*   v52.00.00   2021/02/27  FJ) 星野    【ANK-3977-00-00】eoWeb画面の料金表記変更
**********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;

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.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.FUW00118SF.FUW00118SFConst;
import eo.web.webview.FUW00916SF.FUW00916SFConst;
import eo.web.webview.common.JFUWebCommon;

/**
 * DataBean-BPマッピングをする。
 * 
 * @author FJ
 * 
 */
public class FUSV0156_FUSV0156OPDBMapper
{

	/** FUSV015601CC */
	private static final String FUSV015601CC = "FUSV015601CC";

	/** 料金（ファミリーパック） */
	private static final String FP_PRC = "料金（ファミリーパック）";
	/** 料金（リモートサポートプラス） */
	private static final String RMTSPRT_PRC = "料金（リモートサポートプラス）";
	/** 料金（ｅｏ光ＰＬＣアダプタレンタルサービス） */
	private static final String PLC_PRC = "料金（ｅｏ光ＰＬＣアダプタレンタルサービス）";
	/** 料金（スティック型STBレンタルサービス） ANK-1421-00-00 2013/02/18 kusumoto */
	private static final String STB_PRC = "料金（スティック型ＳＴＢレンタルサービス）";
	/** 料金（プレミアムパック） */
	private static final String PREMIUM_PACK_PRC = "料金（プレミアムパック）";

	/** 項目：SYSID */
	private static final String SYSID = "sysid";
	/** 項目：サービス契約回線内訳番号 */
	private static final String SVC_KEI_KAISEN_UCWK_NO = "svc_kei_kaisen_ucwk_no";
	/** 項目：判定結果 */
	private static final String JUDGE_RESULT = "judge_result";
	/** 項目：宅内機器型式コード */
	private static final String TAKNKIKI_MODEL_CD = "taknkiki_model_cd";

	/**
	 * コンストラクタ
	 */
	public FUSV0156_FUSV0156OPDBMapper()
	{
	}

	/**
	 * 上りマッピングをする
	 * @param bean [0]：ｅｏ光ネットオプション選択
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV015601SC(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);

		// 料金プランコード（ファミリーパック） → 料金プラン固定単価一覧照会（固定料金表示）（ファミリーパック）SCマップ.ＫＥＹ＿料金プランコード
		parentMap.put("key_pplan_cd", bean[0].sendMessageString("料金プランコード（ファミリーパック）", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV015601SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：ｅｏ光ネットオプション選択
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV015602SC(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);

		// 料金プランコード（リモートサポートプラス） 
		// → 料金プラン固定単価一覧照会（固定料金表示）（リモートサポートプラス）SCマップ.ＫＥＹ＿料金プランコード
		parentMap.put("key_pplan_cd", bean[0].sendMessageString("料金プランコード（リモートサポートプラス）", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV015602SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：ｅｏ光ネットオプション選択
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV015603SC(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);

		if (bean[0].getItemId(FUW00118SFConst.PPLAN_CD_TKN_ROUTER_MUSEN) == null)
		{
			// 料金プランコード（無線ルータ） → 料金プラン固定単価一覧照会（固定料金表示）（料金プランコード（無線ルータ））SCマップ.ＫＥＹ＿料金プランコード
			parentMap.put("key_pplan_cd", JFUStrConst.CD00565_PG0201);
		}
		else
		{
			// 料金プランコード（無線ルータ） → 料金プラン固定単価一覧照会（固定料金表示）（料金プランコード（無線ルータ））SCマップ.ＫＥＹ＿料金プランコード
			parentMap.put("key_pplan_cd", bean[0].sendMessageString(FUW00118SFConst.PPLAN_CD_TKN_ROUTER_MUSEN, X31CWebConst.DATABEAN_GET_VALUE));
		}

		outputMap.put("FUSV015603SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：ｅｏ光ネットオプション選択
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV015604SC(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);

		if (bean[0].getItemId(FUW00118SFConst.PPLAN_CD_TKN_ROUTER_YUSEN) == null)
		{
			parentMap.put("key_pplan_cd", JFUStrConst.CD00565_PG0101);
		}
		else
		{
			// 料金プランコード（ベーシックルータ）
			// → 料金プラン固定単価一覧照会（固定料金表示）（料金プランコード（有線ルータ））SCマップ.ＫＥＹ＿料金プランコード
			parentMap.put("key_pplan_cd", bean[0].sendMessageString(FUW00118SFConst.PPLAN_CD_TKN_ROUTER_YUSEN, X31CWebConst.DATABEAN_GET_VALUE));
		}

		outputMap.put("FUSV015604SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：ｅｏ光ネットオプション選択
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV015605SC(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);

		// 料金プランコード（ｅｏ光ＰＬＣアダプタレンタルサービス）
		// → 料金プラン固定単価一覧照会（固定料金表示）（ＰＬＣアダプタレンタル）SCマップ.ＫＥＹ＿料金プランコード
		parentMap.put("key_pplan_cd", bean[0].sendMessageString("料金プランコード（ｅｏ光ＰＬＣアダプタレンタルサービス）",
				X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV015605SC", parentMap);

		return outputMap;
	}

// ANK-3217-00-00 ADD START
	/**
	 * 上りマッピングをする
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV015614SC(HashMap outputMap, String func_code) {

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// "KK_GH_TKKKMDL"（ＧＨ宅内機器型式） → 業務パラメータ管理一意照会SCマップ.ＫＥＹ＿業務パラメータID
		parentMap.put("key_work_param_id", JFUStrConst.KK_GH_TKKKMDL);

		outputMap.put("FUSV015614SC", parentMap);
						
		return outputMap;
	}
// ANK-3217-00-00 ADD END

	/**
	 * 上りマッピング
	 * <br>
	 * @param bean
	 * @param outputMap
	 * @param func_code
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV015606SC(X31SDataBeanAccess bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		// WEB新規情報
		X31SDataBeanAccess web_new_infobean = getWebInfo(bean);
		// 光ネット
		X31SDataBeanAccess net_infobean = getEonet(web_new_infobean);

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		parentMap.put("key_pcrs_cd", net_infobean.sendMessageString(CommonInfoCFConst.PCRS_CD_11, X31CWebConst.DATABEAN_GET_VALUE));

		if (null == parentMap.get("key_pcrs_cd") || JFUStrConst.EMPTY.equals(parentMap.get("key_pcrs_cd")))
		{
			// マンション情報
			X31SDataBeanAccess mansion_infobean = getMansioninfo(web_new_infobean);
			// ネットコース
			String net_course = net_infobean.sendMessageString(CommonInfoCFConst.NET_COURSE_11, X31CWebConst.DATABEAN_GET_VALUE);
			// 申込回線サービス
			String mskm_ksn_svc = web_new_infobean.sendMessageString(CommonInfoCFConst.MSKM_KSN_SVC_06, X31CWebConst.DATABEAN_GET_VALUE);
			// 申込マンションタイプ
			String mskm_mns_type = web_new_infobean.sendMessageString(CommonInfoCFConst.MSKM_MNS_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE);
			// 提供方式パターンコード
			String teikyo_hoshiki_ptn_cd =
					mansion_infobean.sendMessageString(CommonInfoCFConst.TEIKYO_HOSHIKI_PTN_CD_16, X31CWebConst.DATABEAN_GET_VALUE);
			// 提供方式コード
			String teikyo_hoshiki_cd = mansion_infobean.sendMessageString(CommonInfoCFConst.TEIKYO_HOSHIKI_CD_16, X31CWebConst.DATABEAN_GET_VALUE);
			String kk1861_pcrs_cd = "";
			// マンションタイプ
			if (JFUStrConst.MSKM_KSN_SVC_MANSION.equals(mskm_ksn_svc) && JFUStrConst.MSKM_MNS_TYPE_MANSION.equals(mskm_mns_type))
			{
				// マンションタイプ100Ｍ
				if (JFUStrConst.NET_COURSE_100M.equals(net_course))
				{
					// 提供方式コードがVDSL または VDSL-Sの場合
					if (JFUStrConst.TK_HOSHIKI_PTN_VDSL.equals(teikyo_hoshiki_ptn_cd)
							|| JFUStrConst.TK_HOSHIKI_PTN_VDSLS.equals(teikyo_hoshiki_ptn_cd))
					{
						// 提供方式コードが"004"VDSL2の場合
						if (JFUStrConst.TK_HOSHIKI_VDSL2.equals(teikyo_hoshiki_cd))
						{
							// 料金コースコード
							kk1861_pcrs_cd = JFUStrConst.CD00134_A50;

						}
						// 提供方式コードが"005"VDSL3の場合
						else if (JFUStrConst.TK_HOSHIKI_VDSL3.equals(teikyo_hoshiki_cd))
						{
							// 料金コースコード
							kk1861_pcrs_cd = JFUStrConst.CD00134_A51;
						}
						// 提供方式コードが"006"VDSL4の場合
						else if (JFUStrConst.TK_HOSHIKI_VDSL4.equals(teikyo_hoshiki_cd))
						{
							// 料金コースコード
							kk1861_pcrs_cd = JFUStrConst.CD00134_A52;
						}
						// 提供方式コードが"007"VDSL5の場合
						else if (JFUStrConst.TK_HOSHIKI_VDSL5.equals(teikyo_hoshiki_cd))
						{
							// 料金コースコード
							kk1861_pcrs_cd = JFUStrConst.CD00134_A53;
						}

					}
					// 提供方式コードがイーサネットの場合
					else if (JFUStrConst.TK_HOSHIKI_PTN_ENET.equals(teikyo_hoshiki_ptn_cd)
							|| JFUStrConst.TK_HOSHIKI_PTN_GG_ENET.equals(teikyo_hoshiki_ptn_cd))
					{
						// 料金コースコード
						kk1861_pcrs_cd = JFUStrConst.CD00134_A54;
					}
					// 提供方式コードが光回線の場合
					else if (JFUStrConst.TK_HOSHIKI_PTN_HIKARI_HAISEN.equals(teikyo_hoshiki_ptn_cd))
					{
						// 料金コースコード
						kk1861_pcrs_cd = JFUStrConst.CD00134_A56;
					}
				}
				// マンションタイプ1ギガ
				else if (JFUStrConst.NET_COURSE_1G.equals(net_course))
				{
					// 提供方式コードがギガイーサの場合
					if (JFUStrConst.TK_HOSHIKI_PTN_ENET.equals(teikyo_hoshiki_ptn_cd)
							|| JFUStrConst.TK_HOSHIKI_PTN_GG_ENET.equals(teikyo_hoshiki_ptn_cd))
					{
						// 料金コースコード
						kk1861_pcrs_cd = JFUStrConst.CD00134_A55;
					}
					// 光配線１ギガ
					else if (JFUStrConst.TK_HOSHIKI_PTN_HIKARI_HAISEN.equals(teikyo_hoshiki_ptn_cd))
					{
						// 料金コースコード
						kk1861_pcrs_cd = JFUStrConst.CD00134_A57;
					}
				}
				// 100Mライト
				else if (JFUStrConst.NET_COURSE_100M_LIGHT.equals(net_course))
				{
					// 光配線
					if (JFUStrConst.TK_HOSHIKI_HIKARI_HAISEN.equals(teikyo_hoshiki_cd))
					{
						// 料金コースコード
						kk1861_pcrs_cd = JFUStrConst.CD00134_A56;
					}
				}
			}
			parentMap.put("key_pcrs_cd", kk1861_pcrs_cd);
		}

		outputMap.put("FUSV015606SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピング処理です。
	 * <br>
	 * @param bean　[0]：ｅｏ光ネットオプション選択
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV015609SC(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_pplan_cd", JFUStrConst.CD00565_PG0201);

		outputMap.put("FUSV015609SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピング処理です。
	 * <br>
	 * @param bean　[0]：ｅｏ光ネットオプション選択
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV015610SC(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_pplan_cd", JFUStrConst.CD00565_PG0101);

		outputMap.put("FUSV015610SC", parentMap);

		return outputMap;
	}
// ANK-3149-00-00 ADD START

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：ｅｏ光ネットオプション選択
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV015611SC(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セキュリティーパック）SCマップ.ＫＥＹ＿料金プランコード
		parentMap.put("key_pplan_cd", bean[0].sendMessageString(FUW00118SFConst.PPLAN_CD_SECURITY_PACK, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV015611SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：ｅｏ光ネットオプション選択
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV015612SC(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);

		// 料金プランコード（インターネットサギウォール） → 料金プラン固定単価一覧照会（固定料金表示）（インターネットサギウォール）SCマップ.ＫＥＹ＿料金プランコード
		parentMap.put("key_pplan_cd", bean[0].sendMessageString(FUW00118SFConst.PPLAN_CD_INETSGWL, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV015612SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：ｅｏ光ネットオプション選択
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV015613SC(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);

		// 料金プランコード（ノートンファミリープレミア） → 料金プラン固定単価一覧照会（固定料金表示）（ノートンファミリープレミア）SCマップ.ＫＥＹ＿料金プランコード
		parentMap.put("key_pplan_cd", bean[0].sendMessageString(FUW00118SFConst.PPLAN_CD_NTFMLPRM, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV015613SC", parentMap);
						
		return outputMap;
	}
// ANK-3149-00-00 ADD END

	/**
	 * WEB新規情報
	 * 
	 * @param bean
	 * @return bn
	 */
	private X31SDataBeanAccess getWebInfo(X31SDataBeanAccess bean)
	{
		X31SDataBeanAccessArray arr = bean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn = arr.getDataBean(0);

		return bn;
	}

	/**
	 * 光ネット
	 * 
	 * @param bn
	 * @return bn1
	 */
	private X31SDataBeanAccess getEonet(X31SDataBeanAccess bn)
	{
		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.EONET);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * マンション情報
	 * 
	 * @param bn
	 * @return bn1
	 */
	private X31SDataBeanAccess getMansioninfo(X31SDataBeanAccess bn)
	{

		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.MANSION_INFO);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * 契約サービス情報取得処理です。
	 * 
	 * @param bn
	 * @return bn1
	 */
	private X31SDataBeanAccess getKeiSvcInfo(X31SDataBeanAccess bn)
	{

		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.KEIYAKU_SVC_INFO);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：ｅｏ光ネットオプション選択
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV015607SC(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);

		// 料金プランコード（プレミアムパック） 
		// → 料金プラン固定単価一覧照会（固定料金表示）（ｅｏスマートリンクプレミアムパック）SCマップ.ＫＥＹ＿料金プランコード
		parentMap.put("key_pplan_cd", bean[0].sendMessageString("料金プランコード（プレミアムパック）", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV015607SC", parentMap);

		return outputMap;
	}

	// ANK-1421-00-00 2013/02/18 kusumoto start

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：ｅｏ光ネットオプション選択
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV015608SC(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);

		// 料金プランコード（スティック型STBレンタルサービス） 
		// → 料金プラン固定単価一覧照会（固定料金表示）（スティック型STBレンタルサービス）SCマップ.ＫＥＹ＿料金プランコード
		parentMap.put("key_pplan_cd", bean[0].sendMessageString("料金プランコード（スティック型ＳＴＢレンタルサービス）",
				X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV015608SC", parentMap);

		return outputMap;
	}
	// ANK-1421-00-00 2013/02/18 kusumoto end

	/**
	 * 複数電話サービス変更判定CCの上りマッピング処理です。
	 * <br>
	 * @param bean 共有フォームBean
	 * @param outputMap アウトマップ
	 * @return outputMap アウトマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV015601CC(X31SDataBeanAccess bean, HashMap outputMap)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// WEB新規情報
		X31SDataBeanAccess webNewInfoBean = getWebInfo(bean);
		// 契約サービス情報
		X31SDataBeanAccess keiSvcInfoBean = getKeiSvcInfo(webNewInfoBean);

		// SYSID
		parentMap.put(SYSID, webNewInfoBean.sendMessageString(CommonInfoCFConst.SYSID_06, X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約回線内訳番号
		parentMap.put(SVC_KEI_KAISEN_UCWK_NO, keiSvcInfoBean.sendMessageString(CommonInfoCFConst.SVC_KEI_KAISEN_UCWK_NO_10,
				X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put(FUSV015601CC, parentMap);

		return outputMap;
	}

	/**
	 * 下りマッピング（料金（ファミリーパック））
	 * <br>
	 * @param bean [0]：ｅｏ光ネットオプション選択
	 * @param outputMap
	 * @param bl
	 * @return bean [0]：ｅｏ光ネットオプション選択
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getFUSV015601SC(X31SDataBeanAccess[] bean, HashMap outputMap, X31BWebBusinessLogic bl) throws Exception
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("FUSV015601SC"))
		{
			parentMap = (HashMap)outputMap.get("FUSV015601SC");
		}

		ArrayList childList = null;

		if (parentMap != null && parentMap.containsKey("EKK0601B002CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0601B002CBSMsg1List");

			if (childList.size() > 0)
			{
				HashMap childMap = (HashMap)childList.get(0);
				bean[0].sendMessageString(FP_PRC, X31CWebConst.DATABEAN_SET_VALUE,
						(String)childMap.get("pplan_kotei_amnt"));
			}
		}

		return bean;
	}

	/**
	 * 下りマッピング（料金（リモートサポートプラス））
	 * <br>
	 * @param bean [0]：ｅｏ光ネットオプション選択
	 * @param outputMap
	 * @param bl
	 * @return bean [0]：ｅｏ光ネットオプション選択
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getFUSV015602SC(X31SDataBeanAccess[] bean, HashMap outputMap, X31BWebBusinessLogic bl) throws Exception
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("FUSV015602SC"))
		{
			parentMap = (HashMap)outputMap.get("FUSV015602SC");
		}

		ArrayList childList = null;

		if (parentMap != null && parentMap.containsKey("EKK0601B002CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0601B002CBSMsg1List");

			if (childList.size() > 0)
			{
				HashMap childMap = (HashMap)childList.get(0);
				bean[0].sendMessageString(RMTSPRT_PRC, X31CWebConst.DATABEAN_SET_VALUE, 
						(String)childMap.get("pplan_kotei_amnt"));
			}
		}

		return bean;
	}

	/**
	 * 下りマッピング（料金（多機能ルーター（無線ルーター機能）））
	 * <br>
	 * @param bean [0]：ｅｏ光ネットオプション選択
	 * @param outputMap
	 * @param bl
	 * @return bean　[0]：ｅｏ光ネットオプション選択
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getFUSV015603SC(X31SDataBeanAccess[] bean, HashMap outputMap, X31BWebBusinessLogic bl) throws Exception
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("FUSV015603SC"))
		{
			parentMap = (HashMap)outputMap.get("FUSV015603SC");
		}

		ArrayList childList = null;

		if (parentMap != null && parentMap.containsKey("EKK0601B002CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0601B002CBSMsg1List");

			if (childList.size() > 0)
			{
				HashMap childMap = (HashMap)childList.get(0);
				bean[0].sendMessageString(FUW00118SFConst.TKN_ROUTER_MUSEN_PRC, X31CWebConst.DATABEAN_SET_VALUE,
						(String)childMap.get("pplan_kotei_amnt"));
			}
		}

		return bean;
	}

	/**
	 * 下りマッピング（料金（多機能ルーター（有線ルーター機能）））
	 * <br>
	 * @param bean [0]：ｅｏ光ネットオプション選択
	 * @param outputMap
	 * @param bl
	 * @return bean [0]：ｅｏ光ネットオプション選択
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getFUSV015604SC(X31SDataBeanAccess[] bean, HashMap outputMap, X31BWebBusinessLogic bl) throws Exception
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("FUSV015604SC"))
		{
			parentMap = (HashMap)outputMap.get("FUSV015604SC");
		}

		ArrayList childList = null;

		if (parentMap != null && parentMap.containsKey("EKK0601B002CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0601B002CBSMsg1List");

			if (childList.size() > 0)
			{
				HashMap childMap = (HashMap)childList.get(0);
				bean[0].sendMessageString(FUW00118SFConst.TKN_ROUTER_YUSEN_PRC, X31CWebConst.DATABEAN_SET_VALUE,
						(String)childMap.get("pplan_kotei_amnt"));
			}
		}

		return bean;
	}

	/**
	 * 下りマッピング（料金（ｅｏ光ＰＬＣアダプタレンタルサービス））
	 * <br>
	 * @param bean [0]：ｅｏ光ネットオプション選択
	 * @param outputMap
	 * @param bl
	 * @return bean　[0]：ｅｏ光ネットオプション選択
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getFUSV015605SC(X31SDataBeanAccess[] bean, HashMap outputMap, X31BWebBusinessLogic bl) throws Exception
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("FUSV015605SC"))
		{
			parentMap = (HashMap)outputMap.get("FUSV015605SC");
		}

		ArrayList childList = null;

		if (parentMap != null && parentMap.containsKey("EKK0601B002CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0601B002CBSMsg1List");

			if (childList.size() > 0)
			{
				HashMap childMap = (HashMap)childList.get(0);
				int amnt = Integer.parseInt((String)childMap.get("pplan_kotei_amnt"));

				// PLC単体料金×台数
				amnt = Integer.parseInt(String.valueOf(amnt));
// ANK-3529-00-00 MOD START
//				bean[0].sendMessageString(PLC_PRC, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(amnt * 2));
				bean[0].sendMessageString(PLC_PRC, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(amnt));
// ANK-3529-00-00 MOD END
			}
		}

		return bean;
	}

// ANK-3217-00-00 ADD START
	/**
	 * 下りマッピング（業務パラメータ管理一意照会）処理です。
	 * <br>
	 * @param bean [0]：ｅｏ光ネットオプション選択
	 * @param outputMap
	 * @return bean [0]：ｅｏ光ネットオプション選択
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getFUSV015614SC(X31SDataBeanAccess[] bean, HashMap outputMap) throws Exception
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("FUSV015614SC"))
		{
			parentMap = (HashMap)outputMap.get("FUSV015614SC");
		}

		ArrayList childList = null;

		if (parentMap != null && parentMap.containsKey("EZM0321A010CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EZM0321A010CBSMsg1List");

			if (childList != null && childList.size() > 0)
			{
				HashMap childMap = (HashMap)childList.get(0);
				bean[0].sendMessageString(FUW00118SFConst.GH_TKNKIKI_MDL, X31CWebConst.DATABEAN_SET_VALUE,
						(String)childMap.get("work_param_sette_value"));
			}
		}

		return bean;
	}
// ANK-3217-00-00 ADD END

	/**
	 * 下りマッピング
	 * <br>
	 * @param bean
	 * @param outputMap
	 * @return bean
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getFUSV015606SC(X31SDataBeanAccess[] bean, HashMap outputMap) throws Exception
	{

		//----------------------------------------------------------------
		// 手動マッピング
		//----------------------------------------------------------------

		// 割賦プラン一覧照会(eoスマートリンク)SC 実行結果の設定
		HashMap parentMap = null;
		if (outputMap.containsKey("FUSV015606SC"))
		{
			parentMap = (HashMap)outputMap.get("FUSV015606SC");
		}

		if (parentMap == null)
		{
			return bean;
		}

		// 割賦プラン一覧照会(eoスマートリンク)明細を取得
		ArrayList childList = (ArrayList)parentMap.get("EKK2521B501CBSMsg1List");

		if (null == childList)
		{
			return bean;
		}

		if (0 == childList.size())
		{
			return bean;
		}

		// サービスフォームBean.eoスマートリンクタブレット情報
		X31SDataBeanAccessArray eoSmartLinkTabletInfoBeanArray = bean[0].getDataBeanArray(FUW00118SFConst.EO_SMART_LINK_TABLET_INFO);

		// 初期化
		eoSmartLinkTabletInfoBeanArray.clearArray();

// ANK-3217-00-00 ADD START
		// サービスフォームBean.ＧＨ情報
		X31SDataBeanAccessArray ghInfoBeanArray = bean[0].getDataBeanArray(FUW00118SFConst.GH_INFO);

		// 初期化
		ghInfoBeanArray.clearArray();
		
		// ＧＨ宅内機器型式
		String ghTknkikiMdl = bean[0].sendMessageString(FUW00118SFConst.GH_TKNKIKI_MDL, X31CWebConst.DATABEAN_GET_VALUE);
		
		// ＧＨ宅内機器型式マップ
		HashSet<String> ghTknkikiMdlMap = new HashSet<String>();
		if (!JFUWebCommon.isNull(ghTknkikiMdl))
		{
			String[] ghTknkikiMdlList = ghTknkikiMdl.split(JFUStrConst.COMMA);
			for (String splitGhTknkikiMdl : ghTknkikiMdlList)
			{
				ghTknkikiMdlMap.add(splitGhTknkikiMdl);
			}
		}
// ANK-3217-00-00 ADD END

		// 一覧照会の取得件数分ループ
		Iterator ite = childList.iterator();
		while (ite.hasNext())
		{

			HashMap msgMap = (HashMap)ite.next();

			// 宅内機器型式コードを取得
			String taknkikiModelCd = (String)msgMap.get(TAKNKIKI_MODEL_CD);
// ANK-3642-00-00 DEL START
//			// 取得した宅内機器型式コードと、タブレット除外リスト、ＧＨ除外リストに入っている宅内機器型式コードが一致した場合、ビーンに値を入れない
//			if (!JFUWebCommon.checkExceptList(taknkikiModelCd))
//			{
//				continue;
//			}
// ANK-3642-00-00 DEL END
// ANK-3217-00-00 ADD START
			// 取得した宅内機器型式コードと、ＧＨ宅内機器型式マップに入っている宅内機器型式コードが一致した場合、ＧＨ情報に値を入れる
			if (ghTknkikiMdlMap.contains(taknkikiModelCd))
			{
				X31SDataBeanAccess ghBean = ghInfoBeanArray.addDataBean();
				
				// 下りマッピング
				// 割賦プランコード
				ghBean.sendMessageString(FUW00118SFConst.KAP_PLAN_CD_GH_04, X31CWebConst.DATABEAN_SET_VALUE, (String)msgMap.get("kap_plan_cd"));
				// 宅内機器型式コード
				ghBean.sendMessageString(FUW00118SFConst.TAKNKIKI_MODEL_CD_GH_04, X31CWebConst.DATABEAN_SET_VALUE, (String)msgMap
						.get("taknkiki_model_cd"));
				// 割賦販売形態コード
				ghBean.sendMessageString(FUW00118SFConst.KAP_HAMBAI_FORM_CD_GH_04, X31CWebConst.DATABEAN_SET_VALUE, (String)msgMap
						.get("kap_hambai_form_cd"));
				// 割賦販売形態コード名称
				ghBean.sendMessageString(FUW00118SFConst.KAP_HAMBAI_FORM_CD_NM_GH_04, X31CWebConst.DATABEAN_SET_VALUE, (String)msgMap
						.get("kap_hambai_form_cd_nm"));
				// 割賦販売形態コード略称
				ghBean.sendMessageString(FUW00118SFConst.KAP_HAMBAI_FORM_CD_ALI_GH_04, X31CWebConst.DATABEAN_SET_VALUE, (String)msgMap
						.get("kap_hambai_form_cd_ali"));
				// 割賦支払い回数
				ghBean.sendMessageString(FUW00118SFConst.KAP_PAY_CNT_GH_04, X31CWebConst.DATABEAN_SET_VALUE, (String)msgMap.get("kap_pay_cnt"));
				// 割賦プラン料金単価種別コード
				ghBean.sendMessageString(FUW00118SFConst.KAP_PLAN_PRC_TANKA_SBT_CD_GH_04, X31CWebConst.DATABEAN_SET_VALUE, (String)msgMap
						.get("kap_plan_prc_tanka_sbt_cd"));
				// 割賦プラン料金額
				ghBean.sendMessageString(FUW00118SFConst.KAP_PLAN_PRC_AMNT_GH_04, X31CWebConst.DATABEAN_SET_VALUE, (String)msgMap
						.get("kap_plan_prc_amnt"));
				// 割賦プラン料金割引額
				ghBean.sendMessageString(FUW00118SFConst.KAP_PLAN_PRC_AMNT_WRIB_GH_04, X31CWebConst.DATABEAN_SET_VALUE, (String)msgMap
						.get("kap_plan_prc_amnt_wrib"));
				// 宅内機器型式名
				ghBean.sendMessageString(FUW00118SFConst.TAKNKIKI_MODEL_NM_GH_04, X31CWebConst.DATABEAN_SET_VALUE, (String)msgMap
						.get("taknkiki_model_nm"));
				continue;
			}
// ANK-3217-00-00 ADD END

			X31SDataBeanAccess smartLinkBean = eoSmartLinkTabletInfoBeanArray.addDataBean();

			// 下りマッピング
			// 割賦プランコード
			smartLinkBean.sendMessageString(FUW00118SFConst.KAP_PLAN_CD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)msgMap.get("kap_plan_cd"));
			// 宅内機器型式コード
			smartLinkBean.sendMessageString(FUW00118SFConst.TAKNKIKI_MODEL_CD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)msgMap
					.get("taknkiki_model_cd"));
			// 割賦販売形態コード
			smartLinkBean.sendMessageString(FUW00118SFConst.KAP_HAMBAI_FORM_CD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)msgMap
					.get("kap_hambai_form_cd"));
			// 割賦販売形態コード名称
			smartLinkBean.sendMessageString(FUW00118SFConst.KAP_HAMBAI_FORM_CD_NM_01, X31CWebConst.DATABEAN_SET_VALUE, (String)msgMap
					.get("kap_hambai_form_cd_nm"));
			// 割賦販売形態コード略称
			smartLinkBean.sendMessageString(FUW00118SFConst.KAP_HAMBAI_FORM_CD_ALI_01, X31CWebConst.DATABEAN_SET_VALUE, (String)msgMap
					.get("kap_hambai_form_cd_ali"));
			// 割賦支払い回数
			smartLinkBean.sendMessageString(FUW00118SFConst.KAP_PAY_CNT_01, X31CWebConst.DATABEAN_SET_VALUE, (String)msgMap.get("kap_pay_cnt"));
			// 割賦プラン料金単価種別コード
			smartLinkBean.sendMessageString(FUW00118SFConst.KAP_PLAN_PRC_TANKA_SBT_CD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)msgMap
					.get("kap_plan_prc_tanka_sbt_cd"));
			// 割賦プラン料金額
			smartLinkBean.sendMessageString(FUW00118SFConst.KAP_PLAN_PRC_AMNT_01, X31CWebConst.DATABEAN_SET_VALUE, (String)msgMap
					.get("kap_plan_prc_amnt"));
			// 割賦プラン料金割引額
			smartLinkBean.sendMessageString(FUW00118SFConst.KAP_PLAN_PRC_AMNT_WRIB_01, X31CWebConst.DATABEAN_SET_VALUE, (String)msgMap
					.get("kap_plan_prc_amnt_wrib"));
			// 宅内機器型式名
			smartLinkBean.sendMessageString(FUW00118SFConst.TAKNKIKI_MODEL_NM_01, X31CWebConst.DATABEAN_SET_VALUE, (String)msgMap
					.get("taknkiki_model_nm"));
			// 料金プラン固定単価料金プランコード
			smartLinkBean.sendMessageString(FUW00118SFConst.TANMT_COMPS_PPLAN_CD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)msgMap
					.get("kttanka_pplan_cd"));
		}

		return bean;
	}

	/**
	 * 下りマッピング（料金（プレミアムパック））
	 * <br>
	 * @param bean [0]：ｅｏ光ネットオプション選択
	 * @param outputMap
	 * @param bl
	 * @return bean [0]：ｅｏ光ネットオプション選択
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getFUSV015607SC(X31SDataBeanAccess[] bean, HashMap outputMap, X31BWebBusinessLogic bl) throws Exception
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("FUSV015607SC"))
		{
			parentMap = (HashMap)outputMap.get("FUSV015607SC");
		}

		ArrayList childList = null;

		if (parentMap != null && parentMap.containsKey("EKK0601B002CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0601B002CBSMsg1List");

			if (childList.size() > 0)
			{
				HashMap childMap = (HashMap)childList.get(0);
				bean[0].sendMessageString(PREMIUM_PACK_PRC, X31CWebConst.DATABEAN_SET_VALUE,
						(String)childMap.get("pplan_kotei_amnt"));
			}
		}

		return bean;
	}

	// ANK-1421-00-00 2013/02/18 kusumoto start

	/**
	 * 下りマッピング（料金（スティック型STBレンタルサービス））
	 * <br>
	 * @param bean [0]：ｅｏ光ネットオプション選択
	 * @param outputMap
	 * @param bl
	 * @return bean　[0]：ｅｏ光ネットオプション選択
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getFUSV015608SC(X31SDataBeanAccess[] bean, HashMap outputMap, X31BWebBusinessLogic bl) throws Exception
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("FUSV015608SC"))
		{
			parentMap = (HashMap)outputMap.get("FUSV015608SC");
		}

		ArrayList childList = null;

		if (parentMap != null && parentMap.containsKey("EKK0601B002CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0601B002CBSMsg1List");

			if (childList.size() > 0)
			{
				HashMap childMap = (HashMap)childList.get(0);
				bean[0].sendMessageString(STB_PRC, X31CWebConst.DATABEAN_SET_VALUE, 
						(String)childMap.get("pplan_kotei_amnt"));
			}
		}

		return bean;
	}
	// ANK-1421-00-00 2013/02/18 kusumoto end

	/**
	 * 下りマッピング（料金（多機能ルーター 無線ルーター機能））処理です。
	 * <br>
	 * @param bean [0]：ｅｏ光ネットオプション選択
	 * @param outputMap
	 * @param bl
	 * @return bean [0]：ｅｏ光ネットオプション選択
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getFUSV015609SC(X31SDataBeanAccess[] bean, HashMap outputMap, X31BWebBusinessLogic bl) throws Exception
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("FUSV015609SC"))
		{
			parentMap = (HashMap)outputMap.get("FUSV015609SC");
		}

		ArrayList childList = null;

		if (parentMap != null && parentMap.containsKey("EKK0601B002CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0601B002CBSMsg1List");

			if (childList != null && childList.size() > 0)
			{
				HashMap childMap = (HashMap)childList.get(0);
				bean[0].sendMessageString(FUW00916SFConst.TKN_MUSEN_PRC, X31CWebConst.DATABEAN_SET_VALUE,
						(String)childMap.get("pplan_kotei_amnt"));
			}
		}

		return bean;
	}

	/**
	 * 下りマッピング（料金（多機能ルーター 有線ルーター機能））処理です。
	 * <br>
	 * @param bean [0]：ｅｏ光ネットオプション選択
	 * @param outputMap
	 * @param bl
	 * @return bean [0]：ｅｏ光ネットオプション選択
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getFUSV015610SC(X31SDataBeanAccess[] bean, HashMap outputMap, X31BWebBusinessLogic bl) throws Exception
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("FUSV015610SC"))
		{
			parentMap = (HashMap)outputMap.get("FUSV015610SC");
		}

		ArrayList childList = null;

		if (parentMap != null && parentMap.containsKey("EKK0601B002CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0601B002CBSMsg1List");

			if (childList != null && childList.size() > 0)
			{
				HashMap childMap = (HashMap)childList.get(0);
				bean[0].sendMessageString(FUW00916SFConst.TKN_YUSEN_PRC, 
						(String)childMap.get("pplan_kotei_amnt"));
			}
		}

		return bean;
	}
// ANK-3149-00-00 ADD START
	
	/**
	 * 下りマッピング（料金（eoセキュリティーパック））
	 * <br>
	 * @param bean [0]：ｅｏ光ネットオプション選択
	 * @param outputMap
	 * @param bl
	 * @return bean [0]：ｅｏ光ネットオプション選択
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getFUSV015611SC(X31SDataBeanAccess[] bean, HashMap outputMap, X31BWebBusinessLogic bl) throws Exception
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("FUSV015611SC"))
		{
			parentMap = (HashMap)outputMap.get("FUSV015611SC");
		}

		ArrayList childList = null;

		if (parentMap != null && parentMap.containsKey("EKK0601B002CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0601B002CBSMsg1List");

			if (childList.size() > 0)
			{
				HashMap childMap = (HashMap)childList.get(0);
				bean[0].sendMessageString(FUW00118SFConst.SECURITY_PACK_PRC, X31CWebConst.DATABEAN_SET_VALUE,
						(String)childMap.get("pplan_kotei_amnt"));
			}
		}

		return bean;
	}
	
	/**
	 * 下りマッピング（料金（インターネットサギウォール））
	 * <br>
	 * @param bean [0]：ｅｏ光ネットオプション選択
	 * @param outputMap
	 * @param bl
	 * @return bean [0]：ｅｏ光ネットオプション選択
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getFUSV015612SC(X31SDataBeanAccess[] bean, HashMap outputMap, X31BWebBusinessLogic bl) throws Exception
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("FUSV015612SC"))
		{
			parentMap = (HashMap)outputMap.get("FUSV015612SC");
		}

		ArrayList childList = null;

		if (parentMap != null && parentMap.containsKey("EKK0601B002CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0601B002CBSMsg1List");

			if (childList.size() > 0)
			{
				HashMap childMap = (HashMap)childList.get(0);
				bean[0].sendMessageString(FUW00118SFConst.INETSGWL_PRC, X31CWebConst.DATABEAN_SET_VALUE,
						(String)childMap.get("pplan_kotei_amnt"));
			}
		}

		return bean;
	}
	
	/**
	 * 下りマッピング（料金（ノートンファミリープレミア））
	 * <br>
	 * @param bean [0]：ｅｏ光ネットオプション選択
	 * @param outputMap
	 * @param bl
	 * @return bean [0]：ｅｏ光ネットオプション選択
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getFUSV015613SC(X31SDataBeanAccess[] bean, HashMap outputMap, X31BWebBusinessLogic bl) throws Exception
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("FUSV015613SC"))
		{
			parentMap = (HashMap)outputMap.get("FUSV015613SC");
		}

		ArrayList childList = null;

		if (parentMap != null && parentMap.containsKey("EKK0601B002CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0601B002CBSMsg1List");

			if (childList.size() > 0)
			{
				HashMap childMap = (HashMap)childList.get(0);
				bean[0].sendMessageString(FUW00118SFConst.NTFMLPRM_PRC, X31CWebConst.DATABEAN_SET_VALUE,
						(String)childMap.get("pplan_kotei_amnt"));
			}
		}

		return bean;
	}
// ANK-3149-00-00 ADD END

	/**
	 * 複数電話サービス変更判定CCの下りマッピング処理です。
	 * 
	 * <br>
	 * @param bean データBean
	 * @param outputMap サービス結果マップ
	 * @return データBean
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess getFUSV015601CC(X31SDataBeanAccess bean, HashMap outputMap) throws Exception
	{
		HashMap parentMap = null;
		if (outputMap.containsKey(FUSV015601CC))
		{
			parentMap = (HashMap)outputMap.get(FUSV015601CC);
		}

		if (parentMap != null && parentMap.containsKey(JUDGE_RESULT))
		{
			String jdgeResult = (String)parentMap.get(JUDGE_RESULT);

			// 判定結果が「1」の場合、変更有り(true)。それ以外は変更無し(false)。
			bean.sendMessageBoolean(FUW00118SFConst.CHG_MULTI_PHONE_CALL_MSG_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE,
					JFUStrConst.CD00002_1.equals(jdgeResult));
		}

		return bean;
	}
	// ANK-3484-00-00 2018/10/12 ADD START
	/**
	 * 上りマッピングをする
	 * @param bean [0]：おうちの機器補償：ＰＣプラン
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV015615SC(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);

		// 料金プランコード（おうちの機器補償：ＰＣプラン） → 料金プラン固定単価一覧照会（固定料金表示）（おうちの機器補償：ＰＣプラン）SCマップ.ＫＥＹ＿料金プランコード
		parentMap.put("key_pplan_cd", JFUStrConst.CD00565_PBE401);

		outputMap.put("FUSV015615SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean [0]：おうちの機器補償：ＰＣワイドプラン
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV015616SC(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);

		// 料金プランコード（おうちの機器補償：ＰＣワイドプラン） → 料金プラン固定単価一覧照会（固定料金表示）（おうちの機器補償：ＰＣワイドプラン）SCマップ.ＫＥＹ＿料金プランコード
		parentMap.put("key_pplan_cd", JFUStrConst.CD00565_PD1201);

		outputMap.put("FUSV015616SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean [0]：おうちの機器補償：ＴＶプラン
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV015617SC(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);

		// 料金プランコード（おうちの機器補償：ＴＶプラン） → 料金プラン固定単価一覧照会（固定料金表示）（おうちの機器補償：ＴＶプラン）SCマップ.ＫＥＹ＿料金プランコード
		parentMap.put("key_pplan_cd", JFUStrConst.CD00565_PBE501);

		outputMap.put("FUSV015617SC", parentMap);

		return outputMap;
	}

	/**
	 * 下りマッピング（料金（おうちの機器補償：ＰＣプラン））※税込みで取得
	 * <br>
	 * @param bean [0]：ｅｏ光ネットオプション選択
	 * @param outputMap
	 * @param bl
	 * @return bean [0]：ｅｏ光ネットオプション選択
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getFUSV015615SC(X31SDataBeanAccess[] bean, HashMap outputMap, X31BWebBusinessLogic bl) throws Exception
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("FUSV015615SC"))
		{
			parentMap = (HashMap)outputMap.get("FUSV015615SC");
		}

		ArrayList childList = null;

		if (parentMap != null && parentMap.containsKey("EKK0601B002CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0601B002CBSMsg1List");

			if (childList.size() > 0)
			{
				HashMap childMap = (HashMap)childList.get(0);
				bean[0].sendMessageString(FUW00118SFConst.PC_PLAN_PRC, X31CWebConst.DATABEAN_SET_VALUE,
						(String)childMap.get("pplan_kotei_amnt"));
			}
		}

		return bean;
	}
	/**
	 * 下りマッピング（料金（おうちの機器補償：ＰＣワイドプラン））※税込みで取得
	 * <br>
	 * @param bean [0]：ｅｏ光ネットオプション選択
	 * @param outputMap
	 * @param bl
	 * @return bean [0]：ｅｏ光ネットオプション選択
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getFUSV015616SC(X31SDataBeanAccess[] bean, HashMap outputMap, X31BWebBusinessLogic bl) throws Exception
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("FUSV015616SC"))
		{
			parentMap = (HashMap)outputMap.get("FUSV015616SC");
		}

		ArrayList childList = null;

		if (parentMap != null && parentMap.containsKey("EKK0601B002CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0601B002CBSMsg1List");

			if (childList.size() > 0)
			{
				HashMap childMap = (HashMap)childList.get(0);
				bean[0].sendMessageString(FUW00118SFConst.PCW_PLAN_PRC, X31CWebConst.DATABEAN_SET_VALUE,
						(String)childMap.get("pplan_kotei_amnt"));
			}
		}

		return bean;
	}
	/**
	 * 下りマッピング（料金（おうちの機器補償：ＴＶプラン））
	 * <br>
	 * @param bean [0]：ｅｏ光ネットオプション選択
	 * @param outputMap
	 * @param bl
	 * @return bean [0]：ｅｏ光ネットオプション選択
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getFUSV015617SC(X31SDataBeanAccess[] bean, HashMap outputMap, X31BWebBusinessLogic bl) throws Exception
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("FUSV015617SC"))
		{
			parentMap = (HashMap)outputMap.get("FUSV015617SC");
		}

		ArrayList childList = null;

		if (parentMap != null && parentMap.containsKey("EKK0601B002CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0601B002CBSMsg1List");

			if (childList.size() > 0)
			{
				HashMap childMap = (HashMap)childList.get(0);
				bean[0].sendMessageString(FUW00118SFConst.TV_PLAN_PRC, X31CWebConst.DATABEAN_SET_VALUE,
						(String)childMap.get("pplan_kotei_amnt"));
			}
		}

		return bean;
	}
	// ANK-3484-00-00 2018/10/12 ADD END

	/**
	 * 上りマッピングをする（eoメッシュWi-Fi）
	 * @param bean [0]：ｅｏ光ネットオプション選択
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV015618SC(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メッシュWi-Fi） → 料金プラン固定単価一覧照会（固定料金表示）（eoメッシュWi-Fi）SCマップ.ＫＥＹ＿料金プランコード
		parentMap.put("key_pplan_cd", JFUStrConst.CD00565_PCA201);

		outputMap.put("FUSV015618SC", parentMap);

		return outputMap;
	}

	/**
	 * 下りマッピング（料金（eoメッシュWi-Fi））※税込みで取得
	 * <br>
	 * @param bean [0]：ｅｏ光ネットオプション選択
	 * @param outputMap
	 * @param bl
	 * @return bean [0]：ｅｏ光ネットオプション選択
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getFUSV015618SC(X31SDataBeanAccess[] bean, HashMap outputMap, X31BWebBusinessLogic bl) throws Exception
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("FUSV015618SC"))
		{
			parentMap = (HashMap)outputMap.get("FUSV015618SC");
		}

		ArrayList childList = null;

		if (parentMap != null && parentMap.containsKey("EKK0601B002CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0601B002CBSMsg1List");

			if (childList.size() > 0)
			{
				HashMap childMap = (HashMap)childList.get(0);
				bean[0].sendMessageString(FUW00118SFConst.MESH_WIFI_PRC, X31CWebConst.DATABEAN_SET_VALUE,
						(String)childMap.get("pplan_kotei_amnt"));
			}
		}

		return bean;
	}

}