/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：FUSV0112_FUSV0112OPDBMapper
*	ソースファイル名：FUSV0112_FUSV0112OPDBMapper.java
*	作成者			：富士通
*	日付			：2011年07月08日
*＜機能概要＞
*	BP（メールアドレス自動設定ツール連携(初期取得)）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/07/08	FJ）西川	新規作成
*	v7.00.00	2014/03/05	FJ）谷本	【OM-2014-0000779】性能障害対応
*   v14.0.0     2015/04/23  FJ）谷本    【ANK-2414-00-00】メールアドレス変更禁止の期間短縮
*
**********************************************************************/
package eo.web.webview.mapping;

import static eo.web.webview.common.JFUWebCommon.GEN_CUST_KEI_INFO;
import static eo.web.webview.common.JFUWebCommon.OP_SVC_KEI_INFO;
import static eo.web.webview.common.JFUWebCommon.SBOP_SVC_KEI_INFO;
import static eo.web.webview.common.JFUWebCommon.SEIKY_KEI_INFO;
import static eo.web.webview.common.JFUWebCommon.SEP_N_LAST;
import static eo.web.webview.common.JFUWebCommon.SVC_KEI_INFO;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;

import eo.common.constant.JFUStrConst;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.FUA028SF.FUA028SFConst;
import eo.web.webview.common.JFUWebCommon;

/**
 * DataBean-BPマッピングを行います。
 *
 * <br>
 * @author 富士通
 */
public class FUSV0112_FUSV0112OPDBMapper
{

	/** サービス契約内訳番号 */
	private static final String SVC_KEI_UCWK_NO = "svc_kei_ucwk_no";
	/** サブオプションサービス契約番号 */
	private static final String SBOP_SVC_KEI_NO = "sbop_svc_kei_no";
	/** お客様名 */
	private static final String CUST_NM = "cust_nm";
	/** エイリアス */
	private static final String ALIAS = "alias";
	/** 更新年月日時分秒(サブオプションサービス契約) */
	private static final String KK0401_LAST_UPD_DTM = "kk0401_last_upd_dtm";
	/** 更新年月日時分秒(オプションサービス契約) */
	private static final String KK0351_LAST_UPD_DTM = "kk0351_last_upd_dtm";
	/** SYSID */
	private static final String SYSID = "sysid";
	/** サービス契約番号 */
	private static final String SVC_KEI_NO = "svc_kei_no";
	/** メールアドレス変更年月日 */
	private static final String MLAD_CHGE_YMD = "mlad_chge_ymd";
	/** POPID */
	private static final String POP_ID = "pop_id";
	/** 世代登録年月日時分秒 */
	private static final String GENE_ADD_DTM = "gene_add_dtm";
	/** オプションサービス契約番号 */
	private static final String OP_SVC_KEI_NO = "op_svc_kei_no";
	/** 業務パラメータ設定値 */
	private static final String WORK_PARAM_SETTE_VALUE = "work_param_sette_value";
	/** 表示用サービス提供開始年月日 */
	private static final String DSP_SVCTK_STAYMD = "dsp_svctk_staymd";

	/** 業務パラメータ設定値 */
	private static final String OP_SVC_KEI_STAT = "op_svc_kei_stat";

	/** ＫＥＹ＿メールアドレス */
	private static final String KEY_MLAD = "key_mlad";
	/** 機能コード */
	private static final String FUNC_CODE = "func_code";
	/** メールアドレス自動設定ツール連携契約情報取得一覧照会SC */
	private static final String SC_TITLE_FUSV011201 = "FUSV011201SC";
	/** お客様一意照会SC */
	private static final String SC_TITLE_FUSV011202 = "FUSV011202SC";
	/** 業務パラメータ管理一意照会SC */
	private static final String SC_TITLE_FUSV011203 = "FUSV011203SC";
	/** オプションサービス契約一意照会SC */
	private static final String SC_TITLE_FUSV011204 = "FUSV011204SC";
	/** メールアドレス情報照会CC */
	private static final String CC_TITLE_FUSV011201 = "FUSV011201CC";
	/** メールアドレス変更回数取得CC */
	private static final String CC_TITLE_FUSV011202 = "FUSV011202CC";

	/** メールアドレス自動設定ツール連携契約情報取得一覧照会明細 */
	private static final String EKK0361B004_LIST = "EKK0361B004CBSMsg1List";
	/** お客様一意照会明細 */
	private static final String ECK0011A010_LIST = "ECK0011A010CBSMsg1List";
	/** 業務パラメータ管理一意照会明細 */
	private static final String EZM0321A010_LIST = "EZM0321A010CBSMsg1List";
	/** オプションサービス契約一意照会明細 */
	private static final String EKK0351A010_LIST = "EKK0351A010CBSMsg1List";

