/*********************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *	システム名		：eo顧客基幹システム
 *	モジュール名	：FUSV0042_FUSV0042OPDBMapper
 *	ソースファイル名：FUSV0042_FUSV0042OPDBMapper.java
 *	作成者			：FJ
 *	日付			：2012年02月13日
 *＜機能概要＞
 *	BP（2番号サービスお申し込み(申込)）へのＤ−Ｂマッピングクラスです。
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	v1.00.00	2012/02/13	FJ		新規作成
 *	v3.00.		2012/3/30	FJ)西村	【ANK-0047-00-00】通話料指定額到達通知機能対応(ICS)
 *	v3.00		2012/9/27	FJ)山名	【ST1-2012-0000541】通信事業者コード対応
 *	v4.00		2012/10/05	FJ)西村	【ANK-1223-00-00】 進捗補足事項編集対応
 *	v4.00		2012/10/16	FJ)岡井	【IT1-2012-0001090】 電話番号使用場所番号に値を設定しない対応
 *	v4.00		2012/12/05	FJ)西村	【IT2-2012-0001979】 緊急通報住所設定対応
 *	v5.00		2013/01/29	FJ)西村	【ST2-2013-0000294】照査済・締結済の場合の機器変更対応
 *	v5.00		2013/02/25	FJ)谷本	【ANK-1461-00-00】番ポ申込他の各機能における機種依存文字の取り扱い対応
 *	v5.00		2013/03/19	FJ)瀧澤	【OT-2013-0000464】NRN番号の設定値修正
 *	v12.00		2014/10/14	FJ)谷本	【ANK-2309-00-00】【ＮＯ．１５４９】全販売チャンネル同番移転対応
 *  v29.00      2017/01/23  FJ)張本 【ANK-2953-00-00】電話番号のポート割当方法改善
 *  v29.01      2017/03/03  FJ)張本 【IT1-2017-0000014】 発信者番号通知変更時の進捗スキーマ登録不正対応
 *  v72.00      2024/05/08  FJ)美濃原 【ANK-4494-00-00】【eo定期】双方向番ポ対応
 *
 **********************************************************************/
package eo.web.webview.mapping;

import static com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import com.fujitsu.futurity.web.x31.X31BWebBusinessLogic;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.constant.JFUStrConst;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.FUW01403SF.FUW01403SFConst;
import eo.web.webview.common.JFUWebCommon;

/**
 * DataBean-BPマッピングをする。
 *
 * @author 富士通
 */
public class FUSV0042_FUSV0042OPDBMapper
{
	/** NTT番号移転手続き(設置場所住所変更)について："0"（現在のご利用場所で利用） */
	private static final String NTT_AD_CHOICE_0 = "0";
	/** NTT番号移転手続き(設置場所住所変更)について："2"（引越し先で利用） */
	private static final String NTT_AD_CHOICE_2 = "2";
	/** 同番移転申込有無 */
	private static final String DOBANITEN_MSKM_UM = "dobaniten_mskm_um";
	/** 同番移転手続実施者識別コード */
	private static final String DOBANITEN_TTDK_JSSIS_SKCD = "dobaniten_ttdk_jssis_skcd";
	/** ＶＡポート番号 */
	private static final String VA_PORT_NO = "va_port_no";

	/** 電話番号１ */
	private static final String KEY_TELNO1 = "key_telno1";
	/** 郵便番号（前） */
	private static final String KEY_PCD_BF = "key_pcd_bf";
	/** 郵便番号（後） */
	private static final String KEY_PCD_AF = "key_pcd_af";
	/** 例外入力 */
	private static final String KEY_EXCEPTION_INPUT = "key_exception_input";
	/** 都道府県 */
	private static final String KEY_STATE_NM = "key_state_nm";
	/** 市区町村 */
	private static final String KEY_CITY_NM = "key_city_nm";
	/** 大字通称名 */
	private static final String KEY_OAZTSU_NM = "key_oaztsu_nm";
	/** 字丁目名 */
	private static final String KEY_AZCHO_NM = "key_azcho_nm";
	/** 同一住所フラグ */
	private static final String SAME_AD_FLG = "same_ad_flg";
	/** 住所コード一覧最大検索件数 */
	private static final String AD_CD_LIST_MAX_SEARCH_NUM = "ad_cd_list_max_search_num";

	/** 例外入力：1(例外) */
	private static final String EXCEPTION_INPUT_1 = "1";
	/** 同一住所フラグ：1(同一) */
	private static final String SAME_AD_FLG_1 = "1";

	/* ++++++++++ v3.00 修正開始 ++++++++++ */
	/** 申込内容承認登録.申込内容承認登録明細 */
	private static final String EZM0321A010_LIST = "EZM0321A010CBSMsg1List";
	/** 通信事業者一覧照会.通信事業者一覧照会明細 */
	private static final String ETU0051B010_LIST = "ETU0051B010CBSMsg1List";
	/** サービス契約内訳<eo光電話>一意照会明細 */
	private static final String EKK0191A010_LIST = "EKK0191A010CBSMsg1List";
	/** 進捗登録　異動理由明細 */
	private static final String EKK1091D010_LIST = "EKK1091D010CBSMsg1List";
	/** 進捗登録.異動理由明細 */
	private static final String FUSV004210SC = "FUSV004210SC";
	/** 申込登録 */
	private static final String SC_TITLE_FUSV004202 = "FUSV004202SC";
	/** 電話番号登録 */
	private static final String SC_TITLE_FUSV004203 = "FUSV004203SC";
	/** サービス契約内訳<eo光電話>登録 */
	private static final String SC_TITLE_FUSV004206 = "FUSV004206SC";
	/** オプションサービス契約<電話>登録(電話番号通知) */
	private static final String SC_TITLE_FUSV004207 = "FUSV004207SC";
	/** オプションサービス契約<電話>登録(通話料指定額到達通知) */
	private static final String SC_TITLE_FUSV004211 = "FUSV004211SC";
	/** 局番一意照会 */

	private static final String SC_TITLE_FUSV004212 = "FUSV004212SC";
	/** 申込内容承認登録 (既存電話番号通知) */
	private static final String SC_TITLE_FUSV004216 = "FUSV004216SC";
	/** オプションサービス契約<電話>登録 (既存電話番号通知) */
	private static final String SC_TITLE_FUSV004217 = "FUSV004217SC";
	/** オプションサービス契約<電話>照査 (既存電話番号通知) */
	private static final String SC_TITLE_FUSV004218 = "FUSV004218SC";
	/** オプションサービス契約<電話>照査締結 (既存電話番号通知) */
	private static final String SC_TITLE_FUSV004219 = "FUSV004219SC";
	/** オプションサービス契約<電話>開始 (既存電話番号通知) */
	private static final String SC_TITLE_FUSV004220 = "FUSV004220SC";
	/** オプションサービス契約<電話>解約 (既存電話番号通知) */
	private static final String SC_TITLE_FUSV004221 = "FUSV004221SC";
	/** オプションサービス契約<電話>解約確定 (既存電話番号通知) */
	private static final String SC_TITLE_FUSV004222 = "FUSV004222SC";
	/** オプションサービス契約<電話>キャンセル (既存電話番号通知) */
	private static final String SC_TITLE_FUSV004223 = "FUSV004223SC";
	/** 進捗登録 (既存電話番号通知) */
	private static final String SC_TITLE_FUSV004224 = "FUSV004224SC";
	/** 申込明細照査・後続業務依頼 (既存電話番号通知) */
	private static final String SC_TITLE_FUSV004225 = "FUSV004225SC";

	/** 住所情報分割CC */
	private static final String CC_TITLE_FUSV004201 = "JFUSplitAddressInfoCC";
	/** サービスIF結果データ移送CC */
	private static final String CC_TITLE_FUSV004202 = "FUSV004202CC";
	/** サービスIF結果データ移送CC */
	private static final String CC_TITLE_FUSV004204 = "FUSV004204CC";
	/** サービスIF結果データ移送CC */
	private static final String CC_TITLE_FUSV004206 = "FUSV004206CC";
	/** 番ポ電話番号登録可否チェックCC */
	private static final String CC_TITLE_FUSV004203 = "FUSV004203CC";
	/** 機器オプションサービス契約登録コモンコンポーネント部品CC */
	private static final String CC_TITLE_FUSV004205 = "FUSV004205CC";
	/** 同番移転可能エリアチェックCC */
	private static final String CC_TITLE_FUSV004207 = "FUSV004207CC";
	/** 非課金判定CC */
	private static final String CC_TITLE_FUSV004208 = "FUSV004208CC";
	/** サービスIF結果データ移送CC */
	private static final String CC_TITLE_FUSV004209 = "FUSV004209CC";
	/** 電話番号マスタ変更CC */
	private static final String CC_TITLE_FUSV004211 = "FUSV004211CC";

