/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹構築
*	モジュール名	：FUSV0161_FUSV0161OPDBMapper
*	ソースファイル名：FUSV0161_FUSV0161OPDBMapper.java
*	作成者			：FJ
*	日付			：2012年04月28日
*＜機能概要＞
*	BP（一括登録）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/04/28	FJ			新規作成
*	v4.00.00	2012/10/18	FJ)齋藤	   【IT1-2012-0001299】割賦契約登録障害対応
*	v4.01.00	2012/10/23	FJ)齋藤	   【IT1-2012-0001250】機器提供サービス．機器付加情報コード設定値障害対応
*	v4.02.00	2012/10/29	FJ)山下	   【ANK-1199-00-00】自動採番対応
*	v4.03.00	2012/10/27	FJ)齋藤	   【IT1-2012-0001107】NULL対応【宅内調査希望時間帯コード、申込実施者種別コード、宅内調査希望日種別コード、電話連絡希望日種別コード、電話連絡希望時間帯コード】
*	v4.04.00	2012/10/29	FJ)齋藤	   【IT1-2012-0001086】申込経路識別コードNULL対応
*	v4.05.00	2012/11/09	FJ)大塚	   【IT1-2012-0001699】モデル整合性対応【機器引当指定倉庫棚コード】
*	v4.06.00    2012/11/13  FJ)岩元	   【IT2-2012-0001695】WiFi即時開通対応
*	v4.07.00	2012/11/21	FJ)岩元	   【ST1-2012-0000961】指示書・通知書対応
*   v4.08.00    2013/01/07  FJ)齋藤    【障害対応:No.31】機器提供サービス契約.宅内機器型式コード登録障害対応
*   v4.09.00	2013/01/28	FJ)矢野	   【ST2-2013-0000341】スマリン登録時に割賦契約の端末購入通知書出力識別コードに1を入れる対応
*   v4.10.00    2013/01/29  FJ)大塚     データ検証対応
*	v4.11.00	2013/02/14	FJ)齋藤	   【KT1-2013-0000162】出荷指図時の付加情報の設定不備
*	v4.12.00	2013/02/23	FJ)玉井	   【ANK-1399-00-00】フロントＳ文言確認修正対応
*	v4.13.00	2013/03/07	FJ)藤原		【No.409】本人確認書類設定値変更対応
*	v5.00.00	2013/03/28	FJ)大村	   スマリ割賦プランコード・支払回数対応
*	v5.01.00	2013/05/03	FJ)大村	   【No.735】スマリ機器提供サービス契約の機器付加情報対応
*   v5.13.00    2013/08/07  FJ)文元	   【IT1-2013-0001522】マンション申し込みの場合、申込明細の契約付加、機器提供サービス契約の宅内機器型式コードに値を設定するよう対応
*   v8.00	    2014/03/03  FJ)文元	   【ANK-1954-00-00】 【ＮＯ．１３０８】スマートリンクの新機種リリース対応
*   v9.00	    2014/05/12  FJ)川瀬	   【ANK-2056-00-00】【ＮＯ．９４９】光TELセレクトオプションパック
*   v9.00       2014/05/15  FJ)川瀬	   【ANK-2054-00-00】スマートリンク端末補償
*  v29.00.00	2016/11/01	FJ)張本	   【ANK-2990-00-00】新電力対応Step2
*  v29.01		2017/02/20	FJ)張本	   【ANK-3091-00-00】アンケートフォームによるガス申込対応
*  v32.00.00    2017/04/20  FJ)謝      【ANK-3149-00-00】新セキュリティパック導入
*  v33.00.00    2017/08/04  FJ)黒田    【ANK-3217-00-00】GHサービス開始対応
*  v35.00.00    2017/09/19  FJ)美濃原  【ANK-3211-00-00】eo電気架電予約機能におけるCase連携の内容変更
*  v38.00.00    2018/08/20  FJ) 河邊   【OM-2018-0000758】申込タブ支払方法表示不備
*  v39.00.00    2018/10/12  FJ)和田(康)【ANK-3484-00-00】端末補償サービス導入対応
*  v39.0.0      2018/11/18  FJ) 大島   【ANK-3473-00-00】選択性CPシステム改修
*  v39.00       2018/11/30  FJ) 岡井   【ANK-3477-00-00】eoマイページからのお客さま情報変更自動反映
*  v42.00       2019/05/29  FJ) 大島   【ANK-3642-00-00】スマートリンクタブレット新機種追加（2019年6月〜）
*  v50.00.00    2020/07/24  FJ) 西川   【ANK-3754-00-00】トビラフォン対応
*  v52.00.00    2021/01/18  FJ)美濃原  【ANK-3910-00-00】定額サービスリース品追加対応
*  v53.00.00    2021/05/31  FJ）西川   【IT1-2021-0000039】ANK-4009-00-00_CX戦略WG方針対応
*  v58.00.00    2022/05/16  FJ) 新谷   【ANK-3846-00-00】【クレカ】クリアパス→ペイジェント移行
**********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.HashMap;
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.JPCEditString;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JFUGetElecTaioKirok;
import eo.web.webview.common.JFUScreenConst;
import eo.web.webview.common.JFUTabletInfoUtil;
import eo.web.webview.common.JFUWebCommon;

/**
 * DataBean-BPマッピングをする。
 *
 * <br>
 *
 * @author 富士通
 */
public class FUSV0161_FUSV0161OPDBMapper
{

	/** 選択（1） */
	private static final String SENTAKU = "1";

	/** 機器引当指定倉庫コード（みなと倉庫） */
	private static final String KIKI_SOUKO_MINATO = "000001";
	/* 2013/02/14 KT1-2013-0000162 Y.Saitou DEL */

	/** 定義取得パス 端末情報 */
	private static final String QUERY_PATH = "DISPSETTING/SETTING[@screenId='COMMON']/DISPTEXT[@groupid='%1%']";
	/** 属性名 */
	private static final String QUERY_ATTR_NAME = "id";
	/** 置き換え文字列1 */
	private static final String RE_1 = "%1%";

	/** TODO コード種別 割引サービスコード ファミリーパック */
	private static final String CD00138_W00000006 = "W00000006";

	/** TODO コード種別 割引サービスコード おまかせ安心セット */
	private static final String CD00138_W00000007 = "W00000007";

	/** 料金コードコードフラグ */
	private static final String PCRS_CD_FLG = "1";

	/** TODO コード種別 割引サービス対象サービスコード ファミリーパック */
	private static final String CD00139_WT0000000006 = "WT0000000006";

	/** アンケートリスト */
	private static final String ENQUETE_LIST = "アンケートリスト";
	/** アンケートチェック種別 */
	private static final String ENQUETE_CHK_SBT_02 = "アンケートチェック種別";
	/** アンケート回答リスト */
	private static final String ENQUETE_ANSWER_LIST = "アンケート回答リスト";
	/** チェックボックス入力可否 */
	private static final String CHKBOX_CHECKED_06 = "チェックボックス入力可否";
	/** ラジオボタン選択値 */
	private static final String RADIO_VALUE_02 = "ラジオボタン選択値";
	/** アンケートフリー入力欄 */
	private static final String ENQUETE_FREE_IPTFIELD_06 = "アンケートフリー入力欄";
	/** アンケートコード */
	private static final String ENQUETE_CD_06 = "アンケートコード";
	/** アンケート番号 */
	private static final String ENQUETE_CONTENT_NO_02 = "アンケート番号";
	/** アンケートフラグ */
	public static final String ENQUETEFLG = "アンケートフラグ";

	/** IN項目：ファミリーパック申込有無 */
	private static final String IN_FAMIPA_MSKM_UM = "in_famipa_mskm_um";
	/** IN項目：サービス契約番号(電話) */
	private static final String IN_SVC_KEI_NO_TEL = "in_svc_kei_no_tel";
	/** IN項目：異動区分 */
	private static final String IN_IDO_DIV = "in_ido_div";
	/** IN項目：販売タイプ */
	private static final String IN_HANBAI_TYPE = "in_hanbai_type";
	/** IN項目：加入契約申込条件コード */
	private static final String IN_KNYKEI_MSKM_JOKEN_CD = "in_knykei_mskm_joken_cd";
	/** IN項目：選択中サービス(電話) */
	private static final String IN_SELECT_SVC_TEL = "in_select_svc_tel";
	/** IN項目：サービス契約回線内訳番号 */
	private static final String IN_SVC_KEI_KAISEN_UW_NO = "in_svc_kei_kaisen_uw_no";

	/** マップキー 移送先名取得 */
	private static final String KEY_TRAN_NAME = "tranNm";
	/** マップキー キーカウント */
	private static final String KEY_KEY_CNT = "key_cnt";
	/** マップキー キーカウント */
	private static final String RPG_KEY_CNT_4 = "4";

	/** 同番移転チェックCC */
	private static final String CC_TITLE_JKK_CHK_DOBANITEN_PSB_AREA = "JKKChkDobanitenPsbAreaCC";
	/** 住所情報分割CC(利用場所住所) */
	private static final String CC_TITLE_FUSV016102 = "FUSV016102CC";
	/** サービスIF結果データ移送CC */
	private static final String CC_TITLE_JFU_TRANSFER = "JFUTransferCC";

	/** 移送用キー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";

	/** 都道府県 */
	private static final String TRANS_KEY_1_VALUE_1 = CC_TITLE_FUSV016102 + "::state_nm,::key_state_nm";
	/** 市区町村 */
	private static final String TRANS_KEY_1_VALUE_2 = CC_TITLE_FUSV016102 + "::city_nm,::key_city_nm";
	/** 大字通称名 */
	private static final String TRANS_KEY_1_VALUE_3 = CC_TITLE_FUSV016102 + "::oaztsu_nm,::key_oaztsu_nm";
	/** 字丁目名 */
	private static final String TRANS_KEY_1_VALUE_4 = CC_TITLE_FUSV016102 + "::azcho_nm,::key_azcho_nm";

	/** サービス契約番号 */
	private static final String SVC_KEI_NO = "svc_kei_no";

	/** eo電気案内希望（eo電気見込み客）*/
	public static final String ELEC_TR = "ELEC_TR";
	/** 問合せ客タイプ名  */
	public static final String ELEC_TR_PROSCST_TYPE_NM = "proscst_type_nm";
	/** 問合せ状態名 */
	public static final String ELEC_TR_TOIAWASE_STAT_NM = "toiawase_stat_nm";
	/** 対応記録ステータス名 */
	public static final String ELEC_TR_TAIOKRK_STAT_NM = "taiokrk_stat_nm";
	/** 受付者 */
	public static final String ELEC_TR_UKETSUKESYA = "uketsukesya";
	/** 担当者 */
	public static final String ELEC_TR_TNTSHA = "tntsha";
	/** キューBOX名 */
	public static final String ELEC_TR_QUE_BOX_NM = "que_box_nm";
	/** 問合せ受付種別名 */
	public static final String ELEC_TR_TOIAWASE_UK_SBT_NM = "toiawase_uk_sbt_nm";
	/** タイトル */
	public static final String ELEC_TR_TITLE = "title";
	/** eo電気案内希望（eo電気見込み客）*/
	public static final String ELEC_TR_TAIO_KIROK_RIREKI = "taio_kirok_rireki";
	/** eo電気案内希望（eo電気見込み客）*/
	public static final String ELEC_TR_MSKM_UK_DTM = "mskm_uk_dtm";
	/** eo電気案内希望（eo電気見込み客）*/
	public static final String ELEC_TR_CSFL_SBT_CD = "csfl_sbt_cd";
	/** CASEファイル作成済フラグ  */
	private static final String ELEC_TR_CSFL_SKSI_ZM_FLG = "csfl_sksi_zm_flg";

	/** FUSV016137CC */
	private static final String FUSV016137CC = "FUSV016137CC";
	/** メール受信設定表示フラグ */
	private static final String MAIL_JUSIN_SETTEI_DSP_FLG = "mail_jusin_settei_dsp_flg";
	/** SYSID取得先コンポーネント名 */
	private static final String GET_SYSID_COMP_NM = "get_sysid_comp_nm";
	/** SYSID */
	private static final String IN_SYSID = "in_sysid";
	/** オプトインメールワーク登録リスト */
	private static final String OPTINM_WORK_ADD_LIST = "optinm_work_add_list";
	/** オプトインメール登録リスト */
	private static final String OPTINM_ADD_LIST = "optinm_add_list";
	/** オプトインメール番号 */
	private static final String OPTINM_NO = "optinm_no";
	/** 受信区分 */
	private static final String RCV_DIV = "rcv_div";
	/** メール受信設定表示フラグ 1：表示 */
	private static final String MAIL_JUSIN_SETTEI_DSP_FLG_1 = "1";
	/** SYSID取得マップキー(個人) */
	private static final String MAP_KEY_ECK0021D010 = "ECK0021D010";
	/** SYSID取得マップキー(法人) */
	private static final String MAP_KEY_ECK0031D010 = "ECK0031D010";
	/** 連絡用コンテンツメールアドレス **/
	private static final String IN_MLAD = "in_mlad";

// ANK-3149-00-00 ADD START
	/** 引継有無 無 */
	private static final String HIKITUGI_UM_NON = "0";
	
	/** 対象フラグ 無 */
	private static final String TG_FLG_NON = "0";
	
	/** 対象フラグ 有 */
	private static final String TG_FLG_ARI = "1";
// ANK-3149-00-00 ADD END

	// ANK-3484-00-00 2018/10/12 ADD START
	/** 処理区分 登録 **/
	private static final String SHORI_DIV_2 = "2";
	/** 機能コード */
	private static final String FUNC_CODE = "func_code";
	/** 異動区分 */
	private static final String IDO_DIV = "ido_div";
	
	/** 処理区分 **/
	private static final String SHORI_DIV = "shori_div";
	/** 申込年月日 **/
	private static final String MKSM_YMD = "mksm_ymd";
	/** ＰＣプラン対象フラグ **/
	private static final String PC_PLAN_TG_FLG = "pc_plan_tg_flg";
	/** ＰＣプラン申込日 **/
	private static final String PC_PLAN_MKSM_YMD = "pc_plan_mksm_ymd";
	/** ＰＣワイドプラン対象フラグ **/
	private static final String PC_WIDE_PLAN_TG_FLG = "pc_wide_plan_tg_flg";
	/** ＰＣワイドプラン申込日 **/
	private static final String PC_WIDE_PLAN_MKSM_YMD = "pc_wide_plan_mksm_ymd";
	/** ＴＶプラン対象フラグ **/
	private static final String TV_PLAN_TG_FLG = "tv_plan_tg_flg";
	/** ＴＶプラン申込日 **/
	private static final String TV_PLAN_MKSM_YMD = "tv_plan_mksm_ymd";
	/** ｅｏ光ネット　端末補償 申し込む */
	private static final String PLAN_MSKM = "1";
	/** ｅｏ光ネット　端末補償 申し込まない */
	private static final String PLAN_NOT_MSKM = "0";
	// ANK-3484-00-00 2018/10/12 ADD END

// ANK-3473-00-00 ADD START
	/** JFUGetCampaignListCC */
	private static final String JFUGETCAMPAIGNLISTCC = "JFUGetCampaignListCC";
	/** キャンペーンコード */
	private static final String IN_CAMPAIGN_CD = "campaign_cd";
	/** キャンペーン種別コード 1:商品券 2:割引サービス */
	private static final String IN_CAMPAIGN_SBTCD = "campaign_sbt_cd";
// ANK-3473-00-00 ADD END
	
	/**
	 * コンストラクタ
	 */
	public FUSV0161_FUSV0161OPDBMapper()
	{
	}

	/**
	 * // 申込内容承認登録の上りマッピングをする
	 *
	 * @param bean
	 *            　[0]：入力内容確認　[1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code
	 *            　機能コード
	 * @param DateTimeStamp タイムスタンプ
	 * @param opeDate 運用日付
	 * @param bl 実行中のVIEWロジックインスタンス
	 * @return HashMap
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public HashMap setEKK0011D020(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String DateTimeStamp, String opeDate,
			X31BWebBusinessLogic bl)
			throws Exception
	{
		ArrayList list = null;
		HashMap childMap = null;
		int srvCnt = 0;
		//		int telTempCnt = 0; // 電話番号登録数
		//		String preFix = "";
		String workNet = "";
		String workTv = "";
		String workTel = "";
		//		String workMob = "";

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// WEB新規情報
		X31SDataBeanAccess bnWebinfo = getWebInfo(bean[0]);
		// 契約者情報
		X31SDataBeanAccess bnKeiyakuinfo = getKeiyakuinfo(bnWebinfo);
		// 契約サービス情報
		X31SDataBeanAccess bnKeiyakusvcinfo = getKeiyakusvcinfo(bnWebinfo);
		// テレビ情報
		X31SDataBeanAccess bnTvInfo = getEotv(bnWebinfo);
		// モバイル情報
		X31SDataBeanAccess bnMobile = getMobile(bnWebinfo);
		// 光電話
		X31SDataBeanAccess[] bnEotel = getEotel(bnWebinfo);
		// マンション
		X31SDataBeanAccess bnMasion = getMansioninfo(bnWebinfo);
		// その他情報
		//		X31SDataBeanAccess bnElseinfo = getElseInfo(bnWebinfo);

		// 支払い方法情報
		X31SDataBeanAccess cash_infobean = getPywyInfo(bnWebinfo);

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// SYSID
		parentMap.put("sysid", bnWebinfo.sendMessageString(CommonInfoCFConst.SYSID_06, X31CWebConst.DATABEAN_GET_VALUE));

		// 申込種別コード
		// 共有フォームBean.申込区分が1(新規)の場合
		if (bnWebinfo.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_GET_VALUE).equals(JFUStrConst.MSKM_KBN_NEW))
		{
			parentMap.put("mskm_sbt_cd", JFUStrConst.KK0971_MSKM_SBT_CD_00001);
		}
		// 共有フォームBean.申込区分が2(追加)の場合
		else if (bnWebinfo.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_GET_VALUE).equals(JFUStrConst.MSKM_KBN_ADD))
		{
			parentMap.put("mskm_sbt_cd", JFUStrConst.KK0971_MSKM_SBT_CD_00002);
		}

		// システム日付
		String opeDateTime = DateTimeStamp;
		//String opeDate = JFUWebCommon.getSysDate();
		// 申込書到着年月日
		parentMap.put("mskmsho_ariv_ymd", opeDate);
		// 申込受付年月日時分秒
		parentMap.put("mskm_uk_dtm", opeDateTime);
		//TODO 申込受付担当ユーザーID
		parentMap.put("mskm_uk_tnt_user_id", "");
		// 申込年月日
		parentMap.put("mskm_ymd", opeDate);
		//TODO 総合営業センター受付番号
		parentMap.put("ttl_business_center_uk_no", "");
		//TODO 総合営業申込契機コード
		parentMap.put("ttl_business_mskm_opt_cd", "");
		//TODO 申込実施者種別コード
		parentMap.put("mskm_rrks_telno", "");

		/* 2012/10/27 Y.Saitou IT1-2012-0001107 DEL-START */
		//		String mskmJsssSbtCd = "";
		//		if (bnWebinfo.sendMessageString(CommonInfoCFConst.HANBAI_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE).equals(JFUStrConst.HNBAI_TYPE_CON))
		//		{
		//			// コンシューマ
		//			mskmJsssSbtCd = JFUWebCommon.getDispText(SCREEN_ID, "MSKM_KSS_SBCD_01");
		//		}
		//		else if (bnWebinfo.sendMessageString(CommonInfoCFConst.HANBAI_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE).equals(JFUStrConst.HNBAI_TYPE_RYOHAN))
		//		{
		//			// 量販
		//			mskmJsssSbtCd = JFUWebCommon.getDispText(SCREEN_ID_927, "MSKM_KSS_SBCD_01");
		//			;
		//		}
		//		else if (bnWebinfo.sendMessageString(CommonInfoCFConst.HANBAI_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE).equals(JFUStrConst.HNBAI_TYPE_HOHAN))
		//		{
		//			// 訪販
		//			mskmJsssSbtCd = JFUWebCommon.getDispText(SCREEN_ID_927, "MSKM_KSS_SBCD_01");
		//			;
		//		}
		//		else
		//		{
		//			mskmJsssSbtCd = JFUWebCommon.getDispText(SCREEN_ID, "MSKM_KSS_SBCD_01");
		//		}
		//		// 申込実施者種別コード
		//		parentMap.put("mskm_jssis_sbt_cd", mskmJsssSbtCd);
		/* 2012/10/27 Y.Saitou IT1-2012-0001107 DEL-END */

		//TODO お客様ご要望事項
		parentMap.put("cust_yobo_jiko", "");

		// 本人確認書類名
		// ※量販・訪販のみセット
		if (bnWebinfo.sendMessageString(CommonInfoCFConst.HANBAI_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE).equals(JFUStrConst.HNBAI_TYPE_RYOHAN)
				|| bnWebinfo.sendMessageString(CommonInfoCFConst.HANBAI_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE)
						.equals(JFUStrConst.HNBAI_TYPE_HOHAN))
		{
			// 2013/03/07 Fujiwara Mod Start
			/** 2012/02/18 楠山 量販・訪販用処理 変更 START */
			parentMap.put("hnin_cfm_bunsho_kind_nm", bnKeiyakuinfo.sendMessageString(CommonInfoCFConst.HONNIN_DETAIL_09,
					X31CWebConst.DATABEAN_GET_VALUE));
			/** 2012/02/18 楠山 量販・訪販用処理 変更 END */
			// 2013/03/07 Fujiwara Mod End
		}

		/* 2012/10/27 Y.Saitou IT1-2012-0001107 DEL-START */
		//		// TODO　電話連絡希望日種別コードJFUStrConst.CD00708_3
		//		parentMap.put("tel_rrk_kibod_sbt_cd", "3");
		//		// 電話連絡希望時間帯コードJFUStrConst.CD00708_3
		//		parentMap.put("tel_rrk_kibo_time_cd", "3");
		//		// TODO　宅内調査希望日種別コードJFUStrConst.CD00708_3
		//		parentMap.put("takcho_kibod_sbt_cd", "3");
		//		// 宅内調査希望時間帯コードJFUStrConst.CD00708_3
		//		parentMap.put("takcho_kibo_time_cd", "3");
		/* 2012/10/27 Y.Saitou IT1-2012-0001107 DEL-END */

		//TODO リファラー
		parentMap.put("referer", "");
		// 仮申込フラグ
		//		if (bnKeiyakusvcinfo.sendMessageString(CommonInfoCFConst.MSKM_STATE_10, X31CWebConst.DATABEAN_GET_VALUE).equals(JFUStrConst.CD00667_1))
		//		{
		//			// 低価格マンション料金確認
		//			parentMap.put("kari_mskm_flg", JFUStrConst.CD00667_1);
		//		}
		//		else
		//		{
		//			parentMap.put("kari_mskm_flg", JFUStrConst.CD00667_1);
		//		}
		parentMap.put("kari_mskm_flg", JFUStrConst.EMPTY);

		// 関西電力お客様情報授受同意有無
		// No410 2013/03/03 Otsuka start

		//		String kanden_doui = bnKeiyakuinfo.sendMessageString(CommonInfoCFConst.KEPCO_CUSTINFO_JUJU_DOI_UM_09, X31CWebConst.DATABEAN_GET_VALUE);
		//		// -----IT2-2012-0000636 h.iwamoto 2012/06/04 ADD START-----
		//		if ("".equals(kanden_doui))
		//		{
		//			// 関西電力お客様情報授受同意有無が空白の場合0に初期化する(マンション・メゾン向け)
		//			kanden_doui = "0";
		//		}
		// -----IT2-2012-0000636 h.iwamoto 2012/06/04 ADD END-----
		// 全戸一括マンションの場合は0:同意しない固定
		parentMap.put("kepco_custinfo_juju_doi_um", "0");
		// No410 2013/03/03 Otsuka end

		//TODO 照査前連絡事項要否
		parentMap.put("shosa_bf_rrk_jiko_yh", "");

		//TODO 照査前連絡事項
		parentMap.put("shosa_bf_rrk_jiko", "");

		//TODO 利用サービス継続種別コード
		parentMap.put("use_svc_keizk_sbt_cd", "");

		// コンシューマ営業用申込状態識別コード
		// No316 Otsuka 2013/01/26 start
		// 全戸一括の場合は、04:承認済
		parentMap.put("consmbsn_mskm_stat_skbt_cd", JFUStrConst.CD00760_04);
		// No316 Otsuka 2013/01/26 end

		// 共有フォームBean.販売タイプが1（量販)
		if (bnWebinfo.sendMessageString(CommonInfoCFConst.HANBAI_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE).equals(JFUStrConst.HNBAI_TYPE_RYOHAN))
		{
			// 受付担当者識別コード
			parentMap.put("uk_tntsha_skbt_cd", JFUStrConst.CD01268_02);
		}
		// 共有フォームBean.販売タイプが2（訪販)
		else if (bnWebinfo.sendMessageString(CommonInfoCFConst.HANBAI_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE).equals(JFUStrConst.HNBAI_TYPE_HOHAN))
		{
			// 受付担当者識別コード
			parentMap.put("uk_tntsha_skbt_cd", JFUStrConst.CD01268_03);
		}