	/** 現サービス契約情報一覧照会（ネット）明細 */
	private static final String EKK0081B506CBSMSG1LIST_06 = "EKK0081B506CBSMsg1List";
	/** サービス契約番号 */
	private static final String SVC_KEI_NO_06 = "svc_kei_no";
	/** 世代登録年月日時分秒 */
	private static final String GENE_ADD_DTM_06 = "gene_add_dtm";
	/** サービス契約ステータス */
	private static final String SVC_KEI_STAT_06 = "svc_kei_stat";
	/** サービスコード */
	private static final String SVC_CD_06 = "svc_cd";
	/** 申込明細番号 */
	private static final String MSKM_DTL_NO_06 = "mskm_dtl_no";
	/** 整理番号 */
	private static final String SEIRI_NO_06 = "seiri_no";
	/** 料金グループコード */
	private static final String PRC_GRP_CD_06 = "prc_grp_cd";
	/** 料金コースコード */
	private static final String PCRS_CD_06 = "pcrs_cd";
	/** 料金プランコード */
	private static final String PPLAN_CD_06 = "pplan_cd";
	/** 提供方式契約番号 */
	private static final String TK_HOSHIKI_KEI_NO_06 = "tk_hoshiki_kei_no";
	/** 加入契約支払方式コード */
	private static final String KANYU_KEI_PAY_HOSHIKI_CD_06 = "kanyu_kei_pay_hoshiki_cd";
	/** サービス開始年月日 */
	private static final String SVC_STA_YMD_06 = "svc_sta_ymd";
	/** 最終更新年月日時分秒 */
	private static final String LAST_UPD_DTM_06 = "last_upd_dtm";
	/** サービス課金開始年月日 */
	private static final String SVC_CHRG_STAYMD = "svc_chrg_staymd";
	/** 世代登録年月日時分秒＜ネット＞ */
	private static final String GENE_ADD_DTM_NET_06 = "gene_add_dtm_net";
	/** 世代登録年月日時分秒＜モバイル＞ */
	private static final String GENE_ADD_DTM_MOBILE_06 = "gene_add_dtm_mobile";
	/** 事業者出荷課金連携年月日＜モバイル＞ */
	private static final String JGS_SHKA_CHRG_RNKI_YMD_06 = "jgs_shka_chrg_rnki_ymd";
	/** 世代登録年月日時分秒＜ＡＤＳＬ＞ */
	private static final String GENE_ADD_DTM_ADSL_06 = "gene_add_dtm_adsl";
	/** 世代登録年月日時分秒＜ホスティング＞ */
	private static final String GENE_ADD_DTM_HOSTING_06 = "gene_add_dtm_hosting";

	/** 現請求契約一覧照会明細 */
	private static final String EKK0491B504CBSMSG1LIST_23 = "EKK0491B504CBSMsg1List";
	/** 請求契約番号 */
	private static final String SEIKY_KEI_NO_23 = "seiky_kei_no";
	/** 世代登録年月日時分秒 */
	private static final String GENE_ADD_DTM_23 = "gene_add_dtm";
	/** 請求契約ステータス */
	private static final String SEIKY_KEI_STAT_23 = "seiky_kei_stat";
	/** 請求方法コード */
	private static final String SEIKY_WAY_CD_23 = "seiky_way_cd";
	/** 次回請求方法コード */
	private static final String NEXT_SEIKY_WAY_DIV_23 = "next_seiky_way_div";
	/** 請求方法番号（口座） */
	private static final String SEIKY_WAY_NO_KOZA_23 = "seiky_way_no_koza";
	/** 請求方法番号（クレジットカード） */
	private static final String SEIKY_WAY_NO_CRECARD_23 = "seiky_way_no_crecard";
	/** 請求書発行要否 */
	private static final String SEIKYUS_HAKKO_YH_23 = "seikyus_hakko_yh";
	/** 送付先住所コード */
	private static final String SOHUS_AD_CD_23 = "sohus_ad_cd";
	/** 送付先郵便番号 */
	private static final String SOHUS_PCD_23 = "sohus_pcd";
	/** 送付先都道府県名 */
	private static final String SOHUS_STATE_NM_23 = "sohus_state_nm";
	/** 送付先市区町村名 */
	private static final String SOHUS_CITY_NM_23 = "sohus_city_nm";
	/** 送付先大字通称名 */
	private static final String SOHUS_OAZTSU_NM_23 = "sohus_oaztsu_nm";
	/** 送付先字丁目名 */
	private static final String SOHUS_AZCHO_NM_23 = "sohus_azcho_nm";
	/** 送付先住所補記・建物名 */
	private static final String SOHUS_ADRTTM_23 = "sohus_adrttm";
	/** 送付先住所補記・部屋番号 */
	private static final String SOHUS_ADRRM_23 = "sohus_adrrm";
	/** 送付先番地号 */
	private static final String SOHUS_BNCHIGO_23 = "sohus_bnchigo";
	/** 送付先電話番号 */
	private static final String SOHUS_TELNO_23 = "sohus_telno";
	/** 最終更新年月日時分秒 */
	private static final String LAST_UPD_DTM_23 = "last_upd_dtm";
	/** 督促ステータス */
	private static final String TOKUSOKU_STAT_23 = "tokusoku_stat";

