/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：eo光ネット入力
*   ソースファイル名：FUW00106SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年04月01日
*＜機能概要＞
*   eo光ネット入力画面の制御を行います。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00       2011/04/01   FJ)山本     新規作成
*   v3.00       2012/03/29   FJ)福島     料金シミュレーション対応
*   v4.00       2012/07/11   FJ)大塚    「案件番号: ANK-0363-00-00」【巻き取り@】【FTTH従量制プラン_STEP2】対応
*   v4.01       2012/10/26   FJ)大塚    「案件番号: ANK-1190-00-00」
*   v4.44       2012/12/29   FJ)岩元    【TAI-2012-0000136】契約新規連携項目不備対応
*   v4.45       2013/01/18   FJ)大村    「新規-276」 戻るボタン押下時のコース選択
*   v5.00       2013/02/19   FJ)玉井     ｢クロスブラウザ-288」 戻るボタン押下時の「同意する」チェックの保持
*   v5.01       2013/03/07   FJ)大村    「内部課題-No.2」サービス開始希望日の戻る遷移障害
*   v5.02       2013/04/03   FJ)大村    「IT1-2013-0000715」ＶＤＳＬマンションの場合、ネット非申込時にモデムレンタル機器が必要
*   v10.00      2014/07/04   FJ)西山    「ANK-1918-00-00」US管理S向けeo顧客SのIF改修
*   v10.00      2014/08/18   FJ)岡井    【ANK-2218-00-00】フロントＳ画面遷移数削減対応(2)_確認画面対応
*   v25.00      2016/06/06   FJ)西川    【OM-2016-0000964】VDSLモデム聴き取り不具合に伴うログ出力
*   v33.00      2017/08/30   FJ)中田    【ANK-3209-00-00】E-PON電話単独への1Gコース追加抑止
*   v33.01      2017/09/07   FJ)中田    【IT1-2017-0000112】障害対応
*   v36.00      2017/12/07   FJ)高野    【ANK-3296-00-00】標準工事費分割請求
*   v40.00      2018/11/12   FJ)松原    【ANK-3412-00-00】５ギガ・１０ギガコース導入対応【STEP1、2】
*   v40.00.00   2019/01/09   FJ) 西川   【ANK-3412-03-00】５ギガ・１０ギガコース導入対応(特約プログラム対応)
*   v46.00.00   2019/10/04   FJ）西川   【ANK-3731-00-00】マンション光配線切替対応
*   v48.00.00   2020/02/07   FJ) 岡井   【ANK-3757-00-00】マンション工事種別イーサ他社併行時のサービス開始希望日の入力欄制御
*   v51.00      2020/11/12   FJ）張本   【ANK-3949-00-00】Netflix導入対応（STEP1）
*   v56.00      2021/12/06   FJ）美濃原 【ANK-4103-00-00】マンション光コンセントタイプのWeb受付対応
*   v60.00      2022/06/20   FJ）美濃原 【ANK-4244-00-00】【eo定期】MT既設賃貸対応
*   v73.00      2024/11/15   FJ) 張本   【ANK-4493-00-00】【eo定期】光配線マンションのコースアップ対応
*   v75.00      2025/06/04   FJ) 張本   【ANK-4654-00-00】フロントWebでのサービス追加時のオプション引継および解約書面案内の廃止
**********************************************************************/

package eo.web.webview.FUW00106SF;

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import com.fujitsu.futurity.common.JSYwebLog;
import com.fujitsu.futurity.web.x00.JCCBusinessException;
import com.fujitsu.futurity.web.x00.JCCWebServiceException;
import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;
import com.fujitsu.futurity.web.x31.X31CMessageResult.X31CMessageMoreInfo;
import com.fujitsu.futurity.web.x33.X33CUtil;
import com.fujitsu.futurity.web.x33.X33WSessionController;

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.JCCWebCommon;
import eo.web.webview.common.JFUScreenConst;
import eo.web.webview.common.JFUWebCommon;
import eo.web.webview.mapping.FUSV0003_FUSV0003OPDBMapper;
import eo.web.webview.mapping.FUSV0314_FUSV0314OPDBMapper;
// ANK-3209-00-00 ADD START
import eo.web.webview.mapping.FUSV0312_FUSV0312OPDBMapper;
// ANK-3209-00-00 ADD END

/**
 * eo光ネット入力画面のVIEWロジックです。
 * <br>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class FUW00106SFLogic extends JCCWebBusinessLogic
{
	/** 共通設定情報 ： 未契約、未選択、申し込まない、利用しない など */
	private static final String INFO_FALSE = "0";

	/** 共通設定情報 ： 契約中、選択、申し込む、利用する など */
	private static final String INFO_TRUE = "1";

	/** ホームタイプ */
	private static final String HOME = "1";

	/** メゾンタイプ */
	private static final String MASION = "2";

	/** マンションタイプ */
	private static final String MANSION = "3";

	/** 年 */
	public static final String L_YEAR_VALUE_LIST = "年";

	/** 月 */
	public static final String L_MONTH_VALUE_LIST = "月";

	/** 日*/
	public static final String L_DAY_VALUE_LIST = "日";

	/** プロパティ取得キー  即割 */
	private static final String SOKUWARI = "SOKUWARI";

	/** プロパティ取得キー  長割 */
	private static final String CHOWARI = "CHOWARI";

	/** プロパティ取得キー  ホーム文言 */
	private static final String HOME_MONGON = "HOME_MONGON";

	/** プロパティ取得キー  メゾン文言 */
	private static final String MAISON_MONGON = "MAISON_MONGON";

	/** プロパティ取得キー  マンション文言 */
	private static final String MANSION_MONGON = "MANSION_MONGON";

	/** サービスID ： eo光ネット入力チェック */
	private static final String SERVICE_ID_FUSV0003 = "FUSV0003";

// ANK-3209-00-00 ADD START
	/** サービスID ： eo光ネット入力(初期表示) */
	private static final String SERVICE_ID_FUSV0312 = "FUSV0312";

// ANK-3296-00-00 ADD START
	/** サービスID ： 工事一覧照会 */
	private static final String SERVICE_ID_FUSV0314 = "FUSV0314";
