/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：FUSV0126_FUSV0126OPDBMapper
*	ソースファイル名：FUSV0126_FUSV0126OPDBMapper.java
*	作成者			：FJ
*	日付			：2012年05月16日
*＜機能概要＞
*	BP（eo光テレビコース変更（初期表示））へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/05/16	FJ			新規作成
*	v4.00		2012/10/18	FJ)岡井		【ANK-1199-00-00】申込書明細番号の自動発番について
*	v4.00		2012/11/16	FJ)岡井		【ANK-1224-00-00】機器の料金コース追加等について
*	v4.00		2012/11/29	FJ)山名		【IT1-2012-0002044】サービス契約一覧照会（SYSID）2変更に伴う申込ステータス対応
*   v5.00       2013/03/28  FJ）文元    【IT1-2013-0000661】「EKK0341B509(機器提供サービス契約一覧照会)」の項目追加による修正
*   v5.00       2013/05/23  FJ）文元    【ANK-1523-00-00】〔現行システム対応〕フロントＳテレビキャンペーン対応
*   v10.00.00   2014/07/08  FJ)西山     【ANK-2135-00-00】BSオプションチャンネル「スターチャンネル」とのセット割検討
*   v39.00      2018/11/29  FJ)美濃原   【OM-2018-0001176】既契約のSTB選択リスト作成条件をHDD容量コードに変更
*   v40.00.00   2019/01/04  FJ) 美濃原  【ANK-3509-00-00】TVコース変更時のVONU交換必須化対応（キャンペーン文言表示削除）
*   v74.00.00   2025/02/25  FJ)余野木   【ANK-4592-00-00】テレビ新コース（スカパー用）導入対応
*   v75.00.00   2025/04/21  FJ)余野木   【ANK-4673-00-00】テレビ新コース（スカパー用）導入対応 2025年6月フォロー案件
*
**********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

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.FUW01501SF.FUW01501SFConst;
import eo.web.webview.common.JFUWebCommon;
import eo.common.constant.JPCModelConstant;

/**
 * DataBean-BPマッピングをする。
 * @author FJ
 *
 */
public class FUSV0126_FUSV0126OPDBMapper
{
	/** SC名：FUSV012616SC */
	private static final String FUSV012616SC = "FUSV012616SC";
	/** SC名：FUSV012602CC */
	private static final String FUSV012602CC = "FUSV012602CC";
	/** SC名：FUSV012603CC */
	private static final String FUSV012603CC = "FUSV012603CC";
	/** SC名：FUSV012604CC */
	private static final String FUSV012604CC = "FUSV012604CC";

	/** サービス契約一覧照会（SYSID）2明細 */
	private static final String EKK0081B004CBSMSG1LIST = "EKK0081B004CBSMsg1List";

	/** IN項目:サービス契約番号 */
	private static final String IN_PARAM_KEY_SVC_KEI_NO_CMP = "key_svc_kei_no_cmp";
	/** IN項目:ＫＥＹ＿料金グループコード */
	private static final String IN_PARAM_KEY_PRC_GRP_CD = "key_prc_grp_cd_cmp";
	/** IN項目:ＫＥＹ＿料金コースコード */
	private static final String IN_PARAM_KEY_PCRS_CD = "key_pcrs_cd_cmp";
	/** IN項目:ＫＥＹ＿料金プランコード */
	private static final String IN_PARAM_KEY_PPLAN_CD = "key_pplan_cd_cmp";
	/** IN項目: ＫＥＹ＿割引サービスコード */
	protected static final String IN_PARAM_CMP_KEY_WRIB_SVC_CD = "key_wrib_svc_cd";
	/** Mapキー：ＫＥＹ＿割引サービス適用条件種別コードリスト */
	private static final String MAP_KEY_CMP_WRSV_APLY_SBT_LIST = "key_wrsv_aply_jkn_sbt_cd_list_cmp";
	/** IN項目:KEY_SYSID */
	private static final String KEY_SYSID = "key_sysid";
	/** IN項目:KEY_サービス契約番号 */
	private static final String KEY_SVC_KEI_NO = "key_svc_kei_no";
	/** IN項目:申込書明細番号 */
	private static final String MSKMSHO_DTL_NO = "mskmsho_dtl_no";
	/** IN項目:申込書明細番号 */
	private static final String MSKM_STAT = "mskm_stat";