		// 工事依頼情報連絡事項
		parentMap.put("koji_req_info_rrk_jiko", "");
		// 電気同時申込意思有無
		parentMap.put("eoelec_doji_mskm_ishi_um", bnWebinfo.sendMessageString(CommonInfoCFConst.EOELEC_DOJI_MSKM_ISHI_UM_06, X31CWebConst.DATABEAN_GET_VALUE));
		// 定額サービス申込機器
		parentMap.put("tegak_svc_mskm_kiki", bnWebinfo.sendMessageString(CommonInfoCFConst.TEGAK_SVC_COURSE_06, X31CWebConst.DATABEAN_GET_VALUE));

		/* 2012/10/29 Y.Saitou IT1-2012-0001086 DEL-START */
		//		// -----ST2-2012-0001348 2012/07/05 h.iwamoto START-----
		//		// 申込経路識別コード
		//		parentMap.put("mskm_route_skbt_cd", JFUStrConst.CD00751_2);
		//		// -----ST2-2012-0001348 2012/07/05 h.iwamoto END-----
		/* 2012/10/29 Y.Saitou IT1-2012-0001086 DEL-END */

		// 申込登録明細
		if (parentMap.containsKey("EKK0011D020CBSMsg1List"))
		{
			list = (ArrayList)parentMap.get("EKK0011D020CBSMsg1List");
		}
		else
		{
			list = new ArrayList();
		}

		// eo光ネット
		if (bnKeiyakusvcinfo.sendMessageString(CommonInfoCFConst.SELECT_SVC_NET_10, X31CWebConst.DATABEAN_GET_VALUE).equals(SENTAKU))
		{
			srvCnt = srvCnt + 1;
		}
		// eo光テレビ
		if (bnKeiyakusvcinfo.sendMessageString(CommonInfoCFConst.SELECT_SVC_TV_10, X31CWebConst.DATABEAN_GET_VALUE).equals(SENTAKU))
		{
			srvCnt = srvCnt + 1;
		}
		// eo光電話
		if (bnKeiyakusvcinfo.sendMessageString(CommonInfoCFConst.SELECT_SVC_TEL_10, X31CWebConst.DATABEAN_GET_VALUE).equals(SENTAKU))
		{
			srvCnt = srvCnt + 1;
		}
		// eoモバイル
		if (bnMobile.sendMessageString(CommonInfoCFConst.MOBILE_COURSE_14, X31CWebConst.DATABEAN_GET_VALUE).length() > 0
				&& !bnMobile.sendMessageString(CommonInfoCFConst.MOBILE_COURSE_14, X31CWebConst.DATABEAN_GET_VALUE).equals(
						JFUStrConst.MOBILE_COURSE_NON)
				&& !bnMobile.sendMessageString(CommonInfoCFConst.MOBILE_COURSE_14, X31CWebConst.DATABEAN_GET_VALUE).equals(
						JFUStrConst.MOBILE_COURSE_3G_UNDECIDED))
		{
			srvCnt = srvCnt + 1;
		}

		for (int i = 0; i < srvCnt; i++)
		{
			childMap = new HashMap();

			if (bnKeiyakusvcinfo.sendMessageString(CommonInfoCFConst.SELECT_SVC_NET_10, X31CWebConst.DATABEAN_GET_VALUE).equals(SENTAKU)
					&& workNet.length() == 0)
			{
				// eo光ネット申込明細番号
				childMap.put("ekk0091_mskm_dtl_no", "");
				childMap.put("ekk0091_kk0021_gene_add_dtm", "");

				// 契約付加コード
				childMap.put("kei_huka_cd", JFUWebCommon.getEditMskmDtlkeiHukaCd(bl));

				workNet = "1";
			}
			else if (bnKeiyakusvcinfo.sendMessageString(CommonInfoCFConst.SELECT_SVC_TV_10, X31CWebConst.DATABEAN_GET_VALUE).equals(SENTAKU)
					&& workTv.length() == 0)
			{
				// eo光テレビ申込明細番号
				childMap.put("ekk0101_mskm_dtl_no", "");
				childMap.put("ekk0101_kk0021_gene_add_dtm", "");

				// 契約付加コード
				childMap.put("kei_huka_cd", "");

				// テレビコース2:KCNを選択している場合登録
				String eoTvKcnCrs = bnTvInfo.sendMessageString(CommonInfoCFConst.TV_COURSE_13, X31CWebConst.DATABEAN_GET_VALUE);
				if (JFUStrConst.TV_COURSE_KCN.equals(eoTvKcnCrs))
				{
					// KCNSTB台数
					String stbCntTxt = bnTvInfo.sendMessageString(CommonInfoCFConst.STB_CNT_13, X31CWebConst.DATABEAN_GET_VALUE);
					childMap.put("kcn_stb_mskm_cnt", stbCntTxt);

					int stbCnt = Integer.valueOf(stbCntTxt);
					String kcnStbKnd = "";
					for (int j = 0; j < stbCnt; j++)
					{
						if (j == 0)
						{
							kcnStbKnd = bnTvInfo.sendMessageString(CommonInfoCFConst.STB_HD1_KIKI_13, X31CWebConst.DATABEAN_GET_VALUE);
						}
						if (j == 1)
						{
							kcnStbKnd = kcnStbKnd + bnTvInfo.sendMessageString(CommonInfoCFConst.STB_HD2_KIKI_13, X31CWebConst.DATABEAN_GET_VALUE);
						}
						if (j == 2)
						{
							kcnStbKnd = kcnStbKnd + bnTvInfo.sendMessageString(CommonInfoCFConst.STB_HD3_KIKI_13, X31CWebConst.DATABEAN_GET_VALUE);
						}
						if (j == 3)
						{
							kcnStbKnd = kcnStbKnd + bnTvInfo.sendMessageString(CommonInfoCFConst.STB_HD4_KIKI_13, X31CWebConst.DATABEAN_GET_VALUE);
						}
						if (j == 4)
						{
							kcnStbKnd = kcnStbKnd + bnTvInfo.sendMessageString(CommonInfoCFConst.STB_HD5_KIKI_13, X31CWebConst.DATABEAN_GET_VALUE);
						}
					}
					// KCNSTB種類コード
					childMap.put("kcn_stb_kind_cd", kcnStbKnd);
				}
				workTv = "1";
			}
			else if (bnKeiyakusvcinfo.sendMessageString(CommonInfoCFConst.SELECT_SVC_TEL_10, X31CWebConst.DATABEAN_GET_VALUE).equals(SENTAKU)
					&& bnEotel[0] != null && workTel.length() == 0)
			{
				// eo光電話申込明細番号
				childMap.put("ekk0111_mskm_dtl_no", "");
				// eo光電話世代登録年月日時分秒
				childMap.put("ekk0111_kk0021_gene_add_dtm", "");

				// 契約付加コード
				childMap.put("kei_huka_cd", JFUWebCommon.getEditMskmDtlkeiHukaCd(bl));

				workTel = "1";
			}
			else if (bnMobile.sendMessageString(CommonInfoCFConst.MOBILE_COURSE_14, X31CWebConst.DATABEAN_GET_VALUE).length() > 0
					&& !bnMobile.sendMessageString(CommonInfoCFConst.MOBILE_COURSE_14, X31CWebConst.DATABEAN_GET_VALUE).equals(
							JFUStrConst.MOBILE_COURSE_NON)
					&& !bnMobile.sendMessageString(CommonInfoCFConst.MOBILE_COURSE_14, X31CWebConst.DATABEAN_GET_VALUE).equals(
							JFUStrConst.MOBILE_COURSE_3G_UNDECIDED))
			{
				// eoモバイル申込明細番号
				childMap.put("ekk0121_mskm_dtl_no", "");
				childMap.put("ekk0121_kk0021_gene_add_dtm", "");

				// 契約付加コード
				childMap.put("kei_huka_cd", "");

				//				workMob = "1";
			}

			//TODO WEB受付番号
			childMap.put("web_uk_no", "");

			// 共有フォームBean.販売タイプが1（量販)
			if (bnWebinfo.sendMessageString(CommonInfoCFConst.HANBAI_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE).equals(JFUStrConst.HNBAI_TYPE_RYOHAN))
			{
				// 申込形態コード
				childMap.put("mskm_form_cd", JFUStrConst.CD00591_02);
				// 新規申込種別コード
				childMap.put("new_mskm_sbt_cd", JFUStrConst.CD00683_003);
			}
			// 共有フォームBean.販売タイプが2（訪販)
			else if (bnWebinfo.sendMessageString(CommonInfoCFConst.HANBAI_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE).equals(
					JFUStrConst.HNBAI_TYPE_HOHAN))
			{
				// 申込形態コード
				childMap.put("mskm_form_cd", JFUStrConst.CD00591_03);
				/** 2012/02/18 楠山 量販・訪販用処理 変更 START */
				// 新規申込種別コード
				childMap.put("new_mskm_sbt_cd", JFUStrConst.CD00683_003);
				/** 2012/02/18 楠山 量販・訪販用処理 変更 END */
			}
			// 上記以外（WEB申込）
			else
			{
				// 申込形態コード
				childMap.put("mskm_form_cd", JFUStrConst.CD00591_01);
				// 新規申込種別コード
				childMap.put("new_mskm_sbt_cd", JFUStrConst.CD00683_001);
			}

			//TODO 申込明細種別コード
			childMap.put("mskm_dtl_sbt_cd", "");
			//TODO 連絡先携帯電話番号
			childMap.put("rrks_ktai_telno", "");
			//TODO 連絡先勤務先名
			childMap.put("rrks_offc_nm", "");
			//TODO 昼間連絡先電話番号
			childMap.put("dt_rrks_telno", "");
			//TODO 申込契機コード
			childMap.put("mskm_optnty_cd", "");
			//TODO 申込経路コード
			childMap.put("mskm_route_cd", "");
			//TODO 宅内調査希望アポ期限年月日
			childMap.put("takcho_kibo_apo_kigen_ymd", "");
			//TODO 工事アポ連絡先指定コード
			childMap.put("koji_apo_rrks_shitei_cd", "");
			//TODO 工事アポ連絡先電話番号
			childMap.put("koji_apo_rrks_telno", "");
			//TODO 連絡事項登録年月日時分秒
			childMap.put("rrk_jiko_add_dtm", "");

//			// 申込連絡先メールアドレス
//			if (bnWebinfo.sendMessageString(CommonInfoCFConst.KEI_SBT_06, X31CWebConst.DATABEAN_GET_VALUE).equals(JFUStrConst.KEI_SBT_KOJINCD))
//			{
//				// 個人契約
				childMap.put("mskm_rrks_mlad", bnKeiyakuinfo.sendMessageString(CommonInfoCFConst.KOJIN_MLAD_09, X31CWebConst.DATABEAN_GET_VALUE));
//			}
//			else if (bnWebinfo.sendMessageString(CommonInfoCFConst.KEI_SBT_06, X31CWebConst.DATABEAN_GET_VALUE).equals(JFUStrConst.KEI_SBT_HOJINCD))
//			{
//				// 法人契約
//				childMap.put("mskm_rrks_mlad", bnKeiyakuinfo.sendMessageString(CommonInfoCFConst.HOJIN_MLAD_09, X31CWebConst.DATABEAN_GET_VALUE));
//			}

			// 工事進捗通知メールアドレス
			childMap.put("koji_prg_tchi_mlad", "");
			// 連絡事項
			childMap.put("rrk_jiko", "");
			// 工事進捗通知携帯メールアドレス
			childMap.put("kjsc_tch_ktai_mlad", "");
			// メール送信除外フラグ
			childMap.put("ml_send_jgi_flg", "");
			// メール送信除外理由メモ
			childMap.put("ml_send_jgi_rsn_memo", "");
			// 番ポ申込連絡先電話番号
			childMap.put("bmp_mskm_rrks_tln", "");

			// 申込回線サービス
			String mskm_ksn_svc = bnWebinfo.sendMessageString(CommonInfoCFConst.MSKM_KSN_SVC_06, X31CWebConst.DATABEAN_GET_VALUE);
			// 申込マンションタイプ
			String mskm_mansion_typ = bnWebinfo.sendMessageString(CommonInfoCFConst.MSKM_MNS_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE);
			// オプションサービス引継有無
			childMap.put("op_svc_hktgi_um", JFUStrConst.CD00002_0);
			// 解約書類送付希望有無
			childMap.put("dsl_aticle_sohu_kibo_um", JFUStrConst.CD00002_0);
			// 連絡手段補記
			childMap.put("rrk_way_hoki", "");
			// 新築物件コード
			childMap.put("newconst_bukken_cd", JFUStrConst.CD00480_0);
			// 復活案件フラグ
			childMap.put("hukkat_anken_flg", JFUStrConst.CD00777_0);
			// 同一設備再申込コード
			childMap.put("same_equip_re_mskm_cd", JFUStrConst.CD00485_0);
			String mskmsho_sbt_cd = ""; // 申込書種別コード
			if (mskm_ksn_svc.equals(JFUStrConst.MSKM_KSN_SVC_HOME))
			{
				mskmsho_sbt_cd = JFUStrConst.CD00752_1; // ホーム
			}
			else if (mskm_ksn_svc.equals(JFUStrConst.MSKM_KSN_SVC_MANSION) && mskm_mansion_typ.equals(JFUStrConst.MSKM_MNS_TYPE_MANSION))
			{
				mskmsho_sbt_cd = JFUStrConst.CD00752_2; // マンション
			}
			else if (mskm_ksn_svc.equals(JFUStrConst.MSKM_KSN_SVC_MANSION) && mskm_mansion_typ.equals(JFUStrConst.MSKM_MNS_TYPE_MEZON))
			{
				mskmsho_sbt_cd = JFUStrConst.CD00752_3; // メゾン
			}
			// 本人確認書類種別コード
			childMap.put("hnin_cfm_aticle_sbt_cd", "");
			// 申込書種別コード
			childMap.put("mskmsho_sbt_cd", mskmsho_sbt_cd);
			//TODO 地図添付有無
			childMap.put("map_temp_um", "");
			//TODO マンション設備システム連携用記事欄
			childMap.put("manssbsys_rnki_yo_kijiran", "");
			// マンションID
			childMap.put("mansion_id", bnMasion.sendMessageString(CommonInfoCFConst.MANSION_ID_16, X31CWebConst.DATABEAN_GET_VALUE));
			// CAT-ID
			childMap.put("catid", bnMasion.sendMessageString(CommonInfoCFConst.CATID_16, X31CWebConst.DATABEAN_GET_VALUE));
			// 申込受付種別コード
			// 販売タイプ取得
			String hanbai_type = bnWebinfo.sendMessageString(CommonInfoCFConst.HANBAI_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE);
			String mkm_uk_sbt_cd = "";
			if (JFUStrConst.HNBAI_TYPE_CON.equals(hanbai_type))
			{
				// コンシューマ(WEB)
				mkm_uk_sbt_cd = "4";
			}
			else if (JFUStrConst.HNBAI_TYPE_RYOHAN.equals(hanbai_type))
			{
				// 量販
				mkm_uk_sbt_cd = "2";
			}
			else if (JFUStrConst.HNBAI_TYPE_HOHAN.equals(hanbai_type))
			{
				// 訪販
				mkm_uk_sbt_cd = "5";
			}

			// 申込受付種別コード
			childMap.put("mkm_uk_sbt_cd", mkm_uk_sbt_cd);
			//TODO 申込書取扱情報担当者名
			childMap.put("mskmsho_trat_if_tntsha_nm", "");
			//TODO 申込書取扱情報電話番号
			childMap.put("mskmsho_trat_if_telno", "");

			list.add(childMap);
		}

		parentMap.put("EKK0011D020CBSMsg1List", list);

		// IT1-2012-0001580 全戸一括の引継ぎで落ちるやつ 2012/10/24 Otsuka
		parentMap.put("hktgi_seiky_kei_no", getSeikyKeiNo(cash_infobean));

		outputMap.put("FUSV016108SC", parentMap);

