/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：eo光電話お客さま契約情報変更／照会メニュービューロジック
*   ソースファイル名：FUW05301SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年10月03日
*＜機能概要＞
*   eo光電話お客さま契約情報変更／照会メニュービューロジッククラスです。
*＜修正履歴＞
*   バージョン  修正日      修正者      修正内容
*   v1.00.00    2011/10/03   FJ）萩原   新規作成
*   v3.00       2012/04/11   FJ）濱口    変更【ANK-0047-00-00】通話料上限通知機能対応
*   v3.00       2012/04/11   FJ）濱口    変更【ANK-0048-00-00】国際電話停止機能対応
*   v3.01       2012/06/01   FJ）南岡    変更【UI残(No.170)】電話帳記載名文言修正対応
*   v5.00       2013/02/04   FJ) 美濃原  変更【ANK-1399-00-00】フロントＳ文言確認修正対応
*   v5.00       2013/04/11   FJ）瀧澤    変更【IT-2013-0000843】共通関連チェック(住所変更中チェック)対応
*   v5.01       2013/08/23   FJ）文元    変更【OT-2013-0000784】WEBカスコンに連携するパスワードを変更
*   v7.00       2014/02/14   FJ）岡井    変更【ANK-1922-00-00】eo光eoモバイル一覧の電話番号選択相関画面対応
*   v8.00       2014/05/26   FJ）中谷    変更【OM-2014-0001954】電話オプション申込の住変中チェックの改修
*   v9.00       2014/05/02   FJ）畑中    変更【ANK-2056-00-00】光TELセレクトオプションパック
*   v9.00       2014/05/20   FJ）西山    変更【ANK-2057-00-00】eo多機能ルーターによる複数通話対応
*   v14.00      2015/03/19   FJ) 西川    変更【OM-2015-0000218】撤去工事完了時のオプション申込受付不具合
*   v33.00      2017/08/31   FJ) 西川    変更【ANK-2794-00-00】フロントの督促ST制限強化
*   v37.00      2018/02/22   FJ) 美濃原  変更【ANK-3366-00-00】eo光設備卸対応
**********************************************************************/
package eo.web.webview.FUW05301SF;

import static com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;

import com.fujitsu.futurity.model.common.JCMAPLConstMgr;
import com.fujitsu.futurity.web.x00.JCCBusinessException;
import com.fujitsu.futurity.web.x00.JCCWebServiceException;
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.util.JPCUtilCommon;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JFUScreenConst;
import eo.web.webview.common.JFUWebCommon;
import eo.web.webview.mapping.FUSV0081_FUSV0081OPDBMapper;

/**
 * eo光電話お客さま契約情報変更／照会メニュービューロジッククラスです。<p>
 * <br/>
 * @author 富士通
 */
@SuppressWarnings( { "serial", "unchecked" })
public class FUW05301SFLogic extends JCCWebBusinessLogic
{
	/** DataBean操作種別：項目値設定 */
	private static final String SET = X31CWebConst.DATABEAN_SET_VALUE;
	/** DataBean操作種別：項目値取得 */
	private static final String GET = X31CWebConst.DATABEAN_GET_VALUE;

	/** 処理区分：申込 */
	private static final String TRAN_DIV_1 = "1";
	/** 処理区分：解約 */
	private static final String TRAN_DIV_2 = "2";
	/** 処理区分：変更 */
	private static final String TRAN_DIV_3 = "3";

	/** サービスID :  eo光電話お客さま契約情報変更／照会メニュー */
	private static final String SVC_ID_INIT = "FUSV0081";

	/** 同日を含む／含まない：含む (JPCUtilCommon.isPastDate()の必須パラメータ) */
	private static final String DOJITSU_HUKUMU = "1";

	/** サービスユースケースID：eo光電話お客さま契約情報変更／照会メニュー(初期表示) */
	private static final String SVC_USECASE_ID_FUSV0081 = "FUSV0081";

	/** SCタイトル：eo光電話サービス契約情報一覧照会 */
	private static final String SC_TITLE_FUSV008101SC = "FUSV008101SC";

	/** 機器オプションサービス契約一覧照会（複合検索） */
	private static final String FUSV008104_S_C = "FUSV008104SC";
	/** 回線利用場所毎サービス契約番号一覧 */
	private static final String FUSV008105_S_C = "FUSV008105SC";

	/** Mapキー：eo光電話サービス契約情報一覧照会明細 */
	private static final String MAP_KEY_EKK0081B508_CBSMSGLIST = "EKK0081B508CBSMsg1List";

	/** Mapキー：サービス契約情報リスト.異動予約詳細コード(サービス契約) */
	private static final String MAP_KEY_KK0081_IDO_RSV_DTL_CD = "kk0081_ido_rsv_dtl_cd";

	/** SCタイトル：現サービス契約内訳情報一覧照会（電話） */
	private static final String SC_TITLE_FUSV008103SC = "FUSV008103SC";

	/** Mapキー：現サービス契約内訳情報一覧照会（電話）明細 */
	private static final String MAP_KEY_EKK0161B505_CBSMSGLIST = "EKK0161B505CBSMsg1List";

	/** Mapキー：現サービス契約内訳情報一覧照会（電話）明細.異動予約詳細コード(サービス契約) */
	private static final String MAP_KEY_SVC_KEI_UCWK_STAT = "svc_kei_ucwk_stat";

	/** オプション・サブオプション表示レベル：行表示・ボタン非表示 */
	private static final String DSP_LV_0 = "0";
	/** オプション・サブオプション表示レベル：行表示・ボタン表示 */
	private static final String DSP_LV_1 = "1";
	/** オプション・サブオプション表示レベル：行非表示 */
	private static final String DSP_LV_9 = "9";

	/** WEBオプション追加不可フラグ：追加可 */
	private static final String WEB_OP_ADD_KH_FLG_0 = "0";

	/** WEBオプション追加不可フラグ：追加不可 */
	private static final String WEB_OP_ADD_KH_FLG_1 = "1";

	/** 光電話オプションパック適用オプション(サブオプションも含む) */
	private static final List<String> TEL_PACK_OPT =
			Arrays.asList(JFUStrConst.CD00136_B025, JFUStrConst.CD00136_B023, JFUStrConst.CD00136_B024, JFUStrConst.CD00137_D07,
					JFUStrConst.CD00137_D08, JFUStrConst.CD00136_B026, JFUStrConst.CD00136_B027);

	/** 画面間引き継ぎ情報：申込割引サービスコード */
	private static final String MAPKEY_MSKM_WRIB_SVC_CD = "申込割引サービスコード";

	/** 画面間引き継ぎ情報：申込料金コースコード（割引） */
	private static final String MAPKEY_MSKM_WRIB_PCRS_CD = "申込料金コースコード";

	/** 画面間引き継ぎ情報：申込料金プランコード（割引） */
	private static final String MAPKEY_MSKM_WRIB_PPLAN_CD = "申込料金プランコード";

	/** 画面間引き継ぎ情報：申込オプションサービスコード */
	private static final String MAPKEY_MSKM_OP_SVC_CD = "申込オプションサービスコード";

	/** 画面間引き継ぎ情報：複数通話フラグ */
	private static final String MAPKEY_MSKM_MULTI_TALK_FLG = "複数通話フラグ";

	/** 画面間引き継ぎ情報：メニュー押下ボタン種別 */
	private static final String MAPKEY_MSKM_MENU_BTN_KND = "メニュー押下ボタン種別";

	/** 画面間引き継ぎ情報：メニューお得判定結果 */
	private static final String MAPKEY_MSKM_MENU_OTOKU_HANTEI = "メニューお得判定結果";

	/** 複数通話　複数通話画面へ */
	private static final String MULTI_PHONE_SENI_FLG = "0";
	/** 複数通話　各種通信機器画面へ */
	private static final String MULTI_PHONE_SENI_FLG_COMMUNICATION_EQUIPMENT = "1";
	/** 複数通話　エラー画面へ　*/
	private static final String MULTI_PHONE_SENI_FLG_ERROR = "2";

	/** 機器オプションサービス契約一覧照会（複合検索）明細スキーマ */
	private static final String EKK2811_B_504_C_B_S_MSG1_LIST = "EKK2811B504CBSMsg1List";
	/** 機器提供サービス契約番号 */
	private static final String KKTK_SVC_KEI_NO = "kktk_svc_kei_no";
	/** 機器オプションサービス契約ステータス */
	public static final String KKOP_SVC_KEI_STAT = "kkop_svc_kei_stat";
	/** 機器オプションサービスコード */
	public static final String KKOP_SVC_CD = "kkop_svc_cd";

	/** サービス契約回線内訳明細スキーマ */
	private static final String EKK0251_B_502_C_B_S_MSG1_LIST = "EKK0251B502CBSMsg1List";
	/** サービス契約＿料金コースコード */
	private static final String PRC_GRP_CD = "prc_grp_cd";
	/** サービス契約ステータス */
	private static final String SVC_KEI_STAT = "svc_kei_stat";
	/** サービス契約回線内訳番号 */
	private static final String SVC_KEI_KAISEN_UCWK_NO = "svc_kei_kaisen_ucwk_no";

	/** 多機能を持っていない_かつ_各種通信機器へリンク無し */
	private static final String NOT_MULTI_PHONE_CALL_NOT_LINK_KAKUSYUTUSINKIKI = "0_1";

	/** 電話オプション申込み可否判定マップキー */
	private static final String TEL_OP_MSKM_CHECK_KEY = "JFUTelOpMskmCheckCC";

	/**
	 * オプション・サブオプション制御コードリスト<br/>
	 * 各オプションサービスコードと画面制御用フラグのキー名の紐付け定義です。
	 * →以下の2つの値を元に、メニュー画面に表示する明細行と
	 *   申込/解約・設定ボタンの表示制御を行ないます。
	 *   @オプション・サブオプションサービス契約の有無
	 *   A料金コース_オプションサービスの上限数設定値
	 *
	 *【要素の内訳】
	 * [n][0]オプション/サブオプション区分("0"：オプション、"1"：サブオプション)
	 * [n][1]オプションサービスコード
	 * [n][2]サブオプションサービスコード
	 * [n][3]オプションorサブオプションサービス契約の契約有無の格納先キー名
	 * [n][4]オプションorサブオプションサービス契約の表示レベルの格納先キー名
	 */
	private static final String[][] OPCD_LIST =
			new String[][] {
					// 電話番号通知
					{ "0", JFUStrConst.CD00136_B022, JFUStrConst.EMPTY, FUW05301SFConst.TELNO_TCH_UM, FUW05301SFConst.TELNO_TCH_LV },
					// 割込電話
					{ "0", JFUStrConst.CD00136_B023, JFUStrConst.EMPTY, FUW05301SFConst.WARKMI_TEL_SVC_KEI_UM, FUW05301SFConst.WARKMI_TEL_SVC_LV },
					// 複数通話
					{ "0", JFUStrConst.CD00136_B023, JFUStrConst.EMPTY, FUW05301SFConst.MULTI_PHONE_SVC_KEI_UM, FUW05301SFConst.MULTI_PHONE_LV },
					// 転送電話
					{ "0", JFUStrConst.CD00136_B024, JFUStrConst.EMPTY, FUW05301SFConst.TENSO_TEL_SVC_KEI_UM, FUW05301SFConst.TENSO_TEL_SVC_LV },
					// 転送電話選択(転送電話のサブオプション)
					{ "1", JFUStrConst.CD00136_B024, JFUStrConst.CD00137_D07, FUW05301SFConst.TENSO_TEL_CHOICE_SVC_KEI_UM,
							FUW05301SFConst.TENSO_TEL_CHOICE_SVC_LV },
					// 発信者番号表示
					{ "0", JFUStrConst.CD00136_B025, JFUStrConst.EMPTY, FUW05301SFConst.HASINSHA_NO_DSP_SVC_KEI_UM,
							FUW05301SFConst.HASINSHA_NO_DSP_SVC_LV },
					// 非通知着信拒否(発信者番号表示のサブオプション)
					{ "1", JFUStrConst.CD00136_B025, JFUStrConst.CD00137_D08, FUW05301SFConst.HITCHI_INCMHI_SVC_KEI_UM,
							FUW05301SFConst.HITCHI_INCMHI_SVC_LV },
					// 迷惑電話拒否
					{ "0", JFUStrConst.CD00136_B026, JFUStrConst.EMPTY, FUW05301SFConst.MWKTEL_KYOHI_SVC_KEI_UM, FUW05301SFConst.MWKTEL_KYOHI_SVC_LV },
					// 指定番号着信選択
					{ "0", JFUStrConst.CD00136_B027, JFUStrConst.EMPTY, FUW05301SFConst.STINO_INCMSET_SVC_KEI_UM,
							FUW05301SFConst.STINO_INCMSET_SVC_LV },
					// 通話明細送付
					{ "0", JFUStrConst.CD00136_B028, JFUStrConst.EMPTY, FUW05301SFConst.TW_DTL_SOHU_SVC_KEI_UM, FUW05301SFConst.TW_DTL_SOHU_SVC_LV },
					// 050ナンバープラス
					{ "0", JFUStrConst.CD00136_B029, JFUStrConst.EMPTY, FUW05301SFConst.NO_PLUS_KEI_UM, FUW05301SFConst.NO_PLUS_KEI_LV },
					// 国際電話停止
					{ "0", JFUStrConst.CD00136_B071, JFUStrConst.EMPTY, FUW05301SFConst.GROBAL_TEISHI_UM, FUW05301SFConst.GROBAL_TEISHI_LV },
					// 通話料上限通知
					{ "0", JFUStrConst.CD00136_B072, JFUStrConst.EMPTY, FUW05301SFConst.TOUTA_TCH_UM, FUW05301SFConst.TOUTA_TCH_LV } };

	/* ++++++++++ v3.01 修正開始 ++++++++++ */
	/** 定義取得パス 電話帳記載名 */
	private static final String PATH_DNWACHO_KISAINM = "DISPSETTING/SETTING[@screenId='FUW05301']/DISPTEXT[@groupid='dnwacho_kisainm']";
	/** 属性名 */
	private static final String QUERY_ATTR_NAME = "id";

	/* ++++++++++ v3.01 修正終了 ++++++++++ */

	/**
	 * 割引サービス料金リスト
	 *
	 *【要素の内訳】
	 * [n][0]割引サービスコード
	 * [n][1]料金コースコード
	 * [n][2]料金プランコード
	 */
	private static final String[][] WRIB_OPCD_LIST =
			new String[][] { { JFUStrConst.KK0841_WRIB_SVC_CD_TEL_OP_PACK3, JFUStrConst.CD00134_F03, JFUStrConst.CD00565_PF0301 },
					{ JFUStrConst.KK0841_WRIB_SVC_CD_TEL_OP_PACK7, JFUStrConst.CD00134_F04, JFUStrConst.CD00565_PF0401 } };

	/**
	 * オプションサービス料金リスト（サブオプション含む）
	 *
	 *【要素の内訳】
	 * [n][0]オプションサービスコード
	 * [n][1]料金コースコード
	 * [n][2]料金プランコード
	 */
	private static final String[][] OP_PRC_LIST =
			new String[][] { { JFUStrConst.CD00136_B025, JFUStrConst.CD00134_B29, JFUStrConst.CD00565_PB2901 },
					{ JFUStrConst.CD00136_B023, JFUStrConst.CD00134_B27, JFUStrConst.CD00565_PB2701 },
					{ JFUStrConst.CD00136_B024, JFUStrConst.CD00134_B28, JFUStrConst.CD00565_PB2801 },
					{ JFUStrConst.CD00137_D07, JFUStrConst.CD00134_D07, JFUStrConst.CD00565_PD0701 },
					{ JFUStrConst.CD00137_D08, JFUStrConst.CD00134_D08, JFUStrConst.CD00565_PD0801 },
					{ JFUStrConst.CD00136_B026, JFUStrConst.CD00134_B30, JFUStrConst.CD00565_PB3001 },
					{ JFUStrConst.CD00136_B027, JFUStrConst.CD00134_B31, JFUStrConst.CD00565_PB3101 } };

	/** メニューボタン種別 */
	private static final String MENU_BUTTON_OP_MSKM = "1";
	private static final String MENU_BUTTON_OP_KIYK = "2";
	private static final String MENU_BUTTON_PACK3_MSKM = "3";
	private static final String MENU_BUTTON_PACK3_HKKY = "4";
	private static final String MENU_BUTTON_PACK7_MSKM = "5";
	private static final String MENU_BUTTON_PACK7_HKKY = "6";

