/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：eoモバイルWiMAX申込入力画面
*   ソースファイル名：FUW00161SFLogic.java
*   作成者          ：富士通
*   日付            ：2013年02月01日
*＜機能概要＞
*   eoモバイルWiMAX申込画面処理用部品です。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v5.00       2013/02/01   FJ)岡井     【ANK-1467-00-00】新規作成
*   v5.01       2013/03/01   FJ)藤原     【IT1-2013-0000347】対応
*   v5.02       2013/03/12   FJ)大村     【白ロム引継対応】取扱コード削除
*   v5.03       2013/03/22   FJ)藤原     【No.464】白ロム料金シミュレーション注記文言対応
*   v5.04       2013/03/31   FJ)大村     【白ロム引継対応A】システム日付設定
*   v5.05       2013/04/09	 FJ)大塚     【No175】住所チェック対応
*   v5.06       2013/04/06   FJ)楠本     【No.350】生年月日未成年チェック対応
*   v5.07       2013/04/28   FJ)岡井     【内部障害】追加契約でメールアドレスなし対応
*   v5.08       2013/05/28   FJ)大村     【No.773】白ロムエラー文言
*   v5.09       2013/11/20   FJ)文元     【QA-2013-0007957】申込断面のモバイルコース名が未設定である不具合改修
*   v8.00       2014/03/14   FJ）西山    【ANK-1962-00-00】関電CRMに向けた取り組み対応
*   V9.00       2014/07/10   FJ) 中谷    【OM-2014-0002525】支払方法変更のエラーメッセージの改修
*   
**********************************************************************/
package eo.web.webview.FUW00161SF;

import static com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG;

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.fujitsu.futurity.web.x00.JCCBusinessException;
import com.fujitsu.futurity.web.x00.JCCWebServiceException;
import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;
import com.fujitsu.futurity.web.x31.X31CMessageResult.X31CMessageMoreInfo;

import eo.common.constant.JFUStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JZMCreditcardValid;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.FUW00115SF.FUW00115SFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JFUScreenConst;
import eo.web.webview.common.JFUWebCommon;
import eo.web.webview.mapping.FUSV0264_FUSV0264OPDBMapper;
import eo.web.webview.mapping.FUSV0266_FUSV0266OPDBMapper;

