/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JFUMskmDmenMappingUtil
*   ソースファイル名：JFUMskmDmenMappingUtil.java
*   作成者          ：富士通
*   日付            ：2012年06月25日
*＜機能概要＞
*   申込断面データマッピング部品です。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v4.00.00    2012/06/25   FJ)西川     新規作成
*   v4.00.01    2013/01/11   FJ)岩元     【ST4-2012-0000245】性能改善
*   v4.00.02    2013/02/18   FJ)藤原     【ST4-2013-0000133】性能改善
*   v4.00.03    2013/02/25   FJ)大塚     【No.356】マンション情報追加対応
*   v5.00.00    2013/10/18   FJ)谷本     【OM-2013-0003440】白ロム申込をデータ抽出項目設定からする対応
*   v5.01.00    2013/10/22   FJ)谷本     【OM-2013-0002758】申込断面対応割引表示対応
*   v10.00.00   2014/07/10   FJ)清水     【ANK-2135-00-00】BSオプションチャンネル「スターチャンネル」とのセット割検討
*   v10.00.00   2014/07/30   FJ)川瀬     【ANK-2137-00-00】提携住宅会社用WEB受付画面配置
*   v10.00      2014/08/11   FJ)文元     【ANK-2223-00-00】スマリンタブレット無料キャンペーンのＷＥＢ画面への拡充
*   v32.00.00   2017/06/01   FJ)黒田     【IT2-2017-0000014】
*   v33.00.00   2017/08/01   FJ)謝       【ANK-3217-00-00】GHサービス開始対応
*   v34.00      2017/12/11   FJ)張本     【ANK-3210-18-00】価格コム（電気）対応
*   v40.00      2018/09/07   FJ)張本    【ANK-3412-00-00】５ギガ・１０ギガコース導入対応
*   v51.00      2020/09/01   FJ) 岡井    【ANK-3885-00-00】光化マンションの自動設計対応
*   v51.01      2020/11/12   FJ）張本    【ANK-3949-00-00】Netflix導入対応（STEP1）
*   v53.00      2021/05/28   FJ）張本    【ANK-4065-00-00】価格com経由申込の選択制キャンペーン表示変更
*   v54.00      2021/08/18   FJ）新谷    【ANK-4096-00-00】宅調宅工同時実施のための聞取り強化対応
*   v54.01      2021/11/05   FJ）新谷    【OM-2021-0001714】WEB申込断面データ参照画面での表示不備
*   v56.00      2021/12/06   FJ）美濃原  【ANK-4103-00-00】マンション光コンセントタイプのWeb受付対応
*   v57.00      2022/02/09   FJ) 美濃原  【ANK-4088-00-00】宅内調査の日程調整業務における省人化施策(Step2)
*   v68.00      2023/12/04   FJ) 飯田    【ANK-4517-00-00】202401月CP対応
*   v70.00.00   2024/02/05   FJ) 美濃原  【ANK-4551-00-00】202404CP対応
*   v73.00      2024/11/15   FJ) 張本    【ANK-4493-00-00】【eo定期】光配線マンションのコースアップ対応
*   v74.00      2025/01/08   FJ) 余野木  【ANK-4592-00-00】テレビ新コース（スカパー用）導入対応
**********************************************************************/
package eo.web.webview.common;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import com.fujitsu.futurity.common.JCMConstants;
import com.fujitsu.futurity.web.x00.JCCBusinessException;
import com.fujitsu.futurity.web.x00.JCCWebServiceException;
import com.fujitsu.futurity.web.x31.X31BWebBusinessLogic;
import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31GServiceForm;
import com.fujitsu.futurity.web.x31.X31GWebFormEventResolver;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;
import com.fujitsu.futurity.web.x31.X31SRuntimeException;
import com.fujitsu.futurity.web.x31.X31SSession;
import com.fujitsu.futurity.web.x31.X31SWebLog;
import com.fujitsu.futurity.web.x31.X31CMessageResult.X31CMessageMoreInfo;

import eo.common.constant.JFUStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.util.JFUCommonUtil;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;

/**
 * 申込断面データマッピング部品
 * <br>
 * @author 富士通
 */
public class JFUMskmDmenMappingUtil
{

	// 共有フォームビーンのパスのプレフィックス
	public static String COMMONINFOBEAN_PATH_PREFIX = "//0/";

	/** サービスID */
	private static final String USECASE_ID_FUSV0274 = "FUSV0274";
	/** 選択（1） */
	private static final String SENTAKU = "1";
	/** 料金コードコードフラグ */
	private static final String PCRS_CD_FLG = "1";

	/** プロパティファイル取得文字列 一般WEB既定値 */
	private static final String TRAT_USUAL = "trat_usual";
	/** プロパティファイル取得文字列 価格コム（電気） */
	private static final String TRAT_KAKAKUCOM_ELEC = "trat_kakakucom_elec";
	/** プロパティファイル取得文字列 価格コム */
	private static final String TRAT_KAKAKUCOM = "trat_kakakucom";

	/** 割引サービスコード取得キー：ホーム・メゾン ネット */
	private static final String WEB_WARI_CMP_NET = "WEB_WARI_CMP_NET";
	/** 割引サービスコード取得キー：ホーム・メゾン 電話単独 */
	private static final String WEB_WARI_CMP_TEL = "WEB_WARI_CMP_TEL";
	/** 割引サービスコード取得キー：ホーム・メゾン テレビ単独 */
	private static final String WEB_WARI_CMP_TV = "WEB_WARI_CMP_TV";
	/** 割引サービスコード取得キー：マンション ネット */
	private static final String WEB_WARI_CMP_MANS_NET = "WEB_WARI_CMP_MANS_NET";
	/** 割引サービスコード取得キー：マンション 電話単独 */
	private static final String WEB_WARI_CMP_MANS_TEL = "WEB_WARI_CMP_MANS_TEL";
	/** 割引サービスコード取得キー：マンション テレビ単独 */
	private static final String WEB_WARI_CMP_MANS_TV = "WEB_WARI_CMP_MANS_TV";
	/** 適用期間チェック有無 */
	private static final String CHK_TERM = "chk_term";

	/** 支払方式コード 003：全戸一括 */
	private static final String PAYWAY_CD_003 = "003";
	/** 支払方式コード 004：居住者一括 */
	private static final String PAYWAY_CD_004 = "004";
	
	/** プロパティ取得値 */
	private static final String SML_CAMP_WRIB_SVC_CD = "wrib_svc_cd";
	/** プロパティ取得値 */
	private static final String SML_CAMP_DCHSKM_CD = "dchskm_cd";

	/** プロパティからの取得キー 利用中のネット回線 光回線 */
	private static final String USE_NET_KSN_HIKARI = "USE_NET_KSN_HIKARI";
	/** プロパティからの取得キー 利用中のネット回線 その他光回線以外 */
	private static final String USE_NET_KSN_SONOTA = "USE_NET_KSN_SONOTA";
	/** プロパティからの取得キー 利用中の機器の設置場所変更予定 位置変更なし */
	private static final String KIKI_PLACE_CHG_NO = "KIKI_PLACE_CHG_NO";
	/** プロパティからの取得キー 利用中の機器の設置場所変更予定 位置変更あり */
	private static final String KIKI_PLACE_CHG_YES = "KIKI_PLACE_CHG_YES";
	/** プロパティからの取得キー 宅内調査と工事の同日実施 いいえ */
	private static final String TKC_KOJI_SAME_NO = "TKC_KOJI_SAME_NO";
	/** プロパティからの取得キー 宅内調査と工事の同日実施 はい */
	private static final String TKC_KOJI_SAME_YES = "TKC_KOJI_SAME_YES";
	/** プロパティからの取得キー 連絡事項１ 早期開通・早期連絡希望無 */
	private static final String RRK_JIKO_1_NO = "RRK_JIKO_1_NO";
	/** プロパティからの取得キー 連絡事項１ 早期開通・早期連絡希望有 */
	private static final String RRK_JIKO_1_YES = "RRK_JIKO_1_YES";
	/** プロパティからの取得キー 工事連絡事項 宅内調査のアポ架電希望 希望なし */
	private static final String TAKCHO_APO_KADEN_KIBO_UM_SCREEN_NASI = "TAKCHO_APO_KADEN_KIBO_UM_SCREEN_NASI";
	/** プロパティからの取得キー 工事連絡事項 宅内調査のアポ架電希望 希望あり */
	private static final String TAKCHO_APO_KADEN_KIBO_UM_SCREEN_ARI = "TAKCHO_APO_KADEN_KIBO_UM_SCREEN_ARI";
	

	/** 割引サービスコード取得キー：ホーム・メゾン ネット */

	/**
	 * 上りマッピングをする
	 * <br>
	 * @param commonInfoBean 共有フォームビーン
	 * @param dataMap 上りマッピング用マップ
	 */
	private static void setFUSV027401CC(X31SDataBeanAccess commonInfoBean, HashMap outputMap)
	{

		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		HashMap<String, Object> hanyoMap = new HashMap<String, Object>();
		ArrayList<HashMap<String, Object>> addDchskmCdList = new ArrayList<HashMap<String, Object>>();

		// WEB新規情報
		X31SDataBeanAccess bnWebinfo = getWebInfo(commonInfoBean);
		// リダイレクト情報
		X31SDataBeanAccess bnRedirectinfo = getRedirectinfo(bnWebinfo);

		//-------------------------------------//
		// 自動登録キャンペーン取得 (ANK-4551-00-00)
		//-------------------------------------//
		X31SDataBeanAccessArray autoAddCpList = bnWebinfo.getDataBeanArray(CommonInfoCFConst.AUTO_ADD_CP_LIST);
		if (autoAddCpList != null && autoAddCpList.getCount() > 0)
		{
			int autoCpCnt = autoAddCpList.getCount();
			// 件数分ループさせ、値を格納する。
			for (int i = 0; i < autoCpCnt; i++)
			{
				X31SDataBeanAccess hanyoBeanInfo = autoAddCpList.getDataBean(i);
				hanyoMap = new HashMap<String, Object>();
				if (!JFUStrConst.HANYO_SBT_CD_HANYO.equals(hanyoBeanInfo.sendMessageString(CommonInfoCFConst.CAMPAIGN_SBT_CD_66,
						X31CWebConst.DATABEAN_GET_VALUE)))
				{
					continue;
				}
				if (JFUStrConst.CAMPAIGN_ADD_JG_NG.equals(hanyoBeanInfo.sendMessageString(CommonInfoCFConst.CAMPAIGN_ADD_JG_66,
						X31CWebConst.DATABEAN_GET_VALUE)))
				{
					continue;
				}
				// データ抽出項目コード
				hanyoMap.put("addDchskmCd", hanyoBeanInfo.sendMessageString(CommonInfoCFConst.CAMPAIGN_CD_66, X31CWebConst.DATABEAN_GET_VALUE));
				// 即時適用フラグ
				hanyoMap.put("aply_jun", JFUStrConst.CD00403_1);
				// 異動区分
				hanyoMap.put("ido_div", getIdoKbn(bnWebinfo));
				// 紹介コード
				hanyoMap.put("intr_cd", bnRedirectinfo.sendMessageString(CommonInfoCFConst.RED_INTRODUCE_17, X31CWebConst.DATABEAN_GET_VALUE));
				// クーポンコード
				hanyoMap.put("coupon_cd", bnRedirectinfo.sendMessageString(CommonInfoCFConst.COUPON_CD_17, X31CWebConst.DATABEAN_GET_VALUE));
				// SYSID
				hanyoMap.put("sysid", bnWebinfo.sendMessageString(CommonInfoCFConst.SYSID_06, X31CWebConst.DATABEAN_GET_VALUE));
				// 検索最大件数
				hanyoMap.put("max_search_num", JFUStrConst.MAX_SEARCH_NUM);
				// データ抽出項目設定登録契機コード
				hanyoMap.put("dchskmst_add_opty_cd", JFUStrConst.CD00874_2);
				// 適用期間有無
				hanyoMap.put(CHK_TERM, hanyoBeanInfo.sendMessageString(CommonInfoCFConst.CHK_TERM_66, X31CWebConst.DATABEAN_GET_VALUE));
				addDchskmCdList.add(hanyoMap);
			}
		}

		//-------------------------------------//
		// 汎用コードリスト取得
		//-------------------------------------//
		X31SDataBeanAccessArray hanyoCdList = bnWebinfo.getDataBeanArray(CommonInfoCFConst.HANYO_CD_LIST);

		// 汎用コードリストを取得する。
		int hanyoCnt = hanyoCdList.getCount();

		// 汎用コードの件数分ループさせ、値を格納する。
		for (int i = 0; i < hanyoCnt; i++)
		{
			X31SDataBeanAccess hanyoBeanInfo = hanyoCdList.getDataBean(i);

			hanyoMap = new HashMap<String, Object>();

			if (!JFUStrConst.HANYO_SBT_CD_HANYO.equals(hanyoBeanInfo.sendMessageString(CommonInfoCFConst.HANYO_SBT_CD_46,
					X31CWebConst.DATABEAN_GET_VALUE)))
			{
				continue;
			}

			// データ抽出項目コード
			hanyoMap.put("addDchskmCd", hanyoBeanInfo.sendMessageString(CommonInfoCFConst.HANYO_CD_46, X31CWebConst.DATABEAN_GET_VALUE));

			// 即時適用フラグ
			hanyoMap.put("aply_jun", JFUStrConst.CD00403_1);

			// 異動区分
			hanyoMap.put("ido_div", getIdoKbn(bnWebinfo));

			// 紹介コード
			hanyoMap.put("intr_cd", bnRedirectinfo.sendMessageString(CommonInfoCFConst.RED_INTRODUCE_17, X31CWebConst.DATABEAN_GET_VALUE));

			// クーポンコード
			hanyoMap.put("coupon_cd", bnRedirectinfo.sendMessageString(CommonInfoCFConst.COUPON_CD_17, X31CWebConst.DATABEAN_GET_VALUE));

			// SYSID
			hanyoMap.put("sysid", bnWebinfo.sendMessageString(CommonInfoCFConst.SYSID_06, X31CWebConst.DATABEAN_GET_VALUE));

			// 検索最大件数
			hanyoMap.put("max_search_num", JFUStrConst.MAX_SEARCH_NUM);

			// データ抽出項目設定登録契機コード
			hanyoMap.put("dchskmst_add_opty_cd", JFUStrConst.CD00874_2);
			
			// 適用期間有無
			hanyoMap.put(CHK_TERM, hanyoBeanInfo.sendMessageString(CommonInfoCFConst.HANYO_CHK_TERM_FLG_46, X31CWebConst.DATABEAN_GET_VALUE));

			addDchskmCdList.add(hanyoMap);
		}

		parentMap.put("AddDchskmCdList", addDchskmCdList);
		outputMap.put("JFUAddDchskmCdCC", parentMap);
	}

	/**
	 * 上りマッピングをする
	 * <br>
	 * @param commonInfoBean 共有フォームビーン
	 * @param dataMap 上りマッピング用マップ
	 */
	private static void setFUSV027402CC(X31SDataBeanAccess commonInfoBean, HashMap outputMap)
	{

		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		HashMap<String, Object> hanyoMap = new HashMap<String, Object>();
		ArrayList<HashMap<String, Object>> addWribSvcCdList = new ArrayList<HashMap<String, Object>>();
		String wribSvcCd = "";

		// WEB新規情報
		X31SDataBeanAccess bnWebinfo = getWebInfo(commonInfoBean);

		//-------------------------------------//
		// 自動登録キャンペーン取得 (ANK-4551-00-00)
		//-------------------------------------//
		X31SDataBeanAccessArray autoAddCpList = bnWebinfo.getDataBeanArray(CommonInfoCFConst.AUTO_ADD_CP_LIST);
		if (autoAddCpList != null && autoAddCpList.getCount() > 0)
		{
			int autoCpCnt = autoAddCpList.getCount();
			// 件数分ループさせ、値を格納する。
			for (int i = 0; i < autoCpCnt; i++)
			{
				X31SDataBeanAccess hanyoBeanInfo = autoAddCpList.getDataBean(i);
				hanyoMap = new HashMap();
				if (!JFUStrConst.HANYO_SBT_CD_WARIBIKI.equals(hanyoBeanInfo.sendMessageString(CommonInfoCFConst.CAMPAIGN_SBT_CD_66,
						X31CWebConst.DATABEAN_GET_VALUE)))
				{
					continue;
				}
				// 割引サービスコード
				hanyoMap.put("addWribSvcCd", hanyoBeanInfo.sendMessageString(CommonInfoCFConst.CAMPAIGN_CD_66, X31CWebConst.DATABEAN_GET_VALUE));
				// 即時適用フラグ
				hanyoMap.put("aply_jun", JFUStrConst.CD00403_1);
				// 異動区分
				hanyoMap.put("ido_div", getIdoKbn(bnWebinfo));
				// 検索最大件数
				hanyoMap.put("max_search_num", JFUStrConst.MAX_SEARCH_NUM);
				// 割引登録契機コード
				hanyoMap.put("wrib_add_opty_cd", JFUStrConst.CD00874_2);
				// 料金コースコード
				hanyoMap.put("pcrs_cd", getPcrsCdOrPplanCd(wribSvcCd, PCRS_CD_FLG));
				// 料金プランコード
				hanyoMap.put("pplan_cd", getPcrsCdOrPplanCd(wribSvcCd, ""));
				// 適用期間有無
				hanyoMap.put(CHK_TERM, hanyoBeanInfo.sendMessageString(CommonInfoCFConst.CHK_TERM_66, X31CWebConst.DATABEAN_GET_VALUE));
				addWribSvcCdList.add(hanyoMap);
			}
		}

		//-------------------------------------//
		// 汎用コードリスト取得
		//-------------------------------------//
		X31SDataBeanAccessArray hanyoCdList = bnWebinfo.getDataBeanArray(CommonInfoCFConst.HANYO_CD_LIST);

		// 汎用コードリストを取得する。
		int hanyoCnt = hanyoCdList.getCount();

		// 汎用コードの件数分ループさせ、値を格納する。
		for (int i = 0; i < hanyoCnt; i++)
		{
			X31SDataBeanAccess hanyoBeanInfo = hanyoCdList.getDataBean(i);

			hanyoMap = new HashMap();

			if (!JFUStrConst.HANYO_SBT_CD_WARIBIKI.equals(hanyoBeanInfo.sendMessageString(CommonInfoCFConst.HANYO_SBT_CD_46,
					X31CWebConst.DATABEAN_GET_VALUE)))
			{
				continue;
			}

			// 割引サービスコード
			hanyoMap.put("addWribSvcCd", hanyoBeanInfo.sendMessageString(CommonInfoCFConst.HANYO_CD_46, X31CWebConst.DATABEAN_GET_VALUE));

			// 即時適用フラグ
			hanyoMap.put("aply_jun", JFUStrConst.CD00403_1);

			// 異動区分
			hanyoMap.put("ido_div", getIdoKbn(bnWebinfo));

			// 検索最大件数
			hanyoMap.put("max_search_num", JFUStrConst.MAX_SEARCH_NUM);

			// 割引登録契機コード
			hanyoMap.put("wrib_add_opty_cd", JFUStrConst.CD00874_2);

			// 料金コースコード
			hanyoMap.put("pcrs_cd", getPcrsCdOrPplanCd(wribSvcCd, PCRS_CD_FLG));

			// 料金プランコード
			hanyoMap.put("pplan_cd", getPcrsCdOrPplanCd(wribSvcCd, ""));
			
			// 適用期間有無
			hanyoMap.put(CHK_TERM, hanyoBeanInfo.sendMessageString(CommonInfoCFConst.HANYO_CHK_TERM_FLG_46, X31CWebConst.DATABEAN_GET_VALUE));

			addWribSvcCdList.add(hanyoMap);
		}

		parentMap.put("AddWribSvcCdList", addWribSvcCdList);

		outputMap.put("JFUAddWribSvcCdCC", parentMap);

	}