		return outputMap;
	}

	/**
	 * 申込内容承認登録の下りマッピングをする
	 *
	 * @param bean
	 *            　[0]：入力内容確認　[1]：共有フォームビーン
	 * @param outputMap
	 * @return bean
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getEKK0011D020(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("FUSV016108SC"))
		{
			parentMap = (HashMap)outputMap.get("FUSV016108SC");
		}
		else
		{
			return bean;
		}

		// WEB新規情報
		X31SDataBeanAccess bnWebinfo = getWebInfo(bean[0]);
		// 契約サービス情報
		X31SDataBeanAccess bnKeiyakusvcinfo = getKeiyakusvcinfo(bnWebinfo);
		// 光ネット
		X31SDataBeanAccess bnEonet = getEonet(bnWebinfo);
		// 光TV
		X31SDataBeanAccess bnEotv = getEotv(bnWebinfo);
		// モバイル
		X31SDataBeanAccess bnEomobie = getMobile(bnWebinfo);
		// 光電話
		X31SDataBeanAccess[] bnEotel = getEotel(bnWebinfo);

		// 共有フォームBean.契約サービス情報（申込番号） ← 申込登録マップ.申込番号
		bnKeiyakusvcinfo.sendMessageString(CommonInfoCFConst.TTDKI_NO_10, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("mskm_no"));
		// 共有フォームBean.契約サービス情報（更新年月日時分秒（申込）← 申込登録マップ.更新年月日時分秒
		bnKeiyakusvcinfo.sendMessageString(CommonInfoCFConst.UPD_DTM_MSKM_NO_10, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("upd_dtm"));

		if (!"".equals(parentMap.get("ekk0091_mskm_dtl_no")) && parentMap.get("ekk0091_mskm_dtl_no") != null
				&& parentMap.containsKey("ekk0091_mskm_dtl_no"))
		{
			// 共有フォームBean.ｅｏ光ネット
			// 申込明細番号 ← 申込登録マップ.申込明細番号
			bnEonet
					.sendMessageString(CommonInfoCFConst.MSKM_DTL_NO_11, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap
							.get("ekk0091_mskm_dtl_no"));
			// 更新年月日時分秒（申込） ← 申込登録マップ.世代登録年月日時分秒(申込)
			bnEonet.sendMessageString(CommonInfoCFConst.UPD_DTM_MSKM_DTL_11, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap
					.get("ekk0091_kk0021_gene_add_dtm"));
		}

		if (!"".equals(parentMap.get("ekk0111_mskm_dtl_no")) && parentMap.get("ekk0111_mskm_dtl_no") != null
				&& parentMap.containsKey("ekk0111_mskm_dtl_no"))
		{
			// 共有フォームBean.ｅｏ光電話
			int intCnt = bnEotel.length;
			for (int i = 0; i < intCnt; i++)
			{
				// 申込明細番号 ← 申込登録マップ.申込明細番号
				bnEotel[i].sendMessageString(CommonInfoCFConst.MSKM_DTL_NO_12, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap
						.get("ekk0111_mskm_dtl_no"));
				// 更新年月日時分秒（申込） ← 申込登録マップ.世代登録年月日時分秒(申込)
				bnEotel[i].sendMessageString(CommonInfoCFConst.UPD_DTM_MSKM_DTL_12, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap
						.get("ekk0111_kk0021_gene_add_dtm"));
			}
		}
		if (!"".equals(parentMap.get("ekk0101_mskm_dtl_no")) && parentMap.get("ekk0101_mskm_dtl_no") != null
				&& parentMap.containsKey("ekk0101_mskm_dtl_no"))
		{
			// 共有フォームBean.ｅｏ光テレビ
			// 申込明細番号 ← 申込登録マップ.申込明細番号
			bnEotv.sendMessageString(CommonInfoCFConst.MSKM_DTL_NO_13, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("ekk0101_mskm_dtl_no"));
			// 更新年月日時分秒（申込） ← 申込登録マップ.世代登録年月日時分秒(申込)
			bnEotv.sendMessageString(CommonInfoCFConst.UPD_DTM_MSKM_DTL_13, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap
					.get("ekk0101_kk0021_gene_add_dtm"));
		}
		if (!"".equals(parentMap.get("ekk0121_mskm_dtl_no")) && parentMap.get("ekk0121_mskm_dtl_no") != null
				&& parentMap.containsKey("ekk0121_mskm_dtl_no"))
		{
			// 共有フォームBean.ｅｏモバイル
			// 申込明細番号 ← 申込登録マップ.申込明細番号
			bnEomobie.sendMessageString(CommonInfoCFConst.MSKM_DTL_NO_14, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap
					.get("ekk0121_mskm_dtl_no"));
			// 更新年月日時分秒（申込） ← 申込登録マップ.世代登録年月日時分秒(申込)
			bnEomobie.sendMessageString(CommonInfoCFConst.UPD_DTM_MSKM_DTL_14, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap
					.get("ekk0121_kk0021_gene_add_dtm"));
		}
		return bean;
	}

	/**
	 * 上りマッピングをする（ファミリーパックルーター自動登録）
	 *
	 * @param bean[0]：共有フォームビーン
	 * @param outputMap
	 * @param func_code 機能コード
	 * @param opeDateTime
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setJFUFamipaRouterCC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String opeDateTime)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}
		X31SDataBeanAccessArray web_new_info = bean[0].getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		X31SDataBeanAccess web_new_infobean = web_new_info.getDataBean(0);
		// 契約サービス
		X31SDataBeanAccess contract_infobean = getKeiyakusvcinfo(web_new_infobean);
		// 光ネット
		X31SDataBeanAccess bnEonet = getEonet(web_new_infobean);
		// 契約者情報
		X31SDataBeanAccess bnKeiyakuinfo = getKeiyakuinfo(web_new_infobean);
		// 利用場所情報
		X31SDataBeanAccess bnRiyobasyoinfo = getRiyobasyoinfo(web_new_infobean);
		//
		X31SDataBeanAccess monshinInfo = getMansioninfo(web_new_infobean);

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		String family_pack = bnEonet.sendMessageString(CommonInfoCFConst.FP_MSKM_11, X31CWebConst.DATABEAN_GET_VALUE);
		String selSvcTel = contract_infobean.sendMessageString(CommonInfoCFConst.SELECT_SVC_TEL_10, X31CWebConst.DATABEAN_GET_VALUE);
		String keiSvcTel = contract_infobean.sendMessageString(CommonInfoCFConst.NOW_SVC_TEL_10, X31CWebConst.DATABEAN_GET_VALUE);
		String knykeiMskmJokenCd = monshinInfo.sendMessageString(CommonInfoCFConst.KNYKEI_MSKM_JOKEN_CD_16, X31CWebConst.DATABEAN_GET_VALUE);

		if (!family_pack.equals(SENTAKU))
		{
			return null;
		}
		if(JFUStrConst.SELECT_SVC_TEL_CHOICE.equals(selSvcTel) && JFUStrConst.CD00002_1.equals(family_pack))
		{
			return null;
		}
		if(JFUStrConst.KNYKEI_MSKM_JOKEN_IKT.equals(knykeiMskmJokenCd)
				&& JFUStrConst.NOW_SVC_TEL_KEI_CHU.equals(keiSvcTel) && JFUStrConst.CD00002_1.equals(family_pack))
		{
			return null;
		}
		if(JFUStrConst.KNYKEI_MSKM_JOKEN_IKT.equals(knykeiMskmJokenCd) && JFUStrConst.CD00002_1.equals(family_pack))
		{
			return null;
		}

		// ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", bnEonet.sendMessageString(CommonInfoCFConst.SVC_KEI_NO_11, X31CWebConst.DATABEAN_GET_VALUE));
		// ＫＥＹ＿割引タイプコード
		parentMap.put("key_wrib_type_cd", JFUStrConst.CD00284_20);
		// 申込番号
		parentMap.put("mskm_no", contract_infobean.sendMessageString(CommonInfoCFConst.TTDKI_NO_10, X31CWebConst.DATABEAN_GET_VALUE));
		// 申込明細番号
		parentMap.put("mskm_dtl_no", bnEonet.sendMessageString(CommonInfoCFConst.MSKM_DTL_NO_11, X31CWebConst.DATABEAN_GET_VALUE));
		// 申込書番号
		parentMap.put("mskmsho_no", "");
		// 予約適用年月日
		parentMap.put("rsv_aply_ymd", "");
		// 異動区分
		parentMap.put("ido_div", getIdoKbn(web_new_infobean));
		// 要求種別コード
		parentMap.put("yokyu_sbt_cd", JFUStrConst.CD00317_02);
		// 機能コード
		parentMap.put("func_code", "2");
		// 進捗特記事項1
		parentMap.put("prg_tkjk_1", opeDateTime); // No255 Otsuka 2013/01/26

		// No312 2013/02/19 Otsuka start
		// 機器送付先個別指定フラグ
		parentMap.put("kiki_shs_kbt_shitei_flg", JFUStrConst.KK0341_KIKI_SHS_KBT_SHITEI_FLG_1);

		// 共有フォームBean.契約者情報.氏名（姓）+（姓）/共有フォームBean.契約者情報.法人名 → 契約者機器送付先名
		parentMap.put("kiki_sohus_nm", getKshnm(web_new_infobean, bnKeiyakuinfo));
		// 機器送付先カナ名
		parentMap.put("kiki_sohus_kana", getKshnmKna(web_new_infobean, bnKeiyakuinfo));
		// 機器送付先郵便番号
		parentMap.put("kiki_sohus_pcd", bnRiyobasyoinfo.sendMessageString(CommonInfoCFConst.USEPLACE_PCD1_08, X31CWebConst.DATABEAN_GET_VALUE)
				+ bnRiyobasyoinfo.sendMessageString(CommonInfoCFConst.USEPLACE_PCD2_08, X31CWebConst.DATABEAN_GET_VALUE));
		// 機器送付先住所補記・建物名
		parentMap.put("kiki_sohus_adrttm", bnRiyobasyoinfo.sendMessageString(CommonInfoCFConst.USEPLACE_TTM_08, X31CWebConst.DATABEAN_GET_VALUE));
		// 機器送付先住所補記・部屋番号
		parentMap.put("kiki_sohus_adrrm", bnRiyobasyoinfo.sendMessageString(CommonInfoCFConst.USEPLACE_RRM_08, X31CWebConst.DATABEAN_GET_VALUE));
		// 機器送付先電話番号
		parentMap.put("kiki_sohus_telno", bnRiyobasyoinfo.sendMessageString(CommonInfoCFConst.USEPLACE_TELNO1_08, X31CWebConst.DATABEAN_GET_VALUE)
				+ bnRiyobasyoinfo.sendMessageString(CommonInfoCFConst.USEPLACE_TELNO2_08, X31CWebConst.DATABEAN_GET_VALUE)
				+ bnRiyobasyoinfo.sendMessageString(CommonInfoCFConst.USEPLACE_TELNO3_08, X31CWebConst.DATABEAN_GET_VALUE));
		// 機器送付先＿契約者住所差異フラグ
		parentMap.put("kiki_sohus_ksh_ad_sai_flg", getKysAddSaiFlg(bnKeiyakuinfo));

		// 機器送付先指定フラグ
		parentMap.put("kiki_shs_shitei_flg", JFUStrConst.CD00002_1);
		// No312 2013/02/19 Otsuka end

		// 多機能ルーター交換有
		parentMap.put("tkn_router_chg_um", JFUStrConst.CD00002_1);

		outputMap.put("FUSV016118CC", parentMap);
		return outputMap;
	}

	/**
	 * オプションサービス契約＜電話＞登録の上りマッピングをする（ｅｏ光電話オプション登録ＣＣ）
	 *
	 * @param bean
	 *            　[0]：共有フォームビーン
	 * @param outputMap
	 * @param func_code
	 *            　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setEKK0371D010(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		ArrayList list = null;
		HashMap childMap = null;
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		list = new ArrayList();

		HashMap eKK0371D010Map = new HashMap<String, Object>();
		if (outputMap.containsKey("EKK0371D010"))
		{
			eKK0371D010Map = (HashMap)outputMap.get("EKK0371D010");
			list = (ArrayList)eKK0371D010Map.get("EKK0371D010List");
		}

		// サービス設定用パラメータをセットします。
		// WEB新規情報
		X31SDataBeanAccess web_new_infobean = getWebInfo(bean[0]);
		// eo光電話
		X31SDataBeanAccessArray tel_info = web_new_infobean.getDataBeanArray(CommonInfoCFConst.EOTEL);
		X31SDataBeanAccess tel_infobean1 = tel_info.getDataBean(0);
		X31SDataBeanAccess tel_infobean2 = tel_info.getDataBean(1);
		// 支払い方法情報
		X31SDataBeanAccess cash_infobean = getPywyInfo(web_new_infobean);

		/*
		 * ■判定条件■ 発信者番号通知(1) 発信者番号表示(1) 発信者番号通知(2) 発信者番号表示(2) 計 最大4件
		 */
		String hassinsh_tuchi1 = tel_infobean1.sendMessageString(CommonInfoCFConst.HASHINNO_TCH_12, X31CWebConst.DATABEAN_GET_VALUE);
		String hassinsh_hyoji1 = tel_infobean1.sendMessageString(CommonInfoCFConst.HASHINNO_DSP_12, X31CWebConst.DATABEAN_GET_VALUE);
		String forward_tel1 = tel_infobean1.sendMessageString(CommonInfoCFConst.FORWARD_TEL_12, X31CWebConst.DATABEAN_GET_VALUE);
		String hassinsh_tuchi2 = tel_infobean2.sendMessageString(CommonInfoCFConst.HASHINNO_TCH_12, X31CWebConst.DATABEAN_GET_VALUE);
		String hassinsh_hyoji2 = tel_infobean2.sendMessageString(CommonInfoCFConst.HASHINNO_DSP_12, X31CWebConst.DATABEAN_GET_VALUE);
		String forward_tel2 = tel_infobean2.sendMessageString(CommonInfoCFConst.FORWARD_TEL_12, X31CWebConst.DATABEAN_GET_VALUE);

		// ANK-2056-00-00 start
		String warikomi_tel1 = tel_infobean1.sendMessageString(CommonInfoCFConst.WARIKOMI_TEL_12, X31CWebConst.DATABEAN_GET_VALUE);
		String warikomi_tel2 = tel_infobean2.sendMessageString(CommonInfoCFConst.WARIKOMI_TEL_12, X31CWebConst.DATABEAN_GET_VALUE);
		String ease_pack1 = tel_infobean1.sendMessageString(CommonInfoCFConst.EASE_PACK_12, X31CWebConst.DATABEAN_GET_VALUE);
		String eohtl_packthree1 = tel_infobean1.sendMessageString(CommonInfoCFConst.EOHTL_PACK3_12, X31CWebConst.DATABEAN_GET_VALUE);
		String eohtl_packseven1 = tel_infobean1.sendMessageString(CommonInfoCFConst.EOHTL_PACK7_12, X31CWebConst.DATABEAN_GET_VALUE);
		String ease_pack2 = tel_infobean2.sendMessageString(CommonInfoCFConst.EASE_PACK_12, X31CWebConst.DATABEAN_GET_VALUE);
		String eohtl_packthree2 = tel_infobean2.sendMessageString(CommonInfoCFConst.EOHTL_PACK3_12, X31CWebConst.DATABEAN_GET_VALUE);
		String eohtl_packseven2 = tel_infobean2.sendMessageString(CommonInfoCFConst.EOHTL_PACK7_12, X31CWebConst.DATABEAN_GET_VALUE);
		// ANK-2056-00-00 end

		// 電話オプションフラグを設定します。
		boolean tuchi_flg1 = false;
		boolean hyoji_flg1 = false;
		boolean tenso_flg1 = false;
		boolean tuchi_flg2 = false;
		boolean hyoji_flg2 = false;
		boolean tenso_flg2 = false;

		// ANK-2056-00-00 start
		boolean warikomi_flg1 = false;
		boolean warikomi_flg2 = false;
		boolean meiwaku_flg1 = false;
		boolean meiwaku_flg2 = false;
		boolean sitei_flg1 = false;
		boolean sitei_flg2 = false;
		boolean easeSendRecv_flg1 = false;
		boolean easeSendRecv_flg2 = false;

		// ANK-2056-00-00 end

		// 繰り返し回数を設定します。
		int count = 0;
		// 発信者番号通知１
		if (JFUStrConst.HASHINNO_TCH_CHOICE.equals(hassinsh_tuchi1))
		{
			tuchi_flg1 = true;
			count = count + 1;
		}
		// 発信者番号表示１
		if (JFUStrConst.HASHINNO_DSP_CHOICE.equals(hassinsh_hyoji1) 
				|| JFUStrConst.EASE_PACK_CHOICE.equals(ease_pack1)
				|| JFUStrConst.EOHTL_PACK3_CHOICE.equals(eohtl_packthree1)
				|| JFUStrConst.EOHTL_PACK7_CHOICE.equals(eohtl_packseven1))
		{
			hyoji_flg1 = true;
			count = count + 1;
		}

		// 転送電話サービス１
		if (JFUStrConst.FORWARD_TEL_CHOICE.equals(forward_tel1) 
				|| JFUStrConst.EOHTL_PACK3_CHOICE.equals(eohtl_packthree1)
				|| JFUStrConst.EOHTL_PACK7_CHOICE.equals(eohtl_packseven1))
		{
			tenso_flg1 = true;
			count = count + 1;
		}

		// 発信者番号通知２
		if (JFUStrConst.HASHINNO_TCH_CHOICE.equals(hassinsh_tuchi2))
		{
			tuchi_flg2 = true;
			count = count + 1;
		}
		// 発信者番号表示２
		if  (JFUStrConst.HASHINNO_DSP_CHOICE.equals(hassinsh_hyoji2)
				|| JFUStrConst.EASE_PACK_CHOICE.equals(ease_pack2)
				|| JFUStrConst.EOHTL_PACK3_CHOICE.equals(eohtl_packthree2)
				|| JFUStrConst.EOHTL_PACK7_CHOICE.equals(eohtl_packseven2))
		{
			hyoji_flg2 = true;
			count = count + 1;
		}

		// 転送電話サービス２
		if (JFUStrConst.FORWARD_TEL_CHOICE.equals(forward_tel2)
				|| JFUStrConst.EOHTL_PACK3_CHOICE.equals(eohtl_packthree2)
				|| JFUStrConst.EOHTL_PACK7_CHOICE.equals(eohtl_packseven2))
		{
			tenso_flg2 = true;
			count = count + 1;
		}

		// ANK-2056-00-00 start
		// 割込電話１
		if (JFUStrConst.WARIKOMI_TEL_CHOICE.equals(warikomi_tel1)
				|| JFUStrConst.EOHTL_PACK3_CHOICE.equals(eohtl_packthree1)
				|| JFUStrConst.EOHTL_PACK7_CHOICE.equals(eohtl_packseven1))
		{
			warikomi_flg1 = true;
			count = count + 1;
		}
		// 割込電話２
		if (JFUStrConst.WARIKOMI_TEL_CHOICE.equals(warikomi_tel2)
				|| JFUStrConst.EOHTL_PACK3_CHOICE.equals(eohtl_packthree2)
				|| JFUStrConst.EOHTL_PACK7_CHOICE.equals(eohtl_packseven2))
		{
			warikomi_flg2 = true;
			count = count + 1;
		}

		// あんしん電話パック_1の残り
		if (JFUStrConst.EASE_PACK_CHOICE.equals(ease_pack1))
		{
			easeSendRecv_flg1 = true;
			meiwaku_flg1 = true;
			sitei_flg1 = true;
			count = count + 3;
		}
		// 光電話パック７_1の残り
		if (JFUStrConst.EOHTL_PACK7_CHOICE.equals(eohtl_packseven1))
		{
			meiwaku_flg1 = true;
			sitei_flg1 = true;
			count = count + 2;
		}
		// あんしん電話パック_2の残り
		if (JFUStrConst.EASE_PACK_CHOICE.equals(ease_pack2))
		{
			easeSendRecv_flg2 = true;
			meiwaku_flg2 = true;
			sitei_flg2 = true;
			count = count + 3;
		}
		// 光電話パック７_2の残り
		if (JFUStrConst.EOHTL_PACK7_CHOICE.equals(eohtl_packseven2))
		{
			meiwaku_flg2 = true;
			sitei_flg2 = true;
			count = count + 2;
		}
		// ANK-2056-00-00 end

		if (count == 0)
		{
			return null;
		}

		// 必要数分マップを作成します。
		for (int i = 0; i < count; i++)
		{
			X31SDataBeanAccess telBean_accesser = null;
			// 共有フォームBeanのアクセサを取得します。
			if (tuchi_flg1 || hyoji_flg1 || warikomi_flg1 ||  tenso_flg1 || meiwaku_flg1 || sitei_flg1 || easeSendRecv_flg1)
			{
				telBean_accesser = tel_infobean1;
			}
			else if (tuchi_flg2 || hyoji_flg2 || warikomi_flg2 || tenso_flg2 || meiwaku_flg2 || sitei_flg2 || easeSendRecv_flg2)
			{
				telBean_accesser = tel_infobean2;
			}

			childMap = new HashMap();

			// 共通情報のマッピング
			childMap.put("func_code", func_code);

			if (tuchi_flg1)
			{
				// 固定"B022" → オプションサービスコード
				childMap.put("op_svc_cd", JFUStrConst.CD00136_B022);
				// 固定"B26" →料金コースコード
				childMap.put("pcrs_cd", JFUStrConst.CD00134_B26);
				// 固定"PB2601" → 料金プランコード
				childMap.put("pplan_cd", JFUStrConst.CD00565_PB2601);
				// 電話サービス番号 １番号
				childMap.put("tel_svc_no", "1");

				tuchi_flg1 = false;

			}
			else if (hyoji_flg1)
			{
				// 固定"B025" → オプションサービスコード
				childMap.put("op_svc_cd", JFUStrConst.CD00136_B025);
				// 固定"B29" →料金コースコード
				childMap.put("pcrs_cd", JFUStrConst.CD00134_B29);
				// 固定"PB2901" → 料金プランコード
				childMap.put("pplan_cd", JFUStrConst.CD00565_PB2901);
				// 電話サービス番号 １番号
				childMap.put("tel_svc_no", "1");

				hyoji_flg1 = false;
			}
			// ANK-2056-00-00 start
			else if (warikomi_flg1)
			{
				// 固定"B023" → オプションサービスコード
				childMap.put("op_svc_cd", JFUStrConst.CD00136_B023);
				// 固定"B27" →料金コースコード
				childMap.put("pcrs_cd", JFUStrConst.CD00134_B27);
				// 固定"PB2701" → 料金プランコード
				childMap.put("pplan_cd", JFUStrConst.CD00565_PB2701);
				// 電話サービス番号 １番号
				childMap.put("tel_svc_no", "1");

				warikomi_flg1 = false;
			}
			else if (tenso_flg1)
			{
				// 固定"B024" → オプションサービスコード
				childMap.put("op_svc_cd", JFUStrConst.CD00136_B024);
				// 固定"B28" →料金コースコード
				childMap.put("pcrs_cd", JFUStrConst.CD00134_B28);
				// 固定"PB2801" → 料金プランコード
				childMap.put("pplan_cd", JFUStrConst.CD00565_PB2801);
				// 電話サービス番号 １番号
				childMap.put("tel_svc_no", "1");

				tenso_flg1 = false;
			}
			else if (meiwaku_flg1)
			{
				// 固定"B024" → オプションサービスコード
				childMap.put("op_svc_cd", JFUStrConst.CD00136_B026);
				// 固定"B28" →料金コースコード
				childMap.put("pcrs_cd", JFUStrConst.CD00134_B30);
				// 固定"PB2801" → 料金プランコード
				childMap.put("pplan_cd", JFUStrConst.CD00565_PB3001);
				// 電話サービス番号 １番号
				childMap.put("tel_svc_no", "1");

				meiwaku_flg1 = false;
			}
			else if(sitei_flg1)
			{
				// 固定"B027" → オプションサービスコード
				childMap.put("op_svc_cd", JFUStrConst.CD00136_B027);
				// 固定"B31" →料金コースコード
				childMap.put("pcrs_cd", JFUStrConst.CD00134_B31);
				// 固定"PB3101" → 料金プランコード
				childMap.put("pplan_cd", JFUStrConst.CD00565_PB3101);
				// 電話サービス番号 １番号
				childMap.put("tel_svc_no", "1");

				sitei_flg1 = false;
			}
			else if(easeSendRecv_flg1)
			{
				// 固定"B135" → オプションサービスコード
				childMap.put("op_svc_cd", JFUStrConst.CD00136_B135);
				// 固定"BE6" →料金コースコード
				childMap.put("pcrs_cd", JFUStrConst.CD00134_BE6);
				// 固定"PBE601" → 料金プランコード
				childMap.put("pplan_cd", JFUStrConst.CD00565_PBE601);

				easeSendRecv_flg1 = false;
			}			
			// ANK-2056-00-00 end
			else if (tuchi_flg2)
			{
				// 固定"B022" → オプションサービスコード
				childMap.put("op_svc_cd", JFUStrConst.CD00136_B022);
				// 固定"B26" →料金コースコード
				childMap.put("pcrs_cd", JFUStrConst.CD00134_B26);
				// 固定"PB2601" → 料金プランコード
				childMap.put("pplan_cd", JFUStrConst.CD00565_PB2601);
				// 電話サービス番号 ２番号
				childMap.put("tel_svc_no", "2");

				tuchi_flg2 = false;
			}
			else if (hyoji_flg2)
			{
				// 固定"B025" → オプションサービスコード
				childMap.put("op_svc_cd", JFUStrConst.CD00136_B025);
				// 固定"B29" →料金コースコード
				childMap.put("pcrs_cd", JFUStrConst.CD00134_B29);
				// 固定"PB2901" → 料金プランコード
				childMap.put("pplan_cd", JFUStrConst.CD00565_PB2901);
				// 電話サービス番号 ２番号
				childMap.put("tel_svc_no", "2");

				hyoji_flg2 = false;
			}
			// ANK-2056-00-00 start
			else if (warikomi_flg2)
			{
				// 固定"B023" → オプションサービスコード
				childMap.put("op_svc_cd", JFUStrConst.CD00136_B023);
				// 固定"B27" →料金コースコード
				childMap.put("pcrs_cd", JFUStrConst.CD00134_B27);
				// 固定"PB2701" → 料金プランコード
				childMap.put("pplan_cd", JFUStrConst.CD00565_PB2701);
				// 電話サービス番号 ２番号
				childMap.put("tel_svc_no", "2");

				warikomi_flg2 = false;
			}
			else if (tenso_flg2)
			{
				// 固定"B024" → オプションサービスコード
				childMap.put("op_svc_cd", JFUStrConst.CD00136_B024);
				// 固定"B28" →料金コースコード
				childMap.put("pcrs_cd", JFUStrConst.CD00134_B28);
				// 固定"PB2801" → 料金プランコード
				childMap.put("pplan_cd", JFUStrConst.CD00565_PB2801);
				// 電話サービス番号 ２番号
				childMap.put("tel_svc_no", "2");

				tenso_flg2 = false;
			}
			else if (meiwaku_flg2){
				// 固定"B024" → オプションサービスコード
				childMap.put("op_svc_cd", JFUStrConst.CD00136_B026);
				// 固定"B28" →料金コースコード
				childMap.put("pcrs_cd", JFUStrConst.CD00134_B30);
				// 固定"PB2801" → 料金プランコード
				childMap.put("pplan_cd", JFUStrConst.CD00565_PB3001);
				// 電話サービス番号 ２番号
				childMap.put("tel_svc_no", "2");

				meiwaku_flg2 = false;
			}
			else if(sitei_flg2)
			{
				// 固定"B027" → オプションサービスコード
				childMap.put("op_svc_cd", JFUStrConst.CD00136_B027);
				// 固定"B31" →料金コースコード
				childMap.put("pcrs_cd", JFUStrConst.CD00134_B31);
				// 固定"PB3101" → 料金プランコード
				childMap.put("pplan_cd", JFUStrConst.CD00565_PB3101);
				// 電話サービス番号 ２番号
				childMap.put("tel_svc_no", "2");

				sitei_flg2 = false;
			}
			else if(easeSendRecv_flg2)
			{
				// 固定"B135" → オプションサービスコード
				childMap.put("op_svc_cd", JFUStrConst.CD00136_B135);
				// 固定"BE6" →料金コースコード
				childMap.put("pcrs_cd", JFUStrConst.CD00134_BE6);
				// 固定"PBE601" → 料金プランコード
				childMap.put("pplan_cd", JFUStrConst.CD00565_PBE601);

				easeSendRecv_flg2 = false;
			}			// ANK-2056-00-00 end

			// "03"固定（サービス契約内訳） → eo光電話マップ.親契約識別コード
			childMap.put("oya_kei_skbt_cd", JFUStrConst.CD00804_03);
			// サービス契約内訳番号
			childMap
					.put("svc_kei_ucwk_no", telBean_accesser.sendMessageString(CommonInfoCFConst.SVC_KEI_UCWK_NO_12, X31CWebConst.DATABEAN_GET_VALUE));
			// ＳＹＳＩＤ
			childMap.put("sysid", web_new_infobean.sendMessageString(CommonInfoCFConst.SYSID_06, X31CWebConst.DATABEAN_GET_VALUE));
			// 申込明細番号
			childMap.put("mskm_dtl_no", telBean_accesser.sendMessageString(CommonInfoCFConst.MSKM_DTL_NO_12, X31CWebConst.DATABEAN_GET_VALUE));
			// 異動区分
			childMap.put("ido_div", getIdoKbn(web_new_infobean));
			// 請求契約番号
			childMap.put("seiky_kei_no", getSeikyKeiNo(cash_infobean));
			// 更新年月日時分秒(更新前)
			childMap.put("upd_dtm_bf", telBean_accesser.sendMessageString(CommonInfoCFConst.UPD_DTM_SVC_KEI_12, X31CWebConst.DATABEAN_GET_VALUE));

			list.add(childMap);
		}

		parentMap.put("EKK0371D010List", list);
		outputMap.put("EKK0371D010", parentMap);

		return outputMap;
	}

	/**
	 * サブオプションサービス契約＜電話＞登録の上りマッピングをする（ｅｏ光電話オプション登録ＣＣ）
	 *
	 * @param bean
	 *            　[0]：共有フォームビーン
	 * @param outputMap
	 * @param func_code
	 *            　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setEKK0431D010(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		ArrayList list = null;
		HashMap childMap = null;
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		list = new ArrayList();

		HashMap eKK0371D010Map = new HashMap<String, Object>();
		if (outputMap.containsKey("EKK0431D010"))
		{
			eKK0371D010Map = (HashMap)outputMap.get("EKK0431D010");
			list = (ArrayList)eKK0371D010Map.get("EKK0431D010List");
		}

		// サービス設定用パラメータをセットします。
		// WEB新規情報
		X31SDataBeanAccess web_new_infobean = getWebInfo(bean[0]);
		// eo光電話
		X31SDataBeanAccessArray tel_info = web_new_infobean.getDataBeanArray(CommonInfoCFConst.EOTEL);
		X31SDataBeanAccess tel_infobean1 = tel_info.getDataBean(0);
		X31SDataBeanAccess tel_infobean2 = tel_info.getDataBean(1);
		// 支払い方法情報
		X31SDataBeanAccess cash_infobean = getPywyInfo(web_new_infobean);

		String hitsuchi_kyohi1 = tel_infobean1.sendMessageString(CommonInfoCFConst.HITSUCHI_DNY_12, X31CWebConst.DATABEAN_GET_VALUE);
		String eohtl_packseven1 = tel_infobean1.sendMessageString(CommonInfoCFConst.EOHTL_PACK7_12, X31CWebConst.DATABEAN_GET_VALUE);
		String hitsuchi_kyohi2 = tel_infobean2.sendMessageString(CommonInfoCFConst.HITSUCHI_DNY_12, X31CWebConst.DATABEAN_GET_VALUE);
		String eohtl_packseven2 = tel_infobean2.sendMessageString(CommonInfoCFConst.EOHTL_PACK7_12, X31CWebConst.DATABEAN_GET_VALUE);

		String ease_pack1 = tel_infobean1.sendMessageString(CommonInfoCFConst.EASE_PACK_12, X31CWebConst.DATABEAN_GET_VALUE);
		String ease_pack2 = tel_infobean2.sendMessageString(CommonInfoCFConst.EASE_PACK_12, X31CWebConst.DATABEAN_GET_VALUE);

		// 電話オプションフラグを設定します。
		boolean kyohi_flg1 = false;
		boolean kyohi_flg2 = false;
		boolean tenso_flg1 = false;
		boolean tenso_flg2 = false;

		// 繰り返し回数を設定します。
		int count = 0;
		// 非通知着信拒否１
		if (JFUStrConst.HITSUCHI_DNY_CHOICE.equals(hitsuchi_kyohi1) 
				|| JFUStrConst.EASE_PACK_CHOICE.equals(ease_pack1)
				|| JFUStrConst.EOHTL_PACK7_CHOICE.equals(eohtl_packseven1)
				)
		{
			kyohi_flg1 = true;
			count = count + 1;
		}
		// eo光電話パック７_１(転送電話選択１)
		if (JFUStrConst.EOHTL_PACK7_CHOICE.equals(eohtl_packseven1))
		{
			tenso_flg1 = true;
			count = count + 1;
		}

		// 非通知着信拒否２
		if (JFUStrConst.HITSUCHI_DNY_CHOICE.equals(hitsuchi_kyohi2) 
				|| JFUStrConst.EASE_PACK_CHOICE.equals(ease_pack2)
				|| JFUStrConst.EOHTL_PACK7_CHOICE.equals(eohtl_packseven2)
				)
		{
			kyohi_flg2 = true;
			count = count + 1;
		}
		// eo光電話パック７_２(転送電話選択２)
		if  (JFUStrConst.EOHTL_PACK7_CHOICE.equals(eohtl_packseven2))
		{
			tenso_flg2 = true;
			count = count + 1;
		}
		if (count == 0)
		{
			return null;
		}

		// 必要数分マップを作成します。
		for (int i = 0; i < count; i++)
		{
			X31SDataBeanAccess telBean_accesser = null;
			// 共有フォームBeanのアクセサを取得します。
			if (kyohi_flg1 || tenso_flg1)
			{
				telBean_accesser = tel_infobean1;
			}
			else if (kyohi_flg2 || tenso_flg2)
			{
				telBean_accesser = tel_infobean2;
			}

			childMap = new HashMap();

			// 共通情報のマッピング
			childMap.put("func_code", func_code);

			if (kyohi_flg1)
			{
				// 固定"D08" → サブオプションサービスコード
				childMap.put("sbop_svc_cd", JFUStrConst.CD00137_D08);
				// 固定"D08" →料金コースコード
				childMap.put("pcrs_cd", JFUStrConst.CD00134_D08);
				// 固定"PD0801" → 料金プランコード
				childMap.put("pplan_cd", JFUStrConst.CD00565_PD0801);
				// 電話サービス番号 １番号
				childMap.put("tel_svc_no", "1");

				kyohi_flg1 = false;

			}
			else if (tenso_flg1)
			{
				// 固定"D07" → サブオプションサービスコード
				childMap.put("sbop_svc_cd", JFUStrConst.CD00137_D07);
				// 固定"D07" →料金コースコード
				childMap.put("pcrs_cd", JFUStrConst.CD00134_D07);
				// 固定"PD0701" → 料金プランコード
				childMap.put("pplan_cd", JFUStrConst.CD00565_PD0701);
				// 電話サービス番号 １番号
				childMap.put("tel_svc_no", "1");

				tenso_flg1 = false;
			}
			else if (kyohi_flg2)
			{
				// 固定"D08" → サブオプションサービスコード
				childMap.put("sbop_svc_cd", JFUStrConst.CD00137_D08);
				// 固定"D08" →料金コースコード
				childMap.put("pcrs_cd", JFUStrConst.CD00134_D08);
				// 固定"PD0801" → 料金プランコード
				childMap.put("pplan_cd", JFUStrConst.CD00565_PD0801);
				// 電話サービス番号 ２番号
				childMap.put("tel_svc_no", "2");

				kyohi_flg2 = false;
			}
			else if (tenso_flg2)
			{
				// 固定"D07" → サブオプションサービスコード
				childMap.put("sbop_svc_cd", JFUStrConst.CD00137_D07);
				// 固定"D07" →料金コースコード
				childMap.put("pcrs_cd", JFUStrConst.CD00134_D07);
				// 固定"PD0701" → 料金プランコード
				childMap.put("pplan_cd", JFUStrConst.CD00565_PD0701);
				// 電話サービス番号 ２番号
				childMap.put("tel_svc_no", "2");

				tenso_flg2 = false;
			}

			// 申込明細番号
			childMap.put("mskm_dtl_no", telBean_accesser.sendMessageString(CommonInfoCFConst.MSKM_DTL_NO_12, X31CWebConst.DATABEAN_GET_VALUE));
			// 異動区分
			childMap.put("ido_div", getIdoKbn(web_new_infobean));
			// 請求契約番号
			childMap.put("seiky_kei_no", getSeikyKeiNo(cash_infobean));
			// 更新年月日時分秒(更新前)
			childMap.put("upd_dtm_bf", telBean_accesser.sendMessageString(CommonInfoCFConst.UPD_DTM_SVC_KEI_12, X31CWebConst.DATABEAN_GET_VALUE));

			list.add(childMap);
		}

		parentMap.put("EKK0431D010List", list);
		outputMap.put("EKK0431D010", parentMap);

		return outputMap;
	}

	/**
	 * 割引サービス契約登録＜eo光電話パック＞の上りマッピングをする（電話セレクトオプションパック操作ＣＣ）1番号用
	 *
	 * @param bean [0]：共有フォームビーン
	 * @param outputMap
	 * @param func_code 機能コード
	 * @param opeDate 運用日付
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setEKK0451D01001(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String opeDate)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// サービス設定用パラメータをセットします。
		// WEB新規情報
		X31SDataBeanAccess web_new_infobean = getWebInfo(bean[0]);
		// eo光電話
		X31SDataBeanAccessArray tel_info = web_new_infobean.getDataBeanArray(CommonInfoCFConst.EOTEL);
		X31SDataBeanAccess tel_infobean1 = tel_info.getDataBean(0);

		String ease_pack1 = tel_infobean1.sendMessageString(CommonInfoCFConst.EASE_PACK_12, X31CWebConst.DATABEAN_GET_VALUE);
		String eohtl_packthree1 = tel_infobean1.sendMessageString(CommonInfoCFConst.EOHTL_PACK3_12, X31CWebConst.DATABEAN_GET_VALUE);
		String eohtl_packseven1 = tel_infobean1.sendMessageString(CommonInfoCFConst.EOHTL_PACK7_12, X31CWebConst.DATABEAN_GET_VALUE);

		// あんしん電話パックが申し込まれている場合、パック割区分に"3"を設定
		if (JFUStrConst.EASE_PACK_CHOICE.equals(ease_pack1))
		{
			parentMap.put("pack_div", "3");
		}
		// eo光電話パック３が申し込まれている場合、パック割区分に"1"を設定
		else if (JFUStrConst.EOHTL_PACK3_CHOICE.equals(eohtl_packthree1))
		{
			parentMap.put("pack_div", "1");
		}
		// eo光電話パック７が申し込まれている場合、パック割区分に"2"を設定
		else if (JFUStrConst.EOHTL_PACK3_CHOICE.equals(eohtl_packseven1))
		{
			parentMap.put("pack_div", "2");
		}

		// 機能コード
		parentMap.put("func_cd", func_code);

		// 処理区分("01"(登録)固定)
		parentMap.put("trn_div", "01");
		// ＳＹＳＩＤ
		parentMap.put("sysid", web_new_infobean.sendMessageString(CommonInfoCFConst.SYSID_06, X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約番号
		parentMap.put("svc_kei_no", tel_infobean1.sendMessageString(CommonInfoCFConst.SVC_KEI_NO_12, X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約内訳番号
		parentMap.put("svc_kei_ucwk_no", tel_infobean1.sendMessageString(CommonInfoCFConst.SVC_KEI_UCWK_NO_12, X31CWebConst.DATABEAN_GET_VALUE));
		// 申込明細番号
		parentMap.put("mskm_dtl_no", tel_infobean1.sendMessageString(CommonInfoCFConst.MSKM_DTL_NO_12, X31CWebConst.DATABEAN_GET_VALUE));
		// 起算日
		parentMap.put("kisan_ymd", opeDate);
		// 異動区分
		parentMap.put("ido_div", getIdoKbn(web_new_infobean));
		// 課金区分("1"(課金)固定)
		parentMap.put("kakin_div", "1");
		// 更新年月日時分秒(更新前)
		parentMap.put("kk0081_upd_dtm", tel_infobean1.sendMessageString(CommonInfoCFConst.UPD_DTM_SVC_KEI_12, X31CWebConst.DATABEAN_GET_VALUE));
		// 1番号の申し込みがある("1"固定)(実行判定に使用)
		parentMap.put("telMskm1", "1");

		outputMap.put("EKK0451D01001", parentMap);

		return outputMap;
	}

	/**
	 * 割引サービス契約登録＜eo光電話パック＞の上りマッピングをする（電話セレクトオプションパック操作ＣＣ）2番号用
	 *
	 * @param bean [0]：共有フォームビーン
	 * @param outputMap
	 * @param func_code 機能コード
	 * @param opeDate 運用日付
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setEKK0451D01002(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String opeDate)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// サービス設定用パラメータをセットします。
		// WEB新規情報
		X31SDataBeanAccess web_new_infobean = getWebInfo(bean[0]);
		// eo光電話
		X31SDataBeanAccessArray tel_info = web_new_infobean.getDataBeanArray(CommonInfoCFConst.EOTEL);
		X31SDataBeanAccess tel_infobean2 = tel_info.getDataBean(1);

		String ease_pack2 = tel_infobean2.sendMessageString(CommonInfoCFConst.EASE_PACK_12, X31CWebConst.DATABEAN_GET_VALUE);
		String eohtl_packthree2 = tel_infobean2.sendMessageString(CommonInfoCFConst.EOHTL_PACK3_12, X31CWebConst.DATABEAN_GET_VALUE);
		String eohtl_packseven2 = tel_infobean2.sendMessageString(CommonInfoCFConst.EOHTL_PACK7_12, X31CWebConst.DATABEAN_GET_VALUE);

		// あんしん電話パックが申し込まれている場合、パック割区分に"3"を設定
		if (JFUStrConst.EASE_PACK_CHOICE.equals(ease_pack2))
		{
			parentMap.put("pack_div", "3");
		}
		// eo光電話パック３が申し込まれている場合、パック割区分に"1"を設定
		else if (JFUStrConst.EOHTL_PACK3_CHOICE.equals(eohtl_packthree2))
		{
			parentMap.put("pack_div", "1");
		}
		// eo光電話パック７が申し込まれている場合、パック割区分に"2"を設定
		else if (JFUStrConst.EOHTL_PACK3_CHOICE.equals(eohtl_packseven2))
		{
			parentMap.put("pack_div", "2");
		}

		// 機能コード
		parentMap.put("func_cd", func_code);

		// 処理区分("01"(登録)固定)
		parentMap.put("trn_div", "01");
		// ＳＹＳＩＤ
		parentMap.put("sysid", web_new_infobean.sendMessageString(CommonInfoCFConst.SYSID_06, X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約番号
		parentMap.put("svc_kei_no", tel_infobean2.sendMessageString(CommonInfoCFConst.SVC_KEI_NO_12, X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約内訳番号
		parentMap.put("svc_kei_ucwk_no", tel_infobean2.sendMessageString(CommonInfoCFConst.SVC_KEI_UCWK_NO_12, X31CWebConst.DATABEAN_GET_VALUE));
		// 申込明細番号
		parentMap.put("mskm_dtl_no", tel_infobean2.sendMessageString(CommonInfoCFConst.MSKM_DTL_NO_12, X31CWebConst.DATABEAN_GET_VALUE));
		// 起算日
		parentMap.put("kisan_ymd", opeDate);
		// 異動区分
		parentMap.put("ido_div", getIdoKbn(web_new_infobean));
		// 課金区分("1"(課金)固定)
		parentMap.put("kakin_div", "1");
		// 更新年月日時分秒(更新前)
		parentMap.put("kk0081_upd_dtm", tel_infobean2.sendMessageString(CommonInfoCFConst.UPD_DTM_SVC_KEI_12, X31CWebConst.DATABEAN_GET_VALUE));
		// 2番号の申し込みがある("1"固定)(実行判定に使用)
		parentMap.put("telMskm2", "1");

		outputMap.put("EKK0451D01002", parentMap);

		return outputMap;
	}

	/**
	 * 割引サービス契約自動登録の上りマッピングをする
	 *
	 * @param bean　[0]：共有フォームビーン　[1]：入力内容確認
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV016119CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) throws Exception
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}
		X31SDataBeanAccessArray web_new_info = bean[0].getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		X31SDataBeanAccess web_new_infobean = web_new_info.getDataBean(0);
		// 光ネット
		X31SDataBeanAccess bnEonet = getEonet(web_new_infobean);

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		String family_pack = bnEonet.sendMessageString(CommonInfoCFConst.FP_MSKM_11, X31CWebConst.DATABEAN_GET_VALUE);

		if (!family_pack.equals(SENTAKU))
		{
			return null;
		}

		// ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", bnEonet.sendMessageString(CommonInfoCFConst.SVC_KEI_NO_11, X31CWebConst.DATABEAN_GET_VALUE));
		// ＫＥＹ＿割引タイプコード
		parentMap.put("key_wrib_type_cd", JFUStrConst.CD00284_20);
		// 割引サービスコード
		parentMap.put("wrib_svc_cd", CD00138_W00000006);
		// 割引サービス対象サービスコード
		parentMap.put("wrib_svc_trgt_svc_cd", CD00139_WT0000000006);
		// 申込明細番号
		parentMap.put("mskm_dtl_no", bnEonet.sendMessageString(CommonInfoCFConst.MSKM_DTL_NO_11, X31CWebConst.DATABEAN_GET_VALUE));
		// 予約適用年月日
		parentMap.put("rsv_aply_ymd", "");
		// 異動区分
		parentMap.put("ido_div", getIdoKbn(web_new_infobean));
		// 要求種別コード
		parentMap.put("yokyu_sbt_cd", JFUStrConst.CD00317_02);
		// 料金コースコード
		parentMap.put("pcrs_cd", JFUStrConst.CD00134_F01);
		// 料金プランコード
		parentMap.put("pplan_cd", JFUStrConst.CD00565_PF0101);

		outputMap.put("FUSV016119CC", parentMap);
		return outputMap;
	}

	// ----IT2-2012-0000802 2012/06/12 h.iwamoto 利用しない為、二重メンテを防ぐ為コメントアウト START----
	//	* 上りマッピングをする（利用場所住所情報分割）
	//	public HashMap setFUSV016102CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	//	/**
	//	* 上りマッピングをする（契約者住所情報分割）
	//	public HashMap setFUSV016101CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	//
	//	* 上りマッピングをする（番号ポータビリティ利用住所情報分割）
	//	public HashMap setFUSV016103CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	//
	//	* 上りマッピングをする（モバイル通信機器送付先住所分割）
	//	public HashMap setFUSV016105CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	// ----IT2-2012-0000802 2012/06/12 h.iwamoto 利用しない為、二重メンテを防ぐ為コメントアウト END----

	/**
	 * 上りマッピングする（アンケート回答登録）
	 * @param bean　[0]：共有フォームビーン		[1]:アンケート
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setEKK0051D010(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		// ＷＥＢ新規情報
		X31SDataBeanAccess webNewInfoBean = getWebInfo(bean[0]);
		// 契約サービス情報
		X31SDataBeanAccess keiyakuSvcInfoBean = getKeiyakusvcinfo(webNewInfoBean);

		// アンケートを取得
		X31SDataBeanAccess enqt_infobean = bean[1];

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共有情報のマッピング
		parentMap.put("func_code", func_code);

		// リスト
		ArrayList list = new ArrayList();

		// アンケート回答数
		int enqt_answer_cnt = 0;

		// アンケートリストループ
		X31SDataBeanAccessArray enqt_list = enqt_infobean.getDataBeanArray(ENQUETE_LIST);
		for (int i = 0; i < enqt_list.getCount(); i++)
		{
			// アンケートリスト[n]取得
			X31SDataBeanAccess enqt_list_infobean = enqt_list.getDataBean(i);

			// アンケート種別コード
			String enqt_sbt_cd = enqt_list_infobean.sendMessageString(ENQUETE_CHK_SBT_02, X31CWebConst.DATABEAN_GET_VALUE);

			// アンケート回答リスト
			X31SDataBeanAccessArray answer_info = enqt_list_infobean.getDataBeanArray(ENQUETE_ANSWER_LIST);

			for (int j = 0; j < answer_info.getCount(); j++)
			{
				// データ格納用マップ
				HashMap<String, Object> dataMap = new HashMap<String, Object>();

				X31SDataBeanAccess answer_infobean = answer_info.getDataBean(j);

				// チェックボックス入力可否
				boolean chk_result = answer_infobean.sendMessageBoolean(CHKBOX_CHECKED_06, X31CWebConst.DATABEAN_GET_VALUE);

				// ラジオボタン選択値
				String radio_select = enqt_list_infobean.sendMessageString(RADIO_VALUE_02, X31CWebConst.DATABEAN_GET_VALUE);

				// アンケートフリー入力欄の値
				String enqt_free = answer_infobean.sendMessageString(ENQUETE_FREE_IPTFIELD_06, X31CWebConst.DATABEAN_GET_VALUE);

				// 上記何れかの条件に当てはまる時、リストへ追加する
				if (chk_result == true || (radio_select != null && !radio_select.equals("")) || (enqt_free != null && !enqt_free.equals("")))
				{
					// 01:チェックボックスの選択がtrue
					if ("01".equals(enqt_sbt_cd))
					{
						if (chk_result == false)
						{
							continue;
						}
					}

					// 02:ラジオボタンの選択値がNULL・空白でない
					else if ("02".equals(enqt_sbt_cd))
					{
						if (!(radio_select).equals(answer_infobean.sendMessageString(ENQUETE_CD_06, X31CWebConst.DATABEAN_GET_VALUE)))
						{
							continue;
						}
					}

					// 03:フリー入力
					else if ("03".equals(enqt_sbt_cd))
					{
						if (enqt_free == null || enqt_free.equals(""))
						{
							continue;
						}
					}

					// アンケート種別コードが不明
					else
					{
						continue;						
					}

					HashMap<String, Object> listMap = new HashMap<String, Object>();

					// ＷＥＢ新規情報.sysID → SYSID
					listMap.put("sysid", webNewInfoBean.sendMessageString(CommonInfoCFConst.SYSID_06, X31CWebConst.DATABEAN_GET_VALUE));

					// 契約サービス情報.申込番号 → 申込番号
					listMap.put("mskm_no", keiyakuSvcInfoBean.sendMessageString(CommonInfoCFConst.TTDKI_NO_10, X31CWebConst.DATABEAN_GET_VALUE));

					// アンケートリスト.アンケート番号 → アンケート番号
					listMap.put("enquete_no", enqt_list_infobean.sendMessageString(ENQUETE_CONTENT_NO_02, X31CWebConst.DATABEAN_GET_VALUE));

					// アンケートリスト.アンケート回答リスト.アンケートコード → アンケートコード
					listMap.put("enquete_cd", answer_infobean.sendMessageString(ENQUETE_CD_06, X31CWebConst.DATABEAN_GET_VALUE));

					// アンケートリスト.アンケートフリー入力欄 → アンケートフリー入力欄
					listMap
							.put("enquete_free_iptfield", answer_infobean
									.sendMessageString(ENQUETE_FREE_IPTFIELD_06, X31CWebConst.DATABEAN_GET_VALUE));

					// dataMapへ追加
					dataMap.put("data" + enqt_answer_cnt, listMap);
					enqt_answer_cnt++;

					// リストを追加
					list.add(dataMap);
				}
			}
		}

		// アンケート回答データをリストEKK0051D010Listへ設定
		//dataMapのputからlistのputへ変更
		//parentMap.put("EKK0051D010List", dataMap);
		parentMap.put("EKK0051D010List", list);

		outputMap.put("EKK0051D010", parentMap);

		setEKK0051D010_GAS(bean[0], outputMap, func_code);

		return outputMap;
	}

	/**
	 * 上りマッピングする（ガス申込入力情報）
	 * @param bean [0]：共有フォームビーン
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setEKK0051D010_GAS(X31SDataBeanAccess bean, HashMap outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}

		// ＷＥＢ新規情報
		X31SDataBeanAccessArray web_new_info = bean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		X31SDataBeanAccess web_new_infobean = web_new_info.getDataBean(0);

		// 契約サービス情報
		X31SDataBeanAccessArray keiyaku_svc_info = web_new_infobean.getDataBeanArray(CommonInfoCFConst.KEIYAKU_SVC_INFO);
		X31SDataBeanAccess keiyaku_svc_infobean = keiyaku_svc_info.getDataBean(0);

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共有情報のマッピング
		parentMap.put("func_code", func_code);

		// リスト
		ArrayList list = new ArrayList();

		// アンケート回答数
		int enqt_answer_cnt = 0;

		// マッピング済みのアンケートがある場合は取得する
		if (outputMap.containsKey("EKK0051D010"))
		{
			parentMap = (HashMap<String, Object>)outputMap.get("EKK0051D010");

			if (parentMap.containsKey("EKK0051D010List"))
			{
				list = (ArrayList)parentMap.get("EKK0051D010List");
				enqt_answer_cnt = list.size();
			}
		}

		// ガス申込情報リスト
		X31SDataBeanAccessArray gas_info_list = web_new_infobean.getDataBeanArray(CommonInfoCFConst.GAS_MSKM_INFO);

		for (int j = 0; j < gas_info_list.getCount(); j++)
		{

			X31SDataBeanAccess gas_infbean = gas_info_list.getDataBean(j);

			// データ格納用マップ
			HashMap<String, Object> dataMap = new HashMap<String, Object>();

			HashMap<String, Object> listMap = new HashMap<String, Object>();

			// ＷＥＢ新規情報.sysID → SYSID
			listMap.put("sysid", web_new_infobean.sendMessageString(CommonInfoCFConst.SYSID_06, X31CWebConst.DATABEAN_GET_VALUE));

			// 契約サービス情報.申込番号 → 申込番号
			listMap.put("mskm_no", keiyaku_svc_infobean.sendMessageString(CommonInfoCFConst.TTDKI_NO_10, X31CWebConst.DATABEAN_GET_VALUE));

			// ガス申込情報.アンケート番号 → アンケート番号
			listMap.put("enquete_no", gas_infbean.sendMessageString(CommonInfoCFConst.ENQUETE_NO_63, X31CWebConst.DATABEAN_GET_VALUE));

			// ガス申込情報.アンケートコード → アンケートコード
			listMap.put("enquete_cd", gas_infbean.sendMessageString(CommonInfoCFConst.ENQUETE_CD_63, X31CWebConst.DATABEAN_GET_VALUE));

			// ガス申込情報..アンケートフリー入力欄 → アンケートフリー入力欄
			listMap.put("enquete_free_iptfield", gas_infbean.sendMessageString(CommonInfoCFConst.ENQUETE_FREE_IPTFIELD_63,
					X31CWebConst.DATABEAN_GET_VALUE));

			// dataMapへ追加
			dataMap.put("data" + enqt_answer_cnt, listMap);
			enqt_answer_cnt++;

			// リストを追加
			list.add(dataMap);
		}

		// アンケート回答データをリストEKK0051D010Listへ設定
		parentMap.put("EKK0051D010List", list);

		outputMap.put("EKK0051D010", parentMap);

		return outputMap;
	}

	// WiFiセット申し込み対応 2012/11/13 h.iwamoto START
	/**
	 * お客様CCへのマッピングを行う
	 *
	 * <br>
	 * @param bean
	 * @param outputMap
	 * @param func_code
	 * @return outputMap
	 */
	public HashMap<String, Object> setJFUCustCC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		// ＷＥＢ新規情報
		X31SDataBeanAccess webNewInfoBean = getWebInfo(bean[0]);
		// 契約者情報
		X31SDataBeanAccess keiyakushaInfoBean = getKeiyakuinfo(webNewInfoBean);

		// ＷＥＢ新規情報.契約種別
		String keiSbt = webNewInfoBean.sendMessageString(CommonInfoCFConst.KEI_SBT_06, X31CWebConst.DATABEAN_GET_VALUE);

		// ＷＥＢ新規情報.SYSID
		String sysid = webNewInfoBean.sendMessageString(CommonInfoCFConst.SYSID_06, X31CWebConst.DATABEAN_GET_VALUE);

		// 会員種別
		String kiin_sbt = keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KIIN_SBT_09, X31CWebConst.DATABEAN_GET_VALUE);

		// eoID
		String eoid = JFUStrConst.EMPTY;
		// 共有フォームBean.申込区分が1(新規)の場合
		if (JFUStrConst.MSKM_KBN_NEW.equals(webNewInfoBean.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			eoid = keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.EOID_09, X31CWebConst.DATABEAN_GET_VALUE);
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 会員種別
		parentMap.put("kiin_sbt", kiin_sbt);
		// SYSID(追加申込用)
		parentMap.put("sysid", sysid);
		// 契約者タイプコード設定
		parentMap.put("keisha_type_cd", keiSbt);
		// お客様＜個人＞登録マップキー
		parentMap.put("cust_kojin_map_key", "ECK0021D010");
		// お客様＜法人＞登録マップキー
		parentMap.put("cust_hojin_map_key", "ECK0031D010");
		// 連絡先登録マップキー
		parentMap.put("rrks_add_map_key", "ECK0201D010");
		// WiFiセット申し込み対応 2012/11/09 h.iwamoto START
		// 連絡先登録リストキー
		parentMap.put("rrks_add_list_key", "ECK0201D010List");
		// WiFiセット申し込み対応 2012/11/09 h.iwamoto END
		// 契約者分割住所マップキー
		parentMap.put("keisha_split_address_map_key", "FUSV015212CC");
		// eoID
		parentMap.put("eoid", eoid);

		outputMap.put("FUSV016106CC", parentMap);

		return outputMap;
	}

	/**
	 * バックヤードマッピングCCへの上りマッピング処理
	 * <br>
	 * @param bean
	 * @param outputMap
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setJFUBackyardMappingCC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		// WEB新規情報取得
		X31SDataBeanAccess webNewInfoBean = getWebInfo(bean[0]);

		// モバイル情報
		X31SDataBeanAccess mobileInfoBean = getMobile(webNewInfoBean);

		// マンション情報
		X31SDataBeanAccess mansionInfoBean = getMansioninfo(webNewInfoBean);

		// 支払い方法情報
		X31SDataBeanAccess paywayInfoBean = getPywyInfo(webNewInfoBean);

		// SYSIDを取得する
		String sysid = webNewInfoBean.sendMessageString(CommonInfoCFConst.SYSID_06, X31CWebConst.DATABEAN_GET_VALUE);

		// 申込回線サービスを取得する
		String mskm_ksn_svc = webNewInfoBean.sendMessageString(CommonInfoCFConst.MSKM_KSN_SVC_06, X31CWebConst.DATABEAN_GET_VALUE);

		// 申込区分を取得する
		String mskm_kbn = webNewInfoBean.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_GET_VALUE);

		// モバイルコースを取得する
		String mobileCourse = mobileInfoBean.sendMessageString(CommonInfoCFConst.MOBILE_COURSE_14, X31CWebConst.DATABEAN_GET_VALUE);

		// 加入契約申込条件コードを取得する
		String knykei_mskm_joken_cd = mansionInfoBean.sendMessageString(CommonInfoCFConst.KNYKEI_MSKM_JOKEN_CD_16, X31CWebConst.DATABEAN_GET_VALUE);

		// 販売タイプ取得
		String hanbai_type = webNewInfoBean.sendMessageString(CommonInfoCFConst.HANBAI_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE);

		// 支払方法引継を取得する
		String payway_continue = paywayInfoBean.sendMessageString(CommonInfoCFConst.PAYWAY_CONTINUE_15, X31CWebConst.DATABEAN_GET_VALUE);

		// 引継（請求契約番号）を取得する
		String hktgi_seiky_kei_no = paywayInfoBean.sendMessageString(CommonInfoCFConst.HKTGI_SEIKY_KEI_NO_15, X31CWebConst.DATABEAN_GET_VALUE);

		HashMap parentMap = new HashMap();

		// 申込回線サービスを設定する
		parentMap.put("mskm_ksn_svc", mskm_ksn_svc);

		// 申込区分を設定する
		parentMap.put("mskm_kbn", mskm_kbn);

		// モバイルコースを設定する
		parentMap.put("mobile_course", mobileCourse);

		// 加入契約申込条件コードを設定する
		parentMap.put("knykei_mskm_joken_cd", knykei_mskm_joken_cd);

		// 販売タイプを設定する
		parentMap.put("hanbai_type", hanbai_type);

		// 2013/03/26 Otsuka start
		// 会員種別を設定する オープン会員
		parentMap.put("kiin_sbt", JFUStrConst.KIIN_SBT_OPEN);
		// 2013/03/26 Otsuka end

		// SYSID
		parentMap.put("sysid", sysid);

		// 審査対象請求契約番号を設定する
		if (JFUStrConst.PAYWAY_CONTINUE_CONTINUE.equals(payway_continue))
		{
			parentMap.put("jdg_tg_seiky_kei_no", hktgi_seiky_kei_no);
		}

		// 支払方法引継を設定する
		parentMap.put("payway_continue", payway_continue);

		// サービス契約＜eoモバイル＞登録マップキー
		parentMap.put("svc_kei_eomoba_map_key", "EKK0121D010");

		// サービス契約内訳＜eoモバイル＞登録マップキー
		parentMap.put("svc_kei_ucwk_eomoba_map_key", "EKK0201D010");

		// サービス契約内訳＜eoモバイル＞登録リストキー
		parentMap.put("svc_kei_ucwk_eomoba_list_key", "EKK0201D010List");

		// 指示書登録CC ユーザ定義文字列を設定する
		parentMap.put("sjisho_fixed_text", "JKKAddSjishoCC");

		// 整理番号発番付替部品 ユーザ定義文字列
		parentMap.put("seiri_no_fixed_text", "JKKSeiriNoHtbChgCC");

		// オーダ発行CC ユーザー定義文字列を設定する
		parentMap.put("odr_hakko_fixed_text", "JKKHakkoSODCC");

		// 処理区分を設定する(1:照査前)
		parentMap.put("trn_kbn", "1");

		// 機能コード不要

		outputMap.put("JFUBackyardMappingCC", parentMap);

		// ST1-2012-0000961 2012/11/21 h.iwamoto START
		HashMap<String, Object> parentMap2 = new HashMap<String, Object>();

		// 処理区分を設定する(2:照査後)
		parentMap2.put("trn_kbn", "2");

		// 販売タイプを設定する
		parentMap2.put("hanbai_type", hanbai_type);

		// 申込回線サービスを設定する
		parentMap2.put("mskm_ksn_svc", mskm_ksn_svc);

		// モバイルコースを設定する
		parentMap2.put("mobile_course", mobileCourse);

		// 加入契約申込条件コードを設定する
		parentMap2.put("knykei_mskm_joken_cd", knykei_mskm_joken_cd);

		// 通知書登録CC ユーザ定義文字列
		parentMap2.put("tchisho_fixed_text", "JKKTchishoAddCC");

		// サービス契約＜eoモバイル＞登録マップキー
		parentMap2.put("svc_kei_eomoba_map_key", "EKK0121D010");

		outputMap.put("JFUBackyardMappingCCAfter", parentMap2);

		// ST1-2012-0000961 2012/11/21 h.iwamoto END

		return outputMap;
	}

	// WiFiセット申し込み対応 2012/11/13 h.iwamoto END
	/**
	 * 共有フォームBeanの値より、異動区分を取得する
	 *
	 * <br>
	 * @param bnWebinfo　WEB新規情報
	 * @return String
	 */
	private String getIdoKbn(X31SDataBeanAccess bnWebinfo)
	{
		String retString = "";

		// 申込区分が1：新規の場合
		if (bnWebinfo.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_GET_VALUE).equals(JFUStrConst.MSKM_KBN_NEW))
		{
			retString = JFUStrConst.CD00576_00001;
			// 申込区分が2：追加
		}
		else if (bnWebinfo.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_GET_VALUE).equals(JFUStrConst.MSKM_KBN_ADD))
		{
			retString = JFUStrConst.CD00576_00002;
		}

		return retString;
	}

	/**
	 * WEB新規情報
	 *
	 * @param bean
	 * @return bn
	 */
	private X31SDataBeanAccess getWebInfo(X31SDataBeanAccess bean)
	{
		X31SDataBeanAccessArray arr = bean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn = arr.getDataBean(0);

		return bn;
	}

	/**
	 * 契約サービス情報
	 *
	 * @param bn
	 * @return bn1
	 */
	private X31SDataBeanAccess getKeiyakusvcinfo(X31SDataBeanAccess bn)
	{
		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.KEIYAKU_SVC_INFO);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * 契約者情報
	 *
	 * @param bn
	 * @return bn1
	 */
	private X31SDataBeanAccess getKeiyakuinfo(X31SDataBeanAccess bn)
	{
		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.KEIYAKUSHA_INFO);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * 利用場所情報
	 *
	 * @param bn
	 * @return bn1
	 */
	private X31SDataBeanAccess getRiyobasyoinfo(X31SDataBeanAccess bn)
	{
		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.RIYOBASHO_INFO);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * 光ネット
	 *
	 * @param bn
	 * @return bn1
	 */
	private X31SDataBeanAccess getEonet(X31SDataBeanAccess bn)
	{
		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.EONET);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * 光TV
	 *
	 * @param bn
	 * @return bn1
	 */
	private X31SDataBeanAccess getEotv(X31SDataBeanAccess bn)
	{
		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.EOTV);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * 光電話
	 *
	 * @param bn
	 * @return bnEotel[]
	 */
	private X31SDataBeanAccess[] getEotel(X31SDataBeanAccess bn)
	{
		X31SDataBeanAccessArray aryEoTel = bn.getDataBeanArray(CommonInfoCFConst.EOTEL);
		X31SDataBeanAccess[] bnEotel = null;
		// 光電話２レコード作成
		int cntTel = aryEoTel.getCount();
		if (cntTel == 0)
		{
			bnEotel = new X31SDataBeanAccess[2];
			for (int i = 0; i < 2; i++)
			{
				aryEoTel.addDataBean();
				bnEotel[i] = aryEoTel.getDataBean(i);
			}
		}
		else
		{
			bnEotel = new X31SDataBeanAccess[cntTel];
			for (int i = 0; i < cntTel; i++)
			{
				bnEotel[i] = aryEoTel.getDataBean(i);
			}
		}
		return bnEotel;
	}

	/**
	 * モバイル情報
	 *
	 * @param bn
	 * @return bn1
	 */
	private X31SDataBeanAccess getMobile(X31SDataBeanAccess bn)
	{
		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.EOMOBILE);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 *  請求契約番号を取得する
	 *
	 * <br>
	 * @param cash_infobean　支払い情報情報
	 * @return String
	 */
	private String getSeikyKeiNo(X31SDataBeanAccess cash_infobean)
	{
		String retString = "";
		String hktgFlg = "";

		hktgFlg = cash_infobean.sendMessageString(CommonInfoCFConst.PAYWAY_CONTINUE_15, X31CWebConst.DATABEAN_GET_VALUE);

		retString = cash_infobean.sendMessageString(CommonInfoCFConst.SEIKY_KEI_NO_15, X31CWebConst.DATABEAN_GET_VALUE);
		// 請求契約番号
		if (hktgFlg.equals(JFUStrConst.CD00731_1))
		{
			retString = cash_infobean.sendMessageString(CommonInfoCFConst.HKTGI_SEIKY_KEI_NO_15, X31CWebConst.DATABEAN_GET_VALUE);
		}

		return retString;
	}

	/**
	 * 支払い方法情報
	 *
	 * @param bn
	 * @return bn1
	 */
	private X31SDataBeanAccess getPywyInfo(X31SDataBeanAccess bn)
	{
		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.PAYWAY_INFO);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * マンション情報
	 *
	 * @param bn
	 * @return bn1
	 */
	private X31SDataBeanAccess getMansioninfo(X31SDataBeanAccess bn)
	{
		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.MANSION_INFO);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * その他情報
	 *
	 * @param bn
	 * @return bn1
	 */
	private X31SDataBeanAccess getElseInfo(X31SDataBeanAccess bn)
	{
		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.ELSE_INFO);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * リダイレクト情報
	 *
	 * @param bn
	 * @return bn1
	 */
	//	private X31SDataBeanAccess getRedirectinfo(X31SDataBeanAccess bn)
	//	{
	//		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.REDIRECT_INFO);
	//		if (arr.getCount() == 0)
	//		{
	//			arr.addDataBean();
	//		}
	//		X31SDataBeanAccess bn1 = arr.getDataBean(0);
	//
	//		return bn1;
	//	}
	/**
	 * 割引サービスコードにより料金コースコード または 料金プランコードを取得する
	 *
	 * <br>
	 * @param wribSvcCd　割引サービスコード
	 * @param flg　フラグ
	 * @return String
	 */
	public String getPcrsCdOrPplanCd(String wribSvcCd, String flg)
	{
		String rtnCd = null;

		// 割引サービス登録ワークに料金コースコードと料金コースプランコードを設定する
		// 割引サービスコードがファミリーパックの場合
		if (wribSvcCd.equals(CD00138_W00000006))
		{
			if (PCRS_CD_FLG.equals(flg))
			{
				rtnCd = JFUStrConst.CD00134_F01;
			}
			else
			{
				rtnCd = JFUStrConst.CD00565_PF0101;
			}
		}
		// 割引サービスコードがおまかせ安心セットの場合
		else if (wribSvcCd.equals(CD00138_W00000007))
		{
			if (PCRS_CD_FLG.equals(flg))
			{
				rtnCd = JFUStrConst.CD00134_F02;
			}
			else
			{
				rtnCd = JFUStrConst.CD00565_PF0201;
			}
		}

		return rtnCd;
	}

	//---- スマートリンク対応 2012/09/13 S.Otsuka start ----//
	/**
	 * 上りマッピングをする（代理店一意照会）
	 *
	 * @param bean [0]：共有フォームビーン
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setEKK0061A010(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		// WEB新規情報
		X31SDataBeanAccess web_new_infobean = getWebInfo(bean[0]);

		// その他情報
		X31SDataBeanAccess else_infobean = getElseInfo(web_new_infobean);

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// ＫＥＹ＿代理店コード ← その他情報.取扱店用取扱コード
		parentMap.put("key_agnt_cd", else_infobean.sendMessageString(CommonInfoCFConst.TORITEN_TORIATSUKAI_CD_18, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("EKK0061A010", parentMap);

		return outputMap;
	}

// ANK-3217-00-00 ADD START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：共有フォームビーン
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setJFUSmartLinAdd2CC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		// WEB新規情報
		X31SDataBeanAccess webNewInfobean = getWebInfo(bean[0]);

		// ｅｏ光ネット
		X31SDataBeanAccess netInfobean = getEonet(webNewInfobean);

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// ｅｏ光ネット.ＧＨ端末 → eoスマートリンク登録2CC.ＧＨ端末
		parentMap.put("gh_tanmt", netInfobean.sendMessageString(CommonInfoCFConst.GH_TANMT_11, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("JFUSmartLinAdd2CC", parentMap);

		return outputMap;
	}
// ANK-3217-00-00 ADD END

	/**
	 * 上りマッピングをする（オプションサービス契約＜ISP＞登録）
	 *
	 * @param bean [0]：共有フォームビーン
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setEKK0361D010(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		// WEB新規情報
		X31SDataBeanAccess web_new_infobean = getWebInfo(bean[0]);

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// オプションサービスコード スマートリンクプレミアム
		parentMap.put("op_svc_cd", JFUStrConst.CD00136_B077);
		// 料金コースコード スマートリンクプレミアム
		parentMap.put("pcrs_cd", JFUStrConst.CD00134_B80);
		// 料金プランコード スマートリンクプレミアム
		parentMap.put("pplan_cd", JFUStrConst.CD00565_PB8001);
		// 親契約識別コード サービス契約
		parentMap.put("oya_kei_skbt_cd", JFUStrConst.CD00804_01);
		// 異動区分
		parentMap.put("ido_div", getIdoKbn(web_new_infobean));

		outputMap.put("EKK0361D010", parentMap);

		return outputMap;

	}

	/**
	 * 上りマッピングをする（機器提供サービス契約登録） スマートリンク用
	 *
	 * @param bean [0]：共有フォームビーン
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return outputMap
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public HashMap setEKK0341D010Sml(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String opeDate) throws Exception
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		ArrayList list = null;
		HashMap childMap = null;
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		list = new ArrayList();

		// サービス設定用パラメータをセットします。
		// WEB新規情報
		X31SDataBeanAccess web_new_infobean = getWebInfo(bean[0]);
		// 契約者情報
		X31SDataBeanAccess contract_infobean = getKeiyakuinfo(web_new_infobean);
		// 利用場所情報
		X31SDataBeanAccess usePlace_infobean = getRiyobasyoinfo(web_new_infobean);
		// 光ネット
		X31SDataBeanAccess net_infobean = getEonet(web_new_infobean);

		// マンション情報
		X31SDataBeanAccess bnMansion = getMansioninfo(web_new_infobean);
		// その他情報
		X31SDataBeanAccess bnElseinfo = getElseInfo(web_new_infobean);

		// 申込回線サービス
		String mskm_ksn_svc = web_new_infobean.sendMessageString(CommonInfoCFConst.MSKM_KSN_SVC_06, X31CWebConst.DATABEAN_GET_VALUE);
		String mskm_mns_type = web_new_infobean.sendMessageString(CommonInfoCFConst.MSKM_MNS_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE);

		// 繰り返し回数を設定します。
		int count = 2;

		// 必要数分マップを作成します。
		for (int i = 0; i < count; i++)
		{
			childMap = new HashMap();

			// コード値をクリアします。
			String kktk_svc_cd = "";
			String pcrs_cd = "";
			String pplan_cd = "";
			String taknkiki_sbt_cd = "";
			String taknkiki_model_cd = "";
			String kiki_huka_info_cd = "";

			// 1回目はタブレットをマッピング
			if (i == 0)
			{
				// タブレット → 機器提供サービスコード
				kktk_svc_cd = JFUStrConst.KK0771_KKTK_SVC_CD_C021;

				// 料金コースコード
				pcrs_cd = JFUStrConst.CD00134_C40;

				// 料金プランコード
				pplan_cd = JFUStrConst.CD00565_PC4001;

				// 宅内機器種別コード P0:タブレット
				taknkiki_sbt_cd = JFUStrConst.CD01262_P0;


				/* 2013/01/07 Y.Saitou ADD-START */
				// タブレットの時だけ、機器リストを取得して、宅内機器型式コードを取得する。
				X31SDataBeanAccess targetKikiInfoListBean = this.getKikiInfoListBean(net_infobean);

				if (targetKikiInfoListBean != null)
				{
					// 宅内機器型式コードを取得する。
					taknkiki_model_cd =
							targetKikiInfoListBean.sendMessageString(CommonInfoCFConst.TAKNKIKI_MODEL_CD_19, X31CWebConst.DATABEAN_GET_VALUE);
				}
				/* 2013/01/07 Y.Saitou ADD-END */

				// 機器付加情報コードの設定
