/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：FUSV0256_FUSV0256OPDBMapper
*	ソースファイル名：FUSV0256_FUSV0256OPDBMapper.java
*	作成者			：富士通
*	日付			：2012年08月29日
*＜機能概要＞
*	BP(eoスマートリンク申込(初期表示))へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v4.00		2012/08/29	FJ)文元 	【案件番号：ANK-0546-00-00】新規作成
*	v4.00		2012/12/28	FJ)岡井 	【TAI-2012-0000136】チェックCC内で発生するNullPointer対応
*   v5.00       2013/01/28	FJ)文元 	【ANK-1234-00-00】イオスマートリンク督促チェック対応
*   v6.00       2013/10/10	FJ)文元 	【ANK-1580-00-00】eoスマートリンク改修対応@(複数契約対応・機種追加)
*   v9.00       2014/05/07	FJ)文元 	【ANK-2054-00-00】スマートリンク端末補償
*   v9.00		2014/07/04	FJ)川瀬 	【ANK-2180-00-00】【ＮＯ．１５７９】eoスマートリンクタブレット「S」売り止め対応
*   v10.00      2014/07/28	FJ)文元 	【ANK-2138-00-00】スマリン端末のトムソンケース同梱
*   v32.00      2017/05/01	FJ)岡井 	【ANK-3149-00-00】新セキュリティパック導入
*   v33.00      2017/08/01	FJ)岡井 	【ANK-3217-00-00】GHサービス開始対応
*   v33.01      2017/08/07	FJ)張本 	【ANK-3217-00-00】GHサービス開始対応
*   v31.00.00	2017/11/20	FJ)杉本		【ANK-3136-00-00】OPMSハードウエア保守切れ対応
*   v39.00.00	2018/09/19	FJ)岡		【ANK-3484-00-00】端末補償サービス導入対応
*   v42.00.00   2019/05/15  FJ)大島     【ANK-3642-00-00】スマートリンクタブレット新機種追加（2019年6月〜）
*
**********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.fujitsu.futurity.common.JCMConstants;
import com.fujitsu.futurity.web.x31.X31BWebBusinessLogic;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.constant.JFUStrConst;
import eo.common.util.JKKStringUtil;
import eo.common.util.JPCUtilCommon;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.FUW10701SF.FUW10701SFConst;
import eo.web.webview.common.JFUTabletInfoUtil;
import eo.web.webview.common.JFUWebCommon;

/**
 * DataBean-BPマッピングをします。
 * 
 * <br>
 * @author 富士通
 */
public class FUSV0256_FUSV0256OPDBMapper
{
	/** 配列番号[1]:ＳＳＯ情報 */
	private static final int INFO_IDX_SSO_INFO = 1;
	/** 配列番号[2]:サービス契約情報 */
	private static final int INFO_IDX_SVC_KEI = 2;
	/** 配列番号[3]:請求契約情報 */
	private static final int INFO_IDX_SEIKY_KEI = 3;
	
	/** 割賦プラン一覧照会(eoスマートリンク) */
	private static final String FUSV025601SC = "FUSV025601SC";
	/** 機器提供サービス契約一覧照会(サービス契約番号) */
	private static final String FUSV025602SC = "FUSV025602SC";
	/** オプションサービス契約一覧照会(サービス契約番号) */
	private static final String FUSV025603SC = "FUSV025603SC";
	/** 料金コース_オプションサービス一意照会 */
	private static final String FUSV025604SC = "FUSV025604SC";
	/** 料金プラン固定単価 */
	private static final String FUSV025605SC = "FUSV025605SC";
	/** コード名称管理一覧照会 */
	private static final String FUSV025606SC = "FUSV025606SC";
	/** 業務パラメータ管理一意照会 */
	private static final String FUSV025607SC = "FUSV025607SC";
	/** eoスマートリンク関連チェックコンポーネントCC */
	private static final String FUSV025601CC = "FUSV025601CC";
	/** セキュリティパック申込表示制御CC */
	private static final String FUSV025602CC = "FUSV025602CC";
	/** 業務パラメータ管理一意照会(GH) */
	private static final String FUSV025608SC = "FUSV025608SC";
// ANK-3136-00-00 ADD START
	/** 工事案件一覧照会 */
	private static final String FUSV025609SC = "FUSV025609SC";
// ANK-3136-00-00 ADD END
// ANK-3484-00-00 ADD START
	/** 料金プラン固定単価（ＰＣプラン） */
	private static final String FUSV025610SC = "FUSV025610SC";
	/** 料金プラン固定単価（ＰＣワイドプラン） */
	private static final String FUSV025611SC = "FUSV025611SC";
	/** 端末保障操作CC */
	private static final String FUSV025603CC = "FUSV025603CC";
// ANK-3484-00-00 ADD END

	/** 割賦プラン一覧照会(eoスマートリンク)明細 */
	private static final String EKK2521B501CBSMSG1LIST = "EKK2521B501CBSMsg1List";
	/** 割賦契約一覧照会(eoスマートリンク)明細 */
	private static final String EKK2541B501CBSMSG1LIST = "EKK2541B501CBSMsg1List";
	/** オプションサービス契約一覧照会(サービス契約番号)明細 */
	private static final String EKK0351B002CBSMSG1LIST = "EKK0351B002CBSMsg1List";
	/** 料金コース_オプションサービス一意照会明細 */
	private static final String EKK0811A010CBSMSG1LIST = "EKK0811A010CBSMsg1List";
	/** 料金プラン固定単価明細 */
	private static final String EKK0601B001CBSMSG1LIST = "EKK0601B001CBSMsg1List";
	/** コード名称管理一覧照会明細 */
	private static final String EZM0171B010CBSMSG1LIST = "EZM0171B010CBSMsg1List";
	/** 業務パラメータ管理一意照会明細 */
	private static final String EZM0321A010CBSMSG1LIST = "EZM0321A010CBSMsg1List";

	/** 業務パラメータ設定値 */
	private static final String WORK_PARAM_SETTE_VALUE = "work_param_sette_value";

	/** ＫＥＹ＿サービス契約番号 */
	private static final String KEY_SVC_KEI_NO = "key_svc_kei_no";
	/** ＫＥＹ＿料金コースコード */
	private static final String KEY_PCRS_CD = "key_pcrs_cd";
	/** ＫＥＹ＿SYSID */
	private static final String KEY_SYSID = "key_sysid";
	/** ＫＥＹ＿請求契約番号 */
	private static final String KEY_SEIKY_KEI_NO = "key_seiky_kei_no";
// ANK-3136-00-00 ADD START
	/** ＫＥＹ＿工事案件番号サービス契約番号 */
	private static final String KEY_KOJIAK_NO_SVC_KEI_NO = "key_kojiak_no_svc_kei_no";
// ANK-3136-00-00 ADD END
// ANK-3484-00-00 ADD START
	/** 機能コード */
	private static final String FUNC_CD = "func_cd";
	/** 処理区分 */
	private static final String SHORI_DIV = "shori_div";
	/** 処理区分：照会モード */
	private static final String SHOKAI_MODE = "1";
	/** ＰＣプラン申込状態識別コード：ＰＣプラン未契約 */
	private static final String PC_PLAN_NOT_CONTRACT = "1";
	/** ＰＣプラン申込状態識別コード：ＰＣプラン解約後10ヶ月経過 */
	private static final String PC_PLAN_DSL_TEN_MONTH_LATER = "2";
	/** ＰＣプラン申込状態識別コード：ＰＣプラン解約後10ヶ月未満 */
	private static final String PC_PLAN_DSL_TEN_MONTH_EARLIER = "3";
	/** ＰＣプラン申込状態識別コード：ＰＣワイドプラン契約 */
	private static final String PC_WIDE_PLAN_CONTRACT = "4";
	/** ＰＣプラン申込状態識別コード：ＰＣプラン契約 */
	private static final String PC_PLAN_CONTRACT = "5";
// ANK-3484-00-00 ADD END
	/** 項目：宅内機器型式コード */
	private static final String TAKNKIKI_MODEL_CD = "taknkiki_model_cd";
	/** 項目：サービス契約番号 */
	private static final String SVC_KEI_NO = "svc_kei_no";

	/** 定義取得パス 端末情報 */
	private static final String QUERY_PATH = "DISPSETTING/SETTING[@screenId='FUW10701']/DISPTEXT[@groupid='SMARTLINK_MSKM_LMT']";
	/** 属性名 */
	private static final String QUERY_ATTR_NAME = "id";
	/** 属性名 Ｎｅｔ新規申込み台数制限値 */
	private static final String NET_NEW_MSKM_CNT_MAX = "net_new_mskm_cnt_max";
	/** 属性名 複数台申込不可期間申込可能台数制限値 */
	private static final String MULTI_MSKM_PSB_MSKM_CNT_MAX = "multi_mskm_not_psb_mskm_cnt_max";

	/** ＣＣ出力マップ項目(タブレット支払残高有無) */
	private static final String TABLET_PAY_ZAN_UM = "tablet_pay_zan_um";
	/** ＣＣ出力マップ項目(タブレット通算台数上限) */
	private static final String KK_TAB_TOTAL_CNT_MAX = "kk_tab_total_cnt_max";
	/** ＣＣ出力マップ項目(同時割賦契約数上限) */
	private static final String KK_KAP_SHR_CNT_MAX = "kk_kap_shr_cnt_max";
	/** ＣＣ出力マップ項目(フロント同時申込台数) */
	private static final String FU_SHR_MSKM_CNT_MAX = "fu_shr_mskm_cnt_max";
	/** ＣＣ出力マップ項目(割賦契約割引適用上限数) */
	private static final String KK_KAP_WRBK_MAX = "kk_kap_wrbk_max";