	/**
	 * 上りマッピングをする
	 * <br>
	 * @param commonInfoBean 共有フォームビーン
	 * @param dataMap 上りマッピング用マップ
	 */
	private static void setFUSV027403CC(X31SDataBeanAccess commonInfoBean, HashMap outputMap)
	{
		String svc_net = ""; // 選択サービス(ネット)
		String svc_tel = ""; // 選択サービス(電話)
		String svc_tv = ""; // 選択サービス(テレビ)
		String svc_mob = ""; // 選択サービス(モバイル)

		// WEB新規情報
		X31SDataBeanAccess bn = getWebInfo(commonInfoBean);
		// 契約サービス
		X31SDataBeanAccess bn2 = getKeiyakusvcinfo(bn);
		// 光TV
		X31SDataBeanAccess bnEOTV = getEotv(bn);
		// モバイル
		X31SDataBeanAccess bn3 = getMobile(bn);

		// サービス情報取得
		// 選択サービス(ネット)
		svc_net = bn2.sendMessageString(CommonInfoCFConst.SELECT_SVC_NET_10, X31CWebConst.DATABEAN_GET_VALUE);
		// 選択サービス(テレビ)
		svc_tv = bn2.sendMessageString(CommonInfoCFConst.SELECT_SVC_TV_10, X31CWebConst.DATABEAN_GET_VALUE);
		// 選択サービス(電話)
		svc_tel = bn2.sendMessageString(CommonInfoCFConst.SELECT_SVC_TEL_10, X31CWebConst.DATABEAN_GET_VALUE);
		// モバイルコース
		svc_mob = bn3.sendMessageString(CommonInfoCFConst.MOBILE_COURSE_14, X31CWebConst.DATABEAN_GET_VALUE);

		// 選択サービス(ネット)選択
		if (SENTAKU.equals(svc_net))
		{
			// サービス契約<eo光ネット>登録
			setEKK0091D010(commonInfoBean, outputMap, JPCModelConstant.FUNC_CD_1);
			// 機器提供サービス契約登録
			setEKK0341D01001(commonInfoBean, outputMap, JPCModelConstant.FUNC_CD_1);
		}

		// 選択サービス(電話)選択
		if (SENTAKU.equals(svc_tel))
		{
			// サービス契約<eo光電話>登録
			setEKK0111D010(commonInfoBean, outputMap, JPCModelConstant.FUNC_CD_1);
			// ＶＤＳＬマンションの場合、ネット非申込時にモデムレンタル機器が必要
			// 機器提供サービス契約登録
			if (!SENTAKU.equals(svc_net))
			{
				setEKK0341D01001(commonInfoBean, outputMap, JPCModelConstant.FUNC_CD_1);
			}
			// 機器提供サービス契約登録
			setEKK0341D01002(commonInfoBean, outputMap, JPCModelConstant.FUNC_CD_1);
		}

		// 選択サービス(テレビ)選択
		if (SENTAKU.equals(svc_tv))
		{
			// サービス契約<eo光TV>登録
			setEKK0101D010(commonInfoBean, outputMap, JPCModelConstant.FUNC_CD_1);

// ANK-4592-00-00 MOD START
			// テレビコース(eo光テレビ入力)が1:地デジ・BS2以外かつ、3:地デジ・BSコース　スターチャンネルセットかつ、4:CSプレミアムかつ、5:CSベーシック以外の場合
			if (!JFUStrConst.EO_TV_COURSE_BS.equals(bnEOTV.sendMessageString(CommonInfoCFConst.EO_TV_COURSE_13, X31CWebConst.DATABEAN_GET_VALUE))
					&& !JFUStrConst.EO_TV_COURSE_BS_STAR.equals(bnEOTV.sendMessageString(CommonInfoCFConst.EO_TV_COURSE_13, X31CWebConst.DATABEAN_GET_VALUE))
					&& !JFUStrConst.EO_TV_COURSE_CS_PRE.equals(bnEOTV.sendMessageString(CommonInfoCFConst.EO_TV_COURSE_13, X31CWebConst.DATABEAN_GET_VALUE))
					&& !JFUStrConst.EO_TV_COURSE_CS_BAS.equals(bnEOTV.sendMessageString(CommonInfoCFConst.EO_TV_COURSE_13, X31CWebConst.DATABEAN_GET_VALUE)))
			{
// ANK-4592-00-00 MOD END
				// 機器提供サービス契約登録
				setEKK0341D01003(commonInfoBean, outputMap, JPCModelConstant.FUNC_CD_1);
			}
		}

		// 選択サービス(モバイル)選択保留
		if (svc_mob.length() > 0 && !JFUStrConst.MOBILE_COURSE_NON.equals(svc_mob))
		{
			// サービス契約<eoモバイル>登録
			setEKK0121D010(commonInfoBean, outputMap, JPCModelConstant.FUNC_CD_1);
			// 機器提供サービス契約登録
			setEKK0341D01004(commonInfoBean, outputMap, JPCModelConstant.FUNC_CD_1);
		}

	}

	/**
	 * 下りマッピング
	 * <br>
	 * @param bean
	 * @param outputMap
	 * @return X31SDataBeanAccess
	 */
	@SuppressWarnings("unchecked")
	public static void getFUSV0274CC(X31SDataBeanAccess commonInfoBean, HashMap outputMap)
	{

		// WEB新規情報取得
		X31SDataBeanAccess cfWebNewInfo = commonInfoBean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO).getDataBean(0);
		X31SDataBeanAccessArray hanyoInfoBeanList = cfWebNewInfo.getDataBeanArray(CommonInfoCFConst.HANYO_CD_LIST);
		
		// データ抽出設定データ（JFUAddDchskmCdCCのチェック結果を元に共有フォームビーンを再設定する）
		
		HashMap delDchskmCodeMap = (HashMap)outputMap.get("delDchskmCodeMap");
		HashMap infDchskmCodeMap = (HashMap)outputMap.get("infDchskmCodeMap");
		