	/** 現オプションサービス契約情報一覧照会（ネット）明細 */
	private static final String EKK0351B503CBSMSG1LIST_12 = "EKK0351B503CBSMsg1List";
	/** オプションサービス契約番号 */
	private static final String OP_SVC_KEI_NO_12 = "op_svc_kei_no";
	/** 世代登録年月日時分秒 */
	private static final String GENE_ADD_DTM_12 = "gene_add_dtm";
	/** オプションサービス契約ステータス */
	private static final String OP_SVC_KEI_STAT_12 = "op_svc_kei_stat";
	/** オプションサービスコード */
	private static final String OP_SVC_CD_12 = "op_svc_cd";
	/** 料金コースコード */
	private static final String PCRS_CD_12 = "pcrs_cd";
	/** 料金プランコード */
	private static final String PPLAN_CD_12 = "pplan_cd";
	/** サービス契約番号 */
	private static final String SVC_KEI_NO_12 = "svc_kei_no";
	/** サービス契約内訳番号 */
	private static final String SVC_KEI_UCWK_NO_12 = "svc_kei_ucwk_no";
	/** 申込明細番号 */
	private static final String MSKM_DTL_NO_12 = "mskm_dtl_no";
	/** 表示用サービス提供開始年月日 */
	private static final String DSP_SVCTK_STAYMD_12 = "dsp_svctk_staymd";
	/** 最終更新年月日時分秒 */
	private static final String LAST_UPD_DTM_12 = "last_upd_dtm";
	/** 世代登録年月日時分秒＜ＩＳＰ＞ */
	private static final String GENE_ADD_DTM_ISP_12 = "gene_add_dtm_isp";
	/** マルチセッション用認証ＩＤ */
	private static final String MLTISE_NINSHO_ID_12 = "mltise_ninsho_id";
	/** 固定ＩＰアドレス */
	private static final String KOTEI_IP_AD_12 = "kotei_ip_ad";
	/** ネットマスク */
	private static final String NETMASK_12 = "netmask";
	/** 初期ＰＯＰＩＤパスワード */
	private static final String SHK_POP_ID_PWD_12 = "shk_pop_id_pwd";
	/** ＰＯＰＩＤ */
	private static final String POP_ID_12 = "pop_id";
	/** メールアドレス */
	private static final String MLAD_12 = "mlad";
	/** メールアドレス変更年月日 */
	private static final String MLAD_CHGE_YMD_12 = "mlad_chge_ymd";
	/** 容量 */
	private static final String CAPA_12 = "capa";
	/** ＷｅｂＩＤ */
	private static final String WEB_ID_12 = "web_id";
	/** ＵＲＬ（ドメイン） */
	private static final String URL_DOMAIN_12 = "url_domain";
	/** ＵＲＬ（アカウント） */
	private static final String URL_ACCOUNT_12 = "url_account";
	/** メーリングリスト名 */
	private static final String MLLIST_NM_12 = "mllist_nm";
	/** メーリングリスト呼称 */
	private static final String MLLIST_KOSHO_12 = "mllist_kosho";
	/** メーリングリスト公開要否 */
	private static final String MLLIST_KOKAI_YH_12 = "mllist_kokai_yh";
	/** メーリングリスト最大ユーザー数 */
	private static final String MLLIST_MAX_USER_CNT_12 = "mllist_max_user_cnt";
	/** メーリングリスト管理者メールアドレス */
	private static final String MLLIST_KRISHA_MLAD_12 = "mllist_krisha_mlad";
	/** 独自ドメイン名 */
	private static final String DOKUJI_DOMAIN_NM_12 = "dokuji_domain_nm";
	/** ダイヤルアップ接続用認証ＩＤ */
	private static final String DUPCON_NINSHO_ID_12 = "dupcon_ninsho_id";
	/** ＶｏＩＰユーザーＩＤ */
	private static final String VOIP_USER_ID_12 = "voip_user_id";
	/** ＶｏＩＰ電話番号 */
	private static final String VOIP_TELNO_12 = "voip_telno";
	/** 公衆網電話番号 */
	private static final String KOSHUMO_TELNO_12 = "koshumo_telno";
	/** 通話明細公開要否 */
	private static final String TUWA_DTL_KOKAI_YH_12 = "tuwa_dtl_kokai_yh";

	/** 現サブオプションサービス契約情報一覧照会（ネット）明細 */
	private static final String EKK0401B501CBSMSG1LIST_15 = "EKK0401B501CBSMsg1List";
	/** オプションサービス契約番号 */
	private static final String OP_SVC_KEI_NO_15 = "op_svc_kei_no";
	/** サブオプションサービス契約番号 */
	private static final String SBOP_SVC_KEI_NO_15 = "sbop_svc_kei_no";
	/** 世代登録年月日時分秒 */
	private static final String GENE_ADD_DTM_15 = "gene_add_dtm";
	/** サブオプションサービス契約ステータス */
	private static final String SBOP_SVC_KEI_STAT_15 = "sbop_svc_kei_stat";
	/** サブオプションサービスコード */
	private static final String SBOP_SVC_CD_15 = "sbop_svc_cd";
	/** 料金コースコード */
	private static final String PCRS_CD_15 = "pcrs_cd";
	/** 料金プランコード */
	private static final String PPLAN_CD_15 = "pplan_cd";
	/** 申込明細番号 */
	private static final String MSKM_DTL_NO_15 = "mskm_dtl_no";
	/** 最終更新年月日時分秒 */
	private static final String LAST_UPD_DTM_15 = "last_upd_dtm";
	/** 世代登録年月日時分秒＜ＩＳＰ＞ */
	private static final String GENE_ADD_DTM_ISP_15 = "gene_add_dtm_isp";
	/** 追加容量 */
	private static final String ADD_CAPA_15 = "add_capa";
	/** エイリアス */
	private static final String ALIAS_15 = "alias";
	/** エイリアス変更年月日 */
	private static final String ALIAS_CHGE_YMD_15 = "alias_chge_ymd";

	/** IN項目:POPID */
	private static final String IN_PARAM_POP_ID = "pop_id";
	/** DataBean操作種別：項目値設定 */
	private static final String SET = X31CWebConst.DATABEAN_SET_VALUE;

	/** IN項目:メールアドレス */
	private static final String IN_PARAM_MLAD = "in_mlad";
	/** OUT項目:メールアドレス変更回数 */
	private static final String OUT_PARAM_MLAD_CHG_CNT = "out_mlad_chg_cnt";

	/**
	 * コンストラクタ
	 */
	public FUSV0112_FUSV0112OPDBMapper()
	{
	}

	/**
	 * 上りマッピングを行います。
	 *
	 * <br>
	 * @param bean [0]:メールアドレス自動設定ツール連携
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return 送信情報
	 */
	public HashMap<String, Object> setFUSV011201SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		// メールアドレス → メールアドレス
		parentMap.put(KEY_MLAD, bean[0].sendMessageString(FUA028SFConst.POP_ID, X31CWebConst.DATABEAN_GET_VALUE).replace(JFUStrConst.PERCENT,
				JFUStrConst.ATMARK));

		ArrayList<HashMap<String, Object>> arrayList = new ArrayList<HashMap<String, Object>>();
		HashMap<String, Object> detailMap = new HashMap<String, Object>();
		arrayList.add(detailMap);
		parentMap.put(EKK0361B004_LIST, arrayList);