// ANK-3642-00-00 MOD START
//				String tabletInfoPath = QUERY_PATH.replace(RE_1, taknkiki_model_cd);
//				Map<String, String> tabletInfo = JFUWebCommon.getDispItemsAsMap(tabletInfoPath, QUERY_ATTR_NAME);
//				kiki_huka_info_cd = tabletInfo.get(JFUStrConst.ID_FUD_KIKI_HUKA_INFO_CD);
				kiki_huka_info_cd = JFUTabletInfoUtil.getItemInfo(taknkiki_model_cd, JFUStrConst.TABLET_DSP_KIKI_HUKA_INFO_CD, JFUScreenConst.SCREEN_ID_FUW00118, opeDate);
// ANK-3642-00-00 MOD END
			}
			else
			{
				// 2回目はクレードルをマッピング

				// タブレット → 機器提供サービスコード
				kktk_svc_cd = JFUStrConst.KK0771_KKTK_SVC_CD_C022;

				// 料金コースコード
				pcrs_cd = JFUStrConst.CD00134_C41;

				// 料金プランコード
				pplan_cd = JFUStrConst.CD00565_PC4101;

				// 宅内機器種別コード L1:クレードル
				taknkiki_sbt_cd = JFUStrConst.CD01262_L1;

				/* 2013/02/14 KT1-2013-0000162 Y.Saitou DEL */
			}

			// 共通情報のマッピング
			childMap.put("func_code", func_code);
			// 宅内機器種別コード
			childMap.put("taknkiki_sbt_cd", taknkiki_sbt_cd);
			// 宅内機器型式コード
			childMap.put("taknkiki_model_cd", taknkiki_model_cd);

			// No.238 Otsuka 2013/01/26 start
			// 販売種別コード
			childMap.put("hambai_sbt_cd", JFUStrConst.CD00348_10);
			// No.238 Otsuka 2013/01/26 end

			// 機器種別コード
			childMap.put("kktk_svc_cd", kktk_svc_cd);
			// 料金コースコード
			childMap.put("pcrs_cd", pcrs_cd);
			// 料金プランコード
			childMap.put("pplan_cd", pplan_cd);
			// 機器提供種別コード
			childMap.put("kktk_sbt_cd", JFUStrConst.CD00212_01);

			// Otsuka 2013/02/22 start
			// "01"（サービス契約）固定 → 機器提供サービス契約登録マップ.親契約識別コード
			childMap.put("oya_kei_skbt_cd", JFUStrConst.CD00804_01);
			// Otsuka 2013/02/22 end

			// eo光ネット情報.サービス契約番号 → eo光ネットオプションマップ.サービス契約番号
			childMap.put("svc_kei_no", net_infobean.sendMessageString(CommonInfoCFConst.SVC_KEI_NO_11, X31CWebConst.DATABEAN_GET_VALUE));
			// SYSID → eo光ネットオプションマップ.SYSID
			childMap.put("sysid", web_new_infobean.sendMessageString(CommonInfoCFConst.SYSID_06, X31CWebConst.DATABEAN_GET_VALUE));
			// 申込明細番号 → eo光ネットオプションマップ.申込明細番号
			childMap.put("mskm_dtl_no", net_infobean.sendMessageString(CommonInfoCFConst.MSKM_DTL_NO_11, X31CWebConst.DATABEAN_GET_VALUE));

			// 機器引当指定倉庫コード("000001")
			childMap.put("kiki_hkat_shitei_soko_cd", KIKI_SOUKO_MINATO);
			// 機器引当指定倉庫棚コード("000")
			childMap.put("kiki_hkat_shitei_skdn_cd", bnElseinfo.sendMessageString(CommonInfoCFConst.SHELF_CD_18, X31CWebConst.DATABEAN_GET_VALUE));

			// 機器送付先名 → eo光ネットオプションマップ.機器送付先名
			childMap.put("kiki_sohus_nm", getKshnm(web_new_infobean, contract_infobean));

			// 機器送付先カナ名 → eo光ネットオプションマップ.機器送付先カナ名
			childMap.put("kiki_sohus_kana", getKshnmKna(web_new_infobean, contract_infobean));