	/** マップキー 移送先名取得 */
	private static final String KEY_TRAN_NAME = "tranNm";
	/** マップキー キーカウント */
	private static final String KEY_KEY_CNT = "key_cnt";
	/** マップキー キーカウント */
	private static final String RPG_KEY_CNT_1 = "1";
	/** マップキー キーカウント */
	private static final String RPG_KEY_CNT_2 = "2";
	/** マップキー キーカウント */
	private static final String RPG_KEY_CNT_3 = "3";
	/** マップキー キーカウント */
	private static final String RPG_KEY_CNT_6 = "6";

	/** 移送用キー1 */
	private static final String TRANS_KEY_1 = "key_1";
	/** 移送用キー1 */
	private static final String TRANS_KEY_2 = "key_2";
	/** 移送用キー1 */
	private static final String TRANS_KEY_3 = "key_3";
	/** 移送用キー1 */
	private static final String TRANS_KEY_4 = "key_4";
	/** 移送用キー1 */
	private static final String TRANS_KEY_5 = "key_5";
	/** 移送用キー1 */
	private static final String TRANS_KEY_6 = "key_6";

	/** NRN番号（個人） */
	private static final String RPG_TRANS_KEY_1_VALUE_KOJIN = SC_TITLE_FUSV004212 + ":EZM0301A010CBSMsg1List:kojin_nrn_no,::nrn_no";
	/** 機能コード */
	private static final String FUNC_CODE = "func_code";

	/** 変更後申込明細番号 */
	private static final String TRANS_KEY_1_VALUE = SC_TITLE_FUSV004202 + ":EKK0011D010CBSMsg1List:mskm_dtl_no,::mskm_dtl_no";

	/** 更新年月日時分秒 */
	private static final String TRANS_KEY_2_VALUE_1 = SC_TITLE_FUSV004211 + "::upd_dtm,::upd_dtm_bf";
	/** 更新年月日時分秒 */
	private static final String TRANS_KEY_2_VALUE_2 = SC_TITLE_FUSV004207 + "::upd_dtm,::upd_dtm_bf";

	/** マップキー データ移送 移送データ1 */
	private static final String SOD_TRANS_KEY_1_VALUE = "FUSV004215SC:EKK0191A010CBSMsg1List:gene_add_dtm,trgt_data_list:svc_kei_ucwk_info:chaf_svc_kei_ucwk_gene_add_dtm";
	/** マップキー データ移送 移送データ2 */
	private static final String SOD_TRANS_KEY_2_VALUE = "FUSV004217SC::op_svc_kei_no,trgt_data_list:opsvkei_info:chaf_opsvkei_no";
	/** マップキー データ移送 移送データ3 */
	private static final String SOD_TRANS_KEY_3_VALUE = "FUSV004217SC::kk0351_gene_add_dtm,trgt_data_list:opsvkei_info:chaf_opsvkei_gene_add_dtm";
	/** マップキー データ移送 移送データ4 */
	private static final String SOD_TRANS_KEY_4_VALUE = "FUSV004218SC::kk0351_gene_add_dtm,trgt_data_list:opsvkei_info:chaf_opsvkei_gene_add_dtm";
	/** マップキー データ移送 移送データ5 */
	private static final String SOD_TRANS_KEY_5_VALUE = "FUSV004219SC::kk0351_gene_add_dtm,trgt_data_list:opsvkei_info:chaf_opsvkei_gene_add_dtm";
	/** マップキー データ移送 移送データ6 */
	private static final String SOD_TRANS_KEY_6_VALUE = "FUSV004220SC::kk0351_gene_add_dtm,trgt_data_list:opsvkei_info:chaf_opsvkei_gene_add_dtm";
	/** マップキー データ移送 移送データ7 */
	private static final String SOD_TRANS_KEY_7_VALUE = "FUSV004222SC::gene_add_dtm,trgt_data_list:opsvkei_info:chaf_opsvkei_gene_add_dtm";
	/** マップキー データ移送 移送データ8 */
	private static final String SOD_TRANS_KEY_8_VALUE = "FUSV004223SC::gene_add_dtm,trgt_data_list:opsvkei_info:chaf_opsvkei_gene_add_dtm";

	/** ＳＯＤ発行マップ */
	private static final String HAKKO_SOD_MAP = "hakkoSODMap";

	/** 発信者番号通知有無：有 */
	private static final String NO_TCH_SVC_UM_1 = "1";
	/** 特記事項１要素を取得する際の画面ID */
	private static final String PRG_SCREEN_ID_1 = "FUW01404_1";
	/** 特記事項１要素を取得する際の画面ID */
	private static final String PRG_SCREEN_ID_2 = "FUW01404_2";
	/** 特記事項１要素を取得する際のid */
	private static final String PRGADD_ID = "0";
	/** 特記事項１要素を取得する際のid */
	private static final String PRGDEL_ID = "1";
	/** 進捗特記事項1 */
	private static final String PRG_TKJK_1 = "prg_tkjk_1";
	/** 定義取得パス 料金ボタンクラス名 */
	private static final String PATH_PA_PPLAN_NM = "DISPSETTING/SETTING[@screenId='FUW01404']/DISPTEXT[@groupid='PPLAN_NM']";
	/** 属性名 */
	private static final String QUERY_ATTR_NAME = "id";
	/** 進捗特記事項(置き換え文字列1) */
	private static final String TKJK_0 = "%0%";
	/** 進捗特記事項(置き換え文字列2) */
	private static final String TKJK_1 = "%1%";
	/** フォーマット変換（3桁、先頭0埋め） */
	private static final String FORMAT_1 = "%1$03d";
	/** 定義XML項目取得ID：１番号*/
	private static final String REPLACE_1 = "Replace1";
	/** 定義XML項目取得ID：２番号*/
	private static final String REPLACE_2 = "Replace2";

	/** [ラジオボタン]番号ポータビリティの選択：継続する */
	private static final String BMP_UM_1 = "1";

	/** 整理番号 */
	private static final String KEY_SEIRI_NO = "key_seiri_no";
	/** サービス契約回線内訳番号 */
	private static final String SVC_KEI_KAISEN_UCWK_NO = "svc_kei_kaisen_ucwk_no";
	/** SYSID */
	private static final String SYSID = "sysid";
	/** 保有ルーター保有VA区分 */
	private static final String OUT_HOYU_RUTER_HOYU_VA = "out_hoyu_ruter_hoyu_va";
	/** 更新年月日時分秒（更新前） */
	private static final String UPD_DTM_BF = "upd_dtm_bf";
	/** 請求契約番号 */
	private static final String SEIKY_KEI_NO = "seiky_kei_no";
	/** サービス契約内訳番号 */
	private static final String SVC_KEI_UCWK_NO = "svc_kei_ucwk_no";
	/** サービス契約番号 */
	private static final String SVC_KEI_NO = "svc_kei_no";
	/** オプションサービス契約番号 */
	private static final String OP_SVC_KEI_NO = "op_svc_kei_no";
	/** 異動理由コード */
	private static final String IDO_RSN_CD = "ido_rsn_cd";
	/** 異動区分 */
	private static final String IDO_DIV = "ido_div";
	/** オプションサービス契約情報 */
	private static final String OPSVKEI_INFO = "opsvkei_info";
	/** サービスオーダ発行 対象データリスト */
	private static final String REQ_TRGT_DATA_LIST = "trgt_data_list";
	/** SOD基本情報 */
	private static final String SOD_KIHON_INFO = "sod_kihon_info";
	/** サービス契約情報 */
	private static final String SVC_KEI_INFO = "svc_kei_info";
	/** サービス契約内訳情報 */
	private static final String SVC_KEI_UCWK_INFO = "svc_kei_ucwk_info";
	/** 変更前オプションサービス契約番号 */
	private static final String CHBF_OPSVKEI_NO = "chbf_opsvkei_no";
	/** 変更前オプションサービス契約世代登録年月日時分秒 */
	private static final String CHBF_OPSVKEI_GENE_ADD_DTM = "chbf_opsvkei_gene_add_dtm";
	/** 変更後オプションサービス契約番号 */
	private static final String CHAF_OPSVKEI_NO = "chaf_opsvkei_no";
	/** 非課金CC サービス契約内訳番号 */
	private static final String HIKAKIN_SVC_KEI_UCWK_NO = "hikakin_svc_kei_ucwk_no";
	/** 非課金CC オプションサービコード */
	private static final String HIKAKIN_OP_SVC_CD = "hikakin_opSvcCd";