		// 後ろから走査しないとデータ削除時にインデックスがおかしくなるのでこのようにしています。
		for (int i = hanyoInfoBeanList.getCount() - 1; i >= 0; i--)
		{
			X31SDataBeanAccess hanyoInfoBean = hanyoInfoBeanList.getDataBean(i);
			// 汎用コード
			String hanyoCd =  hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_CD_46, X31CWebConst.DATABEAN_GET_VALUE);
			// 汎用種別コード
			String hanyoSbtCd =  hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_SBT_CD_46, X31CWebConst.DATABEAN_GET_VALUE);
			
			// 汎用種別コードが汎用以外の場合はスキップ
			if (!JFUStrConst.HANYO_SBT_CD_HANYO.equals(hanyoSbtCd))
			{
				continue;
			}

			// 削除用コードマップに存在している場合は、共有フォームビーンから削除
			if (delDchskmCodeMap.containsKey(hanyoCd))
			{
				hanyoInfoBeanList.removeDataBean(i);
				continue;
			}
			
			// 必要な情報を設定
			HashMap dataMap = (HashMap)infDchskmCodeMap.get(hanyoCd);
			if (dataMap == null)
			{
				continue;
			}

			// 汎用表示用コード
			if (JFUCommonUtil.isNull(hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_DSP_CD_46, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_DSP_CD_46, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap
						.get("dsp_dchskm_cd"));
			}
			// 汎用名称
			if (JFUCommonUtil.isNull(hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_NM_46, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_NM_46, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get("dchskm_nm"));
			}
			// 受付開始日
			if (JFUCommonUtil.isNull(hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_STA_DTM_46, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_STA_DTM_46, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap
						.get("set_psb_sta_ymdhm"));
			}
			// 受付終了日
			if (JFUCommonUtil.isNull(hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_END_DTM_46, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_END_DTM_46, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap
						.get("set_psb_end_ymdhm"));
			}
		}


		// 割引サービス（JFUAddWribSvcCdCCのチェック結果を元に共有フォームビーンを再設定する）
		
		HashMap delWribSvcCodeMap = (HashMap)outputMap.get("delWribSvcCodeMap");
		HashMap infWribSvcCodeMap = (HashMap)outputMap.get("infWribSvcCodeMap");

		// 後ろから走査しないとデータ削除時にインデックスがおかしくなるのでこのようにしています。
		for (int i = hanyoInfoBeanList.getCount() - 1; i >= 0; i--)
		{
			X31SDataBeanAccess hanyoInfoBean = hanyoInfoBeanList.getDataBean(i);
			// 汎用コード
			String hanyoCd =  hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_CD_46, X31CWebConst.DATABEAN_GET_VALUE);
			// 汎用種別コード
			String hanyoSbtCd =  hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_SBT_CD_46, X31CWebConst.DATABEAN_GET_VALUE);
			
			// 汎用種別コードが割引以外の場合はスキップ
			if (!JFUStrConst.HANYO_SBT_CD_WARIBIKI.equals(hanyoSbtCd))
			{
				continue;
			}

			// 削除用コードマップに存在している場合は、共有フォームビーンから削除
			if (delWribSvcCodeMap.containsKey(hanyoCd))
			{
				hanyoInfoBeanList.removeDataBean(i);
				continue;
			}
			
			// 必要な情報を設定
			HashMap dataMap = (HashMap)infWribSvcCodeMap.get(hanyoCd);
			if (dataMap == null)
			{
				continue;
			}
			// 汎用表示用コード
			if (JFUCommonUtil.isNull(hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_DSP_CD_46, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_DSP_CD_46, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get("dsp_campaign_cd"));
			}
			// 汎用名称
			if (JFUCommonUtil.isNull(hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_NM_46, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_NM_46, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get("wrib_svc_nm"));
			}
			// 受付開始日
			if (JFUCommonUtil.isNull(hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_STA_DTM_46, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_STA_DTM_46, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap
						.get("uk_sta_ymdhm"));
			}
			// 受付終了日
			if (JFUCommonUtil.isNull(hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_END_DTM_46, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_END_DTM_46, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap
						.get("uk_end_ymdhm"));
			}
		}
		
	}

	/**
	 * 汎用コードのマージ処理
	 * <br>
	 * @param commonInfoBean
	 */
	@SuppressWarnings("unchecked")
	public static void margeHanyoInfoBean(X31SDataBeanAccess commonInfoBean)
	{

		// WEB新規情報取得
		X31SDataBeanAccess cfWebNewInfo = commonInfoBean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO).getDataBean(0);
		X31SDataBeanAccessArray hanyoInfoBeanList = cfWebNewInfo.getDataBeanArray(CommonInfoCFConst.HANYO_CD_LIST);
		
		// マージチェック用マップ
		HashMap checkMap = new HashMap();

		// 後ろから走査しないとデータ削除時にインデックスがおかしくなるのでこのようにしています。
		for (int i = hanyoInfoBeanList.getCount() - 1; i >= 0; i--)
		{
			X31SDataBeanAccess hanyoInfoBean = hanyoInfoBeanList.getDataBean(i);
			// 汎用表示用コード
			String hanyoDspCd =  hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_DSP_CD_46, X31CWebConst.DATABEAN_GET_VALUE);

			// 汎用表示用コードが空の場合は、スキップ
			if (JFUCommonUtil.isNull(hanyoDspCd)) {
				continue;
			}

			// マージチェック用マップに存在している場合は、共有フォームビーンから削除
			if (checkMap.containsKey(hanyoDspCd))
			{
				hanyoInfoBeanList.removeDataBean(i);
			}
			
			// チェック用マップに追加
			checkMap.put(hanyoDspCd, hanyoDspCd);
		}

	}

	/**
	 * その他キャンペーンの表示処理
	 * <br>
	 * @param commonInfoBean
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private static void setHanyoInfoBeanDummy(X31SDataBeanAccess commonInfoBean, String opeDate)  
	{

		// WEB新規情報
		X31SDataBeanAccess bnWebinfo = getWebInfo(commonInfoBean);
		// リダイレクト情報
		X31SDataBeanAccess bnRedirectinfo = getRedirectinfo(bnWebinfo);
		// 契約サービス情報
		X31SDataBeanAccess bnKeiSvcinfo = getKeiyakusvcinfo(bnWebinfo);
		// 汎用コードリスト取得
		X31SDataBeanAccessArray hanyoCdList = bnWebinfo.getDataBeanArray(CommonInfoCFConst.HANYO_CD_LIST);
		// マンション情報
		X31SDataBeanAccess bnMansionInfo = getMansioninfo(bnWebinfo);
		// その他情報
		X31SDataBeanAccess bnElseinfo = getElseInfo(bnWebinfo);
		// eo光ネット
		X31SDataBeanAccess bnNetinfo = getEonet(bnWebinfo);

		// データ抽出設定申込確認用フラグ
		boolean dchskmCdFlg = false;
		// 申込マンションタイプ
		String mskmMnsYype = bnWebinfo.sendMessageString(CommonInfoCFConst.MSKM_MNS_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE);
		// 加入契約申込条件コード
		String knykeiMskmJokenCd = bnMansionInfo.sendMessageString(CommonInfoCFConst.KNYKEI_MSKM_JOKEN_CD_16, X31CWebConst.DATABEAN_GET_VALUE);
		// 支払方式コード
		String paywayCd = bnMansionInfo.sendMessageString(CommonInfoCFConst.PAYWAY_CD_16, X31CWebConst.DATABEAN_GET_VALUE);

		// 選択サービス：ネット
		String selSvcNet = bnKeiSvcinfo.sendMessageString(CommonInfoCFConst.SELECT_SVC_NET_10, X31CWebConst.DATABEAN_GET_VALUE);
		// 選択サービス：電話
		String selSvcTel = bnKeiSvcinfo.sendMessageString(CommonInfoCFConst.SELECT_SVC_TEL_10, X31CWebConst.DATABEAN_GET_VALUE);
		// 選択サービス：テレビ
		String selSvcTv = bnKeiSvcinfo.sendMessageString(CommonInfoCFConst.SELECT_SVC_TV_10, X31CWebConst.DATABEAN_GET_VALUE);

		// 選択サービスフラグ：ネット
		boolean selSvcFlgNet = JFUStrConst.SELECT_SVC_CHOICE.equals(selSvcNet);
		// 選択サービスフラグ：電話
		boolean selSvcFlgTel = JFUStrConst.SELECT_SVC_CHOICE.equals(selSvcTel);
		// 選択サービスフラグ：テレビ
		boolean selSvcFlgTv = JFUStrConst.SELECT_SVC_CHOICE.equals(selSvcTv);
		
		// 取扱店用取扱コード1
		String toriten_toriatsukai_cd = bnElseinfo.sendMessageString(CommonInfoCFConst.TORITEN_TORIATSUKAI_CD_18, X31CWebConst.DATABEAN_GET_VALUE);
		// 取扱店用取扱コード2
		String toriten_toriatsukai_cd_2 = bnElseinfo.sendMessageString(CommonInfoCFConst.TORITEN_TORIATSUKAI_CD2_18, X31CWebConst.DATABEAN_GET_VALUE);
		// プロパティより、一般WEB既定値を取得する。
		String trat_usual = getDispText(JFUScreenConst.SCREEN_ID_FUW00144, TRAT_USUAL);
		// プロパティより、価格コム(電気)の取扱コードを取得する。
		String trat_kakakucom_elec = getDispText(JFUScreenConst.SCREEN_ID_FUW00144, TRAT_KAKAKUCOM_ELEC);
		// プロパティより、価格コムの取扱コードを取得する。
		String trat_kakakucom = getDispText(JFUScreenConst.SCREEN_ID_FUW00144, TRAT_KAKAKUCOM);
		
		// リダイレクト情報.新規申込用割引サービスコードに値が設定されている場合実行する。
		String newWribSvcCd = bnRedirectinfo.sendMessageString(CommonInfoCFConst.NEW_WRIB_SVC_CD_17, X31CWebConst.DATABEAN_GET_VALUE);
		if (!JFUCommonUtil.isNull(newWribSvcCd))
		{
			X31SDataBeanAccess hanyoBean = hanyoCdList.addDataBean();

			// 汎用コード
			hanyoBean.sendMessageString(CommonInfoCFConst.HANYO_CD_46, X31CWebConst.DATABEAN_SET_VALUE, newWribSvcCd);
			// 汎用種別コード
			hanyoBean.sendMessageString(CommonInfoCFConst.HANYO_SBT_CD_46, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.HANYO_SBT_CD_WARIBIKI);
			// 適用可否フラグ（適用可）
			hanyoBean.sendMessageString(CommonInfoCFConst.HANYO_KH_FLG_46, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.HANYO_KH_FLG_TEKIYO_KA);
		}

		// リダイレクト情報.新規申込用データ抽出項目コードに値が設定されている場合実行する。
		String newDchskmCd = bnRedirectinfo.sendMessageString(CommonInfoCFConst.NEW_DCHSKM_CD_17, X31CWebConst.DATABEAN_GET_VALUE);
		if (!JFUCommonUtil.isNull(newDchskmCd))
		{
			X31SDataBeanAccess hanyoBean = hanyoCdList.addDataBean();

			// 汎用コード
			hanyoBean.sendMessageString(CommonInfoCFConst.HANYO_CD_46, X31CWebConst.DATABEAN_SET_VALUE, newDchskmCd);
			// 汎用種別コード
			hanyoBean.sendMessageString(CommonInfoCFConst.HANYO_SBT_CD_46, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.HANYO_SBT_CD_HANYO);
			// 適用可否フラグ（適用可）
			hanyoBean.sendMessageString(CommonInfoCFConst.HANYO_KH_FLG_46, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.HANYO_KH_FLG_TEKIYO_KA);
		}

		// リダイレクト情報.追加申込用割引サービスコードに値が設定されている場合実行する。
		String addWribSvcCd = bnRedirectinfo.sendMessageString(CommonInfoCFConst.ADD_WRIB_SVC_CD_17, X31CWebConst.DATABEAN_GET_VALUE);
		if (!JFUCommonUtil.isNull(addWribSvcCd))
		{
			X31SDataBeanAccess hanyoBean = hanyoCdList.addDataBean();

			// 汎用コード
			hanyoBean.sendMessageString(CommonInfoCFConst.HANYO_CD_46, X31CWebConst.DATABEAN_SET_VALUE, addWribSvcCd);
			// 汎用種別コード
			hanyoBean.sendMessageString(CommonInfoCFConst.HANYO_SBT_CD_46, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.HANYO_SBT_CD_WARIBIKI);
			// 適用可否フラグ（適用可）
			hanyoBean.sendMessageString(CommonInfoCFConst.HANYO_KH_FLG_46, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.HANYO_KH_FLG_TEKIYO_KA);
		}

		// リダイレクト情報.追加申込用データ抽出項目コードに値が設定されている場合実行する。
		String addDchskmSvcCd = bnRedirectinfo.sendMessageString(CommonInfoCFConst.ADD_DCHSKM_CD_17, X31CWebConst.DATABEAN_GET_VALUE);
		if (!JFUCommonUtil.isNull(addDchskmSvcCd))
		{
			X31SDataBeanAccess hanyoBean = hanyoCdList.addDataBean();

			// 汎用コード
			hanyoBean.sendMessageString(CommonInfoCFConst.HANYO_CD_46, X31CWebConst.DATABEAN_SET_VALUE, addDchskmSvcCd);
			// 汎用種別コード
			hanyoBean.sendMessageString(CommonInfoCFConst.HANYO_SBT_CD_46, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.HANYO_SBT_CD_HANYO);
			// 適用可否フラグ（適用可）
			hanyoBean.sendMessageString(CommonInfoCFConst.HANYO_KH_FLG_46, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.HANYO_KH_FLG_TEKIYO_KA);
		}

		// リダイレクト情報.WiMAX（白ロム）用割引サービスコードに値が設定されている場合実行する。
		String wwWribSvcCd = bnRedirectinfo.sendMessageString(CommonInfoCFConst.WIMAX_WHITE_WRIB_SVC_CD_17, X31CWebConst.DATABEAN_GET_VALUE);
		if (!JFUCommonUtil.isNull(wwWribSvcCd))
		{
			X31SDataBeanAccess hanyoBean = hanyoCdList.addDataBean();

			// 汎用コード
			hanyoBean.sendMessageString(CommonInfoCFConst.HANYO_CD_46, X31CWebConst.DATABEAN_SET_VALUE, wwWribSvcCd);

			// 汎用種別コード
			String hanyoSbtCd = "";
			// "W"：割引、"DT"：データ抽出設定
			if (wwWribSvcCd.startsWith("W"))
			{
				hanyoSbtCd = JFUStrConst.HANYO_SBT_CD_WARIBIKI;
			}
			else
			{
				hanyoSbtCd = JFUStrConst.HANYO_SBT_CD_HANYO;
				// データ抽出設定申込
				dchskmCdFlg = true;
			}
			hanyoBean.sendMessageString(CommonInfoCFConst.HANYO_SBT_CD_46, X31CWebConst.DATABEAN_SET_VALUE, hanyoSbtCd);

			// 適用可否フラグ（適用可）
			hanyoBean.sendMessageString(CommonInfoCFConst.HANYO_KH_FLG_46, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.HANYO_KH_FLG_TEKIYO_KA);
		}

		// 販売タイプ
		String hanbai_type = bnWebinfo.sendMessageString(CommonInfoCFConst.HANBAI_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE);
		// ネットコース
		String netCourse = bnNetinfo.sendMessageString(CommonInfoCFConst.NET_COURSE_11, X31CWebConst.DATABEAN_GET_VALUE);

		// 販売タイプが"コンシューマ" かつ 申込経路が"価格ｃｏｍ"
		if ((JFUStrConst.HNBAI_TYPE_CON.equals(hanbai_type) || JFUStrConst.HNBAI_TYPE_TKJCOMP.equals(hanbai_type))
				&& trat_kakakucom.equals(toriten_toriatsukai_cd))
		{
			// 割引サービスコード
			String wribSvcCd = JFUStrConst.EMPTY;
			// マンション以外
			if (!JFUStrConst.MSKM_MNS_TYPE_MANSION.equals(mskmMnsYype))
			{
// ANK-4517-00-00 MOD START
				// 価格ｃｏｍ（ホーム、メゾン）
				try
				{
					Map<String, String> map = JFUWebCommon.getDispItemsAsMap("DISPSETTING/SETTING[@screenId='COMMONSETTING']/DISPTEXT[@groupid='WEB_WARI_CAMP_KAKAKUCOM']", "id");
					String[] cmpcdList = map.get("CMP_CD").toString().split(",");
					for (int i = 0; i <= cmpcdList.length; i++)
					{
						if (!JFUWebCommon.isNull(cmpcdList[i]))
						{
							String startYmd[] = map.get(cmpcdList[i]).toString().split(",");
							if (!JFUWebCommon.isNull(startYmd[0]) && !JFUWebCommon.isNull(startYmd[1]))
							{
								if (Integer.parseInt(startYmd[0]) <= Integer.parseInt(opeDate) && Integer.parseInt(startYmd[1]) >= Integer.parseInt(opeDate))
								{
									// 価格ｃｏｍ商品券
									wribSvcCd = cmpcdList[i];
								}
							}
						}
					}
				} catch (Exception e) {
					// なにもしない
				}
// ANK-4517-00-00 MOD END
				if (!JFUStrConst.EMPTY.equals(wribSvcCd))
				{
					// Netflixパック以外
					if (!JFUStrConst.NET_COURSE_1G_NF.equals(netCourse) 
							&& !JFUStrConst.NET_COURSE_5G_NF.equals(netCourse)
							&& !JFUStrConst.NET_COURSE_10G_NF.equals(netCourse))
					{
						X31SDataBeanAccess hanyoBean = hanyoCdList.addDataBean();
						// 汎用コード
						hanyoBean.sendMessageString(CommonInfoCFConst.HANYO_CD_46, X31CWebConst.DATABEAN_SET_VALUE, wribSvcCd);
						// 汎用種別コード
						hanyoBean.sendMessageString(CommonInfoCFConst.HANYO_SBT_CD_46, X31CWebConst.DATABEAN_SET_VALUE,
								JFUStrConst.HANYO_SBT_CD_HANYO);
						// 適用可否フラグ（適用可）
						hanyoBean.sendMessageString(CommonInfoCFConst.HANYO_KH_FLG_46, X31CWebConst.DATABEAN_SET_VALUE,
								JFUStrConst.HANYO_KH_FLG_TEKIYO_KA);
					}
				}
			}
			// マンションで、支払方式が「全戸一括」「居住者一括」以外
			else if (JFUStrConst.MSKM_MNS_TYPE_MANSION.equals(mskmMnsYype) && !JFUStrConst.KNYKEI_MSKM_JOKEN_IKT.equals(knykeiMskmJokenCd)
					&& !PAYWAY_CD_003.equals(paywayCd) && !PAYWAY_CD_004.equals(paywayCd))
			{
				// プロパティより有効な価格ｃｏｍ商品券コードを取得
				try {
					Map<String, String> map = JFUWebCommon.getDispItemsAsMap("DISPSETTING/SETTING[@screenId='COMMONSETTING']/DISPTEXT[@groupid='WEB_WARI_CAMP_KAKAKUCOM_MANSION']", "id");
					String[] cmpcdList = map.get("CMP_CD").toString().split(",");
					for (int i = 0; i <= cmpcdList.length; i++)
					{
						if (!JFUWebCommon.isNull(cmpcdList[i]))
						{
							String startYmd[] = map.get(cmpcdList[i]).toString().split(",");
							if (!JFUWebCommon.isNull(startYmd[0]) && !JFUWebCommon.isNull(startYmd[1]))
							{
								if (Integer.parseInt(startYmd[0]) <= Integer.parseInt(opeDate) && Integer.parseInt(startYmd[1]) >= Integer.parseInt(opeDate))
								{
									wribSvcCd = cmpcdList[i];
								}
							}
						}
					}
				} catch (Exception e) {
					// なにもしない
				}
				if (!JFUStrConst.EMPTY.equals(wribSvcCd))
				{
					X31SDataBeanAccess hanyoBean = hanyoCdList.addDataBean();
					// 汎用コード
					hanyoBean.sendMessageString(CommonInfoCFConst.HANYO_CD_46, X31CWebConst.DATABEAN_SET_VALUE, wribSvcCd);
					// 汎用種別コード
					hanyoBean.sendMessageString(CommonInfoCFConst.HANYO_SBT_CD_46, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.HANYO_SBT_CD_HANYO);
					// 適用可否フラグ（適用可）
					hanyoBean.sendMessageString(CommonInfoCFConst.HANYO_KH_FLG_46, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.HANYO_KH_FLG_TEKIYO_KA);
				}
			}
		}

		// ■自動登録キャンペーンリスト (ANK-4551-00-00)
		X31SDataBeanAccessArray autoAddCpList = bnWebinfo.getDataBeanArray(CommonInfoCFConst.AUTO_ADD_CP_LIST);
		if (autoAddCpList != null && autoAddCpList.getCount() > 0)
		{
			X31SDataBeanAccess campaignInfoBean = null;
			for (int i = 0; i < autoAddCpList.getCount(); i++)
			{
				campaignInfoBean = autoAddCpList.getDataBean(i);
				String campaignAddJg = campaignInfoBean.sendMessageString(CommonInfoCFConst.CAMPAIGN_ADD_JG_66, X31CWebConst.DATABEAN_GET_VALUE);
				String campaignCd = campaignInfoBean.sendMessageString(CommonInfoCFConst.CAMPAIGN_CD_66, X31CWebConst.DATABEAN_GET_VALUE);
				String campaignSbtCd = campaignInfoBean.sendMessageString(CommonInfoCFConst.CAMPAIGN_SBT_CD_66, X31CWebConst.DATABEAN_GET_VALUE);
				if (JFUStrConst.CAMPAIGN_ADD_JG_NG.equals(campaignAddJg))
				{
					continue;
				}
				X31SDataBeanAccess hanyoBean = hanyoCdList.addDataBean();
				// 汎用コード
				hanyoBean.sendMessageString(CommonInfoCFConst.HANYO_CD_46, X31CWebConst.DATABEAN_SET_VALUE, campaignCd);
				// 汎用種別コード
				hanyoBean.sendMessageString(CommonInfoCFConst.HANYO_SBT_CD_46, X31CWebConst.DATABEAN_SET_VALUE, campaignSbtCd);
				// 適用可否フラグ（適用可）
				hanyoBean.sendMessageString(CommonInfoCFConst.HANYO_KH_FLG_46, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.HANYO_KH_FLG_TEKIYO_KA);
			}
		}

		// マンション割引対応追加
		// ホームタイプ以外の場合
		if (!JFUStrConst.MSKM_KSN_SVC_HOME.equals(bnWebinfo.sendMessageString(CommonInfoCFConst.MSKM_KSN_SVC_06, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// マンション割引サービスコードの個数を取得
			int netCnt = (Integer)bnMansionInfo.sendMessage(CommonInfoCFConst.MANS_WRIB_SVC_CD_16, X31CWebConst.DATABEAN_GET_COUNT);
		
			for (int i = 0; i < netCnt; i++)
			{
				X31SDataBeanAccess hanyoBean = hanyoCdList.addDataBean();

				// 汎用コード
				String mansWribSvcCd = bnMansionInfo.sendMessageString(CommonInfoCFConst.MANS_WRIB_SVC_CD_16, X31CWebConst.DATABEAN_GET_VALUE, i);
				hanyoBean.sendMessageString(CommonInfoCFConst.HANYO_CD_46, X31CWebConst.DATABEAN_SET_VALUE, mansWribSvcCd);

				// 汎用種別コード
				String hanyoSbtCd = "";
				// "W"：割引、"DT"：データ抽出設定
				if (mansWribSvcCd.startsWith("W"))
				{
					hanyoSbtCd = JFUStrConst.HANYO_SBT_CD_WARIBIKI;
				}
				else
				{
					hanyoSbtCd = JFUStrConst.HANYO_SBT_CD_HANYO;
				}
				hanyoBean.sendMessageString(CommonInfoCFConst.HANYO_SBT_CD_46, X31CWebConst.DATABEAN_SET_VALUE, hanyoSbtCd);

				// 適用可否フラグ（適用可）
				hanyoBean.sendMessageString(CommonInfoCFConst.HANYO_KH_FLG_46, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.HANYO_KH_FLG_TEKIYO_KA);
			}
		}

	}

// IT2-2017-0000014 ADD START
	/**
	 * 共有フォームBean編集処理
	 * <br>
	 * @param commonInfoBean
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private static void setCommonInfoBeanDummy(X31SDataBeanAccess commonInfoBean)  
	{
		// WEB新規情報
		X31SDataBeanAccess bnWebinfo = getWebInfo(commonInfoBean);
		// eo光ネット
		X31SDataBeanAccess bnNetinfo = getEonet(bnWebinfo);
		// 利用回線・機器情報
		X31SDataBeanAccess bnUseKaisenKikiInfo = getUseKaisenKikiInfo(bnWebinfo);
		// その他情報
		X31SDataBeanAccess bnElseInfo = getElseInfo(bnWebinfo);
		// 利用場所情報
		X31SDataBeanAccess bnRiyobasho = getRiyobasyoinfo(bnWebinfo);
		
		// プレミアムパック
		String premiumPack = bnNetinfo.sendMessageString(CommonInfoCFConst.PREMIUM_PACK_55, X31CWebConst.DATABEAN_GET_VALUE);
		
		// セキュリティーパック
		String securityPack = bnNetinfo.sendMessageString(CommonInfoCFConst.SECURITY_PACK_MSKM_55, X31CWebConst.DATABEAN_GET_VALUE);
		
// ANK-3217-00-00 ADD START
		// ＧＨ端末
		String ghTanmt = bnNetinfo.sendMessageString(CommonInfoCFConst.GH_TANMT_11, X31CWebConst.DATABEAN_GET_VALUE);
// ANK-3217-00-00 ADD END
		
		// プレミアムパック または セキュリティーパックが"申し込む"の場合
		if (JFUStrConst.SMALIN_PREMIUM_PACK_MSKM.equals(premiumPack) || JFUStrConst.SECURITY_PAC_MSKM.equals(securityPack))
		{
			// リモートサポートを"申し込む"に上書き
			bnNetinfo.sendMessageString(CommonInfoCFConst.RMTSPRT_MSKM_55, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.RMTSPRT_MSKM_MSKM);
		}
// ANK-3217-00-00 ADD START
		// ＧＨ端末が"1"（購入する）の場合
		if (JFUStrConst.GH_TANMT_BUY.equals(ghTanmt))
		{
			// ＧＨ端末−端末名
			String ghTanmtNmScreen = bnNetinfo.sendMessageString(CommonInfoCFConst.GH_TANMT_NM_SCREEN_11, X31CWebConst.DATABEAN_GET_VALUE);
			
			// ＧＨ端末−支払方法
			String ghTanmtPayway = bnNetinfo.sendMessageString(CommonInfoCFConst.GH_TANMT_PAYWAY_11, X31CWebConst.DATABEAN_GET_VALUE);
			
			// タブレット端末をＧＨ端末に上書き
			bnNetinfo.sendMessageString(CommonInfoCFConst.TABLET_TANMT_11, X31CWebConst.DATABEAN_SET_VALUE, ghTanmt);
			
			// タブレット端末−端末名をＧＨ端末−端末名に上書き
			bnNetinfo.sendMessageString(CommonInfoCFConst.TABLET_TANMT_NM_SCREEN_11, X31CWebConst.DATABEAN_SET_VALUE, ghTanmtNmScreen);
			
			// タブレット端末−支払方法をＧＨ端末−支払方法に上書き
			bnNetinfo.sendMessageString(CommonInfoCFConst.TABLET_TANMT_PAYWAY_11, X31CWebConst.DATABEAN_SET_VALUE, ghTanmtPayway);
		}
// ANK-3217-00-00 ADD END

		// 利用回線・機器情報.利用中のネット回線
		String useNetKsn = bnUseKaisenKikiInfo.sendMessageString(CommonInfoCFConst.USE_NET_KSN_68, X31CWebConst.DATABEAN_GET_VALUE);
		if (JFUStrConst.USE_NET_KSN_HIKARI.equals(useNetKsn))
		{
			bnRiyobasho.sendMessageString(CommonInfoCFConst.USE_NET_KSN_08, X31CWebConst.DATABEAN_SET_VALUE,
					getDispText("", USE_NET_KSN_HIKARI));
		}
		else if (JFUStrConst.USE_NET_KSN_SONOTA.equals(useNetKsn))
		{
			bnRiyobasho.sendMessageString(CommonInfoCFConst.USE_NET_KSN_08, X31CWebConst.DATABEAN_SET_VALUE,
					getDispText("", USE_NET_KSN_SONOTA));
		}
		else
		{
			bnRiyobasho.sendMessageString(CommonInfoCFConst.USE_NET_KSN_08, X31CWebConst.DATABEAN_SET_VALUE, "");
		}

		// 利用回線・機器情報.利用中の機器の設置場所変更予定
		String kikiPlaceChg = bnUseKaisenKikiInfo.sendMessageString(CommonInfoCFConst.KIKI_PLACE_CHG_68, X31CWebConst.DATABEAN_GET_VALUE);
		if (JFUStrConst.KIKI_PLACE_CHG_NO.equals(kikiPlaceChg))
		{
			bnRiyobasho.sendMessageString(CommonInfoCFConst.KIKI_PLACE_CHG_08, X31CWebConst.DATABEAN_SET_VALUE,
					getDispText("", KIKI_PLACE_CHG_NO));
		}
		else if (JFUStrConst.KIKI_PLACE_CHG_YES.equals(kikiPlaceChg))
		{
			bnRiyobasho.sendMessageString(CommonInfoCFConst.KIKI_PLACE_CHG_08, X31CWebConst.DATABEAN_SET_VALUE,
					getDispText("", KIKI_PLACE_CHG_YES));
		}
		else
		{
			bnRiyobasho.sendMessageString(CommonInfoCFConst.KIKI_PLACE_CHG_08, X31CWebConst.DATABEAN_SET_VALUE, "");
		}

		// 利用回線・機器情報.宅内調査と工事の同日実施
		String tkcKojiSame = bnUseKaisenKikiInfo.sendMessageString(CommonInfoCFConst.TKC_KOJI_SAME_68, X31CWebConst.DATABEAN_GET_VALUE);
		if (JFUStrConst.TKC_KOJI_SAME_NO.equals(tkcKojiSame))
		{
			bnRiyobasho.sendMessageString(CommonInfoCFConst.TKC_KOJI_SAME_08, X31CWebConst.DATABEAN_SET_VALUE,
					getDispText("", TKC_KOJI_SAME_NO));
		}
		else if (JFUStrConst.TKC_KOJI_SAME_YES.equals(tkcKojiSame))
		{
			bnRiyobasho.sendMessageString(CommonInfoCFConst.TKC_KOJI_SAME_08, X31CWebConst.DATABEAN_SET_VALUE,
					getDispText("", TKC_KOJI_SAME_YES));
		}
		else
		{
			bnRiyobasho.sendMessageString(CommonInfoCFConst.TKC_KOJI_SAME_08, X31CWebConst.DATABEAN_SET_VALUE, "");
		}

		// ａｕショップ取扱フラグ
		String au_shop_trat_flg = bnElseInfo.sendMessageString(CommonInfoCFConst.AU_SHOP_TRAT_FLG_18, X31CWebConst.DATABEAN_GET_VALUE);
		// 販売タイプ
		String hanbai_type = bnWebinfo.sendMessageString(CommonInfoCFConst.HANBAI_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE);

		if (JFUStrConst.AU_SHOP_TRAT_FLG_AU.equals(au_shop_trat_flg) || JFUStrConst.HNBAI_TYPE_HOHAN.equals(hanbai_type))
		{
			// その他情報.早期開通早期連絡希望有無
			String tsyrnEarlyOpenEarlyRrkKbumScreen = bnElseInfo.sendMessageString(CommonInfoCFConst.TSYRN_EARLY_OPEN_EARLY_RRK_KBUM_SCREEN_18,
					X31CWebConst.DATABEAN_GET_VALUE);
			if (JFUStrConst.CD00002_0.equals(tsyrnEarlyOpenEarlyRrkKbumScreen))
			{
				bnElseInfo.sendMessageString(CommonInfoCFConst.TSYRN_EARLY_OPEN_EARLY_RRK_KBUM_SCREEN_18, X31CWebConst.DATABEAN_SET_VALUE,
						getDispText(JFUScreenConst.SCREEN_ID_FUW00943, RRK_JIKO_1_NO));
			}
			else if (JFUStrConst.CD00002_1.equals(tsyrnEarlyOpenEarlyRrkKbumScreen))
			{
				bnElseInfo.sendMessageString(CommonInfoCFConst.TSYRN_EARLY_OPEN_EARLY_RRK_KBUM_SCREEN_18, X31CWebConst.DATABEAN_SET_VALUE,
						getDispText(JFUScreenConst.SCREEN_ID_FUW00943, RRK_JIKO_1_YES));
			}
			else
			{
				bnElseInfo.sendMessageString(CommonInfoCFConst.TSYRN_EARLY_OPEN_EARLY_RRK_KBUM_SCREEN_18, X31CWebConst.DATABEAN_SET_VALUE, "");
			}
		}

		// その他情報.宅内調査のアポ架電希望
		String tsyrnEarlyOpenEarlyRrkKbumScreen =
				bnElseInfo.sendMessageString(CommonInfoCFConst.TAKCHO_APO_KADEN_KIBO_UM_SCREEN_18, X31CWebConst.DATABEAN_GET_VALUE);
		if (JFUStrConst.TAKCHO_APO_KADEN_KIBO_UM_SCREEN_NASI.equals(tsyrnEarlyOpenEarlyRrkKbumScreen))
		{
			bnElseInfo.sendMessageString(CommonInfoCFConst.TAKCHO_APO_KADEN_KIBO_UM_SCREEN_18, X31CWebConst.DATABEAN_SET_VALUE, getDispText(
					JFUScreenConst.SCREEN_ID_FUW00927, TAKCHO_APO_KADEN_KIBO_UM_SCREEN_NASI));
		}
		else if (JFUStrConst.TAKCHO_APO_KADEN_KIBO_UM_SCREEN_ARI.equals(tsyrnEarlyOpenEarlyRrkKbumScreen))
		{
			bnElseInfo.sendMessageString(CommonInfoCFConst.TAKCHO_APO_KADEN_KIBO_UM_SCREEN_18, X31CWebConst.DATABEAN_SET_VALUE, getDispText(
					JFUScreenConst.SCREEN_ID_FUW00927, TAKCHO_APO_KADEN_KIBO_UM_SCREEN_ARI));
		}
		else
		{
			bnElseInfo.sendMessageString(CommonInfoCFConst.TAKCHO_APO_KADEN_KIBO_UM_SCREEN_18, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
		}

	}
// IT2-2017-0000014 ADD END
	
	/**
	 * 申込断面データマッピング処理
	 * <br>
	 * @param rootBeanNmPath ROOTとなるBeanのパス。要素番号まで指定(例：ＷＥＢ新規情報/0/)
	 * @param excludeBeanNmList 申込断面データから除外するBean名のリスト。Bean名を指定（例：料金シミュレーション情報）
	 * @param outMap 設定値格納用マップ（サービス呼出時のパラメータマップ）
	 * @param isCommonInfoBean 共有フォームBeanの場合:true/サービスフォームBeanの場合:false
	 * @param bl VIEWロジックインスタンス
	 * @throws Exception 
	 */
	public static void setMskmDmenXmlMap(String rootBeanNmPath, final ArrayList<String> excludeBeanNmList, HashMap<String, Object> outMap,
			boolean isCommonInfoBean, X31BWebBusinessLogic bl)
	{

		// 共有フォームBean/サービスフォームBean
		X31SDataBeanAccess bean = null;
		// 申込断面ROOTBean
		X31SDataBeanAccess rootBean = null;

		String rootBeanIDPath = null;
		String rootBeanId = null;
		StringBuilder tmpNmPath = new StringBuilder();

		// 申込断面XMLマップ
		HashMap<String, Object> mskmDmenXmlMap = new HashMap<String, Object>();
		// ROOTBean用マップ
		HashMap<String, Object> rootMap = null;

		//----------------------------------------------
		// 共通情報のマッピング
		//----------------------------------------------
		// 機能コード:1
		mskmDmenXmlMap.put(JCMConstants.FUNC_CODE_KEY, JPCModelConstant.FUNC_CD_1);
		// 種別：フロント
		mskmDmenXmlMap.put(JFUStrConst.MSKM_DMEN_XMLCC_IN_SBT, JFUStrConst.MSKM_DMEN_SBT_FRONT);

		//----------------------------------------------
		// 共有フォームBean/サービスフォームBean取得
		//----------------------------------------------
		bean = getMskmDmenBean(isCommonInfoBean, bl);

		//----------------------------------------------------------------------------------------
		// ★登録時と同じチェック処理を行い、登録時につかない割引を除外して申込断面XMLを作成
		//----------------------------------------------------------------------------------------
		//----------------------------------------------
		// 共有フォームBeanの場合のみ割引をチェックする。
		//----------------------------------------------
		ArrayList<HashMap<String, Object>> tmpList = new ArrayList<HashMap<String, Object>>();
		ArrayList<HashMap<String, Object>> smlTmpList = new ArrayList<HashMap<String, Object>>();
		// WEB新規情報取得
		X31SDataBeanAccess cfWebNewInfo = bean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO).getDataBean(0);
		// 汎用コードリスト
		X31SDataBeanAccessArray hanyoInfoBeanList = cfWebNewInfo.getDataBeanArray(CommonInfoCFConst.HANYO_CD_LIST);
		// eo光ネット
		X31SDataBeanAccess bnNetinfo = getEonet(cfWebNewInfo);
		// 利用場所情報
		X31SDataBeanAccess bnRiyobasho = getRiyobasyoinfo(cfWebNewInfo);
		// マンション情報
		X31SDataBeanAccess mansionInfoBean = getMansioninfo(cfWebNewInfo);
		// その他情報
		X31SDataBeanAccess elseInfoBean = getElseInfo(cfWebNewInfo);

		// 「eo光ネット」退避項目
		String net_course = JFUStrConst.EMPTY;
		// 「タブレット端末-ご希望のキャンペーン」退避項目
		String tabletTanmtCampaignNm = JFUStrConst.EMPTY;