//ANK-4498-00-00 MOD START
			//マンションの場合
			//マンション申し込みの場合（※マンションの契約中回線へのサービス追加申込は対象外として、マンションの新規系申込とマンションのサービス追加（新しい場所への回線追加）を対象）
			if(JFUStrConst.MSKM_KBN_NEW.equals(web_new_infobean.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_GET_VALUE))
					 && JFUStrConst.MSKM_KSN_SVC_MANSION.equals(mskm_ksn_svc) && JFUStrConst.MSKM_MNS_TYPE_MANSION.equals(mskm_mns_type))
			{
				// 機器送付先郵便番号 → eo光ネットオプションマップ.機器送付先郵便番号
				String zipFront = contract_infobean.sendMessageString(CommonInfoCFConst.KSH_PCD1_09, X31CWebConst.DATABEAN_GET_VALUE);
				String zipBack = contract_infobean.sendMessageString(CommonInfoCFConst.KSH_PCD2_09, X31CWebConst.DATABEAN_GET_VALUE);
				String zip = JPCEditString.concatPcd(zipFront, zipBack);
				childMap.put("kiki_sohus_pcd", zip);
				// 機器送付先住所補記・建物名 → eo光ネットオプションマップ.機器送付先住所補記・建物名
				childMap
						.put("kiki_sohus_adrttm", contract_infobean.sendMessageString(CommonInfoCFConst.KSH_TTM_09, X31CWebConst.DATABEAN_GET_VALUE));
				// 機器送付先住所補記・部屋番号 → eo光ネットオプションマップ.機器送付先住所補記・部屋番号
				childMap.put("kiki_sohus_adrrm", contract_infobean.sendMessageString(CommonInfoCFConst.KSH_RRM_09, X31CWebConst.DATABEAN_GET_VALUE));
				// 機器送付先電話番号 → eo光ネットオプションマップ.機器送付先電話番号★結合が必要
				String tel1 = contract_infobean.sendMessageString(CommonInfoCFConst.KSH_TELNO1_09, X31CWebConst.DATABEAN_GET_VALUE);
				String tel2 = contract_infobean.sendMessageString(CommonInfoCFConst.KSH_TELNO2_09, X31CWebConst.DATABEAN_GET_VALUE);
				String tel3 = contract_infobean.sendMessageString(CommonInfoCFConst.KSH_TELNO3_09, X31CWebConst.DATABEAN_GET_VALUE);
				childMap.put("kiki_sohus_telno", tel1 + tel2 + tel3);
				// 機器送付先＿契約者住所差異フラグ
				// No312 Otsuka 2013/01/28
				childMap.put("kiki_sohus_ksh_ad_sai_flg",JFUStrConst.KK0341_KIKI_SOHUS_KSH_AD_SAI_FLG_0);
			}else
			{
				//ホーム・メゾンの申し込みとマンションの契約中回線へのサービス追加申込の場合
				// 機器送付先郵便番号 → eo光ネットオプションマップ.機器送付先郵便番号
				String zipFront = usePlace_infobean.sendMessageString(CommonInfoCFConst.USEPLACE_PCD1_08, X31CWebConst.DATABEAN_GET_VALUE);
				String zipBack = usePlace_infobean.sendMessageString(CommonInfoCFConst.USEPLACE_PCD2_08, X31CWebConst.DATABEAN_GET_VALUE);
	
				String zip = JPCEditString.concatPcd(zipFront, zipBack);
				childMap.put("kiki_sohus_pcd", zip);
	
				// 機器送付先住所補記・建物名 → eo光ネットオプションマップ.機器送付先住所補記・建物名
				childMap
						.put("kiki_sohus_adrttm", usePlace_infobean.sendMessageString(CommonInfoCFConst.USEPLACE_TTM_08, X31CWebConst.DATABEAN_GET_VALUE));
	
				// 機器送付先住所補記・部屋番号 → eo光ネットオプションマップ.機器送付先住所補記・部屋番号
				childMap.put("kiki_sohus_adrrm", usePlace_infobean.sendMessageString(CommonInfoCFConst.USEPLACE_RRM_08, X31CWebConst.DATABEAN_GET_VALUE));
	
				// 機器送付先電話番号 → eo光ネットオプションマップ.機器送付先電話番号★結合が必要
				String tel1 = usePlace_infobean.sendMessageString(CommonInfoCFConst.USEPLACE_TELNO1_08, X31CWebConst.DATABEAN_GET_VALUE);
				String tel2 = usePlace_infobean.sendMessageString(CommonInfoCFConst.USEPLACE_TELNO2_08, X31CWebConst.DATABEAN_GET_VALUE);
				String tel3 = usePlace_infobean.sendMessageString(CommonInfoCFConst.USEPLACE_TELNO3_08, X31CWebConst.DATABEAN_GET_VALUE);
				childMap.put("kiki_sohus_telno", tel1 + tel2 + tel3);
				// 機器送付先＿契約者住所差異フラグ
				// No312 Otsuka 2013/01/28
				childMap.put("kiki_sohus_ksh_ad_sai_flg", getKysAddSaiFlg(contract_infobean));
			}

			// ホーム回線以外の場合
			if (!JFUStrConst.MSKM_KSN_SVC_HOME.equals(mskm_ksn_svc))
			{
				// マンション物件番号
				childMap.put("mansion_bukken_no", bnMansion.sendMessageString(CommonInfoCFConst.MANSION_NO_16, X31CWebConst.DATABEAN_GET_VALUE));
			}
			// 機器設置先個別指定フラグ
			childMap.put("kiki_shs_kbt_shitei_flg", JFUStrConst.KK0341_KIKI_SHS_KBT_SHITEI_FLG_1);

			// No239 Otsuka 2013/01/28 start 機器設置先の情報を追加

			// 利用場所情報.郵便番号（上）/（下）→ 機器提供サービス契約登録マップ.機器設置先郵便番号
			String use_zipFront = usePlace_infobean.sendMessageString(CommonInfoCFConst.USEPLACE_PCD1_08, X31CWebConst.DATABEAN_GET_VALUE);
			String use_zipBack = usePlace_infobean.sendMessageString(CommonInfoCFConst.USEPLACE_PCD2_08, X31CWebConst.DATABEAN_GET_VALUE);
			childMap.put("kiki_stc_saki_pcd", use_zipFront + use_zipBack);

			// 利用場所情報.建物名 → 機器提供サービス契約登録マップ.機器設置先住所補記・建物名
			childMap.put("kiki_stc_saki_adrttm", usePlace_infobean.sendMessageString(CommonInfoCFConst.USEPLACE_TTM_08,
					X31CWebConst.DATABEAN_GET_VALUE));

			// 利用場所情報.部屋番号 → 機器提供サービス契約登録マップ.機器設置先住所補記・部屋番号
			childMap.put("kiki_stc_saki_adrrm", usePlace_infobean.sendMessageString(CommonInfoCFConst.USEPLACE_RRM_08,
					X31CWebConst.DATABEAN_GET_VALUE));

			// 利用場所情報.電話番号（１）/（２）/（３） → 機器提供サービス契約登録マップ.機器設置先電話番号
			String usePlace_tel1 = usePlace_infobean.sendMessageString(CommonInfoCFConst.USEPLACE_TELNO1_08, X31CWebConst.DATABEAN_GET_VALUE);
			String usePlace_tel2 = usePlace_infobean.sendMessageString(CommonInfoCFConst.USEPLACE_TELNO2_08, X31CWebConst.DATABEAN_GET_VALUE);
			String usePlace_tel3 = usePlace_infobean.sendMessageString(CommonInfoCFConst.USEPLACE_TELNO3_08, X31CWebConst.DATABEAN_GET_VALUE);
			childMap.put("kiki_stc_sk_telno", usePlace_tel1 + usePlace_tel2 + usePlace_tel3);

			// 機器設置先＿契約者住所差異フラグ
			childMap.put("kiki_stc_sk_ksh_ad_sai_flg", getKysAddSaiFlg(contract_infobean));

			// No239 Otsuka 2013/01/28 end

			// 住所未確定フラグ
			childMap.put("ad_mi_fix_flg", getAdMiFixFlg(usePlace_infobean));

			// 配送区分(00：直送)
			childMap.put("haiso_div", JFUStrConst.CD00020_00);
			// 異動区分
			childMap.put("ido_div", getIdoKbn(web_new_infobean));
			// 機器付加情報コード
			childMap.put("kiki_huka_info_cd", kiki_huka_info_cd);
			//　機器送付先住所手動入力フラグ
			childMap.put("kiki_shs_ad_man_input_flg", JFUStrConst.CD01239_0);

			/* 2013/01/07 Y.Saitou ADD-START */
			// ホームタイプ
			if (web_new_infobean.sendMessageString(CommonInfoCFConst.MSKM_KSN_SVC_06, X31CWebConst.DATABEAN_GET_VALUE).equals(
					JFUStrConst.MSKM_KSN_SVC_HOME))
			{
				// 料金グループコード
				childMap.put("prc_grp_cd", JFUStrConst.CD00133_02);

				// メゾンタイプ
			}
			else if (web_new_infobean.sendMessageString(CommonInfoCFConst.MSKM_KSN_SVC_06, X31CWebConst.DATABEAN_GET_VALUE).equals(
					JFUStrConst.MSKM_KSN_SVC_MANSION)
					&& web_new_infobean.sendMessageString(CommonInfoCFConst.MSKM_MNS_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE).equals(
							JFUStrConst.MSKM_MNS_TYPE_MEZON))
			{
				// 料金グループコード
				childMap.put("prc_grp_cd", JFUStrConst.CD00133_03);

				// マンションタイプ
			}
			else if (web_new_infobean.sendMessageString(CommonInfoCFConst.MSKM_KSN_SVC_06, X31CWebConst.DATABEAN_GET_VALUE).equals(
					JFUStrConst.MSKM_KSN_SVC_MANSION)
					&& web_new_infobean.sendMessageString(CommonInfoCFConst.MSKM_MNS_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE).equals(
							JFUStrConst.MSKM_MNS_TYPE_MANSION))
			{
				// 料金グループコード
				childMap.put("prc_grp_cd", JFUStrConst.CD00133_04);
			}
			/* 2013/01/07 Y.Saitou ADD-END */

			list.add(childMap);
		}

		// 端末補償
		parentMap.put("tablet_tanmt_comps", net_infobean.sendMessageString(CommonInfoCFConst.TABLET_TANMT_COMPS_11, X31CWebConst.DATABEAN_GET_VALUE));
		// 端末補償料金プランコード
		parentMap.put("tablet_tanmt_comps_pplan_cd", net_infobean.sendMessageString(CommonInfoCFConst.TABLET_TANMT_COMPS_PPLAN_CD_11,
				X31CWebConst.DATABEAN_GET_VALUE));
		if(JFUStrConst.MSKM_KBN_NEW.equals(web_new_infobean.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_GET_VALUE))
				 && JFUStrConst.MSKM_KSN_SVC_MANSION.equals(mskm_ksn_svc) && JFUStrConst.MSKM_MNS_TYPE_MANSION.equals(mskm_mns_type))
		{
			//マンション申し込みの場合（※マンションの契約中回線へのサービス追加申込は対象外として、マンションの新規系申込とマンションのサービス追加（新しい場所への回線追加）を対象）

			parentMap.put("MSKM_MNS_TYPE",web_new_infobean.sendMessageString(CommonInfoCFConst.MSKM_MNS_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE));
		}		
		parentMap.put("EKK0341D010SmlList", list);
		outputMap.put("EKK0341D010Sml", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする（割賦契約） スマートリンク用
	 *
	 * @param bean [0]：共有フォームビーン
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return outputMap
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public HashMap setEKK2541D010(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) throws Exception
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// サービス設定用パラメータをセットします。
		// WEB新規情報
		X31SDataBeanAccess web_new_infobean = getWebInfo(bean[0]);
		// 光ネット
		X31SDataBeanAccess net_infobean = getEonet(web_new_infobean);

		String kap_plan_cd = "";
		String kap_pay_zan_cnt = "";

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

// ANK-3217-00-00 MOD START
//		//スマリ割賦プランコード・支払回数
//		kap_plan_cd = net_infobean.sendMessageString(CommonInfoCFConst.TABLET_TANMT_KAP_PLAN_CD_11, X31CWebConst.DATABEAN_GET_VALUE);
//		kap_pay_zan_cnt = net_infobean.sendMessageString(CommonInfoCFConst.TABLET_TANMT_KAP_PAY_CNT_11, X31CWebConst.DATABEAN_GET_VALUE);
		String tabletTanmtMskm = net_infobean.sendMessageString(CommonInfoCFConst.TABLET_TANMT_MSKM_11, X31CWebConst.DATABEAN_GET_VALUE);
		String ghTanmt = net_infobean.sendMessageString(CommonInfoCFConst.GH_TANMT_11, X31CWebConst.DATABEAN_GET_VALUE);
		if (JFUStrConst.SMALIN_TABLET_MSKM.equals(tabletTanmtMskm))
		{
			// スマリン割賦プランコード・支払回数
			kap_plan_cd = net_infobean.sendMessageString(CommonInfoCFConst.TABLET_TANMT_KAP_PLAN_CD_11, X31CWebConst.DATABEAN_GET_VALUE);
			kap_pay_zan_cnt = net_infobean.sendMessageString(CommonInfoCFConst.TABLET_TANMT_KAP_PAY_CNT_11, X31CWebConst.DATABEAN_GET_VALUE);
		}
		else if (JFUStrConst.GH_TANMT_BUY.equals(ghTanmt))
		{
			// GH割賦プランコード・支払回数
			kap_plan_cd = net_infobean.sendMessageString(CommonInfoCFConst.GH_TANMT_KAP_PLAN_CD_11, X31CWebConst.DATABEAN_GET_VALUE);
			kap_pay_zan_cnt = net_infobean.sendMessageString(CommonInfoCFConst.GH_TANMT_KAP_PAY_CNT_11, X31CWebConst.DATABEAN_GET_VALUE);
		}
// ANK-3217-00-00 MOD END

		// 割賦プランコード
		parentMap.put("kap_plan_cd", kap_plan_cd);

		// 異動区分
		parentMap.put("ido_div", getIdoKbn(web_new_infobean));

		// 割賦支払い残回数
		parentMap.put("kap_pay_zan_cnt", kap_pay_zan_cnt);

		// 2013/01/26 S.Yano ST2-2013-0000341 MOD
		// 端末購入通知書出力識別コード 出力する
		parentMap.put("tnmt_buy_tchisho_oput_skcd", JFUStrConst.CD01468_1);

		outputMap.put("EKK2541D010", parentMap);

		return outputMap;
	}

	/**
	 *  契約者氏名（漢字）を取得する
	 *
	 * <br>
	 * @param bnWebinfo WEB新規情報
	 * @param bnKeiyakuinfo　契約者情報
	 * @return String
	 */
	private String getKshnm(X31SDataBeanAccess bnWebinfo, X31SDataBeanAccess bnKeiyakuinfo)
	{
		String retString = "";

		String kiyk_sbt = bnWebinfo.sendMessageString(CommonInfoCFConst.KEI_SBT_06, X31CWebConst.DATABEAN_GET_VALUE);

		if (kiyk_sbt.equals(JFUStrConst.KEI_SBT_KOJINCD))
		{
			// 個人の場合
			// 契約者氏名
			retString =
					bnKeiyakuinfo.sendMessageString(CommonInfoCFConst.KSHNM_SEI_09, X31CWebConst.DATABEAN_GET_VALUE) + JFUStrConst.SPACE
							+ bnKeiyakuinfo.sendMessageString(CommonInfoCFConst.KSHNM_NM_09, X31CWebConst.DATABEAN_GET_VALUE);

		}
		else if (kiyk_sbt.equals(JFUStrConst.KEI_SBT_HOJINCD))
		{
			// 法人の場合
			// 法人名
			retString = bnKeiyakuinfo.sendMessageString(CommonInfoCFConst.HOJINNM_09, X31CWebConst.DATABEAN_GET_VALUE);
		}

		return retString;
	}

	/**
	 *  契約者氏名（カナ）を取得する
	 *
	 * <br>
	 * @param bnWebinfo WEB新規情報
	 * @param bnKeiyakuinfo　契約者情報
	 * @return String
	 */
	private String getKshnmKna(X31SDataBeanAccess bnWebinfo, X31SDataBeanAccess bnKeiyakuinfo)
	{
		String retString = "";

		String kiyk_sbt = bnWebinfo.sendMessageString(CommonInfoCFConst.KEI_SBT_06, X31CWebConst.DATABEAN_GET_VALUE);

		if (kiyk_sbt.equals(JFUStrConst.KEI_SBT_KOJINCD))
		{
			// 個人の場合
			// 契約者氏名カナ
			retString =
					JFUWebCommon.convFullHiraToFullKataV(bnKeiyakuinfo.sendMessageString(CommonInfoCFConst.KSHKN_SEI_09,
							X31CWebConst.DATABEAN_GET_VALUE)
							+ JFUStrConst.SPACE + bnKeiyakuinfo.sendMessageString(CommonInfoCFConst.KSHKN_NM_09, X31CWebConst.DATABEAN_GET_VALUE));

		}
		else if (kiyk_sbt.equals(JFUStrConst.KEI_SBT_HOJINCD))
		{
			// 法人の場合
			// 法人名かな
			retString =
					JFUWebCommon.convFullHiraToFullKataV(bnKeiyakuinfo.sendMessageString(CommonInfoCFConst.HOJINKN_09,
							X31CWebConst.DATABEAN_GET_VALUE));
		}

		return retString;
	}

	/**
	 *  住所未確定フラグを取得する
	 *
	 * <br>
	 * @param bnRiyobasyoinfo　利用場所情報
	 * @return String
	 */
	private String getAdMiFixFlg(X31SDataBeanAccess bnRiyobasyoinfo)
	{
		// 2013/01/28 Otsuka start
		String retString = "";

		// 住所未確定フラグ
		retString = bnRiyobasyoinfo.sendMessageString(CommonInfoCFConst.SETPLACE_BNCHI_08, X31CWebConst.DATABEAN_GET_VALUE);
		// 0（確定）
		if (retString.length() == 0)
		{
			// 番地確定有無が設定されていない場合、"0"（確定）を設定
			retString = JFUStrConst.CD00467_0;
		}
		else if (JFUStrConst.SETPLACE_BNCHI_KAKUTEI.equals(retString))
		{
			// 番地確定の場合は"0"（確定）を設定
			retString = JFUStrConst.CD00467_0;
		}
		else if ("0".equals(retString))
		{
			// 番地未確定の場合は"1"（未確定）を設定
			retString = JFUStrConst.CD00467_1;
		}
		else if (JFUStrConst.SETPLACE_BNCHI_MIKAKUTEI.equals(retString))
		{
			// 番地未確定の場合は"1"（未確定）を設定
			retString = JFUStrConst.CD00467_1;
		}
		// 2013/01/28 Otsuka end
		return retString;
	}

	//---- スマートリンク対応 2012/09/13 S.Otsuka end ----//

	/**
	 * 利用場所住所分割処理上りマッピング
	 *
	 * @param bean　[0]：共有フォームビーン
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return bean
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV016102CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// WEB新規情報
		X31SDataBeanAccess bnWebinfo = getWebInfo(bean[0]);
		// 利用場所情報
		X31SDataBeanAccess bnRiyobasho = getRiyobasyoinfo(bnWebinfo);

		// 利用場所：都道府県・市区町村
		parentMap.put("state_city", bnRiyobasho.sendMessageString(CommonInfoCFConst.USEPLACE_STATE_08, X31CWebConst.DATABEAN_GET_VALUE));
		// 利用場所：字
		parentMap.put("aza", bnRiyobasho.sendMessageString(CommonInfoCFConst.USEPLACE_AZA_08, X31CWebConst.DATABEAN_GET_VALUE));
		// 利用場所：丁目・番地等
		parentMap.put("chome_bnchi", bnRiyobasho.sendMessageString(CommonInfoCFConst.USEPLACE_CHO_BNCHI_08, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV016102CC", parentMap);

		return outputMap;
	}

	/**
	 * 申込書明細番号採番CC上りマッピングをする。
	 * @param bean 共有フォームBean
	 * @param inputMap サービスに設定するinputMap
	 * @return inputMap
	 */
	public HashMap setJFUMskmshoDtlSibnCC(X31SDataBeanAccess[] bean, HashMap inputMap)
	{

		if (bean == null)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// WEB新規情報
		X31SDataBeanAccess bnWebinfo = getWebInfo(bean[0]);

		// 契約サービス情報
		X31SDataBeanAccess bnKeiyakuSvcInfo = getKeiyakusvcinfo(bnWebinfo);

		// eoモバイル
		X31SDataBeanAccess bnEoMobile = getMobile(bnWebinfo);

		// 申込回線サービス
		parentMap.put("mskm_ksn_svc", bnWebinfo.sendMessageString(CommonInfoCFConst.MSKM_KSN_SVC_06, X31CWebConst.DATABEAN_GET_VALUE));

		// 申込マンションタイプ
		parentMap.put("mskm_mns_type", bnWebinfo.sendMessageString(CommonInfoCFConst.MSKM_MNS_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE));

		// 販売タイプ
		parentMap.put("hanbai_type", bnWebinfo.sendMessageString(CommonInfoCFConst.HANBAI_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE));

		// 契約中サービス（ネット）
		parentMap.put("now_svc_net", bnKeiyakuSvcInfo.sendMessageString(CommonInfoCFConst.NOW_SVC_NET_10, X31CWebConst.DATABEAN_GET_VALUE));

		// 契約中サービス（電話）
		parentMap.put("now_svc_tel", bnKeiyakuSvcInfo.sendMessageString(CommonInfoCFConst.NOW_SVC_TEL_10, X31CWebConst.DATABEAN_GET_VALUE));

		// 契約中サービス（テレビ）
		parentMap.put("now_svc_tv", bnKeiyakuSvcInfo.sendMessageString(CommonInfoCFConst.NOW_SVC_TV_10, X31CWebConst.DATABEAN_GET_VALUE));

		// 契約中サービス（モバイル）
		parentMap.put("now_svc_mobile", bnKeiyakuSvcInfo.sendMessageString(CommonInfoCFConst.NOW_SVC_MOBILE_10, X31CWebConst.DATABEAN_GET_VALUE));

		// 選択サービス（ネット）
		parentMap.put("select_svc_net", bnKeiyakuSvcInfo.sendMessageString(CommonInfoCFConst.SELECT_SVC_NET_10, X31CWebConst.DATABEAN_GET_VALUE));

		// 選択サービス（電話）
		parentMap.put("select_svc_tel", bnKeiyakuSvcInfo.sendMessageString(CommonInfoCFConst.SELECT_SVC_TEL_10, X31CWebConst.DATABEAN_GET_VALUE));

		// 選択サービス（テレビ）
		parentMap.put("select_svc_tv", bnKeiyakuSvcInfo.sendMessageString(CommonInfoCFConst.SELECT_SVC_TV_10, X31CWebConst.DATABEAN_GET_VALUE));

		// モバイルコース
		parentMap.put("mobile_course", bnEoMobile.sendMessageString(CommonInfoCFConst.MOBILE_COURSE_14, X31CWebConst.DATABEAN_GET_VALUE));

		inputMap.put("JFUMskmshoDtlNoSibnCC", parentMap);

		return inputMap;
	}

	/**
	 * 申込書明細番号採番CC下りマッピングをする。
	 * @param bean 共有フォームBean
	 * @param outputMap サービスの処理結果が格納されたoutputMap
	 */
	public void getJFUMskmshoDtlSibnCC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		if (outputMap == null || !outputMap.containsKey("JFUMskmshoDtlNoSibnCC"))
		{
			return;
		}

		// 申込書明細番号採番CCの結果を取得する。
		HashMap sibnMap = (HashMap)outputMap.get("JFUMskmshoDtlNoSibnCC");

		// WEB新規情報
		X31SDataBeanAccess bnWebinfo = getWebInfo(bean[0]);

		// ネットの申込書明細番号が採番されている場合
		if (sibnMap.containsKey("mskmsho_dtl_no_net"))
		{
			getEonet(bnWebinfo).sendMessageString(CommonInfoCFConst.MSKMSHO_DTL_NO_11, X31CWebConst.DATABEAN_SET_VALUE,
					(String)sibnMap.get("mskmsho_dtl_no_net"));
		}

		// 電話の申込書明細番号が採番されている場合
		if (sibnMap.containsKey("mskmsho_dtl_no_tel"))
		{
			X31SDataBeanAccess[] eoTelArray = getEotel(bnWebinfo);

			for (int i = 0; i < eoTelArray.length; i++)
			{
				eoTelArray[i].sendMessageString(CommonInfoCFConst.MSKMSHO_DTL_NO_12, X31CWebConst.DATABEAN_SET_VALUE, (String)sibnMap
						.get("mskmsho_dtl_no_tel"));
			}

		}

		// テレビの申込書明細番号が採番されている場合
		if (sibnMap.containsKey("mskmsho_dtl_no_tv"))
		{
			getEotv(bnWebinfo).sendMessageString(CommonInfoCFConst.MSKMSHO_DTL_NO_13, X31CWebConst.DATABEAN_SET_VALUE,
					(String)sibnMap.get("mskmsho_dtl_no_tv"));
		}

		// モバイルの申込書明細番号が採番されている場合
		if (sibnMap.containsKey("mskmsho_dtl_no_mobile"))
		{
			getMobile(bnWebinfo).sendMessageString(CommonInfoCFConst.MSKMSHO_DTL_NO_14, X31CWebConst.DATABEAN_SET_VALUE,
					(String)sibnMap.get("mskmsho_dtl_no_mobile"));
		}
	}

	/* 2013/01/07 Y.Saitou ADD-START */
	/**
	 * 共有フォームBean.eo光ネット情報から、機器提供サービスコードが"C021"、かつ宅内機器種別コードが"P0"の機器情報リストデータタイプBeanを取得する。
	 * @param eoNetBean eo光ネット情報
	 * @return 機器情報リスト
	 */
	private X31SDataBeanAccess getKikiInfoListBean(X31SDataBeanAccess eoNetBean)
	{
		if (eoNetBean == null)
		{
			return null;
		}

		// 共有フォームBean.eo光ネット情報から、機器情報リスト(ネット)を取得
		X31SDataBeanAccessArray kikiInfoNetList = eoNetBean.getDataBeanArray(CommonInfoCFConst.KIKI_INFO_NET);

		// 機器情報リスト(ネット)の要素数分ループする
		for (int i = 0; i < kikiInfoNetList.getCount(); i++)
		{
			X31SDataBeanAccess kikiInfoNetDataTypeBean = kikiInfoNetList.getDataBean(i);

			// 機器提供サービスコードを取得
			String kktkSvcCd = kikiInfoNetDataTypeBean.sendMessageString(CommonInfoCFConst.KKTK_SVC_CD_19, X31CWebConst.DATABEAN_GET_VALUE);

			// 宅内機器種別コードを取得
			String taknkikiSbtCd = kikiInfoNetDataTypeBean.sendMessageString(CommonInfoCFConst.TAKNKIKI_SBT_CD_19, X31CWebConst.DATABEAN_GET_VALUE);

			if (JFUStrConst.CD00132_C021.equals(kktkSvcCd) && JFUStrConst.CD01262_P0.equals(taknkikiSbtCd))
			{
				return kikiInfoNetDataTypeBean;
			}
		}

		return null;
	}

	/* 2013/01/07 Y.Saitou ADD-END */

	// No312 Otsuka 2013/01/28 start
	/**
	 *  機器設置先＿契約者住所差異フラグを取得する
	 *
	 * <br>
	 * @param bnWebinfo WEB新規情報
	 * @param bnKeiyakuinfo　契約者情報
	 * @return String
	 */
	public String getKysAddSaiFlg(X31SDataBeanAccess bnKeiyakuinfo)
	{
		String retString = "";

		String saiFlg = bnKeiyakuinfo.sendMessageString(CommonInfoCFConst.KSHADD_CMF_09, X31CWebConst.DATABEAN_GET_VALUE);
		// 2:利用場所と異なるの場合
		if ("2".equals(saiFlg))
		{
			// 差異あり
			retString = JFUStrConst.KK0341_KIKI_SOHUS_KSH_AD_SAI_FLG_1;
		}
		else
		{
			// 差異なし
			retString = JFUStrConst.KK0341_KIKI_SOHUS_KSH_AD_SAI_FLG_0;
		}

		return retString;
	}
	// No312 Otsuka 2013/01/28 end

	/**
	 * JFUNewAddKkopSvcKeiCCの上りマッピング処理です。
	 * @param bean
	 * @param inputMap
	 * @return inputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setJFUNewAddKkopSvcKeiCC(X31SDataBeanAccess[] bean, HashMap inputMap)
	{

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// WEB新規情報
		X31SDataBeanAccess webInfoBean = getWebInfo(bean[0]);
		// eo光ネット
		X31SDataBeanAccessArray netInfoBeanArray = webInfoBean.getDataBeanArray(CommonInfoCFConst.EONET);
		X31SDataBeanAccess netInfoBean = netInfoBeanArray.getDataBean(0);
		// eo光電話
		X31SDataBeanAccessArray telInfoBeanArray = webInfoBean.getDataBeanArray(CommonInfoCFConst.EOTEL);
		X31SDataBeanAccess telInfoBean = telInfoBeanArray.getDataBean(0);
		// マンション
		X31SDataBeanAccess mansionInfoBean = getMansioninfo(webInfoBean);
		// 契約サービス
		X31SDataBeanAccess keiyakuSvcBean = getKeiyakusvcinfo(webInfoBean);

		// ファミリーパック申込有無
		parentMap.put(IN_FAMIPA_MSKM_UM, netInfoBean.sendMessageString(CommonInfoCFConst.FP_MSKM_11, X31CWebConst.DATABEAN_GET_VALUE));
		// 異動区分
		parentMap.put(IN_IDO_DIV, getIdoKbn(webInfoBean));
		// 販売タイプ
		parentMap.put(IN_HANBAI_TYPE, webInfoBean.sendMessageString(CommonInfoCFConst.HANBAI_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE));
		// 加入契約申込条件コード
		parentMap.put(IN_KNYKEI_MSKM_JOKEN_CD, mansionInfoBean.sendMessageString(CommonInfoCFConst.KNYKEI_MSKM_JOKEN_CD_16, X31CWebConst.DATABEAN_GET_VALUE));
		// 選択中サービス(電話)
		parentMap.put(IN_SELECT_SVC_TEL, keiyakuSvcBean.sendMessageString(CommonInfoCFConst.SELECT_SVC_TEL_10, X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約番号(電話)
		parentMap.put(IN_SVC_KEI_NO_TEL, telInfoBean.sendMessageString(CommonInfoCFConst.SVC_KEI_NO_12, X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約回線内訳番号
		parentMap.put(IN_SVC_KEI_KAISEN_UW_NO, keiyakuSvcBean.sendMessageString(CommonInfoCFConst.SVC_KEI_KAISEN_UCWK_NO_10,
				X31CWebConst.DATABEAN_GET_VALUE));

		inputMap.put("FUSV016136CC", parentMap);

		return inputMap;
	}

	/**
	 * 上りマッピングを行います。
	 * <br>
	 * @param bean データBean配列
	 * @param outputMap
	 * @param bl VIEWロジックインスタンス
	 * @return 送信情報
	 */
	public HashMap<String, Object> setTransferCC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// データ移送数
		parentMap.put(KEY_KEY_CNT, RPG_KEY_CNT_4);

		// データ移送先
		parentMap.put(KEY_TRAN_NAME, CC_TITLE_JKK_CHK_DOBANITEN_PSB_AREA);

		// 都道府県
		parentMap.put(TRANS_KEY_1, TRANS_KEY_1_VALUE_1);
		// 市区町村
		parentMap.put(TRANS_KEY_2, TRANS_KEY_1_VALUE_2);
		// 大字通称名
		parentMap.put(TRANS_KEY_3, TRANS_KEY_1_VALUE_3);
		// 字丁目名
		parentMap.put(TRANS_KEY_4, TRANS_KEY_1_VALUE_4);

		// 共通情報のマッピング
		outputMap.put(CC_TITLE_JFU_TRANSFER, parentMap);

		return outputMap;
	}

	/**
	 * CASEファイル作成ワーク登録の上りマッピングをする(FUSV016143SC)
	 * 
	 * 
	 * @param bean　[0]：共有フォームビーン
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param opeDate 運用日付
	 * @return outputMap
	 */
	public HashMap<String, Object> setECR0511D010(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code, String opeDate)
			throws Exception
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		// WEB新規情報
		X31SDataBeanAccess web_new_infobean = getWebInfo(bean[0]);
		// 光ネット
		X31SDataBeanAccess net_infobean = getEonet(web_new_infobean);

		//CASEファイル種別コード 
		parentMap.put(ELEC_TR_CSFL_SBT_CD, JFUWebCommon.getDispText(ELEC_TR, JFUStrConst.CD01688_003));
		//申込受付年月日時分秒 
		parentMap.put(ELEC_TR_MSKM_UK_DTM, opeDate);
		//問合せ客タイプ名 
		parentMap.put(ELEC_TR_PROSCST_TYPE_NM, JFUWebCommon.getDispText(ELEC_TR, ELEC_TR_PROSCST_TYPE_NM));
		//サービス契約番号（ネット）
		parentMap.put(SVC_KEI_NO, net_infobean.sendMessageString(CommonInfoCFConst.SVC_KEI_NO_11, X31CWebConst.DATABEAN_GET_VALUE));

		//問合せ状態名 
		parentMap.put(ELEC_TR_TOIAWASE_STAT_NM, JFUWebCommon.getDispText(ELEC_TR, ELEC_TR_TOIAWASE_STAT_NM));
		//対応記録ステータス名 
		parentMap.put(ELEC_TR_TAIOKRK_STAT_NM, JFUWebCommon.getDispText(ELEC_TR, ELEC_TR_TAIOKRK_STAT_NM));
		//受付者 
		parentMap.put(ELEC_TR_UKETSUKESYA, JFUWebCommon.getDispText(ELEC_TR, ELEC_TR_UKETSUKESYA));
		//担当者 
		parentMap.put(ELEC_TR_TNTSHA, JFUWebCommon.getDispText(ELEC_TR, ELEC_TR_TNTSHA));
		//キューBOX名 
		parentMap.put(ELEC_TR_QUE_BOX_NM, JFUWebCommon.getDispText(ELEC_TR, ELEC_TR_QUE_BOX_NM));
		//問合せ受付種別名 
		parentMap.put(ELEC_TR_TOIAWASE_UK_SBT_NM, JFUWebCommon.getDispText(ELEC_TR, ELEC_TR_TOIAWASE_UK_SBT_NM));
		//タイトル 
		parentMap.put(ELEC_TR_TITLE, JFUWebCommon.getDispText(ELEC_TR, ELEC_TR_TITLE));

		//対応記録履歴 
		parentMap.put(ELEC_TR_TAIO_KIROK_RIREKI, JFUGetElecTaioKirok.getRireki(bean));

		//CASEファイル作成済フラグ 
		parentMap.put(ELEC_TR_CSFL_SKSI_ZM_FLG, JFUStrConst.CD00581_0);

		outputMap.put("ECR0511D010", parentMap);

		return outputMap;
	}

	/**
	 * オプトインメール受信設定ワーク登録CCの上りマッピング処理です。
	 * 
	 * <br>
	 * @param bean [0]：共有フォームビーン　[1]：入力内容確認
	 * @param outputMap 結果マップ
	 * @param func_code 機能コード
	 * @return 結果マップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV016137CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// WEB新規情報
		X31SDataBeanAccess webNewInfoBean = getWebInfo(bean[0]);
		// 契約者情報
		X31SDataBeanAccess keiyakushaInfoBean = getKeiyakuinfo(webNewInfoBean);

		// 契約種別
		String keiSbt = webNewInfoBean.sendMessageString(CommonInfoCFConst.KEI_SBT_06, X31CWebConst.DATABEAN_GET_VALUE);
		// メール受信設定表示フラグ
		String mjsDspFlg = keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.MAIL_JUSIN_SETTEI_DSP_FLG_09,
				X31CWebConst.DATABEAN_GET_VALUE);

		// 機能コード
		parentMap.put("func_code", func_code);

		// SYSID
		if (!JFUWebCommon.isNull(webNewInfoBean.sendMessageString(CommonInfoCFConst.SYSID_06, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// SYSIDが設定されている場合
			parentMap.put(IN_SYSID, webNewInfoBean.sendMessageString(CommonInfoCFConst.SYSID_06, X31CWebConst.DATABEAN_GET_VALUE));
		}
		else
		{
			// SYSIDが設定されていない場合
			parentMap.put(IN_SYSID, JFUStrConst.EMPTY);

			// SYSID取得マップキー
			if (JFUStrConst.KEI_SBT_KOJINCD.equals(keiSbt))
			{
				// 個人の場合
				parentMap.put(GET_SYSID_COMP_NM, MAP_KEY_ECK0021D010);
			}
			else if (JFUStrConst.KEI_SBT_HOJINCD.equals(keiSbt))
			{
				// 法人の場合
				parentMap.put(GET_SYSID_COMP_NM, MAP_KEY_ECK0031D010);
			}
		}

		// メール受信設定表示フラグ
		parentMap.put(MAIL_JUSIN_SETTEI_DSP_FLG, mjsDspFlg);

		if (!MAIL_JUSIN_SETTEI_DSP_FLG_1.equals(mjsDspFlg))
		{
			// メール受信設定表示フラグが「1：表示」以外の場合
			outputMap.put(FUSV016137CC, parentMap);
			return outputMap;
		}

		// オプトインメール番号の件数分、登録リストを作成
		String optinmSel = JFUStrConst.EMPTY;
		String optinmNo = JFUStrConst.EMPTY;

		optinmSel = keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KOJIN_MAIL_JUSIN_SETTEI_SEL_09,
						X31CWebConst.DATABEAN_GET_VALUE);
		optinmNo = keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KOJIN_MAIL_JUSIN_SETTEI_NO_09,
						X31CWebConst.DATABEAN_GET_VALUE);

		String[] selList = null;
		String[] noList = null;

		if (!JFUWebCommon.isNull(optinmNo) && optinmNo.contains(JFUStrConst.COMMA))
		{
			// カンマ区切り有り
			selList = optinmSel.split(JFUStrConst.COMMA);
			noList = optinmNo.split(JFUStrConst.COMMA);
		}
		else if (!JFUWebCommon.isNull(optinmNo))
		{
			// カンマ区切り無し
			selList = new String[1];
			noList = new String[1];

			selList[0] = optinmSel;
			noList[0] = optinmNo;
		}

		ArrayList addList = new ArrayList();
		if (selList != null && noList != null)
		{
			for (int i = 0; i < noList.length; i++)
			{
				String sel = selList[i];
				String no = noList[i];

				HashMap map = new HashMap();

				// オプトインメール番号
				map.put(OPTINM_NO, no);
				// 受信区分
				map.put(RCV_DIV, sel);

				addList.add(map);
			}
		}

		// オプトインメールワーク登録リスト
		parentMap.put(OPTINM_WORK_ADD_LIST, addList);

		outputMap.put(FUSV016137CC, parentMap);

		return outputMap;
	}
// ANK-3149-00-00 ADD START
	
	/**
	 * サービス契約<eo光ネット>一意照会の上りマッピング処理です。
	 *
	 * <br>
	 * @param bean [0]：共有フォームビーン
	 * @param outputMap アウトマップ
	 * @param funcCode 機能コード
	 * @return HashMap
	 * @exception Exception
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV016144SC(X31SDataBeanAccess[] bean, HashMap outputMap, String funcCode) throws Exception
	{
		if (bean == null)
		{
			return null;
		}
		
		if (bean.length != 2)
		{
			return null;
		}
		
		// WEB新規情報
		X31SDataBeanAccess webNewInfobean = getWebInfo(bean[0]);
		
		// 光ネット
		X31SDataBeanAccess netInfobean = getEonet(webNewInfobean);
		
		// eoセキュリティーパック
		String netSecurityPack = netInfobean.sendMessageString(CommonInfoCFConst.SECURITY_PACK_MSKM_11, X31CWebConst.DATABEAN_GET_VALUE);
		
		// プレミアムパック
		String netPremiumPack = netInfobean.sendMessageString(CommonInfoCFConst.PREMIUM_PACK_11, X31CWebConst.DATABEAN_GET_VALUE);
		
		// インターネットサギウォール
		String netInetsgwl = netInfobean.sendMessageString(CommonInfoCFConst.INETSGWL_MSKM_11, X31CWebConst.DATABEAN_GET_VALUE);
		
		// ノートンファミリープレミア
		String netNtfmlprm = netInfobean.sendMessageString(CommonInfoCFConst.NTFMLPRM_MSKM_11, X31CWebConst.DATABEAN_GET_VALUE);
		
		// ANK-3484-00-00 2018/10/12 ADD START
		// おうちの機器補償（ＰＣプラン）
		String netPcpln = netInfobean.sendMessageString(CommonInfoCFConst.KK_COMP_PC_MSKM_11, X31CWebConst.DATABEAN_GET_VALUE);
		
		// おうちの機器補償（ＰＣワイドプラン）
		String netPcwpln = netInfobean.sendMessageString(CommonInfoCFConst.KK_COMP_PCW_MSKM_11, X31CWebConst.DATABEAN_GET_VALUE);
		
		// おうちの機器補償（ＴＶプラン）
		String netTvpln = netInfobean.sendMessageString(CommonInfoCFConst.KK_COMP_TV_MSKM_11, X31CWebConst.DATABEAN_GET_VALUE);
		// ANK-3484-00-00 2018/10/12 ADD END

		// eoセキュリティーパックが"1"(申し込む)以外　かつ
		// プレミアムパックが"1"(申し込む)以外　かつ
		// インターネットサギウォールが"1"(申し込む)以外　かつ
		// ノートンファミリープレミアが"1"(申し込む)以外　かつ
		// おうちの聞き補償が"1"(申し込む)以外の場合、マッピングを行わない
		if (!JFUStrConst.SECURITY_PAC_MSKM.equals(netSecurityPack)
				&& !JFUStrConst.SMALIN_PREMIUM_PACK_MSKM.equals(netPremiumPack)
				&& !JFUStrConst.INETSGWL_MSKM.equals(netInetsgwl)
				&& !JFUStrConst.NTFMLPRM_MSKM.equals(netNtfmlprm)
			// ANK-3484-00-00 2018/10/12 ADD START
				&& !JFUStrConst.PC_PLN_MSKM.equals(netPcpln)
				&& !JFUStrConst.PCW_PLN_MSKM.equals(netPcwpln)
				&& !JFUStrConst.TV_PLN_MSKM.equals(netTvpln)
			// ANK-3484-00-00 2018/10/12 ADD END
		){
			return null;
		}
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 機能コード
		parentMap.put("func_code", funcCode);
		
		// サービス契約番号
		parentMap.put("key_svc_kei_no", netInfobean.sendMessageString(CommonInfoCFConst.SVC_KEI_NO_11, X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("FUSV016144SC", parentMap);
		
		return outputMap;
	}
	
	/**
	 * セキュリティパック操作CCの上りマッピング処理です。
	 *
	 * <br>
	 * @param bean [0]：共有フォームビーン
	 * @param outputMap アウトマップ
	 * @param funcCode 機能コード
	 * @return HashMap
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public HashMap setJKKSecurityPackOperateCC(X31SDataBeanAccess[] bean, HashMap outputMap, String funcCode) throws Exception
	{
		if (bean == null)
		{
			return null;
		}
		
		if (bean.length != 2)
		{
			return null;
		}
		
		// WEB新規情報
		X31SDataBeanAccess webNewInfobean = getWebInfo(bean[0]);
		
		// 光ネット
		X31SDataBeanAccess netInfobean = getEonet(webNewInfobean);
		
		// eoセキュリティーパック
		String netSecurityPack = netInfobean.sendMessageString(CommonInfoCFConst.SECURITY_PACK_MSKM_11, X31CWebConst.DATABEAN_GET_VALUE);
		
		// プレミアムパック
		String netPremiumPack = netInfobean.sendMessageString(CommonInfoCFConst.PREMIUM_PACK_11, X31CWebConst.DATABEAN_GET_VALUE);
		
		// インターネットサギウォール
		String netInetsgwl = netInfobean.sendMessageString(CommonInfoCFConst.INETSGWL_MSKM_11, X31CWebConst.DATABEAN_GET_VALUE);
		
		// ノートンファミリープレミア
		String netNtfmlprm = netInfobean.sendMessageString(CommonInfoCFConst.NTFMLPRM_MSKM_11, X31CWebConst.DATABEAN_GET_VALUE);
		
		// eoセキュリティーパックが"1"(申し込む)以外　かつ
		// プレミアムパックが"1"(申し込む)以外　かつ
		// インターネットサギウォールが"1"(申し込む)以外　かつ
		// ノートンファミリープレミアが"1"(申し込む)以外の場合、マッピングを行わない
		if (!JFUStrConst.SECURITY_PAC_MSKM.equals(netSecurityPack)
				&& !JFUStrConst.SMALIN_PREMIUM_PACK_MSKM.equals(netPremiumPack)
				&& !JFUStrConst.INETSGWL_MSKM.equals(netInetsgwl)
				&& !JFUStrConst.NTFMLPRM_MSKM.equals(netNtfmlprm))
		{
			return null;
		}
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		HashMap childMap = new HashMap();
		
		// 機能コード
		parentMap.put("func_code", funcCode);
		
		// 引継有無
		parentMap.put("hikitugi_um", HIKITUGI_UM_NON);
		
		// 異動区分
		parentMap.put("ido_div", getIdoKbn(webNewInfobean));
		
		// SYSID
		childMap.put("sysid", webNewInfobean.sendMessageString(CommonInfoCFConst.SYSID_06, X31CWebConst.DATABEAN_GET_VALUE));
		
		// サービス契約番号
		childMap.put("svc_kei_no", netInfobean.sendMessageString(CommonInfoCFConst.SVC_KEI_NO_11, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 申込明細番号
		childMap.put("mskm_dtl_no", netInfobean.sendMessageString(CommonInfoCFConst.MSKM_DTL_NO_11, X31CWebConst.DATABEAN_GET_VALUE));
		
		// セキュリティーパック対象フラグ
		if (JFUStrConst.SECURITY_PAC_MSKM.equals(netSecurityPack))
		{
			// eoセキュリティーパックが"1"(申し込む)の場合、"1"（有）を設定
			childMap.put("security_pack_tg_flg", TG_FLG_ARI);
		}
		else
		{
			// 上記以外の場合、"0"（無）を設定
			childMap.put("security_pack_tg_flg", TG_FLG_NON);
		}
		
		// プレミアムパック対象フラグ
		if (JFUStrConst.SMALIN_PREMIUM_PACK_MSKM.equals(netPremiumPack))
		{
			// プレミアムパックが"1"(申し込む)の場合、"1"（有）を設定
			childMap.put("premium_pack_tg_flg", TG_FLG_ARI);
		}
		else
		{
			// 上記以外の場合、"0"（無）を設定
			childMap.put("premium_pack_tg_flg", TG_FLG_NON);
		}
		
		// インターネットサギウォール対象フラグ
		if (JFUStrConst.INETSGWL_MSKM.equals(netInetsgwl))
		{
			// インターネットサギウォールが"1"(申し込む)の場合、"1"（有）を設定
			childMap.put("inetsgwl_tg_flg", TG_FLG_ARI);
		}
		else
		{
			// 上記以外の場合、"0"（無）を設定
			childMap.put("inetsgwl_tg_flg", TG_FLG_NON);
		}
		
		// ノートンファミリープレミア対象フラグ
		if (JFUStrConst.NTFMLPRM_MSKM.equals(netNtfmlprm))
		{
			// ノートンファミリープレミアが"1"(申し込む)の場合、"1"（有）を設定
			childMap.put("ntfmlprm_tg_flg", TG_FLG_ARI);
		}
		else
		{
			// 上記以外の場合、"0"（無）を設定
			childMap.put("ntfmlprm_tg_flg", TG_FLG_NON);
		}
		
		// 登録用情報リスト
		ArrayList addInfoList = new ArrayList();
		addInfoList.add(childMap);
		parentMap.put("add_info_list", addInfoList);
		
		outputMap.put("JKKSecurityPackOperateCC", parentMap);
		
		return outputMap;
	}
// ANK-3149-00-00 ADD END
// OM-2018-0000758 2018/08/20 ADD START
	/**
	 * 支払継続フラグを更新する処理です（全戸一括用）。
	 * 
	 * <br>
	 * @param bean [0]：共有フォームビーン
	 * @param outputMap アウトマップ
	 * @param serviceInfoId サービスインターフェイスID
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public void setUpdatePaywayKeizokuFlg(X31SDataBeanAccess[] bean, HashMap<String, Object> dataMap, String serviceInfoId) throws Exception
	{
		String hikitugi = getPaywayKeizokuFlg(bean);
		
		if (null != hikitugi && !"".equals(hikitugi))
		{
			// 支払継続フラグがnull、未設定以外の場合
			if ("EKK0181D010".equals(serviceInfoId))
			{
				// サービス契約内訳<eo光TV>の場合
				HashMap<String, Object> ekk0181D010HashMap = (HashMap<String, Object>)dataMap.get(serviceInfoId);
				ArrayList ekk0181D010List = (ArrayList)ekk0181D010HashMap.get(serviceInfoId + "List");
				for(int i=0; i < ekk0181D010List.size(); i++)
				{
					HashMap ekk0181D010 = (HashMap)ekk0181D010List.get(i);
					ekk0181D010.put("payway_keizoku_flg", hikitugi);
				}
			}
			else 
			{
				// サービス契約内訳<eo光TV>以外の場合
				HashMap<String, Object> parentMap = (HashMap<String, Object>) dataMap.get(serviceInfoId);
				parentMap.put("payway_keizoku_flg", hikitugi);
			}
		}
	}
	
	/**
	 * 共有フォームBeanの値より、支払継続フラグを取得する
	 * 
	 * <br>
	 * @param bean [0]：共有フォームビーン
	 * @return String
	 */
	private String getPaywayKeizokuFlg(X31SDataBeanAccess[] bean)
	{
		// WEB新規情報
		X31SDataBeanAccess web_new_infobean = getWebInfo(bean[0]);
		// 支払い方法情報
		X31SDataBeanAccess cash_infobean = getPywyInfo(web_new_infobean);
		// 支払い方法引継
		String payWayContinue = cash_infobean.sendMessageString(CommonInfoCFConst.PAYWAY_CONTINUE_15, X31CWebConst.DATABEAN_GET_VALUE);
		
		String retString = "";
		
		// サービス追加以外の場合は空白返却
		if (!web_new_infobean.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_GET_VALUE).equals(JFUStrConst.MSKM_KBN_ADD)){
			return "";
		}
		
		if (JFUStrConst.PAYWAY_CONTINUE_CONTINUE.equals(payWayContinue))
		{
			// 支払い方法情報 支払方法引継が 1：引き継ぐの場合
			retString = "1";
		}
		else
		{
			// 支払い方法情報 支払方法引継が 1：引き継ぐ以外の場合
			retString = "";
		}

		return retString;
	}