/**
 *  eoモバイルWiMAX申込入力画面のビューロジッククラスです。<p>
 * <BR>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class FUW00161SFLogic extends JCCWebBusinessLogic
{

	// ■サービスID
	/** サービスID：FUSV0264 */
	private static final String USECASE_ID_FUSV0264 = "FUSV0264";
	/** サービスID：FUSV0266 */
	private static final String USECASE_ID_FUSV0266 = "FUSV0266";

	// ■各コード
	/** 申込区分：新規申込 */
	private static final String MSKM_DIV_0 = "0";
	/** 申込区分：追加申込 */
	private static final String MSKM_DIV_1 = "1";
	/** クレジットカード名義人種別：契約者と同じ */
	private static final String CRE_MEIGI_SBT_0 = "0";
	/** 料金シミュレーション部品の初期化を表す値 **/
	private static final String PRC_INIT_CD = "9";
	/** 汎用コード：0 */
	private static final String CODE_0 = "0";
	/** 汎用コード：1 */
	private static final String CODE_1 = "1";

	// 【No.773】白ロムエラー文言 >>>
	/** 督促ステータスの閾値 */
	private static final String THRESHOLD_TOKUSOKU_STAT = "THRESHOLD_TOKUSOKU_STAT";
	/** エラー表示用項目ID */
	private static final String PAYMENT_METHOD = "add_pay_way";
	// 【No.773】白ロムエラー文言 <<<E

	// ■エラーメッセージ
	/** エラー表示用文 */
	private static final String[] CRE_CARD_ERR_MSG = { "クレジットカード番号" };
	/** エラー表示用項目ID */
	private static final String CRECARD_ITEM_ID = "credit_card_num";

	// 【No.773】白ロムエラー文言 >>>
	/** エラー表示用定数 */
	private static final String ERR_CD_EKF0660_KW = "EKF0660-KW";
	// 【No.773】白ロムエラー文言 <<<E

	// ■住所検索
	/** 郵便番号(前) */
	private static final String MAP_KEY_PCD_1 = "pcd_1";
	/** 郵便番号(後) */
	private static final String MAP_KEY_PCD_2 = "pcd_2";

	// ■定義関係
	/** 定義取得パス：クレジットカード関係 */
	private static final String PATH_CRE_CARD_YEAR = "DISPSETTING/SETTING[@screenId='FUW00161']/DISPTEXT[@groupid='CRE_CARD']";
	/** 定義取得パス：契約種別 */
	private static final String PATH_KEI_SBT = "DISPSETTING/SETTING[@screenId='FUW00161']/DISPTEXT[@groupid='KEI_SBT']";
	/** 定義取得パス：WIMAX(白ロム)のモバイルコース名 */
	private static final String MOBILE_SERVICE_NAME = "DISPSETTING/SETTING[@screenId='FUW00161']/DISPTEXT[@groupid='MOBILE_SERVICE_NAME']";
	/** 属性名 */
	private static final String QUERY_ATTR_NAME = "id";
	/** ID：クレジットカード有効期限(年)期間 */
	private static final String CRE_CARD_YEAR = "cre_card_year";

	// ■形式・変換
	/** 数値形式：クレジットカード有効期限(月) */
	private static final String FORMAT_CRE_MONTH = "%02d";
	//【障害番号：IT1-2013-0000347】対応 2012/03/01 Fujiwara Add Start
	/** 年月日(年)の長さ：4 */
	private static final int YYYYMMDD_LENGTH_YEAR = 4;
	/** 年月日(月)の長さ：6 */
	private static final int YYYYMMDD_LENGTH_MONTH = 6;
	/** 年月日(日)の長さ：8 */
	private static final int YYYYMMDD_LENGTH_DAY = 8;
	/** 郵便番号の長さ：7 */
	private static final int PCD_LENGTH = 7;
	/** 郵便番号（上）の長さ：7 */
	private static final int PCD1_LENGTH = 3;
	//【障害番号：IT1-2013-0000347】対応 2012/03/01 Fujiwara Add End

	// ■データBean機能処理
	/** SET */
	private static final String SET = X31CWebConst.DATABEAN_SET_VALUE;
	/** GET */
	private static final String GET = X31CWebConst.DATABEAN_GET_VALUE;
	/** ADD */
	private static final String ADD = X31CWebConst.DATABEAN_ADD_VALUE;

	// ■SC・CC名
	/** FUSV026601CC */
	private static final String FUSV026601CC = "FUSV026601CC";

	// ■エラーテンプレートID
	/** ECK0021D010 */
	private static final String ERR_TEMP_ID_ECK0021D010 = "ECK0021D010";
	/** ECK0201D010 */
	private static final String ERR_TEMP_ID_ECK0201D010 = "ECK0201D010";
	/** EKK0061A010 */
	private static final String ERR_TEMP_ID_EKK0061A010 = "EKK0061A010";
	/** EKK0521D010 */
	private static final String ERR_TEMP_ID_EKK0521D010 = "EKK0521D010";

	// ■エラー項目ID
	/** エラー項目ID：FUSV026601CC */
	private static final List<String> FUSV026601CC_ERR_ITEM_LIST = Arrays.asList("state_nm", "city_nm");
	/** エラー項目ID：FUSV026601SC */
	private static final List<String> ECK0021D010_ERR_ITEM_LIST =
			Arrays.asList("cust_nm", "cust_kana", "cust_sex_cd", "cust_birthd", "keisha_pcd", "keisha_oaztsu_nm", "keisha_bnchigo", "keisha_adrttm",
					"keisha_adrrm", "keisha_telno");
	/** エラー項目ID：FUSV026602SC */
	private static final List<String> FUSV026602SC_ERR_ITEM_LIST = Arrays.asList("mlad");
	/** エラー項目ID：FUSV026605SC */
	private static final List<String> FUSV026605SC_ERR_ITEM_LIST = Arrays.asList("key_agnt_cd");
	/** エラー項目ID：FUSV026606SC */
	private static final List<String> FUSV026606SC_ERR_ITEM_LIST =
			Arrays.asList("crecard_comp_cd", "crecard_no", "crecard_yk_kigen", "crecard_nm_kana");
	// 白ロム引継対応 >>>
	/** エラー表示用定数 */
	private static final String ERR_CD_EKF0400_TW = "EKF0400-TW";
	/** エラーメッセージID(EKF1870-CE) */
	private static final String ERR_MSG_ID_EKF1870_CE = "EKF1870-CE";
	/** エラーメッセージID(EKF1880-TW) */
	private static final String ERR_MSG_ID_EKF1880_TW = "EKF1880-TW";
	/** エラーメッセージID(EKF1890-TW) */
	private static final String ERR_MSG_ID_EKF1890_TW = "EKF1890-TW";
	/** エラー表示用文 */
	private static final String CRECARD_NO = "クレジットカード番号";
	/** エラー表示用項目ID */
	private static final String CRECARD_NUM = "credit_card_num";
	/** エラー表示用項目ID */
	private static final String CRECARD_EXP_ERR = "expiration_date";
	/** エラー表示用項目ID */
	private static final String CRECARD_COM = "credit_campany";
	// 白ロム引継対応 <<<E

	// ■エラーメッセージ
	/** エラーメッセージ：氏名 */
	private static final String[] CUST_NM_ERR_MSG = { "氏名" };
	/** エラーメッセージ：氏名かな */
	private static final String[] CUST_NM_KANA_ERR_MSG = { "氏名かな" };
	/** エラーメッセージ：性別 */
	private static final String[] CUST_SEX_ERR_MSG = { "性別", "選択" };
	/** エラーメッセージ：生年月日 */
	private static final String[] CUST_BIRTH_ERR_MSG = { "生年月日" };
	/** エラーメッセージ：ご契約者住所・郵便番号 */
	private static final String[] PCD_ERR_MSG = { "ご契約者住所・郵便番号" };
	/** エラーメッセージ：ご契約者住所・都道府県・市区町村 */
	private static final String[] STATE_ERR_MSG = { "郵便番号と入力された住所の組み合わせが正しくありません。都道府県からはじまる住所" };
	/** エラーメッセージ：ご契約者住所・字 */
	private static final String[] AZA_ERR_MSG = { "ご契約者住所・字" };
	/** エラーメッセージ：ご契約者住所・丁目・番地等 */
	private static final String[] CHOBAN_ERR_MSG = { "ご契約者住所・丁目・番地等" };
	/** エラーメッセージ：ご契約者住所・建物名 */
	private static final String[] BUILDING_ERR_MSG = { "ご契約者住所・建物名" };
	/** エラーメッセージ：ご契約者住所・部屋番号 */
	private static final String[] ROOM_NO_ERR_MSG = { "ご契約者住所・部屋番号" };
	/** エラーメッセージ：ご契約者住所・お電話番号 */
	private static final String[] TLN_ERR_MSG = { "ご契約者住所・お電話番号" };
	/** エラーメッセージ：個人メールアドレス */
	private static final String[] KOJIN_EMAIL_ERR_MSG = { "個人メールアドレス" };
	/** エラーメッセージ：法人メールアドレス */
	private static final String[] HOJIN_EMAIL_ERR_MSG = { "法人メールアドレス" };
	/** エラーメッセージ：クレジット会社名 */
	private static final String[] CRE_COMP_ERR_MSG = { "クレジット会社名", "選択" };
	/** エラーメッセージ：クレジットカード番号 */
	private static final String[] CRE_NO_ERR_MSG = { "クレジットカード番号" };
	/** エラーメッセージ：カード有効期限 */
	private static final String[] CRE_GIGEN_ERR_MSG = { "カード有効期限" };
	/** エラーメッセージ：カード名義人 */
	private static final String[] CRE_MEIGI_NM_ERR_MSG = { "カード名義人" };
	/** エラーメッセージ：取扱コード */
	private static final String[] TORI_CD_ERR_MSG = { "取扱コード" };

	// ■エラーメッセージ表示項目ID
	/** 項目ID：ご契約者住所・都道府県・市区町村 */
	private static final String DSP_ITEM_STATE = "kei_state";
	/** お客様情報項目IDリスト */
	private static final List<String> CUST_IFNO_DSP_ITEM_LIST =
			Arrays.asList("kei_seimei", "kojin_kana", "kojin_sex", "kojin_birth", "kei_pcd", "kei_aza", "kei_choban", "kei_building", "kei_room_num",
					"kei_tln");
	/** メールアドレス項目IDリスト */
	private static final List<String> DSP_ITEM_LIST_EMAIL = Arrays.asList("kojin_email", "hojin_email");
	/** クレジットカード項目IDリスト */
	private static final List<String> DSP_ITEM_LIST_CRECARD = Arrays.asList("credit_campany", "credit_card_num", "expiration_date", "card_holder");
	/** 項目ID：取扱コード */
	private static final String DSP_ITEM_TORI_CD = "tori_cd";

	// 2013/03/22【No.464】Fujiwara Add Start
	// ■料金シュミレーション注記文言取得
	/** メッセージパターンID UQWiMAX */
	private static final String PRSIML_MSG_PTN_ID_UQ = "00000090";
	/** 料金表示分類コード 初期費用 */
	private static final String PRC_DSP_BRI_CD_SHKH = "0";
	/** 料金表示分類コード 月額費用*/
	private static final String PRC_DSP_BRI_CD_MONTH_FEE = "1";
	/** 正規表現文字列*/
	private static final String REGEX_STR = "<[/]?[ ]?[Bb][Rr][ ]?[/]?>";
	/** 分割対象文字列*/
	private static final String SPLIT_STR = "<BR>";

	// 2013/03/22【No.464】Fujiwara Add End

	/**
	 * 初期表示処理です。
	 * 
	 * <br>
	 * @return
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean init() throws Exception
	{
		DEBUG_LOG.info("----- FUW00161SFLogic init() Start -----");

		// ●共有フォームBean取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		// ●サービスフォームBean取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// ●料金シミュレーション共通部品実行
		try
		{
			// 初期化して料金を取得
			bean.sendMessageString(FUW00161SFConst.FNC_MODE, X31CWebConst.DATABEAN_SET_VALUE, PRC_INIT_CD);
			JFUWebCommon.ryokin(this);

		}
		catch (JCCWebServiceException se)
		{
			// エラーの場合はシステムエラー画面に遷移
			DEBUG_LOG.info("■■■ システムエラー：料金シミュレーション共通部品でエラー ■■■");
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}

		// 様々なデータBeanを取得
		HashMap beanMap = getVariousDataBean(commonInfoBean);
		// データBean配列を作成
		X31SDataBeanAccess webNewBean = (X31SDataBeanAccess)beanMap.get(CommonInfoCFConst.WEB_NEW_INFO);
		X31SDataBeanAccess keiyakushaBean = (X31SDataBeanAccess)beanMap.get(CommonInfoCFConst.KEIYAKUSHA_INFO);
		X31SDataBeanAccess keiSvcBean = (X31SDataBeanAccess)beanMap.get(CommonInfoCFConst.KEIYAKU_SVC_INFO);
		X31SDataBeanAccess payWayBean = (X31SDataBeanAccess)beanMap.get(CommonInfoCFConst.PAYWAY_INFO);
		X31SDataBeanAccess[] beanArray = { bean, webNewBean, keiSvcBean, payWayBean, keiyakushaBean };

		// サービスフォームBeanに各値を設定
		setSFBeanFromCommonInfoBean(commonInfoBean, bean);
		// サービスフォームBeanにクレジットカード有効期限(年月)を設定
		setCreCardYearMonth(bean, payWayBean);
		// サービスフォームBeanに料金情報を設定
		setPrcInfo(commonInfoBean, bean);

		// ユースケースIDを設定
		HashMap<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_FUSV0264);

		FUSV0264_FUSV0264OPDBMapper mapper = new FUSV0264_FUSV0264OPDBMapper();
		// データ格納用マップ
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		// 検索結果格納用マップ
		HashMap<Object, Object> outputMap = new HashMap<Object, Object>();

		// ●上りマッピング
		// 作業マップ
		mapper.setWorkMap(beanArray, dataMap);
		// お客様一意照会SC
		mapper.setFUSV026401SC(beanArray, dataMap, JPCModelConstant.FUNC_CD_2);
		// お客様<法人>一意照会SC
		mapper.setFUSV026402SC(beanArray, dataMap, JPCModelConstant.FUNC_CD_2);
		// メールアドレス一覧照会SC
		mapper.setFUSV026403SC(beanArray, dataMap, JPCModelConstant.FUNC_CD_1);
		// 連絡先メールアドレス一覧照会SC
		mapper.setFUSV026404SC(beanArray, dataMap, JPCModelConstant.FUNC_CD_1);
		// クレジットカード会社一覧照会SC
		mapper.setFUSV026405SC(beanArray, dataMap, JPCModelConstant.FUNC_CD_1);
		// メールアドレス一覧照会(SYSID)CC
		mapper.setFUSV026401CC(beanArray, dataMap);

		// ●サービス実行
		try
		{
			invokeService(paramMap, dataMap, outputMap);
		}
		catch (JCCWebServiceException se)
		{
			// エラーの場合はシステムエラー画面に遷移
			DEBUG_LOG.info("■■■ システムエラー：サービス実行(初期表示)でエラー ■■■");
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}

		// ●下りマッピング
		// クレジットカード会社一覧照会SC
		mapper.getFUSV026404SC(beanArray, outputMap);
		// 請求契約一覧照会(支払方法取得)SC
		mapper.getFUSV026405SC(beanArray, outputMap);

		// 申込区分＆契約種別
		String mskmDiv = webNewBean.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, GET);
		String keiSbt = webNewBean.sendMessageString(CommonInfoCFConst.KEI_SBT_06, GET);

		if (JFUStrConst.MSKM_KBN_ADD.equals(mskmDiv) && JFUStrConst.KEI_SBT_KOJINCD.equals(keiSbt))
		{
			// 追加申込、かつ、個人契約の場合、契約者情報＆連絡先個人メールアドレスを設定
			mapper.getFUSV026401SC(beanArray, outputMap, this);
			mapper.getMladList(beanArray, outputMap, FUW00161SFConst.KOJIN_EMAIL_LIST);
		}
		else if (JFUStrConst.MSKM_KBN_ADD.equals(mskmDiv) && JFUStrConst.KEI_SBT_HOJINCD.equals(keiSbt))
		{
			// 追加申込、かつ、法人契約の場合、契約者情報＆連絡先法人メールアドレスを設定
			mapper.getFUSV026401SC(beanArray, outputMap, this);
			mapper.getFUSV026402SC(beanArray, outputMap);
			mapper.getMladList(beanArray, outputMap, FUW00161SFConst.HOJIN_EMAIL_LIST);
		}

		// 遷移先画面IDを設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW00161);
		// 遷移先画面名を設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW00161);

		// 白ロム引継対応 >>>
		// 初回オーソリ依頼の処理結果コードが"1"の場合
		if (JFUStrConst.CR_RESULTCODE_NG.equals(payWayBean.sendMessageString(CommonInfoCFConst.CR_RESULTCODE_15, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// クレジットカード番号を正しく入力してください。
			JCCWebCommon.setMessageInfo(this, ERR_CD_EKF0400_TW, new String[] { CRECARD_NO }, CRECARD_NUM);

			// 処理結果コードを初期化する。
			payWayBean.sendMessageString(CommonInfoCFConst.CR_RESULTCODE_15, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		// 初回オーソリ依頼の処理結果コードが"2"の場合
		if (JFUStrConst.CR_RESULTCODE_NG_2.equals(payWayBean.sendMessageString(CommonInfoCFConst.CR_RESULTCODE_15, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// クレジットカードの有効期限が切れているか、有効期限の入力誤りがあります。正しく入力してください。
			JCCWebCommon.setMessageInfo(this, ERR_MSG_ID_EKF1890_TW, CRECARD_EXP_ERR);

			// 処理結果コードを初期化する。
			payWayBean.sendMessageString(CommonInfoCFConst.CR_RESULTCODE_15, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		// 初回オーソリ依頼の処理結果コードが"3"の場合
		if (JFUStrConst.CR_RESULTCODE_NG_3.equals(payWayBean.sendMessageString(CommonInfoCFConst.CR_RESULTCODE_15, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 現在、お申し込みを受け付けできません
			JCCWebCommon.setMessageInfo(this, ERR_MSG_ID_EKF1870_CE, CRECARD_COM);

			// 処理結果コードを初期化する。
			payWayBean.sendMessageString(CommonInfoCFConst.CR_RESULTCODE_15, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		// 初回オーソリ依頼の処理結果コードが"4"の場合
		if (JFUStrConst.CR_RESULTCODE_NG_4.equals(payWayBean.sendMessageString(CommonInfoCFConst.CR_RESULTCODE_15, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 現在、お申し込みを受け付けできません
			JCCWebCommon.setMessageInfo(this, ERR_MSG_ID_EKF1880_TW, CRECARD_COM);

			// 処理結果コードを初期化する。
			payWayBean.sendMessageString(CommonInfoCFConst.CR_RESULTCODE_15, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		// 白ロム引継対応 <<<E

		DEBUG_LOG.info("----- FUW00161SFLogic init() End -----");

		return true;
	}

	/**
	 * 次へボタン押下時の処理です。
	 * 
	 * <br>
	 * @return
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean next() throws Exception
	{
		DEBUG_LOG.info("----- FUW00161SFLogic next() Start -----");

		// 項目チェック結果
		boolean chkResult = true;

		// 共有フォームBean取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		// サービスフォームBean取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 様々なデータBeanを取得
		HashMap beanMap = getVariousDataBean(commonInfoBean);
		// データBean配列を作成
		X31SDataBeanAccess webNewBean = (X31SDataBeanAccess)beanMap.get(CommonInfoCFConst.WEB_NEW_INFO);
		X31SDataBeanAccess keiyakushaBean = (X31SDataBeanAccess)beanMap.get(CommonInfoCFConst.KEIYAKUSHA_INFO);
		X31SDataBeanAccess keiSvcBean = (X31SDataBeanAccess)beanMap.get(CommonInfoCFConst.KEIYAKU_SVC_INFO);
		X31SDataBeanAccess payWayBean = (X31SDataBeanAccess)beanMap.get(CommonInfoCFConst.PAYWAY_INFO);
		X31SDataBeanAccess[] beanArray = { bean, webNewBean, keiSvcBean, payWayBean, keiyakushaBean };

		// ユースケースIDを設定
		HashMap<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_FUSV0266);

		FUSV0266_FUSV0266OPDBMapper mapper = new FUSV0266_FUSV0266OPDBMapper();
		// データ格納用マップ
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		// 検索結果格納用マップ
		HashMap<Object, Object> outputMap = new HashMap<Object, Object>();

		// ●個人情報取扱設定処理
		String kepgKjnifTratDoiUm = "";
		String kepgKjnifFfg = "";

		if (JFUStrConst.MSKM_KBN_NEW.equals(webNewBean.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_GET_VALUE))
				&& (null == webNewBean.sendMessageString(CommonInfoCFConst.EOID_06, X31CWebConst.DATABEAN_GET_VALUE))
				|| "".equals(webNewBean.sendMessageString(CommonInfoCFConst.EOID_06, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// ●共有フォームBean.ＷＥＢ新規情報.申込区分が「1:新規申込」の場合
			kepgKjnifTratDoiUm = JFUStrConst.KEPG_KJNIF_TRAT_DOI_UM_DOUI;
			kepgKjnifFfg = JFUStrConst.KEPG_KJNIFT_FFG_KA;
		}

		// ●上りマッピング
		// 作業マップ
		mapper.setWorkMap(beanArray, dataMap);
		// 住所情報分割CC
		mapper.setFUSV026601CC(beanArray, dataMap);
		// お客様＜個人＞登録SC
		mapper.setFUSV026601SC(beanArray, dataMap, JPCModelConstant.FUNC_CD_2, kepgKjnifTratDoiUm, kepgKjnifFfg);
		// お客様＜法人＞登録SC
		mapper.setFUSV026602SC(beanArray, dataMap, JPCModelConstant.FUNC_CD_2, kepgKjnifTratDoiUm, kepgKjnifFfg);
		// 連絡先登録SC
		mapper.setFUSV026603SC(beanArray, dataMap, JPCModelConstant.FUNC_CD_2);
		// 申込明細登録SC
		mapper.setFUSV026604SC(beanArray, dataMap, JPCModelConstant.FUNC_CD_2);
		// 白ロム引継対応 >>>
		// 取扱コード削除のため
		//		// 代理店一意照会SC
		//		mapper.setFUSV026605SC(beanArray, dataMap, JPCModelConstant.FUNC_CD_2);
		// 白ロム引継対応 <<<E
		// クレジット請求手続きSC
		mapper.setFUSV026606SC(beanArray, dataMap, JPCModelConstant.FUNC_CD_2);
		// 現督促ステータス照会SC
		mapper.setFUSV026602CC(beanArray, dataMap, JPCModelConstant.FUNC_CD_1);
		// クレジットカード一意照会SC
		mapper.setFUSV026608SC(beanArray, dataMap, JPCModelConstant.FUNC_CD_2);

		// ●サービス実行
		try
		{
			invokeService(paramMap, dataMap, outputMap);
		}
		catch (JCCWebServiceException se)
		{
			// エラーの場合はシステムエラー画面に遷移
			DEBUG_LOG.info("■■■ サービス実行(チェック)でエラー ■■■");
			if (!chkInputValue(se, bean))
			{
				chkResult = false;
			}
		}

		// ●下りマッピング
		mapper.getFUSV026608SC(beanArray, outputMap);

		// 【No.773】白ロムエラー文言 >>>
		X31SDataBeanAccess[] beans_can = { bean, getCommonInfoBean() }; // 豆缶（IMRC定義の順序に合わせる事）
		mapper.getFUSV026602CC(beans_can, outputMap);
		// 【No.773】白ロムエラー文言 <<<E

		// 申込区分
		String mskmDiv = bean.sendMessageString(FUW00161SFConst.MSKM_DIV, GET);

		// 住所入力(都道府県・市区町村)チェック
		if (chkResult && !CODE_1.equals(mskmDiv) && !chkJushoBunkatsu(outputMap))
		{
			JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0400_TW, STATE_ERR_MSG, DSP_ITEM_STATE);
			chkResult = false;
		}

		// 白ロム引継対応 >>>
		// 取扱コードを画面から削除するため不要となる
		//		// 取扱コード存在チェック(代理店存在チェック)
		//		String toriCd = bean.sendMessageString(FUW00161SFConst.TORI_CD, GET);
		//		if (chkResult && !JFUWebCommon.isNull(toriCd) && !chkToriCd(outputMap))
		//		{
		//			JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0420_TW, TORI_CD_UM_ERR_MSG, DSP_ITEM_TORI_CD);
		//			chkResult = false;
		//		}
		// 白ロム引継対応 <<<E

		// 【No.773】白ロムエラー文言 >>>
		// ■督促情報取得
		// 支払い方法引き継ぎの場合のみチェック
		String payWayCont = bean.sendMessageString(FUW00161SFConst.PAY_WAY_CONTINUE, GET);
		if (payWayCont.equals(JFUStrConst.PAYWAY_CONTINUE_CONTINUE))
		{
			X31SDataBeanAccessArray gen_tokusoku_stat_list = bean.getDataBeanArray(FUW00161SFConst.GEN_TOKUSOKU_STAT_LIST);
			X31SDataBeanAccess gen_tokusoku_stat_list_bean = getDataBeanZero(gen_tokusoku_stat_list);

			String tokusoku_stat = gen_tokusoku_stat_list_bean.sendMessageString(FUW00161SFConst.TOKUSOKU_STAT_08, X31CWebConst.DATABEAN_GET_VALUE);

			// 督促ステータスが閾値以上の場合はエラー
			if (!JFUWebCommon.isNull(tokusoku_stat)
					&& Integer.parseInt(tokusoku_stat) >= Integer.parseInt(JFUWebCommon.getApplicationConst(THRESHOLD_TOKUSOKU_STAT)))
			{
				JCCWebCommon.setMessageInfo(this, ERR_CD_EKF0660_KW, PAYMENT_METHOD);

				chkResult = false;
			}
		}
		// 【No.773】白ロムエラー文言 <<<E

		// ●エラーチェック判定
		if (!chkResult)
		{
			// 項目チェックエラー場合、自画面に遷移してエラーメッセージを表示
			return true;
		}

		// ●クレジットカード番号チェック処理
		// ※全項目チェックがOKならこのチェックを実施する
		String paywayContinue = bean.sendMessageString(FUW00161SFConst.PAY_WAY_CONTINUE, GET);
		if (!JFUStrConst.PAYWAY_CONTINUE_CONTINUE.equals(paywayContinue) && !chkCreditNo(bean))
		{
			// クレジットカード番号が不正の場合、自画面に遷移してエラーメッセージを表示
			JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0400_TW, CRE_CARD_ERR_MSG, CRECARD_ITEM_ID);
			return true;
		}

		// 共有フォームBeanに値を設定
		setCommonInfoBean(commonInfoBean, bean, kepgKjnifTratDoiUm, kepgKjnifFfg);

		// 遷移先画面IDを設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW00125);
		// 遷移先画面名を設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW00125);

		DEBUG_LOG.info("----- FUW00161SFLogic next() End -----");

		return true;
	}

	/**
	 * 住所検索ボタン押下時の処理です。
	 * 
	 * <br>
	 * @return
	 */
	public boolean searchAddress()
	{
		DEBUG_LOG.info("----- FUW00161SFLogic searchAddress() Start -----");

		// 共有フォームBean取得
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// 画面間引き継ぎ情報の設定
		JCCWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW09902, this.createAdSearchDataMap());

		// 遷移先画面ID、画面名の設定(住所検索)
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW09902);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW09902);

		DEBUG_LOG.info("----- FUW00161SFLogic searchAddress() End -----");

		return true;
	}

	/**
	 * 住所検索情報を設定します。
	 * 
	 * <br>
	 * @return
	 */
	private HashMap<String, Object> createAdSearchDataMap()
	{
		// サービスフォームBean取得
		X31SDataBeanAccess serviceFormBean = getServiceFormBean();

		// 返却地格納マップ
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		String pcd1 = JFUStrConst.EMPTY;
		String pcd2 = JFUStrConst.EMPTY;

		// 検索条件(画面入力値)を取得
		// 郵便番号(前)
		pcd1 = serviceFormBean.sendMessageString(FUW00161SFConst.PCD_1, GET);
		// 郵便番号(後)
		pcd2 = serviceFormBean.sendMessageString(FUW00161SFConst.PCD_2, GET);

		// 画面間引き継ぎ情報に格納
		dataMap.put(MAP_KEY_PCD_1, pcd1);
		dataMap.put(MAP_KEY_PCD_2, pcd2);

		return dataMap;
	}

	/**
	 * 様々なデータBeanを返却します。
	 * 
	 * <br>
	 * @param commonInfoBean
	 * @return
	 */
	@SuppressWarnings("unchecked")
	private HashMap getVariousDataBean(X31SDataBeanAccess commonInfoBean)
	{
		HashMap outMap = new HashMap();

		// WEB新規情報取得
		X31SDataBeanAccessArray webNewInfo = commonInfoBean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		X31SDataBeanAccess webNewInfoBean = webNewInfo.getDataBean(0);

		// 契約サービス情報取得
		X31SDataBeanAccessArray keiyakushaInfo = webNewInfoBean.getDataBeanArray(CommonInfoCFConst.KEIYAKUSHA_INFO);
		X31SDataBeanAccess keiyakushaInfoBean = keiyakushaInfo.getDataBean(0);

		// 契約サービス情報取得
		X31SDataBeanAccessArray keiSvcInfo = webNewInfoBean.getDataBeanArray(CommonInfoCFConst.KEIYAKU_SVC_INFO);
		X31SDataBeanAccess keiSvcInfoBean = keiSvcInfo.getDataBean(0);

		// 支払い方法情報取得
		X31SDataBeanAccessArray paywayInfo = webNewInfoBean.getDataBeanArray(CommonInfoCFConst.PAYWAY_INFO);
		X31SDataBeanAccess paywayInfoBean = paywayInfo.getDataBean(0);

		// 返却マップに格納
		outMap.put(CommonInfoCFConst.WEB_NEW_INFO, webNewInfoBean);
		outMap.put(CommonInfoCFConst.KEIYAKUSHA_INFO, keiyakushaInfoBean);
		outMap.put(CommonInfoCFConst.KEIYAKU_SVC_INFO, keiSvcInfoBean);
		outMap.put(CommonInfoCFConst.PAYWAY_INFO, paywayInfoBean);

		return outMap;
	}

	/**
	 * サービスフォームBeanに値を設定します。
	 * 
	 * <br>
	 * @param commonInfoMap
	 * @param bean
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private void setSFBeanFromCommonInfoBean(X31SDataBeanAccess commonInfoBean, X31SDataBeanAccess bean) throws Exception
	{
		// 文言取得
		Map keiSbtNm = JFUWebCommon.getDispItemsAsMap(PATH_KEI_SBT, QUERY_ATTR_NAME);

		// WEB新規情報取得
		X31SDataBeanAccessArray webNewInfo = commonInfoBean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		X31SDataBeanAccess webNewInfoBean = webNewInfo.getDataBean(0);

		// 契約者情報取得
		X31SDataBeanAccessArray keiyakushaInfo = webNewInfoBean.getDataBeanArray(CommonInfoCFConst.KEIYAKUSHA_INFO);
		X31SDataBeanAccess keiyakushaInfoBean = keiyakushaInfo.getDataBean(0);

		// eoモバイル情報取得
		X31SDataBeanAccessArray eoMbInfo = webNewInfoBean.getDataBeanArray(CommonInfoCFConst.EOMOBILE);
		X31SDataBeanAccess eoMbInfoBean = eoMbInfo.getDataBean(0);

		// 支払い方法情報取得
		X31SDataBeanAccessArray paywayInfo = webNewInfoBean.getDataBeanArray(CommonInfoCFConst.PAYWAY_INFO);
		X31SDataBeanAccess paywayInfoBean = paywayInfo.getDataBean(0);

		// ■申込区分
		String mskmDiv = webNewInfoBean.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, GET);
		if (JFUStrConst.MSKM_KBN_NEW.equals(mskmDiv))
		{
			// 新規申込
			bean.sendMessageString(FUW00161SFConst.MSKM_DIV, SET, MSKM_DIV_0);
		}
		else
		{
			// 追加申込
			bean.sendMessageString(FUW00161SFConst.MSKM_DIV, SET, MSKM_DIV_1);
		}

		// ■eoモバイル情報
		// 同意ボタンチェック状態
		bean.sendMessageBoolean(FUW00161SFConst.CHK_TK_JOKEN, SET, CODE_1.equals(eoMbInfoBean.sendMessageString(CommonInfoCFConst.MOBILE_DOI_FLG_14,
				GET)));

		// ■契約情報
		// 個人情報の取扱い選択状態
		bean.sendMessageString(FUW00161SFConst.SEL_KOJIN_TORI, SET, keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.SECRET_STATUS_09, GET));

		// 契約種別
		String keiSbt = bean.sendMessageString(FUW00161SFConst.KEI_SBT, SET, webNewInfoBean.sendMessageString(CommonInfoCFConst.KEI_SBT_06, GET));

		if (JFUStrConst.MSKM_KBN_ADD.equals(mskmDiv))
		{
			// 追加申込の場合、契約種別表記を設定
			bean.sendMessageString(FUW00161SFConst.KEI_SBT_ADD_TXT, SET, (String)keiSbtNm.get(keiSbt));
		}

		//【障害番号：IT1-2013-0000347】対応 2012/03/01 Fujiwara Add Start
		// 会員種別
		String kiinSbt = keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KIIN_SBT_09, X31CWebConst.DATABEAN_GET_VALUE); // 会員種別
		if (JFUStrConst.KIIN_SBT_OPEN.equals(kiinSbt))
		{
			// オープン会員の場合
			this.setContInfo(webNewInfoBean, keiyakushaInfoBean, bean);
		}
		//【障害番号：IT1-2013-0000347】対応 2012/03/01 Fujiwara Add End

		if (JFUStrConst.KEI_SBT_KOJINCD.equals(keiSbt))
		{

			// ■個人
			// 氏名(姓)
			bean.sendMessageString(FUW00161SFConst.KOJIN_SEI, SET, keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSHNM_SEI_09, GET));
			// 氏名(名)
			bean.sendMessageString(FUW00161SFConst.KOJIN_MEI, SET, keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSHNM_NM_09, GET));
			// 氏名かな(姓)
			bean.sendMessageString(FUW00161SFConst.KOJIN_KANA_SEI, SET, keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSHKN_SEI_09, GET));
			// 氏名かな(名)
			bean.sendMessageString(FUW00161SFConst.KOJIN_KANA_MEI, SET, keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSHKN_NM_09, GET));
			// 生年月日
			bean
					.sendMessageString(FUW00161SFConst.KOJIN_BIRTH_YEAR, SET, keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.BIRTHD_YEAR_09,
							GET));
			bean.sendMessageString(FUW00161SFConst.KOJIN_BIRTH_MONTH, SET, keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.BIRTHD_MONTH_09,
					GET));
			bean.sendMessageString(FUW00161SFConst.KOJIN_BIRTH_DAY, SET, keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.BIRTHD_DAY_09, GET));
			// 性別
			bean.sendMessageString(FUW00161SFConst.KOJIN_SEX, SET, keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.SEX_09, GET));
			// メールアドレス(追加で選択の場合はDBMapperで設定する)
			bean
					.sendMessageString(FUW00161SFConst.KOJIN_EMAIL_INPUT, SET, keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KOJIN_MLAD_09,
							GET));
		}
		else if (JFUStrConst.KEI_SBT_HOJINCD.equals(keiSbt))
		{
			// ■法人
			// 法人名
			bean.sendMessageString(FUW00161SFConst.HOJIN_NM, SET, keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.HOJINNM_09, GET));
			// 法人かな名
			bean.sendMessageString(FUW00161SFConst.HOJIN_KANA_NM, SET, keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.HOJINKN_09, GET));
			// 代表者氏名(姓)
			bean.sendMessageString(FUW00161SFConst.HOJIN_DHS_SEI, SET, keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.DHSNM_SEI_09, GET));
			// 代表者氏名(名)
			bean.sendMessageString(FUW00161SFConst.HOJIN_DHS_MEI, SET, keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.DHSNM_NM_09, GET));
			// 代表者かな(姓)
			bean
					.sendMessageString(FUW00161SFConst.HOJIN_DHS_KANA_SEI, SET, keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.DHSKN_SEI_09,
							GET));
			// 代表者かな(名)
			bean.sendMessageString(FUW00161SFConst.HOJIN_DHS_KANA_MEI, SET, keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.DHSKN_NM_09, GET));
			// メールアドレス(追加で選択の場合はDBMapperで設定する)
			bean
					.sendMessageString(FUW00161SFConst.HOJIN_EMAIL_INPUT, SET, keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.HOJIN_MLAD_09,
							GET));
		}

		// ■契約者住所
		// 郵便番号(上)
		bean.sendMessageString(FUW00161SFConst.PCD_1, SET, keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSH_PCD1_09, GET));
		// 郵便番号(下)
		bean.sendMessageString(FUW00161SFConst.PCD_2, SET, keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSH_PCD2_09, GET));
		// 都道府県・市区町村
		bean.sendMessageString(FUW00161SFConst.STATE, SET, keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSH_STATE_09, GET));
		// 字
		bean.sendMessageString(FUW00161SFConst.AZA, SET, keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSH_AZA_09, GET));
		// 丁目・番地等
		bean.sendMessageString(FUW00161SFConst.CHO_BANCHI, SET, keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSH_CHO_BNCHI_09, GET));
		// 建物名
		bean.sendMessageString(FUW00161SFConst.BUILDING, SET, keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSH_TTM_09, GET));
		// 部屋番号
		bean.sendMessageString(FUW00161SFConst.ROOM_NUM, SET, keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSH_RRM_09, GET));
		// 電話番号(1)
		bean.sendMessageString(FUW00161SFConst.TLN_1, SET, keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSH_TELNO1_09, GET));
		// 電話番号(2)
		bean.sendMessageString(FUW00161SFConst.TLN_2, SET, keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSH_TELNO2_09, GET));
		// 電話番号(3)
		bean.sendMessageString(FUW00161SFConst.TLN_3, SET, keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSH_TELNO3_09, GET));

		// ■支払い方法
		// 白ロム引継対応A >>>
		// システム日付を設定
		bean.sendMessageString(FUW00161SFConst.SYS_DATE, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getSysDate());
		// 白ロム引継対応A <<<E

		// 2013/04/06 障害No.350 kusumoto Start
		// 運用日付を設定
		bean.sendMessageString(FUW00161SFConst.OPE_DATE, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getOpeDate(this, null));
		// 2013/04/06 障害No.350 kusumoto End

		// 支払方法引継
		bean.sendMessageString(FUW00161SFConst.PAY_WAY_CONTINUE, SET, paywayInfoBean.sendMessageString(CommonInfoCFConst.PAYWAY_CONTINUE_15, GET));

		// クレジット番号(1)
		bean.sendMessageString(FUW00161SFConst.CRE_NUM_1, SET, paywayInfoBean.sendMessageString(CommonInfoCFConst.CRECARD_NO1_15, GET));
		// クレジット番号(2)
		bean.sendMessageString(FUW00161SFConst.CRE_NUM_2, SET, paywayInfoBean.sendMessageString(CommonInfoCFConst.CRECARD_NO2_15, GET));
		// クレジット番号(3)
		bean.sendMessageString(FUW00161SFConst.CRE_NUM_3, SET, paywayInfoBean.sendMessageString(CommonInfoCFConst.CRECARD_NO3_15, GET));
		// クレジット番号(4)
		bean.sendMessageString(FUW00161SFConst.CRE_NUM_4, SET, paywayInfoBean.sendMessageString(CommonInfoCFConst.CRECARD_NO4_15, GET));

		// クレジット・名義人種別
		String creMeigiSbtSame = paywayInfoBean.sendMessageString(CommonInfoCFConst.CUST_NM_SBT_SAME_15, GET);
		String creMeigiSbtDiff = paywayInfoBean.sendMessageString(CommonInfoCFConst.CUST_NM_SBT_DIFF_15, GET);
		if (creMeigiSbtSame != null && !JFUStrConst.EMPTY.equals(creMeigiSbtSame))
		{
			// 契約者と同じ
			bean.sendMessageString(FUW00161SFConst.SEL_CRE_MEIGI, SET, CODE_0);
			// 白ロム引継対応 >>>
			if (JFUStrConst.KEI_SBT_KOJINCD.equals(keiSbt))
			{
				// クレジット・名義人(カナ・姓)
				bean.sendMessageString(FUW00161SFConst.CRE_KANA_SEI, SET, JFUStrConst.EMPTY);
				// クレジット・名義人(カナ・名)
				bean.sendMessageString(FUW00161SFConst.CRE_KANA_MEI, SET, JFUStrConst.EMPTY);
			}
			else if (JFUStrConst.KEI_SBT_HOJINCD.equals(keiSbt))
			{
				// クレジット・名義人(カナ・姓)
				bean.sendMessageString(FUW00161SFConst.CRE_KANA, SET, paywayInfoBean.sendMessageString(CommonInfoCFConst.CUST_NM_KANA_15, GET));
			}
			// 白ロム引継対応 <<<E
		}
		else if (creMeigiSbtDiff != null && !JFUStrConst.EMPTY.equals(creMeigiSbtDiff))
		{
			// 契約者と異なる
			bean.sendMessageString(FUW00161SFConst.SEL_CRE_MEIGI, SET, CODE_1);
			// 白ロム引継対応 >>>
			if (JFUStrConst.KEI_SBT_KOJINCD.equals(keiSbt))
			{
				// クレジット・名義人(カナ・姓)
				bean.sendMessageString(FUW00161SFConst.CRE_KANA_SEI, SET, paywayInfoBean
						.sendMessageString(CommonInfoCFConst.CUST_NM_KANA_SEI_15, GET));
				// クレジット・名義人(カナ・名)
				bean
						.sendMessageString(FUW00161SFConst.CRE_KANA_MEI, SET, paywayInfoBean.sendMessageString(CommonInfoCFConst.CUST_NM_KANA_NM_15,
								GET));
			}
			else if (JFUStrConst.KEI_SBT_HOJINCD.equals(keiSbt))
			{
				// クレジット・名義人(カナ・姓)
				bean.sendMessageString(FUW00161SFConst.CRE_KANA, SET, paywayInfoBean.sendMessageString(CommonInfoCFConst.CUST_NM_KANA_15, GET));
			}
			// 白ロム引継対応 <<<E
			// クレジット・名義人同意
			String creMeigiDoi = paywayInfoBean.sendMessageString(CommonInfoCFConst.CRECARD_MEIGIN_DOI_15, GET);
			bean.sendMessageBoolean(FUW00161SFConst.CHK_CRE_MEIGI_DOI, SET, CODE_1.equals(creMeigiDoi));
		}

		// ■その他
		// 白ロム引継対応 >>>
		// 取扱コードを画面から削除するため不要となる
		//		// 取扱店用取扱コード
		//		bean.sendMessageString(FUW00161SFConst.TORI_CD, SET, paywayInfoBean.sendMessageString(CommonInfoCFConst.TRAT_CD_15, GET));
		// 白ロム引継対応 <<<E

		// 【No.773】白ロムエラー文言 >>>
		// 窓口払いフラグ
		String mdgcPayFlg = paywayInfoBean.sendMessageString(CommonInfoCFConst.MDGC_PAY_FLG_15, X31CWebConst.DATABEAN_GET_VALUE);
		bean.sendMessageBoolean(FUW00161SFConst.MDGC_DOI_FLG, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.MDGC_PAY_FLG_MDGC.equals(mdgcPayFlg));
		// 【No.773】白ロムエラー文言 <<<E
	}

	/**
	 * 共有フォームBeanに値を設定します。
	 * 
	 * <br>
	 * @param commoninfoBean
	 * @throws Exception 
	 */
	private void setCommonInfoBean(X31SDataBeanAccess commonInfoBean, X31SDataBeanAccess bean, String kepgKjnifTratDoiUm, String kepgKjnifFfg)
			throws Exception
	{
		// WEB新規情報取得
		X31SDataBeanAccessArray webNewInfo = commonInfoBean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		X31SDataBeanAccess webNewInfoBean = webNewInfo.getDataBean(0);

		// 契約者情報取得
		X31SDataBeanAccessArray keiyakushaInfo = webNewInfoBean.getDataBeanArray(CommonInfoCFConst.KEIYAKUSHA_INFO);
		X31SDataBeanAccess keiyakushaInfoBean = keiyakushaInfo.getDataBean(0);

		// eoモバイル情報取得
		X31SDataBeanAccessArray eoMbInfo = webNewInfoBean.getDataBeanArray(CommonInfoCFConst.EOMOBILE);
		X31SDataBeanAccess eoMbInfoBean = eoMbInfo.getDataBean(0);

		// 支払い方法情報取得
		X31SDataBeanAccessArray paywayInfo = webNewInfoBean.getDataBeanArray(CommonInfoCFConst.PAYWAY_INFO);
		X31SDataBeanAccess paywayInfoBean = paywayInfo.getDataBean(0);

		// ●個人情報取扱設定処理
		String kepgKjnifTratDoiUmMng = "";
		String kepgKjnifFfgMng = "";

		if (JFUStrConst.MSKM_KBN_NEW.equals(webNewInfoBean.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_GET_VALUE))
				&& (null == webNewInfoBean.sendMessageString(CommonInfoCFConst.EOID_06, X31CWebConst.DATABEAN_GET_VALUE) || "".equals(webNewInfoBean
						.sendMessageString(CommonInfoCFConst.EOID_06, X31CWebConst.DATABEAN_GET_VALUE))))
		{
			// ●共有フォームBean.ＷＥＢ新規情報.申込区分が「1:新規申込」の場合
			kepgKjnifTratDoiUm = JFUStrConst.KEPG_KJNIF_TRAT_DOI_UM_DOUI;
			kepgKjnifTratDoiUmMng = JFUStrConst.KEPG_KJNIF_TRAT_DOI_UM_MNG_DOUI;
			kepgKjnifFfg = JFUStrConst.KEPG_KJNIFT_FFG_KA;
			kepgKjnifFfgMng = JFUStrConst.KEPG_KJNIFT_FFG_MNG_KA;
		}

		// 契約者情報.関電G個人情報取扱同意有無
		keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KEPG_KJNIF_TRAT_DOI_UM_09, X31CWebConst.DATABEAN_SET_VALUE, kepgKjnifTratDoiUm);

		// 契約者情報.関電G個人情報取扱同意有無文言
		keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KEPG_KJNIF_TRAT_DOI_UM_MNG_09, X31CWebConst.DATABEAN_SET_VALUE, kepgKjnifTratDoiUmMng);

		// 契約者情報.関電G個人情報提供不可フラグ
		keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KEPG_KJNIFT_FFG_09, X31CWebConst.DATABEAN_SET_VALUE, kepgKjnifFfg);

		// 契約者情報.関電G個人情報提供不可フラグ文言
		keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KEPG_KJNIFT_FFG_MNG_09, X31CWebConst.DATABEAN_SET_VALUE, kepgKjnifFfgMng);

		// ●WEB新規情報を設定
		// 契約種別
		String keiSbt = webNewInfoBean.sendMessageString(CommonInfoCFConst.KEI_SBT_06, SET, bean.sendMessageString(FUW00161SFConst.KEI_SBT, GET));
		// 申込区分
		String mskmDiv = bean.sendMessageString(FUW00161SFConst.MSKM_DIV, GET);

		// ●eoモバイル情報を設定
		if (bean.sendMessageBoolean(FUW00161SFConst.CHK_TK_JOKEN, GET))
		{
			// 同意済
			eoMbInfoBean.sendMessageString(CommonInfoCFConst.MOBILE_DOI_FLG_14, SET, CODE_1);
		}
		else
		{
			// 未同意
			eoMbInfoBean.sendMessageString(CommonInfoCFConst.MOBILE_DOI_FLG_14, SET, CODE_0);
		}

		// ●モバイルコース名取得処理
		Map<String, String> mobileServiceNameMap = JFUWebCommon.getDispItemsAsMap(MOBILE_SERVICE_NAME, QUERY_ATTR_NAME);
		String mobileCourse = eoMbInfoBean.sendMessageString(CommonInfoCFConst.MOBILE_COURSE_14, X31CWebConst.DATABEAN_GET_VALUE);
		// モバイルコース名
		eoMbInfoBean
				.sendMessageString(CommonInfoCFConst.MOBILE_COURSE_NM_14, X31CWebConst.DATABEAN_SET_VALUE, mobileServiceNameMap.get(mobileCourse));

		// ●契約者情報を設定
		// 個人情報の取扱い選択状態
		keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.SECRET_STATUS_09, SET, bean.sendMessageString(FUW00161SFConst.SEL_KOJIN_TORI, GET));

		// 契約種別
		if (JFUStrConst.KEI_SBT_KOJINCD.equals(keiSbt))
		{
			// ■個人
			// 氏名(姓)
			keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSHNM_SEI_09, SET, bean.sendMessageString(FUW00161SFConst.KOJIN_SEI, GET));
			// 氏名(名)
			keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSHNM_NM_09, SET, bean.sendMessageString(FUW00161SFConst.KOJIN_MEI, GET));
			// 氏名かな(姓)
			keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSHKN_SEI_09, SET, bean.sendMessageString(FUW00161SFConst.KOJIN_KANA_SEI, GET));
			// 氏名かな(名)
			keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSHKN_NM_09, SET, bean.sendMessageString(FUW00161SFConst.KOJIN_KANA_MEI, GET));
			// 生年月日
			keiyakushaInfoBean
					.sendMessageString(CommonInfoCFConst.BIRTHD_YEAR_09, SET, bean.sendMessageString(FUW00161SFConst.KOJIN_BIRTH_YEAR, GET));
			keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.BIRTHD_MONTH_09, SET, bean.sendMessageString(FUW00161SFConst.KOJIN_BIRTH_MONTH,
					GET));
			keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.BIRTHD_DAY_09, SET, bean.sendMessageString(FUW00161SFConst.KOJIN_BIRTH_DAY, GET));
			// 性別
			keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.SEX_09, SET, bean.sendMessageString(FUW00161SFConst.KOJIN_SEX, GET));

			// メールアドレス契約数
			X31SDataBeanAccessArray kojinMladInfoArray = bean.getDataBeanArray(FUW00161SFConst.KOJIN_EMAIL_LIST);
			X31SDataBeanAccess kojinMladInfoBean = kojinMladInfoArray.getDataBean(0);
			String kojinMladCnt = kojinMladInfoBean.sendMessageString(FUW00161SFConst.EMAIL_CNT_01, GET);

			if (JFUWebCommon.isNull(kojinMladCnt) || Integer.parseInt(kojinMladCnt) == 0 || !CODE_1.equals(mskmDiv))
			{
				// メールアドレス契約なし、または、新規申込の場合、入力されたメールアドレスを設定
				keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KOJIN_MLAD_09, SET, bean.sendMessageString(FUW00161SFConst.KOJIN_EMAIL_INPUT,
						GET));
			}
			else
			{
				// メールアドレス契約ありの場合、選択されたメールアドレスを設定
				int mladIdx = Integer.parseInt(bean.sendMessageString(FUW00161SFConst.KOJIN_EMAIL_SEL, GET));
				X31SDataBeanAccessArray kojinMladArray = bean.getDataBeanArray(FUW00161SFConst.KOJIN_EMAIL_LIST);
				X31SDataBeanAccess kojinMladBean = kojinMladArray.getDataBean(0);
				String mlad = kojinMladBean.sendMessageString(FUW00161SFConst.EMAIL_01, GET, mladIdx);

				keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KOJIN_MLAD_09, SET, mlad);
			}
		}
		else
		{
			// ■法人
			// 法人名
			keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.HOJINNM_09, SET, bean.sendMessageString(FUW00161SFConst.HOJIN_NM, GET));
			// 法人かな名
			keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.HOJINKN_09, SET, bean.sendMessageString(FUW00161SFConst.HOJIN_KANA_NM, GET));
			// 代表者氏名(姓)
			keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.DHSNM_SEI_09, SET, bean.sendMessageString(FUW00161SFConst.HOJIN_DHS_SEI, GET));
			// 代表者氏名(名)
			keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.DHSNM_NM_09, SET, bean.sendMessageString(FUW00161SFConst.HOJIN_DHS_MEI, GET));
			// 代表者かな(姓)
			keiyakushaInfoBean
					.sendMessageString(CommonInfoCFConst.DHSKN_SEI_09, SET, bean.sendMessageString(FUW00161SFConst.HOJIN_DHS_KANA_SEI, GET));
			// 代表者かな(名)
			keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.DHSKN_NM_09, SET, bean.sendMessageString(FUW00161SFConst.HOJIN_DHS_KANA_MEI, GET));

			// メールアドレス契約数
			X31SDataBeanAccessArray hojinMladInfoArray = bean.getDataBeanArray(FUW00161SFConst.HOJIN_EMAIL_LIST);
			X31SDataBeanAccess hojinMladInfoBean = hojinMladInfoArray.getDataBean(0);
			String hojinMladCnt = hojinMladInfoBean.sendMessageString(FUW00161SFConst.EMAIL_CNT_01, GET);

			if (JFUWebCommon.isNull(hojinMladCnt) || Integer.parseInt(hojinMladCnt) == 0 || !CODE_1.equals(mskmDiv))
			{
				// メールアドレス
				keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.HOJIN_MLAD_09, SET, bean.sendMessageString(FUW00161SFConst.HOJIN_EMAIL_INPUT,
						GET));
			}
			else
			{
				// メールアドレス選択
				int mladIdx = Integer.parseInt(bean.sendMessageString(FUW00161SFConst.HOJIN_EMAIL_SEL, GET));
				X31SDataBeanAccessArray hojinMladArray = bean.getDataBeanArray(FUW00161SFConst.HOJIN_EMAIL_LIST);
				X31SDataBeanAccess hojinMladBean = hojinMladArray.getDataBean(0);
				String mlad = hojinMladBean.sendMessageString(FUW00161SFConst.EMAIL_01, GET, mladIdx);

				keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.HOJIN_MLAD_09, SET, mlad);
			}
		}

		// ■契約者住所
		// 郵便番号(上)
		keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSH_PCD1_09, SET, bean.sendMessageString(FUW00161SFConst.PCD_1, GET));
		// 郵便番号(下)
		keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSH_PCD2_09, SET, bean.sendMessageString(FUW00161SFConst.PCD_2, GET));
		// 都道府県・市区町村
		keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSH_STATE_09, SET, bean.sendMessageString(FUW00161SFConst.STATE, GET));
		// 字
		keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSH_AZA_09, SET, bean.sendMessageString(FUW00161SFConst.AZA, GET));
		// 丁目・番地等
		keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSH_CHO_BNCHI_09, SET, bean.sendMessageString(FUW00161SFConst.CHO_BANCHI, GET));
		// 建物名
		keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSH_TTM_09, SET, bean.sendMessageString(FUW00161SFConst.BUILDING, GET));
		// 部屋番号
		keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSH_RRM_09, SET, bean.sendMessageString(FUW00161SFConst.ROOM_NUM, GET));
		// 電話番号(1)
		keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSH_TELNO1_09, SET, bean.sendMessageString(FUW00161SFConst.TLN_1, GET));
		// 電話番号(2)
		keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSH_TELNO2_09, SET, bean.sendMessageString(FUW00161SFConst.TLN_2, GET));
		// 電話番号(3)
		keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSH_TELNO3_09, SET, bean.sendMessageString(FUW00161SFConst.TLN_3, GET));

		// ■支払い方法
		// 支払方法引継
		String paywayCont = bean.sendMessageString(FUW00161SFConst.PAY_WAY_CONTINUE, GET);
		paywayInfoBean.sendMessageString(CommonInfoCFConst.PAYWAY_CONTINUE_15, SET, paywayCont);

		// 引き継ぐ場合、各値を設定
		if (JFUStrConst.PAYWAY_CONTINUE_CONTINUE.equals(paywayCont))
		{
			String seikyKeiNo = JFUStrConst.EMPTY;
			String hktgiPaywayNm = JFUStrConst.EMPTY;
			int paywayIdx = Integer.parseInt(bean.sendMessageString(FUW00161SFConst.PAY_WAY_SEL, GET));

			X31SDataBeanAccessArray seikyuArray = bean.getDataBeanArray(FUW00161SFConst.KEI_PAY_WAY_LIST);
			X31SDataBeanAccess seikyBean = seikyuArray.getDataBean(0);

			seikyKeiNo = seikyBean.sendMessageString(FUW00161SFConst.SEIKY_KEI_NO_07, GET, paywayIdx);
			hktgiPaywayNm = seikyBean.sendMessageString(FUW00161SFConst.PAY_WAY_NM_07, GET, paywayIdx);

			// 請求契約番号
			paywayInfoBean.sendMessageString(CommonInfoCFConst.HKTGI_SEIKY_KEI_NO_15, SET, seikyKeiNo);
			// 引継支払方法
			paywayInfoBean.sendMessageString(CommonInfoCFConst.HKTGI_PAYWAY_15, SET, hktgiPaywayNm);
			// 支払方法選択
			paywayInfoBean.sendMessageString(CommonInfoCFConst.PAYWAY_15, SET, JFUStrConst.EMPTY);
		}
		else
		{
			// 引き継がない場合
			// 引継支払方法
			paywayInfoBean.sendMessageString(CommonInfoCFConst.HKTGI_PAYWAY_15, SET, JFUStrConst.EMPTY);
			// 引継支払方法(クレジット払いのみ)
			paywayInfoBean.sendMessageString(CommonInfoCFConst.PAYWAY_15, SET, JFUStrConst.PAYWAY_CREDIT);

			// クレジット会社名
			int idxCreComp = Integer.parseInt(bean.sendMessageString(FUW00161SFConst.CRE_COMP, GET));
			X31SDataBeanAccessArray creCompBeanArray = bean.getDataBeanArray(FUW00161SFConst.CRE_COMP_LIST);
			X31SDataBeanAccess creCompBean = creCompBeanArray.getDataBean(0);
			String creCompNm = creCompBean.sendMessageString(FUW00161SFConst.CRE_COMP_NM_02, GET, idxCreComp);
			paywayInfoBean.sendMessageString(CommonInfoCFConst.CRECARD_COMP_NM_15, SET, creCompNm);

			// クレジット会社コード
			String creCompCd = creCompBean.sendMessageString(FUW00161SFConst.CRE_COMP_CD_02, GET, idxCreComp);
			paywayInfoBean.sendMessageString(CommonInfoCFConst.CRECARD_COMP_CD_15, SET, creCompCd);

			// クレジット番号(1)
			paywayInfoBean.sendMessageString(CommonInfoCFConst.CRECARD_NO1_15, SET, bean.sendMessageString(FUW00161SFConst.CRE_NUM_1, GET));
			// クレジット番号(2)
			paywayInfoBean.sendMessageString(CommonInfoCFConst.CRECARD_NO2_15, SET, bean.sendMessageString(FUW00161SFConst.CRE_NUM_2, GET));
			// クレジット番号(3)
			paywayInfoBean.sendMessageString(CommonInfoCFConst.CRECARD_NO3_15, SET, bean.sendMessageString(FUW00161SFConst.CRE_NUM_3, GET));
			// クレジット番号(4)
			paywayInfoBean.sendMessageString(CommonInfoCFConst.CRECARD_NO4_15, SET, bean.sendMessageString(FUW00161SFConst.CRE_NUM_4, GET));

			// クレジット・有効期限(月)
			int idxMonth = Integer.parseInt(bean.sendMessageString(FUW00161SFConst.CRE_YK_KIGEN_MONTH, GET));
			X31SDataBeanAccessArray creMonthBeanArray = bean.getDataBeanArray(FUW00161SFConst.CRE_YK_KIGEN_MONTH_LIST);
			X31SDataBeanAccess creMonthBean = creMonthBeanArray.getDataBean(0);
			String creMonth = creMonthBean.sendMessageString(FUW00161SFConst.VALUE_03, GET, idxMonth);
			paywayInfoBean.sendMessageString(CommonInfoCFConst.CRECARD_YK_KIGEN_MONTH_15, SET, creMonth);

			// クレジット・有効期限(年)
			int idxYear = Integer.parseInt(bean.sendMessageString(FUW00161SFConst.CRE_YK_KIGEN_YEAR, GET));
			X31SDataBeanAccessArray creYearBeanArray = bean.getDataBeanArray(FUW00161SFConst.CRE_YK_KIGEN_YEAR_LIST);
			X31SDataBeanAccess creYearBean = creYearBeanArray.getDataBean(0);
			String creYear = creYearBean.sendMessageString(FUW00161SFConst.VALUE_03, GET, idxYear);
			paywayInfoBean.sendMessageString(CommonInfoCFConst.CRECARD_YK_KIGEN_YEAR_15, SET, creYear);

			// 白ロム引継対応 >>>
			// クレジットカード会社が「NICOS」の場合
			String selectedMembstrNo = "";
			String selectedMembstrNoTrim = "";
			if (JFUStrConst.KK0531_CRECARD_COMP_CD_00009.equals(creCompCd))
			{
				selectedMembstrNo = creCompBean.sendMessageString(FUW00161SFConst.MEMBSTR_NO_12_02, GET, idxCreComp);
				// クレジットカード会社リストのクレジットカード 加盟店番号（１２桁）を設定
			}
			else
			{
				// クレジットカード会社が「NICOS」以外
				// クレジットカード会社リストのクレジットカード 加盟店番号（１５桁）を設定
				selectedMembstrNo = creCompBean.sendMessageString(FUW00161SFConst.MEMBSTR_NO_15_02, GET, idxCreComp);
			}

			// クレジット契約番号は先頭から11桁に編集
			if (selectedMembstrNo.length() >= 12)
			{
				selectedMembstrNo = selectedMembstrNo.substring(0, 11);

			}
			selectedMembstrNoTrim = selectedMembstrNo.trim();
			// ●クレジット契約番号
			paywayInfoBean.sendMessageString(CommonInfoCFConst.CRECARD_KEI_NO_15, SET, selectedMembstrNoTrim);
			// ● 加盟店番号
			paywayInfoBean.sendMessageString(CommonInfoCFConst.MEMBSTR_NO_15, SET, selectedMembstrNo);
			// 白ロム引継対応 <<<E

		}

		// クレジット・名義人種別
		String creMeiSbt = bean.sendMessageString(FUW00161SFConst.SEL_CRE_MEIGI, GET);
		if (CRE_MEIGI_SBT_0.equals(creMeiSbt))
		{
			// クレジット・名義人種別(契約者と同じ)
			paywayInfoBean.sendMessageString(CommonInfoCFConst.CUST_NM_SBT_SAME_15, SET, CODE_1);
			paywayInfoBean.sendMessageString(CommonInfoCFConst.CUST_NM_SBT_DIFF_15, SET, JFUStrConst.EMPTY);

			if (JFUStrConst.KEI_SBT_KOJINCD.equals(keiSbt))
			{
				// 個人契約の場合
				// クレジット・名義人(カナ・姓)　ひらがな→カタカナ変換
				String hiraganaSei = bean.sendMessageString(FUW00161SFConst.KOJIN_KANA_SEI, GET);
				paywayInfoBean.sendMessageString(CommonInfoCFConst.CUST_NM_KANA_SEI_15, SET, JFUWebCommon.convFullHiraToFullKataV(hiraganaSei));
				// クレジット・名義人(カナ・名)　ひらがな→カタカナ変換
				String hiraganaMei = bean.sendMessageString(FUW00161SFConst.KOJIN_KANA_MEI, GET);
				paywayInfoBean.sendMessageString(CommonInfoCFConst.CUST_NM_KANA_NM_15, SET, JFUWebCommon.convFullHiraToFullKataV(hiraganaMei));
			}
			else
			{
				// 法人契約の場合
				// 白ロム引継対応 >>>
				// クレジット・名義人(カナ)　ひらがな→カタカナ変換
				String hiraganaSei = bean.sendMessageString(FUW00161SFConst.CRE_KANA, GET);
				// クレジット・名義人(カナ)
				paywayInfoBean.sendMessageString(CommonInfoCFConst.CUST_NM_KANA_15, SET, JFUWebCommon.convFullHiraToFullKataV(hiraganaSei));
				// 白ロム引継対応 <<<E
			}
		}
		else
		{
			// クレジット・名義人種別(契約者と異なる)
			paywayInfoBean.sendMessageString(CommonInfoCFConst.CUST_NM_SBT_SAME_15, SET, JFUStrConst.EMPTY);
			paywayInfoBean.sendMessageString(CommonInfoCFConst.CUST_NM_SBT_DIFF_15, SET, CODE_1);
			// クレジット・名義人(カナ・姓)
			paywayInfoBean.sendMessageString(CommonInfoCFConst.CUST_NM_KANA_SEI_15, SET, bean.sendMessageString(FUW00161SFConst.CRE_KANA_SEI, GET));
			// クレジット・名義人(カナ・名)
			paywayInfoBean.sendMessageString(CommonInfoCFConst.CUST_NM_KANA_NM_15, SET, bean.sendMessageString(FUW00161SFConst.CRE_KANA_MEI, GET));
			// クレジット・名義人同意
			if (bean.sendMessageBoolean(FUW00161SFConst.CHK_CRE_MEIGI_DOI, GET))
			{
				paywayInfoBean.sendMessageString(CommonInfoCFConst.CRECARD_MEIGIN_DOI_15, SET, CODE_1);
			}
			else
			{
				paywayInfoBean.sendMessageString(CommonInfoCFConst.CRECARD_MEIGIN_DOI_15, SET, CODE_0);
			}

			if (JFUStrConst.KEI_SBT_HOJINCD.equals(keiSbt))
			{
				// 法人契約の場合
				// 白ロム引継対応 >>>
				// クレジット・名義人(カナ)　ひらがな→カタカナ変換
				String nakaSei = bean.sendMessageString(FUW00161SFConst.CRE_KANA, GET);
				// クレジット・名義人(カナ)
				paywayInfoBean.sendMessageString(CommonInfoCFConst.CUST_NM_KANA_15, SET, nakaSei);
				// 白ロム引継対応 <<<E
			}
		}

		// ■その他
		// 白ロム引継対応 >>>
		// 取扱コードを画面から削除するため不要となる
		//		// 取扱店用取扱コード
		//		paywayInfoBean.sendMessageString(CommonInfoCFConst.TRAT_CD_15, SET, bean.sendMessageString(FUW00161SFConst.TORI_CD, GET));
		// 白ロム引継対応 <<<E
		// 【No.773】白ロムエラー文言 >>>
		/**
		 * 窓口支払いフラグ
		 */
		boolean doiFlg = bean.sendMessageBoolean(FUW00115SFConst.MDGC_DOI_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		paywayInfoBean.sendMessageString(CommonInfoCFConst.MDGC_PAY_FLG_15, X31CWebConst.DATABEAN_SET_VALUE, doiFlg ? JFUStrConst.MDGC_PAY_FLG_MDGC
				: "");
		// 【No.773】白ロムエラー文言 <<<E

	}

	/**
	 * クレジットカード有効期限(年月)の設定処理です。
	 * 
	 * <br>
	 * @param bean
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private void setCreCardYearMonth(X31SDataBeanAccess bean, X31SDataBeanAccess paywayInfoBean) throws Exception
	{
		// 支払い情報のクレジットカード有効期限(月)を取得
		String creMonth = paywayInfoBean.sendMessageString(CommonInfoCFConst.CRECARD_YK_KIGEN_MONTH_15, GET);
		// 支払い情報のクレジットカード有効期限(年)を取得
		String creYear = paywayInfoBean.sendMessageString(CommonInfoCFConst.CRECARD_YK_KIGEN_YEAR_15, GET);

		// ■月リスト作成
		X31SDataBeanAccessArray creMonthBeanArray = bean.getDataBeanArray(FUW00161SFConst.CRE_YK_KIGEN_MONTH_LIST);
		creMonthBeanArray.clearArray();
		// 月リストが空の場合のみ作成
		if (creMonthBeanArray.getCount() == 0)
		{
			// クレジットカード有効期限（月）リストにデータBeanを追加
			X31SDataBeanAccess creMonthBean = creMonthBeanArray.addDataBean();
			for (int i = 0; i < 13; i++)
			{
				if (i == 0)
				{
					// 初回のみ空文字を設定
					creMonthBean.sendMessageString(FUW00161SFConst.VALUE_03, ADD, JFUStrConst.EMPTY);
					creMonthBean.sendMessageString(FUW00161SFConst.DSP_VALUE_03, ADD, JFUStrConst.EMPTY);
				}
				else
				{
					creMonthBean.sendMessageString(FUW00161SFConst.VALUE_03, ADD, String.format(FORMAT_CRE_MONTH, i));
					creMonthBean.sendMessageString(FUW00161SFConst.DSP_VALUE_03, ADD, String.format(FORMAT_CRE_MONTH, i));
				}

				// ★初回遷移以降の処理
				// 選択中の月を判定し、初期選択とする
				if (creMonth != null && creMonth.length() > 0 && String.format(FORMAT_CRE_MONTH, i).equals(creMonth))
				{
					bean.sendMessageString(FUW00161SFConst.CRE_YK_KIGEN_MONTH, SET, String.valueOf(i));
				}
			}
		}

		// ■年リスト作成
		X31SDataBeanAccessArray creYearBeanArray = bean.getDataBeanArray(FUW00161SFConst.CRE_YK_KIGEN_YEAR_LIST);
		creYearBeanArray.clearArray();
		// 年リストが空の場合作成
		if (creYearBeanArray.getCount() == 0)
		{
			// カウント数取得
			Map creCardMap = JFUWebCommon.getDispItemsAsMap(PATH_CRE_CARD_YEAR, QUERY_ATTR_NAME);
			int kikan = Integer.parseInt((String)creCardMap.get(CRE_CARD_YEAR));

			// 基準年を取得
			int yearCnt = Integer.parseInt(JFUWebCommon.getOpeDate(this, null).substring(0, 4));

			// クレジットカード有効期限（年）リストにデータBeanを追加
			X31SDataBeanAccess creYearBean = creYearBeanArray.addDataBean();

			// 初回のみ空文字を設定
			creYearBean.sendMessageString(FUW00161SFConst.VALUE_04, ADD, JFUStrConst.EMPTY);
			creYearBean.sendMessageString(FUW00161SFConst.DSP_VALUE_04, ADD, JFUStrConst.EMPTY);

			for (int i = 0; i < kikan; i++)
			{
				creYearBean.sendMessageString(FUW00161SFConst.VALUE_04, ADD, String.valueOf(yearCnt));
				creYearBean.sendMessageString(FUW00161SFConst.DSP_VALUE_04, ADD, String.valueOf(yearCnt));

				// 年をカウントアップ
				yearCnt++;

				// ★初回遷移以降の処理
				// 選択中の年を判定し、初期選択とする
				if (creYear != null && creYear.length() > 0 && String.valueOf(yearCnt).equals(creYear))
				{
					bean.sendMessageString(FUW00161SFConst.CRE_YK_KIGEN_YEAR, SET, String.valueOf(i + 2));
				}
			}
		}
	}

	/**
	 * 料金情報の設定処理です。
	 * 
	 * <br>
	 * @param commonInfoBean
	 * @param bean
	 */
	private void setPrcInfo(X31SDataBeanAccess commonInfoBean, X31SDataBeanAccess bean)
	{
		// WEB新規情報取得
		X31SDataBeanAccessArray webNewInfo = commonInfoBean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		X31SDataBeanAccess webNewInfoBean = webNewInfo.getDataBean(0);

		// 料金シミュレーション情報
		X31SDataBeanAccessArray prcSimuInfo = webNewInfoBean.getDataBeanArray(CommonInfoCFConst.PRSIML_INFO);
		X31SDataBeanAccess prcSimuInfoBean = prcSimuInfo.getDataBean(0);

		// 料金プラン一覧情報
		X31SDataBeanAccessArray pplanPrcInfo = prcSimuInfoBean.getDataBeanArray(CommonInfoCFConst.PPLAN_ICRN_INFO);
		// 初期費用条件一覧情報
		X31SDataBeanAccessArray shokiPrcInfo = prcSimuInfoBean.getDataBeanArray(CommonInfoCFConst.SHKH_JOKEN_ICRN_INFO);
		// 2013/03/22【No.464】Fujiwara Add Start
		// メッセージ一覧情報
		X31SDataBeanAccessArray msgIcrnInfo = prcSimuInfoBean.getDataBeanArray(CommonInfoCFConst.MSG_ICRN_INFO);
		// 2013/03/22【No.464】Fujiwara Add End

		// ■月額料金取得
		if (pplanPrcInfo != null && pplanPrcInfo.getCount() > 0)
		{
			for (int i = 0; i < pplanPrcInfo.getCount(); i++)
			{
				X31SDataBeanAccess pplanPrcInfoBean = pplanPrcInfo.getDataBean(i);

				// 料金コースコード
				String pcrsCd = pplanPrcInfoBean.sendMessageString(CommonInfoCFConst.PCRS_CD_38, GET);
				// 料金プランコード
				String pplanCd = pplanPrcInfoBean.sendMessageString(CommonInfoCFConst.PPLAN_CD_38, GET);
				// 金額
				String amnt = pplanPrcInfoBean.sendMessageString(CommonInfoCFConst.PPLAN_AMNT_38, GET);

				// 料金コースコード・料金プランコードが白ロム、かつ、金額が設定されている場合、サービスフォームBeanに値を設定
				if (JFUStrConst.CD00134_A29.equals(pcrsCd) && JFUStrConst.CD00565_PA2902.equals(pplanCd) && !JFUStrConst.EMPTY.equals(amnt))
				{
					bean.sendMessageString(FUW00161SFConst.MONTH_FEE, SET, JFUWebCommon.formatNumber(amnt) + JFUStrConst.YEN);
					break;
				}
			}
		}

		// ■初期費用取得
		if (shokiPrcInfo != null && shokiPrcInfo.getCount() > 0)
		{
			for (int i = 0; i < shokiPrcInfo.getCount(); i++)
			{
				X31SDataBeanAccess shokiPrcInfoBean = shokiPrcInfo.getDataBean(i);

				// UQフラグ
				String uqFlg = shokiPrcInfoBean.sendMessageString(CommonInfoCFConst.MBL_UQ_MSKM_FLG_36, GET);
				// UQ初期費用
				String amnt = shokiPrcInfoBean.sendMessageString(CommonInfoCFConst.MBL_UQ_JMTE_36, GET);

				// UQフラグが「1」かつ金額が設定されている場合、サービスフォームBeanに値を設定
				if (CODE_1.equals(uqFlg) && !JFUStrConst.EMPTY.equals(amnt))
				{
					bean.sendMessageString(FUW00161SFConst.SHOKI_COST, SET, JFUWebCommon.formatNumber(amnt) + JFUStrConst.YEN);
					break;
				}
			}
		}

		// 2013/03/22【No.464】Fujiwara Add Start
		// ■月額費用注記文言取得
		if (msgIcrnInfo != null && msgIcrnInfo.getCount() > 0)
		{
			for (int i = 0; i < msgIcrnInfo.getCount(); i++)
			{
				X31SDataBeanAccess msgIcrnInfoBean = msgIcrnInfo.getDataBean(i);

				// 料金シミュメッセージパターンＩＤ
				String prsimlMsgPtnId = msgIcrnInfoBean.sendMessageString(CommonInfoCFConst.PRSIML_MSG_PTN_ID_39, GET);
				// 加入契約支払方式コード
				String kanyuKeiPayHoshikiCd = msgIcrnInfoBean.sendMessageString(CommonInfoCFConst.KANYU_KEI_PAY_HOSHIKI_CD_39, GET);
				// 料金表示分類コード	
				String prcDspBriCd = msgIcrnInfoBean.sendMessageString(CommonInfoCFConst.PRC_DSP_BRI_CD_39, GET);

				if (PRSIML_MSG_PTN_ID_UQ.equals(prsimlMsgPtnId) && JFUStrConst.EMPTY.equals(kanyuKeiPayHoshikiCd)
						&& PRC_DSP_BRI_CD_MONTH_FEE.equals(prcDspBriCd))
				{
					// 料金シミュレーション表示文言
					String prcSimlDspMongon = msgIcrnInfoBean.sendMessageString(CommonInfoCFConst.PRC_SIML_DSP_MONGON_39, GET);
					prcSimlDspMongon = prcSimlDspMongon.replaceAll(REGEX_STR, SPLIT_STR);
					String[] getsuRyokinMongon = prcSimlDspMongon.split(SPLIT_STR, 0);

					for (int j = 0; j < getsuRyokinMongon.length; j++)
					{
						bean.sendMessageString(FUW00161SFConst.GETSU_RYOKIN_MONGON, ADD, getsuRyokinMongon[j]);
					}
					break;
				}
			}
		}

		// ■初期費用注記文言取得
		if (msgIcrnInfo != null && msgIcrnInfo.getCount() > 0)
		{
			for (int i = 0; i < msgIcrnInfo.getCount(); i++)
			{
				X31SDataBeanAccess msgIcrnInfoBean = msgIcrnInfo.getDataBean(i);

				// 料金シミュメッセージパターンＩＤ
				String prsimlMsgPtnId = msgIcrnInfoBean.sendMessageString(CommonInfoCFConst.PRSIML_MSG_PTN_ID_39, GET);
				// 加入契約支払方式コード
				String kanyuKeiPayHoshikiCd = msgIcrnInfoBean.sendMessageString(CommonInfoCFConst.KANYU_KEI_PAY_HOSHIKI_CD_39, GET);
				// 料金表示分類コード	
				String prcDspBriCd = msgIcrnInfoBean.sendMessageString(CommonInfoCFConst.PRC_DSP_BRI_CD_39, GET);

				if (PRSIML_MSG_PTN_ID_UQ.equals(prsimlMsgPtnId) && JFUStrConst.EMPTY.equals(kanyuKeiPayHoshikiCd)
						&& PRC_DSP_BRI_CD_SHKH.equals(prcDspBriCd))
				{
					// 料金シミュレーション表示文言
					String prcSimlDspMongon = msgIcrnInfoBean.sendMessageString(CommonInfoCFConst.PRC_SIML_DSP_MONGON_39, GET);
					prcSimlDspMongon = prcSimlDspMongon.replaceAll(REGEX_STR, SPLIT_STR);
					String[] shokiHiyoMongon = prcSimlDspMongon.split(SPLIT_STR, 0);

					for (int j = 0; j < shokiHiyoMongon.length; j++)
					{
						bean.sendMessageString(FUW00161SFConst.SHOKI_HIYO_MONGON, ADD, shokiHiyoMongon[j]);
					}
					break;
				}
			}
		}
		// 2013/03/22【No.464】Fujiwara Add End
	}

	/**
	 * クレジットカード番号チェック処理です。
	 * 
	 * <br>
	 * @param bean サービスフォームBean
	 * @return 結果
	 * @throws Exception
	 */
	private boolean chkCreditNo(X31SDataBeanAccess bean) throws Exception
	{
		// クレジットカード会社選択値
		int idxCreComp = Integer.parseInt(bean.sendMessageString(FUW00161SFConst.CRE_COMP, GET));

		// クレジットカード会社情報を取得
		X31SDataBeanAccessArray creCompBeanArray = bean.getDataBeanArray(FUW00161SFConst.CRE_COMP_LIST);
		X31SDataBeanAccess creCompBean = creCompBeanArray.getDataBean(0);

		// クレジットカード会社コード取得
		String creCompCd = creCompBean.sendMessageString(FUW00161SFConst.CRE_COMP_CD_02, GET, idxCreComp);

		// 正しく取得できていない場合、FALSEで返却
		if (creCompCd == null || creCompCd.length() == 0)
		{
			return false;
		}

		// クレジットカード番号を取得して結合
		String creCardNo1 = bean.sendMessageString(FUW00161SFConst.CRE_NUM_1, GET);
		String creCardNo2 = bean.sendMessageString(FUW00161SFConst.CRE_NUM_2, GET);
		String creCardNo3 = bean.sendMessageString(FUW00161SFConst.CRE_NUM_3, GET);
		String creCardNo4 = bean.sendMessageString(FUW00161SFConst.CRE_NUM_4, GET);
		String cardNo = creCardNo1 + creCardNo2 + creCardNo3 + creCardNo4;

		// チェック実行
		return JZMCreditcardValid.isCreditcardValid(creCompCd, cardNo);
	}

	/**
	 * 入力チェック処理です。
	 * 
	 * <br>
	 * @param se
	 * @return
	 */
	private boolean chkInputValue(JCCWebServiceException se, X31SDataBeanAccess bean)
	{
		// 判定結果
		boolean result = true;

		// 例外情報を取得
		X31CMessageResult msgResult = se.getMessageList();
		X31CMessageMoreInfo[] moreInfo = msgResult.getMessageMoreInfoList();

		// 関連チェック系は必ずエラーが1つのため0番目から取得する。
		X31CMessageMoreInfo infoRel = moreInfo[0];

		if (String.valueOf(JPCModelConstant.SINGLEDATA_ERR).equals(infoRel.getStatus()))
		{
			// 単項目チェックエラーのみ処理
			for (int i = 0; i < moreInfo.length; i++)
			{
				// エラー情報の取得
				X31CMessageMoreInfo infoSingle = moreInfo[i];
				String templateid = infoSingle.getTemplateId();
				String itemid = infoSingle.getItemId();
				String status = infoSingle.getStatus();

				if (ERR_TEMP_ID_ECK0021D010.equals(templateid))
				{
					// お客様＜個人＞登録SC
					setErrMsgECK0021D010(itemid, status);
				}
				else if (ERR_TEMP_ID_ECK0201D010.equals(templateid))
				{
					// 連絡先登録SC
					setErrMsgECK0201D010(itemid, status, bean);
				}
				else if (ERR_TEMP_ID_EKK0061A010.equals(templateid))
				{
					// 代理店一意照会SC
					setErrMsgEKK0061A010(itemid, status);
				}
				else if (ERR_TEMP_ID_EKK0521D010.equals(templateid))
				{
					// クレジット請求手続きSC
					setErrMsgEKK0521D010(itemid, status);
				}
			}

			result = false;
		}

		return result;
	}

	/**
	 * 住所分割CCのチェック処理です。
	 * 
	 * <br>
	 * @param outMap アウトマップ
	 * @return true:OK / false:NG
	 */
	@SuppressWarnings("unchecked")
	private boolean chkJushoBunkatsu(HashMap outMap)
	{
		boolean result = true;

		HashMap parentMap = (HashMap)outMap.get(FUSV026601CC);
		if (parentMap == null || parentMap.size() == 0)
		{
			return false;
		}

		if (!parentMap.containsKey(FUSV026601CC_ERR_ITEM_LIST.get(0)) || !parentMap.containsKey(FUSV026601CC_ERR_ITEM_LIST.get(1)))
		{
			// マップに項目IDが存在しない場合、エラーメッセージは表示しないが、エラーとする
			// ※前処理の単項目チェックエラーの場合の対応
			return false;
		}

		String state = null;
		String kuchoson = null;
		if (parentMap.containsKey(FUSV026601CC_ERR_ITEM_LIST.get(0)))
		{
			state = (String)parentMap.get(FUSV026601CC_ERR_ITEM_LIST.get(0));
		}
		if (parentMap.containsKey(FUSV026601CC_ERR_ITEM_LIST.get(1)))
		{
			kuchoson = (String)parentMap.get(FUSV026601CC_ERR_ITEM_LIST.get(1));
		}

		// 値チェック
		if (JFUWebCommon.isNull(state) || JFUWebCommon.isNull(kuchoson))
		{
			result = false;
		}

		return result;
	}

	/**
	 * お客様＜個人＞登録SCのエラーメッセージ設定処理です。
	 * 
	 * <br>
	 * @param itemid 項目ID
	 * @param status ステータス
	 */
	private void setErrMsgECK0021D010(String itemid, String status)
	{
		if (String.valueOf(JPCModelConstant.SINGLEDATA_ERR).equals(status) && ECK0021D010_ERR_ITEM_LIST.get(0).equals(itemid))
		{
			JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0400_TW, CUST_NM_ERR_MSG, CUST_IFNO_DSP_ITEM_LIST.get(0));
		}
		if (String.valueOf(JPCModelConstant.SINGLEDATA_ERR).equals(status) && ECK0021D010_ERR_ITEM_LIST.get(1).equals(itemid))
		{
			JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0400_TW, CUST_NM_KANA_ERR_MSG, CUST_IFNO_DSP_ITEM_LIST.get(1));
		}
		if (String.valueOf(JPCModelConstant.SINGLEDATA_ERR).equals(status) && ECK0021D010_ERR_ITEM_LIST.get(2).equals(itemid))
		{
			JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0400_TW, CUST_SEX_ERR_MSG, CUST_IFNO_DSP_ITEM_LIST.get(2));
		}
		if (String.valueOf(JPCModelConstant.SINGLEDATA_ERR).equals(status) && ECK0021D010_ERR_ITEM_LIST.get(3).equals(itemid))
		{
			JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0400_TW, CUST_BIRTH_ERR_MSG, CUST_IFNO_DSP_ITEM_LIST.get(3));
		}
		if (String.valueOf(JPCModelConstant.SINGLEDATA_ERR).equals(status) && ECK0021D010_ERR_ITEM_LIST.get(4).equals(itemid))
		{
			JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0400_TW, PCD_ERR_MSG, CUST_IFNO_DSP_ITEM_LIST.get(4));
		}
		if (String.valueOf(JPCModelConstant.SINGLEDATA_ERR).equals(status) && ECK0021D010_ERR_ITEM_LIST.get(5).equals(itemid))
		{
			JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0400_TW, AZA_ERR_MSG, CUST_IFNO_DSP_ITEM_LIST.get(5));
		}
		if (String.valueOf(JPCModelConstant.SINGLEDATA_ERR).equals(status) && ECK0021D010_ERR_ITEM_LIST.get(6).equals(itemid))
		{
			JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0400_TW, CHOBAN_ERR_MSG, CUST_IFNO_DSP_ITEM_LIST.get(6));
		}
		if (String.valueOf(JPCModelConstant.SINGLEDATA_ERR).equals(status) && ECK0021D010_ERR_ITEM_LIST.get(7).equals(itemid))
		{
			JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0400_TW, BUILDING_ERR_MSG, CUST_IFNO_DSP_ITEM_LIST.get(7));
		}
		if (String.valueOf(JPCModelConstant.SINGLEDATA_ERR).equals(status) && ECK0021D010_ERR_ITEM_LIST.get(8).equals(itemid))
		{
			JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0400_TW, ROOM_NO_ERR_MSG, CUST_IFNO_DSP_ITEM_LIST.get(8));
		}
		if (String.valueOf(JPCModelConstant.SINGLEDATA_ERR).equals(status) && ECK0021D010_ERR_ITEM_LIST.get(9).equals(itemid))
		{
			JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0400_TW, TLN_ERR_MSG, CUST_IFNO_DSP_ITEM_LIST.get(9));
		}
	}

	/**
	 * 連絡先登録SCのエラーメッセージ設定処理です。
	 * 
	 * <br>
	 * @param itemid 項目ID
	 * @param status ステータス
	 */
	private void setErrMsgECK0201D010(String itemid, String status, X31SDataBeanAccess bean)
	{
		if (String.valueOf(JPCModelConstant.SINGLEDATA_ERR).equals(status) && FUSV026602SC_ERR_ITEM_LIST.get(0).equals(itemid))
		{
			// 契約種別
			String keiSbt = bean.sendMessageString(FUW00161SFConst.KEI_SBT, GET);

			if (JFUStrConst.KEI_SBT_KOJINCD.equals(keiSbt))
			{
				JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0400_TW, KOJIN_EMAIL_ERR_MSG, DSP_ITEM_LIST_EMAIL.get(0));
			}
			else
			{
				JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0400_TW, HOJIN_EMAIL_ERR_MSG, DSP_ITEM_LIST_EMAIL.get(1));
			}
		}
	}

	/**
	 * 代理店一意照会SCのエラーメッセージ設定処理です。
	 * 
	 * <br>
	 * @param itemid 項目ID
	 * @param status ステータス
	 */
	private void setErrMsgEKK0061A010(String itemid, String status)
	{
		if (String.valueOf(JPCModelConstant.SINGLEDATA_ERR).equals(status) && FUSV026605SC_ERR_ITEM_LIST.get(0).equals(itemid))
		{
			JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0400_TW, TORI_CD_ERR_MSG, DSP_ITEM_TORI_CD);
		}
	}

	/**
	 * クレジット請求手続きSCのエラーメッセージ設定処理です。
	 * 
	 * <br>
	 * @param itemid 項目ID
	 * @param status ステータス
	 */
	private void setErrMsgEKK0521D010(String itemid, String status)
	{
		if (String.valueOf(JPCModelConstant.SINGLEDATA_ERR).equals(status) && FUSV026606SC_ERR_ITEM_LIST.get(0).equals(itemid))
		{
			JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0420_TW, CRE_COMP_ERR_MSG, DSP_ITEM_LIST_CRECARD.get(0));
		}
		if (String.valueOf(JPCModelConstant.SINGLEDATA_ERR).equals(status) && FUSV026606SC_ERR_ITEM_LIST.get(1).equals(itemid))
		{
			JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0400_TW, CRE_NO_ERR_MSG, DSP_ITEM_LIST_CRECARD.get(1));
		}
		if (String.valueOf(JPCModelConstant.SINGLEDATA_ERR).equals(status) && FUSV026606SC_ERR_ITEM_LIST.get(2).equals(itemid))
		{
			JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0400_TW, CRE_GIGEN_ERR_MSG, DSP_ITEM_LIST_CRECARD.get(2));
		}
		if (String.valueOf(JPCModelConstant.SINGLEDATA_ERR).equals(status) && FUSV026606SC_ERR_ITEM_LIST.get(3).equals(itemid))
		{
			JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0400_TW, CRE_MEIGI_NM_ERR_MSG, DSP_ITEM_LIST_CRECARD.get(3));
		}
	}

	// 白ロム引継ぎ対応 >>>
	// 取扱コードの削除
	//	/**
	//	 * 取扱コード存在チェック(代理店存在チェック)処理です。
	//	 * 
	//	 * <br>
	//	 * @param outMap アウトマップ
	//	 * @return true:OK / false:NG
	//	 */
	//	@SuppressWarnings("unchecked")
	//	private boolean chkToriCd(HashMap outMap)
	//
	//	{
	//		boolean result = true;
	//
	//		HashMap parentMap = (HashMap)outMap.get(FUSV026605SC);
	//		if (parentMap == null || parentMap.size() == 0)
	//		{
	//			return false;
	//		}
	//		if (!parentMap.containsKey(EKK0061A010CBSMSG1LIST))
	//		{
	//			return false;
	//		}
	//
	//		ArrayList childList = (ArrayList)parentMap.get(EKK0061A010CBSMSG1LIST);
	//		if (childList == null || childList.size() == 0)
	//		{
	//			return false;
	//		}
	//
	//		for (int i = 0; i < childList.size(); i++)
	//		{
	//			HashMap childMap = (HashMap)childList.get(i);
	//			if (childMap == null || childMap.size() == 0)
	//			{
	//				result = false;
	//				break;
	//			}
	//			if (!childMap.containsKey(AGNT_CD) || !childMap.containsKey(AGNT_NM))
	//			{
	//				result = false;
	//				break;
	//			}
	//
	//			String agntCd = (String)childMap.get(AGNT_CD);
	//			String agntNm = (String)childMap.get(AGNT_NM);
	//			if (JFUWebCommon.isNull(agntCd) || JFUWebCommon.isNull(agntNm))
	//			{
	//				result = false;
	//				break;
	//			}
	//		}
	//
	//		return result;
	//	}
	// 白ロム引継ぎ対応 <<<E

	//【障害番号：IT1-2013-0000347】対応 2012/03/01 Fujiwara Add Start
	/**
	 * コンテンツ情報設定処理です。
	 * 
	 * <br>
	 * @param webNewInfoBean WEB新規情報
	 * @param keiyakushaInfoBean 契約者情報
	 * @param bean サービスフォームBean
	 * @return true:OK / false:NG
	 */
	private void setContInfo(X31SDataBeanAccess webNewInfoBean, X31SDataBeanAccess keiyakushaInfoBean, X31SDataBeanAccess bean)
	{
		// ■個人情報取得
		// 氏名(姓)
		String kshnmSei = keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSHNM_SEI_09, X31CWebConst.DATABEAN_GET_VALUE);
		// 氏名(名)
		String kshmNm = keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSHNM_NM_09, X31CWebConst.DATABEAN_GET_VALUE);
		// 法人情報取得
		// ■法人名
		String hojinnm = keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.HOJINNM_09, GET);

		// 名前が入っていない場合
		if ("".equals(kshnmSei) && "".equals(kshmNm) && "".equals(hojinnm))
		{
			// ■個人情報設定値
			// 氏名かな(姓)
			String kshknSei = "";
			// 氏名かな(名)
			String kshknNm = "";
			// 生年月日
			String birthdYear = "";
			String birthdMonth = "";
			String birthdDay = "";
			// 性別
			String sex = "";
			// 個人メールアドレス
			String kojinMlad = "";
			// 郵便番号（上）
			String kshPcd1 = "";
			// 郵便番号（下）
			String kshPcd2 = "";

			// コンテンツ情報を取得
			X31SDataBeanAccessArray contInfo = webNewInfoBean.getDataBeanArray(CommonInfoCFConst.CONT_INFO);
			X31SDataBeanAccess contInfoBean = contInfo.getDataBean(0);

			// コンテンツお客様名を取得
			String contCustNm = contInfoBean.sendMessageString(CommonInfoCFConst.CONT_CUST_NM_50, X31CWebConst.DATABEAN_GET_VALUE);

			// 全角スペースで分割
			String[] contCustNmArray = contCustNm.split(JFUStrConst.SPACE);

			// 分割できた場合
			if (contCustNmArray.length > 1)
			{
				kshnmSei = contCustNmArray[0];
				kshmNm = (contCustNm.length() > kshnmSei.length() + 1) ? (contCustNm.substring(kshnmSei.length() + 1, contCustNm.length())) : ("");
			}
			// 分割できなかった場合
			else if (contCustNmArray.length == 1)
			{
				kshnmSei = contCustNmArray[0];
			}

			// コンテンツお客様カナ名を取得
			String contCustKana = contInfoBean.sendMessageString(CommonInfoCFConst.CONT_CUST_KANA_50, X31CWebConst.DATABEAN_GET_VALUE);

			// 全角スペースで分割
			String[] contCustKanAarray = contCustKana.split(JFUStrConst.SPACE);

			// 分割できた場合
			if (contCustKanAarray.length > 1)
			{
				kshknSei = contCustKanAarray[0];
				kshknNm =
						(contCustKana.length() > kshknSei.length() + 1) ? (contCustKana.substring(kshknSei.length() + 1, contCustKana.length()))
								: ("");
			}

			// 分割できなかった場合
			else if (contCustKanAarray.length == 1)
			{
				kshknSei = contCustKanAarray[0];
			}

			// コンテンツ用連絡先メールアドレスを取得
			String contMlad = contInfoBean.sendMessageString(CommonInfoCFConst.CONT_MLAD_50, X31CWebConst.DATABEAN_GET_VALUE);
			kojinMlad = contMlad;

			// コンテンツお客様生年月日を取得
			String contCustbirthd = contInfoBean.sendMessageString(CommonInfoCFConst.CONT_CUST_BIRTHD_50, X31CWebConst.DATABEAN_GET_VALUE);

			// 分割して設定
			birthdYear = (contCustbirthd.length() >= YYYYMMDD_LENGTH_YEAR) ? (contCustbirthd.substring(0, YYYYMMDD_LENGTH_YEAR)) : ("");
			birthdMonth =
					(contCustbirthd.length() >= YYYYMMDD_LENGTH_MONTH) ? (contCustbirthd.substring(YYYYMMDD_LENGTH_YEAR, YYYYMMDD_LENGTH_MONTH))
							: ("");
			birthdDay =
					(contCustbirthd.length() >= YYYYMMDD_LENGTH_DAY) ? (contCustbirthd.substring(YYYYMMDD_LENGTH_MONTH, YYYYMMDD_LENGTH_DAY)) : ("");

			// コンテンツお客様性別コードを取得
			String contCustSexCd = contInfoBean.sendMessageString(CommonInfoCFConst.CONT_CUST_SEX_CD_50, X31CWebConst.DATABEAN_GET_VALUE);

			// そのまま設定する
			sex = contCustSexCd;

			// 郵便番号
			// コンテンツコンテンツ郵便番号を取得
			String contPcd = contInfoBean.sendMessageString(CommonInfoCFConst.CONT_PCD_50, X31CWebConst.DATABEAN_GET_VALUE);

			if (contPcd.length() == PCD_LENGTH)
			{
				kshPcd1 = contPcd.substring(0, PCD1_LENGTH);
				kshPcd2 = contPcd.substring(PCD1_LENGTH, PCD_LENGTH);
			}

			// ■個人
			// 氏名(姓)
			bean.sendMessageString(FUW00161SFConst.KOJIN_SEI, SET, kshnmSei);
			// 氏名(名)
			bean.sendMessageString(FUW00161SFConst.KOJIN_MEI, SET, kshmNm);
			// 氏名かな(姓)
			bean.sendMessageString(FUW00161SFConst.KOJIN_KANA_SEI, SET, kshknSei);
			// 氏名かな(名)
			bean.sendMessageString(FUW00161SFConst.KOJIN_KANA_MEI, SET, kshknNm);
			// 生年月日
			bean.sendMessageString(FUW00161SFConst.KOJIN_BIRTH_YEAR, SET, birthdYear);
			bean.sendMessageString(FUW00161SFConst.KOJIN_BIRTH_MONTH, SET, birthdMonth);
			bean.sendMessageString(FUW00161SFConst.KOJIN_BIRTH_DAY, SET, birthdDay);
			// 性別
			bean.sendMessageString(FUW00161SFConst.KOJIN_SEX, SET, sex);
			// メールアドレス
			bean.sendMessageString(FUW00161SFConst.KOJIN_EMAIL_INPUT, SET, kojinMlad);
			// ■契約者住所
			// 郵便番号(上)
			keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSH_PCD1_09, SET, kshPcd1);
			// 郵便番号(下)
			keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSH_PCD2_09, SET, kshPcd2);
		}
	}

	//【障害番号：IT1-2013-0000347】対応 2012/03/01 Fujiwara Add End

	// 【No.773】白ロムエラー文言 >>>
	/**
	 * Beanの子要素の配列1番目を取得（子要素無い場合作成）
	 * @param i_bean_array Beanアクセサの配列
	 * @return 子要素配列１番目へのアクセサ
	 */
	private X31SDataBeanAccess getDataBeanZero(X31SDataBeanAccessArray i_bean_array)
	{
		if (i_bean_array.getCount() <= 0)
		{
			i_bean_array.addDataBean();
		}

		return i_bean_array.getDataBean(0);
	}
	// 【No.773】白ロムエラー文言 <<<E

}