// IT2-2017-0000014 ADD START
		// 「リモートサポート」退避項目
		String rmtsprtMskm = JFUStrConst.EMPTY;
// IT2-2017-0000014 ADD END
// ANK-3217-00-00 ADD START
		// 「タブレット端末」退避項目
		String tabletTanmt = JFUStrConst.EMPTY;
		
		// 「タブレット端末−端末名」退避項目
		String tabletTanmtNmScreen = JFUStrConst.EMPTY;
		
		// 「タブレット端末−支払方法」退避項目
		String tabletTanmtPayway = JFUStrConst.EMPTY;
// ANK-3217-00-00 ADD END
		
		// 「利用場所情報.建物名」退避項目
		String tmpUseplaceTtm = JFUStrConst.EMPTY;
		// 光化マンションフラグ
		String hikarikaMansFlg = JFUStrConst.EMPTY;
		// 「その他情報.早期開通早期連絡希望有無」退避項目
		String tsyrnEarlyOpenEarlyRrkKbumScreen = JFUStrConst.EMPTY;
		// 「その他情報.宅内調査のアポ架電希望」退避項目
		String takchoApoKadenKiboUmScreen = JFUStrConst.EMPTY;
		
//TODO:退避
		//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
		//  共有フォームBeanの退避
		//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
		if (isCommonInfoBean)
		{
			//----------------------------------------------
			// 共有フォームBean 汎用コードリストを退避
			//----------------------------------------------
			
			tmpList = new ArrayList<HashMap<String, Object>>();
			for (int i = 0; i < hanyoInfoBeanList.getCount(); i++)
			{
				HashMap<String, Object> tempMap = new HashMap<String, Object>();
				
				X31SDataBeanAccess hanyoInfoBean = hanyoInfoBeanList.getDataBean(i);
				// 汎用コード
				tempMap.put(CommonInfoCFConst.HANYO_CD_46, hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_CD_46, X31CWebConst.DATABEAN_GET_VALUE));
				// 汎用表示用コード
				tempMap.put(CommonInfoCFConst.HANYO_DSP_CD_46, hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_DSP_CD_46, X31CWebConst.DATABEAN_GET_VALUE));
				// 汎用名称
				tempMap.put(CommonInfoCFConst.HANYO_NM_46, hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_NM_46, X31CWebConst.DATABEAN_GET_VALUE));
				// 汎用種別コードを設定
				tempMap.put(CommonInfoCFConst.HANYO_SBT_CD_46, hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_SBT_CD_46, X31CWebConst.DATABEAN_GET_VALUE));
				// 受付開始日
				tempMap.put(CommonInfoCFConst.HANYO_STA_DTM_46, hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_STA_DTM_46, X31CWebConst.DATABEAN_GET_VALUE));
				// 受付終了日
				tempMap.put(CommonInfoCFConst.HANYO_END_DTM_46, hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_END_DTM_46, X31CWebConst.DATABEAN_GET_VALUE));
				
				tmpList.add(tempMap);
			}
			
			//----------------------------------------------------------------------------------
			// 共有フォームBean 「eo光ネット」を退避
			//-----------------------------------------------------------------------------------
			// 「eo光ネット」を退避
			// 棟内速度コード
			// TODO:編集用にネットのコースを変更しているので注意
			String tonai_speed_cd = JFUWebCommon.getMansionTonaiSpeedCd(mansionInfoBean);
			net_course = bnNetinfo.sendMessageString(CommonInfoCFConst.NET_COURSE_11, X31CWebConst.DATABEAN_GET_VALUE);
			if ((!JFUWebCommon.isNull(net_course)) && JFUWebCommon.isTkHosikiChgSbtCd(mansionInfoBean)
					&& JFUStrConst.MT_CD01214_COURCE_CHANGE.contains(tonai_speed_cd))
			{
				String wk_net_course = JFUStrConst.NET_COURSE_10G;
				if (JFUStrConst.CD01214_008.equals(tonai_speed_cd))
				{
					// ５ギガの場合
					wk_net_course = JFUStrConst.NET_COURSE_5G;
				}
				bnNetinfo.sendMessageString(CommonInfoCFConst.NET_COURSE_11, X31CWebConst.DATABEAN_SET_VALUE, wk_net_course);
			}
			//----------------------------------------------------------------------------------
			// スマリンキャンペーンの「タブレット端末-ご希望のキャンペーン」の設定文言を退避
			//-----------------------------------------------------------------------------------
			// 「タブレット端末-ご希望のキャンペーン」を退避
			tabletTanmtCampaignNm = bnNetinfo.sendMessageString(CommonInfoCFConst.TABLET_TANMT_CAMPAIGN_NM_11, X31CWebConst.DATABEAN_GET_VALUE);
			
// IT2-2017-0000014 ADD START
			//-------------------------------------------------------
			// 共有フォームBean 「リモートサポート」を退避
			//-------------------------------------------------------
			rmtsprtMskm = bnNetinfo.sendMessageString(CommonInfoCFConst.RMTSPRT_MSKM_55, X31CWebConst.DATABEAN_GET_VALUE);
			
// ANK-3217-00-00 ADD START
			//-------------------------------------------------------
			// 共有フォームBean 「タブレット端末」を退避
			//-------------------------------------------------------
			tabletTanmt = bnNetinfo.sendMessageString(CommonInfoCFConst.TABLET_TANMT_11, X31CWebConst.DATABEAN_GET_VALUE);
			
			//-------------------------------------------------------
			// 共有フォームBean 「タブレット端末−端末名」を退避
			//-------------------------------------------------------
			tabletTanmtNmScreen = bnNetinfo.sendMessageString(CommonInfoCFConst.TABLET_TANMT_NM_SCREEN_11, X31CWebConst.DATABEAN_GET_VALUE);
			
			//-------------------------------------------------------
			// 共有フォームBean 「タブレット端末−支払方法」を退避
			//-------------------------------------------------------
			tabletTanmtPayway = bnNetinfo.sendMessageString(CommonInfoCFConst.TABLET_TANMT_PAYWAY_11, X31CWebConst.DATABEAN_GET_VALUE);
// ANK-3217-00-00 ADD END
			
			//-------------------------------------------------------
			// 共有フォームBean 「利用場所情報.建物名」を退避(光化マンションの場合)
			//-------------------------------------------------------
			hikarikaMansFlg = mansionInfoBean.sendMessageString(CommonInfoCFConst.HIKARIKA_MANS_FLG_16, X31CWebConst.DATABEAN_GET_VALUE);
			if (JFUStrConst.HIKARIKA_MANS_FLG_1.equals(hikarikaMansFlg))
			{
				String touInfo = bnRiyobasho.sendMessageString(CommonInfoCFConst.USEPLACE_BILDNO_08, X31CWebConst.DATABEAN_GET_VALUE);
				if (!JFUWebCommon.isNull(touInfo)
						&& !bnRiyobasho.sendMessageString(CommonInfoCFConst.USEPLACE_TTM_08, X31CWebConst.DATABEAN_GET_VALUE).contains(touInfo))
				{
					// 利用場所の建物名を退避
					tmpUseplaceTtm = bnRiyobasho.sendMessageString(CommonInfoCFConst.USEPLACE_TTM_08, X31CWebConst.DATABEAN_GET_VALUE);

					// 建物名に棟情報を結合する
					String kaisenPlaceAdrttm = bnRiyobasho.sendMessageString(CommonInfoCFConst.USEPLACE_TTM_08, X31CWebConst.DATABEAN_GET_VALUE)
												+ JFUStrConst.SPACE
												+ bnRiyobasho.sendMessageString(CommonInfoCFConst.USEPLACE_BILDNO_08, X31CWebConst.DATABEAN_GET_VALUE);

					if (kaisenPlaceAdrttm.length() > 45)
					{
						// 45桁を超えた場合、46桁目以降を削る
						bnRiyobasho.sendMessageString(CommonInfoCFConst.USEPLACE_TTM_08, X31CWebConst.DATABEAN_SET_VALUE, kaisenPlaceAdrttm.substring(0, 45));
					}
					else
					{
						// 上記以外の場合、そのまま設定する
						bnRiyobasho.sendMessageString(CommonInfoCFConst.USEPLACE_TTM_08, X31CWebConst.DATABEAN_SET_VALUE, kaisenPlaceAdrttm);
					}
				}
			}

			//------------------------------------------------------------------------------------
			// 共有フォームBean 「その他情報.早期開通早期連絡希望有無」を退避
			//------------------------------------------------------------------------------------
			tsyrnEarlyOpenEarlyRrkKbumScreen = elseInfoBean.sendMessageString(CommonInfoCFConst.TSYRN_EARLY_OPEN_EARLY_RRK_KBUM_SCREEN_18,
					X31CWebConst.DATABEAN_GET_VALUE);

			//------------------------------------------------------------------------------------
			// 共有フォームBean 「その他情報.宅内調査のアポ架電希望」を退避
			//------------------------------------------------------------------------------------
			takchoApoKadenKiboUmScreen =
					elseInfoBean.sendMessageString(CommonInfoCFConst.TAKCHO_APO_KADEN_KIBO_UM_SCREEN_18, X31CWebConst.DATABEAN_GET_VALUE);

			//------------------------------------------------------------------------------------
			// 共有フォームBeanの設定値を編集
			//------------------------------------------------------------------------------------
			setCommonInfoBeanDummy(bean);
// IT2-2017-0000014 ADD END

			//------------------------------------------------------------------------------------
			// 汎用コードリストに、表示しきれていないキャンペーンを申込断面用に追加。
			//------------------------------------------------------------------------------------
			// 運用日付取得
			String opeDate = JFUWebCommon.getOpeDate(bl, null);
			setHanyoInfoBeanDummy(bean, opeDate);
			
			//------------------------------------------------------------------------------------
			// 割引チェック処理でつかない割引を削除する処理
			// 登録時と同じチェック処理を行い、登録時につかない割引を序した形で申込断面XMLを作成します。
			//------------------------------------------------------------------------------------

			// 検索結果格納用マップを生成。
			HashMap<Object, Object> outputMap = new HashMap<Object, Object>();
	
			// ●ユースケースIDを設定
			HashMap<String, String> paramMap = new HashMap<String, String>(16);
			paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_FUSV0274);
	
			HashMap<String, Object> dataMap = new HashMap<String, Object>();
	
			// ●上りマッピング
			setFUSV027401CC(bean, dataMap);	//JFUAddDchskmCdCC データ抽出項目コード登録部品 チェック
			setFUSV027402CC(bean, dataMap);	//JFUAddWribSvcCdCC 割引サービス登録部品 チェック
			setFUSV027403CC(bean, dataMap);	//その他情報
	
			try
			{
				bl.invokeService(paramMap, dataMap, outputMap);
			}
			catch (JCCWebServiceException jwse)
			{
				// 例外情報を取得
				X31CMessageResult msgResult = jwse.getMessageList();
				X31CMessageMoreInfo[] moreInfo = msgResult.getMessageMoreInfoList();
				X31CMessageMoreInfo info = moreInfo[0];// 関連チェック系は必ずエラーが1つのため0番目から取得する。
				X31SWebLog.DEBUG_LOG.info("JFUMskmDmenMappingUtil(setMskmDmenXmlMap):その他：エラー詳細(サービスIF)：" + info.getTemplateId());
				X31SWebLog.DEBUG_LOG.info("JFUMskmDmenMappingUtil(setMskmDmenXmlMap):その他：エラー詳細(ステータス)：" + info.getStatus());
				X31SWebLog.DEBUG_LOG.info("JFUMskmDmenMappingUtil(setMskmDmenXmlMap):その他：エラー詳細(エラー項目名)：" + info.getItemId());
				X31SWebLog.DEBUG_LOG.info("JFUMskmDmenMappingUtil(setMskmDmenXmlMap):その他：エラー詳細(エラーフラグ)：" + info.getItemCheckErr());
	
				// システムエラー
				throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
			}
	
			// ●下りマッピング
			getFUSV0274CC(bean, outputMap);
			
			//------------------------------------------------------------------------------------
			// 汎用コードのマージ処理
			// 汎用コードが同じものが複数ある場合は、後に入っているものはリストから削除する。
			//------------------------------------------------------------------------------------
			margeHanyoInfoBean(bean);
		}
		
		

		//----------------------------------------------
		// 項目名⇒項目ID変換用オブジェクト取得
		//----------------------------------------------
		// フォームオブジェクト(共有フォームBeanの場合、null)
		X31SSession session = bl.getSession();
		X31GServiceForm form = session.getServiceForm(session.getViewParamId().getPageID(), bl.getCurrentID().getFormID(), null);

		//----------------------------------------------
		// ROOT項目のBean情報取得
		//----------------------------------------------
		if (rootBeanNmPath != null)
		{
			// 項目名パスから項目IDパスを取得
			rootBeanIDPath = getItemIdPath(session, form, rootBeanNmPath, isCommonInfoBean);
			// ROOTのBeanIDを取得
			rootBeanId = getLastBeanId(rootBeanIDPath);
			// ROOTBean用マップを生成
			rootMap = new HashMap<String, Object>();
			// 申込断面マップにROOTBean用マップを格納
			mskmDmenXmlMap.put(rootBeanId, rootMap);
			// ROOTパスを初期設定
			tmpNmPath.append(rootBeanNmPath);
			// 申込断面RootBeanを設定
			rootBean = JFUWebCommon.getDataBeanTypeByPath(bean, rootBeanNmPath);
		}
		else
		{
			// 申込断面RootBean=共有フォームBean/サービスフォームBean
			rootBean = bean;
			rootMap = mskmDmenXmlMap;
		}
		//		DEBUG_LOG.debug("【ROOT項目】パス：" + rootBeanIDPath);
		//		DEBUG_LOG.debug("【ROOT項目】ＩＤ：" + rootBeanId);

		//----------------------------------------------
		// 除外リストnullチェック
		//----------------------------------------------
		ArrayList<String> excludeBeanNmListCopy = null;
		if (excludeBeanNmList == null)
		{
			excludeBeanNmListCopy = new ArrayList<String>(0);
		}
		else
		{
			excludeBeanNmListCopy = excludeBeanNmList;
		}

		//----------------------------------------------
		// Bean情報格納処理
		//----------------------------------------------
		// Bean値をマップに設定
		setBeanItemToMap(rootBean, tmpNmPath.toString(), rootMap, excludeBeanNmListCopy, session, form, isCommonInfoBean);

		//----------------------------------------------
		// 申込断面XMLマップを格納
		//----------------------------------------------
		outMap.put(JFUStrConst.MSKM_DMEN_XMLCC_MAP_NM, mskmDmenXmlMap);

		
		//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
		//  共有フォームBeanの復元
		//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
		//--------------------------------------------------------------------------------------------
		// ★申込断面ＸＭＬの作成前の状態に戻します。
		//--------------------------------------------------------------------------------------------
		//----------------------------------------------
		// 共有フォームBeanの場合のみ割引をチェックする。
		//----------------------------------------------