// OM-2018-0000758 2018/08/20 ADD END

// ANK-3484-00-00 ADD START
	/**
	 * 上りマッピングをします。(サービス契約一意照会)
	 * 
	 * <br>
	 * @param bean  [0]：eoスマートリンク申込  [1]：共有フォームビーン
	 * @param outputMap
	 * @param svcKeiNo   サービス契約番号
	 * @param func_code  機能コード
	 * @return HashMap
	 */
	public HashMap<String, Object> setEKK0081A010(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("EKK0081A010", parentMap);

		return outputMap;
	}
	
	
	/**
	 * おうちの機器補償サービス登録CCの上りマッピング処理です。
	 *
	 * <br>
	 * @param bean [0]：共有フォームビーン
	 * @param outputMap アウトマップ
	 * @param funcCode 機能コード
	 * @param opeDate 運用日付
	 * @param updDtmBef 更新年月日時分秒（サービス契約）
	 * @return HashMap
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")	
	public HashMap setJKKTmcpOperateCC(X31SDataBeanAccess[] bean, HashMap outputMap, String funcCode, String opeDate)throws Exception
	{
		//Web新規情報
		X31SDataBeanAccess webNewInfobean = getWebInfo(bean[0]);
		//光ネット
		X31SDataBeanAccess netInfobean = getEonet(webNewInfobean);
		
		String netPcpln = netInfobean.sendMessageString(CommonInfoCFConst.KK_COMP_PC_MSKM_11, X31CWebConst.DATABEAN_GET_VALUE);
		
		String netPcwpln = netInfobean.sendMessageString(CommonInfoCFConst.KK_COMP_PCW_MSKM_11, X31CWebConst.DATABEAN_GET_VALUE);
		
		String netTvpln = netInfobean.sendMessageString(CommonInfoCFConst.KK_COMP_TV_MSKM_11, X31CWebConst.DATABEAN_GET_VALUE);
		

		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		HashMap<String, String> childMap = new HashMap<String, String>();
		
		
		// 機能コード
		parentMap.put(FUNC_CODE, funcCode);
		
		// 処理区分
		parentMap.put(SHORI_DIV,SHORI_DIV_2);
						
		// 異動区分
		parentMap.put(IDO_DIV, getIdoKbn(webNewInfobean));
		
		// 申込年月日
		childMap.put(MKSM_YMD, opeDate);

		if (JFUStrConst.PC_PLN_MSKM.equals(netPcpln))
		{
			// PCプランが"1"(申し込む)の場合、"1"（有）を設定
			childMap.put(PC_PLAN_TG_FLG, PLAN_MSKM);
			// PCプラン申込日
			childMap.put(PC_PLAN_MKSM_YMD, opeDate);
		}
		else
		{
			// 上記以外の場合、"0"（無）を設定
			childMap.put(PC_PLAN_TG_FLG, PLAN_NOT_MSKM);
			childMap.put(PC_PLAN_MKSM_YMD, "");
		}
		
		
		if (JFUStrConst.PCW_PLN_MSKM.equals(netPcwpln))
		{
			// PCワイドプランが"1"(申し込む)の場合、"1"（有）を設定
			childMap.put(PC_PLAN_TG_FLG, PLAN_MSKM);
			// PCプラン申込日
			childMap.put(PC_PLAN_MKSM_YMD, opeDate);
			// PCワイドプランが"1"(申し込む)の場合、"1"（有）を設定
			childMap.put(PC_WIDE_PLAN_TG_FLG, PLAN_MSKM);
			// PCワイドプラン申込日
			childMap.put(PC_WIDE_PLAN_MKSM_YMD, opeDate);
		}
		else
		{
			// 上記以外の場合、"0"（無）を設定
			childMap.put(PC_WIDE_PLAN_TG_FLG, PLAN_NOT_MSKM);
			childMap.put(PC_WIDE_PLAN_MKSM_YMD, "");
		}
		
		 
		if (JFUStrConst.TV_PLN_MSKM.equals(netTvpln))
		{
			// TVプランが"1"(申し込む)の場合、"1"（有）を設定
			childMap.put(TV_PLAN_TG_FLG, PLAN_MSKM);
			// TVプラン申込日
			childMap.put(TV_PLAN_MKSM_YMD, opeDate);
		}
		else
		{
			// 上記以外の場合、"0"（無）を設定
			childMap.put(TV_PLAN_TG_FLG, PLAN_NOT_MSKM);
			childMap.put(TV_PLAN_MKSM_YMD, "");
		}
		// 登録用情報リスト
		ArrayList addInfoList = new ArrayList();
		addInfoList.add(childMap);
		parentMap.put("add_info_list", addInfoList);
		
		outputMap.put("JKKTmcpOperateCC", parentMap);
		
		return outputMap;
	}
// ANK-3484-00-00 ADD END	

// ANK-3473-00-00 ADD START
	/**
	 * キャンペーンチェックCC上りマッピングをする
	 * 
	 * @param bean　[0]：共有フォームBean　[1]：サービスフォームBean
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public HashMap setJFUGetCampaignListCC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) throws Exception
	{
		if (bean == null)
		{
			return null;
		}
		if (bean.length != 2)
		{
			return null;
		}
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		// WEB新規情報
		X31SDataBeanAccess bnWebinfo = getWebInfo(bean[0]);
		// パラメータ設定
		// 汎用コードリストを取得
		X31SDataBeanAccess hanyoInfoBean = bnWebinfo.getDataBeanArray(CommonInfoCFConst.HANYO_CD_LIST).getDataBean(0);

		// 選択されているキャンペーンコード
		parentMap.put(IN_CAMPAIGN_CD, (String)hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_CD_46, X31CWebConst.DATABEAN_GET_VALUE));
		// 選択されているキャンペーンの種別
		parentMap.put(IN_CAMPAIGN_SBTCD, (String)hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_SBT_CD_46, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put(JFUGETCAMPAIGNLISTCC, parentMap);

		return outputMap;
	}
// ANK-3473-00-00 ADD END

	/**
	 * 住所情報分割CC(現住所)の上りマッピングです。
	 * 
	 * @param bean
	 * @param outputMap
	 * @return outputMap
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV016145CC(X31SDataBeanAccess[] bean, HashMap outputMap) throws Exception
	{
		if (bean == null)
		{
			return null;
		}
		if (bean.length != 2)
		{
			return null;
		}

		// WEB新規情報
		X31SDataBeanAccess webNewInfoBean = getWebInfo(bean[0]);
		// 契約者情報
		X31SDataBeanAccess kshInfoBean = getKeiyakuinfo(webNewInfoBean);

		String mskmKbn = webNewInfoBean.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_GET_VALUE);
		String kshGenAddChangeJk = kshInfoBean.sendMessageString(CommonInfoCFConst.KSH_GENADD_CHANGE_JK_09, X31CWebConst.DATABEAN_GET_VALUE);

		if(!JFUStrConst.MSKM_KBN_ADD.equals(mskmKbn) || JFUWebCommon.isNull(kshGenAddChangeJk) || "0".equals(kshGenAddChangeJk))
		{
			// 以下の条件に1つでも一致した場合は実行しない
			// 申込区分が「2：追加」以外
			// ご契約者住所（現住所）の変更状況が未設定、または、「0：変更なし」の場合は処理しない
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 都道府県・市区町村
		parentMap.put("state_city", kshInfoBean.sendMessageString(CommonInfoCFConst.KSH_STATE_ADD_09, X31CWebConst.DATABEAN_GET_VALUE));
		// 字
		parentMap.put("aza", kshInfoBean.sendMessageString(CommonInfoCFConst.KSH_AZA_ADD_09, X31CWebConst.DATABEAN_GET_VALUE));
		// 丁目・番地等
		parentMap.put("chome_bnchi", kshInfoBean.sendMessageString(CommonInfoCFConst.KSH_CHO_BNCHI_ADD_09, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV016145CC", parentMap);

		return outputMap;
	}

	/**
	 * 契約状態チェック＆住所変更CCの上りマッピングです。
	 * 
	 * @param bean
	 * @param outputMap
	 * @return outputMap
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV016146CC(X31SDataBeanAccess[] bean, HashMap outputMap) throws Exception
	{
		if (bean == null)
		{
			return null;
		}
		if (bean.length != 2)
		{
			return null;
		}

		// WEB新規情報
		X31SDataBeanAccess webNewInfoBean = getWebInfo(bean[0]);
		// 契約者情報
		X31SDataBeanAccess kshInfoBean = getKeiyakuinfo(webNewInfoBean);

		String mskmKbn = webNewInfoBean.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_GET_VALUE);
		String kshGenAddChangeJk = kshInfoBean.sendMessageString(CommonInfoCFConst.KSH_GENADD_CHANGE_JK_09, X31CWebConst.DATABEAN_GET_VALUE);

		if(!JFUStrConst.MSKM_KBN_ADD.equals(mskmKbn) || JFUWebCommon.isNull(kshGenAddChangeJk) || "0".equals(kshGenAddChangeJk))
		{
			// 以下の条件に1つでも一致した場合は実行しない
			// 申込区分が「2：追加」以外
			// ご契約者住所（現住所）の変更状況が未設定、または、「0：変更なし」の場合は処理しない
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 契約サービス情報
		X31SDataBeanAccess keiSvcInfoBean = getKeiyakusvcinfo(webNewInfoBean);
		// ネット情報
		X31SDataBeanAccess netInfoBean = getEonet(webNewInfoBean);
		// 電話情報
		X31SDataBeanAccess[] telInfoBean = getEotel(webNewInfoBean);
		// テレビ情報
		X31SDataBeanAccess tvInfoBean = getEotv(webNewInfoBean);

		// 契約種別
		String keiSbt = webNewInfoBean.sendMessageString(CommonInfoCFConst.KEI_SBT_06, X31CWebConst.DATABEAN_GET_VALUE);
		// 選択サービス(ネット)
		String selectNet = keiSvcInfoBean.sendMessageString(CommonInfoCFConst.SELECT_SVC_NET_10, X31CWebConst.DATABEAN_GET_VALUE);
		// 選択サービス(電話)
		String selectTel = keiSvcInfoBean.sendMessageString(CommonInfoCFConst.SELECT_SVC_TEL_10, X31CWebConst.DATABEAN_GET_VALUE);
		// 選択サービス(テレビ)
		String selectTv = keiSvcInfoBean.sendMessageString(CommonInfoCFConst.SELECT_SVC_TV_10, X31CWebConst.DATABEAN_GET_VALUE);

		// 申込明細番号取得(@ネット、A電話、Bテレビ)
		String mskmDtlNo = JFUStrConst.EMPTY;
		// ネットが選択されていた場合
		if (JFUStrConst.SELECT_SVC_NET_CHOICE.equals(selectNet))
		{
			mskmDtlNo = netInfoBean.sendMessageString(CommonInfoCFConst.MSKM_DTL_NO_11, X31CWebConst.DATABEAN_GET_VALUE);
		}
		// 電話が選択されていた場合
		else if (JFUStrConst.SELECT_SVC_TEL_CHOICE.equals(selectTel))
		{
			mskmDtlNo = telInfoBean[0].sendMessageString(CommonInfoCFConst.MSKM_DTL_NO_12, X31CWebConst.DATABEAN_GET_VALUE);
		}
		// テレビが選択されていた場合
		else if (JFUStrConst.SELECT_SVC_TV_CHOICE.equals(selectTv))
		{
			mskmDtlNo = tvInfoBean.sendMessageString(CommonInfoCFConst.MSKM_DTL_NO_13, X31CWebConst.DATABEAN_GET_VALUE);
		}

		// SYSID
		parentMap.put("in_sysid", webNewInfoBean.sendMessageString(CommonInfoCFConst.SYSID_06, X31CWebConst.DATABEAN_GET_VALUE));
		// 申込明細番号
		parentMap.put("in_mskm_dtl_no", mskmDtlNo);
		// 異動区分
		parentMap.put("in_ido_div", getIdoKbn(webNewInfoBean));
		// 契約種別
		parentMap.put("in_keisha_type_cd", keiSbt);

		// 契約者住所補記・建物名
		parentMap.put("in_keisha_adrttm", kshInfoBean.sendMessageString(CommonInfoCFConst.KSH_TTM_ADD_09, X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者住所補記・部屋番号
		parentMap.put("in_keisha_adrrm", kshInfoBean.sendMessageString(CommonInfoCFConst.KSH_RRM_ADD_09, X31CWebConst.DATABEAN_GET_VALUE));

		// 契約者電話番号
		String telNo1 = kshInfoBean.sendMessageString(CommonInfoCFConst.KSH_TELNO1_ADD_09, X31CWebConst.DATABEAN_GET_VALUE);
		String telNo2 = kshInfoBean.sendMessageString(CommonInfoCFConst.KSH_TELNO2_ADD_09, X31CWebConst.DATABEAN_GET_VALUE);
		String telNo3 = kshInfoBean.sendMessageString(CommonInfoCFConst.KSH_TELNO3_ADD_09, X31CWebConst.DATABEAN_GET_VALUE);
		parentMap.put("in_keisha_telno", telNo1 + telNo2 + telNo3);

		// 契約者都道府県名・市区町村名(変更前)
		parentMap.put("in_keisha_state_city_bf", kshInfoBean.sendMessageString(CommonInfoCFConst.KSH_STATE_BF_09, X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者字(変更前)
		parentMap.put("in_keisha_aza_bf", kshInfoBean.sendMessageString(CommonInfoCFConst.KSH_AZA_BF_09, X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者丁目・番地号(変更前)
		parentMap.put("in_keisha_chome_bnchigo_bf", kshInfoBean.sendMessageString(CommonInfoCFConst.KSH_CHO_BNCHI_BF_09, X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者住所補記・建物名(変更前)
		parentMap.put("in_keisha_adrttm_bf", kshInfoBean.sendMessageString(CommonInfoCFConst.KSH_TTM_BF_09, X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者住所補記・部屋番号(変更前)
		parentMap.put("in_keisha_adrrm_bf", kshInfoBean.sendMessageString(CommonInfoCFConst.KSH_RRM_BF_09, X31CWebConst.DATABEAN_GET_VALUE));

		// 住所分割取得先ID
		parentMap.put("in_get_address_id", "FUSV016145CC");

		outputMap.put("FUSV016146CC", parentMap);

		return outputMap;
	}
	/**
	 * EFU0361B010_WEB申込情報一覧照会 上がりマッピング
	 * 
	 * @param bean
	 * @param outputMap
	 * @return
	 */
	public HashMap<String, Object> setFUSV016145SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		// WEB新規情報
		X31SDataBeanAccess web_new_infobean = getWebInfo(bean[0]);
		// 契約者情報
		X31SDataBeanAccess keiyakuinfoBean = getKeiyakuinfo(web_new_infobean);

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, "2");

		// ＫＥＹ＿識別キー
		parentMap.put("key_skbt_key", keiyakuinfoBean.sendMessageString(CommonInfoCFConst.SKBT_KEY_09, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV016145SC", parentMap);

		return outputMap;
	}

	/**
	 * EFU0361B010_WEB申込情報一覧照会 下りマッピング
	 * 
	 * @param bean
	 * @param outputMap
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess getFUSV016145SC(X31SDataBeanAccess bean, HashMap<String, Object> outputMap)
	{
		if (bean == null)
		{
			return null;
		}

		// WEB新規情報
		X31SDataBeanAccess web_new_infobean = getWebInfo(bean);
		// 契約者情報
		X31SDataBeanAccess keiyakuinfoBean = getKeiyakuinfo(web_new_infobean);

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		if (outputMap.containsKey("FUSV016145SC"))
		{
			parentMap = (HashMap)outputMap.get("FUSV016145SC");
		}

		if (parentMap != null && parentMap.size() > 0 && parentMap.containsKey("EFU0361B010CBSMsg1List"))
		{
			// 検索結果全件取得
			ArrayList childList = (ArrayList)parentMap.get("EFU0361B010CBSMsg1List");
			if(childList == null || childList.size() == 0)
			{
				// 結果が存在しない場合、処理を終了する
				return bean;
			}

			// 検索結果の0番目を取得
			HashMap childMap = (HashMap)childList.get(0);
			if(childMap == null || childMap.size() == 0)
			{
				// 結果が存在しない場合、処理を終了する
				return bean;
			}
			
			String mlad = JFUStrConst.EMPTY;
			if(childMap.containsKey("mlad") && !JFUWebCommon.isNull((String)childMap.get("mlad")))
			{
				mlad = (String)childMap.get("mlad");
			}
			if (!JFUStrConst.EMPTY.equals(mlad))
			{
				keiyakuinfoBean.sendMessageString(CommonInfoCFConst.KOJIN_MLAD_09, X31CWebConst.DATABEAN_SET_VALUE, mlad);
				keiyakuinfoBean.sendMessageString(CommonInfoCFConst.HOJIN_MLAD_09, X31CWebConst.DATABEAN_SET_VALUE, mlad);
			}
		}
		return bean;
	}
	
	/**
	 * eoID入力情報登録CC 上がりマッピング
	 * 
	 * @param bean
	 * @param outputMap
	 * @return
	 */
	public HashMap<String, Object> setJFUEoidInputInfoAddCC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		// WEB新規情報
		X31SDataBeanAccess web_new_infobean = getWebInfo(bean[0]);
		// 契約者情報
		X31SDataBeanAccess keiyakuinfoBean = getKeiyakuinfo(web_new_infobean);
		// 契約サービス情報
		X31SDataBeanAccessArray keiyaku_svc_info = web_new_infobean.getDataBeanArray(CommonInfoCFConst.KEIYAKU_SVC_INFO);
		X31SDataBeanAccess keiyaku_svc_infobean = keiyaku_svc_info.getDataBean(0);

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		String mlad = JFUStrConst.EMPTY;
		if (JFUStrConst.CD00036_1.equals(web_new_infobean.sendMessageString(CommonInfoCFConst.KEI_SBT_06, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 契約種別が個人の場合
			mlad = keiyakuinfoBean.sendMessageString(CommonInfoCFConst.KOJIN_MLAD_09, X31CWebConst.DATABEAN_GET_VALUE);
		}
		else
		{
			// 契約種別が法人の場合
			mlad = keiyakuinfoBean.sendMessageString(CommonInfoCFConst.HOJIN_MLAD_09, X31CWebConst.DATABEAN_GET_VALUE);
		}
		
		// 販売タイプ
		String hanbaiType = web_new_infobean.sendMessageString(CommonInfoCFConst.HANBAI_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE);
		parentMap.put(FUNC_CODE, func_code);
		parentMap.put("mode", "1");
		if (JFUStrConst.HNBAI_TYPE_HOHAN.equals(hanbaiType) || JFUStrConst.HNBAI_TYPE_RYOHAN.equals(hanbaiType))
		{
			parentMap.put("skbt_key", keiyakuinfoBean.sendMessageString(CommonInfoCFConst.SKBT_KEY_09, X31CWebConst.DATABEAN_GET_VALUE));
		} else {
			String social_id_sbt = keiyakuinfoBean.sendMessageString(CommonInfoCFConst.SOCIAL_ID_SBT_09, X31CWebConst.DATABEAN_GET_VALUE);
			parentMap.put("social_id_sbt", social_id_sbt);
			parentMap.put("sys_id", web_new_infobean.sendMessageString(CommonInfoCFConst.SYSID_06, X31CWebConst.DATABEAN_GET_VALUE));
			parentMap.put("mskm_no", keiyaku_svc_infobean.sendMessageString(CommonInfoCFConst.TTDKI_NO_10, X31CWebConst.DATABEAN_GET_VALUE));
			if ("0".equals(social_id_sbt))
			{
				parentMap.put("eoid", keiyakuinfoBean.sendMessageString(CommonInfoCFConst.EOID_09, X31CWebConst.DATABEAN_GET_VALUE));
				parentMap.put("eoid_pwd", keiyakuinfoBean.sendMessageString(CommonInfoCFConst.EOID_PWD_09, X31CWebConst.DATABEAN_GET_VALUE));
				parentMap.put("social_id", "");
			} else {
				parentMap.put("social_id", keiyakuinfoBean.sendMessageString(CommonInfoCFConst.SOCIAL_ID_09, X31CWebConst.DATABEAN_GET_VALUE));
				parentMap.put("eoid", "");
				parentMap.put("eoid_pwd", "");
			}
			parentMap.put("mlad", mlad);
			// 認証レベル "2"(2段階認証) 固定
			parentMap.put("authentication_level", "2");
			// ワンタイムキー送付先優先区分ル "1"(メール)" 固定
			parentMap.put("onetimekey_destination", "1");
		}
		
		outputMap.put("JFUEoidInputInfoAddCC", parentMap);

		return outputMap;
	}

	/**
	 * EKK3291D010_コンテンツ申込情報登録 上がりマッピング
	 * 
	 * @param bean
	 * @param outputMap
	 * @return
	 */
	public HashMap<String, Object> setFUSV016146SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		// WEB新規情報
		X31SDataBeanAccess web_new_infobean = getWebInfo(bean[0]);
		// コンテンツ情報
		X31SDataBeanAccessArray contentsList = web_new_infobean.getDataBeanArray(CommonInfoCFConst.CONT_SVC_INFO);
		// 契約サービス情報
		X31SDataBeanAccessArray keiyaku_svc_info = web_new_infobean.getDataBeanArray(CommonInfoCFConst.KEIYAKU_SVC_INFO);
		X31SDataBeanAccess keiyaku_svc_infobean = keiyaku_svc_info.getDataBean(0);
		
		String mskm_no = keiyaku_svc_infobean.sendMessageString(CommonInfoCFConst.TTDKI_NO_10, X31CWebConst.DATABEAN_GET_VALUE);
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);
		ArrayList list = new ArrayList();
		if (contentsList != null && contentsList.getCount() > 0)
		{
			for (int i = 0; i < contentsList.getCount(); i++)
			{
				X31SDataBeanAccess contentsBean = contentsList.getDataBean(i);
				if (contentsBean.sendMessageBoolean(CommonInfoCFConst.CONT_SVC_MSKM_CHOICE_67, X31CWebConst.DATABEAN_GET_VALUE))
				{
					Map<String, Object> childMap = new HashMap<String, Object>();
					childMap.put(FUNC_CODE, func_code);
					childMap.put("mskm_no", mskm_no);
					childMap.put("cont_svc_cd", contentsBean.sendMessageString(CommonInfoCFConst.CONT_SVC_CD_67, X31CWebConst.DATABEAN_GET_VALUE));
					childMap.put("cont_mkm_inf_stcd", "01");
					list.add(childMap);
				}
			}
		}
		if (list.size() > 0)
		{
			parentMap.put("FUSV016146SCList", list);
			outputMap.put("FUSV016146SC", parentMap);
		}

		return outputMap;
	}

	/**
	 * オプトインメール受信設定登録CCの上りマッピング処理です。
	 * 
	 * <br>
	 * @param bean [0]：共有フォームビーン　[1]：入力内容確認
	 * @param outputMap 結果マップ
	 * @param func_code 機能コード
	 * @return 結果マップ
	 */
	public HashMap setFUSV016147CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// WEB新規情報
		X31SDataBeanAccess webNewInfoBean = getWebInfo(bean[0]);
		// 契約者情報
		X31SDataBeanAccess keiyakushaInfoBean = getKeiyakuinfo(webNewInfoBean);

		// メール受信設定表示フラグ
		String mjsDspFlg = keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.MAIL_JUSIN_SETTEI_DSP_FLG_09,
				X31CWebConst.DATABEAN_GET_VALUE);

		// メール受信設定表示フラグ
		parentMap.put(MAIL_JUSIN_SETTEI_DSP_FLG, mjsDspFlg);

		if (!MAIL_JUSIN_SETTEI_DSP_FLG_1.equals(mjsDspFlg))
		{
			// メール受信設定表示フラグが「1：表示」以外の場合
			return outputMap;
		}

		// 契約種別
		String keiSbt = webNewInfoBean.sendMessageString(CommonInfoCFConst.KEI_SBT_06, X31CWebConst.DATABEAN_GET_VALUE);

		String mlad = JFUStrConst.EMPTY;

		// 連絡用コンテンツメールアドレス
		if (JFUStrConst.KEI_SBT_HOJINCD.equals(keiSbt))
		{
			// 法人メールアドレス
			mlad = keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.HOJIN_MLAD_09, X31CWebConst.DATABEAN_GET_VALUE);
		}
		else if (JFUStrConst.KEI_SBT_KOJINCD.equals(keiSbt))
		{
			// 個人メールアドレス
			mlad = keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KOJIN_MLAD_09, X31CWebConst.DATABEAN_GET_VALUE);
		}

		if (JFUWebCommon.isNull(mlad))
		{
			// 連絡用コンテンツメールアドレスが未設定の場合
			return outputMap;
		}

		// 機能コード
		parentMap.put("func_code", func_code);
		// 連絡用コンテンツメールアドレス
		parentMap.put(IN_MLAD, mlad);

		// SYSID
		String sysid = webNewInfoBean.sendMessageString(CommonInfoCFConst.SYSID_06, X31CWebConst.DATABEAN_GET_VALUE);

		if (!JFUWebCommon.isNull(sysid))
		{
			// SYSIDが設定されている場合
			parentMap.put(IN_SYSID, sysid);
		}
		else
		{
			// SYSIDが設定されていない場合
			parentMap.put(IN_SYSID, JFUStrConst.EMPTY);

			// SYSID取得マップキー
			if (JFUStrConst.KEI_SBT_KOJINCD.equals(keiSbt))
			{
				// 個人の場合
				parentMap.put(GET_SYSID_COMP_NM, MAP_KEY_ECK0021D010);
			}
			else if (JFUStrConst.KEI_SBT_HOJINCD.equals(keiSbt))
			{
				// 法人の場合
				parentMap.put(GET_SYSID_COMP_NM, MAP_KEY_ECK0031D010);
			}
		}

		// オプトインメール番号の件数分、登録リストを作成
		String optinmSel = JFUStrConst.EMPTY;
		String optinmNo = JFUStrConst.EMPTY;

		if (JFUStrConst.KEI_SBT_KOJINCD.equals(keiSbt))
		{
			// 契約種別が個人の場合
			optinmSel = keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KOJIN_MAIL_JUSIN_SETTEI_SEL_09,
							X31CWebConst.DATABEAN_GET_VALUE);
			optinmNo = keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KOJIN_MAIL_JUSIN_SETTEI_NO_09,
							X31CWebConst.DATABEAN_GET_VALUE);
		}
		else if (JFUStrConst.KEI_SBT_HOJINCD.equals(keiSbt))
		{
			// 契約種別が法人の場合
			optinmSel = keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.HOJIN_MAIL_JUSIN_SETTEI_SEL_09,
					X31CWebConst.DATABEAN_GET_VALUE);
			optinmNo = keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.HOJIN_MAIL_JUSIN_SETTEI_NO_09,
					X31CWebConst.DATABEAN_GET_VALUE);
		}

		String[] selList = null;
		String[] noList = null;

		if (!JFUWebCommon.isNull(optinmNo) && optinmNo.contains(JFUStrConst.COMMA))
		{
			// カンマ区切り有り
			selList = optinmSel.split(JFUStrConst.COMMA);
			noList = optinmNo.split(JFUStrConst.COMMA);
		}
		else if (!JFUWebCommon.isNull(optinmNo))
		{
			// カンマ区切り無し
			selList = new String[1];
			noList = new String[1];

			selList[0] = optinmSel;
			noList[0] = optinmNo;
		}

		ArrayList addList = new ArrayList();
		if (selList != null && noList != null)
		{
			for (int i = 0; i < noList.length; i++)
			{
				String sel = selList[i];
				String no = noList[i];

				HashMap map = new HashMap();

				// オプトインメール番号
				map.put(OPTINM_NO, no);
				// 受信区分
				map.put(RCV_DIV, sel);

				addList.add(map);
			}
		}

		// オプトインメールワーク登録リスト
		parentMap.put(OPTINM_ADD_LIST, addList);

		outputMap.put("FUSV016147CC", parentMap);

		return outputMap;
	}

	/**
	 * クレジットカード会社一覧照会の上りマッピングをする
	 * @param bean　[0]：お支払い方法入力　[1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV016148SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// クレジットカード事業コード → クレジット会社一覧照会マップ.ＫＥＹ＿クレジットカード事業コード
		parentMap.put("key_crecard_jigyo_cd", JFUStrConst.CD00420_2);

		outputMap.put("FUSV016148SC", parentMap);

		return outputMap;
	}
}