/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：FUSV0243_FUSV0243OPDBMapper
*	ソースファイル名：FUSV0243_FUSV0243OPDBMapper.java
*	作成者			：富士通
*	日付			：2012年06月13日
*＜機能概要＞
*	BP（引越しナビ住所変更申込照会(テレビ)）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v4.00		2012/06/13	FJ)大野		新規作成
*   v32.00      2017/06/07  FJ)西川    【ANK-3100-00-00】スマートコンパクト受付対応
*   v39.00      2018/11/29  FJ)美濃原  【OM-2018-0001176】既契約のSTB選択リスト作成条件をHDD容量コードに変更
*
**********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;

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.FUW10401SF.FUW10401SFConst;
import eo.common.constant.JPCModelConstant;

/**
 * DataBean-BPマッピングをします。
 * <br>
 * @author 富士通
 */
public class FUSV0243_FUSV0243OPDBMapper
{

	// ■共通
	/** 機能コード */
	private static final String FUNC_CODE = "func_code";

	/** 機器提供サービス契約一覧照会（eo光テレビ情報取得）(EKK0341B509) */
	private static final String SC_TITLE_FUSV024301 = "FUSV024301SC";
	/** 機器提供サービス契約一覧照会（eo光テレビ情報取得）(EKK0341B509) */
	private static final String SC_TITLE_FUSV024302 = "FUSV024302SC";
	/** サービス契約内訳一覧照会（eo光テレビ情報取得）(EKK0161B509) */
	private static final String SC_TITLE_FUSV024303 = "FUSV024303SC";
	/** オプションサービス契約＜TV＞一覧照会（ガイド誌）(EKK0351B510) */
	private static final String SC_TITLE_FUSV024304 = "FUSV024304SC";
	/** 料金コース一覧照会（eo光テレビ情報取得）(EKK0791B502) */
	private static final String SC_TITLE_FUSV024305 = "FUSV024305SC";
	/** eo光テレビサービス契約一覧照会(整理番号)CC(JFUeoTvSvcKeiShokaiCC) */
	private static final String CC_TITLE_FUSV024301 = "FUSV024301CC";
	/** サービスIF結果データ移送CC(JFUTransferCC) */
	private static final String CC_TITLE_FUSV024302 = "FUSV024302CC";
	/** 宅内機器一意照会コンポーネント部品(JFUCngSvcKeiTvShkDap01CC) */
	private static final String CC_TITLE_FUSV024303 = "FUSV024303CC";
	/** サービスIF結果データ移送コンポーネント部品(JFUTransferListToListCC) */
	private static final String CC_TITLE_FUSV024304 = "FUSV024304CC";
	/** STB宅内機器取得コンポーネント部品(JFUGetStbTknKikiCC) */
	private static final String CC_TITLE_FUSV024305 = "FUSV024305CC";
	/** テレビコース名表示切替コンポーネント部品(JFUTvCourseDspSwchCC) */
	private static final String CC_TITLE_FUSV024306 = "FUSV024306CC";

	// ■項目名
	/** 機器提供サービス契約一覧照会（ｅｏ光テレビ情報取得）明細 */
	private static final String EKK0341B509CBSMSG1LIST = "EKK0341B509CBSMsg1List";
	/** サービス契約内訳一覧照会（ｅｏ光テレビ情報取得）明細 */
	private static final String EKK0161B509CBSMSG1LIST = "EKK0161B509CBSMsg1List";
	/** オプションサービス契約＜TV＞一覧照会（ガイド誌）一覧照会明細 */
	private static final String EKK0351B510CBSMSG1LIST = "EKK0351B510CBSMsg1List";
	/** 宅内機器一意照会明細 */
	private static final String TKKIKISHOKAI1LIST = "TKKIKISHOKAI1List";
	/** 料金コース一覧照会（ｅｏ光テレビ情報取得）明細 */
	private static final String EKK0791B502CBSMSG1LIST = "EKK0791B502CBSMsg1List";