//TODO:退避値を戻す
		if (isCommonInfoBean)
		{
			//------------------------------------------------------------------------------------
			// 退避していた汎用コードリストを戻す
			//------------------------------------------------------------------------------------
			// WEB新規情報取得
			hanyoInfoBeanList = cfWebNewInfo.getDataBeanArray(CommonInfoCFConst.HANYO_CD_LIST);
			// 初期化
			hanyoInfoBeanList.clearArray();
			X31SDataBeanAccess hanyoInfoBean = null;
			for (int i = 0; i < tmpList.size(); i++)
			{
				hanyoInfoBean = hanyoInfoBeanList.addDataBean();
				
				HashMap<String, Object> tempMap = (HashMap<String, Object>)tmpList.get(i);
				
				// 汎用コード
				hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_CD_46, X31CWebConst.DATABEAN_SET_VALUE, (String)tempMap.get(CommonInfoCFConst.HANYO_CD_46));
				// 汎用表示用コード
				hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_DSP_CD_46, X31CWebConst.DATABEAN_SET_VALUE, (String)tempMap.get(CommonInfoCFConst.HANYO_DSP_CD_46));
				// 汎用名称
				hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_NM_46, X31CWebConst.DATABEAN_SET_VALUE, (String)tempMap.get(CommonInfoCFConst.HANYO_NM_46));
				// 汎用種別コードを設定
				hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_SBT_CD_46, X31CWebConst.DATABEAN_SET_VALUE, (String)tempMap.get(CommonInfoCFConst.HANYO_SBT_CD_46));
				// 受付開始日
				hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_STA_DTM_46, X31CWebConst.DATABEAN_SET_VALUE, (String)tempMap.get(CommonInfoCFConst.HANYO_STA_DTM_46));
				// 受付終了日
				hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_END_DTM_46, X31CWebConst.DATABEAN_SET_VALUE, (String)tempMap.get(CommonInfoCFConst.HANYO_END_DTM_46));
			}
		}
		
		//----------------------------------------------------------------------------------
		// 共有フォームBean 「eo光ネット」を戻す
		//-----------------------------------------------------------------------------------
		bnNetinfo.sendMessageString(CommonInfoCFConst.NET_COURSE_11, X31CWebConst.DATABEAN_SET_VALUE, net_course);

		//----------------------------------------------------------------------------------
		// スマリンキャンペーンの「タブレット端末-ご希望のキャンペーン」の設定文言を戻す
		//-----------------------------------------------------------------------------------
		bnNetinfo.sendMessageString(CommonInfoCFConst.TABLET_TANMT_CAMPAIGN_NM_11, X31CWebConst.DATABEAN_SET_VALUE, tabletTanmtCampaignNm);
		
// IT2-2017-0000014 ADD START
		//-------------------------------------------------------
		// 共有フォームBean 「リモートサポート」の設定値を戻す
		//-------------------------------------------------------
		bnNetinfo.sendMessageString(CommonInfoCFConst.RMTSPRT_MSKM_55, X31CWebConst.DATABEAN_SET_VALUE, rmtsprtMskm);
// IT2-2017-0000014 ADD END
// ANK-3217-00-00 ADD START
		//-------------------------------------------------------
		// 共有フォームBean 「タブレット端末」の設定値を戻す
		//-------------------------------------------------------
		bnNetinfo.sendMessageString(CommonInfoCFConst.TABLET_TANMT_11, X31CWebConst.DATABEAN_SET_VALUE, tabletTanmt);
		
		//-------------------------------------------------------
		// 共有フォームBean 「タブレット端末−端末名」の設定値を戻す
		//-------------------------------------------------------
		bnNetinfo.sendMessageString(CommonInfoCFConst.TABLET_TANMT_NM_SCREEN_11, X31CWebConst.DATABEAN_SET_VALUE, tabletTanmtNmScreen);
		
		//-------------------------------------------------------
		// 共有フォームBean 「タブレット端末−支払方法」の設定値を戻す
		//-------------------------------------------------------
		bnNetinfo.sendMessageString(CommonInfoCFConst.TABLET_TANMT_PAYWAY_11, X31CWebConst.DATABEAN_SET_VALUE, tabletTanmtPayway);