	/** IN項目：IN_サービス契約内訳番号 */
	private static final String IN_SVC_KEI_UCWK_NO = "svc_kei_ucwk_no";
	/** IN項目：IN_サービス契約番号 */
	private static final String IN_SVC_KEI_NO = "svc_kei_no";

	/** OUT項目:２ポートVA保有区分 */
	private static final String OUT_TOW_PORT_VA_HOYU_KB = "out_tow_port_va_hoyu_kb";

	/**
	 * コンストラクタ
	 */
	public FUSV0042_FUSV0042OPDBMapper()
	{
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV004210SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}
		X31SDataBeanAccessArray arraybean = null;
		X31SDataBeanAccess beanTemp = null;
		ArrayList list = null;

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		if (parentMap.containsKey(EZM0321A010_LIST))
		{
			list = (ArrayList)parentMap.get(EZM0321A010_LIST);
		}
		else
		{
			list = new ArrayList();
		}

		HashMap childMap = null;
		childMap = new HashMap();

		list.add(childMap);

		parentMap.put(EZM0321A010_LIST, list);

		outputMap.put(FUSV004210SC, parentMap);

		return outputMap;
	}

	/* ++++++++++ v3.00 修正終了 ++++++++++ */

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV0042WORK01(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 発信者番号通知サービス登録実行フラグ → 2番号サービスお申し込み（申込）作業項目マップ01.発信者番号通知サービス登録実行フラグ
		parentMap.put("no_tch_svc_add_flg", bean[0].sendMessageString(FUW01403SFConst.NO_TCH_SVC_ADD_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		// 機器提供サービス契約料金コース変更実行フラグ →
		// 2番号サービスお申し込み（申込）作業項目マップ01.機器提供サービス契約料金コース変更実行フラグ
		parentMap.put("kktk_pcrs_chg_flg", bean[0].sendMessageString(FUW01403SFConst.KKTK_PCRS_CHG_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		// 局番一意照実行対象契約者フラグ → 2番号サービスお申し込み（申込）作業項目マップ01.局番一意照実行対象契約者フラグ
		parentMap.put("kyoku_no_keisha_flg", bean[0].sendMessageString(FUW01403SFConst.KYOKU_NO_KEISHA_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		// 多機能ルーター保有区分 → 2番号サービスお申し込み（申込）作業項目マップ01.多機能ルーター保有区分
		parentMap.put("takinou_router_hoyu_kbn", bean[0].sendMessageString(FUW01403SFConst.TAKINOU_ROUTER_HOYU_KBN, X31CWebConst.DATABEAN_GET_VALUE));
		// 補足区分 → 2番号サービスお申し込み（申込）作業項目マップ01.多機能ルーター保有区分
		parentMap.put("hosoku_kbn", bean[0].sendMessageString(FUW01403SFConst.HOSOKU_KBN, X31CWebConst.DATABEAN_GET_VALUE));
		// 番号ポータビリティーの選択 → 2番号サービスお申し込み（申込）作業項目マップ01.番号ポータビリティーの選択
		parentMap.put("bmp_um", bean[0].sendMessageString(FUW01403SFConst.BMP_UM, X31CWebConst.DATABEAN_GET_VALUE));
		// NTT契約情報の住所選択 → 2番号サービスお申し込み（申込）作業項目マップ01.NTT契約情報の住所選択
		parentMap.put("ntt_ad_choice", bean[0].sendMessageString(FUW01403SFConst.NTT_AD_CHOICE, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV0042WORK01", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV004202SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		X31SDataBeanAccessArray arraybean = null;
		X31SDataBeanAccess beanTemp = null;
		ArrayList list = null;

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// ＳＹＳＩＤ → 申込登録マップ.SYSID
		parentMap.put("sysid", bean[0].sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));

		beanTemp = bean[0];
		arraybean = beanTemp.getDataBeanArray("申込登録明細");
		if (parentMap.containsKey("EKK0011D010CBSMsg1List"))
		{
			list = (ArrayList)parentMap.get("EKK0011D010CBSMsg1List");
		}
		else
		{
			list = new ArrayList();
		}
		if (arraybean != null && arraybean.getCount() > 0)
		{
			for (int i = 0; i < arraybean.getCount(); i++)
			{
				X31SDataBeanAccess subbean = arraybean.getDataBean(i);
				HashMap childMap = null;
				if (list.size() - 1 >= i)
				{
					childMap = (HashMap)list.get(i);
				}
				else
				{
					childMap = new HashMap();
				}

				// 申込登録明細.申込形態コード → 申込登録マップ.申込登録明細.申込形態コード
				if (subbean != null)
				{
					childMap.put("mskm_form_cd", subbean.sendMessageString("申込形態コード", X31CWebConst.DATABEAN_GET_VALUE));
				}

				list.add(childMap);
			}
		}
		parentMap.put("EKK0011D010CBSMsg1List", list);

		outputMap.put("FUSV004202SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV004203SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 番号ポータビリティの電話設定
		parentMap = setBmpTelMap(bean);
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		outputMap.put("FUSV004203SC", parentMap);

		return outputMap;
	}

	/**
	 * 番号ポータビリティの電話設定
	 * @param bean　[0]：２番号サービスお申し込み
	 * @return HashMap
	 */
	private HashMap<String, Object> setBmpTelMap(X31SDataBeanAccess[] bean)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		// 番号ポータビリティを利用する電話番号 → 電話番号登録マップ.電話番号
		parentMap.put("telno", bean[0].sendMessageString("番号ポータビリティを利用する電話番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 番ポする場合のみ
		if (BMP_UM_1.equals(bean[0].sendMessageString(FUW01403SFConst.BMP_UM, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 選択した通信事業者コード → 電話番号登録マップ.割当通信事業者コード
			X31SDataBeanAccess combBean = bean[0].getDataBeanArray(FUW01403SFConst.TSJGS_COMBOBOX).getDataBean(0);
			String useTsjgsCd =
					combBean.sendMessageString(FUW01403SFConst.TSJGS_CD_LIST_04, X31CWebConst.DATABEAN_GET_VALUE, Integer.valueOf(combBean
							.sendMessageString(FUW01403SFConst.TSJGS_CD_04, X31CWebConst.DATABEAN_GET_VALUE)));

			// 割当通信事業者コード
			parentMap.put("wariate_tsjgs_cd", JFUStrConst.EMPTY);
			// 使用通信事業者コード	
			parentMap.put("use_tsjgs_cd", JFUStrConst.EMPTY);
			// 初期個人法人電話番号帯コード
			parentMap.put("shk_kojin_hojin_tln_tai_cd", JFUStrConst.CD00410_1); // 1:個人
			// 電話番号取得通信事業者コード
			parentMap.put("tln_stku_tsjgs_cd", JFUStrConst.EMPTY);
			// 移転元通信事業者コード
			parentMap.put("itnm_tsjgs_cd", useTsjgsCd);
			// 移転先通信事業者コード
			parentMap.put("itns_tsjgs_cd", JFUStrConst.TU0051_TSJGS_CD_5100);

		}
		return parentMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV004204SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 番号ポータビリティを利用する電話番号 → エイジング対象登録マップ.エイジング対象値
		parentMap.put("aging_tg_value", bean[0].sendMessageString("番号ポータビリティを利用する電話番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV004204SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV004206SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// サービス契約番号 → サービス契約内訳＜eo光電話＞登録マップ.サービス契約番号
		parentMap.put("svc_kei_no", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 提供方式契約番号 → サービス契約内訳＜eo光電話＞登録マップ.提供方式契約番号
		parentMap.put("tk_hoshiki_kei_no", bean[0].sendMessageString("提供方式契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 番号ポータビリティを利用する電話番号 → サービス契約内訳＜eo光電話＞登録マップ.電話番号
		parentMap.put("telno", bean[0].sendMessageString("番号ポータビリティを利用する電話番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 通信事業者コード → サービス契約内訳＜eo光電話＞登録マップ.通信事業者コード
		parentMap.put("tsjgs_cd", bean[0].sendMessageString("通信事業者コード", X31CWebConst.DATABEAN_GET_VALUE));
		// 番号ポータビリティの選択 → サービス契約内訳＜eo光電話＞登録マップ.番ポ有無
		parentMap.put("bmp_um", bean[0].sendMessageString("番号ポータビリティの選択", X31CWebConst.DATABEAN_GET_VALUE));
		// 郵便番号 → サービス契約内訳＜eo光電話＞登録マップ.NTT契約者郵便番号
		parentMap.put("ntt_keisha_pcd", bean[0].sendMessageString("郵便番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 建物名 → サービス契約内訳＜eo光電話＞登録マップ.NTT契約者住所補記・建物名
		parentMap.put("ntt_keisha_adrttm", bean[0].sendMessageString("建物名", X31CWebConst.DATABEAN_GET_VALUE));
		// 部屋番号 → サービス契約内訳＜eo光電話＞登録マップ.NTT契約者住所補記・部屋番号
		parentMap.put("ntt_keisha_adrrm", bean[0].sendMessageString("部屋番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 部品呼び出し → サービス契約内訳＜eo光電話＞登録マップ.NTT契約者カナ名
		parentMap.put("ntt_ksh_kana", eo.common.util.JPCConvertString.convFullHiraToFullKata(bean[0].sendMessageString("契約者名義かな",
				X31CWebConst.DATABEAN_GET_VALUE)));
		// 契約者名義 → サービス契約内訳＜eo光電話＞登録マップ.NTT契約者名
		parentMap.put("ntt_keisha_nm", bean[0].sendMessageString("契約者名義", X31CWebConst.DATABEAN_GET_VALUE));
		// 最終更新年月日時分秒（サービス契約） → サービス契約内訳＜eo光電話＞登録マップ.更新年月日時分秒（更新前）
		parentMap.put("upd_dtm_bf", bean[0].sendMessageString("最終更新年月日時分秒（サービス契約）", X31CWebConst.DATABEAN_GET_VALUE));

		// 番号ポータビリティーの選択
		String bmpUm = bean[0].sendMessageString(FUW01403SFConst.BMP_UM, X31CWebConst.DATABEAN_GET_VALUE);
		// NTT契約情報の住所選択
		String nttAdChoice = bean[0].sendMessageString(FUW01403SFConst.NTT_AD_CHOICE, X31CWebConst.DATABEAN_GET_VALUE);

		// 同番移転申込有無
		String dobanitenMskmUm = JFUStrConst.EMPTY;
		if (JFUStrConst.CD00002_1.equals(bmpUm))
		{
			// "0":現在のご利用場所で利用
			if (NTT_AD_CHOICE_0.equals(nttAdChoice))
			{
				dobanitenMskmUm = JFUStrConst.CD00002_0; // "0"：無
			}
			// "2":引越し先で利用
			else if (NTT_AD_CHOICE_2.equals(nttAdChoice))
			{
				dobanitenMskmUm = JFUStrConst.CD00002_1; // "1"：有
			}
		}
		parentMap.put(DOBANITEN_MSKM_UM, dobanitenMskmUm);

		// 同番移転手続実施者識別コード
// ANK-4494-00-00_【eo定期】双方向番ポ対応 MOD START
		String dobanitenTtdkJssisSkcd = JFUStrConst.EMPTY;
		if (JFUStrConst.CD00002_1.equals(bmpUm) && NTT_AD_CHOICE_2.equals(nttAdChoice))
		{
			// NTT番号移転手続き(設置場所住所変更)
			dobanitenTtdkJssisSkcd = JFUStrConst.CD01658_2; // "2":KOPT
		}
		parentMap.put(DOBANITEN_TTDK_JSSIS_SKCD, dobanitenTtdkJssisSkcd);
// ANK-4494-00-00_【eo定期】双方向番ポ対応 MOD END

		X31SDataBeanAccessArray arraybean = bean[0].getDataBeanArray(FUW01403SFConst.SVC_KEI_INFO_LIST);
		X31SDataBeanAccess subbean = arraybean.getDataBean(0);

		// ＶＡポート番号
		String vaPortNo = subbean.sendMessageString(FUW01403SFConst.HTC_VA_PORT_NO_01, X31CWebConst.DATABEAN_GET_VALUE);
		if (JFUStrConst.CD00593_2.equals(vaPortNo))
		{
			vaPortNo = JFUStrConst.CD00593_1;
		}
		else
		{
			vaPortNo = JFUStrConst.CD00593_2;
		}
		parentMap.put(VA_PORT_NO, vaPortNo);

		outputMap.put(SC_TITLE_FUSV004206, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV004207SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// ＳＹＳＩＤ → オプションサービス契約＜電話＞登録マップ.SYSID
		parentMap.put("sysid", bean[0].sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// 請求契約番号 → オプションサービス契約＜電話＞登録マップ.請求契約番号
		parentMap.put("seiky_kei_no", bean[0].sendMessageString("請求契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV004207SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV004209SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		X31SDataBeanAccessArray arraybean = null;
		X31SDataBeanAccess beanTemp = null;
		ArrayList list = null;

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 請求契約番号 → 進捗登録マップ.請求契約番号
		parentMap.put("seiky_kei_no", bean[0].sendMessageString("請求契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約番号 → 進捗登録マップ.サービス契約番号
		parentMap.put("svc_kei_no", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約回線内訳番号 → 進捗登録マップ.サービス契約回線内訳番号
		parentMap.put("svc_kei_kaisen_ucwk_no", bean[0].sendMessageString("サービス契約回線内訳番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 機器提供サービス契約番号 → 進捗登録マップ.機器提供サービス契約番号
		parentMap.put("kktk_svc_kei_no", bean[0].sendMessageString("機器提供サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		// 進捗特記事項1
		try
		{
			// 一覧を取得
			Map<String, String> nmMap = JFUWebCommon.getDispItemsAsMap(PATH_PA_PPLAN_NM, QUERY_ATTR_NAME);

			String prgTkjk1 = JFUWebCommon.getPrgAddTkjkFst(PRG_SCREEN_ID_1, PRGADD_ID);

			prgTkjk1 = prgTkjk1.replace(TKJK_0, nmMap.get(REPLACE_1));
			prgTkjk1 = prgTkjk1.replace(TKJK_1, nmMap.get(REPLACE_2));

			if (prgTkjk1 != null && prgTkjk1.length() > 0)
			{
				parentMap.put(PRG_TKJK_1, prgTkjk1);
			}
			else
			{
				DEBUG_LOG.debug("※進捗特記事項1がXMLから正常に取得できませんでした。処理は続行します。");
			}
		}
		catch (Exception e)
		{
			DEBUG_LOG.debug("※進捗特記事項1がXMLから正常に取得できませんでした。処理は続行します。");
		}

		beanTemp = bean[0];
		arraybean = beanTemp.getDataBeanArray("異動理由明細");
		if (parentMap.containsKey("EKK1091D010CBSMsg1List"))
		{
			list = (ArrayList)parentMap.get("EKK1091D010CBSMsg1List");
		}
		else
		{
			list = new ArrayList();
		}
		if (arraybean != null && arraybean.getCount() > 0)
		{
			for (int i = 0; i < arraybean.getCount(); i++)
			{
				X31SDataBeanAccess subbean = arraybean.getDataBean(i);
				HashMap childMap = null;
				if (list.size() - 1 >= i)
				{
					childMap = (HashMap)list.get(i);
				}
				else
				{
					childMap = new HashMap();
				}

				// 異動理由明細.異動理由コード → 進捗登録マップ.異動理由明細.異動理由コード
				if (subbean != null)
				{
					childMap.put("ido_rsn_cd", subbean.sendMessageString("異動理由コード", X31CWebConst.DATABEAN_GET_VALUE));
				}

				list.add(childMap);
			}
		}
		parentMap.put("EKK1091D010CBSMsg1List", list);
		outputMap.put("FUSV004209SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV004211SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// ＳＹＳＩＤ → オプションサービス契約＜電話＞登録マップ.SYSID
		parentMap.put("sysid", bean[0].sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// 請求契約番号 → オプションサービス契約＜電話＞登録マップ.請求契約番号
		parentMap.put("seiky_kei_no", bean[0].sendMessageString("請求契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV004211SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV004212SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 番号ポータビリティを利用する電話番号(上6桁) → 電話番号登録マップ.電話番号
		String keyKyokuNo = null;

		if (!JFUStrConst.EMPTY.equals(bean[0].sendMessageString(FUW01403SFConst.TELNO, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			keyKyokuNo = bean[0].sendMessageString(FUW01403SFConst.TELNO, X31CWebConst.DATABEAN_GET_VALUE).substring(0, 6);
		}

		parentMap.put("key_kyoku_no", keyKyokuNo);

		outputMap.put("FUSV004212SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV004213SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		ArrayList list = null;

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		if (parentMap.containsKey(ETU0051B010_LIST))
		{
			list = (ArrayList)parentMap.get(ETU0051B010_LIST);
		}
		else
		{
			list = new ArrayList();
		}

		HashMap childMap = null;
		childMap = new HashMap();

		list.add(childMap);

		parentMap.put(ETU0051B010_LIST, list);

		outputMap.put("FUSV004213SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV004214SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// サービス契約番号 → サービス契約内訳＜eo光電話＞登録マップ.サービス契約番号
		parentMap.put("svc_kei_no", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 提供方式契約番号 → サービス契約内訳＜eo光電話＞登録マップ.提供方式契約番号
		parentMap.put("tk_hoshiki_kei_no", bean[0].sendMessageString("提供方式契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 番号ポータビリティを利用する電話番号 → サービス契約内訳＜eo光電話＞登録マップ.電話番号
		parentMap.put("telno", bean[0].sendMessageString("番号ポータビリティを利用する電話番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 通信事業者コード → サービス契約内訳＜eo光電話＞登録マップ.通信事業者コード
		parentMap.put("tsjgs_cd", bean[0].sendMessageString("通信事業者コード", X31CWebConst.DATABEAN_GET_VALUE));
		// 番号ポータビリティの選択 → サービス契約内訳＜eo光電話＞登録マップ.番ポ有無
		parentMap.put("bmp_um", bean[0].sendMessageString("番号ポータビリティの選択", X31CWebConst.DATABEAN_GET_VALUE));
		// 最終更新年月日時分秒（サービス契約） → サービス契約内訳＜eo光電話＞登録マップ.更新年月日時分秒（更新前）
		parentMap.put("upd_dtm_bf", bean[0].sendMessageString("最終更新年月日時分秒（サービス契約）", X31CWebConst.DATABEAN_GET_VALUE));

		X31SDataBeanAccessArray arraybean = bean[0].getDataBeanArray(FUW01403SFConst.SVC_KEI_INFO_LIST);
		X31SDataBeanAccess subbean = arraybean.getDataBean(0);

		// ＶＡポート番号
		String vaPortNo = subbean.sendMessageString(FUW01403SFConst.HTC_VA_PORT_NO_01, X31CWebConst.DATABEAN_GET_VALUE);
		if (JFUStrConst.CD00593_2.equals(vaPortNo))
		{
			vaPortNo = JFUStrConst.CD00593_1;
		}
		else
		{
			vaPortNo = JFUStrConst.CD00593_2;
		}
		parentMap.put(VA_PORT_NO, vaPortNo);

		outputMap.put("FUSV004214SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param bl viewロジックインスタンス
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV004215SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, X31BWebBusinessLogic bl)
	{
		X31SDataBeanAccessArray arraybean = null;
		X31SDataBeanAccess beanTemp = null;

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		beanTemp = bean[0];
		arraybean = beanTemp.getDataBeanArray("サービス契約情報リスト");
		X31SDataBeanAccess subbean = arraybean.getDataBean(0);

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// サービス契約情報.サービス契約内訳番号 → サービス契約内訳<eo光電話>一意照会マップ.サービス契約情報.サービス契約内訳番号
		parentMap.put("key_svc_kei_ucwk_no", subbean.sendMessageString("サービス契約内訳番号", X31CWebConst.DATABEAN_GET_VALUE));

		// 部品呼び出し → 世代登録年月日時分秒
		parentMap.put("key_gene_add_dtm", eo.web.webview.common.JCCWebCommon.getOpeDateTimeStamp(bl, null));

		ArrayList arrayList = new ArrayList<HashMap>();
		HashMap detailMap = new HashMap();
		arrayList.add(detailMap);
		parentMap.put(EKK0191A010_LIST, arrayList);

		outputMap.put("FUSV004215SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setJFUSplitAddressInfoCC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 都道府県・市区町村 → 住所分割処理マップ.都道府県・市区町村
		parentMap.put("state_city", bean[0].sendMessageString("都道府県・市区町村", X31CWebConst.DATABEAN_GET_VALUE));
		// 字 → 住所分割処理マップ.字
		parentMap.put("aza", bean[0].sendMessageString("字", X31CWebConst.DATABEAN_GET_VALUE));
		// 丁目・番地等 → 住所分割処理マップ.丁目・番地等
		parentMap.put("chome_bnchi", bean[0].sendMessageString("丁目・番地等", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put(CC_TITLE_FUSV004201, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピング処理です。<BR>
	 * @param bean
	 * @param outputMap
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap<String, Object> setFUSV004202CC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// データ移送数
		parentMap.put(KEY_KEY_CNT, RPG_KEY_CNT_1);

		// データ移送先
		parentMap.put(KEY_TRAN_NAME, SC_TITLE_FUSV004203);

		// NRN番号（個人）を移送用に設定
		parentMap.put(TRANS_KEY_1, RPG_TRANS_KEY_1_VALUE_KOJIN);

		// 共通情報のマッピング
		outputMap.put(CC_TITLE_FUSV004202, parentMap);

		return outputMap;
	}

	/**
	 * 番ポ電話番号登録可否チェックCCの上りマッピング処理です。
	 *
	 * <br>
	 * @param bean データBean配列
	 * @param outputMap アウトマップ
	 * @param func_code 機能コード
	 * @return 結果マップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap<String, Object> setFUSV004203CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 機能コード
		parentMap.put(FUNC_CODE, func_code);

		// 返却リスト
		ArrayList telNoList = new ArrayList();

		HashMap childMap = new HashMap();

		// 電話番号
		String telNo = bean[0].sendMessageString("番号ポータビリティを利用する電話番号", X31CWebConst.DATABEAN_GET_VALUE);

		// 電話番号を設定
		childMap.put("tel_no", telNo);
		telNoList.add(childMap);

		// リストに設定
		parentMap.put("tel_no_list", telNoList);
		// 返却マップに設定
		outputMap.put(CC_TITLE_FUSV004203, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングを行います。
	 * <br>
	 * @param bean [0]:メールウイルスチェックサービス申込
	 *              [1]:共有フォームBean.現顧客情報
	 *              [2]:共有フォームBean.サービス契約情報
	 *              [3]:共有フォームBean.オプションサービス契約情報
	 *              [4]:共有フォームBean.請求契約情報
	 * @param outputMap
	 * @param func_code 機能コード
	 * @param bl VIEWロジックインスタンス
	 * @return 送信情報
	 */
	public HashMap<String, Object> setFUSV004204CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		// データ移送数
		parentMap.put(KEY_KEY_CNT, RPG_KEY_CNT_2);

		// データ移送先
		parentMap.put(KEY_TRAN_NAME, CC_TITLE_FUSV004205);

		// ●変更後サブオプションサービス契約番号
		// 申込登録SC(FUSV004202SC).申込明細番号 →
		//           機器オプションサービス契約登録コモンコンポーネント部品CC(FUSV004205CC).申込明細番号
		parentMap.put(TRANS_KEY_1, TRANS_KEY_1_VALUE);
		// ●変更後サブオプションサービス契約番号
		// 申込登録SC(FUSV004211SC).更新年月日時分秒 →
		//           機器オプションサービス契約登録コモンコンポーネント部品CC(FUSV004205CC).更新年月日時分秒(更新前)
		parentMap.put(TRANS_KEY_2, TRANS_KEY_2_VALUE_1);

		// 共通情報のマッピング
		outputMap.put(CC_TITLE_FUSV004204, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングを行います。
	 * <br>
	 * @param bean [0]:メールウイルスチェックサービス申込
	 *              [1]:共有フォームBean.現顧客情報
	 *              [2]:共有フォームBean.サービス契約情報
	 *              [3]:共有フォームBean.オプションサービス契約情報
	 *              [4]:共有フォームBean.請求契約情報
	 * @param outputMap
	 * @param func_code 機能コード
	 * @param bl VIEWロジックインスタンス
	 * @return 送信情報
	 */
	public HashMap<String, Object> setFUSV004206CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		// データ移送数
		parentMap.put(KEY_KEY_CNT, RPG_KEY_CNT_2);

		// データ移送先
		parentMap.put(KEY_TRAN_NAME, CC_TITLE_FUSV004205);

		// ●変更後サブオプションサービス契約番号
		// 申込登録SC(FUSV004202SC).申込明細番号 →
		//           機器オプションサービス契約登録コモンコンポーネント部品CC(FUSV004205CC).申込明細番号
		parentMap.put(TRANS_KEY_1, TRANS_KEY_1_VALUE);
		// ●変更後サブオプションサービス契約番号
		// 申込登録SC(FUSV004207SC).更新年月日時分秒 →
		//           機器オプションサービス契約登録コモンコンポーネント部品CC(FUSV004205CC).更新年月日時分秒(更新前)
		parentMap.put(TRANS_KEY_2, TRANS_KEY_2_VALUE_2);

		// 共通情報のマッピング
		outputMap.put(CC_TITLE_FUSV004206, parentMap);

		return outputMap;
	}

	/**
	 * 機器オプションサービス契約登録コモンコンポーネント部品CCの上りマッピング処理です。
	 *
	 * <br>
	 * @param bean データBean配列
	 * @param outputMap アウトマップ
	 * @param func_code 機能コード
	 * @return 結果マップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap<String, Object> setFUSV004205CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 機能コード
		parentMap.put(FUNC_CODE, func_code);

		// 整理番号
		parentMap.put(KEY_SEIRI_NO, bean[0].sendMessageString(FUW01403SFConst.SEIRI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約回線内訳番号
		parentMap.put(SVC_KEI_KAISEN_UCWK_NO, bean[0].sendMessageString(FUW01403SFConst.SVC_KEI_KAISEN_UCWK_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// SYSID
		parentMap.put(SYSID, bean[0].sendMessageString(FUW01403SFConst.SYSID, X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約番号 → サービス契約内訳＜eo光電話＞登録マップ.サービス契約番号
		parentMap.put(IN_SVC_KEI_NO, bean[0].sendMessageString(FUW01403SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));

		X31SDataBeanAccessArray arraybean = bean[0].getDataBeanArray("サービス契約情報リスト");
		X31SDataBeanAccess subbean = arraybean.getDataBean(0);

		// サービス契約情報.サービス契約内訳番号 → サービス契約内訳<eo光電話>一意照会マップ.サービス契約情報.サービス契約内訳番号
		parentMap.put(IN_SVC_KEI_UCWK_NO, subbean.sendMessageString(FUW01403SFConst.SVC_KEI_UCWK_NO_01, X31CWebConst.DATABEAN_GET_VALUE));
		// 返却マップに設定
		outputMap.put(CC_TITLE_FUSV004205, parentMap);

		return outputMap;
	}

	/**
	 * 同番移転可能エリアチェックCCの上りマッピング処理です。
	 *
	 * <br>
	 * @param bean データBean配列
	 * @param outputMap アウトマップ
	 * @return 結果マップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap<String, Object> setFUSV004207CC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// サービスフォームBean/サービス契約情報リスト/0
		X31SDataBeanAccess svcKeiInfoList = JFUWebCommon.getDataBeanTypeByPath(bean[0], FUW01403SFConst.SVC_KEI_INFO_LIST);

		// 電話番号１
		parentMap.put(KEY_TELNO1, bean[0].sendMessageString(FUW01403SFConst.TELNO, X31CWebConst.DATABEAN_GET_VALUE));
		// 郵便番号（前）
		parentMap.put(KEY_PCD_BF, svcKeiInfoList.sendMessageString(FUW01403SFConst.KAISEN_PLACE_PCD_1_01, X31CWebConst.DATABEAN_GET_VALUE));
		// 郵便番号（後）
		parentMap.put(KEY_PCD_AF, svcKeiInfoList.sendMessageString(FUW01403SFConst.KAISEN_PLACE_PCD_2_01, X31CWebConst.DATABEAN_GET_VALUE));
		// 例外入力
		parentMap.put(KEY_EXCEPTION_INPUT, EXCEPTION_INPUT_1); // "1":例外
		// 都道府県
		parentMap.put(KEY_STATE_NM, svcKeiInfoList.sendMessageString(FUW01403SFConst.KAISEN_PLACE_STATE_NM_01, X31CWebConst.DATABEAN_GET_VALUE));
		// 市区町村
		parentMap.put(KEY_CITY_NM, svcKeiInfoList.sendMessageString(FUW01403SFConst.KAISEN_PLACE_CITY_NM_01, X31CWebConst.DATABEAN_GET_VALUE));
		// 大字通称名
		parentMap.put(KEY_OAZTSU_NM, svcKeiInfoList.sendMessageString(FUW01403SFConst.KAISEN_PLACE_OAZTSU_NM_01, X31CWebConst.DATABEAN_GET_VALUE));
		// 字丁目名
		parentMap.put(KEY_AZCHO_NM, svcKeiInfoList.sendMessageString(FUW01403SFConst.KAISEN_PLACE_AZCHO_NM_01, X31CWebConst.DATABEAN_GET_VALUE));
		// 同一住所フラグ
		parentMap.put(SAME_AD_FLG, SAME_AD_FLG_1); // "1":同一
		// 住所コード一覧最大検索件数
		parentMap.put(AD_CD_LIST_MAX_SEARCH_NUM, JFUStrConst.MAX_SEARCH_NUM); // "200"

		// 返却マップに設定
		outputMap.put(CC_TITLE_FUSV004207, parentMap);

		return outputMap;
	}

	/**
	 * 機器オプションサービス契約登録コモンコンポーネント部品CCの下りマッピングをします。
	 * <br>
	 * @param bean
	 * @param outputMap
	 * @return X31SDataBeanAccess
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess getFUSV004201CC(X31SDataBeanAccess bean, HashMap outputMap)
	{
		HashMap parentMap = null;

		if (outputMap.containsKey(CC_TITLE_FUSV004205))
		{
			parentMap = (HashMap)outputMap.get(CC_TITLE_FUSV004205);
		}

		if (null != parentMap)
		{
			
			String twoPortVaHoyuKb = (String)parentMap.get(OUT_TOW_PORT_VA_HOYU_KB);
			if ("1".equals(twoPortVaHoyuKb))
			{
				// ２ポートVAを保有している場合は、多機能ルータへの機器交換が発生しないため、多機能ルータ保有者と同様に扱う。
				bean.sendMessageString(FUW01403SFConst.TAKINOU_ROUTER_HOYU_KBN, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00001_1);
				bean.sendMessageString(FUW01403SFConst.HOSOKU_KBN, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00001_0);
			}
			else
			{
				// 保有ルーター保有VA区分
				bean.sendMessageString(FUW01403SFConst.TAKINOU_ROUTER_HOYU_VA_KBN, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap
						.get(OUT_HOYU_RUTER_HOYU_VA));
			}
		}

		return bean;
	}

	/**
	 * 上りマッピングを行います。
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV004216SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		X31SDataBeanAccessArray arraybean = null;
		X31SDataBeanAccess beanTemp = null;
		ArrayList list = null;

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		// ＳＹＳＩＤ → 申込内容承認登録マップ.SYSID
		parentMap.put(SYSID, bean[0].sendMessageString(FUW01403SFConst.SYSID, X31CWebConst.DATABEAN_GET_VALUE));

		beanTemp = bean[0];
		// 申込登録明細 → 申込内容承認登録マップ.申込内容承認登録明細
		arraybean = beanTemp.getDataBeanArray(FUW01403SFConst.MSKM_DTL_LIST);
		if (parentMap.containsKey("EKK0011D020CBSMsg1List"))
		{
			list = (ArrayList)parentMap.get("EKK0011D020CBSMsg1List");
		}
		else
		{
			list = new ArrayList();
		}
		if (arraybean != null && arraybean.getCount() > 0)
		{
			for (int i = 0; i < arraybean.getCount(); i++)
			{
				X31SDataBeanAccess subbean = arraybean.getDataBean(i);
				HashMap childMap = null;
				if (list.size() - 1 >= i)
				{
					childMap = (HashMap)list.get(i);
				}
				else
				{
					childMap = new HashMap();
				}

				// 申込登録明細.申込形態コード → 申込内容承認登録マップ.申込登録明細.申込形態コード
				if (subbean != null)
				{
					childMap.put("mskm_form_cd", subbean.sendMessageString(FUW01403SFConst.MSKM_FORM_CD_07, X31CWebConst.DATABEAN_GET_VALUE));
				}

				list.add(childMap);
			}
		}
		parentMap.put("EKK0011D020CBSMsg1List", list);

		outputMap.put(SC_TITLE_FUSV004216, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングを行います。
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV004217SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// サービス契約情報リスト
		X31SDataBeanAccessArray svkeiArraybean = bean[0].getDataBeanArray(FUW01403SFConst.SVC_KEI_INFO_LIST);
		X31SDataBeanAccess svkeiBean = svkeiArraybean.getDataBean(0);

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		// サービス契約番号 → オプションサービス契約＜電話＞登録マップ.サービス契約番号
		parentMap.put(SVC_KEI_NO, bean[0].sendMessageString(FUW01403SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約内訳番号 → オプションサービス契約＜電話＞登録マップ.サービス契約内訳番号
		parentMap.put(SVC_KEI_UCWK_NO, svkeiBean.sendMessageString(FUW01403SFConst.SVC_KEI_UCWK_NO_01, X31CWebConst.DATABEAN_GET_VALUE));
		// ＳＹＳＩＤ → オプションサービス契約＜電話＞登録マップ.SYSID
		parentMap.put(SYSID, bean[0].sendMessageString(FUW01403SFConst.SYSID, X31CWebConst.DATABEAN_GET_VALUE));
		// 請求契約番号 → オプションサービス契約＜電話＞登録マップ.請求契約番号
		parentMap.put(SEIKY_KEI_NO, bean[0].sendMessageString(FUW01403SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
//		// 最終更新年月日時分秒（サービス契約） → オプションサービス契約＜電話＞登録マップ.更新年月日時分秒（オプションサービス契約＜電話＞）
//		parentMap.put(KK0371_UPD_DTM, bean[0].sendMessageString(FUW01403SFConst.KK0081_UPD_DTM_BF, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put(SC_TITLE_FUSV004217, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングを行います。
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV004218SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		outputMap.put(SC_TITLE_FUSV004218, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングを行います。
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV004219SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		outputMap.put(SC_TITLE_FUSV004219, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングを行います。
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV004220SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		outputMap.put(SC_TITLE_FUSV004220, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングを行います。
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV004221SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// サービス契約情報リスト
		X31SDataBeanAccessArray svkeiArraybean = bean[0].getDataBeanArray(FUW01403SFConst.SVC_KEI_INFO_LIST);
		X31SDataBeanAccess svkeiBean = svkeiArraybean.getDataBean(0);

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		// オプションサービス契約番号 → オプションサービス契約解約マップ.オプションサービス契約番号
		parentMap.put(OP_SVC_KEI_NO, svkeiBean.sendMessageString(FUW01403SFConst.HTC_OP_SVC_KEI_NO_01, X31CWebConst.DATABEAN_GET_VALUE));
//		// 最終更新年月日時分秒（サービス契約） → オプションサービス契約解約マップ.更新年月日時分秒（オプションサービス契約）
//		parentMap.put(KK0351_UPD_DTM, bean[0].sendMessageString(FUW01403SFConst.KK0081_UPD_DTM_BF, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put(SC_TITLE_FUSV004221, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングを行います。
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV004222SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// サービス契約情報リスト
		X31SDataBeanAccessArray svkeiArraybean = bean[0].getDataBeanArray(FUW01403SFConst.SVC_KEI_INFO_LIST);
		X31SDataBeanAccess svkeiBean = svkeiArraybean.getDataBean(0);

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		// オプションサービス契約番号 → オプションサービス契約解約確定マップ.オプションサービス契約番号
		parentMap.put(OP_SVC_KEI_NO, svkeiBean.sendMessageString(FUW01403SFConst.HTC_OP_SVC_KEI_NO_01, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put(SC_TITLE_FUSV004222, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングを行います。
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV004223SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// サービス契約情報リスト
		X31SDataBeanAccessArray svkeiArraybean = bean[0].getDataBeanArray(FUW01403SFConst.SVC_KEI_INFO_LIST);
		X31SDataBeanAccess svkeiBean = svkeiArraybean.getDataBean(0);

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);
		// オプションサービス契約番号 → オプションサービス契約＜電話＞使用開始マップ.オプションサービス契約番号
		parentMap.put(OP_SVC_KEI_NO, svkeiBean.sendMessageString(FUW01403SFConst.HTC_OP_SVC_KEI_NO_01, X31CWebConst.DATABEAN_GET_VALUE));
		// 最終更新年月日時分秒（サービス契約） → オプションサービス契約解約マップ.更新年月日時分秒（更新前）
		parentMap.put(UPD_DTM_BF, bean[0].sendMessageString(FUW01403SFConst.KK0081_UPD_DTM_BF, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put(SC_TITLE_FUSV004223, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングを行います。
	 * @param bean　[0]：２番号サービスお申し込み、[1]：共有フォームBean
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV004224SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		X31SDataBeanAccessArray arraybean = null;
		ArrayList list = null;

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		// サービス契約番号 → 進捗登録マップ.サービス契約番号
		parentMap.put(SVC_KEI_NO, bean[0].sendMessageString(FUW01403SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約情報リスト
		X31SDataBeanAccessArray svkeiArraybean = bean[0].getDataBeanArray(FUW01403SFConst.SVC_KEI_INFO_LIST);
		X31SDataBeanAccess svkeiBean = svkeiArraybean.getDataBean(0);

		// ○WEB変更情報
		X31SDataBeanAccess webChgInfoBean = bean[1].getDataBeanArray(CommonInfoCFConst.WEB_CHG_INFO).getDataBean(0);
		// ○現顧客情報
		X31SDataBeanAccess genCustKeiInfoBean = webChgInfoBean.getDataBeanArray(CommonInfoCFConst.GEN_CUST_KEI_INFO).getDataBean(0);
		// ○サービス契約情報
		X31SDataBeanAccess svcKeiInfoBean = genCustKeiInfoBean.getDataBeanArray(CommonInfoCFConst.SVC_KEI_INFO).getDataBean(0);
		// ○サービス契約内訳情報
		X31SDataBeanAccess svcKeiUcwkInfoBean = svcKeiInfoBean.getDataBeanArray(CommonInfoCFConst.SVC_KEI_UCWK_INFO).getDataBean(0);

		// 電話番号順を取得
		String telnoJun = svcKeiUcwkInfoBean.sendMessageString(CommonInfoCFConst.TELNO_JUN_24, X31CWebConst.DATABEAN_GET_VALUE);
		telnoJun = String.format(FORMAT_1, Integer.parseInt(telnoJun));

		// サービス契約内訳番号 → 進捗登録マップ.サービス契約内訳番号
		parentMap.put(SVC_KEI_UCWK_NO, svkeiBean.sendMessageString(FUW01403SFConst.SVC_KEI_UCWK_NO_01, X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約回線内訳番号 → 進捗登録マップ.サービス契約回線内訳番号
		parentMap.put(SVC_KEI_KAISEN_UCWK_NO, bean[0].sendMessageString(FUW01403SFConst.SVC_KEI_KAISEN_UCWK_NO, X31CWebConst.DATABEAN_GET_VALUE));

		// 発信者番号通知有無
		String noTchSvcUm = bean[0].sendMessageString(FUW01403SFConst.NO_TCH_SVC_UM, X31CWebConst.DATABEAN_GET_VALUE);


		// 進捗特記事項1
		try
		{
			String prgTkjk1 = "";
			// 登録の場合
			if (NO_TCH_SVC_UM_1.equals(noTchSvcUm))
			{
				prgTkjk1 = JFUWebCommon.getPrgAddTkjkFst(PRG_SCREEN_ID_2, PRGADD_ID);
				prgTkjk1 = prgTkjk1.replace(TKJK_0, telnoJun);
			}
			// 解約の場合
			else
			{
				prgTkjk1 = JFUWebCommon.getPrgAddTkjkFst(PRG_SCREEN_ID_2, PRGDEL_ID);
				prgTkjk1 = prgTkjk1.replace(TKJK_1, telnoJun);
			}

			if (prgTkjk1 != null && prgTkjk1.length() > 0)
			{
				parentMap.put(PRG_TKJK_1, prgTkjk1);
			}
			else
			{
				DEBUG_LOG.debug("※進捗特記事項1がXMLから正常に取得できませんでした。処理は続行します。");
			}
		}
		catch (Exception e)
		{
			DEBUG_LOG.debug("※進捗特記事項1がXMLから正常に取得できませんでした。処理は続行します。");
		}

		arraybean = bean[0].getDataBeanArray(FUW01403SFConst.IDO_DTL_LIST);
		if (parentMap.containsKey(EKK1091D010_LIST))
		{
			list = (ArrayList)parentMap.get(EKK1091D010_LIST);
		}
		else
		{
			list = new ArrayList();
		}
		if (arraybean != null && arraybean.getCount() > 0)
		{
			for (int i = 0; i < arraybean.getCount(); i++)
			{
				X31SDataBeanAccess subbean = arraybean.getDataBean(i);
				HashMap childMap = null;
				if (list.size() - 1 >= i)
				{
					childMap = (HashMap)list.get(i);
				}
				else
				{
					childMap = new HashMap();
				}

				// 異動理由明細.異動理由コード → 進捗登録マップ.異動理由明細.異動理由コード
				if (subbean != null)
				{
					childMap.put(IDO_RSN_CD, subbean.sendMessageString(FUW01403SFConst.IDO_RSN_CD_08, X31CWebConst.DATABEAN_GET_VALUE));
				}

				list.add(childMap);
			}
		}
		parentMap.put(EKK1091D010_LIST, list);

		outputMap.put(SC_TITLE_FUSV004224, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングを行います。
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap<String, Object> setFUSV004208CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		// サービス契約情報リスト
		X31SDataBeanAccessArray arraybean = bean[0].getDataBeanArray(FUW01403SFConst.SVC_KEI_INFO_LIST);
		X31SDataBeanAccess svkeiBean = arraybean.getDataBean(0);
		// サービス契約内訳番号
		parentMap.put(HIKAKIN_SVC_KEI_UCWK_NO, svkeiBean.sendMessageString(FUW01403SFConst.SVC_KEI_UCWK_NO_01, X31CWebConst.DATABEAN_GET_VALUE));
		// オプションサービスコード
		parentMap.put(HIKAKIN_OP_SVC_CD, JFUStrConst.CD00136_B022);
//		// サービス契約内訳番号
//		parentMap.put(SVC_KEI_UCWK_NO, svkeiBean.sendMessageString(FUW01403SFConst.SVC_KEI_UCWK_NO_01, X31CWebConst.DATABEAN_GET_VALUE));
		// オプションサービス契約番号
		parentMap.put(OP_SVC_KEI_NO, svkeiBean.sendMessageString(FUW01403SFConst.HTC_OP_SVC_KEI_NO_01, X31CWebConst.DATABEAN_GET_VALUE));

		// 共通情報のマッピング
		outputMap.put(CC_TITLE_FUSV004208, parentMap);

		return outputMap;

	}


	/**
	 * FUSV004209CC データ移送の設定をします。
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @return マッピング結果
	 */
	@SuppressWarnings("unchecked")
	public HashMap<String, Object> setFUSV004209CC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 発信者番号通知有無
		String noTchSvcUm = bean[0].sendMessageString(FUW01403SFConst.NO_TCH_SVC_UM, X31CWebConst.DATABEAN_GET_VALUE);


		// データ移送先
		parentMap.put(KEY_TRAN_NAME, HAKKO_SOD_MAP);

		// クエリ文字列の例
		// クエリキー：クエリ文字列
		// ※クエリキー → "key_"(固定) + 連番
		// ※クエリ文字列 → 取得元名:取得元リスト名:取得元項目名,移送先リスト名:移送先マップ名:移送先項目名
		if (NO_TCH_SVC_UM_1.equals(noTchSvcUm))
		{
			// データ移送数
			parentMap.put(KEY_KEY_CNT, RPG_KEY_CNT_6);

			parentMap.put(TRANS_KEY_1, SOD_TRANS_KEY_1_VALUE);
			parentMap.put(TRANS_KEY_2, SOD_TRANS_KEY_2_VALUE);
			parentMap.put(TRANS_KEY_3, SOD_TRANS_KEY_3_VALUE);
			parentMap.put(TRANS_KEY_4, SOD_TRANS_KEY_4_VALUE);
			parentMap.put(TRANS_KEY_5, SOD_TRANS_KEY_5_VALUE);
			parentMap.put(TRANS_KEY_6, SOD_TRANS_KEY_6_VALUE);
		}
		else
		{
			// データ移送数
			parentMap.put(KEY_KEY_CNT, RPG_KEY_CNT_3);

			parentMap.put(TRANS_KEY_1, SOD_TRANS_KEY_1_VALUE);
			parentMap.put(TRANS_KEY_2, SOD_TRANS_KEY_7_VALUE);
			parentMap.put(TRANS_KEY_3, SOD_TRANS_KEY_8_VALUE);
		}

		// 共通情報のマッピング
		outputMap.put(CC_TITLE_FUSV004209, parentMap);

		return outputMap;
	}

	/**
	 * ＳＯＤ発行用マッピング<BR>
	 * @param bean
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap<String, Object> setFUSV004210CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		// SODマップ
		HashMap<String, Object> childMap = new HashMap<String, Object>();

		// SOD基本情報
		HashMap<String, Object> sodKihonInfo = new HashMap<String, Object>();
		// SYSID
		sodKihonInfo.put(SYSID, bean[0].sendMessageString(FUW01403SFConst.SYSID, X31CWebConst.DATABEAN_GET_VALUE));
		// 異動区分
		sodKihonInfo.put(IDO_DIV, JFUStrConst.CD00576_00031);
		// SODマップに追加
		childMap.put(SOD_KIHON_INFO, sodKihonInfo);

		// サービス契約情報
		HashMap<String, Object> svcKeiInfo = new HashMap<String, Object>();
		// サービス契約番号
		svcKeiInfo.put(SVC_KEI_NO, bean[0].sendMessageString(FUW01403SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// SODマップに追加
		childMap.put(SVC_KEI_INFO, svcKeiInfo);

		// サービス契約内訳情報
		HashMap<String, Object> svcKeiucwkInfo = new HashMap<String, Object>();
		// サービス契約情報リスト
		X31SDataBeanAccessArray arraybean = bean[0].getDataBeanArray(FUW01403SFConst.SVC_KEI_INFO_LIST);
		X31SDataBeanAccess svkeiBean = arraybean.getDataBean(0);
		// サービス契約内訳番号
		svcKeiucwkInfo.put(SVC_KEI_UCWK_NO, svkeiBean.sendMessageString(FUW01403SFConst.SVC_KEI_UCWK_NO_01, X31CWebConst.DATABEAN_GET_VALUE));
		// SODマップに追加
		childMap.put(SVC_KEI_UCWK_INFO, svcKeiucwkInfo);

		// オプションサービス契約情報
		HashMap<String, Object> opsvkeiInfo = new HashMap<String, Object>();
		// 発信者番号通知有無
		String noTchSvcUm = bean[0].sendMessageString(FUW01403SFConst.NO_TCH_SVC_UM, X31CWebConst.DATABEAN_GET_VALUE);
		if (NO_TCH_SVC_UM_1.equals(noTchSvcUm))
		{
			// 変更前オプションサービス契約番号
			opsvkeiInfo.put(CHBF_OPSVKEI_NO, JFUStrConst.EMPTY);
			// 変更前オプションサービス契約世代登録年月日時分秒
			opsvkeiInfo.put(CHBF_OPSVKEI_GENE_ADD_DTM, JFUStrConst.EMPTY);
		}
		else
		{
			// 変更前オプションサービス契約番号
			opsvkeiInfo.put(CHBF_OPSVKEI_NO, svkeiBean.sendMessageString(FUW01403SFConst.HTC_OP_SVC_KEI_NO_01, X31CWebConst.DATABEAN_GET_VALUE));
			// 変更前オプションサービス契約世代登録年月日時分秒
			opsvkeiInfo.put(CHBF_OPSVKEI_GENE_ADD_DTM, svkeiBean.sendMessageString(FUW01403SFConst.HTC_GENE_ADD_DTM_01, X31CWebConst.DATABEAN_GET_VALUE));
			// 変更後オプションサービス契約番号
			opsvkeiInfo.put(CHAF_OPSVKEI_NO, svkeiBean.sendMessageString(FUW01403SFConst.HTC_OP_SVC_KEI_NO_01, X31CWebConst.DATABEAN_GET_VALUE));
		}
		// SODマップに追加
		childMap.put(OPSVKEI_INFO, opsvkeiInfo);

		// 対象データリスト
		ArrayList<HashMap<String, Object>> arrayList = new ArrayList<HashMap<String, Object>>();
		// SODマップを対象データリストに追加
		arrayList.add(childMap);

		// 対象データリストをマップに追加
		parentMap.put(REQ_TRGT_DATA_LIST, arrayList);

		// 共通情報のマッピング
		outputMap.put(HAKKO_SOD_MAP, parentMap);

		return outputMap;

	}

	/**
	 * 上りマッピングを行います。
	 * @param bean　[0]：２番号サービスお申し込み
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV004225SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		outputMap.put(SC_TITLE_FUSV004225, parentMap);

		return outputMap;
	}

	/**
	 * 電話番号マスタ変更CCの上りマッピング処理です。
	 *
	 * <br>
	 * @param bean データBean配列
	 * @param outputMap アウトマップ
	 * @param func_code 機能コード
	 * @return 結果マップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap<String, Object> setFUSV004211CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 返却リスト
		ArrayList telNoList = new ArrayList();
		// 番号ポータビリティの電話設定
		HashMap<String, Object> chilkdMap = setBmpTelMap(bean);
		telNoList.add(chilkdMap);
		// リストに設定
		parentMap.put("tel_no_list", telNoList);

		// 機能コード
		parentMap.put(FUNC_CODE, func_code);

		// 返却マップに設定
		outputMap.put(CC_TITLE_FUSV004211, parentMap);

		return outputMap;
	}


}