	/** 整理番号 */
	private static final String SEIRI_NO = "seiri_no";
	/** ＫＥＹ＿機器提供サービスコード */
	private static final String KEY_KKTK_SVC_CD = "key_kktk_svc_cd";
	/** マップキー キーカウント */
	private static final String KEY_CNT_2 = "2";
	/** マップキー 移送先名取得 */
	private static final String KEY_TRAN_NAME = "tranNm";
	/** マップキー キーカウント */
	private static final String KEY_KEY_CNT = "key_cnt";
	/** 移送キー */
	private static final String TRANS_KEY_1 = "key_1";
	/** 移送キー */
	private static final String TRANS_KEY_2 = "key_2";
	/** 移送値：機器製造番号 */
	private static final String TRANS_KEY_1_VALUE =
			SC_TITLE_FUSV024301 + ":EKK0341B509CBSMsg1List:kiki_seizo_no,TKKIKISHOKAI1List::key_kiki_seizo_no";
	/** 移送値：宅内機器型式コード */
	private static final String TRANS_KEY_3_VALUE =
			SC_TITLE_FUSV024301 + ":EKK0341B509CBSMsg1List:taknkiki_model_cd,TKKIKISHOKAI1List::key_tk_mdl_cd";
	/** サービス契約番号 */
	private static final String SVC_KEI_NO_TV = "svc_kei_no_tv";
	/** 料金コースコード */
	private static final String TV_KEI_PCRS_CD = "tv_kei_pcrs_cd";
	/** 料金後ループコード */
	private static final String TV_KEI_PRC_GRP_CD = "tv_prc_grp_cd";
	/** 機器提供サービス契約番号 */
	private static final String KKTK_SVC_KEI_NO = "kktk_svc_kei_no";
	/** 機器提供サービスコード */
	private static final String KKTK_SVC_CD = "kktk_svc_cd";
	/** 機器製造番号 */
	private static final String KIKI_SEIZO_NO = "kiki_seizo_no";
	/** サービス契約内訳番号 */
	private static final String SVC_KEI_UCWK_NO = "svc_kei_ucwk_no";
	/** 料金コースコード */
	private static final String PCRS_CD = "pcrs_cd";
	/** 料金コースコード名 */
	private static final String PCRS_CD_NM = "pcrs_cd_nm";
	/** 宅内機器型式コード */
	private static final String TAKNKIKI_MODEL_CD = "taknkiki_model_cd";
	/** ＨＤＤ容量コード */
	private static final String HDD_CAPA_CD = "hdd_capa_cd";
	/** ＨＤＤ容量コード名 */
	private static final String HDD_CAPA_CD_NM = "hdd_capa_cd_nm";
	/** 料金コースコード名称 */
	private static final String PCRS_NM = "pcrs_nm";
	/** ケーブルガイド申込数 */
	private static final String CABLE_GUIDE_MSKM_CNT = "cable_guide_mskm_cnt";
	/** ＳＴＢＩＤ */
	private static final String STB_ID = "stb_id";
	/** 料金コースグレード順位 */
	private static final String PCRS_GRADE_JUN = "pcrs_grade_jun";
	/** 表示順序 */
	private static final String DSP_JUN = "dsp_jun";

	/** 項目ID：機能コード */
	private static final String IN_FUNC_CODE = "func_code";
	/** 機器リスト　*/
	private static final String KIKI_LIST = "kiki_list";
	/** 移送値：宅内機器型式コード */
	private static final String TRANS_KEY_2_VALUE =
			SC_TITLE_FUSV024301 + ":" + EKK0341B509CBSMSG1LIST + ":" + TAKNKIKI_MODEL_CD + "," + KIKI_LIST + "::" + TAKNKIKI_MODEL_CD;
	/** 移送値：ＨＤＤ容量コード */
	private static final String TRANS_KEY_4_VALUE =
			SC_TITLE_FUSV024301 + ":" + EKK0341B509CBSMSG1LIST + ":" + HDD_CAPA_CD + "," + KIKI_LIST + "::" + HDD_CAPA_CD;

	/** テレビ 料金コースコード */
	private static final List<String> TV_SVC_KEI_UCWK_PCRS_CD =
			Arrays.asList(JFUStrConst.CD00134_A85, JFUStrConst.CD00134_A86, JFUStrConst.CD00134_A87);

	/** コース種別 HDコース(スマートプレミアム、スマートベーシック、スマートコンパクト) */
	private static final String TV_PCRS_TYPE_5 = "5";

	/**
	 * コンストラクタです。
	 */
	public FUSV0243_FUSV0243OPDBMapper()
	{
	}