// ANK-3217-00-00 ADD END
		
		//-------------------------------------------------------
		// 共有フォームBean 「利用場所情報.建物名」の設定値を戻す
		//-------------------------------------------------------
		if (JFUStrConst.HIKARIKA_MANS_FLG_1.equals(hikarikaMansFlg) && !JFUWebCommon.isNull(tmpUseplaceTtm))
		{
			bnRiyobasho.sendMessageString(CommonInfoCFConst.USEPLACE_TTM_08, X31CWebConst.DATABEAN_SET_VALUE, tmpUseplaceTtm);
		}

		//------------------------------------------------------------------------------------
		// 共有フォームBean 「その他情報.早期開通早期連絡希望有無」の設定値を戻す
		//------------------------------------------------------------------------------------
		elseInfoBean.sendMessageString(CommonInfoCFConst.TSYRN_EARLY_OPEN_EARLY_RRK_KBUM_SCREEN_18, X31CWebConst.DATABEAN_SET_VALUE,
				tsyrnEarlyOpenEarlyRrkKbumScreen);

		//------------------------------------------------------------------------------------
		// 共有フォームBean 「その他情報.宅内調査のアポ架電希望」の設定値を戻す
		//------------------------------------------------------------------------------------
		elseInfoBean.sendMessageString(CommonInfoCFConst.TAKCHO_APO_KADEN_KIBO_UM_SCREEN_18, X31CWebConst.DATABEAN_SET_VALUE,
				takchoApoKadenKiboUmScreen);

	}

	/**
	 * Bean情報格納処理
	 * <br>
	 * @param tmpBean 処理対象Bean
	 * @param parentNmPath 親項目名パス
	 * @param tmpMap 処理対象Beanの値を格納するマップ
	 * @param excludeBeanNmList 除外するデータタイプBeanパス
	 * @param session セッションオブジェクト
	 * @param form フォームオブジェクト
	 * @param isCommonInfoBean 共有フォームBeanの場合:true/サービスフォームBeanの場合:false
	 * @return 編集後マップ
	 */
	private static HashMap<String, Object> setBeanItemToMap(X31SDataBeanAccess tmpBean, String parentNmPath, HashMap<String, Object> tmpMap,
			ArrayList<String> excludeBeanNmList, X31SSession session, X31GServiceForm form, boolean isCommonInfoBean)
	{
		//		DEBUG_LOG.debug("【親項目名パス】" + parentNmPath);

		X31SDataBeanAccessArray beanArray = null;

		StringBuilder tmpNmPath = new StringBuilder();

		//----------------------------------------------
		// RootBean項目名一覧を取得
		//----------------------------------------------
		String[] itemNmList = tmpBean.getItemNameList();

		for (String itemName : itemNmList)
		{
			//----------------------------------------------
			// 初期化
			//----------------------------------------------
			beanArray = null;

			//tmpNmPath = new StringBuilder();
			tmpNmPath.setLength(0);

			// 現在の項目名パスを編集([親項目パス/][項目名]/)
			tmpNmPath = tmpNmPath.append(parentNmPath).append(itemName).append(X31GWebFormEventResolver.ITEMPATH_DELIM);

			// 項目IDを取得
			String itemId = getLastItemId(getItemIdPath(session, form, tmpNmPath.toString(), isCommonInfoBean));

			String type = JFUWebFormEventResolver.getItemType(COMMONINFOBEAN_PATH_PREFIX + parentNmPath + itemName, form, session, null);
			// DEBUG_LOG.debug("【項目名】" + itemName+"【type】"+type);

			//----------------------------------------------
			// データタイプBeanの場合
			//----------------------------------------------
			if (JFUWebFormEventResolver.ITEMTYPE_CF_DATATYPEBEAN_ARRAY.equals(type))
			{
				// データBeanアクセスクラスリストを取得
				beanArray = getBeanArray(tmpBean, itemName);
				// 要素が無い場合、または除外Beanの場合はスキップ
				if ((beanArray.getCount() <= 0) || (excludeBeanNmList.contains(itemName)))
				{
					continue;
				}
				// 子リストを生成
				ArrayList<HashMap<String, Object>> childList = new ArrayList<HashMap<String, Object>>();

				for (int i = 0; i < beanArray.getCount(); i++)
				{
					// 現在の項目名パスを編集([親項目パス/][項目名]/i/)
					tmpNmPath.setLength(0);

					tmpNmPath =
							tmpNmPath.append(parentNmPath).append(itemName).append(X31GWebFormEventResolver.ITEMPATH_DELIM).append(i).append(
									X31GWebFormEventResolver.ITEMPATH_DELIM);

					// データタイプBean用マップを生成
					HashMap<String, Object> childMap = new HashMap<String, Object>();
					// データタイプBean値を処理
					setBeanItemToMap(beanArray.getDataBean(i), tmpNmPath.toString(), childMap, excludeBeanNmList, session, form, isCommonInfoBean);
					// 編集後マップを子リストに格納
					childList.add(childMap);
				}

				// 項目IDをキーに子リストをマップに格納
				tmpMap.put(itemId, childList);

			//----------------------------------------------
			// データタイプBeanでない場合
			//----------------------------------------------
			}
			else
			{
				// 配列チェック処理
				if (checkArrayItem(parentNmPath, itemName))
				{
					//----------------------------------------------
					// 配列項目
					//----------------------------------------------
					setItemListVal(tmpBean, itemName, itemId, tmpMap);
				}
				else
				{
					//----------------------------------------------
					// 通常項目
					//----------------------------------------------
					setItemVal(tmpBean, itemName, itemId, tmpMap);
				}

			}
		}

		// 編集後マップを返却
		return tmpMap;
	}

	/**
	 * 項目値設定(配列項目)
	 * <br>
	 * @param bean 申込断面Bean
	 * @param itemName 項目名
	 * @param itemId 項目ID
	 * @param valMap 対象マップ
	 */
	private static void setItemListVal(X31SDataBeanAccess bean, String itemName, String itemId, HashMap<String, Object> valMap)
	{
		// 配列型のデータ項目の要素数を取得
		int cnt = ((Integer)bean.sendMessage(itemName, X31CWebConst.DATABEAN_GET_COUNT)).intValue();

		// 項目が未設定の場合、処理なし
		if (cnt == 0)
		{
			return;
		}

		//----------------------------------------------
		// 項目値を格納したリストを編集し、マップに設定
		//----------------------------------------------
		// 子リストを生成
		ArrayList<HashMap<String, Object>> childList = new ArrayList<HashMap<String, Object>>();
		for (int i = 0; i < cnt; i++)
		{
			HashMap<String, Object> childMap = new HashMap<String, Object>();
			// 子マップに、配列項目IDをキーに値を格納 ※リストにはMapを格納しないとサービス層への通信でエラーが発生する
			childMap.put(itemId, bean.sendMessageObject(itemName, X31CWebConst.DATABEAN_GET_VALUE, i));
			// 子リストに格納
			childList.add(childMap);
		}

		// 項目IDをキーにマップに格納
		valMap.put(itemId, childList);

	}

	/**
	 * 項目値設定(通常項目)
	 * <br>
	 * @param bean 申込断面Bean
	 * @param itemName 項目名
	 * @param itemId 項目ID
	 * @param valMap 対象マップ
	 */
	private static void setItemVal(X31SDataBeanAccess bean, String itemName, String itemId, HashMap<String, Object> valMap)
	{
		// 項目値を取得
		Object itemVal = bean.sendMessageObject(itemName, X31CWebConst.DATABEAN_GET_VALUE);

		// 項目値が未設定の場合は、処理なし
		if (JFUWebCommon.isNull(itemVal))
		{
			return;
		}

		// 項目IDをキーにマップに格納
		valMap.put(itemId, itemVal);

	}

	/**
	 * 項目IDパス取得
	 * <br>
	 * @param session			セッションオブジェクト
	 * @param form				フォームオブジェクト
	 * @param itemNmPath		項目名パス（元）
	 * @param isCommonInfoBean	共有フォームBeanの場合:true/サービスフォームBeanの場合:false
	 * @return 項目IDパス
	 */
	private static String getItemIdPath(X31SSession session, X31GServiceForm form, String itemNmPath, boolean isCommonInfoBean)
	{
		// 項目名の項目パスを項目IDのパスに変換
		return X31GWebFormEventResolver.changeItemPathLang(session, form, itemNmPath, X31GWebFormEventResolver.ITEMPATH_TYPE_NAME, isCommonInfoBean);
	}

	/**
	 * データタイプBeanID取得
	 * <br>
	 * @param beanIdPath 項目IDパス
	 * @return 項目ID
	 */
	private static String getLastBeanId(String beanIdPath)
	{
		// 項目パスを分割文字で分割
		String[] itemIdPathArray = beanIdPath.split(X31GWebFormEventResolver.ITEMPATH_DELIM);
		// 一番最後は要素番号なので、最後から2番目の要素がターゲット項目ID
		return itemIdPathArray[itemIdPathArray.length - 2];
	}

	/**
	 * 項目ID取得
	 * <br>
	 * @param itemIdPath 項目IDパス
	 * @return 項目ID
	 */
	private static String getLastItemId(String itemIdPath)
	{
		// 項目パスを分割文字で分割
		String[] itemIdPathArray = itemIdPath.split(X31GWebFormEventResolver.ITEMPATH_DELIM);
		// 一番最後の要素がターゲット項目ID
		return itemIdPathArray[itemIdPathArray.length - 1];
	}

	/**
	 * 申込断面Bean取得
	 * <br>
	 * @param isCommonInfoBean	共有フォームBeanの場合:true/サービスフォームBeanの場合:false
	 * @param bl				VIEWロジックインスタンス
	 * @return 申込断面Bean
	 */
	private static X31SDataBeanAccess getMskmDmenBean(boolean isCommonInfoBean, X31BWebBusinessLogic bl)
	{
		// 共有フォームBeanの場合
		if (isCommonInfoBean)
		{
			return bl.getCommonInfoBean();
		}
		// サービスフォームBeanの場合
		else
		{
			return bl.getServiceFormBean();
		}
	}

	/**
	 * データタイプBean項目に対するデータBeanアクセスクラスリストを取得します。
	 * <br>
	 * @param bean		親データBean
	 * @param itemNm	項目名
	 * @return データBeanアクセスクラスリスト(itemNmで取得できない場合はnull)
	 */
	private static X31SDataBeanAccessArray getBeanArray(X31SDataBeanAccess bean, String itemNm)
	{

		X31SDataBeanAccessArray beanArray = null;

		try
		{
			// データBeanアクセスクラスリストを取得
			// -------------------------------------------------------
			// INFO:javadocに"エラーの場合、nullを返す"とあるが、
			// データタイプBean以外を指定した場合、例外が発生するため
			// try - catchする
			// -------------------------------------------------------
			beanArray = bean.getDataBeanArray(itemNm);
		}
		catch (X31SRuntimeException x31Re)
		{
			return null;
		}
		return beanArray;
	}

	/**
	 * 配列項目を判定します。
	 * <br>
	 * @param parentNmPath		親項目名パス
	 * @param itemNm			項目名
	 * @return 配列項目の場合はtrue／配列項目ではない場合はfalseを返却する。
	 */
	private static boolean checkArrayItem(String parentNmPath, String itemName)
	{
		boolean ret = false;

		// 配列項目を取得
		// -------------------------------------------------------
		// INFO:共有フォームビーンにString項目かつ要素数が可変の
		// 項目を追加した場合、下記条件に追加してください。
		// -------------------------------------------------------
		if ((parentNmPath.indexOf(CommonInfoCFConst.ELSE_INFO) != -1 && CommonInfoCFConst.HANYO_CD_18.equals(itemName))
				|| (parentNmPath.indexOf(CommonInfoCFConst.ELSE_INFO) != -1 && CommonInfoCFConst.HANYO_CD_KBN_18.equals(itemName))
				|| (parentNmPath.indexOf(CommonInfoCFConst.ENQUETE_RSLT_INFO) != -1 && CommonInfoCFConst.ENQUETE_CD_47.equals(itemName))
				|| (parentNmPath.indexOf(CommonInfoCFConst.EMAIL_SEND_INFO) != -1 && CommonInfoCFConst.MLAD_49.equals(itemName))
				|| (parentNmPath.indexOf(CommonInfoCFConst.EMAIL_SEND_INFO) != -1 && CommonInfoCFConst.MLAD_SET_FIELD_CD_49.equals(itemName))
				|| (parentNmPath.indexOf(CommonInfoCFConst.EMAIL_SEND_INFO) != -1 && CommonInfoCFConst.TEXT_HTK_CKAM_MOJI_49.equals(itemName))
				|| (parentNmPath.indexOf(CommonInfoCFConst.EMAIL_SEND_INFO) != -1 && CommonInfoCFConst.DTL_TEXT_HTK_CKAM_MOJI_49.equals(itemName))
				|| (parentNmPath.indexOf(CommonInfoCFConst.MANSION_INFO) != -1 && CommonInfoCFConst.NET_MANS_CAMPAIGN_CD_16.equals(itemName))
				|| (parentNmPath.indexOf(CommonInfoCFConst.MANSION_INFO) != -1 && CommonInfoCFConst.NET_MANSION_WRIB_SVC_KEI_NO_16.equals(itemName))
				|| (parentNmPath.indexOf(CommonInfoCFConst.MANSION_INFO) != -1 && CommonInfoCFConst.TV_MANS_CAMPAIGN_CD_16.equals(itemName))
				|| (parentNmPath.indexOf(CommonInfoCFConst.MANSION_INFO) != -1 && CommonInfoCFConst.TV_MANSION_WRIB_SVC_KEI_NO_16.equals(itemName))
			|| (parentNmPath.indexOf(CommonInfoCFConst.MANSION_INFO) != -1 && CommonInfoCFConst.MANS_WRIB_SVC_CD_16.equals(itemName)))
		{
			ret = true;
		}

		return ret;
	}
	
	/**
	 * サービス契約＜eo光ネット＞登録上りマッピングをする
	 * 
	 * @param bean
	 *            　[0]：共有フォームビーン　[1]：入力内容確認
	 * @param outputMap
	 * @param func_code
	 *            　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public static HashMap setEKK0091D010(X31SDataBeanAccess commonInfoBean, HashMap outputMap, String func_code)
	{

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// WEB新規情報
		X31SDataBeanAccess bnWebinfo = getWebInfo(commonInfoBean);
		// 光ネット
		X31SDataBeanAccess bnEonet = getEonet(bnWebinfo);
		// マンション情報
		X31SDataBeanAccess bnMansioninfo = getMansioninfo(bnWebinfo);

		// サービスコード
		parentMap.put("svc_cd", JFUStrConst.CD00130_01);

		// ホームタイプ
		if (bnWebinfo.sendMessageString(CommonInfoCFConst.MSKM_KSN_SVC_06, X31CWebConst.DATABEAN_GET_VALUE).equals(JFUStrConst.MSKM_KSN_SVC_HOME))
		{
			// 料金グループコード
			parentMap.put("prc_grp_cd", JFUStrConst.CD00133_02);

			String netCourse = bnEonet.sendMessageString(CommonInfoCFConst.NET_COURSE_11, X31CWebConst.DATABEAN_GET_VALUE);
			// 料金コースコード
			parentMap.put("pcrs_cd_o", JFUWebCommon.getPcrsCdHomeNet(netCourse));
			// 料金プランコード
			parentMap.put("pplan_cd_o", JFUWebCommon.getPplanCdHomeNet(netCourse));
		}
		// メゾンタイプ
		else if (bnWebinfo.sendMessageString(CommonInfoCFConst.MSKM_KSN_SVC_06, X31CWebConst.DATABEAN_GET_VALUE).equals(
				JFUStrConst.MSKM_KSN_SVC_MANSION)
				&& bnWebinfo.sendMessageString(CommonInfoCFConst.MSKM_MNS_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE).equals(
						JFUStrConst.MSKM_MNS_TYPE_MEZON))
		{
			// 料金グループコード
			parentMap.put("prc_grp_cd", JFUStrConst.CD00133_03);

			String netCourse = bnEonet.sendMessageString(CommonInfoCFConst.NET_COURSE_11, X31CWebConst.DATABEAN_GET_VALUE);
			// 料金コースコード
			parentMap.put("pcrs_cd_o", JFUWebCommon.getPcrsCdMezonNet(netCourse));
			// 料金プランコード
			parentMap.put("pplan_cd_o", JFUWebCommon.getPplanCdMezonNet(netCourse));
		}
		// マンションタイプ
		else if (bnWebinfo.sendMessageString(CommonInfoCFConst.MSKM_KSN_SVC_06, X31CWebConst.DATABEAN_GET_VALUE).equals(
				JFUStrConst.MSKM_KSN_SVC_MANSION)
				&& bnWebinfo.sendMessageString(CommonInfoCFConst.MSKM_MNS_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE).equals(
						JFUStrConst.MSKM_MNS_TYPE_MANSION))
		{
			// 料金グループコード
			parentMap.put("prc_grp_cd", JFUStrConst.CD00133_04);
			if (bnEonet.sendMessageString(CommonInfoCFConst.NET_COURSE_11, X31CWebConst.DATABEAN_GET_VALUE).equals(JFUStrConst.NET_COURSE_100M))
			{
				// マンションタイプ100Ｍ
				if (bnMansioninfo.sendMessageString(CommonInfoCFConst.TEIKYO_HOSHIKI_PTN_CD_16, X31CWebConst.DATABEAN_GET_VALUE).equals(
						JFUStrConst.TK_HOSHIKI_PTN_VDSL)
						|| bnMansioninfo.sendMessageString(CommonInfoCFConst.TEIKYO_HOSHIKI_PTN_CD_16, X31CWebConst.DATABEAN_GET_VALUE).equals(
								JFUStrConst.TK_HOSHIKI_PTN_VDSLS))
				{
					// 提供方式コードがVDSL または VDSL-Sの場合
					String tkHoshiki = bnMansioninfo.sendMessageString(CommonInfoCFConst.TEIKYO_HOSHIKI_CD_16, X31CWebConst.DATABEAN_GET_VALUE);
					String pcrsCd = "";
					String pplanCd = "";
					// 提供方式コードが"004"VDSL2の場合
					if (tkHoshiki.equals(JFUStrConst.TK_HOSHIKI_VDSL2))
					{
						pcrsCd = JFUStrConst.CD00134_A50;
						pplanCd = JFUStrConst.CD00565_PA5001;
					}
					// 提供方式コードが"005"VDSL3の場合
					else if (tkHoshiki.equals(JFUStrConst.TK_HOSHIKI_VDSL3))
					{
						pcrsCd = JFUStrConst.CD00134_A51;
						pplanCd = JFUStrConst.CD00565_PA5101;
					}
					// 提供方式コードが"006"VDSL4の場合
					else if (tkHoshiki.equals(JFUStrConst.TK_HOSHIKI_VDSL4))
					{
						pcrsCd = JFUStrConst.CD00134_A52;
						pplanCd = JFUStrConst.CD00565_PA5201;
					}
					// 提供方式コードが"007"VDSL5の場合
					else if (tkHoshiki.equals(JFUStrConst.TK_HOSHIKI_VDSL5))
					{
						pcrsCd = JFUStrConst.CD00134_A53;
						pplanCd = JFUStrConst.CD00565_PA5301;
					}
					// 料金コースコード
					parentMap.put("pcrs_cd_o", pcrsCd);
					// 料金プランコード
					parentMap.put("pplan_cd_o", pplanCd);
				}
				else if (bnMansioninfo.sendMessageString(CommonInfoCFConst.TEIKYO_HOSHIKI_PTN_CD_16, X31CWebConst.DATABEAN_GET_VALUE).equals(
						JFUStrConst.TK_HOSHIKI_PTN_ENET)
						|| bnMansioninfo.sendMessageString(CommonInfoCFConst.TEIKYO_HOSHIKI_PTN_CD_16, X31CWebConst.DATABEAN_GET_VALUE).equals(
								JFUStrConst.TK_HOSHIKI_PTN_GG_ENET))
				{
					// 提供方式コードがイーサネットの場合
					parentMap.put("pcrs_cd_o", JFUStrConst.CD00134_A54);
					// 料金プランコード
					parentMap.put("pplan_cd_o", JFUStrConst.CD00565_PA5401);
				}
				else if (bnMansioninfo.sendMessageString(CommonInfoCFConst.TEIKYO_HOSHIKI_PTN_CD_16, X31CWebConst.DATABEAN_GET_VALUE).equals(
						JFUStrConst.TK_HOSHIKI_PTN_HIKARI_HAISEN))
				{
					// 提供方式コードが光回線の場合
					parentMap.put("pcrs_cd_o", JFUStrConst.CD00134_A56);
					// 料金プランコード
					parentMap.put("pplan_cd_o", JFUStrConst.CD00565_PA5601);
				}
			}
			else if ((JFUWebCommon.isTkHosikiChgSbtCd(bnMansioninfo))
					&& bnEonet.sendMessageString(CommonInfoCFConst.NET_COURSE_11, X31CWebConst.DATABEAN_GET_VALUE).equals(JFUStrConst.NET_COURSE_5G)
					|| bnEonet.sendMessageString(CommonInfoCFConst.NET_COURSE_11, X31CWebConst.DATABEAN_GET_VALUE).equals(JFUStrConst.NET_COURSE_10G))
			{
				// 料金コースと棟内速度コードが異なるもの（光回線）
				parentMap.put("pcrs_cd_o", JFUStrConst.CD00134_A57);
				// 料金プランコード
				parentMap.put("pplan_cd_o", JFUStrConst.CD00565_PA5701);
			}
			else if (bnEonet.sendMessageString(CommonInfoCFConst.NET_COURSE_11, X31CWebConst.DATABEAN_GET_VALUE).equals(JFUStrConst.NET_COURSE_1G))
			{
				// マンションタイプ1ギガ
				if (bnMansioninfo.sendMessageString(CommonInfoCFConst.TEIKYO_HOSHIKI_PTN_CD_16, X31CWebConst.DATABEAN_GET_VALUE).equals(
						JFUStrConst.TK_HOSHIKI_PTN_ENET)
						|| bnMansioninfo.sendMessageString(CommonInfoCFConst.TEIKYO_HOSHIKI_PTN_CD_16, X31CWebConst.DATABEAN_GET_VALUE).equals(
								JFUStrConst.TK_HOSHIKI_PTN_GG_ENET))
				{
					// 提供方式コードがギガイーサの場合
					parentMap.put("pcrs_cd_o", JFUStrConst.CD00134_A55);
					// 料金プランコード
					parentMap.put("pplan_cd_o", JFUStrConst.CD00565_PA5501);
				}
				// 光配線１ギガ
				else if (bnMansioninfo.sendMessageString(CommonInfoCFConst.TEIKYO_HOSHIKI_PTN_CD_16, X31CWebConst.DATABEAN_GET_VALUE).equals(
						JFUStrConst.TK_HOSHIKI_PTN_HIKARI_HAISEN))
				{
					parentMap.put("pcrs_cd_o", JFUStrConst.CD00134_A57);
					// 料金プランコード
					parentMap.put("pplan_cd_o", JFUStrConst.CD00565_PA5701);
				}
			}
			else if (bnEonet.sendMessageString(CommonInfoCFConst.NET_COURSE_11, X31CWebConst.DATABEAN_GET_VALUE).equals(JFUStrConst.NET_COURSE_10G))
			{
				// マンションタイプ10ギガ

				// 光配線１０ギガ
				parentMap.put("pcrs_cd_o", JFUStrConst.CD00134_A74);
				// 料金プランコード
				parentMap.put("pplan_cd_o", JFUStrConst.CD00565_PA7401);
			}
			else if (bnEonet.sendMessageString(CommonInfoCFConst.NET_COURSE_11, X31CWebConst.DATABEAN_GET_VALUE).equals(
					JFUStrConst.NET_COURSE_100M_LIGHT))
			{
				/**
				 * 100Mライトの場合
				 */

				String tkHoshiki = bnMansioninfo.sendMessageString(CommonInfoCFConst.TEIKYO_HOSHIKI_CD_16, X31CWebConst.DATABEAN_GET_VALUE);

				if (tkHoshiki.equals(JFUStrConst.TK_HOSHIKI_HIKARI_HAISEN))
				{
					/**
					 * 光配線の場合
					 */
					// 料金コースコード
					parentMap.put("pcrs_cd_o", JFUStrConst.CD00134_A56);
					// 料金プランコード
					parentMap.put("pplan_cd_o", JFUStrConst.CD00565_PA5611);
				}
			}
		}

		outputMap.put("EKK0091D010", parentMap);

		return outputMap;
	}

	/**
	 * サービス契約＜eo光電話＞登録マップの上りマッピングをする
	 * 
	 * @param bean　[0]：共有フォームビーン　[1]：入力内容確認
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public static HashMap setEKK0111D010(X31SDataBeanAccess bean, HashMap outputMap, String func_code)
	{

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// WEB新規情報
		X31SDataBeanAccess bnWebinfo = getWebInfo(bean);
		// マンション情報
		X31SDataBeanAccess bnMansioninfo = getMansioninfo(bnWebinfo);

		// サービスコード
		parentMap.put("svc_cd", JFUStrConst.CD00130_02);
		// 料金グループコード
		parentMap.put("prc_grp_cd", JFUStrConst.CD00133_10);

		// 共有フォームBean.電話コースが1:1番号サービスの場合
		if (bnWebinfo.sendMessageString(CommonInfoCFConst.TEL_COURSE_06, X31CWebConst.DATABEAN_GET_VALUE) != null)
		{
			if (bnWebinfo.sendMessageString(CommonInfoCFConst.TEL_COURSE_06, X31CWebConst.DATABEAN_GET_VALUE).equals(
					JFUStrConst.TEL_COURSE_1BANGOU_SVC))
			{
				// 1番号コース
				// 料金コースコード
				parentMap.put("pcrs_cd", JFUStrConst.CD00134_A31);

				if (bnWebinfo.sendMessageString(CommonInfoCFConst.MSKM_KSN_SVC_06, X31CWebConst.DATABEAN_GET_VALUE).equals(
						JFUStrConst.MSKM_KSN_SVC_MANSION))
				{
					/**
					 * マンション
					 */
					if (bnWebinfo.sendMessageString(CommonInfoCFConst.MSKM_MNS_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE).equals(
							JFUStrConst.MSKM_MNS_TYPE_MANSION))
					{
						/**
						 * マンション
						 */
						if (JFUStrConst.TK_HOSHIKI_PTN_HIKARI_HAISEN.equals(bnMansioninfo.sendMessageString(
								CommonInfoCFConst.TEIKYO_HOSHIKI_PTN_CD_16, X31CWebConst.DATABEAN_GET_VALUE))) // IT1-2012-0001766 OTsuka Chenge 2012/11/02
						{
							/**
							 * 光配線
							 */
							// 料金プランコード
							parentMap.put("pplan_cd", JFUStrConst.CD00565_PA3104);
						}
						else
						{
							/**
							 * 光配線以外
							 */
							// 料金プランコード
							parentMap.put("pplan_cd", JFUStrConst.CD00565_PA3102);
						}

					}
					else
					{
						/**
						 * メゾン
						 */
						// 料金プランコード
						parentMap.put("pplan_cd", JFUStrConst.CD00565_PA3103);
					}
				}
				else
				{
					/**
					 * ホーム
					 */
					// 料金プランコード
					parentMap.put("pplan_cd", JFUStrConst.CD00565_PA3101);
				}
			}
			// 共有フォームBean.電話コースが2:2番号サービスの場合
			else if (bnWebinfo.sendMessageString(CommonInfoCFConst.TEL_COURSE_06, X31CWebConst.DATABEAN_GET_VALUE).equals(
					JFUStrConst.TEL_COURSE_2BANGOU_SVC))
			{
				// 2番号コース
				// 料金コースコード
				parentMap.put("pcrs_cd", JFUStrConst.CD00134_A32);
				if (bnWebinfo.sendMessageString(CommonInfoCFConst.MSKM_KSN_SVC_06, X31CWebConst.DATABEAN_GET_VALUE).equals(
						JFUStrConst.MSKM_KSN_SVC_MANSION))
				{
					/**
					 * マンション
					 */
					if (bnWebinfo.sendMessageString(CommonInfoCFConst.MSKM_MNS_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE).equals(
							JFUStrConst.MSKM_MNS_TYPE_MANSION))
					{
						/**
						 * マンション
						 */
						if (JFUStrConst.TK_HOSHIKI_PTN_HIKARI_HAISEN.equals(bnMansioninfo.sendMessageString(
								CommonInfoCFConst.TEIKYO_HOSHIKI_PTN_CD_16, X31CWebConst.DATABEAN_GET_VALUE)))// IT1-2012-0001766 OTsuka Chenge 2012/11/02
						{
							/**
							 * 光配線
							 */
							// 料金プランコード
							parentMap.put("pplan_cd", JFUStrConst.CD00565_PA3204);
						}
						else
						{
							/**
							 * 光配線以外
							 */
							// 料金プランコード
							parentMap.put("pplan_cd", JFUStrConst.CD00565_PA3202);
						}
					}
					else
					{
						/**
						 * メゾン
						 */
						// 料金プランコード
						parentMap.put("pplan_cd", JFUStrConst.CD00565_PA3203);
					}
				}
				else
				{
					/**
					 * ホーム
					 */
					// 料金プランコード
					parentMap.put("pplan_cd", JFUStrConst.CD00565_PA3201);
				}
			}
		}

		outputMap.put("EKK0111D010", parentMap);

		return outputMap;
	}

	/**
	 * サービス契約＜eo光TV＞登録マップの上りマッピングをする
	 * 
	 * @param bean　[0]：共有フォームビーン　[1]：入力内容確認
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public static HashMap setEKK0101D010(X31SDataBeanAccess bean, HashMap outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// WEB新規情報
		X31SDataBeanAccess bnWebinfo = getWebInfo(bean);
		// 光TV
		X31SDataBeanAccess bnEotv = getEotv(bnWebinfo);

		// サービスコード
		parentMap.put("svc_cd", JFUStrConst.CD00130_03);

		// 共有フォームBean.テレビコースが1:eo光テレビ(KCAT)の場合
		if (bnEotv.sendMessageString(CommonInfoCFConst.TV_COURSE_13, X31CWebConst.DATABEAN_GET_VALUE).equals(JFUStrConst.TV_COURSE_KCAT))
		{
			// 料金グループコード
			parentMap.put("prc_grp_cd", JFUStrConst.CD00133_11);
			if (JFUStrConst.EO_TV_COURSE_BS.equals(bnEotv.sendMessageString(CommonInfoCFConst.EO_TV_COURSE_13, X31CWebConst.DATABEAN_GET_VALUE))
					|| JFUStrConst.EO_TV_COURSE_BS_STAR.equals(bnEotv.sendMessageString(CommonInfoCFConst.EO_TV_COURSE_13, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				// 地デジＢＳ
				// 料金コースコード
				parentMap.put("pcrs_cd", JFUStrConst.CD00134_A37);
				// 料金プランコード
				parentMap.put("pplan_cd", JFUStrConst.CD00565_PA3701);
			}
			else if (bnEotv.sendMessageString(CommonInfoCFConst.EO_TV_COURSE_13, X31CWebConst.DATABEAN_GET_VALUE).equals(
					JFUStrConst.EO_TV_COURSE_BASIC))
			{
				// ＨＤ
				// 料金コースコード
				parentMap.put("pcrs_cd", JFUStrConst.CD00134_A39);
				// 料金プランコード
				parentMap.put("pplan_cd", JFUStrConst.CD00565_PA3901);
			}
// ANK-4592-00-00 ADD START
			else if (bnEotv.sendMessageString(CommonInfoCFConst.EO_TV_COURSE_13, X31CWebConst.DATABEAN_GET_VALUE).equals(
					JFUStrConst.EO_TV_COURSE_CS_PRE))
			{
				// CSプレミアム
				// 料金コースコード
				parentMap.put("pcrs_cd", JFUStrConst.CD00134_AC1);
				// 料金プランコード
				parentMap.put("pplan_cd", JFUStrConst.CD00565_PAC101);
			}
			else if (bnEotv.sendMessageString(CommonInfoCFConst.EO_TV_COURSE_13, X31CWebConst.DATABEAN_GET_VALUE).equals(
					JFUStrConst.EO_TV_COURSE_CS_BAS))
			{
				// CSベーシック
				// 料金コースコード
				parentMap.put("pcrs_cd", JFUStrConst.CD00134_AC0);
				// 料金プランコード
				parentMap.put("pplan_cd", JFUStrConst.CD00565_PAC001);
			}
// ANK-4592-00-00 ADD END
		}
		// 共有フォームBean.テレビコースが2:eo光テレビ(KCN)の場合
		else if (bnEotv.sendMessageString(CommonInfoCFConst.TV_COURSE_13, X31CWebConst.DATABEAN_GET_VALUE).equals(JFUStrConst.TV_COURSE_KCN))
		{
			// 料金グループコード
			parentMap.put("prc_grp_cd", JFUStrConst.CD00133_12);
			// 料金コースコード A25　ＫＣＮeo光テレビ（役務提供）
			parentMap.put("pcrs_cd", JFUStrConst.CD00134_A25);
			// 料金プランコード
			parentMap.put("pplan_cd", JFUStrConst.CD00565_PA2501);
		}

		outputMap.put("EKK0101D010", parentMap);

		return outputMap;
	}

	/**
	 * サービス契約＜ｅｏモバイル＞登録マップの上りマッピングをする
	 * 
	 * @param bean[0]：共有フォームビーン　[1]：入力内容確認
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public static HashMap setEKK0121D010(X31SDataBeanAccess bean, HashMap outputMap, String func_code)
	{

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		// WEB新規情報
		X31SDataBeanAccess bnWebinfo = getWebInfo(bean);
		// リダイレクト情報
		X31SDataBeanAccess bnRedirectinfo = getRedirectinfo(bnWebinfo);
		// モバイル
		X31SDataBeanAccess bnEomobie = getMobile(bnWebinfo);

		// SYSID
		parentMap.put("sysid", bnWebinfo.sendMessageString(CommonInfoCFConst.SYSID_06, X31CWebConst.DATABEAN_GET_VALUE));
		// サービスコード（ 01（インターネットサービス））
		parentMap.put("svc_cd", JFUStrConst.CD00130_01);
		// 料金グループコード(共有フォームBean.モバイルコースにより設定）
		//1: WiFiの場合
		if (bnEomobie.sendMessageString(CommonInfoCFConst.MOBILE_COURSE_14, X31CWebConst.DATABEAN_GET_VALUE).equals(JFUStrConst.MOBILE_COURSE_WIFI))
		{
			// 料金グループコード
			parentMap.put("prc_grp_cd", JFUStrConst.CD00133_07);
			// 料金コースコード
			parentMap.put("pcrs_cd", JFUStrConst.CD00134_A30);
			// 料金プランコード
			parentMap.put("pplan_cd", JFUStrConst.CD00565_PA3001);
			// 5: WiMAXの場合
		}
		else if (bnEomobie.sendMessageString(CommonInfoCFConst.MOBILE_COURSE_14, X31CWebConst.DATABEAN_GET_VALUE).equals(
				JFUStrConst.MOBILE_COURSE_WIMAX))
		{
			// 料金グループコード
			parentMap.put("prc_grp_cd", JFUStrConst.CD00133_09);
			// 料金コースコード
			if (bnRedirectinfo.sendMessageString(CommonInfoCFConst.RED_WIMAXROM_17, X31CWebConst.DATABEAN_GET_VALUE).equals(
					JFUStrConst.WIMAXROM_BLACK))
			{
				// 黒ロム
				parentMap.put("pcrs_cd", JFUStrConst.CD00134_A28);
				// 料金プランコード
				parentMap.put("pplan_cd", JFUStrConst.CD00565_PA2801);
			}
			else if (bnRedirectinfo.sendMessageString(CommonInfoCFConst.RED_WIMAXROM_17, X31CWebConst.DATABEAN_GET_VALUE).equals(
					JFUStrConst.WIMAXROM_WHITE))
			{
				// 白ロム
				parentMap.put("pcrs_cd", JFUStrConst.CD00134_A29);
				// 料金プランコード
				parentMap.put("pplan_cd", JFUStrConst.CD00565_PA2902);
			}
		}
		else
		{
			// 3: 3G 7.2M
			if (bnEomobie.sendMessageString(CommonInfoCFConst.MOBILE_COURSE_14, X31CWebConst.DATABEAN_GET_VALUE).equals(
					JFUStrConst.MOBILE_COURSE_3G_7_2M))
			{
				// 料金グループコード
				parentMap.put("prc_grp_cd", JFUStrConst.CD00133_08);
				// 料金コースコード
				parentMap.put("pcrs_cd", JFUStrConst.CD00134_A26);
				// 料金プランコード
				parentMap.put("pplan_cd", JFUStrConst.CD00565_PA2601);
			}
			// 4: 3G 21M
			if (bnEomobie.sendMessageString(CommonInfoCFConst.MOBILE_COURSE_14, X31CWebConst.DATABEAN_GET_VALUE).equals(
					JFUStrConst.MOBILE_COURSE_3G_21M))
			{
				// 料金グループコード
				parentMap.put("prc_grp_cd", JFUStrConst.CD00133_08);
				// 料金コースコード
				parentMap.put("pcrs_cd", JFUStrConst.CD00134_A27);
				// 料金プランコード
				parentMap.put("pplan_cd", JFUStrConst.CD00565_PA2701);
			}
			// 6: 3G 光ハイブリッド
			if (bnEomobie.sendMessageString(CommonInfoCFConst.MOBILE_COURSE_14, X31CWebConst.DATABEAN_GET_VALUE).equals(
					JFUStrConst.MOBILE_COURSE_3G_HHB))
			{
				// 料金グループコード 08
				parentMap.put("prc_grp_cd", JFUStrConst.CD00133_08);
				// 料金コースコード A59
				parentMap.put("pcrs_cd", JFUStrConst.CD00134_A59);
				// 料金プランコード PA5901
				parentMap.put("pplan_cd", JFUStrConst.CD00565_PA5901);
			}
			// 7:3g 21M 光ハイブリッド
			if (bnEomobie.sendMessageString(CommonInfoCFConst.MOBILE_COURSE_14, X31CWebConst.DATABEAN_GET_VALUE).equals(
					JFUStrConst.MOBILE_COURSE_3G_21M_HHB))
			{
				// 料金グループコード 08
				parentMap.put("prc_grp_cd", JFUStrConst.CD00133_08);
				// 料金コースコード A60
				parentMap.put("pcrs_cd", JFUStrConst.CD00134_A60);
				// 料金プランコード PA6001
				parentMap.put("pplan_cd", JFUStrConst.CD00565_PA6001);
			}
		}

		outputMap.put("EKK0121D010", parentMap);

		return outputMap;
	}

	/**
	 * 機器提供サービス＜eo光ネット＞上りマッピングをする
	 * 
	 * @param bean
	 *            　[0]：共有フォームビーン　[1]：入力内容確認
	 * @param outputMap
	 * @param func_code
	 *            　機能コード
	 * @return bean
	 */
	@SuppressWarnings("unchecked")
	public static HashMap setEKK0341D01001(X31SDataBeanAccess bean, HashMap outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// WEB新規情報
		X31SDataBeanAccess bnWebinfo = getWebInfo(bean);
		// 契約サービス
		X31SDataBeanAccess bnKeiService = getKeiyakusvcinfo(bnWebinfo);
		// 光ネット
		X31SDataBeanAccess bnEonet = getEonet(bnWebinfo);
		// マンション情報
		X31SDataBeanAccess bnMansioninfo = getMansioninfo(bnWebinfo);
		// その他情報
		X31SDataBeanAccess bnElseinfo = getElseInfo(bnWebinfo);

		// 提供方式パターンコード
		String teikyo_hoshiki = bnMansioninfo.sendMessageString(CommonInfoCFConst.TEIKYO_HOSHIKI_PTN_CD_16, X31CWebConst.DATABEAN_GET_VALUE);
		// モデムプラン
		String modem_plan = bnEonet.sendMessageString(CommonInfoCFConst.MODEM_PLAN_11, X31CWebConst.DATABEAN_GET_VALUE);
		// 選択サービス（ネット）
		String netSel = bnKeiService.sendMessageString(CommonInfoCFConst.SELECT_SVC_NET_10, X31CWebConst.DATABEAN_GET_VALUE);
		// 選択サービス（テレビ）
		String tvSel = bnKeiService.sendMessageString(CommonInfoCFConst.SELECT_SVC_TV_10, X31CWebConst.DATABEAN_GET_VALUE);
		// 選択サービス（電話）
		String telSel = bnKeiService.sendMessageString(CommonInfoCFConst.SELECT_SVC_TEL_10, X31CWebConst.DATABEAN_GET_VALUE);
		// 契約中サービス（ネット）	
		String netNow = bnKeiService.sendMessageString(CommonInfoCFConst.NOW_SVC_NET_10, X31CWebConst.DATABEAN_GET_VALUE);
		// 契約中サービス（電話）	now_svc_tel
		String telNow = bnKeiService.sendMessageString(CommonInfoCFConst.NOW_SVC_TEL_10, X31CWebConst.DATABEAN_GET_VALUE);
		// 契約中サービス（テレビ）	now_svc_tv
		//		String tvNow = bnKeiService.sendMessageString(CommonInfoCFConst.NOW_SVC_TV_10, X31CWebConst.DATABEAN_GET_VALUE);
		// 回線場所選択
		String kaisen_select = bnElseinfo.sendMessageString(CommonInfoCFConst.KAISEN_SELECT_18, X31CWebConst.DATABEAN_GET_VALUE);
		// マンション提供方式コード（VDSL、VDSL-S）以外は処理を抜ける
		if (!(teikyo_hoshiki.equals(JFUStrConst.TK_HOSHIKI_PTN_VDSL) || teikyo_hoshiki.equals(JFUStrConst.TK_HOSHIKI_PTN_VDSLS)))
		{
			return null;
		}

		// ネット選択
		if (SENTAKU.equals(netSel))
		{
			// モデムプランでなければ処理終了
			if (bnEonet.sendMessageString(CommonInfoCFConst.MODEM_PLAN_11, X31CWebConst.DATABEAN_GET_VALUE).length() == 0)
			{
				return null;
			}

			// 同一場所に既契約として電話が申し込まれている場合は、機器をつけない
			if (JFUStrConst.KAISEN_SELECT_ADD_KEI.equals(kaisen_select) && SENTAKU.equals(telNow))
			{
				return null;
			}
			// 電話選択
		}
		else if (SENTAKU.equals(telSel))
		{
			// ＶＤＳＬマンションの場合、ネット非申込時にモデムレンタル機器が必要
			// 但し、同一場所の既契約にネットが存在する場合は不要（別場所は必要）

			// 同一場所に既契約としてネットが申し込まれている場合は、機器をつけない
			if (JFUStrConst.KAISEN_SELECT_ADD_KEI.equals(kaisen_select) && SENTAKU.equals(netNow))
			{
				return null;
			}
		}
		// テレビ選択
		else if (SENTAKU.equals(tvSel))
		{
			return null;
		}

		// 機器提供サービスコード
		parentMap.put("kktk_svc_cd", JFUStrConst.KK0771_KKTK_SVC_CD_C005);
		// モデム買取プラン選択以外は、レンタル
		if (JFUStrConst.MODEM_PLAN_KAITORI.equals(modem_plan))
		{
			// 料金コースコード：モデム(買取)
			parentMap.put("pcrs_cd", JFUStrConst.CD00134_C43);
			// 料金プランコード：モデム(買取) 定額プラン
			parentMap.put("pplan_cd", JFUStrConst.CD00565_PC4301);
		}
		else
		{
			// 料金コースコード：モデム(レンタル)
			parentMap.put("pcrs_cd", JFUStrConst.CD00134_C06);
			// 料金プランコード：モデム(レンタル) 定額プラン
			parentMap.put("pplan_cd", JFUStrConst.CD00565_PC0601);
		}

		outputMap.put("EKK0341D010Net", parentMap);

		return outputMap;
	}

	/**
	 * 機器提供サービス＜eo光電話＞の上りマッピングをする
	 * 
	 * @param bean　[0]：共有フォームビーン　[1]：入力内容確認
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return bean
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public static HashMap setEKK0341D01002(X31SDataBeanAccess bean, HashMap outputMap, String func_code)
	{

		ArrayList list = new ArrayList();;
		HashMap childMap = new HashMap();
		//		int kkCnt = 0;

		// WEB新規情報
		X31SDataBeanAccess bnWebinfo = getWebInfo(bean);

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 電話コース取得
		String telNoSvc = bnWebinfo.sendMessageString(CommonInfoCFConst.TEL_COURSE_06, X31CWebConst.DATABEAN_GET_VALUE);

		// 1番号サービス
		if (telNoSvc.equals(JFUStrConst.TEL_COURSE_1BANGOU_SVC))
		{
			// →料金コースコード C04（VA１ポート)
			childMap.put("pcrs_cd", JFUStrConst.CD00134_C04);
			// →料金プランコード PC0401（VA1ポート 定額プラン )
			childMap.put("pplan_cd", JFUStrConst.CD00565_PC0401);

		}
		// 2番号サービス
		else if (telNoSvc.equals(JFUStrConst.TEL_COURSE_2BANGOU_SVC))
		{
			// →料金コースコード C05（VA２ポート)
			childMap.put("pcrs_cd", JFUStrConst.CD00134_C05);
			// →料金プランコード PC0501（VA2ポート 定額プラン )
			childMap.put("pplan_cd", JFUStrConst.CD00565_PC0501);

		}

		list.add(childMap);

		parentMap.put("EKK0341D010TelList", list);
		outputMap.put("EKK0341D010Tel", parentMap);

		return outputMap;
	}

	/**
	 * 機器提供サービス＜eo光テレビ＞の上りマッピングをする
	 * 
	 * @param bean
	 *            　[0]：共有フォームビーン　[1]：入力内容確認
	 * @param outputMap
	 * @param func_code
	 *            　機能コード
	 * @return bean
	 */
	@SuppressWarnings("unchecked")
	public static HashMap setEKK0341D01003(X31SDataBeanAccess bean, HashMap outputMap, String func_code)
	{

		// テレビ
		int tvTunCnt = 0; // TVチューナ台数
		int dtlCnt = 0; // 明細数
		ArrayList list = new ArrayList();
		HashMap childMap = new HashMap();

		// WEB新規情報
		X31SDataBeanAccess bnWebinfo = getWebInfo(bean);
		// 光TV
		X31SDataBeanAccess bnTV = getEotv(bnWebinfo);
		// 契約サービス
		X31SDataBeanAccess bnKeiyakusvcinfo = getKeiyakusvcinfo(bnWebinfo);

		
// ANK-4592-00-00 MOD START
		// 
		if (!SENTAKU.equals(bnKeiyakusvcinfo.sendMessageString(CommonInfoCFConst.SELECT_SVC_TV_10, X31CWebConst.DATABEAN_GET_VALUE)) ||
				JFUStrConst.EO_TV_COURSE_BS.equals(bnTV.sendMessageString(CommonInfoCFConst.EO_TV_COURSE_13, X31CWebConst.DATABEAN_GET_VALUE))
			 || JFUStrConst.EO_TV_COURSE_BS_STAR.equals(bnTV.sendMessageString(CommonInfoCFConst.EO_TV_COURSE_13, X31CWebConst.DATABEAN_GET_VALUE))
			 || JFUStrConst.EO_TV_COURSE_CS_PRE.equals(bnTV.sendMessageString(CommonInfoCFConst.EO_TV_COURSE_13, X31CWebConst.DATABEAN_GET_VALUE))
			 || JFUStrConst.EO_TV_COURSE_CS_BAS.equals(bnTV.sendMessageString(CommonInfoCFConst.EO_TV_COURSE_13, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			return null;
		}
// ANK-4592-00-00 MOD END

		// テレビコース2:KCNの場合は処理終了
		if (JFUStrConst.TV_COURSE_KCN.equals(bnTV.sendMessageString(CommonInfoCFConst.TV_COURSE_13, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// TVチューナ台数
		tvTunCnt = Integer.parseInt(bnTV.sendMessageString(CommonInfoCFConst.STB_CNT_13, X31CWebConst.DATABEAN_GET_VALUE));

		ArrayList<String> tvList = new ArrayList<String>();
		int tvPreCnt = -1; // プレミアムコースが初めて存在した台数目

		for (int i = 0; i < tvTunCnt; i++)
		{
			// リストに追加する。
			tvList.add(bnTV.sendMessageString(getStbHd(i), X31CWebConst.DATABEAN_GET_VALUE));
		}

		// プレミアムコースがはじめから何台目に存在するかを調べる。
		tvPreCnt = tvList.indexOf(JFUStrConst.STB_HD_PREMIUM);

		// TVチューナ台数
		if (bnTV.sendMessageString(CommonInfoCFConst.STB_CNT_13, X31CWebConst.DATABEAN_GET_VALUE).length() > 0)
		{
			dtlCnt = tvTunCnt * 3;

			for (int i = 0; i < dtlCnt; i++)
			{
				childMap = new HashMap();

				// 共通情報のマッピング
				childMap.put("func_code", func_code);
				// 親契約識別コード(サービス契約内訳)
				childMap.put("oya_kei_skbt_cd", JFUStrConst.CD00804_03);

				if (i == 0 || i == 3 || i == 6 || i == 9 || i == 12) // STB
				{
					// → 機器提供サービスコード
					childMap.put("kktk_svc_cd", JFUStrConst.CD00132_C009);

					String prc_cd_1 = "";

					// プレミアムコースが1台目または、プレミアムコースが存在しない場合
					if ((tvPreCnt == 0) || (tvPreCnt == -1))
					{
						// → 料金コースコード;
						childMap.put("pcrs_cd", bnTV.sendMessageString(getStbHdKiki(i), X31CWebConst.DATABEAN_GET_VALUE).subSequence(0, 3));
						// → 料金プランコード
						childMap.put("pplan_cd", bnTV.sendMessageString(getStbHdKiki(i), X31CWebConst.DATABEAN_GET_VALUE).substring(3));

						// 宅内機器種別コード
						childMap.put("taknkiki_sbt_cd", JFUStrConst.TKNI_KIKI_SBT_CD_A0);

						// 料金プランコードに応じて型式を判定
						prc_cd_1 = bnTV.sendMessageString(getStbHdKiki(i), X31CWebConst.DATABEAN_GET_VALUE).substring(3);
					}
					// プレミアムコースが2台目以降に存在する場合
					else
					{
						// 1台目をプレミアムコースが初めて存在した台数を入れ替える。
						if (i == 0)
						{
							// → 料金コースコード;
							childMap.put("pcrs_cd", bnTV.sendMessageString(getStbHdKiki(tvPreCnt * 3), X31CWebConst.DATABEAN_GET_VALUE).subSequence(
									0, 3));
							// → 料金プランコード
							childMap
									.put("pplan_cd", bnTV.sendMessageString(getStbHdKiki(tvPreCnt * 3), X31CWebConst.DATABEAN_GET_VALUE).substring(3));

							// 宅内機器種別コード
							childMap.put("taknkiki_sbt_cd", JFUStrConst.TKNI_KIKI_SBT_CD_A0);

							// 料金プランコードに応じて型式を判定
							prc_cd_1 = bnTV.sendMessageString(getStbHdKiki(tvPreCnt * 3), X31CWebConst.DATABEAN_GET_VALUE).substring(3);
						}
						// プレミアムコースがが初めて存在した台数目
						else if ((tvPreCnt * 3) == i)
						{
							// → 料金コースコード;
							childMap.put("pcrs_cd", bnTV.sendMessageString(getStbHdKiki(0), X31CWebConst.DATABEAN_GET_VALUE).subSequence(0, 3));
							// → 料金プランコード
							childMap.put("pplan_cd", bnTV.sendMessageString(getStbHdKiki(0), X31CWebConst.DATABEAN_GET_VALUE).substring(3));

							// 宅内機器種別コード
							childMap.put("taknkiki_sbt_cd", JFUStrConst.TKNI_KIKI_SBT_CD_A0);

							// 料金プランコードに応じて型式を判定
							prc_cd_1 = bnTV.sendMessageString(getStbHdKiki(0), X31CWebConst.DATABEAN_GET_VALUE).substring(3);
						}
						// それ以外は通常通り
						else
						{
							// → 料金コースコード;
							childMap.put("pcrs_cd", bnTV.sendMessageString(getStbHdKiki(i), X31CWebConst.DATABEAN_GET_VALUE).subSequence(0, 3));
							// → 料金プランコード
							childMap.put("pplan_cd", bnTV.sendMessageString(getStbHdKiki(i), X31CWebConst.DATABEAN_GET_VALUE).substring(3));

							// 宅内機器種別コード
							childMap.put("taknkiki_sbt_cd", JFUStrConst.TKNI_KIKI_SBT_CD_A0);

							// 料金プランコードに応じて型式を判定
							prc_cd_1 = bnTV.sendMessageString(getStbHdKiki(i), X31CWebConst.DATABEAN_GET_VALUE).substring(3);
						}
					}

					// 録画機能なし
					if (JFUStrConst.CD00565_PC1201.equals(prc_cd_1))
					{
						childMap.put("hdd_capa_cd", "00");

					}
					// 録画機能あり
					if (JFUStrConst.CD00565_PC1501.equals(prc_cd_1))
					{
						childMap.put("hdd_capa_cd", "03");
					}
					// ■以下仮対応（選択肢がなくなる）
					// 
					if (JFUStrConst.CD00565_PC1301.equals(prc_cd_1))
					{
						childMap.put("hdd_capa_cd", "01");
					}
					// 
					if (JFUStrConst.CD00565_PC1401.equals(prc_cd_1))
					{
						childMap.put("hdd_capa_cd", "01");
					}

					// リンクSTBフラグ
					childMap.put("link_stb_flg", JFUStrConst.CD00002_0);
					// 宅内機器異動コード
					childMap.put("taknkiki_ido_cd", JFUStrConst.CD00562_01);
				}
				if (i == 1 || i == 4 || i == 7 || i == 10 || i == 13) // B-CASカード
				{
					// → 機器提供サービスコード
					childMap.put("kktk_svc_cd", JFUStrConst.KK0771_KKTK_SVC_CD_C010);
					// → 料金コースコード;
					childMap.put("pcrs_cd", JFUStrConst.CD00134_C16);
					// → 料金プランコード
					childMap.put("pplan_cd", JFUStrConst.CD00565_PC1601);
					// 宅内機器種別コード("B0")
					childMap.put("taknkiki_sbt_cd", JFUStrConst.TKNI_KIKI_SBT_CD_B0);
				}
				if (i == 2 || i == 5 || i == 8 || i == 11 || i == 14) // C-CASカード
				{
					// → 機器提供サービスコード
					childMap.put("kktk_svc_cd", JFUStrConst.KK0771_KKTK_SVC_CD_C011);
					// → 料金コースコード;
					childMap.put("pcrs_cd", JFUStrConst.CD00134_C17);
					// → 料金プランコード
					childMap.put("pplan_cd", JFUStrConst.CD00565_PC1701);
					// 宅内機器種別コード("C0")
					childMap.put("taknkiki_sbt_cd", JFUStrConst.TKNI_KIKI_SBT_CD_C0);
				}

				list.add(childMap);
			}
		}

		parentMap.put("EKK0341D010TvList", list);
		outputMap.put("EKK0341D010Tv", parentMap);

		return outputMap;
	}

	/**
	 * 機器提供サービス登録（eoモバイル）の上りマッピングをする
	 * 
	 * @param bean[0]：共有フォームビーン　[1]：入力内容確認
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return HashMap
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public static HashMap setEKK0341D01004(X31SDataBeanAccess bean, HashMap outputMap, String func_code)
	{
		// モバイル
		ArrayList list = new ArrayList();
		// 宅内機器型式コード
		String taknkikiModelCd = "";
		// 宅内機器種別コード
		String taknkikiSbtCd = "";

		// WEB新規情報
		X31SDataBeanAccess bnWebinfo = getWebInfo(bean);
		// モバイル
		X31SDataBeanAccess bnMobile = getMobile(bnWebinfo);
		// リダイレクト情報
		X31SDataBeanAccess bnRedirectinfo = getRedirectinfo(bnWebinfo);

		// モバイルコース
		String mobileCourse = bnMobile.sendMessageString(CommonInfoCFConst.MOBILE_COURSE_14, X31CWebConst.DATABEAN_GET_VALUE);

		// モバイルコース：3G 7.2Mまたは、21Mまたは、光ハイブリッド、モバイルコース：WiMAX（黒ロム）の場合作成する。
		if (!(mobileCourse.equals(JFUStrConst.MOBILE_COURSE_3G_21M) || mobileCourse.equals(JFUStrConst.MOBILE_COURSE_3G_7_2M)
				|| mobileCourse.equals(JFUStrConst.MOBILE_COURSE_3G_HHB) || mobileCourse.equals(JFUStrConst.MOBILE_COURSE_3G_21M_HHB) || (mobileCourse
				.equals(JFUStrConst.MOBILE_COURSE_WIMAX) && bnRedirectinfo.sendMessageString(CommonInfoCFConst.RED_WIMAXROM_17,
				X31CWebConst.DATABEAN_GET_VALUE).equals(JFUStrConst.WIMAXROM_BLACK))))
		{
			return null;
		}

		// 7.2M 光ハイブリッドの場合、機器を複数登録する。 ※21Mは機器は1つ！！
		int mobCnt = 0;
		if (mobileCourse.equals(JFUStrConst.MOBILE_COURSE_3G_HHB))
		{
			// 機器登録件数は2件いる
			mobCnt = 2;
		}
		else
		{
			mobCnt = 1;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		list = new ArrayList();
		HashMap<String, Object> childMap = new HashMap<String, Object>();

		for (int i = 0; i < mobCnt; i++)
		{
			// childMapの初期化
			childMap = new HashMap();

			// 共通情報のマッピング
			childMap.put("func_code", func_code);
			// 通信機器
			if (mobileCourse.equals(JFUStrConst.MOBILE_COURSE_3G_21M))
			{
				// 宅内機器種別コード(イーモバイル機器)
				taknkikiSbtCd = JFUStrConst.TKNI_KIKI_SBT_CD_EMOBILE;
				// 機器提供サービスコード
				childMap.put("kktk_svc_cd", JFUStrConst.KK0771_KKTK_SVC_CD_C016);

				// USBタイプの場合
				if (bnMobile.sendMessageString(CommonInfoCFConst.MOBILE_KIKI_14, X31CWebConst.DATABEAN_GET_VALUE).equals(JFUStrConst.MOBILE_KIKI_USB))
				{
					// 料金コースコード
					childMap.put("pcrs_cd", JFUStrConst.CD00134_C29);
					// 料金プランコード
					childMap.put("pplan_cd", JFUStrConst.CD00565_PC2901);
				}
			}
			else if (mobileCourse.equals(JFUStrConst.MOBILE_COURSE_3G_7_2M))
			{
				// 宅内機器種別コード(イーモバイル機器)
				taknkikiSbtCd = JFUStrConst.TKNI_KIKI_SBT_CD_EMOBILE;
				// 機器提供サービスコード
				childMap.put("kktk_svc_cd", JFUStrConst.KK0771_KKTK_SVC_CD_C016);

				// ルータタイプの場合
				if (bnMobile.sendMessageString(CommonInfoCFConst.MOBILE_KIKI_14, X31CWebConst.DATABEAN_GET_VALUE).equals(
						JFUStrConst.MOBILE_KIKI_ROUTER))
				{
					// 料金コースコード
					childMap.put("pcrs_cd", JFUStrConst.CD00134_C27);
					// 料金プランコード
					childMap.put("pplan_cd", JFUStrConst.CD00565_PC2701);
				}
				// USBタイプの場合
				if (bnMobile.sendMessageString(CommonInfoCFConst.MOBILE_KIKI_14, X31CWebConst.DATABEAN_GET_VALUE).equals(JFUStrConst.MOBILE_KIKI_USB))
				{
					// 料金コースコード
					childMap.put("pcrs_cd", JFUStrConst.CD00134_C28);
					// 料金プランコード
					childMap.put("pplan_cd", JFUStrConst.CD00565_PC2801);

				}
			}
			else if (mobileCourse.equals(JFUStrConst.MOBILE_COURSE_3G_HHB))
			{
				// 光ハイブリッド機器１
				if (i == 0)
				{
					// 宅内機器種別コード(イーモバイル機器)
					taknkikiSbtCd = JFUStrConst.TKNI_KIKI_SBT_CD_EMOBILE;

					// 機器提供サービスコード C016
					childMap.put("kktk_svc_cd", JFUStrConst.KK0771_KKTK_SVC_CD_C016);
					// 料金コースコード C27
					childMap.put("pcrs_cd", JFUStrConst.CD00134_C27);
					// 料金プランコード PC2701
					childMap.put("pplan_cd", JFUStrConst.CD00565_PC2701);
				}
				else
				{
					// 光ハイブリッド機器２
					// 宅内機器種別コード(クレードル機器)
					taknkikiSbtCd = JFUStrConst.CD01262_L0;

					// 機器提供サービスコード C020
					childMap.put("kktk_svc_cd", JFUStrConst.KK0771_KKTK_SVC_CD_C020);
					// 料金コースコード C37
					childMap.put("pcrs_cd", JFUStrConst.CD00134_C37);
					// 料金プランコード PC3701
					childMap.put("pplan_cd", JFUStrConst.CD00565_PC3701);
				}
			}
			else if (mobileCourse.equals(JFUStrConst.MOBILE_COURSE_3G_21M_HHB))
			{
				// 宅内機器種別コード(イーモバイル機器)
				taknkikiSbtCd = JFUStrConst.TKNI_KIKI_SBT_CD_EMOBILE;
				// 機器提供サービスコード C016
				childMap.put("kktk_svc_cd", JFUStrConst.KK0771_KKTK_SVC_CD_C016);
				// 料金コースコード C38
				childMap.put("pcrs_cd", JFUStrConst.CD00134_C38);
				// 料金プランコード PC3801
				childMap.put("pplan_cd", JFUStrConst.CD00565_PC3801);
			}
			else if (mobileCourse.equals(JFUStrConst.MOBILE_COURSE_WIMAX)
					&& bnRedirectinfo.sendMessageString(CommonInfoCFConst.RED_WIMAXROM_17, X31CWebConst.DATABEAN_GET_VALUE).equals(
							JFUStrConst.WIMAXROM_BLACK))
			{
				// 宅内機器種別コード(UQ機器)
				taknkikiSbtCd = JFUStrConst.TKNI_KIKI_SBT_CD_UQ;
				// 機器提供サービスコード
				childMap.put("kktk_svc_cd", JFUStrConst.KK0771_KKTK_SVC_CD_C017);
				// ルータタイプの場合
				if (bnMobile.sendMessageString(CommonInfoCFConst.MOBILE_KIKI_14, X31CWebConst.DATABEAN_GET_VALUE).equals(
						JFUStrConst.MOBILE_KIKI_ROUTER))
				{
					// 料金コースコード
					childMap.put("pcrs_cd", JFUStrConst.CD00134_C30);
					// 料金プランコード
					childMap.put("pplan_cd", JFUStrConst.CD00565_PC3001);
				}
				// USBタイプの場合
				if (bnMobile.sendMessageString(CommonInfoCFConst.MOBILE_KIKI_14, X31CWebConst.DATABEAN_GET_VALUE).equals(JFUStrConst.MOBILE_KIKI_USB))
				{
					// 料金コースコード
					childMap.put("pcrs_cd", JFUStrConst.CD00134_C31);
					// 料金プランコード 
					childMap.put("pplan_cd", JFUStrConst.CD00565_PC3101);
				}
			}

			list.add(childMap);
		}
		parentMap.put("EKK0341D010MobList", list);
		outputMap.put("EKK0341D010Mob", parentMap);

		return outputMap;
	}

	/**
	 * WEB新規情報
	 * 
	 * @param bean
	 * @return bn
	 */
	private static 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 static X31SDataBeanAccess getKeiyakuinfo(X31SDataBeanAccess bn)
	{
		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.KEIYAKUSHA_INFO);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * 契約サービス情報
	 * 
	 * @param bn
	 * @return bn1
	 */
	private static X31SDataBeanAccess getKeiyakusvcinfo(X31SDataBeanAccess bn)
	{
		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.KEIYAKU_SVC_INFO);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * 光ネット
	 * 
	 * @param bn
	 * @return bn1
	 */
	private static X31SDataBeanAccess getEonet(X31SDataBeanAccess bn)
	{
		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.EONET);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * 光TV
	 * 
	 * @param bn
	 * @return bn1
	 */
	private static X31SDataBeanAccess getEotv(X31SDataBeanAccess bn)
	{
		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.EOTV);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * モバイル情報
	 * 
	 * @param bn
	 * @return bn1
	 */
	private static X31SDataBeanAccess getMobile(X31SDataBeanAccess bn)
	{
		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.EOMOBILE);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * マンション情報
	 * 
	 * @param bn
	 * @return bn1
	 */
	private static 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 static X31SDataBeanAccess getRedirectinfo(X31SDataBeanAccess bn)
	{
		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.REDIRECT_INFO);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * 利用場所情報
	 * 
	 * @param bn
	 * @return bn1
	 */
	private static X31SDataBeanAccess getRiyobasyoinfo(X31SDataBeanAccess bn)
	{
		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.RIYOBASHO_INFO);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * その他情報
	 * 
	 * @param bn
	 * @return bn1
	 */
	private static X31SDataBeanAccess getElseInfo(X31SDataBeanAccess bn)
	{
		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.ELSE_INFO);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * 利用回線・機器情報を取得する。
	 * 
	 * @param bn WEB新規情報Bean
	 * @return 利用回線・機器情報Bean
	 */
	private static X31SDataBeanAccess getUseKaisenKikiInfo(X31SDataBeanAccess bn)
	{
		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.USE_KAISEN_KIKI_INFO);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}
	
	/**
	 * CommonInfoCFConstからSTBの定数を取得する。
	 * @param i
	 * @return String
	 */
	private static String getStbHd(int i)
	{
		String stbHd = "";

		if (i == 0)
		{
			stbHd = CommonInfoCFConst.STB_HD1_13;
		}
		else if (i == 1)
		{
			stbHd = CommonInfoCFConst.STB_HD2_13;
		}
		else if (i == 2)
		{
			stbHd = CommonInfoCFConst.STB_HD3_13;
		}
		else if (i == 3)
		{
			stbHd = CommonInfoCFConst.STB_HD4_13;
		}
		else if (i == 4)
		{
			stbHd = CommonInfoCFConst.STB_HD5_13;
		}
		return stbHd;
	}

	/**
	 * CommonInfoCFConstからSTB機器の定数を取得する。
	 * @param i
	 * @return String
	 */
	private static String getStbHdKiki(int i)
	{
		String stbHdKiki = "";

		if (i == 0)
		{
			stbHdKiki = CommonInfoCFConst.STB_HD1_KIKI_13;
		}
		else if (i == 3)
		{
			stbHdKiki = CommonInfoCFConst.STB_HD2_KIKI_13;
		}
		else if (i == 6)
		{
			stbHdKiki = CommonInfoCFConst.STB_HD3_KIKI_13;
		}
		else if (i == 9)
		{
			stbHdKiki = CommonInfoCFConst.STB_HD4_KIKI_13;
		}
		else if (i == 12)
		{
			stbHdKiki = CommonInfoCFConst.STB_HD5_KIKI_13;
		}
		return stbHdKiki;
	}

	/**
	 * 共有フォームBeanの値より、異動区分を取得する
	 * 
	 * <br>
	 * @param bnWebinfo　WEB新規情報
	 * @return String
	 */
	public static String getIdoKbn(X31SDataBeanAccess bnWebinfo)
	{
		String retString = "";

		// 申込区分が1：新規の場合
		if (bnWebinfo.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_GET_VALUE).equals(JFUStrConst.MSKM_KBN_NEW))
		{
			retString = JFUStrConst.CD00576_00001;
			// 申込区分が2：追加
		}
		else if (bnWebinfo.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_GET_VALUE).equals(JFUStrConst.MSKM_KBN_ADD))
		{
			retString = JFUStrConst.CD00576_00002;
		}

		return retString;
	}

	/**
	 * 割引サービスコードにより料金コースコード または 料金プランコードを取得する
	 * 
	 * <br>
	 * @param wribSvcCd　割引サービスコード
	 * @param flg　フラグ
	 * @return String
	 */
	public static String getPcrsCdOrPplanCd(String wribSvcCd, String flg)
	{
		String rtnCd = null;

		// 割引サービス登録ワークに料金コースコードと料金コースプランコードを設定する
		// 割引サービスコードがファミリーパックの場合
		if (wribSvcCd.equals(JFUStrConst.KK0841_WRIB_SVC_CD_FAMIPA))
		{
			if (PCRS_CD_FLG.equals(flg))
			{
				rtnCd = JFUStrConst.CD00134_F01;
			}
			else
			{
				rtnCd = JFUStrConst.CD00565_PF0101;
			}
		}

		return rtnCd;
	}

	/**
	 * DISPTEXT要素のテキストを返却します。
	 * <br>
	 * @param screenId 画面ID
	 * @param textId TEXTID
	 * @return テキスト
	 */
	public static String getDispText(String screenId, String textId)
	{
		String ret = "";
		
		try {
			ret = JFUWebCommon.getDispText(screenId, textId);
		} catch (Exception e) {
			
		}
		return ret;
	}
	
}