// ANK-3296-00-00 ADD END
	
	/** ボタンID ：1ギガコース */
	private static final String COURSE_1G = "netCourse_3";

	/** ボタンID：５ギガ／１０ギガ */
	public static final List<String> COURSE_5G10G = Arrays.asList("netCourse_5", "netCourse_6", "netCourse_8", "netCourse_9");

	/** テンプレートID1 */
	private static final String TEMP_ID_1 = "EKK0091D010";

	/** テンプレートID2 */
	private static final String TEMP_ID_2 = "EKK0341D010";

	/** アプリケーションプロパティーキー*/
	private static final String FU_N_CHOWARI_MSKM = "FU_N_CHOWARI_MSKM";

	/** プロパティーキー ID*/
	private static final String P_ID = "id";

	/** プロパティーキー ホームタイプ*/
	private static final String BTN_INFO_HOME = "DISPSETTING/SETTING[@screenId='FUW00106']/DISPTEXT[@groupid='006']";

	/** プロパティーキー メゾンムタイプ*/
	private static final String BTN_INFO_MAISON = "DISPSETTING/SETTING[@screenId='FUW00106']/DISPTEXT[@groupid='007']";

	/** プロパティーキー マンションタイプ*/
	private static final String BTN_INFO_MANSION = "DISPSETTING/SETTING[@screenId='FUW00106']/DISPTEXT[@groupid='008']";

	/** プロパティーキー マンションタイプ 光配線（MANMOS管理） */
	private static final String BTN_INFO_MT_HIKARICHG = "DISPSETTING/SETTING[@screenId='FUW00106']/DISPTEXT[@groupid='008CHG_%1%']";

	/** 選択（1） */
	private static final String SENTAKU = "1";

	/** ユーザーエージェント */
	private static final String USER_AGENT = "USER-AGENT";

	/** サービス希望日制御フラグ：コース選択された際に表示する （イベント表示制御なし） */
	private static final String SVC_KB_CTRL_FLG_1 = "1";

	/** サービス希望日制御フラグ：コース選択された際に表示する 光配線（コンセント設置済）（イベント表示制御あり）*/
	private static final String SVC_KB_CTRL_FLG_2 = "2";

	/** サービス希望日制御フラグ：ギガイーサのダミー設定値 */
	private static final String SVC_KB_CTRL_FLG_9 = "9";

	/**
	 * 初期表示処理
	 *
	 * 共有フォームBean設定情報を、サービスフォームBeanに設定する
	 * 即割りチェック、サービス開始希望日の情報をセット
	 *
	 * @return true
	 * @throws Exception
	 */
	public boolean init() throws Exception
	{
		JCCWebCommon.getScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW00105);

		// 共有フォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 空データの作成
		createData(commoninfoBean);

		// "WEB新規"階層
		X31SDataBeanAccess ws = commoninfoBean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO).getDataBean(0);

		// "eo光ネット"階層
		X31SDataBeanAccess eoNet = ws.getDataBeanArray(CommonInfoCFConst.EONET).getDataBean(0);

		// IT1-2013-0000715 >>>
		// "契約サービス情報"階層
		X31SDataBeanAccess kykSvc = (ws.getDataBeanArray(CommonInfoCFConst.KEIYAKU_SVC_INFO)).getDataBean(0);
		// IT1-2013-0000715 <<<E

		// マンション情報
		X31SDataBeanAccess wsMnshnInfo = ws.getDataBeanArray(CommonInfoCFConst.MANSION_INFO).getDataBean(0);

		// 運用日をセット
		bean.sendMessageString(FUW00106SFConst.UNYO_DATE, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getOpeDate(this, null));

		// サービス開始日表示フラグ設定（初期化）
		bean.sendMessageBoolean(FUW00106SFConst.SVC_KB_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
		// サービス開始日表示フラグ設定（初期化）
		bean.sendMessageString(FUW00106SFConst.SVC_KB_CTRL_FLG, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);

		if (eoNet != null)
		{
			// 回線タイプを取得
			String typeKbn = getKaisenType(commoninfoBean);
			Map<String, String> map = null;
			boolean lightFlg = true; // 100Mライトコース表示判定フラグ
			String hhs1gonlyFlg = null;

			// サービスフォームBean設定処理
			if (HOME.equals(typeKbn))
			{
				// FUDispDefinitionからホームタイプのボタン情報を取得する。
				map = JFUWebCommon.getDispItemsAsMap(BTN_INFO_HOME, P_ID);
			}
			else if (MASION.equals(typeKbn))
			{
				// FUDispDefinitionからメゾンタイプのボタン情報を取得する。
				map = JFUWebCommon.getDispItemsAsMap(BTN_INFO_MAISON, P_ID);
			}
			else if (MANSION.equals(typeKbn))
			{
				// マンションタイプの場合
				String teikyoHoshikiPtnCd =
						wsMnshnInfo.sendMessageString(CommonInfoCFConst.TEIKYO_HOSHIKI_PTN_CD_16, X31CWebConst.DATABEAN_GET_VALUE);
				String tkHoshikiPatternCd =
					wsMnshnInfo.sendMessageString(CommonInfoCFConst.TK_HOSHIKI_PATTERN_CD_16, X31CWebConst.DATABEAN_GET_VALUE);
				boolean svcKibDspFlg = JFUWebCommon.getSvcKiboDspFlg(ws);
				if (JFUStrConst.TK_HOSHIKI_PTN_GG_ENET.equals(teikyoHoshikiPtnCd) && svcKibDspFlg)
				{
					// サービス開始日表示フラグ設定
					bean.sendMessageString(FUW00106SFConst.SVC_KB_CTRL_FLG, X31CWebConst.DATABEAN_SET_VALUE, SVC_KB_CTRL_FLG_9);
					// ※ギガイーサの判定は、JSP等で制御しているので、ここでは設定しない。
					svcKibDspFlg = false;
				}
				bean.sendMessageBoolean(FUW00106SFConst.SVC_KB_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, svcKibDspFlg);

				String tonai_speed_cd = wsMnshnInfo.sendMessageString(CommonInfoCFConst.TONAI_SPEED_CD_16, X31CWebConst.DATABEAN_GET_VALUE);
				String tkHosikiChgSbtCd = JFUWebCommon.getTkHosikiChgSbtCd(wsMnshnInfo);
				if (svcKibDspFlg)
				{
					if (JFUWebCommon.isHikariConcent(tkHosikiChgSbtCd))
					{
						bean.sendMessageString(FUW00106SFConst.SVC_KB_CTRL_FLG, X31CWebConst.DATABEAN_SET_VALUE, SVC_KB_CTRL_FLG_1);
					}
					else if (JFUWebCommon.isTkHosikiChgSbtCd(tkHosikiChgSbtCd) || JFUWebCommon.isHikariCourseUp(wsMnshnInfo))
					{
						// 光配線（全戸一括）のみで使用
						bean.sendMessageString(FUW00106SFConst.SVC_KB_CTRL_FLG, X31CWebConst.DATABEAN_SET_VALUE, SVC_KB_CTRL_FLG_2);
					}
					else if (JFUStrConst.TK_HOSHIKI_PTN_ENET.equals(teikyoHoshikiPtnCd))
					{
						bean.sendMessageString(FUW00106SFConst.SVC_KB_CTRL_FLG, X31CWebConst.DATABEAN_SET_VALUE, SVC_KB_CTRL_FLG_9);
					}
				}

				if (isYearMonthDayList(bean))
				{
					// 日付プルダウンリストの作成
					getYearMonthDayListValue(bean, commoninfoBean);
				}

				// 光配線（全戸一括以外）
				boolean isHikarihaisen = false;

				if (!JFUWebCommon.isTkHosikiChgSbtCd(tkHosikiChgSbtCd))
				{
					// 提供方式変更以外
					isHikarihaisen =
							JFUStrConst.TK_HOSHIKI_PTN_HIKARI_HAISEN.equals(wsMnshnInfo.sendMessageString(CommonInfoCFConst.TEIKYO_HOSHIKI_PTN_CD_16,
									X31CWebConst.DATABEAN_GET_VALUE));
					if (isHikarihaisen)
					{
						// 光配線マンションの場合、光配線(1ギガのみ)マンションと判断するため、回線使用契約スキーマの「光配線1Gのみフラグ」を取得。
						hhs1gonlyFlg = wsMnshnInfo.sendMessageString(CommonInfoCFConst.HHS_1GONLY_FLG_16, X31CWebConst.DATABEAN_GET_VALUE);
					}
				}

				if (JFUStrConst.CD01213_53.equals(tkHoshikiPatternCd))
				{
					String key = BTN_INFO_MT_HIKARICHG.replace("%1%", tkHoshikiPatternCd);
					map = JFUWebCommon.getDispItemsAsMap(key, P_ID);
				}
				else if (JFUWebCommon.isHikariZenko(tkHosikiChgSbtCd) || JFUStrConst.HHS_1GONLY_FLG_1.equals(hhs1gonlyFlg))
				{
					// 光配線1Gのみフラグ ／光配線（全戸一括）の場合、ボタン情報を取得します。
					String key = BTN_INFO_MT_HIKARICHG.replace("%1%", tonai_speed_cd);
					map = JFUWebCommon.getDispItemsAsMap(key, P_ID);
					lightFlg = false;
				}
				else if (JFUStrConst.TK_HOSHIKI_PTN_GG_ENET.equals(wsMnshnInfo.sendMessageString(CommonInfoCFConst.TEIKYO_HOSHIKI_PTN_CD_16, X31CWebConst.DATABEAN_GET_VALUE))
						|| isHikarihaisen)
				{
					// ギガイーサ、光配線(個別/1ギガのみ)の場合

					// ギガイーサー、光配線の場合のみボタン情報を取得します。
					map = JFUWebCommon.getDispItemsAsMap(BTN_INFO_MANSION, P_ID);
					// 提供方式コード
					String tkHoshikiCd = wsMnshnInfo.sendMessageString(CommonInfoCFConst.TEIKYO_HOSHIKI_CD_16, X31CWebConst.DATABEAN_GET_VALUE);

					// 加入契約申込条件コード
					String knykeiMskmJknCd = wsMnshnInfo.sendMessageString(CommonInfoCFConst.KNYKEI_MSKM_JOKEN_CD_16, X31CWebConst.DATABEAN_GET_VALUE);

					// 従量制申込可能フラグ
					String juryoseiMskmFlg = wsMnshnInfo.sendMessageString(CommonInfoCFConst.JURYOSEI_MSKM_FLG_16, X31CWebConst.DATABEAN_GET_VALUE);

					// 光回線かつ全戸一括かつ申し込み可能な場合
					if (JFUStrConst.TK_HOSHIKI_HIKARI_HAISEN.equals(tkHoshikiCd) && !JFUStrConst.KNYKEI_MSKM_JOKEN_IKT.equals(knykeiMskmJknCd) && JFUStrConst.JURYOSEI_MSKM_PSB.equals(juryoseiMskmFlg))
					{
						lightFlg = true;
					}
					else
					{
						lightFlg = false;
					}
				}
			}

			// ボタン情報をサービスフォームBeanにセット
			if (map != null)
			{
				setBtnDispInfo(map, typeKbn, lightFlg);
			}

			// eo光ネット情報が存在した場合のみ（戻る or 確認画面からの遷移時）
			// 同意チェックボックスをチェックする

			// ネットコース
			String netCourse = eoNet.sendMessageString(CommonInfoCFConst.NET_COURSE_11, X31CWebConst.DATABEAN_GET_VALUE);

			// ネットコースが100M・100Mライト・1ギガがすでに選択されていた場合
			if (JFUStrConst.NET_COURSE_100M.equals(netCourse) || JFUStrConst.NET_COURSE_100M_LIGHT.equals(netCourse)
					|| JFUStrConst.NET_COURSE_1G.equals(netCourse) || JFUStrConst.NET_COURSE_5G.equals(netCourse)
					|| JFUStrConst.NET_COURSE_10G.equals(netCourse) || JFUStrConst.NET_COURSE_1G_NF.equals(netCourse)
					|| JFUStrConst.NET_COURSE_5G_NF.equals(netCourse) || JFUStrConst.NET_COURSE_10G_NF.equals(netCourse))
			{
				// 同意フラグをtrueにする。
				bean.sendMessageBoolean(FUW00106SFConst.TKY_JKN_AGR, X31CWebConst.DATABEAN_SET_VALUE, true);
			}
			else
			{
				// 一応保険として。
				// モデムプラン
				String netModem = eoNet.sendMessageString(CommonInfoCFConst.MODEM_PLAN_11, X31CWebConst.DATABEAN_GET_VALUE);

				if (JFUStrConst.MODEM_PLAN_KAITORI.equals(netModem) || JFUStrConst.MODEM_PLAN_RENT.equals(netModem))
				{
					// 同意フラグをtrueにする。
					bean.sendMessageBoolean(FUW00106SFConst.TKY_JKN_AGR, X31CWebConst.DATABEAN_SET_VALUE, true);
				}
			}

			// ホームかメゾンの場合
			if (HOME.equals(typeKbn) || MASION.equals(typeKbn))
			{
				// 即割
				if (INFO_TRUE.equals(eoNet.sendMessageString(CommonInfoCFConst.NET_SOKUWARI_11, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					// 即割が選択の場合
					bean.sendMessageBoolean(FUW00106SFConst.SOKUWARI, X31CWebConst.DATABEAN_SET_VALUE, true);
				}
				else
				{
					// 即割が未選択の場合
					bean.sendMessageBoolean(FUW00106SFConst.SOKUWARI, X31CWebConst.DATABEAN_SET_VALUE, false);
				}

				// 高速割
				if (INFO_TRUE.equals(eoNet.sendMessageString(CommonInfoCFConst.NET_KOSOKUWARI_11, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					// 高速割が選択の場合
					bean.sendMessageBoolean(FUW00106SFConst.KOSOKUWARI, X31CWebConst.DATABEAN_SET_VALUE, true);
				}
				else
				{
					// 高速割が未選択の場合
					bean.sendMessageBoolean(FUW00106SFConst.KOSOKUWARI, X31CWebConst.DATABEAN_SET_VALUE, false);
				}

				// １０Ｇ了承フラグ
				if (INFO_TRUE.equals(eoNet.sendMessageString(CommonInfoCFConst.RYOUSHO_10G_FLG_11, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					// １０Ｇ了承フラグが選択の場合
					bean.sendMessageBoolean(FUW00106SFConst.RYOUSHO_10G_FLG, X31CWebConst.DATABEAN_SET_VALUE, true);
				}
				else
				{
					// １０Ｇ了承フラグが未選択の場合
					bean.sendMessageBoolean(FUW00106SFConst.RYOUSHO_10G_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
				}

				// 長割
				if (INFO_TRUE.equals(eoNet.sendMessageString(CommonInfoCFConst.NET_CHOWARI_11, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					// 長割が選択の場合
					bean.sendMessageBoolean(FUW00106SFConst.CHOWARI, X31CWebConst.DATABEAN_SET_VALUE, true);
				}
				else
				{
					// 長割が未選択の場合
					bean.sendMessageBoolean(FUW00106SFConst.CHOWARI, X31CWebConst.DATABEAN_SET_VALUE, false);
				}

				// 自動継続
				if (INFO_TRUE.equals(eoNet.sendMessageString(CommonInfoCFConst.AUTO_KEIZOKU_11, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					// 自動継続が選択の場合
					bean.sendMessageBoolean(FUW00106SFConst.AUTO_KEIZOKU, X31CWebConst.DATABEAN_SET_VALUE, true);
				}
				else
				{
					// 自動継続が未選択の場合
					bean.sendMessageBoolean(FUW00106SFConst.AUTO_KEIZOKU, X31CWebConst.DATABEAN_SET_VALUE, false);
				}

				// 長割申込 APLConstから値を取得
				String chowari_mskm = JCCWebCommon.getApplicationConst(FU_N_CHOWARI_MSKM);

				// 値が1の場合
				if (INFO_TRUE.equals(chowari_mskm))
				{
					// 1(表示)を設定
					bean.sendMessageString(FUW00106SFConst.CHOWARI_MSKM, X31CWebConst.DATABEAN_SET_VALUE, INFO_TRUE);
				}
				else
				{
					// それ以外は0(非表示)を設定
					bean.sendMessageString(FUW00106SFConst.CHOWARI_MSKM, X31CWebConst.DATABEAN_SET_VALUE, INFO_FALSE);
				}
			}

			if (MANSION.equals(typeKbn))
			{
				// 提供方式パターンが"VDSL"もしくは"VDSL-S"の場合
				if (JFUStrConst.TK_HOSHIKI_PTN_VDSL.equals(wsMnshnInfo.sendMessageString(CommonInfoCFConst.TEIKYO_HOSHIKI_PTN_CD_16, X31CWebConst.DATABEAN_GET_VALUE))
						|| JFUStrConst.TK_HOSHIKI_PTN_VDSLS.equals(wsMnshnInfo.sendMessageString(CommonInfoCFConst.TEIKYO_HOSHIKI_PTN_CD_16, X31CWebConst.DATABEAN_GET_VALUE)))
				{

					// IT1-2013-0000715 >>>
					// 同一場所への回線追加の場合、既契約に電話が存在する場合は、モデムはレンタルを指定する
					String kaisen_select = ws.sendMessageString(CommonInfoCFConst.KAISEN_SELECT_06, X31CWebConst.DATABEAN_GET_VALUE);
					String now_svc_tel = kykSvc.sendMessageString(CommonInfoCFConst.NOW_SVC_TEL_10, X31CWebConst.DATABEAN_GET_VALUE);
					if (JFUStrConst.KAISEN_SELECT_ADD_KEI.equals(kaisen_select) && SENTAKU.equals(now_svc_tel))
					{
						eoNet.sendMessageString(CommonInfoCFConst.MODEM_PLAN_11, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.MODEM_PLAN_RENT);
					}
					// IT1-2013-0000715 <<<E

					// モデム選択情報の設定
					bean.sendMessageString(FUW00106SFConst.MDM_PLAN, X31CWebConst.DATABEAN_SET_VALUE, eoNet.sendMessageString(
							CommonInfoCFConst.MODEM_PLAN_11, X31CWebConst.DATABEAN_GET_VALUE));
				}

				// マンションの場合、eo光ネットコースが画面で選択できないので、提供方式パターンコードにより光ネットコースを設定する。
				if (JFUStrConst.EMPTY.equals(eoNet.sendMessageString(CommonInfoCFConst.NET_COURSE_11, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					// VDSL、VDSL-S、イーサネットの場合、光ネットコースに"1:100M"を設定する。
					// 提供方式パターンコードが"VDSL"もしくは"VDSL-S"の場合
					if (JFUStrConst.TK_HOSHIKI_PTN_VDSL.equals(wsMnshnInfo.sendMessageString(CommonInfoCFConst.TEIKYO_HOSHIKI_PTN_CD_16, X31CWebConst.DATABEAN_GET_VALUE))
							|| JFUStrConst.TK_HOSHIKI_PTN_VDSLS.equals(wsMnshnInfo.sendMessageString(CommonInfoCFConst.TEIKYO_HOSHIKI_PTN_CD_16, X31CWebConst.DATABEAN_GET_VALUE))
							|| JFUStrConst.TK_HOSHIKI_PTN_ENET.equals(wsMnshnInfo.sendMessageString(CommonInfoCFConst.TEIKYO_HOSHIKI_PTN_CD_16, X31CWebConst.DATABEAN_GET_VALUE)))
					{
						eoNet.sendMessageString(CommonInfoCFConst.NET_COURSE_11, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.NET_COURSE_100M);
					}
					else if (JFUWebCommon.isTkHosikiChgSbtCd(wsMnshnInfo))
					{
						// 提供方式変更の料金コースは、1ギガコースとする。
						eoNet.sendMessageString(CommonInfoCFConst.NET_COURSE_11, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.NET_COURSE_1G);
					}
				}
			}

			// 申込区分
			String mskmKbn = ws.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_GET_VALUE);

			// 追加申込の場合
			if (JFUStrConst.MSKM_KBN_ADD.equals(mskmKbn))
			{
				// サービスの引継ぎ
				bean.sendMessageString(FUW00106SFConst.SERVICE_HKTGI_SELECT, X31CWebConst.DATABEAN_SET_VALUE, eoNet.sendMessageString(
						CommonInfoCFConst.SVC_HKTGI_11, X31CWebConst.DATABEAN_GET_VALUE));

				// 継続
				bean.sendMessageString(FUW00106SFConst.KEIZOKU_SELECT, X31CWebConst.DATABEAN_SET_VALUE, eoNet.sendMessageString(
						CommonInfoCFConst.MAIL_MYHP_CONTINUE_11, X31CWebConst.DATABEAN_GET_VALUE));
				// 引継ぎコース文言
				if (HOME.equals(typeKbn))
				{
					bean.sendMessageString(FUW00106SFConst.SERVICE_HKTGI_COURSE_MONGON, X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon.getDispText(
							JFUScreenConst.SCREEN_ID_FUW00106, HOME_MONGON));
				}
				else if (MASION.equals(typeKbn))
				{
					bean.sendMessageString(FUW00106SFConst.SERVICE_HKTGI_COURSE_MONGON, X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon.getDispText(
							JFUScreenConst.SCREEN_ID_FUW00106, MAISON_MONGON));
				}
				else if (MANSION.equals(typeKbn))
				{
					bean.sendMessageString(FUW00106SFConst.SERVICE_HKTGI_COURSE_MONGON, X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon.getDispText(
							JFUScreenConst.SCREEN_ID_FUW00106, MANSION_MONGON));
				}
			}
			
// ANK-3296-00-00 ADD START
			// 工事一覧照会を取得する。
			// "WEB新規情報.回線場所選択"
			String kaisenSelect = ws.sendMessageString(CommonInfoCFConst.KAISEN_SELECT_06, X31CWebConst.DATABEAN_GET_VALUE);

			// 追加申込 かつ 契約中の回線に追加する場合
			if (JFUStrConst.MSKM_KBN_ADD.equals(mskmKbn) && JFUStrConst.KAISEN_SELECT_ADD_KEI.equals(kaisenSelect))
			{
				// サービスI/Fの呼び出し処理
				callInitKojiSIF(bean, commoninfoBean);
			}

			// 標準工事費お支払い方法設定
			String wsStKojiPayway = ws.sendMessageString(CommonInfoCFConst.STDARD_KOJIHI_PAYWAY_06, X31CWebConst.DATABEAN_GET_VALUE);
			if (JFUStrConst.EMPTY.equals(wsStKojiPayway))
			{
				// 初期値(分割払い) 設定
				bean.sendMessageString(FUW00106SFConst.STDARD_KOJIHI_PAYWAY, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.STDARD_KOJIHI_PAYWAY_BUNKATSU);
			}
			else
			{
				bean.sendMessageString(FUW00106SFConst.STDARD_KOJIHI_PAYWAY, X31CWebConst.DATABEAN_SET_VALUE, wsStKojiPayway);
			}
			
			// "契約サービス情報.契約中サービス(電話)
			String kykSvcTel = kykSvc.sendMessageString(CommonInfoCFConst.NOW_SVC_TEL_10, X31CWebConst.DATABEAN_GET_VALUE);

			// (ホームタイプ または メゾンタイプ) 且つ
			// (新規申込 または
			// (追加申込 且つ 契約中回線に追加 且つ 契約中サービス(電話)が未契約 かつ 工事が存在しない) または
			// (追加申込 且つ 新しい場所に回線を追加))
			// 上記条件に当てはまる場合は、"1(表示)"を設定
			// 上記条件以外は、"0(非表示)"を設定
			if ((HOME.equals(typeKbn) || MASION.equals(typeKbn)) && 
				(JFUStrConst.MSKM_KBN_NEW.equals(mskmKbn) ||
				(JFUStrConst.MSKM_KBN_ADD.equals(mskmKbn) && JFUStrConst.KAISEN_SELECT_ADD_KEI.equals(kaisenSelect) && JFUStrConst.NOW_SVC_TEL_MI_KEI.equals(kykSvcTel) && !(bean.sendMessageBoolean(FUW00106SFConst.KOJI_SONZAI_FLG, X31CWebConst.DATABEAN_GET_VALUE))) ||
				(JFUStrConst.MSKM_KBN_ADD.equals(mskmKbn) && JFUStrConst.KAISEN_SELECT_ADD_NEW_PLACE.equals(kaisenSelect))))
			{
				bean.sendMessageString(FUW00106SFConst.STDARD_KOJIHI_PAYWAY_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.STDARD_KOJIHI_PAYWAY_DISP_ON);
			}
			else
			{
				bean.sendMessageString(FUW00106SFConst.STDARD_KOJIHI_PAYWAY_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.STDARD_KOJIHI_PAYWAY_DISP_OFF);
			}
// ANK-3296-00-00 ADD END
		}

		// 申込受付実績登録部品実行
		JFUWebCommon.executeWebMskmUkJskAdd(this);

		return true;
	}

	/**
	 * 戻るボタン押下時
	 *
	 * @return true
	 * @throws Exception
	 */
	public boolean back() throws Exception
	{
		JFUWebCommon.comClear(this);

		// サービス選択画面に遷移
		setNextScreen(JFUScreenConst.SCREEN_ID_FUW00105, JFUScreenConst.SCREEN_NAME_FUW00105);

		return true;
	}

	/**
	 * 次へボタン押下時
	 *
	 * @return true
	 * @throws Exception
	 */
	public boolean next() throws Exception
	{
		// 共有フォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 共通処理の実行
		executeNextScrean(bean, commoninfoBean);

		// "WEB新規"階層
		X31SDataBeanAccess ws = (commoninfoBean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO)).getDataBean(0);
		// "契約サービス情報"階層
		X31SDataBeanAccess kykSvc = (ws.getDataBeanArray(CommonInfoCFConst.KEIYAKU_SVC_INFO)).getDataBean(0);
		// "eoモバイル"階層
		X31SDataBeanAccess eoMbl = (ws.getDataBeanArray(CommonInfoCFConst.EOMOBILE)).getDataBean(0);
		// リダイレクト情報
		X31SDataBeanAccess redirectInfoBean = (ws.getDataBeanArray(CommonInfoCFConst.REDIRECT_INFO)).getDataBean(0);

		// ナビゲータパターン
		String naviPtn = redirectInfoBean.sendMessageString(CommonInfoCFConst.NAVIGATOR_PTN_17, X31CWebConst.DATABEAN_GET_VALUE);

		// 遷移先判定
		if (INFO_TRUE.equals(kykSvc.sendMessageString(CommonInfoCFConst.SELECT_SVC_TEL_10, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// eo光電話が選択されていた場合、eo光電話入力画面に遷移
			setNextScreen(JFUScreenConst.SCREEN_ID_FUW00107, JFUScreenConst.SCREEN_NAME_FUW00107);
		}
		else if (INFO_TRUE.equals(kykSvc.sendMessageString(CommonInfoCFConst.SELECT_SVC_TV_10, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// eo光テレビが選択されていた場合、eo光テレビ入力画面に遷移
			setNextScreen(JFUScreenConst.SCREEN_ID_FUW00108, JFUScreenConst.SCREEN_NAME_FUW00108);

		}
		else if (!INFO_FALSE.equals(eoMbl.sendMessageString(CommonInfoCFConst.MOBILE_COURSE_14, X31CWebConst.DATABEAN_GET_VALUE))
				&& !JFUStrConst.EMPTY.equals(eoMbl.sendMessageString(CommonInfoCFConst.MOBILE_COURSE_14, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// eoモバイルが選択されていた場合、eoモバイル入力画面に遷移
			setNextScreen(JFUScreenConst.SCREEN_ID_FUW00123, JFUScreenConst.SCREEN_NAME_FUW00123);

		}
		else if (JFUStrConst.NAVI_PTN_SIML.equals(naviPtn))
		{
			// 上記以外で料金シミュレーション導線の場合、サービス選択内容確認に遷移
			setNextScreen(JFUScreenConst.SCREEN_ID_FUW00109, JFUScreenConst.SCREEN_NAME_FUW00109);
		}
		else
		{
			// 上記以外の場合、ご契約者情報入力画面に遷移
			setNextScreen(JFUScreenConst.SCREEN_ID_FUW00110, JFUScreenConst.SCREEN_NAME_FUW00110);
		}

		return true;
	}

	/**
	 * 確認画面へ戻る押下時
	 *
	 * @return true
	 * @throws Exception
	 */
	public boolean backKakunin() throws Exception
	{
		// 共有フォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// "WEB新規"階層
		X31SDataBeanAccess ws = (commonInfoBean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO)).getDataBean(0);
		// リダイレクト情報
		X31SDataBeanAccess redirectInfoBean = (ws.getDataBeanArray(CommonInfoCFConst.REDIRECT_INFO)).getDataBean(0);
		// ナビゲータパターン
		String naviPtn = redirectInfoBean.sendMessageString(CommonInfoCFConst.NAVIGATOR_PTN_17, X31CWebConst.DATABEAN_GET_VALUE);

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 共通処理の実行
		executeNextScrean(bean, commonInfoBean);

		// 画面遷移モード 通常遷移 を設定
		ws.sendMessageString(CommonInfoCFConst.SCREEN_MODE_06, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.SCREEN_MODE_DEF);

		if(JFUStrConst.NAVI_PTN_SIML.equals(naviPtn))
		{
			// 料金シミュレーション導線の場合、サービス選択内容確認画面に遷移
			setNextScreen(JFUScreenConst.SCREEN_ID_FUW00109, JFUScreenConst.SCREEN_NAME_FUW00109);
		}
		else
		{
			// 料金シミュレーション導線以外の場合、入力内容確認画面に遷移
			setNextScreen(JFUScreenConst.SCREEN_ID_FUW00114, JFUScreenConst.SCREEN_NAME_FUW00114);
		}

		return true;
	}

	/**
	 * 「eo光ネット【マンションタイプ】提供条件の確認」リンク押下時
	 *
	 * @return true
	 * @throws Exception
	 */
	public boolean mansionTkjoken() throws Exception
	{
		// eo光ネット提供条件画面をPOPUPで起動
		setNextScreen(JFUScreenConst.SCREEN_ID_FUW00138, JFUScreenConst.SCREEN_NAME_FUW00138);

		return true;
	}

	/**
	 * 料金シミュレーションを呼び出します。
	 *
	 * @return true
	 * @throws Exception
	 */
	public boolean ryokin() throws Exception
	{
		// 料金シミュレーション共通部品を呼び出し
		JFUWebCommon.ryokin(this);

		return true;
	}

	/**
	 * 次画面遷移共通処理<br>
	 * 「次へ」「確認画面へ戻る」の共通処理を実行します。
	 * <br>
	 * @param bean				サービスフォームBean
	 * @param commoninfoBean	共有フォームBean
	 * @throws Exception
	 */
	private void executeNextScrean(X31SDataBeanAccess bean, X31SDataBeanAccess commoninfoBean) throws Exception
	{
		// 回線タイプを取得
		String typeKbn = getKaisenType(commoninfoBean);

		// サービスフォームBean設定処理

		// ホームタイプまたはメゾンタイプの場合
		if (HOME.equals(typeKbn) || MASION.equals(typeKbn))
		{
			setSfbForHomeMaison(bean, commoninfoBean, typeKbn);
		}
		// マンションタイプの場合
		else if (MANSION.equals(typeKbn))
		{
			setSfbForMansion(bean, commoninfoBean, typeKbn);
		}

		// サービスI/Fの呼び出し処理
		callSIFCheck(bean, commoninfoBean);

		// 画面間引き継ぎ情報の生成
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		// コース選択情報
		dataMap.put(FUW00106SFConst.COURSE_SELECT, bean.sendMessageString(FUW00106SFConst.COURSE_SELECT, X31CWebConst.DATABEAN_GET_VALUE));
		// 同意情報
		dataMap.put(FUW00106SFConst.MDM_RNT_AGREE, bean.sendMessageBoolean(FUW00106SFConst.MDM_RNT_AGREE, X31CWebConst.DATABEAN_GET_VALUE));
		dataMap.put(FUW00106SFConst.TKY_JKN_AGR, bean.sendMessageBoolean(FUW00106SFConst.TKY_JKN_AGR, X31CWebConst.DATABEAN_GET_VALUE));

		JCCWebCommon.setScreenInfo(this, JFUScreenConst.SCREEN_ID_FUW00106, dataMap);

		// 共有フォームBeanに引継情報を設定
		setCommonBean(bean, commoninfoBean, typeKbn);
	}

	/**
	 * 回線タイプを取得します。<br>
	 * 「ホームタイプ」「メゾンタイプ」「マンションタイプ」の判定。
	 * <br>
	 * @param commoninfoBean	共有フォームBean
	 * @return typeKbn			"1"(ホーム)、"2"(メゾン)、"3"(マンション)
	 */
	public String getKaisenType(X31SDataBeanAccess commoninfoBean)
	{
		String typeKbn = JFUStrConst.EMPTY;

		// "WEB新規"階層
		X31SDataBeanAccess ws = (commoninfoBean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO)).getDataBean(0);

		if (JFUStrConst.MSKM_KSN_SVC_HOME.equals(ws.sendMessageString(CommonInfoCFConst.MSKM_KSN_SVC_06, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			typeKbn = HOME;
			return typeKbn;
		}

		if (JFUStrConst.MSKM_MNS_TYPE_MEZON.equals(ws.sendMessageString(CommonInfoCFConst.MSKM_MNS_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			typeKbn = MASION;
		}

		if (JFUStrConst.MSKM_MNS_TYPE_MANSION.equals(ws.sendMessageString(CommonInfoCFConst.MSKM_MNS_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			typeKbn = MANSION;
		}

		return typeKbn;
	}

	/**
	 * サービスフォームBeanに情報を設定します。<br>
	 * 本メソッドはホームタイプ、メゾンタイプ用です。
	 * <br>
	 * @param bean				サービスフォームBean
	 * @param commoninfoBean	共有フォームBean
	 * @param typeKbn
	 * @throws Exception
	 */
	private void setSfbForHomeMaison(X31SDataBeanAccess bean, X31SDataBeanAccess commoninfoBean, String typeKbn) throws Exception
	{
		// ラジオボタン選択値をカンマで分割し配列に保持します。（料金グループコード、料金コースコード、料金プランコードの順）
		String[] radio_val = bean.sendMessageString(FUW00106SFConst.COURSE_SELECT, X31CWebConst.DATABEAN_GET_VALUE).split(JFUStrConst.COMMA);

		// 料金グループコードの設定
		bean.sendMessageString(FUW00106SFConst.PRC_GRP_CD, X31CWebConst.DATABEAN_SET_VALUE, radio_val[0]);
		bean.sendMessageString(FUW00106SFConst.PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, radio_val[1]);
		bean.sendMessageString(FUW00106SFConst.PPLAN_CD, X31CWebConst.DATABEAN_SET_VALUE, radio_val[2]);

		// 即割・長割・自動継続の設定
		setWrbkSvc(bean);
		// 異動区分の設定
		setSvcCdAndIdoDiv(bean, commoninfoBean);
	}

	/**
	 * サービスフォームBeanに情報を設定します。<br>
	 * 本メソッドはマンションタイプ用です。
	 * <br>
	 * @param bean				サービスフォームBean
	 * @param commoninfoBean	共有フォームBean
	 * @param typeKbn
	 */
	private void setSfbForMansion(X31SDataBeanAccess bean, X31SDataBeanAccess commoninfoBean, String typeKbn)
	{
		// "WEB新規"階層
		X31SDataBeanAccess ws = (commoninfoBean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO)).getDataBean(0);

		// "eo光ネット"階層
		X31SDataBeanAccess eoNet = (ws.getDataBeanArray(CommonInfoCFConst.EONET)).getDataBean(0);

		// マンション情報
		X31SDataBeanAccess wsMnshnInfo = (ws.getDataBeanArray(CommonInfoCFConst.MANSION_INFO)).getDataBean(0);

		// 料金グループコードの設定
		bean.sendMessageString(FUW00106SFConst.PRC_GRP_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00133_04);

		// マンションの提供方式パターンを取得
		String teikyoHoshikiPtnCd = wsMnshnInfo.sendMessageString(CommonInfoCFConst.TEIKYO_HOSHIKI_PTN_CD_16, X31CWebConst.DATABEAN_GET_VALUE);

		// マンションの提供方式を取得
		String teikyoHoshikiCd = wsMnshnInfo.sendMessageString(CommonInfoCFConst.TEIKYO_HOSHIKI_CD_16, X31CWebConst.DATABEAN_GET_VALUE);

		// 提供方式変更の場合
		if (JFUWebCommon.isTkHosikiChgSbtCd(wsMnshnInfo))
		{
			// 料金コースコード、料金プランコードの設定
			bean.sendMessageString(FUW00106SFConst.PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00134_A57);
			bean.sendMessageString(FUW00106SFConst.PPLAN_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00565_PA5701);
		}
		// 提供方式パターンがギガイーサ、光配線のどちらかの場合
		else if (JFUStrConst.TK_HOSHIKI_PTN_GG_ENET.equals(teikyoHoshikiPtnCd) || JFUStrConst.TK_HOSHIKI_PTN_HIKARI_HAISEN.equals(teikyoHoshikiPtnCd))
		{
			// ラジオボタン選択値をカンマで分割し配列に保持します。（料金グループコード、料金コースコード、料金プランコードの順）
			String[] radio_val = bean.sendMessageString(FUW00106SFConst.COURSE_SELECT, X31CWebConst.DATABEAN_GET_VALUE).split(JFUStrConst.COMMA);

			// 料金グループコードの設定
			bean.sendMessageString(FUW00106SFConst.PRC_GRP_CD, X31CWebConst.DATABEAN_SET_VALUE, radio_val[0]);
			bean.sendMessageString(FUW00106SFConst.PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, radio_val[1]);
			bean.sendMessageString(FUW00106SFConst.PPLAN_CD, X31CWebConst.DATABEAN_SET_VALUE, radio_val[2]);
		}

		// 提供方式がイーサーの場合
		if (JFUStrConst.TK_HOSHIKI_ENET.equals(teikyoHoshikiCd))
		{
			//TODO 料金コースコード、料金プランコードの設定
			bean.sendMessageString(FUW00106SFConst.PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00134_A54);
			bean.sendMessageString(FUW00106SFConst.PPLAN_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00565_PA5401);
		}

		// 提供方式パターンが"VDSL"もしくは"VDSL-S"の場合
		if (JFUStrConst.TK_HOSHIKI_PTN_VDSL.equals(teikyoHoshikiPtnCd) || JFUStrConst.TK_HOSHIKI_PTN_VDSLS.equals(teikyoHoshikiPtnCd))
		{
			// 提供方式がVDSL2の場合
			if (JFUStrConst.TK_HOSHIKI_VDSL2.equals(teikyoHoshikiCd))
			{
				//TODO 料金コースコード、料金プランコードの設定

				bean.sendMessageString(FUW00106SFConst.PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00134_A50);
				bean.sendMessageString(FUW00106SFConst.PPLAN_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00565_PA5001);
			}
			// 提供方式がVDSL3の場合
			if (JFUStrConst.TK_HOSHIKI_VDSL3.equals(teikyoHoshikiCd))
			{
				//TODO 料金コースコード、料金プランコードの設定
				bean.sendMessageString(FUW00106SFConst.PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00134_A51);
				bean.sendMessageString(FUW00106SFConst.PPLAN_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00565_PA5101);
			}
			// 提供方式がVDSL4の場合
			if (JFUStrConst.TK_HOSHIKI_VDSL4.equals(teikyoHoshikiCd))
			{
				//TODO 料金コースコード、料金プランコードの設定

				bean.sendMessageString(FUW00106SFConst.PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00134_A52);
				bean.sendMessageString(FUW00106SFConst.PPLAN_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00565_PA5201);
			}
			// 提供方式がVDSL5の場合
			if (JFUStrConst.TK_HOSHIKI_VDSL5.equals(teikyoHoshikiCd))
			{
				//TODO 料金コースコード、料金プランコードの設定
				bean.sendMessageString(FUW00106SFConst.PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00134_A53);
				bean.sendMessageString(FUW00106SFConst.PPLAN_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00565_PA5301);
			}

			// 機器提供サービスコードの設定（"C005"(モデム)固定）
			bean.sendMessageString(FUW00106SFConst.KKTK_SVC_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.KK0771_KKTK_SVC_CD_C005);

			//TODO 料金コースコード(モデム)、料金プランコード(モデム)の設定
			bean.sendMessageString(FUW00106SFConst.PCRS_CD_MODEM, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00134_C06);
			bean.sendMessageString(FUW00106SFConst.PPLAN_CD_MODEM, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00565_PC0601);

			// モデム選択情報の設定
			// モデムプラン(リクエスト情報)
			String mdmPlan = bean.sendMessageString(FUW00106SFConst.MDM_PLAN, X31CWebConst.DATABEAN_GET_VALUE);
			String modemPlan = eoNet.sendMessageString(CommonInfoCFConst.MODEM_PLAN_11, X31CWebConst.DATABEAN_GET_VALUE);

			if (JFUWebCommon.isNull(mdmPlan))
			{
				// リクエスト情報のモデムプランが存在しない場合に共有フォームBeanのモデムプランを設定。

				bean.sendMessageString(FUW00106SFConst.MDM_PLAN, X31CWebConst.DATABEAN_SET_VALUE, modemPlan);
				mdmPlan = modemPlan;
			}

			// 機器提供種別コード
			if (JFUStrConst.MODEM_PLAN_KAITORI.equals(mdmPlan))
			{
				// モデム（買取）が選択されていた場合
				bean.sendMessageString(FUW00106SFConst.KKTK_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00212_01);
			}
			else if (JFUStrConst.MODEM_PLAN_RENT.equals(mdmPlan))
			{
				// モデム（レンタル）が選択されていた場合
				bean.sendMessageString(FUW00106SFConst.KKTK_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00212_02);
			}
			else
			{
				// モデムプランが未設定、若しくは想定外の値

				outputBusLog("WARN：※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※");
				outputBusLog("WARN： ●FUW00106_eo光ネット入力画面のモデムプランの聴き取り情報が不正。");

				// 回線場所選択
				String kaisenSelect = ws.sendMessageString(CommonInfoCFConst.KAISEN_SELECT_06, X31CWebConst.DATABEAN_GET_VALUE);

				// 契約サービス情報 契約中サービス（電話）
				X31SDataBeanAccess kykSvc = (ws.getDataBeanArray(CommonInfoCFConst.KEIYAKU_SVC_INFO)).getDataBean(0);
				String nowSvcTel = kykSvc.sendMessageString(CommonInfoCFConst.NOW_SVC_TEL_10, X31CWebConst.DATABEAN_GET_VALUE);

				if (!JFUStrConst.KAISEN_SELECT_ADD_KEI.equals(kaisenSelect) || !SENTAKU.equals(nowSvcTel))
				{
					// 回線場所選択 契約中の回線に追加以外、又は契約中サービス（電話）が存在しない

					outputBusLog("WARN：   ★モデムプラン「1:買取」「2:レンタル」のラジオボタン表示");
				}
				else
				{
					outputBusLog("WARN：   ★モデムプラン「1:買取」「2:レンタル」のラジオボタン非表示");
				}

				outputBusLog("WARN：   ・モデムプラン（リクエスト情報） ＝【" + mdmPlan + "】");
				outputBusLog("WARN：   ・モデムプラン（共有フォーム情報） ＝【" + modemPlan + "】");

				X33WSessionController session_controller = X33CUtil.getSession(this.getSessionId());
				HttpServletRequest request = session_controller.getServletRequest();
				String userAgent = request.getHeader(USER_AGENT);

				outputBusLog("WARN：   ・ユーザーエージェント ＝【" + userAgent + "】");

				outputBusLog("WARN：   ・回線場所選択 ＝【" + kaisenSelect + "】");
				outputBusLog("WARN：   ・契約サービス情報 契約中サービス（電話） ＝【" + nowSvcTel + "】");

				String kktkSbtCd = bean.sendMessageString(FUW00106SFConst.KKTK_SBT_CD, X31CWebConst.DATABEAN_GET_VALUE);
				outputBusLog("WARN：   ・機器提供種別コード ＝【" + kktkSbtCd + "】");

				// 郵便番号
				String searchPcdFr = wsMnshnInfo.sendMessageString(CommonInfoCFConst.SEARCH_PCD1_16, X31CWebConst.DATABEAN_GET_VALUE);
				String searchPcdBk = wsMnshnInfo.sendMessageString(CommonInfoCFConst.SEARCH_PCD2_16, X31CWebConst.DATABEAN_GET_VALUE);
				outputBusLog("WARN：   ・マンション情報 郵便番号 ＝【" + searchPcdFr + searchPcdBk + "】");

				// 住所
				String searchState = wsMnshnInfo.sendMessageString(CommonInfoCFConst.SEARCH_STATE_16, X31CWebConst.DATABEAN_GET_VALUE);
				String searchCity = wsMnshnInfo.sendMessageString(CommonInfoCFConst.SEARCH_CITY_16, X31CWebConst.DATABEAN_GET_VALUE);
				String searchAza = wsMnshnInfo.sendMessageString(CommonInfoCFConst.SEARCH_AZA_16, X31CWebConst.DATABEAN_GET_VALUE);
				String mansionBukkenAzchoNm = wsMnshnInfo.sendMessageString(CommonInfoCFConst.MANSION_BUKKEN_AZCHO_NM_16, X31CWebConst.DATABEAN_GET_VALUE);
				outputBusLog("WARN：   ・マンション情報 住所 ＝【" + searchState + searchCity + searchAza + mansionBukkenAzchoNm + "】");

				// マンション名
				String mansionNm = wsMnshnInfo.sendMessageString(CommonInfoCFConst.MANSION_NM_16, X31CWebConst.DATABEAN_GET_VALUE);
				outputBusLog("WARN：   ・マンション情報 マンション名 ＝【" + mansionNm + "】");

				// マンション物件番号
				String mansionNo = wsMnshnInfo.sendMessageString(CommonInfoCFConst.MANSION_NO_16, X31CWebConst.DATABEAN_GET_VALUE);
				outputBusLog("WARN：   ・マンション情報 マンション物件番号 ＝【" + mansionNo + "】");

				// マンション物件コード
				String mansionCd = wsMnshnInfo.sendMessageString(CommonInfoCFConst.MANSION_BUKKEN_CD_16, X31CWebConst.DATABEAN_GET_VALUE);
				outputBusLog("WARN：   ・マンション情報 マンション物件コード ＝【" + mansionCd + "】");

				// 物件管理番号
				String bknKnriNo = wsMnshnInfo.sendMessageString(CommonInfoCFConst.BKN_KNRI_NO_16, X31CWebConst.DATABEAN_GET_VALUE);
				outputBusLog("WARN：   ・マンション情報 物件管理番号 ＝【" + bknKnriNo + "】");

				// ネット提供方式契約番号
				String netTkHoshikiKeiNo = wsMnshnInfo.sendMessageString(CommonInfoCFConst.TK_HOSHIKI_KEI_NO_16, X31CWebConst.DATABEAN_GET_VALUE);
				outputBusLog("WARN：   ・マンション情報 ネット提供方式契約番号 ＝【" + netTkHoshikiKeiNo + "】");

				// ネット回線使用契約番号
				String netKaisenUseKeiNo = wsMnshnInfo.sendMessageString(CommonInfoCFConst.KAISEN_USE_KEI_NO_16, X31CWebConst.DATABEAN_GET_VALUE);
				outputBusLog("WARN：   ・マンション情報 ネット回線使用契約番号 ＝【" + netKaisenUseKeiNo + "】");

				// ＴＶ提供方式契約番号
				String tvTkHoshikiKeiNo = wsMnshnInfo.sendMessageString(CommonInfoCFConst.TV_TK_HOSHIKI_KEI_NO_16, X31CWebConst.DATABEAN_GET_VALUE);
				outputBusLog("WARN：   ・マンション情報 ＴＶ提供方式契約番号 ＝【" + tvTkHoshikiKeiNo + "】");

				// ＴＶ回線使用契約番号
				String tvKaisenUseKeiNo = wsMnshnInfo.sendMessageString(CommonInfoCFConst.TV_KAISEN_USE_KEI_NO_16, X31CWebConst.DATABEAN_GET_VALUE);
				outputBusLog("WARN：   ・マンション情報 ＴＶ回線使用契約番号 ＝【" + tvKaisenUseKeiNo + "】");

				// マンションID
				String mansionId = wsMnshnInfo.sendMessageString(CommonInfoCFConst.MANSION_ID_16, X31CWebConst.DATABEAN_GET_VALUE);
				outputBusLog("WARN：   ・マンション情報 マンションID ＝【" + mansionId + "】");

				// ペアID
				String pairID = wsMnshnInfo.sendMessageString(CommonInfoCFConst.PAIRID_16, X31CWebConst.DATABEAN_GET_VALUE);
				outputBusLog("WARN：   ・マンション情報 ペアID ＝【" + pairID + "】");

				// CATID
				String catID = wsMnshnInfo.sendMessageString(CommonInfoCFConst.CATID_16, X31CWebConst.DATABEAN_GET_VALUE);
				outputBusLog("WARN：   ・マンション情報 CATID ＝【" + catID + "】");

				// 提供方式コード
				outputBusLog("WARN：   ・マンション情報 提供方式コード ＝【" + teikyoHoshikiCd + "】");

				// 提供方式パターンコード
				outputBusLog("WARN：   ・マンション情報 提供方式パターンコード ＝【" + teikyoHoshikiPtnCd + "】");

				// 棟内速度コード
				String tonaiSpeedCd = wsMnshnInfo.sendMessageString(CommonInfoCFConst.TONAI_SPEED_CD_16, X31CWebConst.DATABEAN_GET_VALUE);
				outputBusLog("WARN：   ・マンション情報 棟内速度コード ＝【" + tonaiSpeedCd + "】");

				// 加入契約申込条件コード
				String knykeiMskmJokenCd = wsMnshnInfo.sendMessageString(CommonInfoCFConst.KNYKEI_MSKM_JOKEN_CD_16, X31CWebConst.DATABEAN_GET_VALUE);
				outputBusLog("WARN：   ・マンション情報 加入契約申込条件コード ＝【" + knykeiMskmJokenCd + "】");

				// 支払方式コード
				String payWayCd = wsMnshnInfo.sendMessageString(CommonInfoCFConst.PAYWAY_CD_16, X31CWebConst.DATABEAN_GET_VALUE);
				outputBusLog("WARN：   ・マンション情報 支払方式コード ＝【" + payWayCd + "】");

				// マンション接続機器コード
				String mcntkkCd = wsMnshnInfo.sendMessageString(CommonInfoCFConst.MCNTKK_CD_16, X31CWebConst.DATABEAN_GET_VALUE);
				outputBusLog("WARN：   ・マンション情報 マンション接続機器コード ＝【" + mcntkkCd + "】");

				// マンション接続機器型式コード
				String mcntkkModelCd = wsMnshnInfo.sendMessageString(CommonInfoCFConst.MCNTKK_MODEL_CD_16, X31CWebConst.DATABEAN_GET_VALUE);
				outputBusLog("WARN：   ・マンション情報 マンション接続機器型式コード ＝【" + mcntkkModelCd + "】");

				outputBusLog("WARN：※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※");

				// モデム（レンタル）を設定
				bean.sendMessageString(FUW00106SFConst.KKTK_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00212_02);
				bean.sendMessageString(FUW00106SFConst.MDM_PLAN, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00212_02);

				eoNet.sendMessageString(CommonInfoCFConst.MODEM_PLAN_11, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.MODEM_PLAN_RENT);
			}

			// 販売種別コード（"10"(標準(新品))固定）
			bean.sendMessageString(FUW00106SFConst.HAMBAI_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00348_10);
		}

		// 異動区分の設定を行います。
		setSvcCdAndIdoDiv(bean, commoninfoBean);


		if (isYearMonthDayList(bean))
		{
			// サービス開始希望日
			X31SDataBeanAccess svc_list = null;
			X31SDataBeanAccessArray bean_array = null;

			bean_array = bean.getDataBeanArray(FUW00106SFConst.SVC_KB_DATES);
			svc_list = bean_array.getDataBean(0);

			// 年
			Integer index_year = Integer.valueOf(bean.sendMessageString(FUW00106SFConst.SVC_KB_YEAR, X31CWebConst.DATABEAN_GET_VALUE)).intValue();
			String svc_kbo_start_year = svc_list.sendMessageString(FUW00106SFConst.YEAR_01, X31CWebConst.DATABEAN_GET_VALUE, index_year);
			// 月
			Integer index_month = Integer.valueOf(bean.sendMessageString(FUW00106SFConst.SVC_KB_MONTH, X31CWebConst.DATABEAN_GET_VALUE)).intValue();
			String svc_kbo_start_month = svc_list.sendMessageString(FUW00106SFConst.MON_01, X31CWebConst.DATABEAN_GET_VALUE, index_month);
			// 日
			Integer index_day = Integer.valueOf(bean.sendMessageString(FUW00106SFConst.SVC_KB_DAY, X31CWebConst.DATABEAN_GET_VALUE)).intValue();
			String svc_kbo_start_day = svc_list.sendMessageString(FUW00106SFConst.DAY_01, X31CWebConst.DATABEAN_GET_VALUE, index_day);
			String svc_kbo_start_date = JFUStrConst.EMPTY;
			svc_kbo_start_date = svc_kbo_start_year + svc_kbo_start_month + svc_kbo_start_day;
			bean.sendMessageString(FUW00106SFConst.SVC_KB_DATE, X31CWebConst.DATABEAN_SET_VALUE, svc_kbo_start_date);
		}
	}

	/**
	 *割引サービス情報をサービスフォームBeanに設定します<br>
	 * @param bean				サービスフォームBean
	 * @throws Exception
	 */
	private void setWrbkSvc(X31SDataBeanAccess bean) throws Exception
	{
		// 即割りチェックありの場合
		if (bean.sendMessageBoolean(FUW00106SFConst.SOKUWARI, X31CWebConst.DATABEAN_GET_VALUE))
		{
			// FUDispDefinitionより割引サービスコードを取得する。
			bean.sendMessageString(FUW00106SFConst.WRIB_SVC_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon.getDispText(
					JFUScreenConst.SCREEN_ID_FUW00106, SOKUWARI));
		}
		else
		{
			// 即割りチェックなしの場合
			bean.sendMessageString(FUW00106SFConst.WRIB_SVC_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
		}

		String netCourse = JFUStrConst.EMPTY;
		String[] radio_val = bean.sendMessageString(FUW00106SFConst.COURSE_SELECT, X31CWebConst.DATABEAN_GET_VALUE).split(JFUStrConst.COMMA);

		if (radio_val[0].length() != 0)
		{
			netCourse = radio_val[3];//コース選択
		}

		// 長割フラグ
		boolean chowariFlg = true;

		// ネットコースが100Mライトコースの場合
		if (JFUStrConst.NET_COURSE_100M_LIGHT.equals(netCourse))
		{
			// 長割申込が非表示の場合
			if (INFO_FALSE.equals(bean.sendMessageString(FUW00106SFConst.CHOWARI_MSKM, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				chowariFlg = false;
			}
		}

		if (chowariFlg)
		{
			// 長割チェックありの場合
			if (bean.sendMessageBoolean(FUW00106SFConst.CHOWARI, X31CWebConst.DATABEAN_GET_VALUE))
			{
				// FUDispDefinitionより割引サービスコードを取得する。
				bean.sendMessageString(FUW00106SFConst.WRIB_SVC_CD_CHOUWR, X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon.getDispText(
						JFUScreenConst.SCREEN_ID_FUW00106, CHOWARI));

				// 自動継続選択の場合
				if (bean.sendMessageBoolean(FUW00106SFConst.AUTO_KEIZOKU, X31CWebConst.DATABEAN_GET_VALUE))
				{
					// 割引サービス契約自動継続識別コードに「1」を設定
					bean.sendMessageString(FUW00106SFConst.WRIB_SVC_KEI_AT_KEIZK_SKCD, X31CWebConst.DATABEAN_SET_VALUE, INFO_TRUE);
				}
				else
				{
					// 自動継続が未選択の場合、割引サービス契約自動継続識別コードに「0」を設定
					bean.sendMessageString(FUW00106SFConst.WRIB_SVC_KEI_AT_KEIZK_SKCD, X31CWebConst.DATABEAN_SET_VALUE, INFO_FALSE);
				}
			}
			else
			{
				// 長割チェックなしの場合、「""」を設定
				bean.sendMessageString(FUW00106SFConst.WRIB_SVC_CD_CHOUWR, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);

				// 割引サービス契約自動継続識別コードに「""」を設定
				bean.sendMessageString(FUW00106SFConst.WRIB_SVC_KEI_AT_KEIZK_SKCD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
			}
		}
		else
		{
			// 長割チェックなしの場合、「""」を設定
			bean.sendMessageString(FUW00106SFConst.WRIB_SVC_CD_CHOUWR, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);

			// 割引サービス契約自動継続識別コードに「""」を設定
			bean.sendMessageString(FUW00106SFConst.WRIB_SVC_KEI_AT_KEIZK_SKCD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
		}
	}

	/**
	 * サービスコードと異動区分をサービスフォームBeanに設定します<br>
	 * 全回線タイプ共通の設定です。
	 * @param bean				サービスフォームBean
	 * @param commoninfoBean	共有フォームBean
	 */
	private void setSvcCdAndIdoDiv(X31SDataBeanAccess bean, X31SDataBeanAccess commoninfoBean)
	{
		// "WEB新規"階層
		X31SDataBeanAccess ws = (commoninfoBean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO)).getDataBean(0);

		// サービスコードに設定（"01"(インターネットサービス)固定）
		bean.sendMessageString(FUW00106SFConst.SVC_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00130_01);

		// 異動区分の設定
		if (JFUStrConst.MSKM_KBN_NEW.equals(ws.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 新規申込の場合
			bean.sendMessageString(FUW00106SFConst.IDO_DIV, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00576_00001);
		}

		if (JFUStrConst.MSKM_KBN_ADD.equals(ws.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 追加申込の場合
			bean.sendMessageString(FUW00106SFConst.IDO_DIV, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00576_00002);
		}
	}

// ANK-3209-00-00 ADD START
	/**
	 * サービスインターフェイスの呼び出し処理を実行します。<br>
	 * @param bean				サービスフォームBean
	 * @param commoninfoBean	共有フォームBean
	 */
	private void callInitSIF(X31SDataBeanAccess bean, X31SDataBeanAccess commoninfoBean, String eotelSvckeiNo)
	{
		X31SDataBeanAccess[] paramBean = { bean, commoninfoBean };

		// ユースケースID格納用マップを生成。
		HashMap<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, SERVICE_ID_FUSV0312);

		// マッピングクラスのインスタンスを生成
		FUSV0312_FUSV0312OPDBMapper mapper = new FUSV0312_FUSV0312OPDBMapper();
		HashMap<String, String> inputMap = new HashMap<String, String>();
		//eoのサービス契約番号がある場合
		if(!JFUStrConst.EMPTY.equals(eotelSvckeiNo))
		{
			mapper.setFUSV031201CC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		}
		
		//提供エリア１０Ｇフラグ
		mapper.setFUSV031202CC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);

		// 結果格納用マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		try
		{
			// サービスインターフェイス（eo光ネット入力(初期表示)）呼び出し
			invokeService(paramMap, inputMap, outputMap);
		}
		catch (JCCWebServiceException se)
		{
			// 特定のエラーの場合は業務用例外クラスをthrowする。
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}
		
		//eoのサービス契約番号がある場合
		if(!JFUStrConst.EMPTY.equals(eotelSvckeiNo))
		{
			// サービスの出力値設定
			mapper.getFUSV031201CC(paramBean, outputMap);
		}
		//提供エリア１０Ｇフラグ
		mapper.getFUSV031202CC(paramBean, outputMap);
	}
// ANK-3209-00-00 ADD END

// ANK-3296-00-00 ADD START
	/**
	 * サービスインターフェイスの呼び出し処理を実行します。<br>
	 * @param bean				サービスフォームBean
	 * @param commoninfoBean	共有フォームBean
	 */
	private void callInitKojiSIF(X31SDataBeanAccess bean, X31SDataBeanAccess commoninfoBean)
	{
		// ユースケースID格納用マップを生成。
		HashMap<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, SERVICE_ID_FUSV0314);

		// マッピングクラスのインスタンスを生成
		FUSV0314_FUSV0314OPDBMapper mapper = new FUSV0314_FUSV0314OPDBMapper();
		HashMap<String, String> inputMap = new HashMap<String, String>();
		mapper.setFUSV031401SC(commoninfoBean, inputMap);

		// 結果格納用マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		try
		{
			// サービスインターフェイス（工事一覧照会）呼び出し
			invokeService(paramMap, inputMap, outputMap);
		}
		catch (JCCWebServiceException se)
		{
			// 特定のエラーの場合は業務用例外クラスをthrowする。
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}
		
		// サービスの出力値設定
		mapper.getFUSV031401SC(bean, outputMap);
	}
// ANK-3296-00-00 ADD END

	/**
	 * サービスインターフェイスの呼び出し処理を実行します。<br>
	 * @param bean				サービスフォームBean
	 * @param commoninfoBean	共有フォームBean
	 */
	private void callSIFCheck(X31SDataBeanAccess bean, X31SDataBeanAccess commoninfoBean)
	{
		X31SDataBeanAccess[] paramBean = { bean };

		// ユースケースID格納用マップを生成。
		HashMap<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, SERVICE_ID_FUSV0003);

		// マッピングクラスのインスタンスを生成
		FUSV0003_FUSV0003OPDBMapper mapper = new FUSV0003_FUSV0003OPDBMapper();
		HashMap<String, String> inputMap = new HashMap<String, String>();
		mapper.setFUSV000301SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		mapper.setFUSV000302SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		mapper.setFUSV000303SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		mapper.setFUSV000304SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		mapper.setFUSV000305SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);

		// 結果格納用マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		try
		{
			// サービスインターフェイス（入力チェック）呼び出し
			X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);

			if (msgResult != null)
			{
				JCCWebCommon.setMessageInfo(this, msgResult);
			}

			// ●サービス処理結果の取得

		}
		catch (JCCWebServiceException se)
		{
			// 例外情報を取得
			X31CMessageResult msgResult = se.getMessageList();
			X31CMessageMoreInfo[] moreInfo = msgResult.getMessageMoreInfoList();

			int intCnt = msgResult.getCount();

			for (int i = 0; i < intCnt; i++)
			{
				String status = moreInfo[i].getStatus();
				String temp_id = moreInfo[i].getTemplateId();
				String item = moreInfo[i].getItemId();

				if (JFUStrConst.ERROR_CODE_1000.equals(status) || JFUStrConst.ERROR_CODE_1050.equals(status))
				{
					if (TEMP_ID_1.equals(temp_id) || JFUStrConst.ERROR_CODE_1050.equals(item))
					{
						// 業務エラーを再throw
						throw se;
					}
					else if (TEMP_ID_1.equals(temp_id) && "prc_grp_cd".equals(item))
					{
						// 業務エラーを再throw
						throw se;
					}
					else if (TEMP_ID_1.equals(temp_id) && "pcrs_cd".equals(item))
					{
						// 業務エラーを再throw
						throw se;
					}
					else if (TEMP_ID_1.equals(temp_id) && "pplan_cd".equals(item))
					{
						// 業務エラーを再throw
						throw se;
					}
					else if (TEMP_ID_2.equals(temp_id) && "svc_use_sta_kibo_ymd".equals(item))
					{
						// 業務エラーを再throw
						throw se;
					}
					else if (TEMP_ID_2.equals(temp_id) && "kktk_svc_cd".equals(item))
					{
						// 業務エラーを再throw
						throw se;
					}
				}
				else
				{
					// 特定のエラーの場合は業務用例外クラスをthrowする。
					throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
				}
			}
		}
	}

	/**
	 * 共有フォームBeanに引継情報を設定します
	 * 全回線タイプ共通の設定です。
	 * @param bean				サービスフォームBean
	 * @param commoninfoBean	共有フォームBean
	 * @param typeKbn			回線タイプ
	 */
	private void setCommonBean(X31SDataBeanAccess bean, X31SDataBeanAccess commoninfoBean, String typeKbn)
	{
		// "WEB新規"階層
		X31SDataBeanAccess ws = (commoninfoBean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO)).getDataBean(0);

		// マンション情報
		X31SDataBeanAccess wsMnshnInfo = (ws.getDataBeanArray(CommonInfoCFConst.MANSION_INFO)).getDataBean(0);

		// "eo光ネット"階層
		X31SDataBeanAccessArray eoNetArr = ws.getDataBeanArray(CommonInfoCFConst.EONET);
		X31SDataBeanAccess eoNet = eoNetArr.getDataBean(0);
		if (eoNet == null)
		{
			eoNetArr.addDataBean();
			eoNet = eoNetArr.getDataBean(0);
		}
		String netCourse = JFUStrConst.EMPTY;
		String[] radio_val = bean.sendMessageString(FUW00106SFConst.COURSE_SELECT, X31CWebConst.DATABEAN_GET_VALUE).split(JFUStrConst.COMMA);

		if (radio_val[0].length() != 0)
		{
			netCourse = radio_val[3];
			eoNet.sendMessageString(CommonInfoCFConst.NET_COURSE_11, X31CWebConst.DATABEAN_SET_VALUE, netCourse); // コース選択
		}

		// ホームタイプまたはメゾンタイプの場合、割引系の値を共有フォームBeanに設定する。
		if (HOME.equals(typeKbn) || MASION.equals(typeKbn))
		{
			// 即割りチェックありの場合
			if (bean.sendMessageBoolean(FUW00106SFConst.SOKUWARI, X31CWebConst.DATABEAN_GET_VALUE))
			{
				// ｅｏ光ネット 即割り に申し込むを設定
				eoNet.sendMessageString(CommonInfoCFConst.NET_SOKUWARI_11, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.NET_SOKUWARI_MSKM);
			}
			else
			{
				// 即割りチェックなしの場合、ｅｏ光ネット 即割り に申し込まないを設定
				eoNet.sendMessageString(CommonInfoCFConst.NET_SOKUWARI_11, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.NET_SOKUWARI_NOT_MSKM);
			}

			if (JFUStrConst.NET_COURSE_5G10G.contains(netCourse))
			{
				// ネットコースが5ギガ／10ギガの場合

				// 高速割チェックありの場合
				if (bean.sendMessageBoolean(FUW00106SFConst.KOSOKUWARI, X31CWebConst.DATABEAN_GET_VALUE))
				{
					// ｅｏ光ネット 高速割 に申し込むを設定
					eoNet.sendMessageString(CommonInfoCFConst.NET_KOSOKUWARI_11, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.NET_KOSOKUWARI_MSKM);
				}
				else
				{
					// 高速割チェックなしの場合、ｅｏ光ネット 高速割 に申し込まないを設定
					eoNet.sendMessageString(CommonInfoCFConst.NET_KOSOKUWARI_11, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.NET_KOSOKUWARI_NOT_MSKM);
				}

				// 10ギガ了承するにチェックありの場合
				if (bean.sendMessageBoolean(FUW00106SFConst.RYOUSHO_10G_FLG, X31CWebConst.DATABEAN_GET_VALUE))
				{
					// ｅｏ光ネット 10ギガ了承する に申し込むを設定
					eoNet.sendMessageString(CommonInfoCFConst.RYOUSHO_10G_FLG_11, X31CWebConst.DATABEAN_SET_VALUE, INFO_TRUE);
				}
				else
				{
					// 10ギガ了承するチェックなしの場合、ｅｏ光ネット 10ギガ了承する に申し込まないを設定
					eoNet.sendMessageString(CommonInfoCFConst.RYOUSHO_10G_FLG_11, X31CWebConst.DATABEAN_SET_VALUE, INFO_FALSE);
				}
			}
			else
			{
				// ネットコースが5ギガ／10ギガ以外の場合

				// 共有フォームBeanの高速割に""を設定する。
				eoNet.sendMessageString(CommonInfoCFConst.NET_KOSOKUWARI_11, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				// 共有フォームBeanの０ギガ了承フラグに""を設定する。
				eoNet.sendMessageString(CommonInfoCFConst.RYOUSHO_10G_FLG_11, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
			}

			// 長割フラグ
			boolean chowariFlg = true;
			// ネットコースが100Mライトコースの場合
			if (JFUStrConst.NET_COURSE_100M_LIGHT.equals(netCourse))
			{
				// 長割申込が非表示の場合
				if (INFO_FALSE.equals(bean.sendMessageString(FUW00106SFConst.CHOWARI_MSKM, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					chowariFlg = false;
				}
			}
			if (chowariFlg)
			{
				// 長割チェックありの場合
				if (bean.sendMessageBoolean(FUW00106SFConst.CHOWARI, X31CWebConst.DATABEAN_GET_VALUE))
				{
					// ｅｏ光ネット 長割り に申し込むを設定
					eoNet.sendMessageString(CommonInfoCFConst.NET_CHOWARI_11, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.NET_CHOWARI_MSKM);

					// 自動継続選択の場合
					if (bean.sendMessageBoolean(FUW00106SFConst.AUTO_KEIZOKU, X31CWebConst.DATABEAN_GET_VALUE))
					{
						// 割引サービス契約自動継続識別コードに「1」を設定
						eoNet
								.sendMessageString(CommonInfoCFConst.AUTO_KEIZOKU_11, X31CWebConst.DATABEAN_SET_VALUE,
										JFUStrConst.NET_AUTO_KEIZOKU_MSKM);
					}
					else
					{
						// 自動継続が未選択の場合、自動継続に「0」を設定
						eoNet.sendMessageString(CommonInfoCFConst.AUTO_KEIZOKU_11, X31CWebConst.DATABEAN_SET_VALUE,
								JFUStrConst.NET_AUTO_KEIZOKU_NOT_MSKM);
					}
				}
				else
				{
					// 長割チェックなしの場合、長割り に申し込まないを設定
					eoNet.sendMessageString(CommonInfoCFConst.NET_CHOWARI_11, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.NET_CHOWARI_NOT_MSKM);

					// 自動継続に「""」を設定
					eoNet.sendMessageString(CommonInfoCFConst.AUTO_KEIZOKU_11, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
			}
			else
			{
				// 長割り に「""」を設定
				eoNet.sendMessageString(CommonInfoCFConst.NET_CHOWARI_11, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);

				// 自動継続に「""」を設定
				eoNet.sendMessageString(CommonInfoCFConst.AUTO_KEIZOKU_11, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
			}
		}

		// マンションタイプの場合
		if (MANSION.equals(typeKbn))
		{
			// 提供方式パターンが"VDSL"もしくは"VDSL-S"の場合
			if (JFUStrConst.TK_HOSHIKI_PTN_VDSL.equals(wsMnshnInfo.sendMessageString(CommonInfoCFConst.TEIKYO_HOSHIKI_PTN_CD_16, X31CWebConst.DATABEAN_GET_VALUE))
					|| JFUStrConst.TK_HOSHIKI_PTN_VDSLS.equals(wsMnshnInfo.sendMessageString(CommonInfoCFConst.TEIKYO_HOSHIKI_PTN_CD_16, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				// モデム選択情報の設定
				eoNet.sendMessageString(CommonInfoCFConst.MODEM_PLAN_11, X31CWebConst.DATABEAN_SET_VALUE, bean.sendMessageString(FUW00106SFConst.MDM_PLAN, X31CWebConst.DATABEAN_GET_VALUE)); // プラン選択
			}

			if (isYearMonthDayList(bean))
			{
				// サービス開始希望日
				eoNet.sendMessageString(CommonInfoCFConst.SVC_STA_KIBO_11, X31CWebConst.DATABEAN_SET_VALUE, bean.sendMessageString(
						FUW00106SFConst.SVC_KB_DATE, X31CWebConst.DATABEAN_GET_VALUE));
			}
		}

//		// 申込区分
//		String mskmKbn = ws.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_GET_VALUE);
//
//		// 追加申込の場合
//		if (JFUStrConst.MSKM_KBN_ADD.equals(mskmKbn))
//		{
//			String hktgi = bean.sendMessageString(FUW00106SFConst.SERVICE_HKTGI_SELECT, X31CWebConst.DATABEAN_GET_VALUE);
//
//			// サービスの引継ぎ
//			eoNet.sendMessageString(CommonInfoCFConst.SVC_HKTGI_11, X31CWebConst.DATABEAN_SET_VALUE, hktgi);
//
//			// TAI-2012-0000136 2012/12/29 h.iwamoto 契約新規連携項目不備対応 START
//			// サービス引継ぎ選択にて、併用を選択した場合
//			if (INFO_TRUE.equals(hktgi))
//			{
//				// 解約書の送付に「郵送しない」を設定
//				eoNet.sendMessageString(CommonInfoCFConst.DSL_SHO_SOFU_11, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.DSL_SHO_SOFU_NO);
//
//				// メールアドレスマイＨＰ継続
//				eoNet.sendMessageString(CommonInfoCFConst.MAIL_MYHP_CONTINUE_11, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
//			}
//			else
//			{
//				// 解約書の送付に「郵送する」を設定
//				eoNet.sendMessageString(CommonInfoCFConst.DSL_SHO_SOFU_11, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.DSL_SHO_SOFU_HAVE);
//
//				// メールアドレスマイＨＰ継続
//				eoNet.sendMessageString(CommonInfoCFConst.MAIL_MYHP_CONTINUE_11, X31CWebConst.DATABEAN_SET_VALUE, bean.sendMessageString(
//						FUW00106SFConst.KEIZOKU_SELECT, X31CWebConst.DATABEAN_GET_VALUE));
//			}
//			// TAI-2012-0000136 2012/12/29 h.iwamoto 契約新規連携項目不備対応 END
//
//		}
		
// ANK-3296-00-00 ADD START
		// 標準工事費お支払い方法表示フラグ
		String hyojiFlg = bean.sendMessageString(FUW00106SFConst.STDARD_KOJIHI_PAYWAY_DSP_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		// 標準工事費お支払い方法の設定
		String svcStKojiPayway = bean.sendMessageString(FUW00106SFConst.STDARD_KOJIHI_PAYWAY, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 標準工事費お支払い方法表示フラグが"1(表示)"の場合
		if(JFUStrConst.STDARD_KOJIHI_PAYWAY_DISP_ON.equals(hyojiFlg))
		{
			// 標準工事費お支払い方法の設定(0:分割払い 1:一括払い)
			ws.sendMessageString(CommonInfoCFConst.STDARD_KOJIHI_PAYWAY_06, X31CWebConst.DATABEAN_SET_VALUE, svcStKojiPayway);
		}
// ANK-3296-00-00 ADD END
	}

	/**
	 * 遷移先設定
	 *
	 * @param  screenMode        画面遷移モード
	 * @param  nextScreenId      遷移先画面ID
	 * @param  nextScreenName    遷移先画面名
	 *
	 * @return void
	 */
	private void setNextScreen(String nextScreenId, String nextScreenName)
	{
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, nextScreenId);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, nextScreenName);
	}

	/**
	 * 共有フォームBeanのデータが存在しない場合、空データを作成します。（JasperException回避のため)
	 * １．「マンション情報」を作成する。
	 *
	 * <br>
	 * @param commoninfoBean
	 */
	private void createData(X31SDataBeanAccess commoninfoBean)
	{
		// "WEB新規"階層
		X31SDataBeanAccess ws = (commoninfoBean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO)).getDataBean(0);

		// "マンション情報"階層
		X31SDataBeanAccessArray mansyonjouhouArr = ws.getDataBeanArray(CommonInfoCFConst.MANSION_INFO);
		if (mansyonjouhouArr.getDataBean(0) == null)
		{
			// 「マンション情報」の空データ作成
			mansyonjouhouArr.addDataBean();
		}
	}

	/**
	 *  サービス開始希望日リストを作成
	 * @param bean
	 * @param commoninfoBean
	 */
	private void getYearMonthDayListValue(X31SDataBeanAccess bean, X31SDataBeanAccess commoninfoBean)
	{
		// "WEB新規"階層
		X31SDataBeanAccess ws = (commoninfoBean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO)).getDataBean(0);
		// マンション情報
		X31SDataBeanAccess wsMnshnInfo = (ws.getDataBeanArray(CommonInfoCFConst.MANSION_INFO)).getDataBean(0);

		// 2013.03.07 ADD 「内部課題-No.2」サービス開始希望日の戻る遷移障害 >>>
		// eo光ネット情報
		X31SDataBeanAccess wsNetInfo = (ws.getDataBeanArray(CommonInfoCFConst.EONET)).getDataBean(0);
		// 2013.03.07 ADD 「内部課題-No.2」サービス開始希望日の戻る遷移障害 <<<E

		X31SDataBeanAccess svc_list = null;
		X31SDataBeanAccessArray bean_array = null;

		// ■サービスフォームBean.引継支払情報
		bean_array = bean.getDataBeanArray(FUW00106SFConst.SVC_KB_DATES);
		bean_array.clearArray();
		bean_array.addDataBean();
		svc_list = bean_array.getDataBean(0);

		// 運用日付を取得
		String m_moji00 = JCCWebCommon.getOpeDate(this, null);
		String this_ymd01 = m_moji00.substring(0, 8);
		// マンション情報 標準サービス開始日数を取得
		int svc_sta_day = Integer.parseInt(wsMnshnInfo.sendMessageString(CommonInfoCFConst.STDARD_SVC_STA_NISU_16, X31CWebConst.DATABEAN_GET_VALUE));

		// マンションのサービス開始年月日を取得
		String svc_sta_ymd = wsMnshnInfo.sendMessageString(CommonInfoCFConst.SVC_STA_YMD_16, X31CWebConst.DATABEAN_GET_VALUE);

		// 判定日が基準日より過去日か判定を行います。
		if (JPCUtilCommon.isEqualDate(svc_sta_ymd, m_moji00) || JPCUtilCommon.isPastDate(svc_sta_ymd, m_moji00, JFUStrConst.CD00001_0))
		{
			// サービス開始年月日<= 運用日 (=過去日)の場合、運用日+標準サービス開始日数 を設定する。
			this_ymd01 = JPCUtilCommon.addDay(this_ymd01, svc_sta_day);
		}
		else
		{
			// サービス開始年月日- 運用日を取得
			int deff = JFUWebCommon.subtractDay(svc_sta_ymd, m_moji00);

			if (deff <= svc_sta_day)
			{
				// サービス開始年月日- 運用日 <= 標準サービス開始日数 の場合、運用日+標準サービス開始日数 を設定する。
				this_ymd01 = JFUWebCommon.addDay(this_ymd01, svc_sta_day);
			}
			else
			{
				// サービス開始年月日を設定する。
				this_ymd01 = String.valueOf(svc_sta_ymd);
			}
		}

		// 2013.03.07 ADD 「内部課題-No.2」サービス開始希望日の戻る遷移障害 >>>
		// サービス開始希望日の初期値（画面で変更する前の値）を保持する
		bean.sendMessageString(FUW00106SFConst.SVC_KB_DATE_INIT, X31CWebConst.DATABEAN_SET_VALUE, this_ymd01);

		// 2012.2.22 ADD 共有フォームBeanより値を取得 Start *******************
		String wrk_ymd = wsNetInfo.sendMessageString(CommonInfoCFConst.SVC_STA_KIBO_11, X31CWebConst.DATABEAN_GET_VALUE);
		if (wrk_ymd.length() > 0)
		{
			this_ymd01 = wrk_ymd;
		}
		// 2012.2.22 ADD 共有フォームBeanより値を取得 End   *******************
		bean.sendMessageString(FUW00106SFConst.SVC_KB_DATE, X31CWebConst.DATABEAN_SET_VALUE, this_ymd01);
		// 2013.03.07 ADD 「内部課題-No.2」サービス開始希望日の戻る遷移障害 <<<E

		// 年 （配列サイズ固定）

		String m_moji0 = JFUWebCommon.getOpeDate(this, null);
		String this_year = m_moji0.substring(0, 4);
		int this_year_i = Integer.parseInt(this_year);
		this_year_i = this_year_i - 1;

		for (int m1 = 1; m1 <= 4; m1++)
		{
			this_year_i = this_year_i + 1;
			String this_year_s = Integer.toString(this_year_i);

			svc_list.sendMessageString(FUW00106SFConst.YEAR_01, X31CWebConst.DATABEAN_ADD_VALUE, this_year_s);
		}

		// 月 （配列サイズ固定）
		String m_moji = JFUStrConst.EMPTY;

		for (int m1 = 1; m1 <= 12; m1++)
		{
			m_moji = String.format("%02d", m1);

			svc_list.sendMessageString(FUW00106SFConst.MON_01, X31CWebConst.DATABEAN_ADD_VALUE, m_moji);
		}

		// 日 （配列サイズ固定）
		String m_moji2 = JFUStrConst.EMPTY;

		for (int m2 = 1; m2 <= 31; m2++)
		{
			m_moji2 = String.format("%02d", m2);

			svc_list.sendMessageString(FUW00106SFConst.DAY_01, X31CWebConst.DATABEAN_ADD_VALUE, m_moji2);
		}
	}

	/**
	 * サービスフォームBeanにボタン情報を設定するための処理振り分けを行います。
	 * <br>
	 * @param map FUDispDefinition.xmlのボタン定義情報
	 * @param kisnKbn 回線区分
	 * @param lightFlg 100Mライトコース表示判定フラグ
	 */
	private void setBtnDispInfo(Map map, String kisnKbn, boolean lightFlg)
	{
		if (!map.isEmpty())
		{
			// 共有フォームBeanのデータBeanアクセスクラスを取得。
			X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
			// "WEB新規"階層
			X31SDataBeanAccess ws = (commoninfoBean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO)).getDataBean(0);
			// "PASCO情報"階層
			X31SDataBeanAccess pascoInfo = (ws.getDataBeanArray(CommonInfoCFConst.PASCO_INFO)).getDataBean(0);
			// "マンション情報"階層
			X31SDataBeanAccess mansionInfo = (ws.getDataBeanArray(CommonInfoCFConst.MANSION_INFO)).getDataBean(0);
			
// ANK-3209-00-00 ADD START
			// サービスフォームBeanのデータBeanアクセスクラスを取得。
			X31SDataBeanAccess bean = super.getServiceFormBean();
			// "WEB新規情報.申込区分（種別）"
			String mskmKbn = ws.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_GET_VALUE);
			// "WEB新規情報.回線場所選択"
			String kaisenSelect = ws.sendMessageString(CommonInfoCFConst.KAISEN_SELECT_06, X31CWebConst.DATABEAN_GET_VALUE);
// ANK-3209-00-00 ADD END
// IT1-2017-0000112 ADD START
			// "ｅｏ光電話"階層
			X31SDataBeanAccess eotel = (ws.getDataBeanArray(CommonInfoCFConst.EOTEL)).getDataBean(0);
			// "ｅｏ光電話.サービス契約番号"
			String eotelSvckeiNo = eotel.sendMessageString(CommonInfoCFConst.SVC_KEI_NO_12, X31CWebConst.DATABEAN_GET_VALUE);
// IT1-2017-0000112 ADD END

			// "ｅｏ光ＴＶ"
			X31SDataBeanAccess eotv = (ws.getDataBeanArray(CommonInfoCFConst.EOTV)).getDataBean(0);
			// "ｅｏ光ＴＶ.サービス契約番号"
			String eotvSvckeiNo = eotv.sendMessageString(CommonInfoCFConst.SVC_KEI_NO_12, X31CWebConst.DATABEAN_GET_VALUE);

			// ボタン表示可否の判定用変数
			String name = JFUStrConst.EMPTY;
			String btnDispTrueFlg = JFUStrConst.EMPTY;
			String pascoFlg = pascoInfo.sendMessageString(CommonInfoCFConst.MOBILE_100M_07, X31CWebConst.DATABEAN_GET_VALUE);
			String netCourse = JFUStrConst.EMPTY;
// ANK-3209-00-00 ADD START
			String id = JFUStrConst.EMPTY;
// ANK-3209-00-00 ADD END
			
			// 追加申込 かつ 契約中の回線に追加 かつ ｅｏ光電話.サービス契約番号が存在する場合 もしくは ｅｏ光テレビ.サービス契約番号が存在する場合
			if (JFUStrConst.MSKM_KBN_ADD.equals(mskmKbn) && JFUStrConst.KAISEN_SELECT_ADD_KEI.equals(kaisenSelect) && (!JFUStrConst.EMPTY.equals(eotelSvckeiNo) || !JFUStrConst.EMPTY.equals(eotvSvckeiNo)))
			{
			// サービスI/Fの呼び出し処理
			callInitSIF(bean, commoninfoBean, eotelSvckeiNo);
			}

			for (int cnt = 1; cnt <= map.size(); cnt++)
			{
				String[] btns = map.get(Integer.toString(cnt)).toString().split(",");

				if (!MANSION.equals(kisnKbn))
				{
					name = btns[9];
					btnDispTrueFlg = btns[10];

					if (HOME.equals(kisnKbn) && !btnDispTrueFlg.equals(pascoInfo.sendMessageString(name, X31CWebConst.DATABEAN_GET_VALUE))
							&& !JFUStrConst.EMPTY.equals(pascoFlg))
					{
						continue;
					}

					if (MASION.equals(kisnKbn) && !btnDispTrueFlg.equals(mansionInfo.sendMessageString(name, X31CWebConst.DATABEAN_GET_VALUE)))
					{
						continue;
					}
				}
				else
				{
					// マンションタイプの場合
					netCourse = btns[8];

					if (btns.length >= 11)
					{
						name = btns[9];
						btnDispTrueFlg = btns[10];
						if (!btnDispTrueFlg.equals(mansionInfo.sendMessageString(name, X31CWebConst.DATABEAN_GET_VALUE)))
						{
							continue;
						}
					}
					if ((!lightFlg) && JFUStrConst.NET_COURSE_100M_LIGHT.equals(netCourse))
					{
						// 100Mライト表示フラグがfalseの場合、処理を飛ばす。
						continue;
					}
				}

				String hhs1gonlyFlg = mansionInfo.sendMessageString(CommonInfoCFConst.HHS_1GONLY_FLG_16, X31CWebConst.DATABEAN_GET_VALUE);
				String tkHoshikiPatternCd = mansionInfo.sendMessageString(CommonInfoCFConst.TK_HOSHIKI_PATTERN_CD_16, X31CWebConst.DATABEAN_GET_VALUE);
				// ＭＡＮＭＯＳ管理物件以外
				if (!JFUStrConst.HHS_1GONLY_FLG_1.equals(hhs1gonlyFlg) && !JFUStrConst.CD01213_53.equals(tkHoshikiPatternCd)) {
// ANK-3209-00-00 ADD START
// IT1-2017-0000112 MOD START
//				// 追加申込かつ契約中の回線に追加の場合
//				if (JFUStrConst.MSKM_KBN_ADD.equals(mskmKbn) && JFUStrConst.KAISEN_SELECT_ADD_KEI.equals(kaisenSelect))
				// 追加申込 かつ 契約中の回線に追加 かつ ｅｏ光電話.サービス契約番号が存在する場合 もしくは ｅｏ光テレビ.サービス契約番号が存在する場合
					if (JFUStrConst.MSKM_KBN_ADD.equals(mskmKbn) && JFUStrConst.KAISEN_SELECT_ADD_KEI.equals(kaisenSelect) && (!JFUStrConst.EMPTY.equals(eotelSvckeiNo) || !JFUStrConst.EMPTY.equals(eotvSvckeiNo)))
// IT1-2017-0000112 MOD END
					{
						// ボタンＩＤ取得
						id = btns[1];
						
						// サービスフォームBean.PON種別コードを取得
						String ponSbtCd = bean.sendMessageString(FUW00106SFConst.PON_SBT_CD, X31CWebConst.DATABEAN_GET_VALUE);
						
						// ボタンＩＤが1ギガコースか5ギガコースか10ギガコース かつ PON種別コードがE-PONの場合、処理を飛ばす。
						if ((COURSE_1G.equals(id) || COURSE_5G10G.contains(id)) && JFUStrConst.CD00211_1.equals(ponSbtCd))
						{
							continue;
						}
						
						// ボタンＩＤが5ギガコースか10ギガコース かつ PON種別コードがGE-PONの場合、処理を飛ばす。
						if (COURSE_5G10G.contains(id) && JFUStrConst.CD00211_2.equals(ponSbtCd))
						{
							continue;
						}
						
						// サービスフォームBean.提供エリア１０Ｇフラグを取得
						String tkArea10gFlg = bean.sendMessageString(FUW00106SFConst.TK_AREA_10G_FLG, X31CWebConst.DATABEAN_GET_VALUE);
						
						// 提供エリア１０Ｇフラグがエリア外の場合、５Ｇ・１０Ｇのボタン処理を飛ばす。
						if (JFUStrConst.CD00003_0.equals(tkArea10gFlg) && (COURSE_5G10G.contains(id)))
						{
							continue;
						}
					}
				}
// ANK-3209-00-00 ADD END

				// 高速割/了承するエリア表示判断
				if ((!MANSION.equals(kisnKbn)) && COURSE_5G10G.contains(btns[1]))
				{
					// ボタンＩＤが5ギガコースか10ギガコースの場合

					// 高速割/了承するエリアを表示
					bean.sendMessageBoolean(FUW00106SFConst.DSP_KOSOKUWARI, X31CWebConst.DATABEAN_SET_VALUE, true);
				}

				setBtnDispInfo(btns, ws); //「新規-276」戻るボタン押下時のコース選択
			}
		}
	}

	/**
	 * サービスフォームBeanにボタン情報を設定します。
	 * <br>
	 * @param btns FUDispDefinition.xmlのボタン定義情報（カンマでsplitされた値）
	 */
	//「新規-276」戻るボタン押下時のコース選択　...メソッド引数追加
	private void setBtnDispInfo(String[] btns, X31SDataBeanAccess ws)
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess btnsBean = bean.getDataBeanArray(FUW00106SFConst.BTNS).addDataBean();

		// ボタンIDを設定
		btnsBean.sendMessageString(FUW00106SFConst.BTN_ID_02, X31CWebConst.DATABEAN_SET_VALUE, btns[1]);
		btnsBean.sendMessageString(FUW00106SFConst.BTN_CLASS_02, X31CWebConst.DATABEAN_SET_VALUE, btns[2]);
		btnsBean.sendMessageString(FUW00106SFConst.BTN_TITLE_02, X31CWebConst.DATABEAN_SET_VALUE, btns[3]);
		btnsBean.sendMessageString(FUW00106SFConst.RDO_ID_02, X31CWebConst.DATABEAN_SET_VALUE, btns[4]);

		btnsBean.sendMessageString(FUW00106SFConst.RDO_VALUE_02, X31CWebConst.DATABEAN_SET_VALUE, btns[5] + "," + btns[6] + "," + btns[7] + ","
				+ btns[8]);

		// 「新規-276」 戻るボタン押下時のコース選択 ohmura add start >>>
		// "eo光ネット"階層
		X31SDataBeanAccess eoNet = ws.getDataBeanArray(CommonInfoCFConst.EONET).getDataBean(0);

		// 料金シミュレーションで選択したコースを選択中に設定する。
		if (eoNet != null)
		{
			if (btns[8].equals(eoNet.sendMessageString(CommonInfoCFConst.NET_COURSE_11, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				bean.sendMessageString(FUW00106SFConst.COURSE_SELECT, X31CWebConst.DATABEAN_SET_VALUE, btnsBean.sendMessageString(
						FUW00106SFConst.RDO_VALUE_02, X31CWebConst.DATABEAN_GET_VALUE));
			}
		}
		// 「新規-276」 戻るボタン押下時のコース選択 ohmura add start <<<

	}


	/**
	 *  サービス開始希望日リストを呼び出すかどうか判定します。
	 * @param bean サービスフォームBean
	 * @return boolean true:呼び出す  false:呼び出さない
	 */
	private boolean isYearMonthDayList(X31SDataBeanAccess bean)
	{

		String svcKibDspFlg = bean.sendMessageString(FUW00106SFConst.SVC_KB_CTRL_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		if (JFUWebCommon.isNull(svcKibDspFlg))
		{
			return false;
		}
		return true;

	}

	/**
	 * ビジネスログへの出力処理
	 *
	 * @param msg ログ情報
	 */
	private void outputBusLog(String msg)
	{
		JSYwebLog.println(JSYwebLog.EXECUTION, getClass(), msg, "CS0003I", null, null);
	}

}