	/** IN項目:料金コースコード */
	private static final String IN_PCRS_CD = "pcrs_cd";
	/** IN項目:宅内機器型式コード */
	private static final String IN_TAKNKIKI_MODEL_CD = "taknkiki_model_cd";
	/** IN項目:ＨＤＤ容量コード */
	private static final String IN_HDD_CAPA_CD = "hdd_capa_cd";
	/** IN項目:機器リスト */
	private static final String IN_KIKI_LIST = "kiki_list";
	/** 機能コード */
	private static final String FUNC_CODE = "func_code";

	/** DATABEAN_GET_VALUE */
	private static final String GET = X31CWebConst.DATABEAN_GET_VALUE;
	/** DATABEAN_SET_VALUE */
	private static final String SET = X31CWebConst.DATABEAN_SET_VALUE;

	/** 項目ID：機能コード */
	private static final String IN_FUNC_CODE = "func_code";

	/**
	 * コンストラクタ
	 */
	public FUSV0126_FUSV0126OPDBMapper()
	{
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]:サービスフォームBean [1]:共有フォームBeanを格納した配列
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return アウトマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV0126WORK01(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);

		// ＳＴＢＩＤ検索有無フラグ → eo光テレビコース変更申込（初期表示）作業項目マップ01.STBID検索有無フラグ
		parentMap.put("sc_stbid_flg", bean[0].sendMessageString("ＳＴＢＩＤ検索有無フラグ", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV0126WORK01", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]:サービスフォームBean [1]:共有フォームBeanを格納した配列
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return アウトマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV012601SC(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);

		// サービス契約番号 → 機器提供サービス契約一覧照会（eo光テレビ情報取得）.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 機器提供サービスコード → 機器提供サービス契約一覧照会（eo光テレビ情報取得）.ＫＥＹ＿機器提供サービスコード
		parentMap.put("key_kktk_svc_cd", bean[0].sendMessageString("機器提供サービスコード", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV012601SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]:サービスフォームBean [1]:共有フォームBeanを格納した配列
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return アウトマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV012602SC(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);

		// サービス契約番号 → 機器提供サービス契約一覧照会（eo光テレビ情報取得）＿０１.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 機器提供サービスコード＿ＢＣＡＳ → 機器提供サービス契約一覧照会（eo光テレビ情報取得）＿０１.ＫＥＹ＿機器提供サービスコード
		parentMap.put("key_kktk_svc_cd", bean[0].sendMessageString("機器提供サービスコード＿ＢＣＡＳ", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV012602SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]:サービスフォームBean [1]:共有フォームBeanを格納した配列
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return アウトマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV012603SC(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);

		// サービス契約番号 → 機器提供サービス契約一覧照会（eo光テレビ情報取得）＿０２.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 機器提供サービスコード＿ＣＣＡＳ → 機器提供サービス契約一覧照会（eo光テレビ情報取得）＿０２.ＫＥＹ＿機器提供サービスコード
		parentMap.put("key_kktk_svc_cd", bean[0].sendMessageString("機器提供サービスコード＿ＣＣＡＳ", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV012603SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]:サービスフォームBean [1]:共有フォームBeanを格納した配列
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return アウトマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV012604SC(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);

		// 機器提供サービスコード（ＶＯＮＵ） → 機器提供サービス契約一覧照会（eo光テレビ情報取得）＿０３.ＫＥＹ＿機器提供サービスコード
		parentMap.put("key_kktk_svc_cd", bean[0].sendMessageString("機器提供サービスコード（ＶＯＮＵ）", X31CWebConst.DATABEAN_GET_VALUE));
		// ＶＯＮＵ用の機器提供サービス契約番号を取得
		String kktkSvcKeiNoVonu = bean[0].sendMessageString("機器提供サービス契約番号（ＶＯＮＵ）", X31CWebConst.DATABEAN_GET_VALUE);
		if (JFUWebCommon.isNull(kktkSvcKeiNoVonu))
		{
			// 機器提供サービス契約番号 → ＶＯＮＵ＿機器提供サービス契約一覧照会マップ.ＫＥＹ＿機器提供サービス契約番号
			parentMap.put("key_kktk_svc_kei_no", JFUStrConst.VONU_DAITAI_KKTK_SVKEI_NO);
		}
		else
		{
			// 機器提供サービス契約番号 → ＶＯＮＵ＿機器提供サービス契約一覧照会マップ.ＫＥＹ＿機器提供サービス契約番号
			parentMap.put("key_kktk_svc_kei_no", kktkSvcKeiNoVonu);
		}

		outputMap.put("FUSV012604SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]:サービスフォームBean [1]:共有フォームBeanを格納した配列
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return アウトマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV012605SC(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);

		// サービス契約番号 → サービス契約一覧照会（eo光テレビ情報取得）.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV012605SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]:サービスフォームBean [1]:共有フォームBeanを格納した配列
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return アウトマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV012606SC(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);

		// サービス契約番号 → サービス契約内訳一覧照会（eo光テレビ情報取得）.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV012606SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]:サービスフォームBean [1]:共有フォームBeanを格納した配列
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return アウトマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV012607SC(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);

		// ＳＹＳＩＤ → 連絡先一覧照会マップ.ＫＥＹ＿SYSID
		parentMap.put("key_sysid", bean[0].sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV012607SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]:サービスフォームBean [1]:共有フォームBeanを格納した配列
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return アウトマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV012608SC(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_tmp_pay_prc_no", bean[0].sendMessageString("一時支払料金番号（出張費）", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV012608SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]:サービスフォームBean [1]:共有フォームBeanを格納した配列
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return アウトマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV012609SC(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_tmp_pay_prc_no", bean[0].sendMessageString("一時支払料金番号（交換手数料）", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV012609SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]:サービスフォームBean [1]:共有フォームBeanを格納した配列
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return アウトマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV012610SC(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_tmp_pay_prc_no", bean[0].sendMessageString("一時支払料金番号（追加手数料）", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV012610SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]:サービスフォームBean [1]:共有フォームBeanを格納した配列
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return アウトマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV012611SC(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_tmp_pay_prc_no", bean[0].sendMessageString("一時支払料金番号（ＢＳＰＴ工事費）", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV012611SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]:サービスフォームBean [1]:共有フォームBeanを格納した配列
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return アウトマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV012612SC(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_mansion_bukken_no", bean[0].sendMessageString("マンション物件番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV012612SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]:サービスフォームBean [1]:共有フォームBeanを格納した配列
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return アウトマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV012601CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		X31SDataBeanAccessArray arraybean = null;
		X31SDataBeanAccess beanTemp = null;
		ArrayList list = null;

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		beanTemp = bean[0];
		arraybean = beanTemp.getDataBeanArray("ＳＴＢＩＤ取得要リスト");
		if (parentMap.containsKey("TKKIKISHOKAI1List"))
		{
			list = (ArrayList)parentMap.get("TKKIKISHOKAI1List");
		}
		else
		{
			list = new ArrayList();
		}
		if (arraybean != null && arraybean.getCount() > 0)
		{
			for (int i = 0; i < arraybean.getCount(); i++)
			{
				X31SDataBeanAccess subbean = arraybean.getDataBean(i);
				HashMap childMap = null;
				if (list.size() - 1 >= i)
				{
					childMap = (HashMap)list.get(i);
				}
				else
				{
					childMap = new HashMap();
				}

				// ＳＴＢＩＤ取得要リスト.機器製造番号 → 宅内機器一意照会マップ.宅内機器一意照会明細.ＫＥＹ＿機器製造番号
				if (subbean != null)
				{
					String kikiSeizoNoStb21 = subbean.sendMessageString("機器製造番号", X31CWebConst.DATABEAN_GET_VALUE);

					childMap.put("key_kiki_seizo_no", kikiSeizoNoStb21);

					X31SDataBeanAccessArray genKktkSvcKeiList = bean[1].getDataBeanArray(JFUWebCommon.KKTK_SVC_KEI_INFO);
					String taknkikiModelCd = null;
					for (int listCnt = 0; listCnt < genKktkSvcKeiList.getCount(); listCnt++)
					{
						X31SDataBeanAccess kktkSvcKeiInfo = genKktkSvcKeiList.getDataBean(listCnt);
						String kikiSeizoNo27 = kktkSvcKeiInfo.sendMessageString(CommonInfoCFConst.KIKI_SEIZO_NO_27, X31CWebConst.DATABEAN_GET_VALUE);

						if (kikiSeizoNoStb21.equals(kikiSeizoNo27))
						{
							taknkikiModelCd =
									kktkSvcKeiInfo.sendMessageString(CommonInfoCFConst.TAKNKIKI_MODEL_CD_27, X31CWebConst.DATABEAN_GET_VALUE);
							childMap.put("key_tk_mdl_cd", taknkikiModelCd);
							break;
						}
					}
				}

				list.add(childMap);
			}
		}
		parentMap.put("TKKIKISHOKAI1List", list);

		outputMap.put("FUSV012601CC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]:サービスフォームBean [1]:共有フォームBeanを格納した配列
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return アウトマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV012614SC(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_taknkiki_model_cd", bean[0].sendMessageString("宅内機器型式コード", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV012614SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]:サービスフォームBean [1]:共有フォームBeanを格納した配列
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return アウトマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV012615SC(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);

		// 料金グループコード → 料金コース一覧照会（eo光テレビ情報取得）.ＫＥＹ＿料金グループコード
		parentMap.put("key_pcr_grp_cd", bean[0].sendMessageString("料金グループコード", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV012615SC", parentMap);

		return outputMap;
	}

	/**
	 * キャンペーン文言一覧照会CCの上りマッピング
	 *
	 * <br>
	 * @param bean [0]:サービスフォームBean [1]:共有フォームBeanを格納した配列
	 * @param outputMap マッピング結果
	 * @param func_code 機能コード
	 * @param bsptWribSvcCd BSパススルー 割引サービスコード
	 * @return アウトマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV012602CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String bsptWribSvcCd)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// サービス契約番号 → 割引サービス提供条件一覧照会マップ.ＫＥＹ＿サービス契約番号
		parentMap.put(IN_PARAM_KEY_SVC_KEI_NO_CMP, bean[1].getDataBeanArray(JFUWebCommon.SVC_KEI_INFO).getDataBean(0).sendMessageString(
				CommonInfoCFConst.SVC_KEI_NO_23, X31CWebConst.DATABEAN_GET_VALUE));
		// 料金コースコード → 割引サービス提供条件一覧照会マップ.ＫＥＹ＿料金コースコード
		parentMap.put(IN_PARAM_KEY_PCRS_CD, bean[1].getDataBeanArray(JFUWebCommon.SVC_KEI_INFO).getDataBean(0).sendMessageString(
				CommonInfoCFConst.PCRS_CD_23, X31CWebConst.DATABEAN_GET_VALUE));
		// 料金グループコード → 料金コース一覧照会（eo光テレビ情報取得）.ＫＥＹ＿料金グループコード
		parentMap.put(IN_PARAM_KEY_PRC_GRP_CD, bean[1].getDataBeanArray(JFUWebCommon.SVC_KEI_INFO).getDataBean(0).sendMessageString(
				CommonInfoCFConst.PRC_GRP_CD_23, X31CWebConst.DATABEAN_GET_VALUE));
		// 料金プランコード → 割引サービス提供条件一覧照会マップ.ＫＥＹ＿料金プランコード
		parentMap.put(IN_PARAM_KEY_PPLAN_CD, bean[1].getDataBeanArray(JFUWebCommon.SVC_KEI_INFO).getDataBean(0).sendMessageString(
				CommonInfoCFConst.PPLAN_CD_23, X31CWebConst.DATABEAN_GET_VALUE));
		// ＫＥＹ＿割引サービス適用条件種別コードリストの作成
		List<Map<String, String>> wrsvAplyJknSbtCdList = new ArrayList<Map<String, String>>();
		// ＢＳパススルー
		Map<String, String> bsptWrsvAplyJknSbtCdMap = new HashMap<String, String>();
		bsptWrsvAplyJknSbtCdMap.put(IN_PARAM_CMP_KEY_WRIB_SVC_CD, bsptWribSvcCd);
		wrsvAplyJknSbtCdList.add(bsptWrsvAplyJknSbtCdMap);
		// ＫＥＹ＿割引サービス適用条件種別コードリストとしてセット
		parentMap.put(MAP_KEY_CMP_WRSV_APLY_SBT_LIST, wrsvAplyJknSbtCdList);

		// 返却用のマップにセット
		outputMap.put(FUSV012602CC, parentMap);

		return outputMap;
	}

	/**
	 * サービス契約一覧照会（SYSID）2の上りマッピングをします。
	 * <br>
	 * 【ANK-1199-00-00】申込書明細番号の自動発番について
	 * <br>
	 * @param bean データBean配列
	 * @param outputMap アウトマップ
	 * @param func_code 機能コード
	 * @return マップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV012616SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// SSO情報
		X31SDataBeanAccess ssoInfoBean = bean[1].getDataBeanArray(JFUWebCommon.SSO_INFO).getDataBean(0);
		// サービス契約情報
		X31SDataBeanAccess svcKeiInfoBean = bean[1].getDataBeanArray(JFUWebCommon.SVC_KEI_INFO).getDataBean(0);

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);
		// KEY_SYSID
		parentMap.put(KEY_SYSID, ssoInfoBean.sendMessageString(CommonInfoCFConst.SYSID_21, GET));
		// KEY_サービス契約番号
		parentMap.put(KEY_SVC_KEI_NO, svcKeiInfoBean.sendMessageString(CommonInfoCFConst.SVC_KEI_NO_23, GET));

		// 返却用のマップにセット
		outputMap.put(FUSV012616SC, parentMap);

		return outputMap;
	}

	/**
	 * STB宅内機器取得CCの上りマッピング処理です。
	 * 
	 * <br>
	 * @param bean [0]:サービスフォームBean [1]:共有フォームBeanを格納した配列
	 * @param outputMap マッピング結果
	 * @param func_code 機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV012603CC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 現在の料金コースコード取得
		String pcrsCd = bean[1].getDataBeanArray(JFUWebCommon.SVC_KEI_INFO).getDataBean(0).sendMessageString(CommonInfoCFConst.PCRS_CD_23, GET);

		// 機能コード
		parentMap.put(IN_FUNC_CODE, JPCModelConstant.FUNC_CD_2);

		// 料金コースコード判定
		if (JFUStrConst.CD00134_A37.equals(pcrsCd))
		{
			// 地デジBSの場合、HDコースの料金コースコードを設定
			parentMap.put(IN_PCRS_CD, JFUStrConst.CD00134_A39);
		}
// ANK-4673-00-00 ADD START
		else if (JFUStrConst.PCRS_CD_CS.contains(pcrsCd))
		{
			// CSベーシック、CSプレミアムの場合、HDコースの料金コースコードを仮設定
			parentMap.put(IN_PCRS_CD, JFUStrConst.CD00134_A39);
		}
// ANK-4673-00-00 ADD END
		else
		{
			// 上記以外の場合、そのまま料金コースコードを設定
			parentMap.put(IN_PCRS_CD, pcrsCd);
		}

		// 現在契約中STB機器リストを設定
		ArrayList kikiList = new ArrayList();
		X31SDataBeanAccessArray kikiArray = bean[1].getDataBeanArray(JFUWebCommon.KKTK_SVC_KEI_INFO);
		for (int i = 0; i < kikiArray.getCount(); i++)
		{
			HashMap kikiMap = new HashMap();

			X31SDataBeanAccess kikiBean = kikiArray.getDataBean(i);

			// 画面で参照可能な機器提供サービス契約ステータスで無ければ、読み飛ばし
			String kktkSvcKeiStat = kikiBean.sendMessageString(CommonInfoCFConst.KKTK_SVC_KEI_STAT_27, X31CWebConst.DATABEAN_GET_VALUE);
			if (!(JFUStrConst.CD00056_010.equals(kktkSvcKeiStat) || JFUStrConst.CD00056_020.equals(kktkSvcKeiStat)
					|| JFUStrConst.CD00056_030.equals(kktkSvcKeiStat) || JFUStrConst.CD00056_100.equals(kktkSvcKeiStat)))
			{
				continue;
			}

			// 機器提供サービスコード
			String kktkSvcCd = kikiBean.sendMessageString(CommonInfoCFConst.KKTK_SVC_CD_27, X31CWebConst.DATABEAN_GET_VALUE);
			// 宅内機器型式コード
			String kikiMdlCd = kikiBean.sendMessageString(CommonInfoCFConst.TAKNKIKI_MODEL_CD_27, X31CWebConst.DATABEAN_GET_VALUE);
			// ＨＤＤ容量コード
			String hddCapaCd = kikiBean.sendMessageString(CommonInfoCFConst.HDD_CAPA_CD_27, X31CWebConst.DATABEAN_GET_VALUE);

			// 機器提供サービスコードが「C0009（STB）」の場合のみ、宅内機器型式コードを設定
			if (JFUStrConst.CD00132_C009.equals(kktkSvcCd))
			{
				kikiMap.put(IN_TAKNKIKI_MODEL_CD, kikiMdlCd);
				kikiMap.put(IN_HDD_CAPA_CD, hddCapaCd);
				kikiList.add(kikiMap);
			}
		}
		parentMap.put(IN_KIKI_LIST, kikiList);

		// 返却用のマップにセット
		outputMap.put(FUSV012603CC, parentMap);

		return outputMap;
	}

	/**
	 * テレビコース名表示切替CCの上りマッピングを行う処理です。
	 * 
	 * <br>
	 * @param bean [0]:サービスフォームBean [1]:共有フォームBeanを格納した配列
	 * @param outputMap マッピング結果
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV012604CC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// サービス契約情報
		X31SDataBeanAccess svcKeiInfoBean = bean[1].getDataBeanArray(JFUWebCommon.SVC_KEI_INFO).getDataBean(0);

		// KEY_サービス契約番号
		parentMap.put(KEY_SVC_KEI_NO, svcKeiInfoBean.sendMessageString(CommonInfoCFConst.SVC_KEI_NO_23, GET));

		// 返却用のマップにセット
		outputMap.put(FUSV012604CC, parentMap);

		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]:サービスフォームBean [1]:共有フォームBeanを格納した配列
	 * @param outputMap
	 * @return アウトマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV012605CC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// サービス契約番号 → 機器提供サービス契約一覧照会（eo光テレビ情報取得）.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV012605CC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]:サービスフォームBean [1]:共有フォームBeanを格納した配列
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return アウトマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV012617SC(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_tmp_pay_prc_no", bean[0].sendMessageString("一時支払料金番号（契約事務手数料）", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV012617SC", parentMap);

		return outputMap;
	}

	/**
	 * サービス契約一覧照会（SYSID）2の下りマッピングをします。
	 * <br>
	 * @param bean データBean配列
	 * @param outputMap アウトマップ
	 * @return マップ
	 */
	@SuppressWarnings("unchecked")
	public void getFUSV012616SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;

		if (outputMap.containsKey(FUSV012616SC))
		{
			parentMap = (HashMap)outputMap.get(FUSV012616SC);
		}

		if (null != parentMap && parentMap.containsKey(EKK0081B004CBSMSG1LIST))
		{
			ArrayList childList = (ArrayList)parentMap.get(EKK0081B004CBSMSG1LIST);

			for (int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);

				// 申込書明細番号
				String mskmshoDtlNo = JFUStrConst.EMPTY;

				// 明細マップが取得できているかチェック
				if (childMap != null && childMap.size() > 0)
				{

					// 申込.申込ステータス
					String mskmStat = (String)childMap.get(MSKM_STAT);

					// 申込ステータスが 130：承認済
					if (mskmStat != null && mskmStat.length() > 0 && JFUStrConst.CD00060_130.equals(mskmStat))
					{
						// 取得できている場合、申込書明細番号を取得する
						mskmshoDtlNo = (String)childMap.get(MSKMSHO_DTL_NO);
					}
				}

				// 申込書明細番号が取得できているかチェック
				if (mskmshoDtlNo != null && mskmshoDtlNo.length() > 0)
				{
					// 取得できている場合、サービスフォームBean.申込番号に設定し、ループを終了する
					bean[0].sendMessageString(FUW01501SFConst.MSKM_NO, SET, mskmshoDtlNo);
					break;
				}
			}
		}
	}

	/**
	 * BSパススルー工事費割引CP 適用状態取得処理
	 *
	 * <br>
	 * @param bl ビューロジックのインスタンス
	 * @param outputMap サービスの実行結果
	 * @return "1"：BSパススルー工事費割引CPが適用済（適用中、適用済）、その他：BSパススルー工事費割引CPが未適用
	 */
	@SuppressWarnings("unchecked")
	public String getFUSV012602CC(X31BWebBusinessLogic bl, HashMap outputMap)
	{
		Map<String, String> cmpMap = JFUWebCommon.getTvBsptWribSvc(bl, outputMap, FUSV012602CC);
		if (JFUWebCommon.OUT_PARAM_WRIB_STS_FLG_1.equals(cmpMap.get(JFUWebCommon.OUT_PARAM_WRIB_STS_FLG)))
		{
			return JFUWebCommon.OUT_PARAM_WRIB_STS_FLG_1;
		}
		return JFUStrConst.EMPTY;
	}
}