		outputMap.put(SC_TITLE_FUSV011201, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングを行います。
	 *
	 * <br>
	 * @param bean [0]:メールアドレス自動設定ツール連携
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return 送信情報
	 */
	public HashMap<String, Object> setFUSV011202SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		outputMap.put(SC_TITLE_FUSV011202, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングを行います。
	 *
	 * <br>
	 * @param bean [0]:メールアドレス自動設定ツール連携
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return 送信情報
	 */
	public HashMap<String, Object> setFUSV011203SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		outputMap.put(SC_TITLE_FUSV011203, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングを行います。
	 *
	 * <br>
	 * @param bean [0]:メールアドレス自動設定ツール連携
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return 送信情報
	 */
	public HashMap<String, Object> setFUSV011204SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		outputMap.put(SC_TITLE_FUSV011204, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングを行います。
	 * 
	 * <br>
	 * @param outputMap 上りマッピング情報マップ
	 * @param popId POPID
	 * @return
	 */
	public void setFUSV011201CC(HashMap<String, Object> outputMap, String popId)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// IN項目:POPID 
		parentMap.put(IN_PARAM_POP_ID, popId);

		outputMap.put(CC_TITLE_FUSV011201, parentMap);
	}

	/**
	 * 上りマッピングを行います。
	 * 
	 * <br>
	 * @param bean
	 * @param outputMap
	 */
	public void setFUSV011202CC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// メールアドレス
		parentMap.put(IN_PARAM_MLAD, bean[0].sendMessageString(FUA028SFConst.POP_ID, X31CWebConst.DATABEAN_GET_VALUE).replace(JFUStrConst.PERCENT,
				JFUStrConst.ATMARK));

		outputMap.put(CC_TITLE_FUSV011202, parentMap);
	}

	/**
	 * 下りマッピングを行います。
	 * <br>
	 * @param bean メールアドレス自動設定ツール連携
	 * @param outputMap
	 * @return 受信情報
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess getFUSV011201SC(X31SDataBeanAccess bean, HashMap<String, Object> outputMap)
	{

		HashMap<String, Object> parentMap = null;
		if (outputMap.containsKey(SC_TITLE_FUSV011201))
		{
			parentMap = (HashMap<String, Object>)outputMap.get(SC_TITLE_FUSV011201);
		}

		if (null != parentMap && parentMap.containsKey(EKK0361B004_LIST))
		{
			ArrayList<HashMap<String, Object>> childList = (ArrayList<HashMap<String, Object>>)parentMap.get(EKK0361B004_LIST);

			for (int i = 0; i < childList.size(); i++)
			{
				HashMap<String, Object> childMap = childList.get(i);

				if (childMap == null)
				{
					continue;
				}

				// メールアドレス自動設定ツール連携.オプションサービス契約番号 ←
				// メールアドレス自動設定ツール連携ＳＣ.メールアドレス自動設定ツール連携契約情報取得一覧照会明細.オプションサービス契約番号
				bean.sendMessageString(FUA028SFConst.OP_SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, getMapValueOrEmpty(childMap, OP_SVC_KEI_NO));

				// メールアドレス自動設定ツール連携.世代登録年月日時分秒 ←
				// メールアドレス自動設定ツール連携ＳＣ.メールアドレス自動設定ツール連携契約情報取得一覧照会明細.世代登録年月日時分秒
				bean.sendMessageString(FUA028SFConst.GENE_ADD_DTM, X31CWebConst.DATABEAN_SET_VALUE, getMapValueOrEmpty(childMap, GENE_ADD_DTM));

				// メールアドレス自動設定ツール連携.POPID ←
				// メールアドレス自動設定ツール連携ＳＣ.メールアドレス自動設定ツール連携契約情報取得一覧照会明細.POPID
				bean.sendMessageString(FUA028SFConst.POP_ID, X31CWebConst.DATABEAN_SET_VALUE, getMapValueOrEmpty(childMap, POP_ID));

				// メールアドレス自動設定ツール連携.メールアドレス変更年月日 ←
				// メールアドレス自動設定ツール連携ＳＣ.メールアドレス自動設定ツール連携契約情報取得一覧照会明細.メールアドレス変更年月日
				bean.sendMessageString(FUA028SFConst.MLAD_CHGE_YMD, X31CWebConst.DATABEAN_SET_VALUE, getMapValueOrEmpty(childMap, MLAD_CHGE_YMD));

				// メールアドレス自動設定ツール連携.更新年月日時分秒 ←
				// メールアドレス自動設定ツール連携ＳＣ.メールアドレス自動設定ツール連携契約情報取得一覧照会明細.更新年月日時分秒(オプションサービス契約)
				bean.sendMessageString(FUA028SFConst.UPDDTM, X31CWebConst.DATABEAN_SET_VALUE, getMapValueOrEmpty(childMap, KK0351_LAST_UPD_DTM));

				// メールアドレス自動設定ツール連携.サービス契約番号 ←
				// メールアドレス自動設定ツール連携ＳＣ.メールアドレス自動設定ツール連携契約情報取得一覧照会明細.サービス契約番号
				bean.sendMessageString(FUA028SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, getMapValueOrEmpty(childMap, SVC_KEI_NO));

				// メールアドレス自動設定ツール連携.サービス契約内訳番号 ←
				// メールアドレス自動設定ツール連携ＳＣ.メールアドレス自動設定ツール連携契約情報取得一覧照会明細.サービス契約内訳番号
				bean.sendMessageString(FUA028SFConst.SVC_KEI_UCWK_NO, X31CWebConst.DATABEAN_SET_VALUE, getMapValueOrEmpty(childMap, SVC_KEI_UCWK_NO));

				// メールアドレス自動設定ツール連携.SYSID ←
				// メールアドレス自動設定ツール連携ＳＣ.メールアドレス自動設定ツール連携契約情報取得一覧照会明細.SYSID
				bean.sendMessageString(FUA028SFConst.SYSID, X31CWebConst.DATABEAN_SET_VALUE, getMapValueOrEmpty(childMap, SYSID));

				// メールアドレス自動設定ツール連携.サブオプションサービス契約番号 ←
				// サブオプションサービス契約<ISP>一意照会ＳＣ.サブオプションサービス契約<ISP>一意照会明細.サブオプションサービス契約番号
				bean.sendMessageString(FUA028SFConst.SBOP_SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, getMapValueOrEmpty(childMap, SBOP_SVC_KEI_NO));

				String popid = getMapValueOrEmpty(childMap, POP_ID);
				String alias = getMapValueOrEmpty(childMap, ALIAS);
				if (!JFUWebCommon.isNull(popid) && !JFUWebCommon.isNull(alias))
				{
					String[] popidArray = popid.split(JFUStrConst.PERCENT);
					if (popidArray != null && popidArray.length == 2)
					{
						// メールアドレス自動設定ツール連携.エイリアス ←
						// メールアドレス自動設定ツール連携ＳＣ.メールアドレス自動設定ツール連携契約情報取得一覧照会明細.エイリアス
						bean.sendMessageString(FUA028SFConst.ALIAS, X31CWebConst.DATABEAN_SET_VALUE, alias + JFUStrConst.ATMARK + popidArray[1]);
					}
				}

				// メールアドレス自動設定ツール連携.最終更新年月日時分秒 ←
				// メールアドレス自動設定ツール連携ＳＣ.メールアドレス自動設定ツール連携契約情報取得一覧照会明細.更新年月日時分秒(サブオプションサービス契約<ISP>)
				bean
						.sendMessageString(FUA028SFConst.LAST_UPD_DTM, X31CWebConst.DATABEAN_SET_VALUE, getMapValueOrEmpty(childMap,
								KK0401_LAST_UPD_DTM));
			}
		}
		return bean;
	}

	/**
	 * 下りマッピングを行います。
	 * <br>
	 * @param bean メールアドレス自動設定ツール連携
	 * @param outputMap
	 * @return 受信情報
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess getFUSV011202SC(X31SDataBeanAccess bean, HashMap<String, Object> outputMap)
	{

		HashMap<String, Object> parentMap = null;
		if (outputMap.containsKey(SC_TITLE_FUSV011202))
		{
			parentMap = (HashMap<String, Object>)outputMap.get(SC_TITLE_FUSV011202);
		}

		if (null != parentMap && parentMap.containsKey(ECK0011A010_LIST))
		{
			ArrayList<HashMap<String, Object>> childList = (ArrayList<HashMap<String, Object>>)parentMap.get(ECK0011A010_LIST);

			for (int i = 0; i < childList.size(); i++)
			{
				HashMap<String, Object> childMap = childList.get(i);

				if (childMap.containsKey(CUST_NM))
				{
					// メールアドレス自動設定ツール連携.お客様名 ←
					// サブオプションサービス契約<ISP>一意照会ＳＣ.お客様一意照会明細.お客様名
					bean.sendMessageString(FUA028SFConst.CUST_NM, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get(CUST_NM));
				}
			}
		}
		return bean;
	}

	/**
	 * 下りマッピングを行います。
	 * <br>
	 * @param bean メールアドレス自動設定ツール連携
	 * @param outputMap
	 * @return 受信情報
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess getFUSV011203SC(X31SDataBeanAccess bean, HashMap<String, Object> outputMap)
	{

		HashMap<String, Object> parentMap = null;
		if (outputMap.containsKey(SC_TITLE_FUSV011203))
		{
			parentMap = (HashMap<String, Object>)outputMap.get(SC_TITLE_FUSV011203);
		}

		if (null != parentMap && parentMap.containsKey(EZM0321A010_LIST))
		{
			ArrayList<HashMap<String, Object>> childList = (ArrayList<HashMap<String, Object>>)parentMap.get(EZM0321A010_LIST);

			for (int i = 0; i < childList.size(); i++)
			{
				HashMap<String, Object> childMap = childList.get(i);
				if (childMap == null)
				{
					continue;
				}

				if (childMap.containsKey(WORK_PARAM_SETTE_VALUE))
				{
					// メールアドレス自動設定ツール連携.メールアドレスエイジング期間 ←
					// 業務パラメータ管理一意照会ＳＣ.業務パラメータ管理一意照会明細.メールアドレスエイジング期間
					bean.sendMessageString(FUA028SFConst.MLAD_AGING_PRD, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
							.get(WORK_PARAM_SETTE_VALUE));
				}
			}
		}
		return bean;
	}

	/**
	 * 下りマッピングを行います。
	 * <br>
	 * @param bean メールアドレス自動設定ツール連携
	 * @param outputMap
	 * @return 受信情報
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess getFUSV011204SC(X31SDataBeanAccess bean, HashMap<String, Object> outputMap)
	{

		HashMap<String, Object> parentMap = null;
		if (outputMap.containsKey(SC_TITLE_FUSV011204))
		{
			parentMap = (HashMap<String, Object>)outputMap.get(SC_TITLE_FUSV011204);
		}

		if (null != parentMap && parentMap.containsKey(EKK0351A010_LIST))
		{
			ArrayList<HashMap<String, Object>> childList = (ArrayList<HashMap<String, Object>>)parentMap.get(EKK0351A010_LIST);

			for (int i = 0; i < childList.size(); i++)
			{
				HashMap<String, Object> childMap = childList.get(i);

				if (childMap == null)
				{
					continue;
				}
				if (childMap.containsKey(DSP_SVCTK_STAYMD))
				{
					// メールアドレス自動設定ツール連携.メールアドレスエイジング期間 ←
					// オプションサービス契約一意照会ＳＣ.オプションサービス契約一意照会明細.表示用サービス提供開始年月日
					bean.sendMessageString(FUA028SFConst.DSP_SVCTK_STAYMD, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get(DSP_SVCTK_STAYMD));
				}
				if (childMap.containsKey(OP_SVC_KEI_STAT))
				{
					// メールアドレス自動設定ツール連携.メールアドレスエイジング期間 ←
					// オプションサービス契約一意照会ＳＣ.オプションサービス契約一意照会明細.オプションサービス契約ステータス
					bean.sendMessageString(FUA028SFConst.OP_SVC_KEI_STAT, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get(OP_SVC_KEI_STAT));
				}
			}
		}
		return bean;
	}

	/**
	 * 下りマッピングを行います。
	 * <br>
	 * @param bean 共有フォームBean
	 * @param outputMap サービス実行結果
	 * @return 受信情報
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess getFUSV011201CC(X31SDataBeanAccess bean, HashMap<String, Object> outputMap)
	{

		JFUWebCommon.createAndGetDataBeanTypeByPath(bean, GEN_CUST_KEI_INFO);

		HashMap<String, Object> parentMap = null;
		if (outputMap.containsKey(CC_TITLE_FUSV011201))
		{
			parentMap = (HashMap<String, Object>)outputMap.get(CC_TITLE_FUSV011201);
		}

		// ●現サービス契約情報一覧照会（ネット）
		if (parentMap != null && parentMap.containsKey(EKK0081B506CBSMSG1LIST_06))
		{
			ArrayList childList = (ArrayList)parentMap.get(EKK0081B506CBSMSG1LIST_06);
			if (childList != null && !childList.isEmpty())
			{
				HashMap<String, String> childMap = (HashMap)childList.get(0);
				X31SDataBeanAccess subBean = JFUWebCommon.createAndGetDataBeanTypeByPath(bean, SVC_KEI_INFO);
				subBean.sendMessageString(CommonInfoCFConst.SVC_KEI_NO_23, SET, childMap.get(SVC_KEI_NO_06));
				subBean.sendMessageString(CommonInfoCFConst.GENE_ADD_DTM_23, SET, childMap.get(GENE_ADD_DTM_06));
				subBean.sendMessageString(CommonInfoCFConst.SVC_KEI_STAT_23, SET, childMap.get(SVC_KEI_STAT_06));
				subBean.sendMessageString(CommonInfoCFConst.SVC_CD_23, SET, childMap.get(SVC_CD_06));
				subBean.sendMessageString(CommonInfoCFConst.MSKM_DTL_NO_23, SET, childMap.get(MSKM_DTL_NO_06));
				subBean.sendMessageString(CommonInfoCFConst.SEIRI_NO_23, SET, childMap.get(SEIRI_NO_06));
				subBean.sendMessageString(CommonInfoCFConst.PRC_GRP_CD_23, SET, childMap.get(PRC_GRP_CD_06));
				subBean.sendMessageString(CommonInfoCFConst.PCRS_CD_23, SET, childMap.get(PCRS_CD_06));
				subBean.sendMessageString(CommonInfoCFConst.PPLAN_CD_23, SET, childMap.get(PPLAN_CD_06));
				subBean.sendMessageString(CommonInfoCFConst.TK_HOSHIKI_KEI_NO_23, SET, childMap.get(TK_HOSHIKI_KEI_NO_06));
				subBean.sendMessageString(CommonInfoCFConst.KANYU_KEI_PAY_HOSHIKI_CD_23, SET, childMap.get(KANYU_KEI_PAY_HOSHIKI_CD_06));
				subBean.sendMessageString(CommonInfoCFConst.SVC_STA_YMD_23, SET, childMap.get(SVC_STA_YMD_06));
				subBean.sendMessageString(CommonInfoCFConst.LAST_UPD_DTM_23, SET, childMap.get(LAST_UPD_DTM_06));
				subBean.sendMessageString(CommonInfoCFConst.SVC_CHRG_STAYMD_23, SET, childMap.get(SVC_CHRG_STAYMD));
				subBean.sendMessageString(CommonInfoCFConst.GENE_ADD_DTM_NET_23, SET, childMap.get(GENE_ADD_DTM_NET_06));
				subBean.sendMessageString(CommonInfoCFConst.GENE_ADD_DTM_MOBILE_23, SET, childMap.get(GENE_ADD_DTM_MOBILE_06));
				subBean.sendMessageString(CommonInfoCFConst.JGS_SHKA_CHRG_RNKI_YMD_23, SET, childMap.get(JGS_SHKA_CHRG_RNKI_YMD_06));
				subBean.sendMessageString(CommonInfoCFConst.GENE_ADD_DTM_ADSL_23, SET, childMap.get(GENE_ADD_DTM_ADSL_06));
				subBean.sendMessageString(CommonInfoCFConst.GENE_ADD_DTM_HOSTING_23, SET, childMap.get(GENE_ADD_DTM_HOSTING_06));
			}
		}

		// ●現請求契約一覧照会
		if (parentMap != null && parentMap.containsKey(EKK0491B504CBSMSG1LIST_23))
		{
			ArrayList childList = (ArrayList)parentMap.get(EKK0491B504CBSMSG1LIST_23);
			if (childList != null)
			{
				for (int i = 0; i < childList.size(); i++)
				{
					HashMap<String, String> childMap = (HashMap)childList.get(i);
					X31SDataBeanAccess subBean = JFUWebCommon.createAndGetDataBeanTypeByPath(bean, SEIKY_KEI_INFO + SEP_N_LAST, i);
					subBean.sendMessageString(CommonInfoCFConst.SEIKY_KEI_NO_32, SET, childMap.get(SEIKY_KEI_NO_23));
					subBean.sendMessageString(CommonInfoCFConst.GENE_ADD_DTM_32, SET, childMap.get(GENE_ADD_DTM_23));
					subBean.sendMessageString(CommonInfoCFConst.SEIKY_KEI_STAT_32, SET, childMap.get(SEIKY_KEI_STAT_23));
					subBean.sendMessageString(CommonInfoCFConst.SEIKY_WAY_CD_32, SET, childMap.get(SEIKY_WAY_CD_23));
					subBean.sendMessageString(CommonInfoCFConst.NEXT_SEIKY_WAY_DIV_32, SET, childMap.get(NEXT_SEIKY_WAY_DIV_23));
					subBean.sendMessageString(CommonInfoCFConst.SEIKY_WAY_NO_KOZA_32, SET, childMap.get(SEIKY_WAY_NO_KOZA_23));
					subBean.sendMessageString(CommonInfoCFConst.SEIKY_WAY_NO_CRECARD_32, SET, childMap.get(SEIKY_WAY_NO_CRECARD_23));
					subBean.sendMessageString(CommonInfoCFConst.SEIKYUS_HAKKO_YH_32, SET, childMap.get(SEIKYUS_HAKKO_YH_23));
					subBean.sendMessageString(CommonInfoCFConst.SOHUS_AD_CD_32, SET, childMap.get(SOHUS_AD_CD_23));
					subBean.sendMessageString(CommonInfoCFConst.SOHUS_PCD_32, SET, childMap.get(SOHUS_PCD_23));
					subBean.sendMessageString(CommonInfoCFConst.SOHUS_STATE_NM_32, SET, childMap.get(SOHUS_STATE_NM_23));
					subBean.sendMessageString(CommonInfoCFConst.SOHUS_CITY_NM_32, SET, childMap.get(SOHUS_CITY_NM_23));
					subBean.sendMessageString(CommonInfoCFConst.SOHUS_OAZTSU_NM_32, SET, childMap.get(SOHUS_OAZTSU_NM_23));
					subBean.sendMessageString(CommonInfoCFConst.SOHUS_AZCHO_NM_32, SET, childMap.get(SOHUS_AZCHO_NM_23));
					subBean.sendMessageString(CommonInfoCFConst.SOHUS_ADRTTM_32, SET, childMap.get(SOHUS_ADRTTM_23));
					subBean.sendMessageString(CommonInfoCFConst.SOHUS_ADRRM_32, SET, childMap.get(SOHUS_ADRRM_23));
					subBean.sendMessageString(CommonInfoCFConst.SOHUS_BNCHIGO_32, SET, childMap.get(SOHUS_BNCHIGO_23));
					subBean.sendMessageString(CommonInfoCFConst.SOHUS_TELNO_32, SET, childMap.get(SOHUS_TELNO_23));
					subBean.sendMessageString(CommonInfoCFConst.LAST_UPD_DTM_32, SET, childMap.get(LAST_UPD_DTM_23));
					subBean.sendMessageString(CommonInfoCFConst.TOKUSOKU_STAT_32, SET, childMap.get(TOKUSOKU_STAT_23));
				}
			}
		}

		// ●現オプションサービス契約情報一覧照会（ネット）
		if (parentMap != null && parentMap.containsKey(EKK0351B503CBSMSG1LIST_12))
		{
			ArrayList childList = (ArrayList)parentMap.get(EKK0351B503CBSMSG1LIST_12);
			if (childList != null)
			{
				for (int i = 0; i < childList.size(); i++)
				{
					HashMap<String, String> childMap = (HashMap)childList.get(i);
					X31SDataBeanAccess subBean = JFUWebCommon.createAndGetDataBeanTypeByPath(bean, OP_SVC_KEI_INFO + SEP_N_LAST, i);
					subBean.sendMessageString(CommonInfoCFConst.OP_SVC_KEI_NO_28, SET, childMap.get(OP_SVC_KEI_NO_12));
					subBean.sendMessageString(CommonInfoCFConst.GENE_ADD_DTM_28, SET, childMap.get(GENE_ADD_DTM_12));
					subBean.sendMessageString(CommonInfoCFConst.OP_SVC_KEI_STAT_28, SET, childMap.get(OP_SVC_KEI_STAT_12));
					subBean.sendMessageString(CommonInfoCFConst.OP_SVC_CD_28, SET, childMap.get(OP_SVC_CD_12));
					subBean.sendMessageString(CommonInfoCFConst.PCRS_CD_28, SET, childMap.get(PCRS_CD_12));
					subBean.sendMessageString(CommonInfoCFConst.PPLAN_CD_28, SET, childMap.get(PPLAN_CD_12));
					subBean.sendMessageString(CommonInfoCFConst.SVC_KEI_NO_28, SET, childMap.get(SVC_KEI_NO_12));
					subBean.sendMessageString(CommonInfoCFConst.SVC_KEI_UCWK_NO_28, SET, childMap.get(SVC_KEI_UCWK_NO_12));
					subBean.sendMessageString(CommonInfoCFConst.MSKM_DTL_NO_28, SET, childMap.get(MSKM_DTL_NO_12));
					subBean.sendMessageString(CommonInfoCFConst.DSP_SVCTK_STAYMD_28, SET, childMap.get(DSP_SVCTK_STAYMD_12));
					subBean.sendMessageString(CommonInfoCFConst.LAST_UPD_DTM_28, SET, childMap.get(LAST_UPD_DTM_12));
					subBean.sendMessageString(CommonInfoCFConst.GENE_ADD_DTM_ISP_28, SET, childMap.get(GENE_ADD_DTM_ISP_12));
					subBean.sendMessageString(CommonInfoCFConst.MLTISE_NINSHO_ID_28, SET, childMap.get(MLTISE_NINSHO_ID_12));
					subBean.sendMessageString(CommonInfoCFConst.KOTEI_IP_AD_28, SET, childMap.get(KOTEI_IP_AD_12));
					subBean.sendMessageString(CommonInfoCFConst.NETMASK_28, SET, childMap.get(NETMASK_12));
					subBean.sendMessageString(CommonInfoCFConst.SHK_POP_ID_PWD_28, SET, childMap.get(SHK_POP_ID_PWD_12));
					subBean.sendMessageString(CommonInfoCFConst.POP_ID_28, SET, childMap.get(POP_ID_12));
					subBean.sendMessageString(CommonInfoCFConst.MLAD_28, SET, childMap.get(MLAD_12));
					subBean.sendMessageString(CommonInfoCFConst.MLAD_CHGE_YMD_28, SET, childMap.get(MLAD_CHGE_YMD_12));
					subBean.sendMessageString(CommonInfoCFConst.CAPA_28, SET, childMap.get(CAPA_12));
					subBean.sendMessageString(CommonInfoCFConst.WEB_ID_28, SET, childMap.get(WEB_ID_12));
					subBean.sendMessageString(CommonInfoCFConst.URL_DOMAIN_28, SET, childMap.get(URL_DOMAIN_12));
					subBean.sendMessageString(CommonInfoCFConst.URL_ACCOUNT_28, SET, childMap.get(URL_ACCOUNT_12));
					subBean.sendMessageString(CommonInfoCFConst.MLLIST_NM_28, SET, childMap.get(MLLIST_NM_12));
					subBean.sendMessageString(CommonInfoCFConst.MLLIST_KOSHO_28, SET, childMap.get(MLLIST_KOSHO_12));
					subBean.sendMessageString(CommonInfoCFConst.MLLIST_KOKAI_YH_28, SET, childMap.get(MLLIST_KOKAI_YH_12));
					subBean.sendMessageString(CommonInfoCFConst.MLLIST_MAX_USER_CNT_28, SET, childMap.get(MLLIST_MAX_USER_CNT_12));
					subBean.sendMessageString(CommonInfoCFConst.MLLIST_KRISHA_MLAD_28, SET, childMap.get(MLLIST_KRISHA_MLAD_12));
					subBean.sendMessageString(CommonInfoCFConst.DOKUJI_DOMAIN_NM_28, SET, childMap.get(DOKUJI_DOMAIN_NM_12));
					subBean.sendMessageString(CommonInfoCFConst.DUPCON_NINSHO_ID_28, SET, childMap.get(DUPCON_NINSHO_ID_12));
					subBean.sendMessageString(CommonInfoCFConst.VOIP_USER_ID_28, SET, childMap.get(VOIP_USER_ID_12));
					subBean.sendMessageString(CommonInfoCFConst.VOIP_TELNO_28, SET, childMap.get(VOIP_TELNO_12));
					subBean.sendMessageString(CommonInfoCFConst.KOSHUMO_TELNO_28, SET, childMap.get(KOSHUMO_TELNO_12));
					subBean.sendMessageString(CommonInfoCFConst.TUWA_DTL_KOKAI_YH_28, SET, childMap.get(TUWA_DTL_KOKAI_YH_12));
				}
			}
		}

		// ●現サブオプションサービス契約情報一覧照会（ネット）
		if (parentMap != null && parentMap.containsKey(EKK0401B501CBSMSG1LIST_15))
		{
			ArrayList childList = (ArrayList)parentMap.get(EKK0401B501CBSMSG1LIST_15);
			if (childList != null)
			{
				for (int i = 0; i < childList.size(); i++)
				{
					HashMap<String, String> childMap = (HashMap)childList.get(i);
					X31SDataBeanAccess subBean = JFUWebCommon.createAndGetDataBeanTypeByPath(bean, SBOP_SVC_KEI_INFO + SEP_N_LAST, i);
					subBean.sendMessageString(CommonInfoCFConst.OP_SVC_KEI_NO_29, SET, childMap.get(OP_SVC_KEI_NO_15));
					subBean.sendMessageString(CommonInfoCFConst.SBOP_SVC_KEI_NO_29, SET, childMap.get(SBOP_SVC_KEI_NO_15));
					subBean.sendMessageString(CommonInfoCFConst.GENE_ADD_DTM_29, SET, childMap.get(GENE_ADD_DTM_15));
					subBean.sendMessageString(CommonInfoCFConst.SBOP_SVC_KEI_STAT_29, SET, childMap.get(SBOP_SVC_KEI_STAT_15));
					subBean.sendMessageString(CommonInfoCFConst.SBOP_SVC_CD_29, SET, childMap.get(SBOP_SVC_CD_15));
					subBean.sendMessageString(CommonInfoCFConst.PCRS_CD_29, SET, childMap.get(PCRS_CD_15));
					subBean.sendMessageString(CommonInfoCFConst.PPLAN_CD_29, SET, childMap.get(PPLAN_CD_15));
					subBean.sendMessageString(CommonInfoCFConst.MSKM_DTL_NO_29, SET, childMap.get(MSKM_DTL_NO_15));
					subBean.sendMessageString(CommonInfoCFConst.LAST_UPD_DTM_29, SET, childMap.get(LAST_UPD_DTM_15));
					subBean.sendMessageString(CommonInfoCFConst.GENE_ADD_DTM_ISP_29, SET, childMap.get(GENE_ADD_DTM_ISP_15));
					subBean.sendMessageString(CommonInfoCFConst.ADD_CAPA_29, SET, childMap.get(ADD_CAPA_15));
					subBean.sendMessageString(CommonInfoCFConst.ALIAS_29, SET, childMap.get(ALIAS_15));
					subBean.sendMessageString(CommonInfoCFConst.ALIAS_CHGE_YMD_29, SET, childMap.get(ALIAS_CHGE_YMD_15));
				}
			}
		}
		return bean;
	}

	/**
	 * 下りマッピング
	 * （2.メールアドレス変更回数取得CC - メールアドレス変更回数）
	 * <br>
	 * @param bean メールアドレス変更申込
	 * @param outputMap
	 * @return X31SDataBeanAccess
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess getFUSV011202CC(X31SDataBeanAccess bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey(CC_TITLE_FUSV011202))
		{
			parentMap = (HashMap)outputMap.get(CC_TITLE_FUSV011202);
		}

		if (null != parentMap && parentMap.containsKey(OUT_PARAM_MLAD_CHG_CNT))
		{
			// メールアドレス変更回数
			bean.sendMessageString(FUA028SFConst.MLAD_CHG_CNT, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get(OUT_PARAM_MLAD_CHG_CNT));
		}
		return bean;
	}

	/**
	 * 項目値取得処理を行ないます。
	 *
	 * <br>
	 * @param map 項目情報
	 * @param key 項目値取得キー
	 * @return 項目値 マップ項目値がnullの場合は空文字を返却
	 */
	private static String getMapValueOrEmpty(HashMap<String, Object> map, String key)
	{
		return !map.containsKey(key) ? null : (String)map.get(key);
	}
}