	/** ＣＣ出力マップ項目(ファミリーパック表示パターン) */
	private static final String FP_DSP_PTN = "fpViewPtn";
	/** ＣＣ出力マップ項目(ウイルスバスター表示パターン) */
	private static final String VB_DSP_PTN = "vbViewPtn";
	/** ＣＣ出力マップ項目(FP解約ルーター表示パターン) */
	private static final String FP_CAN_DSP_PTN = "fpDslRtViewPtn";
	/** ＣＣ出力マップ項目(FP継続ルーター表示パターン) */
	private static final String FP_CON_DSP_PTN = "fpKeizkRtViewPtn";
	/** ＣＣ出力マップ項目(多機能ルーターVA区分) */
	private static final String TAKINORT_VA_KBN = "takinortVaKbn";
	/** ＣＣ出力マップ項目(リモートサポートプラス表示パターン) */
	private static final String RS_DSP_PTN = "rmtsprtPlusViewPtn";
	/** ＣＣ出力マップ項目(セキュリティパック契約有無) */
	private static final String SP_KEI_UM = "secpaKeiUm";
	/** ＣＣ出力マップ項目(ファミリーパック契約有無) */
	private static final String FP_KEI_UM = "famipaKeiUm";
	/** ＣＣ出力マップ項目(ルーター区分) */
	private static final String RT_KBN = "rtKbn";
	/** ＣＣ出力マップ項目(多機能ルーター(無線)金額表示) */
	private static final String TAKINO_RT_MUSEN_AMNT_DSP = "takinortMusenAmntDsp";
// ANK-3484-00-00 ADD START
	/** ＣＣ出力マップ項目(サービス課金終了年月日) */
	private static final String SVC_CHRG_ENDYMD = "svc_chrg_endymd";
	/** ＣＣ出力マップ項目(オプションサービス契約ステータス) */
	private static final String OP_SVC_KEI_STAT = "op_svc_kei_stat";
	/** ＣＣ出力マップ項目(サブオプションサービス契約ステータス) */
	private static final String SBOP_SVC_KEI_STAT = "sbop_svc_kei_stat";
	/** ＣＣ出力マップ項目(キャンセル連携年月日) */
	private static final String TMCP_CNCL_RNKI_YMD = "tmcp_cncl_rnki_ymd";
// ANK-3484-00-00 ADD END

	/**
	 * 上りマッピングをします。(割賦プラン一覧照会(eoスマートリンク)SC)
	 * 
	 * <br>
	 * @param bean  [0]：eoスマートリンク申込  [1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code  機能コード
	 * @return HashMap
	 */
	public HashMap<String, Object> setFUSV025601SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(JCMConstants.FUNC_CODE_KEY, func_code);