	/**
	 * 上りマッピングをします。
	 * <br>
	 * @param bean
	 * @param outputMap
	 * @param func_code
	 * @return outputMap
	 */
	public HashMap setFUSV024301CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		// 共有フォームBean.サービス契約情報.整理番号 → サービス契約一覧照会（整理番号）.整理番号
		parentMap.put(SEIRI_NO, bean[1].sendMessageString(CommonInfoCFConst.SEIRI_NO_23, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put(CC_TITLE_FUSV024301, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをします。
	 * <br>
	 * @param bean
	 * @param outputMap
	 * @param func_code
	 * @return outputMap
	 */
	public HashMap setFUSV024301SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		// 部品呼び出し → 機器提供サービス契約一覧照会マップ.ＫＥＹ＿機器提供サービスコード
		parentMap.put(KEY_KKTK_SVC_CD, JFUStrConst.KK0771_KKTK_SVC_CD_C009);

		outputMap.put(SC_TITLE_FUSV024301, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをします。
	 * <br>
	 * @param bean
	 * @param outputMap
	 * @param func_code
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV024302SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		// 部品呼び出し → 機器提供サービス契約一覧照会マップ.ＫＥＹ＿機器提供サービスコード
		parentMap.put(KEY_KKTK_SVC_CD, JFUStrConst.KK0771_KKTK_SVC_CD_C011);

		outputMap.put(SC_TITLE_FUSV024302, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをします。
	 * <br>
	 * @param bean：引越しナビ住所変更申込／照会
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return HashMap
	 */
	public HashMap setFUSV024303SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		outputMap.put(SC_TITLE_FUSV024303, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをします。
	 * <br>
	 * @param bean：引越しナビ住所変更申込／照会
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return HashMap
	 */
	public HashMap setFUSV024304SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		outputMap.put(SC_TITLE_FUSV024304, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをします。
	 * <br>
	 * @param bean：引越しナビ住所変更申込／照会
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return HashMap
	 */
	public HashMap<String, Object> setFUSV024302CC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// データ移送数
		parentMap.put(KEY_KEY_CNT, KEY_CNT_2);

		// データ移送先
		parentMap.put(KEY_TRAN_NAME, CC_TITLE_FUSV024303);

		// 移送値：宅内機器一意照会CC(FUSV024303CC).機器製造番号
		parentMap.put(TRANS_KEY_1, TRANS_KEY_1_VALUE);
		// 移送値：宅内機器一意照会CC(FUSV024303CC).宅内機器型式コード
		parentMap.put(TRANS_KEY_2, TRANS_KEY_3_VALUE);

		// 共通情報のマッピング
		outputMap.put(CC_TITLE_FUSV024302, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをします。
	 * <br>
	 * @param bean：引越しナビ住所変更申込／照会
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return HashMap
	 */
	public HashMap setFUSV024303CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		ArrayList<Object> list = new ArrayList<Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		parentMap.put(TKKIKISHOKAI1LIST, list);
		outputMap.put(CC_TITLE_FUSV024303, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをします。
	 * <br>
	 * @param bean：引越しナビ住所変更申込／照会
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return HashMap
	 */
	public HashMap setFUSV024305SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		outputMap.put(SC_TITLE_FUSV024305, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをします。
	 * <br>
	 * @param bean：引越しナビ住所変更申込／照会
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return HashMap
	 */
	public HashMap setFUSV024304CC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// データ移送数
		parentMap.put(KEY_KEY_CNT, KEY_CNT_2);

		// データ移送先
		parentMap.put(KEY_TRAN_NAME, CC_TITLE_FUSV024305);

		// 移送値：STB宅内機器取得CC(FUSV024304CC).宅内機器型式コード
		parentMap.put(TRANS_KEY_1, TRANS_KEY_2_VALUE);
		// 移送値：STB宅内機器取得CC(FUSV024304CC).ＨＤＤ容量コード
		parentMap.put(TRANS_KEY_2, TRANS_KEY_4_VALUE);

		// 共通情報のマッピング
		outputMap.put(CC_TITLE_FUSV024304, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをします。
	 * <br>
	 * @param bean：引越しナビ住所変更申込／照会
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return HashMap
	 */
	public HashMap setFUSV024305CC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		ArrayList<Object> list = new ArrayList<Object>();

		// 機能コード
		parentMap.put(IN_FUNC_CODE, JPCModelConstant.FUNC_CD_2);

		// 料金コースコード(HDコース)
		parentMap.put(PCRS_CD, JFUStrConst.CD00134_A39);

		parentMap.put(KIKI_LIST, list);
		outputMap.put(CC_TITLE_FUSV024305, parentMap);

		return outputMap;
	}

	/**
	 * eo光テレビサービス契約一覧照会(整理番号)コモンコンポーネント部品の下りマッピングです。
	 * <br>
	 * @param bean
	 * @param outputMap
	 * @return bean
	 */
	public X31SDataBeanAccess[] getFUSV024301CC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap<String, Object> parentMap = null;
		if (outputMap.containsKey(CC_TITLE_FUSV024301))
		{
			parentMap = (HashMap<String, Object>)outputMap.get(CC_TITLE_FUSV024301);
		}

		// サービス契約番号(テレビ)  ← eo光テレビサービス契約一覧照会(整理番号)コモンコンポーネント部品.サービス契約番号
		if (parentMap != null)
		{
			bean[0].sendMessageString(FUW10401SFConst.TV_SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get(SVC_KEI_NO_TV));
		}
		else
		{
			bean[0].sendMessageString(FUW10401SFConst.TV_SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
		}
		// 契約中料金コースコード(テレビ) ← eo光テレビサービス契約一覧照会(整理番号)コモンコンポーネント部品.料金コースコード
		if (parentMap != null)
		{
			bean[0].sendMessageString(FUW10401SFConst.TV_NOW_PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get(TV_KEI_PCRS_CD));
		}
		else
		{
			bean[0].sendMessageString(FUW10401SFConst.TV_NOW_PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
		}

		// 2013/04/17 KCN/再送信対応 >>>
		// eo光テレビサービス契約一覧照会(整理番号)コモンコンポーネント部品.料金グループコード
		// 料金グループコードがＫＣＮ，再送信の場合は、契約無し状態にする
		if (parentMap != null)
		{
			String tv_kei_prc_grp_cd = (String)parentMap.get(TV_KEI_PRC_GRP_CD);
			if (JFUStrConst.CD00133_12.equals(tv_kei_prc_grp_cd) || JFUStrConst.CD00133_13.equals(tv_kei_prc_grp_cd))
			{
				bean[0].sendMessageString(FUW10401SFConst.TV_SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				bean[0].sendMessageString(FUW10401SFConst.TV_NOW_PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
			}
		}
		// 2013/04/17 KCN/再送信対応 <<<E

		return bean;
	}

	/**
	 * 機器提供サービス契約STBリスト(テレビ)の下りマッピングです。
	 * <br>
	 * @param bean：引越しナビ住所変更申込／照会
	 * @param outputMap
	 * @return bean
	 */
	public X31SDataBeanAccess[] getFUSV024301SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap<String, Object> parentMap = null;
		if (outputMap.containsKey(SC_TITLE_FUSV024301))
		{
			parentMap = (HashMap<String, Object>)outputMap.get(SC_TITLE_FUSV024301);
		}

		ArrayList<Object> childList = null;

		X31SDataBeanAccessArray list_FUSV024301SC_EKK0341B509CBSMsg1List = bean[0].getDataBeanArray(FUW10401SFConst.TV_ALL_STB_LIST);
		childList = null;
		if (list_FUSV024301SC_EKK0341B509CBSMsg1List != null && parentMap != null && parentMap.containsKey(EKK0341B509CBSMSG1LIST))
		{
			childList = (ArrayList)parentMap.get(EKK0341B509CBSMSG1LIST);

			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if (list_FUSV024301SC_EKK0341B509CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = list_FUSV024301SC_EKK0341B509CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = list_FUSV024301SC_EKK0341B509CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null)
				{
					continue;
				}

				// 機器提供サービス契約STBリスト(テレビ).機器提供サービス契約番号 ←
				//		機器提供サービス契約一覧照会（eo光テレビ情報取得）.機器提供サービス契約一覧照会（ｅｏ光テレビ情報取得）明細.機器提供サービス契約番号
				if (childMap != null)
				{
					subbean.sendMessageString(FUW10401SFConst.KKTK_SVC_KEI_NO_07, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
							.get(KKTK_SVC_KEI_NO));
				}
				else
				{
					subbean.sendMessageString(FUW10401SFConst.KKTK_SVC_KEI_NO_07, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// 機器提供サービス契約STBリスト(テレビ).機器提供サービスコード ←
				//		機器提供サービス契約一覧照会（eo光テレビ情報取得）.機器提供サービス契約一覧照会（ｅｏ光テレビ情報取得）明細.機器提供サービスコード
				if (childMap != null)
				{
					subbean.sendMessageString(FUW10401SFConst.KKTK_SVC_CD_07, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get(KKTK_SVC_CD));
				}
				else
				{
					subbean.sendMessageString(FUW10401SFConst.KKTK_SVC_CD_07, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// 機器提供サービス契約STBリスト(テレビ).機器製造番号 ←
				//		機器提供サービス契約一覧照会（eo光テレビ情報取得）.機器提供サービス契約一覧照会（ｅｏ光テレビ情報取得）明細.機器製造番号
				if (childMap != null)
				{
					subbean.sendMessageString(FUW10401SFConst.KIKI_SEIZO_NO_07, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get(KIKI_SEIZO_NO));
				}
				else
				{
					subbean.sendMessageString(FUW10401SFConst.KIKI_SEIZO_NO_07, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// 機器提供サービス契約STBリスト(テレビ).サービス契約内訳番号 ←
				//		機器提供サービス契約一覧照会（eo光テレビ情報取得）.機器提供サービス契約一覧照会（ｅｏ光テレビ情報取得）明細.サービス契約内訳番号
				if (childMap != null)
				{
					subbean.sendMessageString(FUW10401SFConst.SVC_KEI_UCWK_NO_07, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
							.get(SVC_KEI_UCWK_NO));
				}
				else
				{
					subbean.sendMessageString(FUW10401SFConst.SVC_KEI_UCWK_NO_07, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// 機器提供サービス契約STBリスト(テレビ).料金コースコード ←
				//		機器提供サービス契約一覧照会（eo光テレビ情報取得）.機器提供サービス契約一覧照会（ｅｏ光テレビ情報取得）明細.料金コースコード
				if (childMap != null)
				{
					subbean.sendMessageString(FUW10401SFConst.PCRS_CD_07, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get(PCRS_CD));
				}
				else
				{
					subbean.sendMessageString(FUW10401SFConst.PCRS_CD_07, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// 機器提供サービス契約STBリスト(テレビ).料金コースコード名 ←
				//		機器提供サービス契約一覧照会（eo光テレビ情報取得）.機器提供サービス契約一覧照会（ｅｏ光テレビ情報取得）明細.料金コースコード名
				if (childMap != null)
				{
					subbean.sendMessageString(FUW10401SFConst.KIKI_PCRS_CD_NM_07, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get(PCRS_CD_NM));
				}
				else
				{
					subbean.sendMessageString(FUW10401SFConst.KIKI_PCRS_CD_NM_07, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// 機器提供サービス契約STBリスト(テレビ).宅内機器型式コード ←
				//		機器提供サービス契約一覧照会（eo光テレビ情報取得）.機器提供サービス契約一覧照会（ｅｏ光テレビ情報取得）明細.宅内機器型式コード
				if (childMap != null)
				{
					subbean.sendMessageString(FUW10401SFConst.TAKNKIKI_MODEL_CD_07, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
							.get(TAKNKIKI_MODEL_CD));
				}
				else
				{
					subbean.sendMessageString(FUW10401SFConst.TAKNKIKI_MODEL_CD_07, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// 機器提供サービス契約STBリスト(テレビ).ＨＤＤ容量コード ←
				//		機器提供サービス契約一覧照会（eo光テレビ情報取得）.機器提供サービス契約一覧照会（ｅｏ光テレビ情報取得）明細.ＨＤＤ容量コード
				if (childMap != null)
				{
					subbean.sendMessageString(FUW10401SFConst.HDD_CAPA_CD_07, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get(HDD_CAPA_CD));
				}
				else
				{
					subbean.sendMessageString(FUW10401SFConst.HDD_CAPA_CD_07, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// 機器提供サービス契約STBリスト(テレビ).ＨＤＤ容量コード名 ←
				//		機器提供サービス契約一覧照会（eo光テレビ情報取得）.機器提供サービス契約一覧照会（ｅｏ光テレビ情報取得）明細.ＨＤＤ容量コード名
				if (childMap != null)
				{
					subbean.sendMessageString(FUW10401SFConst.HDD_CAPA_CD_NM_07, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
							.get(HDD_CAPA_CD_NM));
				}
				else
				{
					subbean.sendMessageString(FUW10401SFConst.HDD_CAPA_CD_NM_07, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
			}
		}
		return bean;
	}

	/**
	 * 機器提供サービス契約C-CASリスト(テレビ)の下りマッピングです。
	 * <br>
	 * @param bean：引越しナビ住所変更申込／照会
	 * @param outputMap
	 * @return bean
	 */
	public X31SDataBeanAccess[] getFUSV024302SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap<String, Object> parentMap = null;
		if (outputMap.containsKey(SC_TITLE_FUSV024302))
		{
			parentMap = (HashMap<String, Object>)outputMap.get(SC_TITLE_FUSV024302);
		}

		ArrayList<Object> childList = null;

		X31SDataBeanAccessArray list_FUSV024302SC_EKK0341B509CBSMsg1List = bean[0].getDataBeanArray(FUW10401SFConst.TV_ALL_CCAS_LIST);
		childList = null;
		if (list_FUSV024302SC_EKK0341B509CBSMsg1List != null && parentMap != null && parentMap.containsKey(EKK0341B509CBSMSG1LIST))
		{
			childList = (ArrayList)parentMap.get(EKK0341B509CBSMSG1LIST);

			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if (list_FUSV024302SC_EKK0341B509CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = list_FUSV024302SC_EKK0341B509CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = list_FUSV024302SC_EKK0341B509CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null)
				{
					continue;
				}

				// 機器提供サービス契約C-CASリスト(テレビ).機器提供サービスコード ←
				//		機器提供サービス契約一覧照会（eo光テレビ情報取得）.機器提供サービス契約一覧照会（ｅｏ光テレビ情報取得）明細.機器提供サービスコード
				if (childMap != null)
				{
					subbean.sendMessageString(FUW10401SFConst.KKTK_SVC_CD_08, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get(KKTK_SVC_CD));
				}
				else
				{
					subbean.sendMessageString(FUW10401SFConst.KKTK_SVC_CD_08, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				//機器提供サービス契約C-CASリスト(テレビ).機器製造番号 ←
				//		機器提供サービス契約一覧照会（eo光テレビ情報取得）.機器提供サービス契約一覧照会（ｅｏ光テレビ情報取得）明細.機器製造番号
				if (childMap != null)
				{
					subbean.sendMessageString(FUW10401SFConst.KIKI_SEIZO_NO_08, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get(KIKI_SEIZO_NO));
				}
				else
				{
					subbean.sendMessageString(FUW10401SFConst.KIKI_SEIZO_NO_08, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// 機器提供サービス契約C-CASリスト(テレビ).サービス契約内訳番号 ←
				//		機器提供サービス契約一覧照会（eo光テレビ情報取得）.機器提供サービス契約一覧照会（ｅｏ光テレビ情報取得）明細.サービス契約内訳番号
				if (childMap != null)
				{
					subbean.sendMessageString(FUW10401SFConst.SVC_KEI_UCWK_NO_08, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
							.get(SVC_KEI_UCWK_NO));
				}
				else
				{
					subbean.sendMessageString(FUW10401SFConst.SVC_KEI_UCWK_NO_08, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
			}
		}
		return bean;
	}

	/**
	 * サービス契約内訳一覧リスト(テレビ)の下りマッピングです。
	 * <br>
	 * @param bean：引越しナビ住所変更申込／照会
	 * @param outputMap
	 * @return bean
	 */
	public X31SDataBeanAccess[] getFUSV024303SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap<String, Object> parentMap = null;
		if (outputMap.containsKey(SC_TITLE_FUSV024303))
		{
			parentMap = (HashMap<String, Object>)outputMap.get(SC_TITLE_FUSV024303);
		}

		ArrayList<Object> childList = null;

		X31SDataBeanAccessArray list_FUSV024303SC_EKK0161B509CBSMsg1List = bean[0].getDataBeanArray(FUW10401SFConst.TV_SVC_KEI_UCWK_LIST);
		childList = null;
		if (list_FUSV024303SC_EKK0161B509CBSMsg1List != null && parentMap != null && parentMap.containsKey(EKK0161B509CBSMSG1LIST))
		{
			childList = (ArrayList)parentMap.get(EKK0161B509CBSMSG1LIST);

			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if (list_FUSV024303SC_EKK0161B509CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = list_FUSV024303SC_EKK0161B509CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = list_FUSV024303SC_EKK0161B509CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null)
				{
					continue;
				}

				// サービス契約内訳一覧リスト(テレビ).サービス契約内訳番号 ←
				//		サービス契約内訳一覧照会（eo光テレビ情報取得）.機器提供サービス契約一覧照会（ｅｏ光テレビ情報取得）明細.サービス契約内訳番号
				if (childMap != null)
				{
					subbean.sendMessageString(FUW10401SFConst.SVC_KEI_UCWK_NO_09, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
							.get(SVC_KEI_UCWK_NO));
				}
				else
				{
					subbean.sendMessageString(FUW10401SFConst.SVC_KEI_UCWK_NO_09, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				//サービス契約内訳一覧リスト(テレビ).料金コースコード ←
				//		サービス契約内訳一覧照会（eo光テレビ情報取得）.機器提供サービス契約一覧照会（ｅｏ光テレビ情報取得）明細.料金コースコード
				if (childMap != null)
				{
					subbean.sendMessageString(FUW10401SFConst.PCRS_CD_09, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get(PCRS_CD));

					if (TV_SVC_KEI_UCWK_PCRS_CD.contains((String)childMap.get(PCRS_CD)))
					{
						bean[0].sendMessageString(FUW10401SFConst.TV_PCRS_TYPE, X31CWebConst.DATABEAN_SET_VALUE, TV_PCRS_TYPE_5);
					}
				}
				else
				{
					subbean.sendMessageString(FUW10401SFConst.PCRS_CD_09, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// サービス契約内訳一覧リスト(テレビ).料金コースコード名称 ←
				//		サービス契約内訳一覧照会（eo光テレビ情報取得）.機器提供サービス契約一覧照会（ｅｏ光テレビ情報取得）明細.料金コースコード名称
				if (childMap != null)
				{
					subbean.sendMessageString(FUW10401SFConst.PCRS_NM_09, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get(PCRS_NM));
				}
				else
				{
					subbean.sendMessageString(FUW10401SFConst.PCRS_NM_09, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
			}
		}
		return bean;
	}

	/**
	 * オプションサービス契約＜TV＞リストの下りマッピングです。
	 * <br>
	 * @param bean：引越しナビ住所変更申込／照会
	 * @param outputMap
	 * @return bean
	 */
	public X31SDataBeanAccess[] getFUSV024304SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap<String, Object> parentMap = null;
		if (outputMap.containsKey(SC_TITLE_FUSV024304))
		{
			parentMap = (HashMap<String, Object>)outputMap.get(SC_TITLE_FUSV024304);
		}

		ArrayList<Object> childList = null;

		X31SDataBeanAccessArray list_FUSV024304SC_EKK0351B510CBSMsg1List = bean[0].getDataBeanArray(FUW10401SFConst.TV_OP_SVC_LIST);
		childList = null;
		if (list_FUSV024304SC_EKK0351B510CBSMsg1List != null && parentMap != null && parentMap.containsKey(EKK0351B510CBSMSG1LIST))
		{
			childList = (ArrayList)parentMap.get(EKK0351B510CBSMSG1LIST);

			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if (list_FUSV024304SC_EKK0351B510CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = list_FUSV024304SC_EKK0351B510CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = list_FUSV024304SC_EKK0351B510CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null)
				{
					continue;
				}

				// オプションサービス契約＜TV＞リスト.ケーブルガイド申込数 ←
				//		オプションサービス契約＜TV＞一覧照会（ガイド誌）.オプションサービス契約＜TV＞一覧照会（ガイド誌）一覧照会明細.ケーブルガイド申込数
				if (childMap != null)
				{
					subbean.sendMessageString(FUW10401SFConst.CABLE_GUIDE_MSKM_CNT_13, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
							.get(CABLE_GUIDE_MSKM_CNT));
				}
				else
				{
					subbean.sendMessageString(FUW10401SFConst.CABLE_GUIDE_MSKM_CNT_13, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
			}
		}
		return bean;
	}

	/**
	 * ＳＴＢＩＤリスト(テレビ)の下りマッピングです。
	 * <br>
	 * @param bean：引越しナビ住所変更申込／照会
	 * @param outputMap
	 * @return bean
	 */
	public X31SDataBeanAccess[] getFUSV024303CC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap<String, Object> parentMap = null;
		if (outputMap.containsKey(CC_TITLE_FUSV024303))
		{
			parentMap = (HashMap<String, Object>)outputMap.get(CC_TITLE_FUSV024303);
		}

		ArrayList<Object> childList = null;

		X31SDataBeanAccessArray list_FUSV024303CC_TKKIKISHOKAI1List = bean[0].getDataBeanArray(FUW10401SFConst.TV_STBID_LIST);
		childList = null;
		if (list_FUSV024303CC_TKKIKISHOKAI1List != null && parentMap != null && parentMap.containsKey(TKKIKISHOKAI1LIST))
		{
			childList = (ArrayList)parentMap.get(TKKIKISHOKAI1LIST);

			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if (list_FUSV024303CC_TKKIKISHOKAI1List.getCount() - 1 >= i)
				{
					subbean = list_FUSV024303CC_TKKIKISHOKAI1List.getDataBean(i);
				}
				else
				{
					subbean = list_FUSV024303CC_TKKIKISHOKAI1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null)
				{
					continue;
				}

				// ＳＴＢＩＤリスト(テレビ).ＳＴＢ−ＩＤ←
				//		宅内機器一意照会マップ.宅内機器一意照会明細.ＳＴＢＩＤ
				if (childMap != null)
				{
					subbean.sendMessageString(FUW10401SFConst.STB_ID_10, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get(STB_ID));
				}
				else
				{
					subbean.sendMessageString(FUW10401SFConst.STB_ID_10, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
			}
		}
		return bean;
	}

	/**
	 * 料金コース一覧リスト(テレビ)の下りマッピングです。
	 * <br>
	 * @param bean：引越しナビ住所変更申込／照会
	 * @param outputMap
	 * @return bean
	 */
	public X31SDataBeanAccess[] getFUSV024305SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap<String, Object> parentMap = null;
		if (outputMap.containsKey(SC_TITLE_FUSV024305))
		{
			parentMap = (HashMap<String, Object>)outputMap.get(SC_TITLE_FUSV024305);
		}

		ArrayList<Object> childList = null;

		X31SDataBeanAccessArray list_FUSV024305SC_EKK0791B502CBSMsg1List = bean[0].getDataBeanArray(FUW10401SFConst.TV_PCRS_LIST);
		childList = null;
		if (list_FUSV024305SC_EKK0791B502CBSMsg1List != null && parentMap != null && parentMap.containsKey(EKK0791B502CBSMSG1LIST))
		{
			childList = (ArrayList)parentMap.get(EKK0791B502CBSMSG1LIST);

			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if (list_FUSV024305SC_EKK0791B502CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = list_FUSV024305SC_EKK0791B502CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = list_FUSV024305SC_EKK0791B502CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null)
				{
					continue;
				}

				// 料金コース一覧リスト(テレビ).料金コースコード←
				//		料金コース一覧照会（eo光テレビ情報取得）.料金コース一覧照会（ｅｏ光テレビ情報取得）明細.料金コースコード
				if (childMap != null)
				{
					subbean.sendMessageString(FUW10401SFConst.PCRS_CD_11, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get(PCRS_CD));
				}
				else
				{
					subbean.sendMessageString(FUW10401SFConst.PCRS_CD_11, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// 料金コース一覧リスト(テレビ).料金コースコード名←
				//		料金コース一覧照会（eo光テレビ情報取得）.料金コース一覧照会（ｅｏ光テレビ情報取得）明細.料金コースコード名
				if (childMap != null)
				{
					subbean.sendMessageString(FUW10401SFConst.PCRS_NM_11, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get(PCRS_NM));
				}
				else
				{
					subbean.sendMessageString(FUW10401SFConst.PCRS_NM_11, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// 料金コース一覧リスト(テレビ).ＨＤＤ容量コード←
				//		料金コース一覧照会（eo光テレビ情報取得）.料金コース一覧照会（ｅｏ光テレビ情報取得）明細.ＨＤＤ容量コード
				if (childMap != null)
				{
					subbean.sendMessageString(FUW10401SFConst.HDD_CAPA_CD_11, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get(HDD_CAPA_CD));
				}
				else
				{
					subbean.sendMessageString(FUW10401SFConst.HDD_CAPA_CD_11, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// 料金コース一覧リスト(テレビ).ＨＤＤ容量コード名←
				//		料金コース一覧照会（eo光テレビ情報取得）.料金コース一覧照会（ｅｏ光テレビ情報取得）明細.ＨＤＤ容量コード名
				if (childMap != null)
				{
					subbean.sendMessageString(FUW10401SFConst.HDD_CAPA_CD_NM_11, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
							.get(HDD_CAPA_CD_NM));
				}
				else
				{
					subbean.sendMessageString(FUW10401SFConst.HDD_CAPA_CD_NM_11, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// 料金コース一覧リスト(テレビ).料金コースグレード順位←
				//		料金コース一覧照会（eo光テレビ情報取得）.料金コース一覧照会（ｅｏ光テレビ情報取得）明細.料金コースグレード順位
				if (childMap != null)
				{
					subbean.sendMessageString(FUW10401SFConst.PCRS_GRADE_JUN_11, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
							.get(PCRS_GRADE_JUN));
				}
				else
				{
					subbean.sendMessageString(FUW10401SFConst.PCRS_GRADE_JUN_11, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// 料金コース一覧リスト(テレビ).表示順序←
				//		料金コース一覧照会（eo光テレビ情報取得）.料金コース一覧照会（ｅｏ光テレビ情報取得）明細.表示順序
				if (childMap != null)
				{
					subbean.sendMessageString(FUW10401SFConst.DSP_JUN_11, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get(DSP_JUN));
				}
				else
				{
					subbean.sendMessageString(FUW10401SFConst.DSP_JUN_11, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
			}
		}
		return bean;
	}
}