	/**
	 * 初期表示処理
	 * <br/>
	 * @return 処理結果
	 * @throws Exception	すべての例外
	 */
	public boolean init() throws Exception
	{

		// デバッグ用ログ出力
		DEBUG_LOG.info("----- FUW5301 Start init -----");

		// ●遷移元画面IDがFUW00129(eo光eoモバイル契約一覧)の場合、以下の処理を行う
		if (JFUScreenConst.SCREEN_ID_FUW00129.equals(getCommonInfoBean().sendMessageString(CommonInfoCFConst.BEFORE_SCREEN_ID, GET)))
		{
			excuteBfFuw00129();
		}

		// -------------------------------------------------
		// 使用フォームBeanの取得
		// -------------------------------------------------
		// 共有フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();
		// eo光電話お客さま契約情報変更／照会メニューサービスフォームBean
		X31SDataBeanAccess serviceFormBean = getServiceFormBean();

		//----------------------------------------------
		// サービスフォームBean初期化(リロード対応)
		//----------------------------------------------
		initBean(serviceFormBean);

		// -------------------------------------------------
		// 共通フォームBeanからサービス契約情報を取得
		// -------------------------------------------------
		this.setSvcKeiInfo(commonInfoBean, serviceFormBean);

		// -------------------------------------------------
		// eo光電話お客さま契約情報変更／照会メニュー(初期表示)サービス実行
		// -------------------------------------------------
		HashMap<String, HashMap<String, Object>> outputMap = this.executeInitService(commonInfoBean, serviceFormBean);

		//----------------------------------------------
		// 共通関連チェック
		//----------------------------------------------
		// APLConstの設定はNO_CHECK(遷移元：SSOログイン、新規系「FUW00129_eo光eoモバイル契約一覧」経由)にし、ここで処理を行う
		JFUWebCommon.checkCommonRelation(this, SVC_ID_INIT);

		// -------------------------------------------------
		// サービス契約情報エラーチェック
		// -------------------------------------------------
		this.checkInitError(serviceFormBean, outputMap);

		// -------------------------------------------------
		// 検索結果を画面表示用に加工編集
		// -------------------------------------------------
		this.editDispData(serviceFormBean, outputMap);

		// -------------------------------------------------
		// 既契約オプションの料金情報を取得
		// -------------------------------------------------
		this.setOptPrcCd(serviceFormBean);

		// ●住所変更有無(2番号申込)
		serviceFormBean.sendMessageString(FUW05301SFConst.AD_CHG_UM2, X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon.getAdChgUm(this,
				JFUStrConst.RELATION_CHECK_AD_CHG_CHK_PTN_A));

		// ●住所変更有無(オプション申込)
		serviceFormBean.sendMessageString(FUW05301SFConst.AD_CHG_UM, X31CWebConst.DATABEAN_SET_VALUE, setOPMskmFlg(serviceFormBean, outputMap));

		// -------------------------------------------------
		// 利用可能とする督促ステータスチェック
		// -------------------------------------------------
		checkTokusokuStat(commonInfoBean, serviceFormBean);

		// -------------------------------------------------
		// 遷移先画面ID、画面名の設定
		// -------------------------------------------------
		// eo光電話お客さま契約情報変更／照会メニュー画面に遷移
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW05301);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW05301);

		// デバッグ用ログ出力
		DEBUG_LOG.info("----- FUW5301 Start End -----");

		return true;
	}

	/**
	 * 2番号サービス申込ボタン押下処理
	 * <br/>
	 * @return 処理結果
	 */
	public boolean mskmTwoNoSvc()
	{
		DEBUG_LOG.info("----- FUW5301 Start mskmTwoNoSvc -----");

		// -------------------------------------------------
		// 使用フォームBeanの取得
		// -------------------------------------------------
		// 共有フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// -------------------------------------------------
		// 画面間引き継ぎ情報の設定
		// -------------------------------------------------
		// 処理区分：なし
		JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW01403, this.createDataMap(null));

		// -------------------------------------------------
		// 遷移先画面ID、画面名の設定
		// -------------------------------------------------
		// 2番号サービスお申し込み画面に遷移
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW01403);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW01403);

		DEBUG_LOG.info("----- FUW5301 End mskmTwoNoSvc -----");
		return true;
	}

	/**
	 * 通話料指定額到達申込ボタン押下処理
	 * <br/>
	 * @return 処理結果
	 */
	public boolean tuwaSitiTttuMskm()
	{
		DEBUG_LOG.info("----- FUW5301 Start tuwaSitiTttuMskm -----");

		// -------------------------------------------------
		// 使用フォームBeanの取得
		// -------------------------------------------------
		// 共有フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// -------------------------------------------------
		// 画面間引き継ぎ情報の設定
		// -------------------------------------------------
		// 処理区分：申込
		JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW10201, this.createDataMap(TRAN_DIV_1));

		// -------------------------------------------------
		// 遷移先画面ID、画面名の設定
		// -------------------------------------------------
		// 転送電話選択サービス申込解約画面に遷移
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW10201);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW10201);

		DEBUG_LOG.info("----- FUW5301 End tuwaSitiTttuMskm -----");

		return true;
	}

	/**
	 * 通話料指定額到達変更ボタン押下処理
	 * <br/>
	 * @return 処理結果
	 */
	public boolean tuwaSitiTttuDsl()
	{
		DEBUG_LOG.info("----- FUW5301 Start tuwaSitiTttuDsl -----");

		// -------------------------------------------------
		// 使用フォームBeanの取得
		// -------------------------------------------------
		// 共有フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// -------------------------------------------------
		// 画面間引き継ぎ情報の設定
		// -------------------------------------------------
		// 処理区分：変更
		JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW10201, this.createDataMap(TRAN_DIV_3));

		// -------------------------------------------------
		// 遷移先画面ID、画面名の設定
		// -------------------------------------------------
		// 転送電話選択サービス申込解約画面に遷移
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW10201);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW10201);

		DEBUG_LOG.info("----- FUW5301 End tuwaSitiTttuDsl -----");

		return true;
	}

	/**
	 * 通話明細照会ボタン押下処理
	 * <br/>
	 * @return 処理結果
	 */
	public boolean openTwDtlShokai()
	{
		DEBUG_LOG.info("----- FUW5301 Start openTwDtlShokai -----");

		// -------------------------------------------------
		// 使用フォームBeanの取得
		// -------------------------------------------------
		// 共有フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// -------------------------------------------------
		// 画面間引き継ぎ情報の設定
		// -------------------------------------------------
		// 処理区分：なし
		JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW08201, this.createDataMap(null));

		// -------------------------------------------------
		// 遷移先画面ID、画面名の設定
		// -------------------------------------------------
		// 通話明細照会メニュー画面に遷移
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW08201);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW08201);

		DEBUG_LOG.info("----- FUW5301 End openTwDtlShokai -----");

		return true;
	}

	/**
	 * eo光電話パック３申込ボタン押下処理
	 * <br/>
	 * @return 処理結果
	 */
	public boolean mskmTriplePack()
	{
		DEBUG_LOG.info("----- FUW5301 Start mskmTriplePack -----");

		// -------------------------------------------------
		// 使用フォームBeanの取得
		// -------------------------------------------------
		// 共有フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// 電話オプションパック申込解約画面に渡す割引サービスコードを取得
		String otokuWribSvcCode = getPackScreenWribSvcCd();

		// 申込区分取得
		String tranDiv = "";
		if (JFUStrConst.KK0841_WRIB_SVC_CD_TEL_OP_PACK7.equals(otokuWribSvcCode))
		{
			// お得判定後の割引サービスコードがパック７場合、変更解約モード
			tranDiv = TRAN_DIV_2;
		}
		else
		{
			// 上記以外の場合、申込モード
			tranDiv = TRAN_DIV_1;
		}

		// -------------------------------------------------
		// 画面間引き継ぎ情報の設定
		// -------------------------------------------------
		// 処理区分：申込
		HashMap<String, Object> map = this.createDataMapForPack(tranDiv, otokuWribSvcCode, "", MENU_BUTTON_PACK3_MSKM);
		JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW11001, map);

		// -------------------------------------------------
		// 遷移先画面ID、画面名の設定
		// -------------------------------------------------
		// 電話オプションパック申込解約画面に遷移
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW11001);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW11001);

		DEBUG_LOG.info("----- FUW5301 End mskmTriplePack -----");

		return true;
	}

	/**
	 * eo光電話パック３変更／解約ボタン押下処理
	 * <br/>
	 * @return 処理結果
	 */
	public boolean dslTriplePack()
	{
		DEBUG_LOG.info("----- FUW5301 Start dslTriplePack -----");

		// -------------------------------------------------
		// 使用フォームBeanの取得
		// -------------------------------------------------
		// 共有フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// 電話オプションパック申込解約画面に渡す割引サービスコードを取得
		String otokuWribSvcCode = getPackScreenWribSvcCd();

		// -------------------------------------------------
		// 画面間引き継ぎ情報の設定
		// -------------------------------------------------
		// 処理区分：解約
		HashMap<String, Object> map = this.createDataMapForPack(TRAN_DIV_2, otokuWribSvcCode, "", MENU_BUTTON_PACK3_HKKY);
		JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW11001, map);

		// -------------------------------------------------
		// 遷移先画面ID、画面名の設定
		// -------------------------------------------------
		// 電話オプションパック申込解約画面に遷移
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW11001);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW11001);

		DEBUG_LOG.info("----- FUW5301 End dslTriplePack -----");

		return true;
	}

	/**
	 * eo光電話パック７申込ボタン押下処理
	 * <br/>
	 * @return 処理結果
	 */
	public boolean mskmFullPack()
	{
		DEBUG_LOG.info("----- FUW5301 Start mskmFullPack -----");

		// -------------------------------------------------
		// 使用フォームBeanの取得
		// -------------------------------------------------
		// 共有フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// 電話オプションパック申込解約画面に渡す割引サービスコードを取得
		String otokuWribSvcCode = getPackScreenWribSvcCd();

		// -------------------------------------------------
		// 画面間引き継ぎ情報の設定
		// -------------------------------------------------
		// 処理区分：申込
		HashMap<String, Object> map = this.createDataMapForPack(TRAN_DIV_1, otokuWribSvcCode, "", MENU_BUTTON_PACK7_MSKM);
		JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW11001, map);

		// -------------------------------------------------
		// 遷移先画面ID、画面名の設定
		// -------------------------------------------------
		// 電話オプションパック申込解約画面に遷移
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW11001);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW11001);

		DEBUG_LOG.info("----- FUW5301 End mskmFullPack -----");

		return true;
	}

	/**
	 * eo光電話パック７変更／解約ボタン押下処理
	 * <br/>
	 * @return 処理結果
	 */
	public boolean dslFullPack()
	{
		DEBUG_LOG.info("----- FUW5301 Start dslFullPack -----");

		// -------------------------------------------------
		// 使用フォームBeanの取得
		// -------------------------------------------------
		// 共有フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// 電話オプションパック申込解約画面に渡す割引サービスコードを取得
		String otokuWribSvcCode = getPackScreenWribSvcCd();

		// -------------------------------------------------
		// 画面間引き継ぎ情報の設定
		// -------------------------------------------------
		// 処理区分：解約
		HashMap<String, Object> map = this.createDataMapForPack(TRAN_DIV_2, otokuWribSvcCode, "", MENU_BUTTON_PACK7_HKKY);
		JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW11001, map);

		// -------------------------------------------------
		// 遷移先画面ID、画面名の設定
		// -------------------------------------------------
		// 電話オプションパック申込解約画面に遷移
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW11001);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW11001);

		DEBUG_LOG.info("----- FUW5301 End dslFullPack -----");

		return true;
	}

	/**
	 * 050ナンバープラス申込ボタン押下処理
	 * <br/>
	 * @return 処理結果
	 */
	public boolean mskm050NoPlus()
	{
		DEBUG_LOG.info("----- FUW5301 Start mskm050NoPlus -----");

		// -------------------------------------------------
		// 使用フォームBeanの取得
		// -------------------------------------------------
		// 共有フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// -------------------------------------------------
		// 画面間引き継ぎ情報の設定
		// -------------------------------------------------
		// 処理区分：申込
		JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW06201, this.createDataMap(TRAN_DIV_1));

		// -------------------------------------------------
		// 遷移先画面ID、画面名の設定
		// -------------------------------------------------
		// 050ナンバープラス申込解約画面に遷移
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW06201);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW06201);

		DEBUG_LOG.info("----- FUW5301 End mskm050NoPlus -----");

		return true;
	}

	/**
	 * 050ナンバープラス解約ボタン押下処理
	 * <br/>
	 * @return 処理結果
	 */
	public boolean dsl050NoPlus()
	{
		DEBUG_LOG.info("----- FUW5301 Start dsl050NoPlus -----");

		// -------------------------------------------------
		// 使用フォームBeanの取得
		// -------------------------------------------------
		// 共有フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// -------------------------------------------------
		// 画面間引き継ぎ情報の設定
		// -------------------------------------------------
		// 処理区分：解約
		JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW06201, this.createDataMap(TRAN_DIV_2));

		// -------------------------------------------------
		// 遷移先画面ID、画面名の設定
		// -------------------------------------------------
		// 050ナンバープラス申込解約画面に遷移
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW06201);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW06201);

		DEBUG_LOG.info("----- FUW5301 End dsl050NoPlus -----");

		return true;
	}

	/**
	 * 割込電話申込ボタン押下処理
	 * <br/>
	 * @return 処理結果
	 */
	public boolean mskmWarkmiTel()
	{
		DEBUG_LOG.info("----- FUW5301 Start mskmWarkmiTel -----");

		// -------------------------------------------------
		// 使用フォームBeanの取得
		// -------------------------------------------------
		// 共有フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// 電話オプションパック申込解約画面に渡す割引サービスコードを取得
		String packScreenWribSvcCd = getPackScreenWribSvcCd();

		if (!JFUWebCommon.isNull(packScreenWribSvcCd))
		{
			// -------------------------------------------------
			// 画面間引き継ぎ情報の設定
			// -------------------------------------------------
			// 処理区分：申込
			HashMap<String, Object> map = this.createDataMapForPack(TRAN_DIV_1, packScreenWribSvcCd, JFUStrConst.CD00136_B023, MENU_BUTTON_OP_MSKM);
			JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW11001, map);

			// -------------------------------------------------
			// 遷移先画面ID、画面名の設定
			// -------------------------------------------------
			// 電話オプションパック申込解約画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW11001);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW11001);
		}
		else
		{
			// -------------------------------------------------
			// 画面間引き継ぎ情報の設定
			// -------------------------------------------------
			// 処理区分：申込
			JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW05401, this.createDataMap(TRAN_DIV_1));

			// -------------------------------------------------
			// 遷移先画面ID、画面名の設定
			// -------------------------------------------------
			// 割込電話サービス申込解約画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW05401);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW05401);
		}

		DEBUG_LOG.info("----- FUW5301 End mskmWarkmiTel -----");

		return true;
	}

	/**
	 * 割込電話解約ボタン押下処理
	 * <br/>
	 * @return 処理結果
	 */
	public boolean dslWarkmiTel()
	{
		DEBUG_LOG.info("----- FUW5301 Start dslWarkmiTel -----");

		// -------------------------------------------------
		// 使用フォームBeanの取得
		// -------------------------------------------------
		// 共有フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// 電話オプションパック申込解約画面に渡す割引サービスコードを取得
		String packScreenWribSvcCd = getPackScreenWribSvcCd();

		if (!JFUWebCommon.isNull(packScreenWribSvcCd))
		{
			// -------------------------------------------------
			// 画面間引き継ぎ情報の設定
			// -------------------------------------------------
			// 処理区分：解約
			HashMap<String, Object> map = this.createDataMapForPack(TRAN_DIV_2, packScreenWribSvcCd, JFUStrConst.CD00136_B023, MENU_BUTTON_OP_KIYK);
			JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW11001, map);

			// -------------------------------------------------
			// 遷移先画面ID、画面名の設定
			// -------------------------------------------------
			// 電話オプションパック申込解約画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW11001);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW11001);
		}
		else
		{
			// -------------------------------------------------
			// 画面間引き継ぎ情報の設定
			// -------------------------------------------------
			// 処理区分：解約
			JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW05401, this.createDataMap(TRAN_DIV_2));

			// -------------------------------------------------
			// 遷移先画面ID、画面名の設定
			// -------------------------------------------------
			// 割込電話サービス申込解約画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW05401);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW05401);
		}

		DEBUG_LOG.info("----- FUW5301 End dslWarkmiTel -----");

		return true;
	}

	/**
	 * 複数通話申込ボタン押下処理
	 * <br/>
	 * @return 処理結果
	 */
	public boolean mskmMultiPhone()
	{
		DEBUG_LOG.info("----- FUW5301 Start mskmMultiPhone -----");

		// -------------------------------------------------
		// 使用フォームBeanの取得
		// -------------------------------------------------

		// eo光電話お客さま契約情報変更／照会メニューサービスフォームBean
		X31SDataBeanAccess serviceFormBean = getServiceFormBean();

		String multiPhoneSeniFlg = serviceFormBean.sendMessageString(FUW05301SFConst.MULTI_PHONE_SENI_FLG, GET);
		if (MULTI_PHONE_SENI_FLG_ERROR.equals(multiPhoneSeniFlg))
		{
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0126);
		}

		// 共有フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// 電話オプションパック申込解約画面に渡す割引サービスコードを取得
		String packScreenWribSvcCd = getPackScreenWribSvcCd();

		if (!JFUWebCommon.isNull(packScreenWribSvcCd))
		{
			// -------------------------------------------------
			// 画面間引き継ぎ情報の設定
			// -------------------------------------------------
			// 処理区分：申込
			HashMap<String, Object> map = this.createDataMapForPack(TRAN_DIV_1, packScreenWribSvcCd, JFUStrConst.CD00136_B023, MENU_BUTTON_OP_MSKM);
			JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW11001, map);

			// -------------------------------------------------
			// 遷移先画面ID、画面名の設定
			// -------------------------------------------------
			// 電話オプションパック申込解約画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW11001);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW11001);
		}
		else
		{
			// -------------------------------------------------
			// 画面間引き継ぎ情報の設定
			// -------------------------------------------------
			// 処理区分：申込
			JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW05401, this.createDataMap(TRAN_DIV_1));

			// -------------------------------------------------
			// 遷移先画面ID、画面名の設定
			// -------------------------------------------------
			// 割込電話サービス申込解約画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW05401);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW05401);
		}

		DEBUG_LOG.info("----- FUW5301 End mskmMultiPhone -----");

		return true;
	}

	/**
	 * 複数通話解約ボタン押下処理
	 * <br/>
	 * @return 処理結果
	 */
	public boolean dslMultiPhone()
	{
		DEBUG_LOG.info("----- FUW5301 Start dslMultiPhone -----");

		// -------------------------------------------------
		// 使用フォームBeanの取得
		// -------------------------------------------------
		// 共有フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// 電話オプションパック申込解約画面に渡す割引サービスコードを取得
		String packScreenWribSvcCd = getPackScreenWribSvcCd();

		if (!JFUWebCommon.isNull(packScreenWribSvcCd))
		{
			// -------------------------------------------------
			// 画面間引き継ぎ情報の設定
			// -------------------------------------------------
			// 処理区分：解約
			HashMap<String, Object> map = this.createDataMapForPack(TRAN_DIV_2, packScreenWribSvcCd, JFUStrConst.CD00136_B023, MENU_BUTTON_OP_KIYK);
			JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW11001, map);

			// -------------------------------------------------
			// 遷移先画面ID、画面名の設定
			// -------------------------------------------------
			// 電話オプションパック申込解約画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW11001);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW11001);
		}
		else
		{
			// -------------------------------------------------
			// 画面間引き継ぎ情報の設定
			// -------------------------------------------------
			// 処理区分：解約
			JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW05401, this.createDataMap(TRAN_DIV_2));

			// -------------------------------------------------
			// 遷移先画面ID、画面名の設定
			// -------------------------------------------------
			// 割込電話サービス申込解約画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW05401);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW05401);
		}

		DEBUG_LOG.info("----- FUW5301 End dslMultiPhone -----");

		return true;
	}

	/**
	 * 転送電話申込ボタン押下処理
	 * <br/>
	 * @return 処理結果
	 */
	public boolean mskmTensoTel()
	{
		DEBUG_LOG.info("----- FUW5301 Start mskmTensoTel -----");

		// -------------------------------------------------
		// 使用フォームBeanの取得
		// -------------------------------------------------
		// 共有フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// 電話オプションパック申込解約画面に渡す割引サービスコードを取得
		String packScreenWribSvcCd = getPackScreenWribSvcCd();

		if (!JFUWebCommon.isNull(packScreenWribSvcCd))
		{
			// -------------------------------------------------
			// 画面間引き継ぎ情報の設定
			// -------------------------------------------------
			// 処理区分：申込
			HashMap<String, Object> map = this.createDataMapForPack(TRAN_DIV_1, packScreenWribSvcCd, JFUStrConst.CD00136_B024, MENU_BUTTON_OP_MSKM);
			JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW11001, map);

			// -------------------------------------------------
			// 遷移先画面ID、画面名の設定
			// -------------------------------------------------
			// 電話オプションパック申込解約画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW11001);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW11001);
		}
		else
		{
			// -------------------------------------------------
			// 画面間引き継ぎ情報の設定
			// -------------------------------------------------
			// 処理区分：申込
			JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW05501, this.createDataMap(TRAN_DIV_1));

			// -------------------------------------------------
			// 遷移先画面ID、画面名の設定
			// -------------------------------------------------
			// 転送電話サービス申込解約画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW05501);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW05501);
		}

		DEBUG_LOG.info("----- FUW5301 End mskmTensoTel -----");

		return true;
	}

	/**
	 * 転送電話解約ボタン押下処理
	 * <br/>
	 * @return 処理結果
	 */
	public boolean dslTensoTel()
	{
		DEBUG_LOG.info("----- FUW5301 Start dslTensoTel -----");

		// -------------------------------------------------
		// 使用フォームBeanの取得
		// -------------------------------------------------
		// 共有フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// 電話オプションパック申込解約画面に渡す割引サービスコードを取得
		String packScreenWribSvcCd = getPackScreenWribSvcCd();

		if (!JFUWebCommon.isNull(packScreenWribSvcCd))
		{
			// -------------------------------------------------
			// 画面間引き継ぎ情報の設定
			// -------------------------------------------------
			// 処理区分：解約
			HashMap<String, Object> map = this.createDataMapForPack(TRAN_DIV_2, packScreenWribSvcCd, JFUStrConst.CD00136_B024, MENU_BUTTON_OP_KIYK);
			JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW11001, map);

			// -------------------------------------------------
			// 遷移先画面ID、画面名の設定
			// -------------------------------------------------
			// 電話オプションパック申込解約画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW11001);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW11001);
		}
		else
		{
			// -------------------------------------------------
			// 画面間引き継ぎ情報の設定
			// -------------------------------------------------
			// 処理区分：解約
			JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW05501, this.createDataMap(TRAN_DIV_2));

			// -------------------------------------------------
			// 遷移先画面ID、画面名の設定
			// -------------------------------------------------
			// 転送電話サービス申込解約画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW05501);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW05501);
		}

		DEBUG_LOG.info("----- FUW5301 Start End -----");

		return true;
	}

	/**
	 * 転送電話選択申込ボタン押下処理
	 * <br/>
	 * @return 処理結果
	 */
	public boolean mskmTensoTelChoice()
	{
		DEBUG_LOG.info("----- FUW5301 Start mskmTensoTelChoice -----");

		// -------------------------------------------------
		// 使用フォームBeanの取得
		// -------------------------------------------------
		// 共有フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// 電話オプションパック申込解約画面に渡す割引サービスコードを取得
		String packScreenWribSvcCd = getPackScreenWribSvcCd();

		if (!JFUWebCommon.isNull(packScreenWribSvcCd))
		{
			// -------------------------------------------------
			// 画面間引き継ぎ情報の設定
			// -------------------------------------------------
			// 処理区分：申込
			HashMap<String, Object> map = this.createDataMapForPack(TRAN_DIV_1, packScreenWribSvcCd, JFUStrConst.CD00137_D07, MENU_BUTTON_OP_MSKM);
			JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW11001, map);

			// -------------------------------------------------
			// 遷移先画面ID、画面名の設定
			// -------------------------------------------------
			// 電話オプションパック申込解約画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW11001);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW11001);
		}
		else
		{
			// -------------------------------------------------
			// 画面間引き継ぎ情報の設定
			// -------------------------------------------------
			// 処理区分：申込
			JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW05601, this.createDataMap(TRAN_DIV_1));

			// -------------------------------------------------
			// 遷移先画面ID、画面名の設定
			// -------------------------------------------------
			// 転送電話選択サービス申込解約画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW05601);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW05601);
		}

		DEBUG_LOG.info("----- FUW5301 End mskmTensoTelChoice -----");

		return true;
	}

	/**
	 * 転送電話選択解約ボタン押下処理
	 * <br/>
	 * @return 処理結果
	 */
	public boolean dslTensoTelChoice()
	{
		DEBUG_LOG.info("----- FUW5301 Start dslTensoTelChoice -----");

		// -------------------------------------------------
		// 使用フォームBeanの取得
		// -------------------------------------------------
		// 共有フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// 電話オプションパック申込解約画面に渡す割引サービスコードを取得
		String packScreenWribSvcCd = getPackScreenWribSvcCd();

		if (!JFUWebCommon.isNull(packScreenWribSvcCd))
		{
			// -------------------------------------------------
			// 画面間引き継ぎ情報の設定
			// -------------------------------------------------
			// 処理区分：解約
			HashMap<String, Object> map = this.createDataMapForPack(TRAN_DIV_2, packScreenWribSvcCd, JFUStrConst.CD00137_D07, MENU_BUTTON_OP_KIYK);
			JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW11001, map);

			// -------------------------------------------------
			// 遷移先画面ID、画面名の設定
			// -------------------------------------------------
			// 電話オプションパック申込解約画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW11001);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW11001);
		}
		else
		{
			// -------------------------------------------------
			// 画面間引き継ぎ情報の設定
			// -------------------------------------------------
			// 処理区分：解約
			JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW05601, this.createDataMap(TRAN_DIV_2));

			// -------------------------------------------------
			// 遷移先画面ID、画面名の設定
			// -------------------------------------------------
			// 転送電話選択サービス申込解約画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW05601);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW05601);
		}

		DEBUG_LOG.info("----- FUW5301 End dslTensoTelChoice -----");

		return true;
	}

	/**
	 * 発信者番号表示申込ボタン押下処理
	 * <br/>
	 * @return 処理結果
	 */
	public boolean mskmHasinshaNoDsp()
	{
		DEBUG_LOG.info("----- FUW5301 Start mskmHasinshaNoDsp -----");

		// -------------------------------------------------
		// 使用フォームBeanの取得
		// -------------------------------------------------
		// 共有フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// 電話オプションパック申込解約画面に渡す割引サービスコードを取得
		String packScreenWribSvcCd = getPackScreenWribSvcCd();

		if (!JFUWebCommon.isNull(packScreenWribSvcCd))
		{
			// -------------------------------------------------
			// 画面間引き継ぎ情報の設定
			// -------------------------------------------------
			// 処理区分：申込
			HashMap<String, Object> map = this.createDataMapForPack(TRAN_DIV_1, packScreenWribSvcCd, JFUStrConst.CD00136_B025, MENU_BUTTON_OP_MSKM);
			JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW11001, map);

			// -------------------------------------------------
			// 遷移先画面ID、画面名の設定
			// -------------------------------------------------
			// 電話オプションパック申込解約画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW11001);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW11001);
		}
		else
		{
			// -------------------------------------------------
			// 画面間引き継ぎ情報の設定
			// -------------------------------------------------
			// 処理区分：申込
			JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW05701, this.createDataMap(TRAN_DIV_1));

			// -------------------------------------------------
			// 遷移先画面ID、画面名の設定
			// -------------------------------------------------
			// 発信者番号表示サービス申込解約画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW05701);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW05701);
		}

		DEBUG_LOG.info("----- FUW5301 End mskmHasinshaNoDsp -----");

		return true;
	}

	/**
	 * 発信者番号表示解約ボタン押下処理
	 * <br/>
	 * @return 処理結果
	 */
	public boolean dslHasinshaNoDsp()
	{
		DEBUG_LOG.info("----- FUW5301 Start dslHasinshaNoDsp -----");

		// -------------------------------------------------
		// 使用フォームBeanの取得
		// -------------------------------------------------
		// 共有フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// 電話オプションパック申込解約画面に渡す割引サービスコードを取得
		String packScreenWribSvcCd = getPackScreenWribSvcCd();

		if (!JFUWebCommon.isNull(packScreenWribSvcCd))
		{
			// -------------------------------------------------
			// 画面間引き継ぎ情報の設定
			// -------------------------------------------------
			// 処理区分：解約
			HashMap<String, Object> map = this.createDataMapForPack(TRAN_DIV_2, packScreenWribSvcCd, JFUStrConst.CD00136_B025, MENU_BUTTON_OP_KIYK);
			JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW11001, map);

			// -------------------------------------------------
			// 遷移先画面ID、画面名の設定
			// -------------------------------------------------
			// 電話オプションパック申込解約画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW11001);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW11001);
		}
		else
		{
			// -------------------------------------------------
			// 画面間引き継ぎ情報の設定
			// -------------------------------------------------
			// 処理区分：解約
			JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW05701, this.createDataMap(TRAN_DIV_2));

			// -------------------------------------------------
			// 遷移先画面ID、画面名の設定
			// -------------------------------------------------
			// 発信者番号表示サービス申込解約画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW05701);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW05701);
		}

		DEBUG_LOG.info("----- FUW5301 End dslHasinshaNoDsp -----");

		return true;
	}

	/**
	 * 非通知着信拒否申込ボタン押下処理
	 * <br/>
	 * @return 処理結果
	 */
	public boolean mskmHitchiIncmhi()
	{
		DEBUG_LOG.info("----- FUW5301 Start mskmHitchiIncmhi -----");

		// -------------------------------------------------
		// 使用フォームBeanの取得
		// -------------------------------------------------
		// 共有フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// 電話オプションパック申込解約画面に渡す割引サービスコードを取得
		String packScreenWribSvcCd = getPackScreenWribSvcCd();

		if (!JFUWebCommon.isNull(packScreenWribSvcCd))
		{
			// -------------------------------------------------
			// 画面間引き継ぎ情報の設定
			// -------------------------------------------------
			// 処理区分：申込
			HashMap<String, Object> map = this.createDataMapForPack(TRAN_DIV_1, packScreenWribSvcCd, JFUStrConst.CD00137_D08, MENU_BUTTON_OP_MSKM);
			JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW11001, map);

			// -------------------------------------------------
			// 遷移先画面ID、画面名の設定
			// -------------------------------------------------
			// 電話オプションパック申込解約画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW11001);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW11001);
		}
		else
		{
			// -------------------------------------------------
			// 画面間引き継ぎ情報の設定
			// -------------------------------------------------
			// 処理区分：申込
			JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW05801, this.createDataMap(TRAN_DIV_1));

			// -------------------------------------------------
			// 遷移先画面ID、画面名の設定
			// -------------------------------------------------
			// 非通知着信拒否サービス申込解約画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW05801);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW05801);
		}

		DEBUG_LOG.info("----- FUW5301 End mskmHitchiIncmhi -----");

		return true;
	}

	/**
	 * 非通知着信拒否解約ボタン押下処理
	 * <br/>
	 * @return 処理結果
	 */
	public boolean dslHitchiIncmhi()
	{
		DEBUG_LOG.info("----- FUW5301 Start dslHitchiIncmhi -----");

		// -------------------------------------------------
		// 使用フォームBeanの取得
		// -------------------------------------------------
		// 共有フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// 電話オプションパック申込解約画面に渡す割引サービスコードを取得
		String packScreenWribSvcCd = getPackScreenWribSvcCd();

		if (!JFUWebCommon.isNull(packScreenWribSvcCd))
		{
			// -------------------------------------------------
			// 画面間引き継ぎ情報の設定
			// -------------------------------------------------
			// 処理区分：解約
			HashMap<String, Object> map = this.createDataMapForPack(TRAN_DIV_2, packScreenWribSvcCd, JFUStrConst.CD00137_D08, MENU_BUTTON_OP_KIYK);
			JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW11001, map);

			// -------------------------------------------------
			// 遷移先画面ID、画面名の設定
			// -------------------------------------------------
			// 電話オプションパック申込解約画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW11001);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW11001);
		}
		else
		{
			// -------------------------------------------------
			// 画面間引き継ぎ情報の設定
			// -------------------------------------------------
			// 処理区分：解約
			JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW05801, this.createDataMap(TRAN_DIV_2));

			// -------------------------------------------------
			// 遷移先画面ID、画面名の設定
			// -------------------------------------------------
			// 非通知着信拒否サービス申込解約画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW05801);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW05801);
		}

		DEBUG_LOG.info("----- FUW5301 End dslHitchiIncmhi -----");

		return true;
	}

	/**
	 * 迷惑電話拒否申込ボタン押下処理
	 * <br/>
	 * @return 処理結果
	 */
	public boolean mskmMwktelKyohi()
	{
		DEBUG_LOG.info("----- FUW5301 Start mskmMwktelKyohi -----");

		// -------------------------------------------------
		// 使用フォームBeanの取得
		// -------------------------------------------------
		// 共有フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// 電話オプションパック申込解約画面に渡す割引サービスコードを取得
		String packScreenWribSvcCd = getPackScreenWribSvcCd();

		if (!JFUWebCommon.isNull(packScreenWribSvcCd))
		{
			// -------------------------------------------------
			// 画面間引き継ぎ情報の設定
			// -------------------------------------------------
			// 処理区分：申込
			HashMap<String, Object> map = this.createDataMapForPack(TRAN_DIV_1, packScreenWribSvcCd, JFUStrConst.CD00136_B026, MENU_BUTTON_OP_MSKM);
			JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW11001, map);

			// -------------------------------------------------
			// 遷移先画面ID、画面名の設定
			// -------------------------------------------------
			// 電話オプションパック申込解約画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW11001);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW11001);
		}
		else
		{
			// -------------------------------------------------
			// 画面間引き継ぎ情報の設定
			// -------------------------------------------------
			// 処理区分：申込
			JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW05901, this.createDataMap(TRAN_DIV_1));

			// -------------------------------------------------
			// 遷移先画面ID、画面名の設定
			// -------------------------------------------------
			// 迷惑電話拒否サービス申込解約画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW05901);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW05901);
		}

		DEBUG_LOG.info("----- FUW5301 End mskmMwktelKyohi -----");

		return true;
	}

	/**
	 * 迷惑電話拒否解約ボタン押下処理
	 * <br/>
	 * @return 処理結果
	 */
	public boolean dslMwktelKyohi()
	{
		DEBUG_LOG.info("----- FUW5301 Start dslMwktelKyohi -----");

		// -------------------------------------------------
		// 使用フォームBeanの取得
		// -------------------------------------------------
		// 共有フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// 電話オプションパック申込解約画面に渡す割引サービスコードを取得
		String packScreenWribSvcCd = getPackScreenWribSvcCd();

		if (!JFUWebCommon.isNull(packScreenWribSvcCd))
		{
			// -------------------------------------------------
			// 画面間引き継ぎ情報の設定
			// -------------------------------------------------
			// 処理区分：解約
			HashMap<String, Object> map = this.createDataMapForPack(TRAN_DIV_2, packScreenWribSvcCd, JFUStrConst.CD00136_B026, MENU_BUTTON_OP_KIYK);
			JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW11001, map);

			// -------------------------------------------------
			// 遷移先画面ID、画面名の設定
			// -------------------------------------------------
			// 電話オプションパック申込解約画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW11001);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW11001);
		}
		else
		{
			// -------------------------------------------------
			// 画面間引き継ぎ情報の設定
			// -------------------------------------------------
			// 処理区分：解約
			JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW05901, this.createDataMap(TRAN_DIV_2));

			// -------------------------------------------------
			// 遷移先画面ID、画面名の設定
			// -------------------------------------------------
			// 迷惑電話拒否サービス申込解約画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW05901);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW05901);
		}

		DEBUG_LOG.info("----- FUW5301 End dslMwktelKyohi -----");

		return true;
	}

	/**
	 * 指定番号着信選択申込ボタン押下処理
	 * <br/>
	 * @return 処理結果
	 */
	public boolean mskmStinoIncmset()
	{
		DEBUG_LOG.info("----- FUW5301 Start mskmStinoIncmset -----");

		// -------------------------------------------------
		// 使用フォームBeanの取得
		// -------------------------------------------------
		// 共有フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// 電話オプションパック申込解約画面に渡す割引サービスコードを取得
		String packScreenWribSvcCd = getPackScreenWribSvcCd();

		if (!JFUWebCommon.isNull(packScreenWribSvcCd))
		{
			// -------------------------------------------------
			// 画面間引き継ぎ情報の設定
			// -------------------------------------------------
			// 処理区分：申込
			HashMap<String, Object> map = this.createDataMapForPack(TRAN_DIV_1, packScreenWribSvcCd, JFUStrConst.CD00136_B027, MENU_BUTTON_OP_MSKM);
			JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW11001, map);

			// -------------------------------------------------
			// 遷移先画面ID、画面名の設定
			// -------------------------------------------------
			// 電話オプションパック申込解約画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW11001);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW11001);
		}
		else
		{
			// -------------------------------------------------
			// 画面間引き継ぎ情報の設定
			// -------------------------------------------------
			// 処理区分：申込
			JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW06001, this.createDataMap(TRAN_DIV_1));

			// -------------------------------------------------
			// 遷移先画面ID、画面名の設定
			// -------------------------------------------------
			// 指定番号着信選択サービス申込解約画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW06001);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW06001);
		}

		DEBUG_LOG.info("----- FUW5301 End mskmStinoIncmset -----");

		return true;
	}

	/**
	 * 指定番号着信選択解約ボタン押下処理
	 * <br/>
	 * @return 処理結果
	 */
	public boolean dslStinoIncmset()
	{
		DEBUG_LOG.info("----- FUW5301 Start dslStinoIncmset -----");

		// -------------------------------------------------
		// 使用フォームBeanの取得
		// -------------------------------------------------
		// 共有フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// 電話オプションパック申込解約画面に渡す割引サービスコードを取得
		String packScreenWribSvcCd = getPackScreenWribSvcCd();

		if (!JFUWebCommon.isNull(packScreenWribSvcCd))
		{
			// -------------------------------------------------
			// 画面間引き継ぎ情報の設定
			// -------------------------------------------------
			// 処理区分：解約
			HashMap<String, Object> map = this.createDataMapForPack(TRAN_DIV_2, packScreenWribSvcCd, JFUStrConst.CD00136_B027, MENU_BUTTON_OP_KIYK);
			JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW11001, map);

			// -------------------------------------------------
			// 遷移先画面ID、画面名の設定
			// -------------------------------------------------
			// 電話オプションパック申込解約画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW11001);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW11001);
		}
		else
		{
			// -------------------------------------------------
			// 画面間引き継ぎ情報の設定
			// -------------------------------------------------
			// 処理区分：解約
			JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW06001, this.createDataMap(TRAN_DIV_2));

			// -------------------------------------------------
			// 遷移先画面ID、画面名の設定
			// -------------------------------------------------
			// 指定番号着信選択サービス申込解約画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW06001);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW06001);
		}

		DEBUG_LOG.info("----- FUW5301 End dslStinoIncmset -----");

		return true;
	}

	/**
	 * 通話明細送付申込ボタン押下処理
	 * <br/>
	 * @return 処理結果
	 */
	public boolean mskmTwDtlSohu()
	{
		DEBUG_LOG.info("----- FUW5301 Start mskmTwDtlSohu -----");

		// -------------------------------------------------
		// 使用フォームBeanの取得
		// -------------------------------------------------
		// 共有フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// -------------------------------------------------
		// 画面間引き継ぎ情報の設定
		// -------------------------------------------------
		// 処理区分：申込
		JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW06101, this.createDataMap(TRAN_DIV_1));

		// -------------------------------------------------
		// 遷移先画面ID、画面名の設定
		// -------------------------------------------------
		// 通話明細送付サービス申込解約画面に遷移
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW06101);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW06101);

		DEBUG_LOG.info("----- FUW5301 End mskmTwDtlSohu -----");

		return true;
	}

	/**
	 * 通話明細送付解約ボタン押下処理
	 * <br/>
	 * @return 処理結果
	 */
	public boolean dslTwDtlSohu()
	{
		DEBUG_LOG.info("----- FUW5301 Start dslTwDtlSohu -----");

		// -------------------------------------------------
		// 使用フォームBeanの取得
		// -------------------------------------------------
		// 共有フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// -------------------------------------------------
		// 画面間引き継ぎ情報の設定
		// -------------------------------------------------
		// 処理区分：解約
		JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW06101, this.createDataMap(TRAN_DIV_2));

		// -------------------------------------------------
		// 遷移先画面ID、画面名の設定
		// -------------------------------------------------
		// 通話明細送付サービス申込解約画面に遷移
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW06101);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW06101);

		DEBUG_LOG.info("----- FUW5301 End dslTwDtlSohu -----");

		return true;
	}

	/**
	 * 国際電話利用停止機能申込ボタン押下処理
	 * <br/>
	 * @return 処理結果
	 */
	public boolean kosiTuwaTesiMskm()
	{
		DEBUG_LOG.info("----- FUW5301 Start kosiTuwaTesiMskm -----");

		// -------------------------------------------------
		// 使用フォームBeanの取得
		// -------------------------------------------------
		// 共有フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// -------------------------------------------------
		// 画面間引き継ぎ情報の設定
		// -------------------------------------------------
		// 処理区分：申込
		JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW10301, this.createDataMap(TRAN_DIV_1));

		// -------------------------------------------------
		// 遷移先画面ID、画面名の設定
		// -------------------------------------------------
		// 通話明細送付サービス申込解約画面に遷移
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW10301);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW10301);

		DEBUG_LOG.info("----- FUW5301 End kosiTuwaTesiMskm -----");

		return true;
	}

	/**
	 * 国際電話利用停止機能解約ボタン押下処理
	 * <br/>
	 * @return 処理結果
	 */
	public boolean kosiTuwaTesiDsl()
	{
		DEBUG_LOG.info("----- FUW5301 Start kosiTuwaTesiDsl -----");

		// -------------------------------------------------
		// 使用フォームBeanの取得
		// -------------------------------------------------
		// 共有フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// -------------------------------------------------
		// 画面間引き継ぎ情報の設定
		// -------------------------------------------------
		// 処理区分：解約
		JFUWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW10301, this.createDataMap(TRAN_DIV_2));

		// -------------------------------------------------
		// 遷移先画面ID、画面名の設定
		// -------------------------------------------------
		// 通話明細送付サービス申込解約画面に遷移
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW10301);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, SET, JFUScreenConst.SCREEN_NAME_FUW10301);

		DEBUG_LOG.info("----- FUW5301 End kosiTuwaTesiDsl -----");

		return true;
	}

	/**
	 * eo光電話お客さま契約情報変更／照会メニュー(初期表示)サービス実行処理
	 *
	 * @param commonInfoBean  共有フォームBean
	 * @param serviceFormBean eo光電話お客さま契約情報変更／照会メニューサービスフォームBean
	 * @return サービス処理結果マップ
	 */
	private HashMap<String, HashMap<String, Object>> executeInitService(final X31SDataBeanAccess commonInfoBean,
			final X31SDataBeanAccess serviceFormBean)
	{
		DEBUG_LOG.info("----- FUW5301 Start executeInitService -----");

		// サービス検索条件格納用マップ
		HashMap<String, Map<String, String>> inputMap = new HashMap<String, Map<String, String>>();
		// サービス処理結果格納用マップ
		HashMap<String, HashMap<String, Object>> outputMap = new HashMap<String, HashMap<String, Object>>();

		// サービスパラメータ生成
		Map<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, SVC_USECASE_ID_FUSV0081);

		// DataBean-BPマッピングクラス生成
		FUSV0081_FUSV0081OPDBMapper mapper = new FUSV0081_FUSV0081OPDBMapper();
		// 上り/下りマッピング用パラメータ生成
		X31SDataBeanAccess[] serviceFormBeanArray = new X31SDataBeanAccess[] { serviceFormBean };

		// eo光電話サービス契約情報一覧照会SC上りマッピング
		mapper.setFUSV008101SC(serviceFormBeanArray, inputMap, JPCModelConstant.FUNC_CD_2);
		// 料金コース_オプションサービス一覧照会(料金コースコード)SC上りマッピング
		mapper.setFUSV008102SC(serviceFormBeanArray, inputMap, JPCModelConstant.FUNC_CD_1);
		// 現サービス契約内訳情報一覧照会(電話)
		mapper.setFUSV008103SC(serviceFormBeanArray, inputMap, JPCModelConstant.FUNC_CD_1);
		// 機器オプションサービス契約一覧照会（複合検索）
		mapper.setFUSV008104SC(serviceFormBeanArray, inputMap, JFUWebCommon.getOpeDate(this, null), JPCModelConstant.FUNC_CD_1);
		// 回線利用場所毎サービス契約番号一覧
		mapper.setFUSV008105SC(serviceFormBeanArray, inputMap, JPCModelConstant.FUNC_CD_1);
		// 電話セレクトオプションパック照会
		mapper.setJKKTelSelectOpPackOperateCC(serviceFormBeanArray, inputMap, JPCModelConstant.FUNC_CD_1);

		mapper.setJFUTelOpMskmCheckCC(commonInfoBean, serviceFormBean, inputMap, JPCModelConstant.FUNC_CD_1);

		try
		{
			// eo光電話お客さま契約情報変更／照会メニュー(初期表示)サービス呼び出し
			invokeService(paramMap, inputMap, outputMap);
		}
		catch (JCCWebServiceException se)
		{
			// 初期表示時例外ハンドリング処理
			this.handleInitException(se);
		}

		// eo光電話サービス契約情報一覧照会SC下りマッピング
		mapper.getFUSV008101SC(serviceFormBeanArray, outputMap);
		// 料金コース_オプションサービス一覧照会(料金コースコード)SC下りマッピング
		mapper.getFUSV008102SC(serviceFormBeanArray, outputMap);

		// オンライン運用日付(yyyyMMDD)を取得
		String opeDate = JFUWebCommon.getOpeDate(this, null);
		// 料金コース_オプションサービス一覧照会(料金コースコード)SC下りマッピング
		mapper.getJKKTelSelectOpPackOperateCC(serviceFormBeanArray, outputMap, opeDate);

		DEBUG_LOG.info("----- FUW5301 End executeInitService -----");

		// サービス処理結果を返却
		return outputMap;
	}

	/**
	 * サービス契約情報取得処理
	 * <br/>
	 * 共有フォームBeanからサービス契約情報を取得し、サービスフォームBeanに設定します。
	 *
	 * @param commonInfoBean  共有フォームBean
	 * @param serviceFormBean eo光電話お客さま契約情報変更／照会メニューサービスフォームBean
	 */
	private void setSvcKeiInfo(final X31SDataBeanAccess commonInfoBean, final X31SDataBeanAccess serviceFormBean)
	{
		// -------------------------------------------------
		// 現顧客契約情報からサービス契約情報を取得
		// -------------------------------------------------
		// 共通フォームBean/ＷＥＢ変更情報/0/ＳＳＯ情報/0
		X31SDataBeanAccess ssoInfo = JFUWebCommon.getDataBeanTypeByPath(commonInfoBean, JFUWebCommon.SSO_INFO);
		// 共通フォームBean/ＷＥＢ変更情報/0/現顧客契約情報/0/サービス契約情報/0
		X31SDataBeanAccess svcKeiInfo = JFUWebCommon.getDataBeanTypeByPath(commonInfoBean, JFUWebCommon.SVC_KEI_INFO);
		// 共通フォームBean/ＷＥＢ変更情報/0/現顧客契約情報/0/サービス契約情報/0/サービス契約内訳情報/0
		X31SDataBeanAccess svcKeiUcwkInfo = JFUWebCommon.getDataBeanTypeByPath(commonInfoBean, JFUWebCommon.SVC_KEI_UCWK_INFO);

		if (svcKeiUcwkInfo == null)
		{
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102); // "0102"：契約状態エラー
		}

		// ＳＳＯ情報/0/SYSID
		String sysid = ssoInfo.sendMessageString(CommonInfoCFConst.SYSID_21, GET);
		// ＳＳＯ情報/0/サービス契約番号
		String svc_kei_no = ssoInfo.sendMessageString(CommonInfoCFConst.SVC_KEI_NO_21, GET);
		// ＳＳＯ情報/0/電話番号
		String telno = ssoInfo.sendMessageString(CommonInfoCFConst.TELNO_21, GET);
		// サービス契約情報/0/サービス契約ステータス
		String svc_kei_stat = svcKeiInfo.sendMessageString(CommonInfoCFConst.SVC_KEI_STAT_23, GET);
		// サービス契約内訳情報/0/サービス契約内訳ステータス
		String svc_kei_ucwk_stat = svcKeiUcwkInfo.sendMessageString(CommonInfoCFConst.SVC_KEI_UCWK_STAT_24, GET);
		// サービス契約情報/0/料金コースコード
		String pcrs_cd = svcKeiInfo.sendMessageString(CommonInfoCFConst.PCRS_CD_23, GET);
		// サービス契約情報/0/サービス契約ステータス
		String wrib_svc_kei_no = svcKeiInfo.sendMessageString(CommonInfoCFConst.SVC_KEI_NO_23, GET);
		// サービス契約内訳情報/0/サービス契約内訳ステータス
		String svc_kei_ucwk_no = svcKeiUcwkInfo.sendMessageString(CommonInfoCFConst.SVC_KEI_UCWK_NO_24, GET);

		// -------------------------------------------------
		// サービス契約情報をサービスフォームBeanに設定
		// -------------------------------------------------
		// SYSID
		serviceFormBean.sendMessageString(FUW05301SFConst.SYSID, SET, sysid);
		// サービス契約番号
		serviceFormBean.sendMessageString(FUW05301SFConst.SVC_KEI_NO, SET, svc_kei_no);
		// 電話番号
		serviceFormBean.sendMessageString(FUW05301SFConst.TELNO, SET, telno);
		// サービス契約ステータス(カレント)
		serviceFormBean.sendMessageString(FUW05301SFConst.CURRENT_SVC_KEI_STAT, SET, svc_kei_stat);
		// サービス契約内訳ステータス(カレント)
		serviceFormBean.sendMessageString(FUW05301SFConst.CURRENT_SVC_KEI_UCWK_STAT, SET, svc_kei_ucwk_stat);
		// 料金コースコード(カレント)
		serviceFormBean.sendMessageString(FUW05301SFConst.CURRENT_PCRS_CD, SET, pcrs_cd);
		// 料金コースコード(ダミー検索条件)
		serviceFormBean.sendMessageString(FUW05301SFConst.PCRS_CD, SET, JFUStrConst.EMPTY);

		// 割引サービス契約番号
		serviceFormBean.sendMessageString(FUW05301SFConst.WRIB_SVC_KEI_NO, SET, wrib_svc_kei_no);
		// 割引サービス契約内訳番号
		serviceFormBean.sendMessageString(FUW05301SFConst.WRIB_SVC_KEI_UCWK_NO, SET, svc_kei_ucwk_no);

		return;
	}

	/**
	 * 既契約オプション料金情報取得処理
	 * <br/>
	 * 既契約オプションの料金コースコード／料金プランコードを取得し、サービスフォームBeanに設定します。
	 *
	 * @param serviceFormBean eo光電話お客さま契約情報変更／照会メニューサービスフォームBean
	 */
	private void setOptPrcCd(final X31SDataBeanAccess serviceFormBean)
	{
		// -------------------------------------------------
		// オプション・サブオプション契約情報の編集
		// -------------------------------------------------
		// オンライン運用日付(yyyyMMDD)を取得
		String opeDate = JFUWebCommon.getOpeDate(this, null);

		// サービスフォームBean/サービス契約情報リスト
		X31SDataBeanAccessArray svcKeiInfoList = serviceFormBean.getDataBeanArray(FUW05301SFConst.SVC_KEI_INFO_LIST);

		int iCount = svcKeiInfoList.getCount();

		HashSet<String> packOpSvcPrcSet = new HashSet();

		// オプションの料金情報取得
		for (int i = 0; i < iCount; i++)
		{
			// 次のサービス契約情報を取得
			X31SDataBeanAccess bean = svcKeiInfoList.getDataBean(i);

			// オプションサービスコード
			String opSvcCd = bean.sendMessageString(FUW05301SFConst.OP_SVC_CD_01, GET);
			// オプションサービス契約ステータス
			String opSvcKeiStat = bean.sendMessageString(FUW05301SFConst.OP_SVC_KEI_STAT_01, GET);
			// 予約適用年月日(オプションサービス契約)
			String kk0351RsvAplyYmd = bean.sendMessageString(FUW05301SFConst.KK0351_RSV_APLY_YMD_01, GET);
			// 料金コースコード
			String opPcrsCd = "";
			// 料金プランコード
			String opPplanCd = "";

			// 電話オプションパック適用外のオプションの場合
			if (!TEL_PACK_OPT.contains(opSvcCd))
			{
				continue;
			}

			// オプションサービス契約ステータスが「"910"：解約済」、
			// かつ予約適用年月日(オプションサービス契約)≦オンライン運用日付の場合
			if (JFUStrConst.CD00037_910.equals(opSvcKeiStat) && JPCUtilCommon.isPastDate(kk0351RsvAplyYmd, opeDate, DOJITSU_HUKUMU))
			{
				// このレコードは解約済なのでスキップ
				continue;
			}

			// オプションサービス契約ステータスが「"920"：キャンセル済」、
			// かつ予約適用年月日(オプションサービス契約)≦オンライン運用日付の場合
			if (JFUStrConst.CD00037_920.equals(opSvcKeiStat) && JPCUtilCommon.isPastDate(kk0351RsvAplyYmd, opeDate, DOJITSU_HUKUMU))
			{
				// このレコードは無効につきスキップ
				continue;
			}

			// オプションサービス契約コードから料金コースコード、料金プランコード取得
			for (int j = 0; j < OP_PRC_LIST.length; j++)
			{
				if (OP_PRC_LIST[j][0].equals(opSvcCd))
				{
					opPcrsCd = OP_PRC_LIST[j][1];
					opPplanCd = OP_PRC_LIST[j][2];
					break;
				}
			}

			// 上記以外ならば契約有りとみなす。
			//   →カレントレコードの場合は、申込手続き中、もしくは契約中の状態
			//   →予約レコードの場合は、申込予約中、もしくは解約予約中の状態
			// このオプションの契約有無を「"1"(有)」に更新
			String opCd = opPcrsCd + "_" + opPplanCd;
			packOpSvcPrcSet.add(opCd);

		}

		// サブオプションの料金情報取得
		for (int i = 0; i < iCount; i++)
		{

			// 次のサービス契約情報を取得
			X31SDataBeanAccess bean = svcKeiInfoList.getDataBean(i);

			// サブオプションサービスコード
			String sbopSvcCd = bean.sendMessageString(FUW05301SFConst.SBOP_SVC_CD_01, GET);
			// サブオプションサービス契約ステータス
			String sbopSvcKeiStat = bean.sendMessageString(FUW05301SFConst.SBOP_SVC_KEI_STAT_01, GET);
			// 予約適用年月日(サブオプションサービス契約)
			String kk0401RsvAplyYmd = bean.sendMessageString(FUW05301SFConst.KK0401_RSV_APLY_YMD_01, GET);
			// 料金コースコード
			String sbopPcrsCd = "";
			// 料金プランコード
			String sbopPplanCd = "";

			// 電話オプションパック適用外のオプションの場合
			if (!TEL_PACK_OPT.contains(sbopSvcCd))
			{
				continue;
			}

			// サブオプションサービス契約ステータスが「"910"：解約済」もしくは「"920"：キャンセル済」、
			// かつ予約適用年月日(サブオプションサービス契約)≦オンライン運用日付の場合
			if ((JFUStrConst.CD00037_910.equals(sbopSvcKeiStat) || JFUStrConst.CD00037_920.equals(sbopSvcKeiStat))
					&& JPCUtilCommon.isPastDate(kk0401RsvAplyYmd, opeDate, DOJITSU_HUKUMU))
			{
				// このレコードは無効or解約済なのでスキップ
				continue;
			}

			// オプションサービス契約コードから料金コースコード、料金プランコード取得
			for (int j = 0; j < OP_PRC_LIST.length; j++)
			{
				if (OP_PRC_LIST[j][0].equals(sbopSvcCd))
				{
					sbopPcrsCd = OP_PRC_LIST[j][1];
					sbopPplanCd = OP_PRC_LIST[j][2];
					break;
				}
			}

			// 上記以外ならば契約有りとみなす。
			//   →カレントレコードの場合は、申込手続き中、もしくは契約中の状態
			//   →予約レコードの場合は、申込予約中、もしくは解約予約中の状態
			// このサブオプションの契約有無を「"1"(有)」に更新
			String sbopCd = sbopPcrsCd + "_" + sbopPplanCd;
			packOpSvcPrcSet.add(sbopCd);

		}

		serviceFormBean.sendMessageString(FUW05301SFConst.PACK_OP_SVC_PRC_LIST, SET, getListData(packOpSvcPrcSet, JFUStrConst.COMMA));

		return;
	}

	/**
	 * カンマ区切りリスト作成
	 * <br>
	 * @param keys
	 * @param cmma
	 * @return String
	 */
	private String getListData(HashSet<String> keys, String cmma)
	{
		StringBuffer strTmp = new StringBuffer();

		for (String temp : keys)
		{
			strTmp.append(temp).append(cmma);
		}

		if (strTmp.length() > 0)
		{
			return strTmp.substring(0, strTmp.length() - 1);
		}
		else
		{
			return JFUStrConst.EMPTY;
		}
	}

	/**
	 * 初期表示時エラーチェック処理
	 * <br/>
	 * 初期表示データの状態チェックを実行します。
	 *
	 * @param serviceFormBean サービス契約番号一覧サービスフォームBean
	 * @param outputMap       サービス検索結果マップ
	 * @throws JCCBusinessException 契約状態エラーが発生した場合
	 */
	private void checkInitError(final X31SDataBeanAccess serviceFormBean, final HashMap<String, HashMap<String, Object>> outputMap)
			throws JCCBusinessException
	{
		DEBUG_LOG.info("----- FUW5301 Start checkInitError -----");

		// -------------------------------------------------
		// サービス契約存在チェック
		// -------------------------------------------------
		// ▼eo光電話サービス契約情報一覧照会明細件数チェック
		// eo光電話サービス契約情報一覧照会SC検索結果取得
		if (!outputMap.containsKey(SC_TITLE_FUSV008101SC))
		{
			// サービス契約レコードの状態が不正、または存在しない為、データが取得できない。
			DEBUG_LOG.info("■■■FUW05301 (1)エラー ： サービス契約存在チェックエラー(eo光電話サービス契約情報一覧照会:SC)");
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102); // "0102"：契約状態エラー
		}
		HashMap<String, Object> fusv008101SCMap = (HashMap<String, Object>)outputMap.get(SC_TITLE_FUSV008101SC);

		// eo光電話サービス契約情報一覧照会明細取得
		if (!fusv008101SCMap.containsKey(MAP_KEY_EKK0081B508_CBSMSGLIST))
		{
			// サービス契約レコードの状態が不正、または存在しない為、データが取得できない。
			DEBUG_LOG.info("■■■FUW05301 (2)エラー ： サービス契約存在チェックエラー(eo光電話サービス契約情報一覧照会:MAP)");
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102); // "0102"：契約状態エラー
		}
		ArrayList<HashMap<String, String>> ekk0081b508cbsMsgList =
				(ArrayList<HashMap<String, String>>)fusv008101SCMap.get(MAP_KEY_EKK0081B508_CBSMSGLIST);

		// eo光電話サービス契約情報一覧照会明細のレコード件数が0件の場合はエラー
		if (ekk0081b508cbsMsgList == null || ekk0081b508cbsMsgList.size() <= 0)
		{
			// サービス契約レコードの状態が不正、または存在しない為、データが取得できない。
			DEBUG_LOG.info("■■■FUW05301 (3)エラー ： サービス契約存在チェックエラー(eo光電話サービス契約情報一覧照会:0件)");
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102); // "0102"：契約状態エラー
		}

		// -------------------------------------------------
		// サービス契約状態チェック
		// -------------------------------------------------
		// ▼サービス契約内訳ステータス(カレント)状態チェック
		String currentSvcKeiUcwkStat = serviceFormBean.sendMessageString(FUW05301SFConst.CURRENT_SVC_KEI_UCWK_STAT, GET);
		// ブランクの場合(通常は有り得ない)
		if (JFUWebCommon.isNull(currentSvcKeiUcwkStat))
		{
			// 電話番号が確定している状態で、内訳が存在しないケースは有り得ない。
			DEBUG_LOG.info("■■■FUW05301 (4)エラー ： サービス契約状態チェックエラー(サービス契約内訳ステータス：" + currentSvcKeiUcwkStat + ")");
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002); // "0002"：システムエラー
		}

		//「"220"：停止中」「"910"：解約済」「"920"：キャンセル済」の場合
		if (JFUStrConst.CD00037_220.equals(currentSvcKeiUcwkStat) || JFUStrConst.CD00037_910.equals(currentSvcKeiUcwkStat)
				|| JFUStrConst.CD00037_920.equals(currentSvcKeiUcwkStat))
		{
			// 利用可能なステータスではない。
			DEBUG_LOG.info("■■■FUW05301 (5)エラー ： サービス契約状態チェックエラー(サービス契約内訳ステータス：" + currentSvcKeiUcwkStat + ")");
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102); // "0102"：契約状態エラー
		}

		// ▼料金コースコード(カレント)状態チェック
		String currentPcrsCd = serviceFormBean.sendMessageString(FUW05301SFConst.CURRENT_PCRS_CD, GET);
		// ブランクの場合(通常は有り得ない)
		if (JFUWebCommon.isNull(currentPcrsCd))
		{
			// eo光電話サービスの料金コースではない。
			DEBUG_LOG.info("■■■FUW05301 (6)エラー ： 料金コースコードチェックエラー(料金コースコード：" + currentPcrsCd + ")");
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002); // "0002"：システムエラー
		}

		//「"A31"：1番号コース」「"A32"：2番号コース」以外の場合
		if (!JFUStrConst.CD00134_A31.equals(currentPcrsCd) && !JFUStrConst.CD00134_A32.equals(currentPcrsCd))
		{
			// eo光電話サービスの料金コースではない。
			DEBUG_LOG.info("■■■FUW05301 (7)エラー ： 料金コースコードチェックエラー(料金コースコード：" + currentPcrsCd + ")");
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102); // "0102"：契約状態エラー
		}

		DEBUG_LOG.info("----- FUW5301 End checkInitError -----");

		return; // エラーなし
	}

	/**
	 * 画面表示用データの加工編集処理
	 * <br/>
	 * サービスフォームBeanのデータを画面表示用に加工編集します。
	 *
	 * @param serviceFormBean サービス契約番号一覧サービスフォームBean
	 * @param outputMap       サービス検索結果マップ
	 * @throws Exception	すべての例外
	 */
	private void editDispData(final X31SDataBeanAccess serviceFormBean, final HashMap<String, HashMap<String, Object>> outputMap) throws Exception
	{
		// -------------------------------------------------
		// 電話番号情報の編集
		// -------------------------------------------------
		// サービスフォームBean/サービス契約情報リスト/0
		X31SDataBeanAccess svcKeiInfo = JFUWebCommon.getDataBeanTypeByPath(serviceFormBean, FUW05301SFConst.SVC_KEI_INFO_LIST);

		// ▼マッピング元項目の取得
		// サービス契約内訳ステータス(カレント)
		String currentSvcKeiUcwkStat = serviceFormBean.sendMessageString(FUW05301SFConst.CURRENT_SVC_KEI_UCWK_STAT, GET);

		// 電話番号
		String telno = svcKeiInfo.sendMessageString(FUW05301SFConst.TELNO_01, GET);
		// 初期デフォルトパスワード
		String shkDfltPwd = svcKeiInfo.sendMessageString(FUW05301SFConst.SHK_DFLT_PWD_01, GET);
		// お客さまＩＤパスワード
		String ekk0081CustIdPwd = JFUWebCommon.trim(svcKeiInfo.sendMessageString(FUW05301SFConst.CUST_ID_PWD_01, GET));
		// NTT番号案内有無
		String nttNoGuideUm = svcKeiInfo.sendMessageString(FUW05301SFConst.NTT_NO_GUIDE_UM_01, GET);

		/* ++++++++++ v3.01 修正開始 ++++++++++ */
		// 電話帳記載コード
		String dnwachoKisaiCd = svcKeiInfo.sendMessageString(FUW05301SFConst.DNWACHO_KISAI_CD_01, GET);
		/* ++++++++++ v3.01 修正終了 ++++++++++ */

		// WEBオプション追加不可フラグ
		String webOpAddFailFlg = svcKeiInfo.sendMessageString(FUW05301SFConst.WEB_OP_ADD_FAIL_FLG_01, GET);
		// VAポート番号
		String vaPortNo = svcKeiInfo.sendMessageString(FUW05301SFConst.VA_PORT_NO_01, GET);

		// ▼マッピング先項目に転記
		// 代表電話番号 ← 電話番号
		serviceFormBean.sendMessageString(FUW05301SFConst.DAIHYO_TELNO, SET, telno);

		// Webカスコン連携するお客さまＩＤパスワードを決定
		// 初期デフォルトパスワードを設定
		String custIdPwd = shkDfltPwd;
		// お客さまＩＤパスワードが空でなければ
		if (!JFUStrConst.EMPTY.equals(ekk0081CustIdPwd))
		{
			// EKK0081B508のお客さまＩＤパスワードを設定
			custIdPwd = ekk0081CustIdPwd;
		}
		// お客さまＩＤパスワード ← 初期デフォルトパスワード
		serviceFormBean.sendMessageString(FUW05301SFConst.CUST_ID_PWD, SET, custIdPwd);
		// WebカスコンURL ← Webカスコン連携画面への遷移ＵＲＬ(APLConst.properties:FU_WEB_CUSCON_URL)
		serviceFormBean.sendMessageString(FUW05301SFConst.CUSCON_URL, SET, JCMAPLConstMgr.getString(JFUStrConst.WEB_CUSCON_URL));

		// Webカスコン連携可否
		// 初期デフォルトパスワードが設定されていない場合は、
		// Webカスコン設定画面への遷移を抑止する。
		if (0 < JFUWebCommon.getLength(JFUWebCommon.trim(custIdPwd)))
		{
			// Webカスコン連携可否 ← "1"(可)
			serviceFormBean.sendMessageString(FUW05301SFConst.CUSCON_RNKI_KH, SET, JFUStrConst.CD00003_1);
		}
		else
		{
			// Webカスコン連携可否 ← "0"(否)
			serviceFormBean.sendMessageString(FUW05301SFConst.CUSCON_RNKI_KH, SET, JFUStrConst.CD00003_0);
		}

		// ●2番号サービス契約有無判定
		HashMap<String, Object> fusv008103SCMap = outputMap.get(SC_TITLE_FUSV008103SC);
		ArrayList<HashMap<String, String>> ekk0161b505cbsMsgList =
				(ArrayList<HashMap<String, String>>)fusv008103SCMap.get(MAP_KEY_EKK0161B505_CBSMSGLIST);

		int svcKeiUcwkCnt = 0;
		for (HashMap<String, String> detailMap : ekk0161b505cbsMsgList)
		{
			// サービス契約内訳ステータス
			String svcKeiUcwkStat = detailMap.get(MAP_KEY_SVC_KEI_UCWK_STAT);

			// 解約・キャンセル以外
			if (!JFUStrConst.CD00037_910.equals(svcKeiUcwkStat) && !JFUStrConst.CD00037_920.equals(svcKeiUcwkStat))
			{
				svcKeiUcwkCnt++;
			}
		}

		if (JFUStrConst.I_TWO == svcKeiUcwkCnt)
		{
			// 2番号サービス契約有無 ← "1"(有)
			serviceFormBean.sendMessageString(FUW05301SFConst.TWO_TELNO_SVC_KEI_UM, SET, JFUStrConst.CD00002_1);
		}
		else
		{
			// 2番号サービス契約有無 ← "0"(無)
			serviceFormBean.sendMessageString(FUW05301SFConst.TWO_TELNO_SVC_KEI_UM, SET, JFUStrConst.CD00002_0);
		}

		// 104番号案内有無 ← NTT番号案内有無
		serviceFormBean.sendMessageString(FUW05301SFConst.NTT_NO_GUIDE_UM, SET, nttNoGuideUm);

		/* ++++++++++ v3.01 修正開始 ++++++++++ */
		// 電話帳記載名 ← 電話帳記載名
		serviceFormBean.sendMessageString(FUW05301SFConst.DNWACHO_KISAI_CD_NM, SET, getDnwachoKisaiNm(dnwachoKisaiCd));
		/* ++++++++++ v3.01 修正終了 ++++++++++ */

		// 通話明細照会利用可否
		// →サービス契約内訳ステータス(カレント)が「"100"：サービス提供中」
		//   もしくは「"210"：休止・中断中」の場合は、利用可とみなす。
		if (JFUStrConst.CD00037_100.equals(currentSvcKeiUcwkStat) || JFUStrConst.CD00037_210.equals(currentSvcKeiUcwkStat))
		{
			// 通話明細照会利用可否 ← "1"(可)
			serviceFormBean.sendMessageString(FUW05301SFConst.TW_DTL_SHOKAI_USE_KH, SET, JFUStrConst.CD00003_1);
		}
		// それ以外のステータスの場合は利用不可とみなす。
		else
		{
			// 通話明細照会利用可否 ← "0"(否)
			serviceFormBean.sendMessageString(FUW05301SFConst.TW_DTL_SHOKAI_USE_KH, SET, JFUStrConst.CD00003_0);
		}

		// WEBオプション追加可否 ← WEBオプション追加不可フラグ(0:追加可、1:追加不可)
		// WEBオプション追加不可フラグ(1:追加不可)の場合
		if (WEB_OP_ADD_KH_FLG_1.equals(webOpAddFailFlg))
		{
			// WEBオプション追加可否 ← WEBオプション追加不可フラグ
			serviceFormBean.sendMessageString(FUW05301SFConst.WEB_OP_ADD_KH, SET, webOpAddFailFlg);
		}
		else
		{
			// WEBオプション追加可否 ← WEBオプション追加不可フラグ(0:追加可)
			serviceFormBean.sendMessageString(FUW05301SFConst.WEB_OP_ADD_KH, SET, WEB_OP_ADD_KH_FLG_0);
		}

		// 050ナンバープラス申込可否 ← "1"(可)で初期化
		serviceFormBean.sendMessageString(FUW05301SFConst.NO_PLUS_KEI_MSKM_KH, SET, JFUStrConst.CD00003_1);
		// eo光電話アダプタの差込口番号 ← VAポート番号
		serviceFormBean.sendMessageString(FUW05301SFConst.VA_PORT_NO, SET, vaPortNo);

		// -------------------------------------------------
		// オプション・サブオプション契約情報の編集
		// -------------------------------------------------
		// オンライン運用日付(yyyyMM)を取得
		String opeDateMonth = JFUWebCommon.getOpeDate(this, null).substring(0, 6);
		// オンライン運用日付(yyyyMMDD)を取得
		String opeDate = JFUWebCommon.getOpeDate(this, null);

		// サービスフォームBean/サービス契約情報リスト
		X31SDataBeanAccessArray svcKeiInfoList = serviceFormBean.getDataBeanArray(FUW05301SFConst.SVC_KEI_INFO_LIST);
		// サービスフォームBean/料金コース＿オプションサービスリスト
		X31SDataBeanAccessArray pcrsOpSvcList = serviceFormBean.getDataBeanArray(FUW05301SFConst.PCRS_OP_SVC_LIST);

		// ■オプション/サブオプション毎に、契約情報の有無と上限値を判定する。
		// ・オプションサービスコード＝"B022"〜"B029" + B071/B072"、
		// ・サブオプションサービスコード＝"D07"〜"D08"
		for (int i = 0; i < OPCD_LIST.length; i++)
		{
			// オプション・サブオプションの契約有無を「"0"：無」で初期化
			serviceFormBean.sendMessageString(OPCD_LIST[i][3], SET, JFUStrConst.CD00002_0);
			// オプション・サブオプションの表示レベルを「"9"：行非表示」で初期化
			serviceFormBean.sendMessageString(OPCD_LIST[i][4], SET, DSP_LV_9);

			// ▼サービス契約情報リストLoop
			//   →契約有無の判定
			int iCount = svcKeiInfoList.getCount();
			for (int j = 0; j < iCount; j++)
			{
				// 次のサービス契約情報を取得
				X31SDataBeanAccess bean = svcKeiInfoList.getDataBean(j);

				// オプションサービス契約の場合
				if ("0".equals(OPCD_LIST[i][0]))
				{
					// オプションサービスコード
					String opSvcCd = bean.sendMessageString(FUW05301SFConst.OP_SVC_CD_01, GET);
					// オプションサービス契約ステータス
					String opSvcKeiStat = bean.sendMessageString(FUW05301SFConst.OP_SVC_KEI_STAT_01, GET);
					// 予約適用年月日(オプションサービス契約)
					String kk0351RsvAplyYmd = bean.sendMessageString(FUW05301SFConst.KK0351_RSV_APLY_YMD_01, GET);

					// サービス契約情報がこのオプションサービスコードと一致する場合
					if (OPCD_LIST[i][1].equals(opSvcCd))
					{
						// オプションサービス契約ステータスが「"910"：解約済」、
						// かつ予約適用年月日(オプションサービス契約)≦オンライン運用日付の場合
						if (JFUStrConst.CD00037_910.equals(opSvcKeiStat) && JPCUtilCommon.isPastDate(kk0351RsvAplyYmd, opeDate, DOJITSU_HUKUMU))
						{
							// ●050ナンバープラスの申込制限チェック
							// 予約適用年月日(＝解約年月日)の年月がオンライン運用日付の年月と一致する場合は申込不可とする。
							//   →同月の解約履歴が存在する場合は、再申込を制限する必要がある。(翌月以降の再申込は可能)
							if (JFUStrConst.CD00136_B029.equals(opSvcCd) && kk0351RsvAplyYmd.startsWith(opeDateMonth))
							{
								// 050ナンバープラス申込可否 ← "0"(否)
								serviceFormBean.sendMessageString(FUW05301SFConst.NO_PLUS_KEI_MSKM_KH, SET, JFUStrConst.CD00003_0);
							}

							// このレコードは解約済なのでスキップ
							continue;
						}

						// オプションサービス契約ステータスが「"920"：キャンセル済」、
						// かつ予約適用年月日(オプションサービス契約)≦オンライン運用日付の場合
						if (JFUStrConst.CD00037_920.equals(opSvcKeiStat) && JPCUtilCommon.isPastDate(kk0351RsvAplyYmd, opeDate, DOJITSU_HUKUMU))
						{
							// このレコードは無効につきスキップ
							continue;
						}

						// このオプションサービスが050ナンバープラスの場合
						if (JFUStrConst.CD00136_B029.equals(opSvcCd))
						{
							// 050オプション電話番号
							String n050OpTelno = bean.sendMessageString(FUW05301SFConst.N_050_OP_TELNO_01, GET);
							// 050オプション電話番号 ← 050オプション電話番号
							serviceFormBean.sendMessageString(FUW05301SFConst.N_050_OP_TELNO, SET, n050OpTelno);
						}

						// このオプションサービスが通話料上限通知の場合
						if (JFUStrConst.CD00136_B072.equals(opSvcCd))
						{
							// 通話料上限通知
							String twryoStiamTtuTchiStiam = bean.sendMessageString(FUW05301SFConst.TWRYO_STIAM_TTU_TCHI_STIAM, GET);
							// 通話料上限通知 ← 通話料上限通知
							serviceFormBean.sendMessageString(FUW05301SFConst.TWRYO_STIAM_TTU_TCHI_STIAM, SET, twryoStiamTtuTchiStiam);
						}

						// 上記以外ならば契約有りとみなす。
						//   →カレントレコードの場合は、申込手続き中、もしくは契約中の状態
						//   →予約レコードの場合は、申込予約中、もしくは解約予約中の状態
						// このオプションの契約有無を「"1"(有)」に更新
						serviceFormBean.sendMessageString(OPCD_LIST[i][3], SET, JFUStrConst.CD00002_1);
					}
				}

				// サブオプションサービス契約の場合
				else if ("1".equals(OPCD_LIST[i][0]))
				{
					// サブオプションサービスコード
					String sbopSvcCd = bean.sendMessageString(FUW05301SFConst.SBOP_SVC_CD_01, GET);
					// サブオプションサービス契約ステータス
					String sbopSvcKeiStat = bean.sendMessageString(FUW05301SFConst.SBOP_SVC_KEI_STAT_01, GET);
					// 予約適用年月日(サブオプションサービス契約)
					String kk0401RsvAplyYmd = bean.sendMessageString(FUW05301SFConst.KK0401_RSV_APLY_YMD_01, GET);

					// サービス契約情報がこのサブオプションサービスコードと一致する場合
					if (OPCD_LIST[i][2].equals(sbopSvcCd))
					{
						// サブオプションサービス契約ステータスが「"910"：解約済」もしくは「"920"：キャンセル済」、
						// かつ予約適用年月日(サブオプションサービス契約)≦オンライン運用日付の場合
						if ((JFUStrConst.CD00037_910.equals(sbopSvcKeiStat) || JFUStrConst.CD00037_920.equals(sbopSvcKeiStat))
								&& JPCUtilCommon.isPastDate(kk0401RsvAplyYmd, opeDate, DOJITSU_HUKUMU))
						{
							// このレコードは無効or解約済なのでスキップ
							continue;
						}

						// 上記以外ならば契約有りとみなす。
						//   →カレントレコードの場合は、申込手続き中、もしくは契約中の状態
						//   →予約レコードの場合は、申込予約中、もしくは解約予約中の状態
						// このサブオプションの契約有無を「"1"(有)」に更新
						serviceFormBean.sendMessageString(OPCD_LIST[i][3], SET, JFUStrConst.CD00002_1);
					}
				}
			}
			// ▲サービス契約情報リストLoop end

			// ▼料金コース_オプションサービスリストLoop
			//   →マスタから取得した上限値(最大オプションサービス数)による、行・ボタン表示判定
			iCount = pcrsOpSvcList.getCount();
			for (int k = 0; k < iCount; k++)
			{
				// 次の料金コース_オプションサービス情報を取得
				X31SDataBeanAccess bean = pcrsOpSvcList.getDataBean(k);

				// オプションサービスコード
				String opSvcCd = bean.sendMessageString(FUW05301SFConst.OP_SVC_CD_02, GET);

				// 料金コース_オプションサービス情報がこのオプションサービスコードと一致する場合
				if (OPCD_LIST[i][1].equals(opSvcCd))
				{
					// 最大オプションサービス数
					String maxOpSvcCnt = bean.sendMessageString(FUW05301SFConst.MAX_OP_SVC_CNT_02, GET);

					// 最大オプションサービス数の設定値から表示レベルを判定
					String dspLv = DSP_LV_9; // デフォルト値：行非表示

					// 未設定の場合
					if (JFUWebCommon.isNull(maxOpSvcCnt))
					{
						dspLv = DSP_LV_9; // 行非表示
					}
					// 最大オプションサービス数が1以上の場合
					else if (0 < new Integer(maxOpSvcCnt).intValue())
					{
						dspLv = DSP_LV_1; // 行表示・ボタン表示
					}
					// 最大オプションサービス数が0以下の場合
					else
					{
						dspLv = DSP_LV_0; // 行表示・ボタン非表示
					}

					// このオプション/サブオプションの表示レベルを設定
					// →サブオプションの場合は、親オプションの設定値を引き継ぐ
					serviceFormBean.sendMessageString(OPCD_LIST[i][4], SET, dspLv);
				}
			}
			// ▲料金コース_オプションサービスリストLoop end
			if (JFUStrConst.CD00136_B028.equals(OPCD_LIST[i][1]) && isOrosi())
			{
				// 表示レベルを「"9"：行非表示」
				serviceFormBean.sendMessageString(OPCD_LIST[i][4], SET, DSP_LV_9);
			}

		}
		// ■オプション/サブオプション毎Loop end

		// -------------------------------------------------
		// 異動予約存在チェック
		// -------------------------------------------------
		// ▼2番号サービスの異動予約存在判定
		//  「eo光電話サービス契約情報一覧照会マップ(FUSV004101SC)」の
		//  「eo光電話サービス契約情報一覧照会明細(EKK0081B508CBSMsg1List)」内に
		//   サービス契約の異動予約情報が設定されているレコードが存在するかをチェックする。
		HashMap<String, Object> fusv008101SCMap = outputMap.get(SC_TITLE_FUSV008101SC);
		ArrayList<HashMap<String, String>> ekk0081b508cbsMsgList =
				(ArrayList<HashMap<String, String>>)fusv008101SCMap.get(MAP_KEY_EKK0081B508_CBSMSGLIST);

		for (int i = 0; i < ekk0081b508cbsMsgList.size(); i++)
		{
			HashMap<String, String> ekk0081b508cbsMsg = ekk0081b508cbsMsgList.get(i);

			// 異動予約詳細コード(サービス契約)を取得
			String kk0081IdoRsvDtlCd = this.getValue(ekk0081b508cbsMsg, MAP_KEY_KK0081_IDO_RSV_DTL_CD);

			// 異動予約詳細コードが設定されているレコードが存在する場合は、
			// 既に2番号サービスの申込を含むコース変更予約が存在するとみなす。
			if (!JFUWebCommon.isNull(kk0081IdoRsvDtlCd))
			{
				// 2番号サービス契約有無 ← "1"(有)
				serviceFormBean.sendMessageString(FUW05301SFConst.TWO_TELNO_SVC_KEI_UM, SET, JFUStrConst.CD00002_1);
			}
		}

		// ▼電話オプションの異動予約存在判定
		//  「eo光電話サービス契約情報一覧照会マップ」内に
		//   サービス契約の異動予約情報が設定されているレコードが存在するかをチェックする。
		String reserveFlg = serviceFormBean.sendMessageString(FUW05301SFConst.RESERVE_FLG, GET);
		if (!reserveFlg.equals(JFUStrConst.S_ONE))
		{
			for (int i = 0; i < svcKeiInfoList.getCount(); i++)
			{
				X31SDataBeanAccess bean = svcKeiInfoList.getDataBean(i);

				String opSvcCd = bean.sendMessageString(FUW05301SFConst.OP_SVC_CD_01, GET);
				String sbopSvcCd = bean.sendMessageString(FUW05301SFConst.SBOP_SVC_CD_01, GET);

				String opSvcStat = bean.sendMessageString(FUW05301SFConst.OP_SVC_KEI_STAT_01, X31CWebConst.DATABEAN_GET_VALUE);
				String sbopSvcStat = bean.sendMessageString(FUW05301SFConst.SBOP_SVC_KEI_STAT_01, X31CWebConst.DATABEAN_GET_VALUE);

				// オプション、サブオプションがパック適用範囲外の場合
				if (!TEL_PACK_OPT.contains(opSvcCd) && !TEL_PACK_OPT.contains(sbopSvcCd))
				{
					continue;
				}

				// パック構成オプションに異動予約がある場合
				if (JFUStrConst.CD00037_010.equals(opSvcStat) || JFUStrConst.CD00037_010.equals(sbopSvcStat))
				{
					// 予約あり
					serviceFormBean.sendMessageString(FUW05301SFConst.RESERVE_FLG, SET, JFUStrConst.S_ONE);
					break;
				}

				// 異動予約詳細コード(オプションサービス契約) ≠ null
				// もしくは異動予約詳細コード(サブオプションサービス契約) ≠ null の場合
				if (!JFUWebCommon.isNull(JFUWebCommon.getDataBeanItemByPath(bean, FUW05301SFConst.KK0351_IDO_RSV_DTL_CD_01))
						|| !JFUWebCommon.isNull(JFUWebCommon.getDataBeanItemByPath(bean, FUW05301SFConst.KK0401_IDO_RSV_DTL_CD_01)))
				{
					// 予約あり
					serviceFormBean.sendMessageString(FUW05301SFConst.RESERVE_FLG, SET, JFUStrConst.S_ONE);
					break;
				}
			}
		}

		// -------------------------------------------------
		// 複数通話遷移区分
		// -------------------------------------------------
		// 多機能であるか判定する
		String flg = hasMultiPhoneCall(outputMap);

		// 多機能がある場合
		if (JFUStrConst.CD00002_1.equals(flg))
		{
			serviceFormBean.sendMessageString(FUW05301SFConst.MULTI_PHONE_CALL_FLG, SET, flg);

			// 複数通話遷移区分:エラー無し
			serviceFormBean.sendMessageString(FUW05301SFConst.MULTI_PHONE_SENI_FLG, SET, MULTI_PHONE_SENI_FLG);
			// 割込電話行を非表示
			serviceFormBean.sendMessageString(FUW05301SFConst.WARKMI_TEL_SVC_LV, SET, DSP_LV_9);
		}
		else
		{
			// 多機能なし(各種通信機器へのリンク無し)のときは"0"に変更する。
			serviceFormBean.sendMessageString(FUW05301SFConst.MULTI_PHONE_CALL_FLG, SET, JFUStrConst.CD00002_0);
			// 割込電話が契約済みの場合、複数通話の解約は表示しない
			if (JFUStrConst.S_ONE.equals(serviceFormBean.sendMessageString(FUW05301SFConst.WARKMI_TEL_SVC_KEI_UM, GET)))
			{
				serviceFormBean.sendMessageString(FUW05301SFConst.MULTI_PHONE_LV, SET, DSP_LV_0);
			}

			// 複数通話遷移区分
			serviceFormBean.sendMessageString(FUW05301SFConst.MULTI_PHONE_SENI_FLG, SET, getmutltiPhoneSeniFlg(outputMap, flg));
		}
		return;
	}

	/**
	 * 初期表示時例外ハンドリング処理
	 * <br/>
	 * 初期処理時に発生した業務例外のハンドリングを行ないます。
	 *
	 * @param jwse 申込処理時に発生したJCCWebServiceExceptionオブジェクト
	 * @throws JCCBusinessException   この例外をフロント共通エラー処理に委譲する場合
	 * @throws JCCWebServiceException この例外をシステム共通エラー処理に委譲する場合
	 */
	private void handleInitException(final JCCWebServiceException se) throws JCCBusinessException, JCCWebServiceException
	{
		// 例外詳細情報を取得
		X31CMessageMoreInfo[] moreInfo = se.getMessageList().getMessageMoreInfoList();
		// メッセージ詳細情報クラスを取得
		// (単項目チェックエラーの発生有無を確認するだけなので、先頭レコードのみ処理する)
		X31CMessageMoreInfo info = moreInfo[0];

		String status = info.getStatus();

		// ステータスが"1000"(単項目チェックエラー)の場合
		if (String.valueOf(JPCModelConstant.SINGLEDATA_ERR).equals(status))
		{
			// 画面初期表示時の単項目チェックエラーは、画面上で訂正できない。
			// →フロント共通エラー画面に遷移
			DEBUG_LOG.info("■■■FUW05301 (8)エラー ： サービスIF実行エラー(ステータス：" + status + ")");
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102); // "0102"：契約状態エラー
		}

		// その他のエラーは入力パラメータに起因しないエラーなので、システムエラー扱いとする。
		DEBUG_LOG.info("■■■FUW05301 (9)エラー ： サービスIF実行エラー(ステータス：" + status + ")");
		throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002); // "0002"：システムエラー
	}

	/**
	 * 画面間引き継ぎ情報データマップ生成処理
	 * 本メニュー画面からポップアップで遷移する各申込/解約画面に引き渡す情報を生成します。
	 *
	 * @param tranDiv  処理区分(未指定の場合はnull)
	 * @return dataMap 引き継ぎ情報データマップ
	 */
	private HashMap<String, Object> createDataMap(final String tranDiv)
	{
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// 遷移元画面ID ← 固定値："FUW05301"(eo光電話お客さま契約情報変更／照会メニュー)
		dataMap.put(FUW05301SFConst.FROM_SCREEN_ID, JFUScreenConst.SCREEN_ID_FUW05301);

		// 処理区分が指定されている場合のみ
		if (!JFUWebCommon.isNull(tranDiv))
		{
			// 処理区分 ← 処理区分
			dataMap.put(FUW05301SFConst.TRAN_DIV, tranDiv);
		}

		return dataMap;
	}

	/**
	 * 画面間引き継ぎ情報データマップ生成処理（オプションパック画面用）
	 * 本メニュー画面からポップアップで遷移するオプションパック申込/解約画面に引き渡す情報を生成します。
	 *
	 * @param tranDiv  処理区分(未指定の場合はnull)
	 * @param wribSvcCd  割引サービスコード
	 * @param opSvcCd  オプションサービスコード
	 * @param menuBtnKnd  メニュー押下ボタン種別
	 * @return dataMap 引き継ぎ情報データマップ
	 */
	private HashMap<String, Object> createDataMapForPack(final String tranDiv, final String wribSvcCd, final String opSvcCd, final String menuBtnKnd)
	{
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		String wribPcrsCd = "";
		String wribPPlanCd = "";
		String multiTalkFlg = getServiceFormBean().sendMessageString(FUW05301SFConst.MULTI_PHONE_CALL_FLG, GET);

		// 遷移元画面ID ← 固定値："FUW05301"(eo光電話お客さま契約情報変更／照会メニュー)
		dataMap.put(FUW05301SFConst.FROM_SCREEN_ID, JFUScreenConst.SCREEN_ID_FUW05301);

		// 処理区分が指定されている場合のみ
		if (!JFUWebCommon.isNull(tranDiv))
		{
			// 処理区分 ← 処理区分
			dataMap.put(FUW05301SFConst.TRAN_DIV, tranDiv);
		}

		// 割引サービスコードから料金コースコード、料金プランコードを取得
		for (int i = 0; i < WRIB_OPCD_LIST.length; i++)
		{
			if (WRIB_OPCD_LIST[i][0].equals(wribSvcCd))
			{
				wribPcrsCd = WRIB_OPCD_LIST[i][1];
				wribPPlanCd = WRIB_OPCD_LIST[i][2];
				break;
			}
		}

		// 申込割引サービスコード ← 割引サービスコード
		dataMap.put(MAPKEY_MSKM_WRIB_SVC_CD, wribSvcCd);

		// 申込料金コースコード（割引） ← 料金コースコード
		dataMap.put(MAPKEY_MSKM_WRIB_PCRS_CD, wribPcrsCd);

		// 申込料金プランコード（割引） ← 料金プランコード
		dataMap.put(MAPKEY_MSKM_WRIB_PPLAN_CD, wribPPlanCd);

		// 申込オプションサービスコード ← オプションサービスコード
		dataMap.put(MAPKEY_MSKM_OP_SVC_CD, opSvcCd);

		// 複数通話フラグ
		dataMap.put(MAPKEY_MSKM_MULTI_TALK_FLG, multiTalkFlg);

		// メニュー押下ボタン種別
		dataMap.put(MAPKEY_MSKM_MENU_BTN_KND, menuBtnKnd);

		// メニューお得判定結果
		String otokuWribSvcCode = getServiceFormBean().sendMessageString(FUW05301SFConst.OTOKU_WRIB_SVC_CD, GET);
		dataMap.put(MAPKEY_MSKM_MENU_OTOKU_HANTEI, otokuWribSvcCode);

		return dataMap;
	}

	/**
	 * 引数mapから引数keyに該当するvalue値を取得します。
	 * <br/>
	 * @param map Value取得対象のMap
	 * @param key MapからValueを取得するKey
	 * @return 指定されたkeyに対応するValue(nullの場合は空文字)
	 */
	private String getValue(final Map<String, String> map, final String key)
	{
		if (map == null || key == null)
		{
			return JFUStrConst.EMPTY;
		}

		String value = map.get(key);
		if (value == null)
		{
			return JFUStrConst.EMPTY;
		}

		return value;
	}

	/**
	 * データBean初期化<br>
	 * データBeanの全項目を初期化します。
	 * <br>
	 * @param bean			サービスフォームBean
	 * @throws Exception	すべての例外
	 */
	private void initBean(X31SDataBeanAccess bean) throws Exception
	{

		// デバッグ用ログ出力
		DEBUG_LOG.info("----- FUW5301 initBean Start -----");

		// -------------------------------------------------------
		// INFO:★引継情報がある場合は注意が必要★
		// getScreenInfoで項目を取得している場合、
		// 最初のINIT処理で、1度getScreenInfoを実行すると、
		// セッションから引継情報は削除される。
		// ⇒リロード時には、引継情報を取得できないため、
		//   初期化を行う項目から除外する必要あり
		// -------------------------------------------------------

		// Bean項目一覧を取得
		String[] itemNmList = bean.getItemNameList();
		for (int i = 0; i < itemNmList.length; i++)
		{
			X31SDataBeanAccessArray beanArray = null;

			try
			{
				// データBeanアクセスクラスリストを取得
				// -------------------------------------------------------
				// INFO:javadocに"エラーの場合、nullを返す"とあるが、
				// データタイプBean以外を指定した場合、例外が発生するため
				// try - catchする
				// -------------------------------------------------------
				beanArray = bean.getDataBeanArray(itemNmList[i]);
			}
			catch (Exception e)
			{
			}
			// -------------------------------------------------------

			if (null == beanArray)
			{
				// データタイプBeanでない場合、項目に初期値設定
				// ----------------------------------------------------------------
				// bean.sendMessage(itemNmList[i], X31CWebConst.DATABEAN_CLEAR);
				// 上記のようにクリア処理を実施すると、属性がBooleanの場合に
				// 初期値を定義していても、false固定で初期化されてしまうため、
				// 明示的に初期値をセットする。
				// ----------------------------------------------------------------
				bean.sendMessageObject(itemNmList[i], X31CWebConst.DATABEAN_SET_VALUE, bean.sendMessageObject(itemNmList[i],
						X31CWebConst.GET_INITIAL_VALUE));
			}
			else
			{
				// データタイプBeanの場合、リスト初期化
				beanArray.clearArray();
			}
		}

		// デバッグ用ログ出力
		DEBUG_LOG.info("----- FUW5301 initBean End -----");
	}

	/**
	 * 電話帳記載名をプロパティより取得します。
	 * <br>
	 * @param dnwachoKisaiCd	電話帳記載コード
	 * @return dnwachoKisaiNm	電話帳記載名
	 * @throws Exception		すべての例外
	 */
	private String getDnwachoKisaiNm(String dnwachoKisaiCd) throws Exception
	{

		// デバッグ用ログ出力
		DEBUG_LOG.info("----- FUW5301 getDnwachoKisaiNm Start -----");

		String dnwachoKisaiNm = JFUStrConst.EMPTY;

		// プロパティより電話帳記載名一覧を取得
		Map<String, String> nmMap = JFUWebCommon.getDispItemsAsMap(PATH_DNWACHO_KISAINM, QUERY_ATTR_NAME);

		if (nmMap != null && nmMap.size() > 0)
		{
			// 電話帳記載名
			dnwachoKisaiNm = (String)nmMap.get(dnwachoKisaiCd);
		}

		// デバッグ用ログ出力
		DEBUG_LOG.info("----- FUW5301 getDnwachoKisaiNm End -----");

		return dnwachoKisaiNm;
	}

	/**
	 * eo光eoモバイル契約一覧画面から遷移してきた場合の処理です。
	 *
	 * <br>
	 */
	private void excuteBfFuw00129()
	{
		// 共有フォームBean取得
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// 共通フォームBean.ＷＥＢ変更情報
		X31SDataBeanAccess webChgInfoBean = commonInfoBean.getDataBeanArray(CommonInfoCFConst.WEB_CHG_INFO).getDataBean(0);
		if (webChgInfoBean == null)
		{
			DEBUG_LOG.debug("SSOログイン情報が取得できない為、システムエラー");
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}
		// 共通フォームBean.ＷＥＢ変更情報.ＳＳＯ情報
		X31SDataBeanAccess ssoInfoBean = webChgInfoBean.getDataBeanArray(CommonInfoCFConst.SSO_INFO).getDataBean(0);
		if (ssoInfoBean == null)
		{
			DEBUG_LOG.debug("SSOログイン情報が取得できない為、システムエラー");
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}

		// SSO情報.SYSID
		String sysid = ssoInfoBean.sendMessageString(CommonInfoCFConst.SYSID_21, GET);
		// SSO情報.サービス契約番号
		String svcKeiNo = ssoInfoBean.sendMessageString(CommonInfoCFConst.SVC_KEI_NO_21, GET);
		// SSO情報.電話番号
		String telNo = ssoInfoBean.sendMessageString(CommonInfoCFConst.TELNO_21, GET);

		// ログ出力(連携値確認用)
		DEBUG_LOG.debug("【連携値】" + "SYSID：" + sysid + "/サービス契約番号：" + svcKeiNo + "/電話番号：" + telNo + "/遷移元画面ID："
				+ commonInfoBean.sendMessageString(CommonInfoCFConst.BEFORE_SCREEN_ID, GET) + "/遷移先画面ID："
				+ commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, GET));

		// SYSID、サービス契約番号、電話番号の値チェック
		if (JFUWebCommon.isNull(sysid) || JFUWebCommon.isNull(svcKeiNo) || JFUWebCommon.isNull(telNo))
		{
			// SYSID、サービス契約番号、電話番号のどれかが取得できない場合、システムエラー
			DEBUG_LOG.debug("SSOログイン情報が不正の為、システムエラー：" + "SYSID：" + sysid + "/サービス契約番号：" + svcKeiNo + "/電話番号：" + telNo);
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}

		// 現顧客契約情報リフレッシュ処理
		JFUWebCommon.refreshGenCustKei(this);
		// リロード時に処理させないように自画面の画面IDを設定する
		commonInfoBean.sendMessageString(CommonInfoCFConst.BEFORE_SCREEN_ID, SET, JFUScreenConst.SCREEN_ID_FUW05301);
	}

	/**
	 * 電話オプションパック申込解約画面に渡す割引サービスコードを取得する。
	 *
	 * <br>
	 * @return	割引サービスコード
	 */
	private String getPackScreenWribSvcCd()
	{
		// 適用中の割引サービスコード取得
		String currentWribSvcCode = getServiceFormBean().sendMessageString(FUW05301SFConst.WRIB_SVC_CD, GET);

		// お得判定後の割引サービスコード取得
		String otokuWribSvcCode = getServiceFormBean().sendMessageString(FUW05301SFConst.OTOKU_WRIB_SVC_CD, GET);

		// オプションパック画面のパック種別を取得
		String resultWribSvcCd = "";
		if (JFUStrConst.KK0841_WRIB_SVC_CD_TEL_OP_PACK7.equals(otokuWribSvcCode)
				|| JFUStrConst.KK0841_WRIB_SVC_CD_TEL_OP_PACK7.equals(currentWribSvcCode))
		{
			resultWribSvcCd = JFUStrConst.KK0841_WRIB_SVC_CD_TEL_OP_PACK7;
		}
		else if (JFUStrConst.KK0841_WRIB_SVC_CD_TEL_OP_PACK3.equals(otokuWribSvcCode)
				|| JFUStrConst.KK0841_WRIB_SVC_CD_TEL_OP_PACK3.equals(currentWribSvcCode))
		{
			resultWribSvcCd = JFUStrConst.KK0841_WRIB_SVC_CD_TEL_OP_PACK3;
		}

		return resultWribSvcCd;

	}

	/**
	 * 多機能を持っているか
	 *
	 * <br>
	 * @param outputMap
	 * @return "1":多機能あり、"0":多機能なし / "0_1":多機能なし(各種通信機器へのリンク無し)
	 */
	private String hasMultiPhoneCall(final HashMap<String, HashMap<String, Object>> outputMap)
	{

		if (!outputMap.containsKey(FUSV008104_S_C))
		{
			return JFUStrConst.CD00002_0;
		}
		String rtn = JFUStrConst.CD00002_0;

		// 共通フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// 機器オプションサービス契約一覧照会（複合検索）明細スキーマ
		HashMap<String, Object> fusv008104SCMap = outputMap.get(FUSV008104_S_C);
		ArrayList<HashMap<String, String>> ekk2811b504CBSMsg1List =
				(ArrayList<HashMap<String, String>>)fusv008104SCMap.get(EKK2811_B_504_C_B_S_MSG1_LIST);

		X31SDataBeanAccess genCustKeiInfoBean = null;
		X31SDataBeanAccess svcKeiInfoBean = null;

		// ★WEB変更の情報を取得
		X31SDataBeanAccess webChgInfoBean = commonInfoBean.getDataBeanArray(CommonInfoCFConst.WEB_CHG_INFO).getDataBean(0);
		X31SDataBeanAccessArray genCustKeiInfoArray = webChgInfoBean.getDataBeanArray(CommonInfoCFConst.GEN_CUST_KEI_INFO);
		// ★現顧客情報を取得
		int genCustListSize = genCustKeiInfoArray.getCount();
		for (int i = 0; i < genCustListSize; i++)
		{
			// ★サービス契約情報(現顧客情報の子)を取得
			genCustKeiInfoBean = genCustKeiInfoArray.getDataBean(i);
			X31SDataBeanAccessArray svcKeiInfoArray = genCustKeiInfoBean.getDataBeanArray(CommonInfoCFConst.SVC_KEI_INFO);

			int svcKeiListSize = svcKeiInfoArray.getCount();
			for (int j = 0; j < svcKeiListSize; j++)
			{
				svcKeiInfoBean = svcKeiInfoArray.getDataBean(j);
				// ★機器提供サービス契約情報(サービス契約情報の子)を取得
				X31SDataBeanAccessArray kktkSvcKeiInfoArray = svcKeiInfoBean.getDataBeanArray(CommonInfoCFConst.KKTK_SVC_KEI_INFO);
				int kktkSvcKeiListSize = kktkSvcKeiInfoArray.getCount();
				for (int k = 0; k < kktkSvcKeiListSize; k++)
				{
					// 機器提供サービス契約番号
					String kktkSvcKeiNo =
							kktkSvcKeiInfoArray.getDataBean(k).sendMessageString(CommonInfoCFConst.KKTK_SVC_KEI_NO_27,
									X31CWebConst.DATABEAN_GET_VALUE);

					// 機器オプションサービスコードがG02電話アダプタ
					// かつ、機器オプションサービス契約ステータスが100:サービス提供中、210:休止中断中、220:停止中の場合は、多機能ルーター
					for (int idx = 0; idx < ekk2811b504CBSMsg1List.size(); idx++)
					{
						HashMap<String, String> ekk2811b504CBSMsg = ekk2811b504CBSMsg1List.get(idx);
						if (kktkSvcKeiNo == null || !kktkSvcKeiNo.equals(ekk2811b504CBSMsg.get(KKTK_SVC_KEI_NO)))
						{
							continue;
						}

						// 機器オプションサービスコードがG02電話アダプタ
						// かつ、機器オプションサービス契約ステータスが100:サービス提供中、210:休止中断中、220:停止中
						if (JFUStrConst.KK2801_KKOP_SVC_CD_G02.equals(ekk2811b504CBSMsg.get(KKOP_SVC_CD)))
						{
							if (JFUStrConst.CD01616_100.equals(ekk2811b504CBSMsg.get(KKOP_SVC_KEI_STAT))
									|| JFUStrConst.CD01616_210.equals(ekk2811b504CBSMsg.get(KKOP_SVC_KEI_STAT))
									|| JFUStrConst.CD01616_220.equals(ekk2811b504CBSMsg.get(KKOP_SVC_KEI_STAT)))
							{
								// 多機能を持っていれば終了
								return JFUStrConst.CD00002_1;

							}
							else if (JFUStrConst.CD01616_010.equals(ekk2811b504CBSMsg.get(KKOP_SVC_KEI_STAT))
									|| JFUStrConst.CD01616_020.equals(ekk2811b504CBSMsg.get(KKOP_SVC_KEI_STAT))
									|| JFUStrConst.CD01616_030.equals(ekk2811b504CBSMsg.get(KKOP_SVC_KEI_STAT)))
							{
								// 機器オプションサービス契約ステータスが010:受付済、020:照査済、030:締結済
								rtn = NOT_MULTI_PHONE_CALL_NOT_LINK_KAKUSYUTUSINKIKI;
							}
						}

						if (JFUStrConst.KK2801_KKOP_SVC_CD_G01.equals(ekk2811b504CBSMsg.get(KKOP_SVC_CD))
								&& !JFUStrConst.CD01616_910.equals(ekk2811b504CBSMsg.get(KKOP_SVC_KEI_STAT))
								&& !JFUStrConst.CD01616_920.equals(ekk2811b504CBSMsg.get(KKOP_SVC_KEI_STAT)))
						{
							rtn = NOT_MULTI_PHONE_CALL_NOT_LINK_KAKUSYUTUSINKIKI;
						}
					}
				}
			}

		}
		return rtn;
	}

	/**
	 * 複数通話遷移区分を取得する。
	 *
	 * <br>
	 * @param outputMap
	 * @param  flg 多機能を持っているか
	 * @return 複数通話遷移区分
	 */
	private String getmutltiPhoneSeniFlg(final HashMap<String, HashMap<String, Object>> outputMap, String flg)
	{
		if (!outputMap.containsKey(FUSV008105_S_C))
		{
			return MULTI_PHONE_SENI_FLG;
		}

		if (NOT_MULTI_PHONE_CALL_NOT_LINK_KAKUSYUTUSINKIKI.equals(flg))
		{
			return MULTI_PHONE_SENI_FLG_ERROR;
		}

		// 共通フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// サービス契約内訳回線番号を取得
		X31SDataBeanAccess svcKeiKaisenUcwkInfoBean = JFUWebCommon.getDataBeanTypeByPath(commonInfoBean, JFUWebCommon.SVC_KEI_KAISEN_UCWK_INFO);
		String svckieKaisenUcwkNo =
				svcKeiKaisenUcwkInfoBean.sendMessageString(CommonInfoCFConst.SVC_KEI_KAISEN_UCWK_NO_26, X31CWebConst.DATABEAN_GET_VALUE);

		HashMap<String, Object> fusv008105SCMap = outputMap.get(FUSV008105_S_C);
		ArrayList<HashMap<String, String>> ekk0251b0502CBSMsg1List =
				(ArrayList<HashMap<String, String>>)fusv008105SCMap.get(EKK0251_B_502_C_B_S_MSG1_LIST);

		// 複数通話遷移区分
		String rtnSeniFlg = MULTI_PHONE_SENI_FLG_ERROR;

		// サービス回線内訳番号のリスト
		for (int i = 0; i < ekk0251b0502CBSMsg1List.size(); i++)
		{
			HashMap<String, String> ekk0251b0502CBSMsg = ekk0251b0502CBSMsg1List.get(i);

			String prc_grp_cd = ekk0251b0502CBSMsg.get(PRC_GRP_CD);
			String svcKeiStat = ekk0251b0502CBSMsg.get(SVC_KEI_STAT);
			if (svckieKaisenUcwkNo.equals(ekk0251b0502CBSMsg.get(SVC_KEI_KAISEN_UCWK_NO)))
			{
				// サービス回線番号でネットが存在する場合(リンクありをセットする。異なる回線でネットがない場合はリンク有りで返却);
				if (hasNet(prc_grp_cd, svcKeiStat))
				{
					// 一時的に設定する
					rtnSeniFlg = MULTI_PHONE_SENI_FLG_COMMUNICATION_EQUIPMENT;
				}
			}
			else
			{
				// 異なるサービス回線番号でネットが存在する場合
				if (hasNet(prc_grp_cd, svcKeiStat))
				{
					// リンクなしに決定
					return MULTI_PHONE_SENI_FLG_ERROR;
				}
			}
		}
		return rtnSeniFlg;
	}

	/**
	 * 電話契約を持っているか。
	 * <br>
	 * @param prc_grp_cd	料金コースコード
	 * @param svcKeiStat	サービス契約ステータス
	 * @return 電話契約あり
	 */
	private boolean hasNet(String prc_grp_cd, String svcKeiStat)
	{
		if (JFUStrConst.CD00133_02.equals(prc_grp_cd) || JFUStrConst.CD00133_03.equals(prc_grp_cd) || JFUStrConst.CD00133_04.equals(prc_grp_cd))
		{
			if (!JFUStrConst.CD00037_910.equals(svcKeiStat) && !JFUStrConst.CD00037_920.equals(svcKeiStat))
			{
				return true;
			}
		}
		return false;
	}

	/**
	 * オプション申込が可能かを判断する。
	 * 住所変更先の電話番号、住所中、
	 *
	 * <br>
	 * @param bean
	 * @param outputMap
	 * @return オプション申込フラグ 0:申込可、1:申込不可
	 * @throws Exception
	 */
	private String setOPMskmFlg(X31SDataBeanAccess bean,HashMap<String,HashMap<String,Object>> outputMap) throws Exception
	{
		// オプション申込フラグ（0:申込可、1:申込不可）
		String oPMskmFlg = null;
		if (outputMap.containsKey(TEL_OP_MSKM_CHECK_KEY))
		{
			HashMap parentMap = (HashMap)outputMap.get(TEL_OP_MSKM_CHECK_KEY);
			if (parentMap != null)
			{
				oPMskmFlg = (String)parentMap.get("mskmKhFlg");
			}
		}

		if ("0".equals(oPMskmFlg))
		{
			oPMskmFlg = JFUWebCommon.getAdChgUm(this, JFUStrConst.RELATION_CHECK_AD_CHG_CHK_PTN_C);
		}
		return oPMskmFlg;
	}

	/**
	 * 利用可能とする督促ステータスチェック
	 *
	 * @param commonInfoBean  共有フォームBean
	 * @param serviceFormBean eo光電話お客さま契約情報変更／照会メニューサービスフォームBean
	 * @throws Exception
	 */
	private void checkTokusokuStat(final X31SDataBeanAccess commonInfoBean,
			final X31SDataBeanAccess serviceFormBean) throws Exception
	{

		// -------------------------------------------------
		// 現顧客契約情報からサービス契約情報を取得
		// -------------------------------------------------
		// ★WEB変更情報
		X31SDataBeanAccess webChgInfoBean = getX31SDataBeanAccess(commonInfoBean, CommonInfoCFConst.WEB_CHG_INFO);

		// ★現顧客情報(WEB変更情報の子階層)
		X31SDataBeanAccessArray genCustKeiInfoArray = webChgInfoBean.getDataBeanArray(CommonInfoCFConst.GEN_CUST_KEI_INFO);
		X31SDataBeanAccess genCustKeiInfoBean = genCustKeiInfoArray.getDataBean(0);

		// ★サービス契約情報
		X31SDataBeanAccessArray svcKeiInfoArray = genCustKeiInfoBean.getDataBeanArray(CommonInfoCFConst.SVC_KEI_INFO);
		X31SDataBeanAccess svcKeiInfoBean = svcKeiInfoArray.getDataBean(0);

		// ★請求契約情報
		X31SDataBeanAccessArray seikyKeiInfoArray = svcKeiInfoBean.getDataBeanArray(CommonInfoCFConst.SEIKY_KEI_INFO);
		X31SDataBeanAccess seikyKeiInfoBean = seikyKeiInfoArray.getDataBean(0);

		String tokusokuStat = seikyKeiInfoBean.sendMessageString(CommonInfoCFConst.TOKUSOKU_STAT_32, GET);

		// 共有フォームBean.請求契約情報.督促ステータスが「00:督促なし」の場合、チェック処理を抜ける
		if (JFUWebCommon.isNull(tokusokuStat) || JFUStrConst.CD00184_00.equals(tokusokuStat))
		{
			return;
		}

		if (Integer.parseInt(tokusokuStat) >= Integer.parseInt(JFUStrConst.CD00184_15))
		{
			// 督促ステータスが「15:強制解約予告済」以上の場合

			// ●督促エラー有無を「有」とする。
			serviceFormBean.sendMessageString(FUW05301SFConst.TOKUSOKU_ERR_UM, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00002_1);
		}
	}

	/**
	 * データBeanリストから0番目のデータBeanを取得
	 * <br/>
	 * データBeanリストから0番目のデータBeanを取得します。
	 *
	 * @param bean サービスフォームBean
	 * @param componentID componentID
	 * @return 取得したデータBean
	 */
	private X31SDataBeanAccess getX31SDataBeanAccess(X31SDataBeanAccess bean, String componentID)
	{
		X31SDataBeanAccessArray subBeanArray = bean.getDataBeanArray(componentID);
		X31SDataBeanAccess subBean = subBeanArray.getDataBean(0);
		if (null == subBean)
		{
			subBeanArray.addDataBean();
			subBean = subBeanArray.getDataBean(0);
		}
		return subBean;
	}

	/**
	 * 設備卸か判定を行います。
	 * 
	 * <br>
	 * @return true:設備卸、false:設備卸でない
	 */
	private boolean isOrosi()
	{
		// 契約者タイプコードの設定
		// 現顧客情報
		// 共有フォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		X31SDataBeanAccess genCustKeiInfoBean = JFUWebCommon.getDataBeanTypeByPath(commoninfoBean, JFUWebCommon.GEN_CUST_KEI_INFO);
		// 卸先事業者コード
		String orsjgs_cd = genCustKeiInfoBean.sendMessageString(CommonInfoCFConst.ORSJGS_CD_22, GET);
		if (orsjgs_cd == null || JFUStrConst.EMPTY.equals(orsjgs_cd))
		{
			return false;
		}
		return true;

	}

}