		// ＫＥＹ＿料金コースコード
		parentMap.put(KEY_PCRS_CD, bean[INFO_IDX_SVC_KEI].sendMessageString(CommonInfoCFConst.PCRS_CD_23, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put(FUSV025601SC, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをします。(割賦契約一覧照会(eoスマートリンク)SC)
	 * 
	 * <br>
	 * @param bean  [0]：eoスマートリンク申込  [1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code  機能コード
	 * @return HashMap
	 */
	public HashMap<String, Object> setFUSV025602SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(JCMConstants.FUNC_CODE_KEY, func_code);

		// ＫＥＹ＿サービス契約番号
		parentMap.put(KEY_SVC_KEI_NO, bean[INFO_IDX_SVC_KEI].sendMessageString(CommonInfoCFConst.SVC_KEI_NO_23, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put(FUSV025602SC, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをします。(オプションサービス契約一覧照会(サービス契約番号)SC)
	 * 
	 * <br>
	 * @param bean  [0]：eoスマートリンク申込  [1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code  機能コード
	 * @return HashMap
	 */
	public HashMap<String, Object> setFUSV025603SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(JCMConstants.FUNC_CODE_KEY, func_code);

		// ＫＥＹ＿サービス契約番号
		parentMap.put(KEY_SVC_KEI_NO, bean[INFO_IDX_SVC_KEI].sendMessageString(CommonInfoCFConst.SVC_KEI_NO_23, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put(FUSV025603SC, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをします。(料金コース_オプションサービス一意照会SC)
	 * 
	 * <br>
	 * @param bean  [0]：eoスマートリンク申込  [1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code  機能コード
	 * @return HashMap
	 */
	public HashMap<String, Object> setFUSV025604SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(JCMConstants.FUNC_CODE_KEY, func_code);

		// ＫＥＹ＿料金コースコード
		parentMap.put(KEY_PCRS_CD, bean[INFO_IDX_SVC_KEI].sendMessageString(CommonInfoCFConst.PCRS_CD_23, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put(FUSV025604SC, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをします。(料金プラン固定単価SC)
	 * 
	 * <br>
	 * @param bean  [0]：eoスマートリンク申込  [1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code  機能コード
	 * @return HashMap
	 */
	public HashMap<String, Object> setFUSV025605SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(JCMConstants.FUNC_CODE_KEY, func_code);

		outputMap.put(FUSV025605SC, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをします。(コード名称管理一覧照会SC)
	 * 
	 * <br>
	 * @param bean  [0]：eoスマートリンク申込  [1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code  機能コード
	 * @return HashMap
	 */
	public HashMap<String, Object> setFUSV025606SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(JCMConstants.FUNC_CODE_KEY, func_code);

		outputMap.put(FUSV025606SC, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをします。(業務パラメータ管理一意照会)
	 *
	 * <br>
	 * @param bean　[0]：eoスマートリンク申込　[1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	public HashMap<String, Object> setFUSV025607SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(JCMConstants.FUNC_CODE_KEY, func_code);

		outputMap.put(FUSV025607SC, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをします。(eoスマートリンク関連チェックコンポーネントCC)
	 * 
	 * <br>
	 * @param bean  [0]：eoスマートリンク申込  [1]：共有フォームビーン
	 * @param outputMap
	 * @return HashMap
	 */
	public HashMap<String, Object> setFUSV025601CC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// IN項目:ＳＹＳＩＤ
		parentMap.put(KEY_SYSID, bean[INFO_IDX_SSO_INFO].sendMessageString(CommonInfoCFConst.SYSID_21, 
				X31CWebConst.DATABEAN_GET_VALUE));
		// IN項目:サービス契約情報.サービス契約番号
		parentMap.put(KEY_SVC_KEI_NO, bean[INFO_IDX_SVC_KEI].sendMessageString(CommonInfoCFConst.SVC_KEI_NO_23,
				X31CWebConst.DATABEAN_GET_VALUE));
		// IN項目:請求契約情報.請求契約番号
		parentMap.put(KEY_SEIKY_KEI_NO, bean[INFO_IDX_SEIKY_KEI].sendMessageString(CommonInfoCFConst.SEIKY_KEI_NO_32,
				X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put(FUSV025601CC, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをします。(セキュリティパック申込表示制御CC)
	 * 
	 * <br>
	 * @param bean  [0]：eoスマートリンク申込  [1]：共有フォームビーン
	 * @param outputMap
	 * @return HashMap
	 */
	public HashMap<String, Object> setFUSV025602CC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// IN項目:サービス契約情報.サービス契約番号
		parentMap.put(SVC_KEI_NO, bean[INFO_IDX_SVC_KEI].sendMessageString(CommonInfoCFConst.SVC_KEI_NO_23,
				X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put(FUSV025602CC, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをします。(業務パラメータ管理一意照会)
	 *
	 * <br>
	 * @param bean　[0]：eoスマートリンク申込　[1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	public HashMap<String, Object> setFUSV025608SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(JCMConstants.FUNC_CODE_KEY, func_code);

		outputMap.put(FUSV025608SC, parentMap);

		return outputMap;
	}

	/**
	 * 下りマッピングをします。(割賦プラン一覧照会(eoスマートリンク)SC)
	 * 
	 * <br> 
	 * @param bean eoスマートリンク申込
	 * @param outputMap
	 * @return X31SDataBeanAccess
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess getFUSV025601SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, X31BWebBusinessLogic bl) throws Exception
	{

		HashMap parentMap = null;
		if (outputMap.containsKey(FUSV025601SC))
		{
			parentMap = (HashMap)outputMap.get(FUSV025601SC);
		}
// ANK-3642-00-00 DEL START
//		// GH対象機器リスト取得
//		List<String> ghTaishoList = getKkGhTkkmdl(bean, outputMap);
// ANK-3642-00-00 DEL END

		ArrayList childList = null;

		X31SDataBeanAccessArray listFUSV025601SC_kk_m_kap_plan_EKK2521B501CBSMsg1List = bean[0].getDataBeanArray(FUW10701SFConst.KK_M_KAP_PLAN);

		childList = null;

// ANK-3642-00-00 ADD START
		// ワークマップ
		HashMap<String, String> workMap = new HashMap<String, String>();
		editTabletCheckParam(workMap, bean[INFO_IDX_SVC_KEI], bl);
// ANK-3642-00-00 ADD END
		
		if (listFUSV025601SC_kk_m_kap_plan_EKK2521B501CBSMsg1List != null && parentMap != null && parentMap.containsKey(EKK2521B501CBSMSG1LIST))
		{

			childList = (ArrayList)parentMap.get(EKK2521B501CBSMSG1LIST);

			for (int i = 0; i < childList.size(); i++)
			{

				HashMap childMap = (HashMap)childList.get(i);

				// 宅内機器型式コードを取得
				String taknkikiModelCd = (String)childMap.get(TAKNKIKI_MODEL_CD);

// ANK-3642-00-00 MOD START
				workMap.put("taknkikiModelCd", taknkikiModelCd);
				workMap.put(JFUStrConst.TABLET_DSP_SYUBETSU, "");
				if (!JFUTabletInfoUtil.checkShowTablet("FUW10701", workMap))
				{
					continue;
				}
				if ("GH".equals(workMap.get(JFUStrConst.TABLET_DSP_SYUBETSU)))
				{
					continue;
				}
// ANK-3642-00-00 MOD END

				X31SDataBeanAccess subbean = null;
				if (listFUSV025601SC_kk_m_kap_plan_EKK2521B501CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = listFUSV025601SC_kk_m_kap_plan_EKK2521B501CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = listFUSV025601SC_kk_m_kap_plan_EKK2521B501CBSMsg1List.addDataBean();
				}

				if (subbean == null)
				{
					continue;
				}

				if (childMap == null)
				{
					continue;
				}

				// 割賦プラン一覧明細タイプ.割賦プランコード ←                  割賦プラン一覧照会(eoスマートリンク)明細.割賦プランコード
				subbean.sendMessageString(FUW10701SFConst.KAP_PLAN_CD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kap_plan_cd"));
				// 割賦プラン一覧明細タイプ.宅内機器型式コード ←                割賦プラン一覧照会(eoスマートリンク)明細.宅内機器型式コード
				subbean.sendMessageString(FUW10701SFConst.TAKNKIKI_MODEL_CD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("taknkiki_model_cd"));
				// 割賦プラン一覧明細タイプ.割賦販売形態コード ←                割賦プラン一覧照会(eoスマートリンク)明細.割賦販売形態コード
				subbean.sendMessageString(FUW10701SFConst.KAP_HAMBAI_FORM_CD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kap_hambai_form_cd"));
				// 割賦プラン一覧明細タイプ.割賦販売形態コード名称 ←            割賦プラン一覧照会(eoスマートリンク)明細.割賦販売形態コード名称
				subbean.sendMessageString(FUW10701SFConst.KAP_HAMBAI_FORM_CD_NM_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kap_hambai_form_cd_nm"));
				// 割賦プラン一覧明細タイプ.割賦支払い回数 ←                    割賦プラン一覧照会(eoスマートリンク)明細.割賦支払い回数
				subbean.sendMessageString(FUW10701SFConst.KAP_PAY_CNT_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kap_pay_cnt"));
				// 割賦プラン一覧明細タイプ.割賦プラン料金単価種別コード ←      割賦プラン一覧照会(eoスマートリンク)明細.割賦プラン料金単価種別コード
				subbean.sendMessageString(FUW10701SFConst.KAP_PLAN_PRC_TANKA_SBT_CD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kap_plan_prc_tanka_sbt_cd"));
				// 割賦プラン一覧明細タイプ.割賦プラン料金額 ←                  割賦プラン一覧照会(eoスマートリンク)明細.割賦プラン料金額
				subbean.sendMessageString(FUW10701SFConst.KAP_PLAN_PRC_AMNT_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kap_plan_prc_amnt"));
				// 割賦プラン一覧明細タイプ.割賦プラン料金割引額 ←              割賦プラン一覧照会(eoスマートリンク)明細.割賦プラン料金割引額
				subbean.sendMessageString(FUW10701SFConst.KAP_PLAN_PRC_AMNT_WRIB_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kap_plan_prc_amnt_wrib"));
				// 割賦プラン一覧明細タイプ.割賦プラン料金割引額２ ←            割賦プラン一覧照会(eoスマートリンク)明細.割賦プラン料金割引額２
				subbean.sendMessageString(FUW10701SFConst.KAP_PLAN_PRC_AMNT_WRIB2_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kap_plan_prc_amnt_wrib2"));
				// 割賦プラン一覧明細タイプ.複数端末購入不可期間   ←            割賦プラン一覧照会(eoスマートリンク)明細.複数端末購入不可期間
				subbean.sendMessageString(FUW10701SFConst.HUKUSU_TNMT_BUY_FAIL_PRD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("hukusu_tnmt_buy_fail_prd"));
				// 割賦プラン一覧明細タイプ.宅内機器型式名 ←                    割賦プラン一覧照会(eoスマートリンク)明細.宅内機器型式名
				subbean.sendMessageString(FUW10701SFConst.TAKNKIKI_MODEL_NM_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("taknkiki_model_nm"));
				// 割賦プラン一覧明細タイプ.メーカー保証期間開始日算出方法識別コード
				//                                         ← 割賦プラン一覧照会(eoスマートリンク)明細.メーカー保証期間開始日算出方法識別コード
				subbean.sendMessageString(FUW10701SFConst.MKHS_PRD_STAD_SSW_SKCD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("mkhs_prd_stad_ssw_skcd"));
				// 割賦プラン一覧明細タイプ.端末補償期間開始日算出方法識別コード← 割賦プラン一覧照会(eoスマートリンク)明細.端末補償期間開始日算出方法識別コード
				subbean.sendMessageString(FUW10701SFConst.TMCP_PRD_STAD_SSW_SKCD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("tmcp_prd_stad_ssw_skcd"));
				// 割賦プラン一覧明細タイプ.お客様機器メーカー保証期間  ←       割賦プラン一覧照会(eoスマートリンク)明細.お客様機器メーカー保証期間
				subbean.sendMessageString(FUW10701SFConst.CUST_KIKI_MKHS_PRD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("cust_kiki_mkhs_prd"));
				// 割賦プラン一覧明細タイプ.お客様機器延長保証期間  ←           割賦プラン一覧照会(eoスマートリンク)明細.お客様機器延長保証期間
				subbean.sendMessageString(FUW10701SFConst.CUST_KIKI_ECHS_PRD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("cust_kiki_echs_prd"));
				// 割賦プラン一覧明細タイプ.端末補償期間   ←                    割賦プラン一覧照会(eoスマートリンク)明細.端末補償期間
				subbean.sendMessageString(FUW10701SFConst.TMCP_PRD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("tmcp_prd"));
				// 割賦プラン一覧明細タイプ.料金プラン固定単価料金コースコード ← 割賦プラン一覧照会(eoスマートリンク)明細.料金プラン固定単価料金コースコード
				subbean.sendMessageString(FUW10701SFConst.KTTANKA_PCRS_CD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kttanka_pcrs_cd"));
				// 割賦プラン一覧明細タイプ.料金プラン固定単価料金プランコード← 割賦プラン一覧照会(eoスマートリンク)明細.料金プラン固定単価料金プランコード
				subbean.sendMessageString(FUW10701SFConst.KTTANKA_PPLAN_CD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kttanka_pplan_cd"));
				// 割賦プラン一覧明細タイプ.料金プラン固定金額  ←               割賦プラン一覧照会(eoスマートリンク)明細.料金プラン固定金額
				subbean.sendMessageString(FUW10701SFConst.PPLAN_KOTEI_AMNT_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_kotei_amnt"));
				// 割賦プラン一覧明細タイプ.料金プラン固定単位コード名  ←       割賦プラン一覧照会(eoスマートリンク)明細.料金プラン固定単位コード名
				subbean.sendMessageString(FUW10701SFConst.PPLAN_KOTEI_TANI_CD_NM_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_kotei_tani_cd_nm"));
				// 割賦プラン一覧明細タイプ.料金プラン固定単位コード略称  ←     割賦プラン一覧照会(eoスマートリンク)明細.料金プラン固定単位コード略称
				subbean.sendMessageString(FUW10701SFConst.PPLAN_KOTEI_TANI_CD_ALI_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_kotei_tani_cd_ali"));
			}
		}

		return bean[0];
	}

	/**
	 * 下りマッピングをします。(割賦契約一覧照会(eoスマートリンク)SC)
	 * 
	 * <br> 
	 * @param bean eoスマートリンク申込
	 * @param outputMap
	 * @return X31SDataBeanAccess
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess getFUSV025602SC(X31SDataBeanAccess bean, HashMap<String, Object> outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey(FUSV025602SC))
		{
			parentMap = (HashMap)outputMap.get(FUSV025602SC);
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listFUSV025602SC_kk_t_kap_kei_EKK2541B501CBSMsg1List = bean.getDataBeanArray(FUW10701SFConst.KK_T_KAP_KEI);

		childList = null;

		if (listFUSV025602SC_kk_t_kap_kei_EKK2541B501CBSMsg1List != null && parentMap != null && parentMap.containsKey(EKK2541B501CBSMSG1LIST))
		{

			childList = (ArrayList)parentMap.get(EKK2541B501CBSMSG1LIST);

			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if (listFUSV025602SC_kk_t_kap_kei_EKK2541B501CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = listFUSV025602SC_kk_t_kap_kei_EKK2541B501CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = listFUSV025602SC_kk_t_kap_kei_EKK2541B501CBSMsg1List.addDataBean();
				}

				HashMap childMap = (HashMap)childList.get(i);

				if (subbean == null)
				{
					continue;
				}

				if (childMap == null)
				{
					continue;
				}

				// 割賦契約一覧明細タイプ.割賦契約番号 ←              割賦契約一覧照会(eoスマートリンク)明細.割賦契約番号
				subbean.sendMessageString(FUW10701SFConst.KAP_KEI_NO_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kap_kei_no"));
				// 割賦契約一覧明細タイプ.割賦契約ステータス ←        割賦契約一覧照会(eoスマートリンク)明細.割賦契約ステータス
				subbean.sendMessageString(FUW10701SFConst.KAP_KEI_STAT_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kap_kei_stat"));
				// 割賦契約一覧明細タイプ.割賦契約締結年月日 ←        割賦契約一覧照会(eoスマートリンク)明細.割賦契約締結年月日
				subbean.sendMessageString(FUW10701SFConst.KAP_KEI_CNC_YMD_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kap_kei_cnc_ymd"));
				// 割賦契約一覧明細タイプ.割賦請求開始年月 ←         割賦契約一覧照会(eoスマートリンク)明細.割賦請求開始年月
				subbean.sendMessageString(FUW10701SFConst.KAP_SEIKY_STA_YM_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kap_seiky_sta_ym"));
				// 割賦契約一覧明細タイプ.割賦契約課金開始年月日 ←         割賦契約一覧照会(eoスマートリンク)明細.割賦契約課金開始年月日
				subbean.sendMessageString(FUW10701SFConst.KAP_KEI_CHRG_STAYMD_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kap_kei_chrg_staymd"));
				// 割賦契約一覧明細タイプ.割賦支払い残回数 ←          割賦契約一覧照会(eoスマートリンク)明細.割賦支払い残回数
				subbean.sendMessageString(FUW10701SFConst.KAP_PAY_ZAN_CNT_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kap_pay_zan_cnt"));
				// 割賦契約一覧明細タイプ.割賦販売形態コード ←        割賦契約一覧照会(eoスマートリンク)明細.割賦販売形態コード
				subbean.sendMessageString(FUW10701SFConst.KAP_HAMBAI_FORM_CD_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kap_hambai_form_cd"));
				// 割賦契約一覧明細タイプ.割賦販売形態コード略称 ←    割賦契約一覧照会(eoスマートリンク)明細.割賦販売形態コード略称
				subbean.sendMessageString(FUW10701SFConst.KAP_HAMBAI_FORM_CD_ALI_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kap_hambai_form_cd_ali"));
				// 割賦契約一覧明細タイプ.割賦支払い回数 ←            割賦契約一覧照会(eoスマートリンク)明細.割賦支払い回数
				subbean.sendMessageString(FUW10701SFConst.KAP_PAY_CNT_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kap_pay_cnt"));
				// 割賦契約一覧明細タイプ.割賦残高 ←                  割賦契約一覧照会(eoスマートリンク)明細.割賦残高
				subbean.sendMessageString(FUW10701SFConst.KAP_ZDK_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kap_zdk"));
				// 割賦契約一覧明細タイプ.複数端末購入不可期間 ←      割賦契約一覧照会(eoスマートリンク)明細.複数端末購入不可期間
				subbean.sendMessageString(FUW10701SFConst.HUKUSU_TNMT_BUY_FAIL_PRD_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("hukusu_tnmt_buy_fail_prd"));
				// 割賦契約一覧明細タイプ.宅内機器型式名 ←            割賦契約一覧照会(eoスマートリンク)明細.宅内機器型式名
				subbean.sendMessageString(FUW10701SFConst.TAKNKIKI_MODEL_NM_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("taknkiki_model_nm"));
				// 割賦契約一覧明細タイプ.機器製造番号 ←              割賦契約一覧照会(eoスマートリンク)明細.機器製造番号
				subbean.sendMessageString(FUW10701SFConst.KIKI_SEIZO_NO_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kiki_seizo_no"));
				// 割賦契約一覧明細タイプ.機器提供サービス契約番号 ←  割賦契約一覧照会(eoスマートリンク)明細.機器提供サービス契約番号
				subbean.sendMessageString(FUW10701SFConst.KKTK_SVC_KEI_NO_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kktk_svc_kei_no"));
				// 割賦契約一覧明細タイプ.機器提供サービス契約ステータス ← 割賦契約一覧照会(eoスマートリンク)明細.機器提供サービス契約ステータス
				subbean.sendMessageString(FUW10701SFConst.KKTK_SVC_KEI_STAT_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kktk_svc_kei_stat"));
				// 割賦契約一覧明細タイプ.宅内機器型式コード ← 割賦契約一覧照会(eoスマートリンク)明細.宅内機器型式コード
				subbean.sendMessageString(FUW10701SFConst.TAKNKIKI_MODEL_CD_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("taknkiki_model_cd"));
				// 割賦契約一覧明細タイプ.保証・補償期間開始日算出基準年月日 ← 割賦契約一覧照会(eoスマートリンク)明細.保証・補償期間開始日算出基準年月日
				subbean.sendMessageString(FUW10701SFConst.HCPRD_STAD_SNSTSTD_YMD_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("hcprd_stad_snststd_ymd"));
				// 割賦契約一覧明細タイプ.メーカー保証期間開始日算出方法識別コード
				//                                          ← 割賦契約一覧照会(eoスマートリンク)明細.メーカー保証期間開始日算出方法識別コード
				subbean.sendMessageString(FUW10701SFConst.MKHS_PRD_STAD_SSW_SKCD_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("mkhs_prd_stad_ssw_skcd"));
				// 割賦契約一覧明細タイプ.端末補償期間開始日算出方法識別コード← 割賦契約一覧照会(eoスマートリンク)明細.端末補償期間開始日算出方法識別コード
				subbean.sendMessageString(FUW10701SFConst.TMCP_PRD_STAD_SSW_SKCD_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("tmcp_prd_stad_ssw_skcd"));
				// 割賦契約一覧明細タイプ.お客様機器メーカー保証期間  ← 割賦契約一覧照会(eoスマートリンク)明細.お客様機器メーカー保証期間
				subbean.sendMessageString(FUW10701SFConst.CUST_KIKI_MKHS_PRD_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("cust_kiki_mkhs_prd"));
				// 割賦契約一覧明細タイプ.お客様機器延長保証期間      ← 割賦契約一覧照会(eoスマートリンク)明細.お客様機器延長保証期間
				subbean.sendMessageString(FUW10701SFConst.CUST_KIKI_ECHS_PRD_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("cust_kiki_echs_prd"));
				// 割賦契約一覧明細タイプ.端末補償期間                ← 割賦契約一覧照会(eoスマートリンク)明細.端末補償期間
				subbean.sendMessageString(FUW10701SFConst.TMCP_PRD_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("tmcp_prd"));
				// 割賦契約一覧明細タイプ.機器オプションサービス契約番号 ← 割賦契約一覧照会(eoスマートリンク)明細.機器オプションサービス契約番号
				subbean.sendMessageString(FUW10701SFConst.KKOP_SVC_KEI_NO_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kkop_svc_kei_no"));
				// 割賦契約一覧明細タイプ.機器オプションサービス契約ステータス ← 割賦契約一覧照会(eoスマートリンク)明細.機器オプションサービス契約ステータス
				subbean.sendMessageString(FUW10701SFConst.KKOP_SVC_KEI_STAT_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kkop_svc_kei_stat"));
				// 割賦契約一覧明細タイプ.料金プラン固定単価料金コースコード ← 割賦契約一覧照会(eoスマートリンク)明細.料金プラン固定単価料金コースコード
				subbean.sendMessageString(FUW10701SFConst.KTTANKA_PCRS_CD_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kttanka_pcrs_cd"));
				// 割賦契約一覧明細タイプ.料金プラン固定単価料金プランコード← 割賦契約一覧照会(eoスマートリンク)明細.料金プラン固定単価料金プランコード
				subbean.sendMessageString(FUW10701SFConst.KTTANKA_PPLAN_CD_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kttanka_pplan_cd"));
				// 割賦契約一覧明細タイプ.料金プラン固定金額          ←  割賦契約一覧照会(eoスマートリンク)明細.料金プラン固定金額
				subbean.sendMessageString(FUW10701SFConst.PPLAN_KOTEI_AMNT_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_kotei_amnt"));
				// 割賦契約一覧明細タイプ.料金プラン固定単位コード名  ←  割賦契約一覧照会(eoスマートリンク)明細.料金プラン固定単位コード名
				subbean.sendMessageString(FUW10701SFConst.PPLAN_KOTEI_TANI_CD_NM_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_kotei_tani_cd_nm"));
				// 割賦契約一覧明細タイプ.料金プラン固定単位コード略称 ← 割賦契約一覧照会(eoスマートリンク)明細.料金プラン固定単位コード略称
				subbean.sendMessageString(FUW10701SFConst.PPLAN_KOTEI_TANI_CD_ALI_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_kotei_tani_cd_ali"));
				// 割賦契約一覧明細タイプ.割賦一括請求切替年月 ← 割賦契約一覧照会(eoスマートリンク)明細.割賦一括請求切替年月
				subbean.sendMessageString(FUW10701SFConst.KAP_IKT_SIKY_SWCH_YM_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("kap_ikt_siky_swch_ym"));
				// 割賦契約一覧明細タイプ.保証・補償期間開始日算出基準年月日識別コード 
				//                                 ← 割賦契約一覧照会(eoスマートリンク)明細.保証・補償期間開始日算出基準年月日識別コード
				subbean.sendMessageString(FUW10701SFConst.HCPRD_STAD_SNSTSTD_YMD_SCD_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("hcprd_stad_snststd_ymd_scd"));
			}
		}

		return bean;
	}

	/**
	 * 下りマッピングをします。(オプションサービス契約一覧照会(サービス契約番号)SC)
	 * 
	 * <br> 
	 * @param bean eoスマートリンク申込
	 * @param outputMap
	 * @return X31SDataBeanAccess
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess getFUSV025603SC(X31SDataBeanAccess bean, HashMap<String, Object> outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey(FUSV025603SC))
		{
			parentMap = (HashMap)outputMap.get(FUSV025603SC);
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listFUSV025603SC_kk_t_op_svc_kei_EKK0351B002CBSMsg1List = bean.getDataBeanArray(FUW10701SFConst.KK_T_OP_SVC_KEI);

		childList = null;

		if (listFUSV025603SC_kk_t_op_svc_kei_EKK0351B002CBSMsg1List != null && parentMap != null && parentMap.containsKey(EKK0351B002CBSMSG1LIST))
		{

			childList = (ArrayList)parentMap.get(EKK0351B002CBSMSG1LIST);

			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if (listFUSV025603SC_kk_t_op_svc_kei_EKK0351B002CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = listFUSV025603SC_kk_t_op_svc_kei_EKK0351B002CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = listFUSV025603SC_kk_t_op_svc_kei_EKK0351B002CBSMsg1List.addDataBean();
				}

				HashMap childMap = (HashMap)childList.get(i);

				if (subbean == null)
				{
					continue;
				}

				if (childMap == null)
				{
					continue;
				}

				// オプションサービス契約一覧照会(サービス契約番号)タイプ.オプションサービスコード名称 
				// ← オプションサービス契約一覧照会(サービス契約番号)明細.オプションサービスコード名称
				subbean.sendMessageString(FUW10701SFConst.OP_SVC_CD_NM_04, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("op_svc_cd_nm"));
				// オプションサービス契約一覧照会(サービス契約番号)タイプ.オプションサービス契約ステータス 
				// ← オプションサービス契約一覧照会(サービス契約番号)明細.オプションサービス契約ステータス
				subbean.sendMessageString(FUW10701SFConst.OP_SVC_KEI_STAT_04, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("op_svc_kei_stat"));
				// オプションサービス契約一覧照会(サービス契約番号)タイプ.オプションサービス契約番号 
				// ← オプションサービス契約一覧照会(サービス契約番号)明細.オプションサービス契約番号
				subbean.sendMessageString(FUW10701SFConst.OP_SVC_KEI_NO_04, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("op_svc_kei_no"));
				// オプションサービス契約一覧照会(サービス契約番号)タイプ.オプションサービスコード 
				// ← オプションサービス契約一覧照会(サービス契約番号)明細.オプションサービスコード
				subbean.sendMessageString(FUW10701SFConst.OP_SVC_CD_04, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("op_svc_cd"));
				// オプションサービス契約一覧照会(サービス契約番号)タイプ.料金コースコード 
				// ← オプションサービス契約一覧照会(サービス契約番号)明細.料金コースコード
				subbean.sendMessageString(FUW10701SFConst.PCRS_CD_04, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pcrs_cd"));
				// オプションサービス契約一覧照会(サービス契約番号)タイプ.料金プランコード 
				// ← オプションサービス契約一覧照会(サービス契約番号)明細.料金プランコード
				subbean.sendMessageString(FUW10701SFConst.PPLAN_CD_04, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_cd"));
				// オプションサービス契約一覧照会(サービス契約番号)タイプ.オプションサービス契約ステータス名称 
				// ← オプションサービス契約一覧照会(サービス契約番号)明細.オプションサービス契約ステータス名称
				subbean.sendMessageString(FUW10701SFConst.OP_SVC_KEI_STAT_NM_04, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("op_svc_kei_stat_nm"));
				// オプションサービス契約一覧照会(サービス契約番号)タイプ.サービス解約理由コード 
				// ← オプションサービス契約一覧照会(サービス契約番号)明細.サービス解約理由コード
				subbean.sendMessageString(FUW10701SFConst.SVC_DLRE_CD_04, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("svc_dlre_cd"));
				// オプションサービス契約一覧照会(サービス契約番号)タイプ.サービス課金開始年月日
				// ← オプションサービス契約一覧照会(サービス契約番号)明細.サービス課金開始年月日
				subbean.sendMessageString(FUW10701SFConst.SVC_CHRG_STAYMD_04, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("svc_chrg_staymd"));
				// オプションサービス契約一覧照会(サービス契約番号)タイプ.サービス課金終了年月日
				// ← オプションサービス契約一覧照会(サービス契約番号)明細.サービス課金終了年月日
				subbean.sendMessageString(FUW10701SFConst.SVC_CHRG_ENDYMD_04, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("svc_chrg_endymd"));
				// オプションサービス契約一覧照会(サービス契約番号)タイプ.表示用サービス提供開始年月日 
				// ← オプションサービス契約一覧照会(サービス契約番号)明細.表示用サービス提供開始年月日
				subbean.sendMessageString(FUW10701SFConst.DSP_SVCTK_STAYMD_04, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("dsp_svctk_staymd"));
				// オプションサービス契約一覧照会(サービス契約番号)タイプ.最大オプションサービス数 
				// ←  オプションサービス契約一覧照会(サービス契約番号)明細.最大オプションサービス数
				subbean.sendMessageString(FUW10701SFConst.MAX_OP_SVC_CNT_04, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("max_op_svc_cnt"));

			}
		}

		return bean;
	}

	/**
	 * 下りマッピングをします。(料金コース_オプションサービス一意照会SC)
	 * 
	 * <br> 
	 * @param bean eoスマートリンク申込
	 * @param outputMap
	 * @return X31SDataBeanAccess
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess getFUSV025604SC(X31SDataBeanAccess bean, HashMap<String, Object> outputMap)
	{
		HashMap parentMap = null;
		if (outputMap.containsKey(FUSV025604SC))
		{
			parentMap = (HashMap)outputMap.get(FUSV025604SC);
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listFUSV025604SC_kk_m_pcrs_op_svc_EKK0811A010CBSMsg1List = bean.getDataBeanArray(FUW10701SFConst.KK_M_PCRS_OP_SVC);

		childList = null;

		if (listFUSV025604SC_kk_m_pcrs_op_svc_EKK0811A010CBSMsg1List != null && parentMap != null && parentMap.containsKey(EKK0811A010CBSMSG1LIST))
		{

			childList = (ArrayList)parentMap.get(EKK0811A010CBSMSG1LIST);

			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if (listFUSV025604SC_kk_m_pcrs_op_svc_EKK0811A010CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = listFUSV025604SC_kk_m_pcrs_op_svc_EKK0811A010CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = listFUSV025604SC_kk_m_pcrs_op_svc_EKK0811A010CBSMsg1List.addDataBean();
				}

				HashMap childMap = (HashMap)childList.get(i);

				if (subbean == null)
				{
					continue;
				}

				if (childMap == null)
				{
					continue;
				}

				// 料金コース_オプションサービス一意明細タイプ.最大オプションサービス数 ←  料金コース_オプションサービス一意照会明細.最大オプションサービス数
				subbean.sendMessageString(FUW10701SFConst.MAX_OP_SVC_CNT_05, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("max_op_svc_cnt"));
				// 料金コース_オプションサービス一意明細タイプ.無料オプションサービス数 ← 料金コース_オプションサービス一意照会明細.無料オプションサービス数
				subbean.sendMessageString(FUW10701SFConst.MRYO_OP_SVC_CNT_05, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("mryo_op_svc_cnt"));

			}
		}

		return bean;
	}

	/**
	 * 下りマッピングをします。(料金プラン固定単価SC)
	 * 
	 * <br> 
	 * @param bean eoスマートリンク申込
	 * @param outputMap
	 * @return X31SDataBeanAccess
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess getFUSV025605SC(X31SDataBeanAccess bean, HashMap<String, Object> outputMap)
	{
		HashMap parentMap = null;
		if (outputMap.containsKey(FUSV025605SC))
		{
			parentMap = (HashMap)outputMap.get(FUSV025605SC);
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listFUSV025605SC_kk_m_pplan_kttanka_EKK0601B001CBSMsg1List =
				bean.getDataBeanArray(FUW10701SFConst.KK_M_PPLAN_KTTANKA);

		childList = null;

		if (listFUSV025605SC_kk_m_pplan_kttanka_EKK0601B001CBSMsg1List != null && parentMap != null && parentMap.containsKey(EKK0601B001CBSMSG1LIST))
		{

			childList = (ArrayList)parentMap.get(EKK0601B001CBSMSG1LIST);

			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if (listFUSV025605SC_kk_m_pplan_kttanka_EKK0601B001CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = listFUSV025605SC_kk_m_pplan_kttanka_EKK0601B001CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = listFUSV025605SC_kk_m_pplan_kttanka_EKK0601B001CBSMsg1List.addDataBean();
				}

				HashMap childMap = (HashMap)childList.get(i);

				if (subbean == null)
				{
					continue;
				}

				if (childMap == null)
				{
					continue;
				}

				// 料金プラン固定単価明細タイプ.料金プラン固定金額 ←  料金プラン固定単価(オプション申込料金)明細.最大オプションサービス数
				subbean.sendMessageString(FUW10701SFConst.PPLAN_KOTEI_AMNT_06, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_kotei_amnt"));
				// 料金プラン固定単価明細タイプ.料金プラン固定単位コード ← 料金プラン固定単価(オプション申込料金)明細.料金プラン固定単位コード
				subbean.sendMessageString(FUW10701SFConst.PPLAN_KOTEI_TANI_CD_NM_06, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_kotei_tani_cd_nm"));
				// 料金プラン固定単価明細タイプ.料金プラン単価種別コード ← 料金プラン固定単価(オプション申込料金)明細.料金プラン単価種別コード
				subbean.sendMessageString(FUW10701SFConst.PPLAN_TANKA_SBT_CD_06, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_tanka_sbt_cd"));
				// 料金プラン固定単価明細タイプ.料金プラン料金種別コード ← 料金プラン固定単価(オプション申込料金)明細.料金プラン料金種別コード
				subbean.sendMessageString(FUW10701SFConst.PPLAN_PRC_SBT_CD_06, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_prc_sbt_cd"));

			}
		}

		return bean;
	}

	/**
	 * 下りマッピングをします。(コード名称管理一覧照会SC)
	 * 
	 * <br> 
	 * @param bean eoスマートリンク申込
	 * @param outputMap
	 * @return X31SDataBeanAccess
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess getFUSV025606SC(X31SDataBeanAccess bean, HashMap<String, Object> outputMap)
	{
		HashMap parentMap = null;
		if (outputMap.containsKey(FUSV025606SC))
		{
			parentMap = (HashMap)outputMap.get(FUSV025606SC);
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listFUSV025606SC_kap_hambai_form_cd_list_EZM0171B010CBSMsg1List =
				bean.getDataBeanArray(FUW10701SFConst.KAP_HAMBAI_FORM_CD_LIST);

		childList = null;

		if (listFUSV025606SC_kap_hambai_form_cd_list_EZM0171B010CBSMsg1List != null && parentMap != null
				&& parentMap.containsKey(EZM0171B010CBSMSG1LIST))
		{

			childList = (ArrayList)parentMap.get(EZM0171B010CBSMSG1LIST);

			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if (listFUSV025606SC_kap_hambai_form_cd_list_EZM0171B010CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = listFUSV025606SC_kap_hambai_form_cd_list_EZM0171B010CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = listFUSV025606SC_kap_hambai_form_cd_list_EZM0171B010CBSMsg1List.addDataBean();
				}

				HashMap childMap = (HashMap)childList.get(i);

				if (subbean == null)
				{
					continue;
				}

				if (childMap == null)
				{
					continue;
				}

				// 割賦販売形態コード明細タイプ.コード区分 ←  コード名称管理一覧照会明細.コード区分
				subbean.sendMessageString(FUW10701SFConst.CD_DIV_07, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cd_div"));
				// 割賦販売形態コード明細タイプ.コード区分名 ← コード名称管理一覧照会明細.コード区分名
				subbean.sendMessageString(FUW10701SFConst.CD_DIV_NM_07, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cd_div_nm"));
				// 割賦販売形態コード明細タイプ.コード区分略称 ← コード名称管理一覧照会明細.コード区分略称
				subbean.sendMessageString(FUW10701SFConst.CD_DIV_ALI_07, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cd_div_ali"));
			}
		}

		return bean;
	}
	
	/**
	 * 下りマッピングをします。(業務パラメータ管理一意照会マップ)
	 *
	 * <br>
	 * @param bean eoスマートリンク申込
	 * @param outputMap
	 * @return X31SDataBeanAccess
	 */
	public X31SDataBeanAccess getFUSV025607SC(X31SDataBeanAccess bean, HashMap<String, Object> outputMap)
	{
		return getEZM0321A010WorkParamSette(bean, outputMap, FUSV025607SC, FUW10701SFConst.INFO_TABLET_DISP_NUM);
	}
	
	/**
	 * 下りマッピング用部品
	 * EZM0321A010のwork_param_sette_value項目をbeanのbeanItem項目にString型で設定します。
	 * <br>
	 * @param bean
	 * @param outputMap
	 * @param sc
	 * @param beanItem
	 * @return X31SDataBeanAccess
	 */
	@SuppressWarnings("unchecked")
	private X31SDataBeanAccess getEZM0321A010WorkParamSette(X31SDataBeanAccess bean, HashMap<String, Object> outputMap, String sc, String beanItem)
	{
		HashMap<String, Object> parentMap = null;
		if (outputMap.containsKey(sc))
		{
			parentMap = (HashMap<String, Object>)outputMap.get(sc);
		}

		if (null != parentMap && parentMap.containsKey(EZM0321A010CBSMSG1LIST))
		{
			ArrayList<HashMap<String, Object>> childList = (ArrayList<HashMap<String, Object>>)parentMap.get(EZM0321A010CBSMSG1LIST);

			for (int i = 0; i < childList.size(); i++)
			{
				HashMap<String, Object> childMap = childList.get(i);

				if (childMap.containsKey(WORK_PARAM_SETTE_VALUE))
				{
					// 引数beanItemの項目 ←
					// 業務パラメータ管理一意照会.業務パラメータ管理一意照会明細.業務パラメータ名
					bean.sendMessageString(beanItem, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get(WORK_PARAM_SETTE_VALUE));
				}
			}
		}
		return bean;
	}
	
	/**
	 * 下りマッピングをします。(eoスマートリンク関連チェックコンポーネントCC)
	 *
	 * <br>
	 * @param bean eoスマートリンク申込
	 * @param outputMap
	 * @return X31SDataBeanAccess
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess getFUSV025601CC(X31SDataBeanAccess bean, HashMap<String, Object> outputMap) throws Exception
	{
		Map<String, String> item = JFUWebCommon.getDispItemsAsMap(QUERY_PATH, QUERY_ATTR_NAME);

		HashMap parentMap = null;
		if (outputMap.containsKey(FUSV025601CC))
		{
			parentMap = (HashMap)outputMap.get(FUSV025601CC);
		}

		X31SDataBeanAccessArray listFUSV025601CC_reration_kekka_list = bean.getDataBeanArray(FUW10701SFConst.RERATION_KEKKA_LIST);

		X31SDataBeanAccess subbean = listFUSV025601CC_reration_kekka_list.addDataBean();

		if (parentMap != null)
		{
			// 関連チェック結果リスト.関連チェック結果リスト ←  タブレット支払残高有無（ANK-2055-00-00にて未使用となる)
			subbean.sendMessageString(FUW10701SFConst.TABLET_PAY_ZAN_UM_16, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get(TABLET_PAY_ZAN_UM));
			// タブレット通算台数上限 ←  タブレット通算台数上限
			bean.sendMessageString(FUW10701SFConst.KK_TAB_TOTAL_CNT_MAX, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get(KK_TAB_TOTAL_CNT_MAX));
			// 同時割賦契約数上限 ←  同時割賦契約数上限
			bean.sendMessageString(FUW10701SFConst.KK_KAP_SHR_CNT_MAX, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get(KK_KAP_SHR_CNT_MAX));
			// フロント同時申込台数上限 ← 	 フロント同時申込台数上限
			bean.sendMessageString(FUW10701SFConst.FU_SHR_MSKM_CNT_MAX, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get(FU_SHR_MSKM_CNT_MAX));
			// 割賦契約割引適用上限数 ←  割賦契約割引適用上限数
			bean.sendMessageString(FUW10701SFConst.KK_KAP_WRBK_MAX, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get(KK_KAP_WRBK_MAX));
		}
		// Ｎｅｔ新規申込み台数制限値 ※プロパティファイルから取得
		bean.sendMessageString(FUW10701SFConst.NET_NEW_MSKM_CNT_MAX, X31CWebConst.DATABEAN_SET_VALUE, item.get(NET_NEW_MSKM_CNT_MAX));
		// 複数台申込不可期間申込可能台数制限値 ※プロパティファイルから取得
		bean.sendMessageString(FUW10701SFConst.MULTI_MSKM_NOT_PSB_MSKM_CNT_MAX, X31CWebConst.DATABEAN_SET_VALUE, 
				item.get(MULTI_MSKM_PSB_MSKM_CNT_MAX));

		return bean;
	}

	/**
	 * 下りマッピングをします。(セキュリティパック申込表示制御CC)
	 *
	 * <br>
	 * @param bean eoスマートリンク申込
	 * @param outputMap
	 * @return X31SDataBeanAccess
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess getFUSV025602CC(X31SDataBeanAccess bean, HashMap<String, Object> outputMap) throws Exception
	{
		HashMap parentMap = null;

		if (outputMap.containsKey(FUSV025602CC))
		{
			parentMap = (HashMap)outputMap.get(FUSV025602CC);
		}

		if (parentMap != null)
		{
			// ファミリーパック表示パターン
			bean.sendMessageString(FUW10701SFConst.FP_DSP_PTN, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get(FP_DSP_PTN));
			// ウイルスバスター表示パターン
			bean.sendMessageString(FUW10701SFConst.VB_DSP_PTN, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get(VB_DSP_PTN));
			// ファミリーパック契約有無
			bean.sendMessageString(FUW10701SFConst.FP_KEI_UM, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get(FP_KEI_UM));
			// FP解約ルーター表示パターン
			bean.sendMessageString(FUW10701SFConst.FP_CAN_DSP_PTN, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get(FP_CAN_DSP_PTN));
			// FP継続ルーター表示パターン
			bean.sendMessageString(FUW10701SFConst.FP_CON_DSP_PTN, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get(FP_CON_DSP_PTN));
			// 多機能ルーターVA区分
			bean.sendMessageString(FUW10701SFConst.TAKINORT_VA_KBN, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get(TAKINORT_VA_KBN));
			// リモートサポートプラス表示パターン
			bean.sendMessageString(FUW10701SFConst.RS_DSP_PTN, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get(RS_DSP_PTN));
			// セキュリティパック契約有無
			bean.sendMessageString(FUW10701SFConst.SP_KEI_UM, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get(SP_KEI_UM));
			// ルーター区分
			bean.sendMessageString(FUW10701SFConst.ROOTER_KBN, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get(RT_KBN));
			// 多機能ルーター(無線)金額表示
			bean.sendMessageString(FUW10701SFConst.TKN_RT_MUSEN_AMNT, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get(TAKINO_RT_MUSEN_AMNT_DSP));
		}

		return bean;
	}

	/**
	 * 下りマッピングをします。(業務パラメータ管理一意照会マップ)
	 *
	 * <br>
	 * @param bean eoスマートリンク申込
	 * @param outputMap
	 * @return X31SDataBeanAccess
	 */
	public X31SDataBeanAccess getFUSV025608SC(X31SDataBeanAccess bean, HashMap<String, Object> outputMap)
	{
		return getEZM0321A010WorkParamSette(bean, outputMap, FUSV025608SC, FUW10701SFConst.KK_GH_TKKKMDL);
	}

	/**
	 * ＧＨ宅内機器型式を取得します。
	 * 
	 * <br>
	 * @param bean eoスマートリンク申込
	 * @param outputMap
	 * @return GHで対象となる宅内機器型式コードの一覧
	 */
	private List<String> getKkGhTkkmdl(X31SDataBeanAccess bean, HashMap<String, Object> outputMap)
	{
		getFUSV025608SC(bean, outputMap);

		String ghTaknkikiModelCd = bean.sendMessageString(FUW10701SFConst.KK_GH_TKKKMDL, X31CWebConst.DATABEAN_GET_VALUE);
		if (ghTaknkikiModelCd == null)
		{
			return new ArrayList<String>();
		}

		return Arrays.asList(ghTaknkikiModelCd.split(","));
	}

// ANK-3136-00-00 ADD START
	/**
	 * 上りマッピングをします。(工事案件一覧照会)
	 * 
	 * <br>
	 * @param bean
	 * @param outputMap
	 * @param func_code  機能コード
	 * @return HashMap
	 */
	public HashMap<String, Object> setFUSV025609SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(JCMConstants.FUNC_CODE_KEY, func_code);

		// ＫＥＹ＿工事案件番号サービス契約番号
		parentMap.put(KEY_KOJIAK_NO_SVC_KEI_NO, bean[INFO_IDX_SVC_KEI].sendMessageString(CommonInfoCFConst.SVC_KEI_NO_23, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put(FUSV025609SC, parentMap);

		return outputMap;
	}
// ANK-3136-00-00 ADD END
	
// ANK-3484-00-00 ADD START
	/**
	 * 上りマッピングをします。(料金プラン固定単価SC（ＰＣプラン）)
	 * 
	 * <br>
	 * @param bean  [0]：eoスマートリンク申込  [1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code  機能コード
	 * @return HashMap
	 */
	public HashMap<String, Object> setFUSV025610SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(JCMConstants.FUNC_CODE_KEY, func_code);

		outputMap.put(FUSV025610SC, parentMap);

		return outputMap;
	}
	
	/**
	 * 下りマッピングをします。(料金プラン固定単価SC（ＰＣプラン）)
	 * 
	 * <br> 
	 * @param bean eoスマートリンク申込
	 * @param outputMap
	 * @return X31SDataBeanAccess
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess getFUSV025610SC(X31SDataBeanAccess bean, HashMap<String, Object> outputMap)
	{
		HashMap parentMap = null;
		if (outputMap.containsKey(FUSV025610SC))
		{
			parentMap = (HashMap)outputMap.get(FUSV025610SC);
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listFUSV025610SC_kk_m_pplan_kttanka_pc_planEKK0601B001CBSMsg1List =
				bean.getDataBeanArray(FUW10701SFConst.KK_M_PPLAN_KTTANKA_PC_PLAN_LIST);

		childList = null;

		if (listFUSV025610SC_kk_m_pplan_kttanka_pc_planEKK0601B001CBSMsg1List != null && parentMap != null && parentMap.containsKey(EKK0601B001CBSMSG1LIST))
		{

			childList = (ArrayList)parentMap.get(EKK0601B001CBSMSG1LIST);

			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if (listFUSV025610SC_kk_m_pplan_kttanka_pc_planEKK0601B001CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = listFUSV025610SC_kk_m_pplan_kttanka_pc_planEKK0601B001CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = listFUSV025610SC_kk_m_pplan_kttanka_pc_planEKK0601B001CBSMsg1List.addDataBean();
				}

				HashMap childMap = (HashMap)childList.get(i);

				if (subbean == null)
				{
					continue;
				}

				if (childMap == null)
				{
					continue;
				}

				// 料金プラン固定単価明細タイプ.料金プラン固定金額 ←  料金プラン固定単価(オプション申込料金)明細.最大オプションサービス数
				subbean.sendMessageString(FUW10701SFConst.PPLAN_KOTEI_AMNT_PC_PLAN_18, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_kotei_amnt_pc_plan"));
				// 料金プラン固定単価明細タイプ.料金プラン固定単位コード ← 料金プラン固定単価(オプション申込料金)明細.料金プラン固定単位コード
				subbean.sendMessageString(FUW10701SFConst.PPLAN_KOTEI_TANI_CD_NM_PC_PLAN_18, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_kotei_tani_cd_nm_pc_plan"));
				// 料金プラン固定単価明細タイプ.料金プラン単価種別コード ← 料金プラン固定単価(オプション申込料金)明細.料金プラン単価種別コード
				subbean.sendMessageString(FUW10701SFConst.PPLAN_TANKA_SBT_CD_PC_PLAN_18, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_tanka_sbt_cd_pc_plan"));
				// 料金プラン固定単価明細タイプ.料金プラン料金種別コード ← 料金プラン固定単価(オプション申込料金)明細.料金プラン料金種別コード
				subbean.sendMessageString(FUW10701SFConst.PPLAN_PRC_SBT_CD_PC_PLAN_18, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_prc_sbt_cd_pc_plan"));

			}
		}

		return bean;
	}
	
	/**
	 * 上りマッピングをします。(料金プラン固定単価SC（ＰＣワイドプラン）)
	 * 
	 * <br>
	 * @param bean  [0]：eoスマートリンク申込  [1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code  機能コード
	 * @return HashMap
	 */
	public HashMap<String, Object> setFUSV025611SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(JCMConstants.FUNC_CODE_KEY, func_code);

		outputMap.put(FUSV025611SC, parentMap);

		return outputMap;
	}
	
	/**
	 * 下りマッピングをします。(料金プラン固定単価SC（ＰＣワイドプラン）)
	 * 
	 * <br> 
	 * @param bean eoスマートリンク申込
	 * @param outputMap
	 * @return X31SDataBeanAccess
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess getFUSV025611SC(X31SDataBeanAccess bean, HashMap<String, Object> outputMap)
	{
		HashMap parentMap = null;
		if (outputMap.containsKey(FUSV025611SC))
		{
			parentMap = (HashMap)outputMap.get(FUSV025611SC);
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listFUSV025611SC_kk_m_pplan_kttanka_pc_wid_planEKK0601B001CBSMsg1List =
				bean.getDataBeanArray(FUW10701SFConst.KK_M_PPLAN_KTTANKA_PC_WID_PLAN_LIST);

		childList = null;

		if (listFUSV025611SC_kk_m_pplan_kttanka_pc_wid_planEKK0601B001CBSMsg1List != null && parentMap != null && parentMap.containsKey(EKK0601B001CBSMSG1LIST))
		{

			childList = (ArrayList)parentMap.get(EKK0601B001CBSMSG1LIST);

			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if (listFUSV025611SC_kk_m_pplan_kttanka_pc_wid_planEKK0601B001CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = listFUSV025611SC_kk_m_pplan_kttanka_pc_wid_planEKK0601B001CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = listFUSV025611SC_kk_m_pplan_kttanka_pc_wid_planEKK0601B001CBSMsg1List.addDataBean();
				}

				HashMap childMap = (HashMap)childList.get(i);

				if (subbean == null)
				{
					continue;
				}

				if (childMap == null)
				{
					continue;
				}

				// 料金プラン固定単価明細タイプ.料金プラン固定金額 ←  料金プラン固定単価(オプション申込料金)明細.最大オプションサービス数
				subbean.sendMessageString(FUW10701SFConst.PPLAN_KOTEI_AMNT_PC_WID_PLAN_19, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_kotei_amnt_pc_wid_plan"));
				// 料金プラン固定単価明細タイプ.料金プラン固定単位コード ← 料金プラン固定単価(オプション申込料金)明細.料金プラン固定単位コード
				subbean.sendMessageString(FUW10701SFConst.PPLAN_KOTEI_TANI_CD_NM_PC_WID_PLAN_19, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_kotei_tani_cd_nm_pc_wid_plan"));
				// 料金プラン固定単価明細タイプ.料金プラン単価種別コード ← 料金プラン固定単価(オプション申込料金)明細.料金プラン単価種別コード
				subbean.sendMessageString(FUW10701SFConst.PPLAN_TANKA_SBT_CD_PC_WID_PLAN_19, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_tanka_sbt_cd_pc_wid_plan"));
				// 料金プラン固定単価明細タイプ.料金プラン料金種別コード ← 料金プラン固定単価(オプション申込料金)明細.料金プラン料金種別コード
				subbean.sendMessageString(FUW10701SFConst.PPLAN_PRC_SBT_CD_PC_WID_PLAN_19, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("pplan_prc_sbt_cd_pc_wid_plan"));

			}
		}

		return bean;
	}
	
	/**
	 * 上りマッピングをします。(端末保障操作CC)
	 * 
	 * <br>
	 * @param bean  [0]：eoスマートリンク申込  [1]：共有フォームビーン
	 * @param outputMap
	 * @return HashMap
	 */
	public HashMap<String, Object> setFUSV025603CC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// IN項目:機能コード
		parentMap.put(FUNC_CD, func_code);
		// IN項目:処理区分
		parentMap.put(SHORI_DIV, SHOKAI_MODE);
		// IN項目:サービス契約番号
		parentMap.put(SVC_KEI_NO, bean[INFO_IDX_SVC_KEI].sendMessageString(CommonInfoCFConst.SVC_KEI_NO_23,
				X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put(FUSV025603CC, parentMap);

		return outputMap;
	}
	
	/**
	 * 下りマッピングをします。(端末保障操作CC)
	 *
	 * <br>
	 * @param bean 
	 * @param outputMap
	 * @param opeDate
	 * @return X31SDataBeanAccess
	 */
	public X31SDataBeanAccess getFUSV025603CC(X31SDataBeanAccess bean, HashMap<String, Object> outputMap, String opeDate) throws Exception
	{
		HashMap parentMap = null;

		if (outputMap.containsKey(FUSV025603CC))
		{
			parentMap = (HashMap)outputMap.get(FUSV025603CC);
		}

		if (parentMap != null)
		{
			HashMap<String, List<HashMap<String, Object>>> infoListMap = new HashMap<String, List<HashMap<String, Object>>>();
			List<HashMap<String, Object>> pcPlanList = new ArrayList<HashMap<String, Object>>();
			List<HashMap<String, Object>> pcWidePlanList = new ArrayList<HashMap<String, Object>>();
			HashMap<String, Object> pcPlanMap = new HashMap<String, Object>();
			HashMap<String, Object> pcWideMap = new HashMap<String, Object>();
			
			if (parentMap.get("info_list") != null)
			{
				infoListMap = (HashMap<String, List<HashMap<String, Object>>>) parentMap.get("info_list");
				if (infoListMap.get("pc_plan_list") != null)
				{
					pcPlanList = infoListMap.get("pc_plan_list");
					if (pcPlanList.size() != 0)
					{
						pcPlanMap = pcPlanList.get(0);
					}
				}
				if (infoListMap.get("pc_wide_list") != null)
				{
					pcWidePlanList = infoListMap.get("pc_wide_list");
					if (pcWidePlanList.size() != 0)
					{
						pcWideMap = pcWidePlanList.get(0);
					}
				}
			}
			
			if (!JKKStringUtil.isNullEmpty(pcPlanMap.get(OP_SVC_KEI_STAT)))
			{
				// ＰＣプランリスト.オプションサービス契約ステータスがnullまたは空文字でない場合、以下を行う。
				if (!JFUStrConst.CD00037_910.equals(pcPlanMap.get(OP_SVC_KEI_STAT)) && 
						!JFUStrConst.CD00037_920.equals(pcPlanMap.get(OP_SVC_KEI_STAT)))
				{
					// ************************************************************************************************
					// ＰＣプランを契約中の場合
					// （ＰＣプランリスト.オプションサービス契約ステータスが解約済でない、かつ、キャンセル済でない場合）
					// ************************************************************************************************
					if (!JKKStringUtil.isNullEmpty(pcWideMap.get(SBOP_SVC_KEI_STAT)))
					{
						// ＰＣワイドプランリスト.オプションサービス契約ステータスがnullまたは空文字でない場合、以下を行う。
						if (!JFUStrConst.CD00037_910.equals(pcWideMap.get(SBOP_SVC_KEI_STAT)) 
								&& !JFUStrConst.CD00037_920.equals(pcWideMap.get(SBOP_SVC_KEI_STAT)))
						{
							// *******************************************************************************************************
							// ＰＣワイドプランを契約中の場合
							// （ＰＣワイドプランリスト.オプションサービス契約ステータスが解約済でない、かつ、キャンセル済でない場合）
							// *******************************************************************************************************
							
							// ＰＣプラン申込状態識別コード
							bean.sendMessageString(FUW10701SFConst.PC_PLAN_STAT_SKCD, X31CWebConst.DATABEAN_SET_VALUE, PC_WIDE_PLAN_CONTRACT);
							return bean;
						}
						else
						{
							// ***********************************************************************************************
							// ＰＣワイドプランが解約済、または、キャンセル済の場合
							// （ＰＣワイドプランリスト.オプションサービス契約ステータスが解約済、または、キャンセル済の場合）
							// ***********************************************************************************************
							
							// ＰＣプラン申込状態識別コード
							bean.sendMessageString(FUW10701SFConst.PC_PLAN_STAT_SKCD, X31CWebConst.DATABEAN_SET_VALUE, PC_PLAN_CONTRACT);
							return bean;
						}
					}
					else
					{
						// ＰＣワイドプランリスト.オプションサービス契約ステータスがnullまたは空文字の場合
						// ＰＣプラン申込状態識別コード
						bean.sendMessageString(FUW10701SFConst.PC_PLAN_STAT_SKCD, X31CWebConst.DATABEAN_SET_VALUE, PC_PLAN_CONTRACT);
						return bean;
					}
				}
				else if (JFUStrConst.CD00037_910.equals(pcPlanMap.get(OP_SVC_KEI_STAT)))
				{
					// ******************************************************************
					// ＰＣプランが解約済の場合
					// （ＰＣプランリスト.オプションサービス契約ステータスが解約済の場合）
					// ******************************************************************
					
					// ＰＣプランリスト.サービス課金終了年月日を取得
					String svcChrgEndymd = (String)pcPlanMap.get(SVC_CHRG_ENDYMD);
					String tenMonthLaterSvcChrgEndymd = null;
					String tenMonthLaterSvcChrgEndym = null;
					String tmcpCnclRnkiYmd = (String)pcPlanMap.get(TMCP_CNCL_RNKI_YMD);
					
					if (!JKKStringUtil.isNullEmpty(svcChrgEndymd) && JFUWebCommon.isNull(tmcpCnclRnkiYmd))
					{
						// キャンセル連携年月日がnullまたは空文字の場合
						// サービス課金終了年月日がnullまたは空文字でない場合
						// サービス課金終了年月日の翌月から9ヶ月後の日付を取得
						tenMonthLaterSvcChrgEndymd = JPCUtilCommon.addMonth(svcChrgEndymd.substring(0, 6) + "01", 10);
						// サービス課金終了年月（10ヶ月後）を取得
						tenMonthLaterSvcChrgEndym = tenMonthLaterSvcChrgEndymd.substring(0, 6);
						
						if(Integer.parseInt(tenMonthLaterSvcChrgEndym) <= Integer.parseInt(opeDate.substring(0, 6)))
						{
							// **************************************************************
							// ＰＣプランのサービス課金終了日の翌月から9ヶ月経過している場合
							// **************************************************************
							// ＰＣプラン申込状態識別コード
							bean.sendMessageString(FUW10701SFConst.PC_PLAN_STAT_SKCD, X31CWebConst.DATABEAN_SET_VALUE, PC_PLAN_DSL_TEN_MONTH_LATER);
							return bean;
						}
						else
						{
							// *************************************
							// ＰＣプランが解約から10ヶ月未満の場合
							// *************************************
							// ＰＣプラン申込状態識別コード
							bean.sendMessageString(FUW10701SFConst.PC_PLAN_STAT_SKCD, X31CWebConst.DATABEAN_SET_VALUE, PC_PLAN_DSL_TEN_MONTH_EARLIER);
							return bean;
						}
					}
					else
					{
						// サービス課金終了年月日がnullまたは空文字の場合
						// ＰＣプラン申込状態識別コード
						bean.sendMessageString(FUW10701SFConst.PC_PLAN_STAT_SKCD, X31CWebConst.DATABEAN_SET_VALUE, PC_PLAN_NOT_CONTRACT);
						return bean;
					}
				}
				else if (JFUStrConst.CD00037_920.equals(pcPlanMap.get(OP_SVC_KEI_STAT)))
				{
					// ************************************************************************
					// ＰＣプランがキャンセル済の場合
					// （ＰＣプランリスト.オプションサービス契約ステータスがキャンセル済の場合）
					// ************************************************************************
					// ＰＣプラン申込状態識別コード
					bean.sendMessageString(FUW10701SFConst.PC_PLAN_STAT_SKCD, X31CWebConst.DATABEAN_SET_VALUE, PC_PLAN_NOT_CONTRACT);
					return bean;
				}
			}
			else
			{
				// ＰＣプランリスト.オプションサービス契約ステータスがnullまたは空文字の場合
				// ＰＣプラン申込状態識別コード
				bean.sendMessageString(FUW10701SFConst.PC_PLAN_STAT_SKCD, X31CWebConst.DATABEAN_SET_VALUE, PC_PLAN_NOT_CONTRACT);
				return bean;
			}
		}
		return bean;
	}
// ANK-3484-00-00 ADD END
// ANK-3642-00-00 ADD START
	/**
	 * 表示対象宅内機器チェック用のパラメータ生成
	 * @param commoninfoBean
	 * @param bl
	 * @return
	 */
	private HashMap<String, String> editTabletCheckParam(HashMap<String, String> workMap, X31SDataBeanAccess bean, X31BWebBusinessLogic bl)
	{
		// 販売タイプを取得
		workMap.put(JFUStrConst.TABLET_DSP_HANBAI_TYPE, JFUStrConst.HNBAI_TYPE_CON);
		// 申込区分
		workMap.put(JFUStrConst.TABLET_DSP_MSKM_KBN, "3");
		// サービスタイプ
		String serviceType = null;
		if (JFUStrConst.CD00133_04.equals(bean.sendMessageString(CommonInfoCFConst.PRC_GRP_CD_23, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			serviceType = JFUStrConst.CD01176_MF;
		} else if (JFUStrConst.CD00133_03.equals(bean.sendMessageString(CommonInfoCFConst.PRC_GRP_CD_23, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			serviceType = JFUStrConst.CD01176_MZ;
		} else
		{
			serviceType = JFUStrConst.CD01176_HF;
		}
		workMap.put(JFUStrConst.TABLET_DSP_SERVICE_TYPE, serviceType);
		// オンライン運用日付
		String strOpeDate = JFUWebCommon.getOpeDate(bl, null);
		workMap.put(JFUStrConst.TABLET_DSP_DISPSTART_YMD, strOpeDate);
		
		return workMap;
	}
// ANK-3642-00-00 ADD END
}