/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：FUW00927SFLogic
*   ソースファイル名：FUW00927SFLogic.java
*   作成者          ：富士通
*   日付            ：2012年02月16日
*＜機能概要＞
*   入力内容確認画面ビューロジックです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00       2012/02/16   FJ          新規作成
*   v3.00       2012/04/09   FJ)福島     ｢ANK-0038-00-00｣申込実績集計
*   v3.01       2012/04/09   FJ)福島     ｢ANK-0047-00-00｣通話料上限通知オプション
*   v3.02       2012/04/09   FJ)福島     ｢ANK-0049-00-00｣光ハイブリッド
*   v3.03       2012/04/09   FJ)福島     ｢ANK-0050-00-00｣FTTH従量制課金
*   v3.04       2012/04/17   FJ)大野     料金シミュレーション対応
*   v3.05       2012/04/21   FJ)楠山     ｢ANK-0230-00-00｣全戸一括物件申込対応(W09024)
*   v4.00       2012/09/29   FJ)齋藤     ｢ANK-0390-00-00｣Web代行入力その他キャンペーン連携対応
*   v4.01       2012/10/29   FJ)山下     ｢ANK-1199-00-00｣自動採番対応
*   v4.02       2012/11/13   FJ)岩元    「IT2-2012-0001695」WiFi即時開通対応
*   v4.03       2012/11/22   FJ)大塚    「IT2-2012-0001790」
*   v4.04       2012/12/03   FJ)大村    「IT2-2012-0001949」対応（本人確認資料）
*   v4.05       2012/12/18   FJ)山下    「TAI-2012-0000136-133」料金シミュレーション同期通信化対応
*   v4.06       2013/03/27   FJ)藤原    「No.544」自動適用CCモバイル単独適用対応
*   v5.00       2013/04/03   FJ)大村    「IT1-2013-0000715」ＶＤＳＬマンションの場合、ネット非申込時にモデムレンタル機器が必要
*   v5.01       2013/08/07   FJ)文元    「IT1-2013-0001522」マンション申し込みの場合、申込明細の契約付加、機器提供サービス契約の宅内機器型式コードに値を設定するよう対応
*   v7.00       2013/12/11   FJ) 川瀬   【ANK-1578-00-00】多機能ルーター(機器追加)
*   v8.00       2014/03/14   FJ）西山    【ANK-1962-00-00】関電CRMに向けた取り組み対応
*   v10.00      2014/07/17   FJ) 清水   【ANK-2135-00-00】BSオプションチャンネル「スターチャンネル」とのセット割検討
*   v35.00      2017/10/13   FJ) 岡井   【ANK-3225-00-00】未成年mineoマスタユーザのeo申込について
*   v36.00      2017/01/24   FJ) 高野   【ANK-3296-00-00】標準工事費分割請求
*   v39.00      2018/10/18   FJ)黒田(耕)【ANK-3518-00-00】量販・訪販Webのサービス追加
*   v39.00      2018/11/22   FJ)大島    【ANK-3473-00-00】選択性CPシステム改修
*   v45.00      2019/10/24	 FJ) 張本   【OM-2019-0001214】契約者住所と利用場所住所の差異フラグ不正
*   v53.00      2021/04/28   FJ）星野    【ANK-3951-00-00】「競争ルールの検証に関するWG」に関するシステム対応
*   v54.00      2021/08/19   FJ）新谷   【ANK-4096-00-00】宅調宅工同時実施のための聞取り強化対応
*   v57.00      2022/02/09   FJ) 美濃原 【ANK-4088-00-00】宅内調査の日程調整業務における省人化施策(Step2)
*   v60.00      2022/09/01   FJ) 西川   【ANK-4319-00-00】202210月CP対応
*   v70.00      2024/02/05   FJ) 美濃原 【ANK-4551-00-00】202404CP対応
*   v73.00      2024/12/16   FJ）飯田   【ANK-4427-00-00】NTT卸対応
*   v74.00      2025/01/08   FJ）余野木 【ANK-4592-00-00】テレビ新コース（スカパー用）導入対応
*   v75.00      2025/05/15   FJ) 張本   【ANK-4652-00-00】量販・訪販Web画面の宅調宅工同日実施および宅調アポ方法聞き取りの改善
**********************************************************************/
package eo.web.webview.FUW00927SF;

import static com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG;

import java.util.HashMap;

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.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import com.fujitsu.futurity.web.x31.X31CWebConst;

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.common.constant.JFUStrConst;
import eo.common.constant.JPCModelConstant;

import java.util.ArrayList;
import java.util.Map;

import eo.web.webview.FUW00927SF.FUW00927SFConst;
import eo.web.webview.mapping.FUSV0152_FUSV0152OPDBMapper;
import eo.web.webview.mapping.FUSV0198_FUSV0198OPDBMapper;
import eo.web.webview.mapping.FUSV0330_FUSV0330OPDBMapper;

/**
 * FUW00927_内容確認画面ビューロジック <br>
 * 
 * @author 富士通
 */
@SuppressWarnings("serial")
public class FUW00927SFLogic extends JCCWebBusinessLogic
{
	/** 連絡先選択：1:利用場所と同じ */
	private static final String RRKS_CHOICE_1 = "1";

	/** 連絡先選択：2:契約住所と同じ */
	private static final String RRKS_CHOICE_2 = "2";

	/** 連絡先選択：3:その他 */
	private static final String RRKS_CHOICE_3 = "3";

	/** 表示フラグ：0:非表示 */
	private static final String DISP_FLG_0 = "0";

	/** 表示フラグ：1:表示 */
	private static final String DISP_FLG_1 = "1";

	/** ユースケースＩＤ　FUSV0152 */
	private static final String USECASE_ID_152 = "FUSV0152";
	/** ユースケースＩＤ　FUSV0198 */
	private static final String USECASE_ID_198 = "FUSV0198";
// ANK-3473-00-00 ADD START
	/** ユースケースＩＤ　FUSV0330 */
	private static final String USECASE_ID_FUSV0330 = "FUSV0330";
// ANK-3473-00-00 ADD END
	/** 1:選択 */
	private static final String SENTAKU = "1";
	/** 0:未選択 */
	private static final String MISENTAKU = "0";
	/** 全角スペース */
	private static final String ZENKAKU_SPACE = "　";
	/** 同一契約者チェック一覧照会マップ名 */
	private static final String SAME_KEISHA_CHECK = "FUSV019801SC";
	/** 同一契約者チェック一覧照会リスト名 */
	private static final String SAME_KEISHA_CHECK_LIST = "ECK0011B507CBSMsg1List";
	/** オプションサービス契約＜ISP>登録マップ名（ネット） */
	private static final String OP_SVC_NET = "EKK0361D010Net";
	/** オプションサービス契約＜ISP>登録マップ名（モバイル） */
	private static final String OP_SVC_MOB = "EKK0361D010Mob";
	/** プロパティパス */
	private static final String QUERY_PATH = "DISPSETTING/SETTING[@screenId='FUW00927']/DISPTEXT[@groupid='SERVICE_NAME']";
	/** 属性名 */
	private static final String QUERY_ATTR_NAME = "id";
	/** ネットタイプ ホーム */
	private static final String NET_TIPE_HOME = "NET_TIPE_HOME";
	/** ネットタイプ マンション */
	private static final String NET_TIPE_MANSHON = "NET_TIPE_MANSHON";
	/** ネットタイプ メゾン */
	private static final String NET_TIPE_MEZON = "NET_TIPE_MEZON";
	/** ネットコース 100M */
	private static final String NET_COURSE_1 = "NET_COURSE_1";
	/** ネットコース 200M */
	private static final String NET_COURSE_2 = "NET_COURSE_2";
	/** ネットコース !G */
	private static final String NET_COURSE_3 = "NET_COURSE_3";
	/** 電話 */
	private static final String TEL = "TEL";
	/** テレビ */
	private static final String TV = "TV";
	/** モバイル */
	private static final String MOBILE = "MOBILE";
	/** モバイルサービス */
	private static final String MOBILE_SERVICE = "MOBILE_SERVICE";
	/** eoサービス */
	private static final String EO_SERVICE = "EO_SERVICE";

	/** 加入契約申込条件コード：12(Web可(併設)) */
	private static final String KNYKEI_MSKM_JOKEN_CD_12 = "12";
	/** 加入契約申込条件コード：13(全戸一括) */
	private static final String KNYKEI_MSKM_JOKEN_CD_13 = "13";

	/** 申込区分2 フラグ  true:本申込 false:仮申込 */
	private boolean kariFlg = false; // IT2-2012-1790 2012/11/27 Otsuka
	
// ANK-3518-00-00 ADD START
	/** 項目表示フラグ：true表示 */
	private static final boolean ITEM_DSP_FLG_DISP = true;

	/** 項目表示フラグ：false非表示 */
	private static final boolean ITEM_DSP_FLG_NO_DISP = false;
// ANK-3518-00-00 ADD END

	/** 契約者住所とご利用場所の同一確認：異なる */
	private static final String BASHO_DIFF = "2";

	/** プロパティからの取得キー 利用中のネット回線 光回線 */
	private static final String USE_NET_KSN_HIKARI = "USE_NET_KSN_HIKARI";
	/** プロパティからの取得キー 利用中のネット回線 その他光回線以外 */
	private static final String USE_NET_KSN_SONOTA = "USE_NET_KSN_SONOTA";
	/** プロパティからの取得キー 利用中の機器の設置場所変更予定 位置変更なし */
	private static final String KIKI_PLACE_CHG_NO = "KIKI_PLACE_CHG_NO";
	/** プロパティからの取得キー 利用中の機器の設置場所変更予定 位置変更あり */
	private static final String KIKI_PLACE_CHG_YES = "KIKI_PLACE_CHG_YES";
	/** プロパティからの取得キー 宅内調査と工事の同日実施 いいえ */
	private static final String TKC_KOJI_SAME_NO = "TKC_KOJI_SAME_NO";
	/** プロパティからの取得キー 宅内調査と工事の同日実施 はい */
	private static final String TKC_KOJI_SAME_YES = "TKC_KOJI_SAME_YES";

	/** プロパティファイル取得文字列（CX案件開始フラグ） */
	private static final String CX_START_FLG = "DISPSETTING/COMMONSETTING/DISPTEXT[@id='CX_START_FLG']";
	/**
	 * 初期表示処理を行います。
	 * 
	 * @return boolean true(固定)
	 * @throws Exception
	 */
	public boolean init() throws Exception
	{
		// ログ
		DEBUG_LOG.info("----- init FUW00927_Start -----");

		// 共有フォームBean取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		// サービスフォームBean取得
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		X31SDataBeanAccess[] paramBean = { commoninfoBean, serviceFormBean };

		X31SDataBeanAccess[] svcBean = { serviceFormBean };
		// WEB新規情報
		X31SDataBeanAccess bn = getWebInfo(commoninfoBean);

		// フロント新規設定
		X31SDataBeanAccessArray beanFrontArr = commoninfoBean.getDataBeanArray(CommonInfoCFConst.FRONT_COMMON_INFO);
		if (beanFrontArr.getCount() == 0)
		{
			beanFrontArr.addDataBean();
		}
		X31SDataBeanAccess beanFront = beanFrontArr.getDataBean(0);
		beanFront.sendMessageString(CommonInfoCFConst.FU_KBN_05, X31CWebConst.DATABEAN_SET_VALUE, "R");

		// 共有フォームBean情報取得
		// マンション情報
		X31SDataBeanAccess mansioninfo = getMansioninfo(bn);

		// 契約サービス
		X31SDataBeanAccess bn2 = getKeiyakusvcinfo(bn);

		// 加入契約申込条件コード
		String knykeiMskmJokenCd = mansioninfo.sendMessageString(CommonInfoCFConst.KNYKEI_MSKM_JOKEN_CD_16, X31CWebConst.DATABEAN_GET_VALUE);
		// 契約種別
		String keySbt = bn.sendMessageString(CommonInfoCFConst.KEI_SBT_06, X31CWebConst.DATABEAN_GET_VALUE);
		
// ANK-3518-00-00 ADD START
		// 申込区分 (0:未定 1:新規申込 2:追加申込)
		String mskmKbn = bn.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_GET_VALUE);
		
		// その他情報
		X31SDataBeanAccess elseInfo = getElseInfo(bn);
		// 回線場所選択 (1:契約中の回線に追加 2:新しい場所に回線追加)
		String kaisenSelect = elseInfo.sendMessageString(CommonInfoCFConst.KAISEN_SELECT_18, X31CWebConst.DATABEAN_GET_VALUE);

		// 契約サービス情報
		X31SDataBeanAccess keiSvcInfo = getKeiyakusvcinfo(bn);
		// eo電気契約有無区分（0:なし 1:あり）
		String eoDenkiKei = keiSvcInfo.sendMessageString(CommonInfoCFConst.NOW_SVC_DENKI_10, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 契約中サービスエリア表示制御（非表示）
		serviceFormBean.sendMessageBoolean(FUW00927SFConst.KEI_SVC_AREA_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, ITEM_DSP_FLG_NO_DISP);
		
		if (JFUStrConst.MSKM_KBN_ADD.equals(mskmKbn) && 
			(JFUStrConst.KAISEN_SELECT_ADD_KEI.equals(kaisenSelect) || (JFUStrConst.KAISEN_SELECT_ADD_NEW_PLACE.equals(kaisenSelect) && JFUStrConst.ELEC_MSKM_UM_ARI.equals(eoDenkiKei))))
		{
			// 契約中サービスエリア表示制御（表示）
			serviceFormBean.sendMessageBoolean(FUW00927SFConst.KEI_SVC_AREA_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, ITEM_DSP_FLG_DISP);
		}
// ANK-3518-00-00 ADD END
		
		// ユースケースID格納用マップを生成
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_198);

		// マッピングクラスのインスタンスを生成
		FUSV0198_FUSV0198OPDBMapper mapper = new FUSV0198_FUSV0198OPDBMapper();
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// 加入契約申込条件コードを判定し、併設導入済みの場合　かつ　契約種別が個人の場合、既に契約者が契約済みかどうかを判定する。
		if (KNYKEI_MSKM_JOKEN_CD_12.equals(knykeiMskmJokenCd) && JFUStrConst.KEI_SBT_KOJINCD.equals(keySbt))
		{
			// マッピング処理
			mapper.setFUSV019801SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
			// サービス呼び出し
			callService(paramMap, dataMap, outputMap);

			// OUTデータから件数を取得する。
			int outCnt = 0;
			HashMap<String, Object> parentMap = new HashMap<String, Object>();
			parentMap = (HashMap)outputMap.get(SAME_KEISHA_CHECK);

			if (parentMap.containsKey(SAME_KEISHA_CHECK_LIST))
			{
				outCnt = ((ArrayList)parentMap.get(SAME_KEISHA_CHECK_LIST)).size();
			}
			if (0 == outCnt)
			{
				// データ件数が0件の場合
				// 同一利用場所警告表示制御フラグ
				serviceFormBean.sendMessageString(FUW00927SFConst.DSP_SAME_USE_PLACE_KKOKU_FLG, X31CWebConst.DATABEAN_SET_VALUE, DISP_FLG_0);

				// 郵便番号表示制御フラグ
				serviceFormBean.sendMessageString(FUW00927SFConst.DSP_PCD_FLG, X31CWebConst.DATABEAN_SET_VALUE, DISP_FLG_1);

				// 閉じるボタン表示制御フラグ
				serviceFormBean.sendMessageString(FUW00927SFConst.DSP_CLOSE_BTN_FLG, X31CWebConst.DATABEAN_SET_VALUE, DISP_FLG_0);
			}
			else
			{
				// データ件数が0件以上の場合
				// 同一利用場所警告表示制御フラグ
				serviceFormBean.sendMessageString(FUW00927SFConst.DSP_SAME_USE_PLACE_KKOKU_FLG, X31CWebConst.DATABEAN_SET_VALUE, DISP_FLG_1);

				// 郵便番号表示制御フラグ
				serviceFormBean.sendMessageString(FUW00927SFConst.DSP_PCD_FLG, X31CWebConst.DATABEAN_SET_VALUE, DISP_FLG_1);

				// 閉じるボタン表示制御フラグ
				serviceFormBean.sendMessageString(FUW00927SFConst.DSP_CLOSE_BTN_FLG, X31CWebConst.DATABEAN_SET_VALUE, DISP_FLG_1);
			}
		}
		else
		{
			// 同一利用場所警告表示制御フラグ
			serviceFormBean.sendMessageString(FUW00927SFConst.DSP_SAME_USE_PLACE_KKOKU_FLG, X31CWebConst.DATABEAN_SET_VALUE, DISP_FLG_0);

			// 郵便番号表示制御フラグ
			serviceFormBean.sendMessageString(FUW00927SFConst.DSP_PCD_FLG, X31CWebConst.DATABEAN_SET_VALUE, DISP_FLG_1);

			// 閉じるボタン表示制御フラグ
			serviceFormBean.sendMessageString(FUW00927SFConst.DSP_CLOSE_BTN_FLG, X31CWebConst.DATABEAN_SET_VALUE, DISP_FLG_0);

		}
		// 2012/04/21 全戸一括物件申込対応(W09024) START
		// 共有フォームBean.マンション情報.加入契約申込条件コードが"13"(全戸一括)の場合、「次へ」ボタンを表示する。
		if (KNYKEI_MSKM_JOKEN_CD_13.equals(knykeiMskmJokenCd))
		{
			// 次へボタン表示フラグ
			serviceFormBean.sendMessageString(FUW00927SFConst.DSP_NEXT_BTN_FLG, X31CWebConst.DATABEAN_SET_VALUE, DISP_FLG_1);
		}
		else
		{
			// 次へボタン表示フラグ
			serviceFormBean.sendMessageString(FUW00927SFConst.DSP_NEXT_BTN_FLG, X31CWebConst.DATABEAN_SET_VALUE, DISP_FLG_0);
		}
		// 2012/04/21 全戸一括物件申込対応(W09024) END
// ANK-3473-00-00 ADD START
		callFUSV0330(commoninfoBean, serviceFormBean);
// ANK-3473-00-00 ADD END
		String cxStartFlg = JFUWebCommon.getDispItem(CX_START_FLG);
		serviceFormBean.sendMessageString(FUW00927SFConst.CX_START_FLG, X31CWebConst.DATABEAN_SET_VALUE, cxStartFlg);

		// 共有フォームBeanからDataBeanへ
		setFromComToDatBean();

		// 2012/12/18「TAI-2012-0000136-133」料金シミュレーション同期通信化対応
		try
		{
			JFUWebCommon.ryokin(this);
		}
		catch (JCCWebServiceException jccexception)
		{
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}

		// ログ
		DEBUG_LOG.info("----- init FUW00927_End  -----");

		return true;
	}

	/**
	 * 内容を修正する(ご契約者情報(個人・法人))ボタン押下時、画面遷移処理を行います。
	 * 
	 * @return boolean true(固定)
	 */
	public boolean shusei_kei_info()
	{

		// デバッグ用ログ出力
		DEBUG_LOG.info("----- FUW00927_shusei_kei_info Start -----");

		// 遷移先画面設定(通常遷移,ご契約者情報入力(量販・訪販))

		setNextScreen(JFUStrConst.SCREEN_MODE_KAKUNIN, JFUScreenConst.SCREEN_ID_FUW00921, JFUScreenConst.SCREEN_NAME_FUW00921);

		// デバッグ用ログ出力
		DEBUG_LOG.info("----- FUW00927_shusei_kei_info End -----");

		return true;
	}

	/**
	 * 内容を修正する(ご親権者情報)ボタン押下時、画面遷移処理を行います。
	 * 
	 * @return boolean true(固定)
	 */
	public boolean shusei_shinkensha()
	{

		// デバッグ用ログ出力
		DEBUG_LOG.info("----- FUW00927_shusei_shinkensha Start -----");

		// 遷移先画面設定(通常遷移,ご契約者情報入力(量販・訪販))

		setNextScreen(JFUStrConst.SCREEN_MODE_KAKUNIN, JFUScreenConst.SCREEN_ID_FUW00921, JFUScreenConst.SCREEN_NAME_FUW00921);

		// デバッグ用ログ出力
		DEBUG_LOG.info("----- FUW00927_shusei_shinkensha End -----");

		return true;
	}

	/**
	 * 内容を修正する(ご利用場所)ボタン押下時、画面遷移処理を行います。
	 * 
	 * @return boolean true(固定)
	 */
	public boolean shusei_use_place()
	{

		// デバッグ用ログ出力
		DEBUG_LOG.info("----- FUW00927_shusei_use_place Start -----");

		// 遷移先画面設定(確認画面遷移,住所情報入力(量販・訪販))
		setNextScreen(JFUStrConst.SCREEN_MODE_KAKUNIN, JFUScreenConst.SCREEN_ID_FUW00922, JFUScreenConst.SCREEN_NAME_FUW00922);

		// デバッグ用ログ出力
		DEBUG_LOG.info("----- FUW00927_shusei_use_place End -----");

		return true;
	}

	/**
	 * 内容を修正する(ご利用場所設置位置)ボタン押下時、画面遷移処理を行います。
	 * 
	 * @return boolean true(固定)
	 */
	public boolean shusei_use_setplace()
	{

		// デバッグ用ログ出力
		DEBUG_LOG.info("----- FUW00927_shusei_use_setplace Start -----");

		// 遷移先画面設定(確認画面遷移,住所情報入力(量販・訪販))
		setNextScreen(JFUStrConst.SCREEN_MODE_KAKUNIN, JFUScreenConst.SCREEN_ID_FUW00922, JFUScreenConst.SCREEN_NAME_FUW00922);

		// デバッグ用ログ出力
		DEBUG_LOG.info("----- FUW00927_shusei_use_setplacei End -----");

		return true;
	}

	/**
	 * 内容を修正する(ご契約者住所)ボタン押下時、画面遷移処理を行います。
	 * 
	 * @return boolean true(固定)
	 */
	public boolean shusei_ad()
	{

		// デバッグ用ログ出力
		DEBUG_LOG.info("----- FUW00927_shusei_ad Start -----");

		// 遷移先画面設定(確認画面遷移,住所情報入力(量販・訪販))
		setNextScreen(JFUStrConst.SCREEN_MODE_KAKUNIN, JFUScreenConst.SCREEN_ID_FUW00922, JFUScreenConst.SCREEN_NAME_FUW00922);

		// デバッグ用ログ出力
		DEBUG_LOG.info("----- FUW00927_shusei_ad End -----");

		return true;
	}

	/**
	 * 内容を修正する(ご連絡に関する情報)ボタン押下時、画面遷移処理を行います。
	 * 
	 * @return boolean true(固定) boolean true(固定)
	 */
	public boolean shusei_rrk()
	{

		// デバッグ用ログ出力
		DEBUG_LOG.info("----- FUW00927_shusei_rrk Start -----");

		// 遷移先画面設定(確認画面遷移,住所情報入力(量販・訪販))
		setNextScreen(JFUStrConst.SCREEN_MODE_KAKUNIN, JFUScreenConst.SCREEN_ID_FUW00922, JFUScreenConst.SCREEN_NAME_FUW00922);

		// デバッグ用ログ出力
		DEBUG_LOG.info("----- FUW00927_shusei_rrk End -----");

		return true;
	}

	/**
	 * この内容で登録するボタン押下時、サービスIFを呼び出します。
	 * 
	 * @return boolean true(固定)
	 * @throws Exception
	 */
	public boolean add() throws Exception
	{
		// デバッグ用ログ出力
		DEBUG_LOG.info("----- FUW00927_add Start -----");

		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		// WEB新規情報
		X31SDataBeanAccess bwebNewInfoBean = getWebInfo(commonInfoBean);

		// 契約者住所選択の再設定
		setKshAddCfm(bwebNewInfoBean);

		// 光化マンション用の設定処理
		setHikarikaMansInfo(serviceFormBean, commonInfoBean);

		// サービス呼び出し
		X31SDataBeanAccess[] paramBean = { commonInfoBean, serviceFormBean };

		// ユースケースID格納用マップを生成
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_152);

		// マッピングクラスのインスタンスを生成
		FUSV0152_FUSV0152OPDBMapper mapper = new FUSV0152_FUSV0152OPDBMapper();
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// マッピング処理
		callSetdatamap(mapper, paramBean, dataMap);

		// 登録処理呼出
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// 申込断面データマッピング処理（ＷＥＢ新規）
		JFUWebCommon.setMskmDmenXmlMapWebNew(dataMap, this);

		// CC呼び出し
		callService(paramMap, dataMap, outputMap);

		// 2012/11/12 add otsuka start
		// 業務規制リスト取得
		X31SDataBeanAccess workKiseiListBean = getWorkKiseiList(commonInfoBean);

		// TAI-2012-000136 Otsuka 2012/11/13 start

		// 業務規制ではない場合
		if (!JFUStrConst.REQUEST_RESTRICTION_FLG_ON.equals(workKiseiListBean.sendMessageString(CommonInfoCFConst.FRONT_KADO_TRGT_KISEI_FLG_48,
				X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 共有フォームbeanに値をセットする。
			callGetdatamap(mapper, paramBean, outputMap);
		}
		else
		{
			// 契約サービス
			X31SDataBeanAccess keiyakuSvcInfoBean = getKeiyakusvcinfo(bwebNewInfoBean);

			keiyakuSvcInfoBean.sendMessageString(CommonInfoCFConst.UPD_DTM_MSKM_NO_10, X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon.getOpeDateTime(
					this, null));
		}
		// TAI-2012-000136 Otsuka 2012/11/13 end

		// IT2-2012-1790 2012/11/27 Otsuka start
		// 本申込の場合
		if (this.kariFlg)
		{
			// 共有フォームBeanを本申込に戻す。
			bwebNewInfoBean.sendMessageString(CommonInfoCFConst.MSKM_KBN2_06, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.MSKM_KBN_HON);
		}
		// IT2-2012-1790 2012/11/27 end

		// 遷移先画面設定(通常遷移,登録完了(量販・訪販))
		setNextScreen(JFUStrConst.SCREEN_MODE_DEF, JFUScreenConst.SCREEN_ID_FUW00931, JFUScreenConst.SCREEN_NAME_FUW00931);

		DEBUG_LOG.info("----- FUW00927_add End  -----");

		return true;
	}

	/**
	 * 戻るボタン押下時、画面遷移処理を行います。
	 * 
	 * @return boolean true(固定)
	 * @throws Exception
	 */
	public boolean back() throws Exception
	{

		// デバッグ用ログ出力
		DEBUG_LOG.info("----- FUW00927_back Start -----");

		// 遷移先画面設定(確認画面遷移,住所情報入力(量販・訪販))
		setNextScreen(JFUStrConst.SCREEN_MODE_DEF, JFUScreenConst.SCREEN_ID_FUW00922, JFUScreenConst.SCREEN_NAME_FUW00922);

		DEBUG_LOG.info("----- FUW00927_back End -----");

		return true;
	}

	// 2012/04/21 全戸一括物件申込対応(W09024) START

	/**
	 * 次へボタン押下時
	 * 
	 * @return boolean true(固定)
	 * @throws Exception
	 */
	public boolean next() throws Exception
	{
		// デバッグ用ログ出力
		DEBUG_LOG.info("----- FUW00927_next Start -----");

		// 共有フォームBean取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		// WEB新規情報
		X31SDataBeanAccess webInfoBean = getWebInfo(commoninfoBean);
		// 契約サービス情報取得
		X31SDataBeanAccess keiyakuSvcInfoBean = getKeiyakusvcinfo(webInfoBean);
		// eo光電話取得
		X31SDataBeanAccess[] eotelBean = getEotel(webInfoBean);

		// 契約サービス情報.選択サービス（ネット）を取得
		String selectSvcNet = keiyakuSvcInfoBean.sendMessageString(CommonInfoCFConst.SELECT_SVC_NET_10, X31CWebConst.DATABEAN_GET_VALUE);
		// 契約サービス情報.選択サービス（電話）を取得
		String selectSvcTel = keiyakuSvcInfoBean.sendMessageString(CommonInfoCFConst.SELECT_SVC_TEL_10, X31CWebConst.DATABEAN_GET_VALUE);
		// 契約サービス情報.選択サービス（テレビ）を取得
		String selectSvcTv = keiyakuSvcInfoBean.sendMessageString(CommonInfoCFConst.SELECT_SVC_TV_10, X31CWebConst.DATABEAN_GET_VALUE);
		// eo光電話.番ポ利用有無（１番号サービス）を取得
		String useBmp1 = eotelBean[0].sendMessageString(CommonInfoCFConst.USE_BMP_12, X31CWebConst.DATABEAN_GET_VALUE);
		// eo光電話.番ポ利用有無（２番号サービス）を取得
		String useBmp2 = eotelBean[1].sendMessageString(CommonInfoCFConst.USE_BMP_12, X31CWebConst.DATABEAN_GET_VALUE);

		// 割引サービス情報の削除処理
		callClearData(webInfoBean);

		// 引継情報の作成 遷移先画面の設定
		if (JFUStrConst.SELECT_SVC_NET_CHOICE.equals(selectSvcNet))
		{
			// 共有フォームBean.選択サービス（ネット）が"1"(選択)の場合
			// 遷移先画面設定(通常画面遷移,eo光ネットオプション選択（量販・訪販）)
			setNextScreen(JFUStrConst.SCREEN_MODE_DEF, JFUScreenConst.SCREEN_ID_FUW00916, JFUScreenConst.SCREEN_NAME_FUW00916);
		}
		else if (JFUStrConst.SELECT_SVC_CHOICE.equals(selectSvcTel))
		{
			// 共有フォームBean.選択サービス（電話）が"1"(選択)の場合
			if (JFUStrConst.USE_BMP_USE.equals(useBmp1) || JFUStrConst.USE_BMP_USE.equals(useBmp2))
			{
				// eo光電話.番ポ利用有無（１番号サービス）が"1"(利用する) または eo光電話.番ポ利用有無（２番号サービス）が"1"(利用する)の場合
				// 遷移先画面設定(通常画面遷移,eo番号ポータビリティ情報入力（量販・訪販）)
				setNextScreen(JFUStrConst.SCREEN_MODE_DEF, JFUScreenConst.SCREEN_ID_FUW00918, JFUScreenConst.SCREEN_NAME_FUW00918);
			}
			else
			{
				// 遷移先画面設定(通常画面遷移,eo光電話オプション選択（量販・訪販）)
				setNextScreen(JFUStrConst.SCREEN_MODE_DEF, JFUScreenConst.SCREEN_ID_FUW00917, JFUScreenConst.SCREEN_NAME_FUW00917);
			}
		}
		else if (JFUStrConst.SELECT_SVC_TV_CHOICE.equals(selectSvcTv))
		{
			// 遷移先画面設定(通常画面遷移,eo光電話オプション選択（量販・訪販）)
			setNextScreen(JFUStrConst.SCREEN_MODE_DEF, JFUScreenConst.SCREEN_ID_FUW00919, JFUScreenConst.SCREEN_NAME_FUW00919);
		}

		// デバッグ用ログ出力
		DEBUG_LOG.info("----- FUW00927_next End -----");

		return true;
	}

	// 2012/04/21 全戸一括物件申込対応(W09024) END

	/**
	 * 画面遷移先を設定します。
	 * 
	 * @author 富士通
	 * @param screenMode
	 * @param nextScreenId
	 *            遷移先画面ＩＤ
	 * @param nextScreenName
	 *            遷移先画面名
	 * 
	 */
	private void setNextScreen(String screenMode, String nextScreenId, String nextScreenName)
	{
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		// WEB新規情報
		X31SDataBeanAccess bn = getWebInfo(commoninfoBean);

		bn.sendMessageString(CommonInfoCFConst.SCREEN_MODE_06, X31CWebConst.DATABEAN_SET_VALUE, screenMode);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, nextScreenId);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, nextScreenName);

		DEBUG_LOG.debug(String.format("遷移先 CD：%s NM：%s", nextScreenId, nextScreenName));
	}

	/**
	 * DataBean作成 <br>
	 * 
	 * @throws Exception
	 */
	private void setFromComToDatBean() throws Exception
	{
		String sebetsu = ""; // 性別
		String setHonninSelect = ""; // ご本人様確認書類
		String setPlaceform = ""; // ご利用場所設置位置・ご利用場所の形態
		String setPlaceflr = ""; // ご利用場所設置位置・お住まいの階数
		String setBnchi = ""; // ご利用場所設置位置・住所番地
		String rrksChoice = ""; // 連絡先選択
		String takcho_apo_kaden_kibo = ""; // 宅内調査のアポ架電希望
		String faxKibo = ""; // FAX連絡ご希望

		// 共有フォームBean
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		// サービスフォームBean
		X31SDataBeanAccess bean = super.getServiceFormBean();
		// WEB新規情報
		X31SDataBeanAccess bn = getWebInfo(commoninfoBean);
		// 契約者情報
		X31SDataBeanAccess bn4 = getKeiyakuinfo(bn);
		// 利用場所情報
		X31SDataBeanAccess bnRiyobashoinfo = getRiyobasyoinfo(bn);
		// その他情報
		X31SDataBeanAccess bnElseinfo = getElseInfo(bn);
		// 利用回線・機器情報
		X31SDataBeanAccess bnUseKaisenKikiInfo = getUseKaisenKikiInfo(bn);

		// 契約種別
		String kykSyubetsu = bn.sendMessageString(CommonInfoCFConst.KEI_SBT_06, X31CWebConst.DATABEAN_GET_VALUE);
		if (JFUStrConst.KEI_SBT_KOJINCD.equals(kykSyubetsu))
		{
			DEBUG_LOG.info("-- 画面定義ファイル'FUDispDefinition.xml'から 018 を取得します)");
			bean.sendMessageString(FUW00927SFConst.KEI_SBT, X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon.getDispText(
					JFUScreenConst.SCREEN_ID_FUW00927, "018"));
		}
		else if (JFUStrConst.KEI_SBT_HOJINCD.equals(kykSyubetsu))
		{
			bean.sendMessageString(FUW00927SFConst.KEI_SBT, X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon.getDispText(
					JFUScreenConst.SCREEN_ID_FUW00927, "019"));
		}

		// 性別
		sebetsu = bn4.sendMessageString(CommonInfoCFConst.SEX_09, X31CWebConst.DATABEAN_GET_VALUE);
		if (JFUStrConst.CD00245_1.equals(sebetsu))
		{
			bean.sendMessageString(FUW00927SFConst.SEX, X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon.getDispText(JFUScreenConst.SCREEN_ID_FUW00927,
					"016"));
		}
		else if (JFUStrConst.CD00245_2.equals(sebetsu))
		{
			bean.sendMessageString(FUW00927SFConst.SEX, X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon.getDispText(JFUScreenConst.SCREEN_ID_FUW00927,
					"017"));
		}

		// ご本人確認書類
		//「IT2-2012-0001949」対応　本人確認情報の変更 >>>
		setHonninSelect = bn4.sendMessageString(CommonInfoCFConst.HONNIN_SELECT_09, X31CWebConst.DATABEAN_GET_VALUE);
		//「IT2-2012-0001949」対応　本人確認情報の変更 <<<

		if (JFUStrConst.CD00714_1.equals(setHonninSelect))
		{
			bean.sendMessageString(FUW00927SFConst.HNIN_CFM_ATICLE, X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon.getDispText(
					JFUScreenConst.SCREEN_ID_FUW00927, "028"));
		}
		else if (JFUStrConst.CD00714_2.equals(setHonninSelect))
		{
			bean.sendMessageString(FUW00927SFConst.HNIN_CFM_ATICLE, X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon.getDispText(
					JFUScreenConst.SCREEN_ID_FUW00927, "029"));
		}
		else if (JFUStrConst.CD00714_3.equals(setHonninSelect))
		{
			//「IT2-2012-0001949」対応　本人確認情報の変更 >>>
			bean.sendMessageString(FUW00927SFConst.HNIN_CFM_ATICLE, X31CWebConst.DATABEAN_SET_VALUE, bn4.sendMessageString(
					CommonInfoCFConst.HONNIN_DETAIL_09, X31CWebConst.DATABEAN_GET_VALUE));
			//「IT2-2012-0001949」対応　本人確認情報の変更 <<<
		}

		// ご利用場所設置位置・ご利用場所の形態
		bean.sendMessageString(FUW00927SFConst.SETPLACE_FORM, X31CWebConst.DATABEAN_SET_VALUE, bnRiyobashoinfo.sendMessageString(
				CommonInfoCFConst.SETPLACE_FORM_MNG_08, X31CWebConst.DATABEAN_GET_VALUE));

		// ご利用場所設置位置・お住まいの階数
		bean.sendMessageString(FUW00927SFConst.SETPLACE_FLR, X31CWebConst.DATABEAN_SET_VALUE, bnRiyobashoinfo.sendMessageString(
				CommonInfoCFConst.SETPLACE_FLR_MNG_08, X31CWebConst.DATABEAN_GET_VALUE));

		// ご利用場所設置位置・住所番地
		bean.sendMessageString(FUW00927SFConst.SETPLACE_BNCHI, X31CWebConst.DATABEAN_SET_VALUE, bnRiyobashoinfo.sendMessageString(
				CommonInfoCFConst.SETPLACE_BNCHI_MNG_08, X31CWebConst.DATABEAN_GET_VALUE));

		// 連絡先選択
		rrksChoice = bn4.sendMessageString(CommonInfoCFConst.RRKS_CHOICE_09, X31CWebConst.DATABEAN_GET_VALUE);
		if (RRKS_CHOICE_1.equals(rrksChoice))
		{
			bean.sendMessageString(FUW00927SFConst.RRKS_CHOICE, X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon.getDispText(
					JFUScreenConst.SCREEN_ID_FUW00927, "011"));
		}
		else if (RRKS_CHOICE_2.equals(rrksChoice))
		{
			bean.sendMessageString(FUW00927SFConst.RRKS_CHOICE, X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon.getDispText(
					JFUScreenConst.SCREEN_ID_FUW00927, "012"));
		}
		else if (RRKS_CHOICE_3.equals(rrksChoice))
		{
			bean.sendMessageString(FUW00927SFConst.RRKS_CHOICE, X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon.getDispText(
					JFUScreenConst.SCREEN_ID_FUW00927, "013"));
		}

		// 宅内調査のアポ架電希望
		takcho_apo_kaden_kibo = bnElseinfo.sendMessageString(CommonInfoCFConst.TAKCHO_APO_KADEN_KIBO_UM_SCREEN_18, X31CWebConst.DATABEAN_GET_VALUE);
		bean.sendMessageString(FUW00927SFConst.TAKCHO_APO_KADEN_KIBO_UM_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.DISP_FLG_1);
		if (JFUStrConst.TAKCHO_APO_KADEN_KIBO_UM_SCREEN_ARI.equals(takcho_apo_kaden_kibo))
		{
			bean.sendMessageString(FUW00927SFConst.TAKCHO_APO_KADEN_KIBO_UM_SCREEN, X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon.getDispText(
					JFUScreenConst.SCREEN_ID_FUW00927, "TAKCHO_APO_KADEN_KIBO_UM_DISP_ARI"));
		}
		else if (JFUStrConst.TAKCHO_APO_KADEN_KIBO_UM_SCREEN_NASI.equals(takcho_apo_kaden_kibo))
		{
			bean.sendMessageString(FUW00927SFConst.TAKCHO_APO_KADEN_KIBO_UM_SCREEN, X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon.getDispText(
					JFUScreenConst.SCREEN_ID_FUW00927, "TAKCHO_APO_KADEN_KIBO_UM_DISP_NASI"));
		}
		else
		{
			bean.sendMessageString(FUW00927SFConst.TAKCHO_APO_KADEN_KIBO_UM_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.DISP_FLG_0);
			bean.sendMessageString(FUW00927SFConst.TAKCHO_APO_KADEN_KIBO_UM_SCREEN, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
		}

		// FAX連絡ご希望
		faxKibo = bn4.sendMessageString(CommonInfoCFConst.FAX_KIBO_09, X31CWebConst.DATABEAN_GET_VALUE);
		if (MISENTAKU.equals(faxKibo) || faxKibo.length() == 0)
		{
			bean.sendMessageString(FUW00927SFConst.FAX_KIBO, X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon.getDispText(
					JFUScreenConst.SCREEN_ID_FUW00927, "015"));
		}
		else if (SENTAKU.equals(faxKibo))
		{
			bean.sendMessageString(FUW00927SFConst.FAX_KIBO, X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon.getDispText(
					JFUScreenConst.SCREEN_ID_FUW00927, "014"));
		}

		// 利用中のネット回線
		String useNetKsn = bnUseKaisenKikiInfo.sendMessageString(CommonInfoCFConst.USE_NET_KSN_68, X31CWebConst.DATABEAN_GET_VALUE);
		if (!isNullOrEmpty(useNetKsn))
		{
			String dspUseNetKsn = JFUStrConst.EMPTY;
			if (JFUStrConst.USE_NET_KSN_HIKARI.equals(useNetKsn))
			{
				dspUseNetKsn = JFUWebCommon.getDispText("", USE_NET_KSN_HIKARI);
			}
			else if (JFUStrConst.USE_NET_KSN_SONOTA.equals(useNetKsn))
			{
				dspUseNetKsn = JFUWebCommon.getDispText("", USE_NET_KSN_SONOTA);
			}
			bean.sendMessageString(FUW00927SFConst.USE_NET_KSN, X31CWebConst.DATABEAN_SET_VALUE, dspUseNetKsn);
		}

		// 利用中の機器の設置場所変更予定
		String kikiPlaceChg = bnUseKaisenKikiInfo.sendMessageString(CommonInfoCFConst.KIKI_PLACE_CHG_68, X31CWebConst.DATABEAN_GET_VALUE);
		if (!isNullOrEmpty(kikiPlaceChg))
		{
			String dspKikiPlaceChg = JFUStrConst.EMPTY;
			if (JFUStrConst.KIKI_PLACE_CHG_NO.equals(kikiPlaceChg))
			{
				dspKikiPlaceChg = JFUWebCommon.getDispText("", KIKI_PLACE_CHG_NO);
			}
			else if (JFUStrConst.KIKI_PLACE_CHG_YES.equals(kikiPlaceChg))
			{
				dspKikiPlaceChg = JFUWebCommon.getDispText("", KIKI_PLACE_CHG_YES);
			}
			bean.sendMessageString(FUW00927SFConst.KIKI_PLACE_CHG, X31CWebConst.DATABEAN_SET_VALUE, dspKikiPlaceChg);
		}

		// 宅内調査と工事の同日実施
		String tkcKojiSame = bnUseKaisenKikiInfo.sendMessageString(CommonInfoCFConst.TKC_KOJI_SAME_68, X31CWebConst.DATABEAN_GET_VALUE);
		if (!isNullOrEmpty(tkcKojiSame))
		{
			String dspTkcKojiSame = JFUStrConst.EMPTY;
			if (JFUStrConst.TKC_KOJI_SAME_NO.equals(tkcKojiSame))
			{
				dspTkcKojiSame = JFUWebCommon.getDispText("", TKC_KOJI_SAME_NO);
			}
			else if (JFUStrConst.TKC_KOJI_SAME_YES.equals(tkcKojiSame))
			{
				dspTkcKojiSame = JFUWebCommon.getDispText("", TKC_KOJI_SAME_YES);
			}
			bean.sendMessageString(FUW00927SFConst.TKC_KOJI_SAME, X31CWebConst.DATABEAN_SET_VALUE, dspTkcKojiSame);
		}
	}

	/**
	 * DataMap作成 <br>
	 * 
	 * @return boolean true(固定)
	 * @param mapper
	 * @param paramBean
	 * @param dataMap
	 * @throws Exception
	 */
	private boolean callSetdatamap(FUSV0152_FUSV0152OPDBMapper mapper, X31SDataBeanAccess[] paramBean, HashMap dataMap) throws Exception
	{
		String mskm_kbn = ""; // 申込区分
		String kyk_sbt = ""; // 契約種別
		String svc_net = ""; // 選択サービス(ネット)
		String svc_tel = ""; // 選択サービス(電話)
		String svc_tv = ""; // 選択サービス(テレビ)
		String svc_mob = ""; // 選択サービス(モバイル)
		String sysid = ""; // SYSID
		String newDchskmcd = ""; // 新規申込用データ抽出項目コード

		X31SDataBeanAccessArray arraybean = null;

		// 共有フォームBean取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		// WEB新規情報
		X31SDataBeanAccess bn = getWebInfo(commoninfoBean);
		// 契約サービス
		X31SDataBeanAccess bn2 = getKeiyakusvcinfo(bn);
		// 光TV
		X31SDataBeanAccess bnEOTV = getEotv(bn);
		// モバイル
		X31SDataBeanAccess bn3 = getMobile(bn);

		// リダイレクト情報
		X31SDataBeanAccess redirectinfo = getRedirectinfo(bn);

		// 汎用コードリストから適用不可のデータを取り除く
		removeInvalidDataFromHanyoCdList(bn);

		// 申込区分（0:未定、1:新規申込、2:追加申込）
		mskm_kbn = bn.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_GET_VALUE);
		// 契約種別（1:個人、2:法人）
		kyk_sbt = bn.sendMessageString(CommonInfoCFConst.KEI_SBT_06, X31CWebConst.DATABEAN_GET_VALUE);

		DEBUG_LOG.info("----- FUW00927_callSetdatamap_Start -----");

		// 共有フォームBean.SYSID取得
		sysid = bn.sendMessageString(CommonInfoCFConst.SYSID_06, X31CWebConst.DATABEAN_GET_VALUE);

		// WiFiセット申し込み対応 2012/11/09 h.iwamoto START
		mapper.setJFUCustCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

		// システム日付
		String opeDate = JFUWebCommon.getOpeDate(this, null);
		String opeDateTime = JFUWebCommon.getOpeDateTime(this, null);
		
		// 自動登録キャンペーンリストの登録判定フラグを設定する。
		JFUWebCommon.autoCampaignAddJg(bn, opeDate);

		// 個人契約の場合
		if (JFUStrConst.KEI_SBT_KOJINCD.equals(kyk_sbt))
		{
			// お客様登録
			mapper.setECK0021D010(paramBean, dataMap, JPCModelConstant.FUNC_CD_1, opeDate);
		}
		else if (JFUStrConst.KEI_SBT_HOJINCD.equals(kyk_sbt))
		{
			// 法人登録
			mapper.setECK0031D010(paramBean, dataMap, JPCModelConstant.FUNC_CD_1, opeDate);
		}
		// 連絡先登録
		mapper.setECK0201D010(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

		// WiFiセット申し込み対応 2012/11/09 h.iwamoto END

		// 申込書番号採番
		mapper.setEKK0021C013(paramBean, dataMap, JPCModelConstant.FUNC_CD_1, opeDate);
		// ANK-1199-00-00 自動採番対応
		mapper.setJFUMskmshoDtlSibnCC(paramBean, dataMap);
		// 申込登録
		mapper.setEKK0011D010(paramBean, dataMap, JPCModelConstant.FUNC_CD_1, opeDate, opeDateTime, this);

		// サービス情報取得
		// 選択サービス(ネット)
		svc_net = bn2.sendMessageString(CommonInfoCFConst.SELECT_SVC_NET_10, X31CWebConst.DATABEAN_GET_VALUE);
		// 選択サービス(テレビ)
		svc_tv = bn2.sendMessageString(CommonInfoCFConst.SELECT_SVC_TV_10, X31CWebConst.DATABEAN_GET_VALUE);
		// 選択サービス(電話)
		svc_tel = bn2.sendMessageString(CommonInfoCFConst.SELECT_SVC_TEL_10, X31CWebConst.DATABEAN_GET_VALUE);
		// モバイルコース
		svc_mob = bn3.sendMessageString(CommonInfoCFConst.MOBILE_COURSE_14, X31CWebConst.DATABEAN_GET_VALUE);

		// 請求契約登録
		mapper.setEKK0491D010(paramBean, dataMap, JPCModelConstant.FUNC_CD_1, JFUWebCommon.getOpeDate(this, null)); // -----ST2-2012-0001382(再修正) 2012/08/05 h.iwamoto-----

		// 選択サービス(ネット)選択
		if (SENTAKU.equals(svc_net))
		{
			// サービス契約<eo光ネット>登録
			mapper.setEKK0091D010(paramBean, dataMap, JPCModelConstant.FUNC_CD_1, opeDate);
			// サービス契約内訳<eo光ネット>登録
			mapper.setEKK0171D010(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
			// 機器提供サービス契約登録
			mapper.setEKK0341D01001(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
			// オプションサービス契約＜ISP＞登録
			mapper.setEKK0361D010(paramBean, dataMap, JPCModelConstant.FUNC_CD_1, OP_SVC_NET);
			// 割引サービス契約<月額費用割引>登録
			//mapper.setEKK0471D010(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
			// クーポンコードを「未使用」から「使用済」への更新

			String couponCd = redirectinfo.sendMessageString(CommonInfoCFConst.COUPON_CD_17, X31CWebConst.DATABEAN_GET_VALUE);
			if (!JFUWebCommon.isNull(couponCd))
			{
				// 紹介一意照会
				mapper.setEKK0311A010(dataMap, couponCd);
				// 紹介更新
				mapper.setEKK0311C010(dataMap, couponCd);
			}
		}

		// 選択サービス(電話)選択
		if (SENTAKU.equals(svc_tel))
		{
			// サービス契約<eo光電話>登録
			mapper.setEKK0111D010(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
			// サービス契約内訳<eo光電話>登録
			mapper.setEKK0191D010(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
			// IT1-2013-0000715 >>>
			// ＶＤＳＬマンションの場合、ネット非申込時にモデムレンタル機器が必要
			// 機器提供サービス契約登録
			if (!SENTAKU.equals(svc_net))
			{
				mapper.setEKK0341D01001(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
			}
			// IT1-2013-0000715 <<<E
			//TODO 機器オプションサービス契約一覧照会(フロント)
			mapper.setEKK2811B503(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
			// 機器提供サービス契約一覧照会
			mapper.setEKK0341B002(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
			// 機器提供サービス契約キャンセル
			mapper.setEKK0341C330(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
			// 機器提供サービス契約登録
			mapper.setEKK0341D01002(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
// ANK-3518-00-00 ADD START
			// 機器提供サービス契約一覧照会(サービス契約回線内訳)
			mapper.setEKK0341B504(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
// ANK-3518-00-00 ADD END
			// 機器オプションサービス契約登録
			mapper.setEKK2811D010(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
			// 機器オプションサービス契約登録
			mapper.setEKK2811D01002(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
			// 申込_代理店登録
			//mapper.setEKK0071D010(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
			// 業務パラメータ管理一意照会
			mapper.setEZM0321A010(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
			// オプションサービス契約<eo光電話>登録
			mapper.setEKK0371D010(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		}

		// 選択サービス(テレビ)選択
		if (SENTAKU.equals(svc_tv))
		{
			// サービス契約<eo光TV>登録
			mapper.setEKK0101D010(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

// ANK-4592-00-00 MOD START
			// テレビコース(eo光テレビ入力)が1:地デジ・BS2以外かつ、3:地デジ・BSコース　スターチャンネルセットかつ、4:CSプレミアムかつ、5;CSベーシック以外の場合
			if (!JFUStrConst.EO_TV_COURSE_BS.equals(bnEOTV.sendMessageString(CommonInfoCFConst.EO_TV_COURSE_13, X31CWebConst.DATABEAN_GET_VALUE))
					&& !JFUStrConst.EO_TV_COURSE_BS_STAR.equals(bnEOTV.sendMessageString(CommonInfoCFConst.EO_TV_COURSE_13, X31CWebConst.DATABEAN_GET_VALUE))
					&& !JFUStrConst.EO_TV_COURSE_CS_PRE.equals(bnEOTV.sendMessageString(CommonInfoCFConst.EO_TV_COURSE_13, X31CWebConst.DATABEAN_GET_VALUE))
					&& !JFUStrConst.EO_TV_COURSE_CS_BAS.equals(bnEOTV.sendMessageString(CommonInfoCFConst.EO_TV_COURSE_13, X31CWebConst.DATABEAN_GET_VALUE)))
			{
// ANK-4592-00-00 MOD END
				// サービス契約内訳<eo光TV>登録
				mapper.setEKK0181D010(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
				// 機器提供サービス契約登録
				mapper.setEKK0341D01003(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
			}
		}

		// 選択サービス(モバイル)選択保留
		if (svc_mob.length() > 0 && !JFUStrConst.MOBILE_COURSE_NON.equals(svc_mob))
		{
			// サービス契約<eoモバイル>登録
			mapper.setEKK0121D010(paramBean, dataMap, JPCModelConstant.FUNC_CD_1, JFUWebCommon.getOpeDate(this, null));
			// サービス契約内訳<eoモバイル>登録
			mapper.setEKK0201D010(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
			// 機器提供サービス契約登録
			mapper.setEKK0341D01004(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
			// オプションサービス契約＜ISP＞登録
			mapper.setEKK0361D010(paramBean, dataMap, JPCModelConstant.FUNC_CD_1, OP_SVC_MOB);
		}

		// 代理店登録CC 2012/9/27 Otsuka
		mapper.setJFUAddAgntCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1, JFUScreenConst.SCREEN_ID_FUW00927);

		// 利用場所情報登録共通部品登録
		mapper.setEKK0251D010(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		// 回線対象サービス契約登録
		mapper.setEKK0241D010(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

		// 選択サービス(ネット)選択か選択サービス(電話)選択の場合
		if (SENTAKU.equals(svc_net) || SENTAKU.equals(svc_tel))
		{
// ANK-4427-00-00 MOD START
			if(!(JFUWebCommon.isTypen(commoninfoBean))){
				// 機器提供サービス契約登録(ONU)
				mapper.setEKK0341D01005(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
			}
// ANK-4427-00-00 MOD END
		}
		// 選択サービス(テレビ)選択の場合
		if (SENTAKU.equals(svc_tv))
		{
			// 機器提供サービス契約登録(VONU)
			mapper.setEKK0341D01006(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		}
// ANK-3518-00-00 ADD START
		// サービス契約グループ設定登録
		mapper.setEKK2961D010(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
// ANK-3518-00-00 ADD END
		// 進捗登録
		mapper.setEKK1091D010(paramBean, dataMap, JPCModelConstant.FUNC_CD_1, JFUWebCommon.getOpeDateTimeStamp(this, null));
		// 利用場所住所情報分割処理
		mapper.setFUSV015211CC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		// ご契約者住所情報分割処理
		mapper.setFUSV015212CC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

		// TODO フロント）馬場さんが対応します。
		// データ抽出項目コード登録CC
		mapper.setFUSV015217CC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1, true);
		// 割引サービスコード登録CC
		mapper.setFUSV015222CC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		// 割引サービス自動適用CC
		mapper.setFUSV015221CC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		// 2013/03/27 Fujiwara Add Start
		// 割引サービス自動適用
		mapper.setFUSV015223CC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		// スターチャンネルセット割登録
		mapper.setFUSV015229CC(dataMap, JPCModelConstant.FUNC_CD_1, opeDate);
		// スターチャンネルセット割実行判定
		mapper.setFUSV015229ReqChk(dataMap, bnEOTV.sendMessageString(CommonInfoCFConst.EO_TV_COURSE_13, X31CWebConst.DATABEAN_GET_VALUE));
		// 申込時登録不可契約予約登録
		mapper.setFUSV015230CC(dataMap, JPCModelConstant.FUNC_CD_1, opeDate);
		// 申込時登録不可契約予約登録実行判定
		mapper.setFUSV015230ReqChk(dataMap, bnEOTV.sendMessageString(CommonInfoCFConst.EO_TV_COURSE_13, X31CWebConst.DATABEAN_GET_VALUE));
		// 2013/03/27 Fujiwara Add End
		// 請求オプションサービス契約登録
		//		mapper.setEKK0441D010(paramBean, dataMap, JPCModelConstant.FUNC_CD_1); // 2013/04/16 Otsuka del
		// 申込画面入力支援ワーク登録
		mapper.setEKK2201D010(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

		// IT2-2012-1790 2012/11/26 Otsuka start

		// 本申込の場合
		if (JFUStrConst.MSKM_KBN_HON.equals(bn.sendMessageString(CommonInfoCFConst.MSKM_KBN2_06, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 仮申込に変更する
			bn.sendMessageString(CommonInfoCFConst.MSKM_KBN2_06, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.MSKM_KBN_KARI);
			this.kariFlg = true;
		}

		// ANK-0373-00-00(申込書断面データ保持）対応
		JFUWebCommon.setMskmDmenXmlMapWebNew(dataMap, this);

		// 他事業者割引契約申込登録
		mapper.setFUSV015225SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

		// IT2-2012-1790 2012/11/26 Otsuka end
		// 工事費割賦契約登録
// ANK-3951-00-00 MOD START
//		mapper.setFUSV015233SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setFUSV015233SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1, opeDate);
// ANK-3951-00-00 MOD END
		// 工事費割賦契約登録実行判定
		mapper.setFUSV015233ReqChk(dataMap, bn.sendMessageString(CommonInfoCFConst.STDARD_KOJIHI_PAYWAY_06, X31CWebConst.DATABEAN_GET_VALUE));

		DEBUG_LOG.info("----- FUW00927_callSetdatamap_End -----");

		return true;
	}

	/**
	 * サービスの呼び出し処理（登録画面エラー情報格納機能つき） <br>
	 * 
	 * @return boolean true(固定)
	 * @param paramMap
	 * @param dataMap
	 * @param outputMap
	 * @param pageErrInfo
	 * @throws Exception
	 */
	private boolean callService(HashMap paramMap, HashMap dataMap, HashMap outputMap) throws Exception
	{
		X31CMessageResult msgResult = null;
		try
		{
			msgResult = invokeService(paramMap, dataMap, outputMap);
		}
		catch (JCCWebServiceException jccexception)
		{
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}
		return true;
	}

	/**
	 * データ登録後、共有フォームBeanに値をセットします。 <br>
	 * 
	 * @return boolean true(固定)
	 * @param mapper
	 * @param paramBean
	 * @param dataMap
	 * @throws Exception
	 */
	private boolean callGetdatamap(FUSV0152_FUSV0152OPDBMapper mapper, X31SDataBeanAccess[] paramBean, HashMap dataMap) throws Exception
	{
		String mskm_kbn = ""; // 申込区分
		String kyk_sbt = ""; // 契約種別
		String svc_net = ""; // 選択サービス(ネット)
		String svc_tel = ""; // 選択サービス(電話)
		String svc_tv = ""; // 選択サービス(テレビ)
		String svc_mob = ""; // 選択サービス(モバイル)
		String sysid = ""; // SYSID

		// システム日付
		String opeDate = JFUWebCommon.getOpeDate(this, null);

		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		// WEB新規情報
		X31SDataBeanAccess bn = getWebInfo(commoninfoBean);
		// 契約サービス
		X31SDataBeanAccess bn2 = getKeiyakusvcinfo(bn);
		// 光TV
		X31SDataBeanAccess bnEOTV = getEotv(bn);
		// モバイル
		X31SDataBeanAccess bn3 = getMobile(bn);
		// その他情報
		X31SDataBeanAccess bnElseinfo = getElseInfo(bn);

		// 申込区分（0:未定、1:新規申込、2:追加申込）
		mskm_kbn = bn.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_GET_VALUE);
		// 契約種別（1:個人、2:法人）
		kyk_sbt = bn.sendMessageString(CommonInfoCFConst.KEI_SBT_06, X31CWebConst.DATABEAN_GET_VALUE);
		// SYSID
		sysid = bn.sendMessageString(CommonInfoCFConst.SYSID_06, X31CWebConst.DATABEAN_GET_VALUE);

		// 新規申込(共有フォームBean.SYSIDが空白)の場合
		if (sysid.length() == 0)
		{
			// 契約者情報登録
			// 個人契約
			if (JFUStrConst.KEI_SBT_KOJINCD.equals(kyk_sbt))
			{
				// お客様＜個人＞登録
				mapper.getECK0021D010(paramBean, dataMap);
			}
			// 法人契約
			else if (JFUStrConst.KEI_SBT_HOJINCD.equals(kyk_sbt))
			{
				// お客様＜法人＞登録
				mapper.getECK0031D010(paramBean, dataMap);
			}
			// 連絡先登録
			mapper.getECK0201D010(paramBean, dataMap);
		}

		// 申込書採番
		mapper.getEKK0021C013(paramBean, dataMap);
		// ANK-1199-00-00 自動採番対応
		mapper.getJFUMskmshoDtlSibnCC(paramBean, dataMap);
		// 申込登録
		mapper.getEKK0011D010(paramBean, dataMap);

		// サービス情報取得
		// 選択サービス(ネット)
		svc_net = bn2.sendMessageString(CommonInfoCFConst.SELECT_SVC_NET_10, X31CWebConst.DATABEAN_GET_VALUE);
		// 選択サービス(テレビ)
		svc_tv = bn2.sendMessageString(CommonInfoCFConst.SELECT_SVC_TV_10, X31CWebConst.DATABEAN_GET_VALUE);
		// 選択サービス(電話)
		svc_tel = bn2.sendMessageString(CommonInfoCFConst.SELECT_SVC_TEL_10, X31CWebConst.DATABEAN_GET_VALUE);
		// モバイルコース
		svc_mob = bn3.sendMessageString(CommonInfoCFConst.MOBILE_COURSE_14, X31CWebConst.DATABEAN_GET_VALUE);

		// 請求契約登録
		mapper.getEKK0491D010(paramBean, dataMap);

		// 選択サービス(ネット)選択
		if (SENTAKU.equals(svc_net))
		{
			// サービス契約<eo光ネット>登録
			mapper.getEKK0091D010(paramBean, dataMap);
			// サービス契約内訳<eo光ネット>登録
			mapper.getEKK0171D010(paramBean, dataMap);
			// オプションサービス契約<ISP>登録
			mapper.getEKK0361D010(paramBean, dataMap, OP_SVC_NET);
			// 機器提供サービス契約登録
			mapper.getEKK0341D01001(paramBean, dataMap);
		}

		// 選択サービス(電話)選択
		if (SENTAKU.equals(svc_tel))
		{
			// サービス契約<eo光電話>登録
			mapper.getEKK0111D010(paramBean, dataMap);
			// サービス契約内訳<eo光電話>登録
			mapper.getEKK0191D010(paramBean, dataMap);
			// 機器提供サービス契約登録
			mapper.getEKK0341D01003(paramBean, dataMap);
			// オプションサービス契約<eo光電話>登録
			mapper.getEKK0371D010(paramBean, dataMap);
		}

		// 選択サービス(テレビ)選択
		if (SENTAKU.equals(svc_tv))
		{
			// サービス契約<eo光TV>登録
			mapper.getEKK0101D010(paramBean, dataMap);
// ANK-4592-00-00 MOD START
			// テレビコース(eo光テレビ入力)が1:地デジ・BS2以外かつ、3:地デジ・BSコース　スターチャンネルセット、4:CSプレミアムかつ、5;CSベーシック以外の場合
			if (!JFUStrConst.EO_TV_COURSE_BS.equals(bnEOTV.sendMessageString(CommonInfoCFConst.EO_TV_COURSE_13, X31CWebConst.DATABEAN_GET_VALUE))
					&& !JFUStrConst.EO_TV_COURSE_BS_STAR.equals(bnEOTV.sendMessageString(CommonInfoCFConst.EO_TV_COURSE_13, X31CWebConst.DATABEAN_GET_VALUE))
					&& !JFUStrConst.EO_TV_COURSE_CS_PRE.equals(bnEOTV.sendMessageString(CommonInfoCFConst.EO_TV_COURSE_13, X31CWebConst.DATABEAN_GET_VALUE))
					&& !JFUStrConst.EO_TV_COURSE_CS_BAS.equals(bnEOTV.sendMessageString(CommonInfoCFConst.EO_TV_COURSE_13, X31CWebConst.DATABEAN_GET_VALUE)))
			{
// ANK-4592-00-00 MOD END
				// サービス契約内訳<eo光TV>登録
				mapper.getEKK0181D010(paramBean, dataMap);
				// 機器提供サービス契約登録
				mapper.getEKK0341D01002(paramBean, dataMap);
			}
		}

		// 選択サービス(モバイル)選択
		if (svc_mob.length() > 0 && !JFUStrConst.MOBILE_COURSE_NON.equals(svc_mob))
		{
			// サービス契約<eoモバイル>登録
			mapper.getEKK0121D010(paramBean, dataMap);
			// サービス契約内訳<eoモバイル>登録
			mapper.getEKK0201D010(paramBean, dataMap);
			// オプションサービス契約<ISP>登録
			mapper.getEKK0361D010(paramBean, dataMap, OP_SVC_MOB);
			// 機器提供サービス契約登録
			mapper.getEKK0341D01004(paramBean, dataMap);
		}

		// 利用場所情報登録共通部品登録
		mapper.getEKK0251D010(paramBean, dataMap);

		// 選択サービス(ネット)選択か選択サービス(電話)選択の場合
		if (SENTAKU.equals(svc_net) || SENTAKU.equals(svc_tel))
		{
			// 機器提供サービス契約登録(ONU)
			mapper.getEKK0341D01005(paramBean, dataMap);
		}
		// 選択サービス(テレビ)選択の場合
		if (SENTAKU.equals(svc_tv))
		{
			// 機器提供サービス契約登録(VONU)
			mapper.getEKK0341D01006(paramBean, dataMap);
		}

		// 代理店登録CC 2012/09/27 Otsuka
		mapper.getJFUAddAgntCC(paramBean, dataMap);

		// 進捗登録
		mapper.getEKK1091D010(paramBean, dataMap);

		// 申込断面登録
		mapper.getMskmDmenXmlMap(paramBean, dataMap);

		// その他情報.印刷用受付年月日時分（登録）
		bnElseinfo.sendMessageString(CommonInfoCFConst.PRINT_REG_DTM_18, X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon.getOpeDateTime(this, null));

// ANK-3473-00-00 ADD START
		// データ抽出項目設定条件
		mapper.getFUSV015217CC(paramBean, dataMap, false, false, opeDate);
// ANK-3473-00-00 ADD END

		return true;
	}

	// 2012/04/21 全戸一括物件申込対応(W09024) START

	/**
	 * 次へボタン押下時に共有フォームBeanの割引サービス情報を削除する<br>
	 * 
	 * @param webInfoBean
	 */
	private void callClearData(X31SDataBeanAccess webInfoBean)
	{
		// リダイレクト情報
		X31SDataBeanAccess bnRedirectinfo = getRedirectinfo(webInfoBean);
		// その他情報
		X31SDataBeanAccess bnElseinfo = getElseInfo(webInfoBean);

		// 割引サービス情報の削除処理
		// リダイレクト情報.新規申込用割引サービスコード
		bnRedirectinfo.sendMessage(CommonInfoCFConst.NEW_WRIB_SVC_CD_17, X31CWebConst.DATABEAN_CLEAR);
		// リダイレクト情報.新規申込用取扱コード(割引)
		bnRedirectinfo.sendMessage(CommonInfoCFConst.NEW_TRAT_CD_WRIB_17, X31CWebConst.DATABEAN_CLEAR);
		// リダイレクト情報.追加申込用割引サービスコード
		bnRedirectinfo.sendMessage(CommonInfoCFConst.ADD_WRIB_SVC_CD_17, X31CWebConst.DATABEAN_CLEAR);
		// リダイレクト情報.追加申込用取扱コード(割引)
		bnRedirectinfo.sendMessage(CommonInfoCFConst.ADD_TRAT_CD_WRIB_17, X31CWebConst.DATABEAN_CLEAR);
		// リダイレクト情報.新規申込用データ抽出項目コード
		bnRedirectinfo.sendMessage(CommonInfoCFConst.NEW_DCHSKM_CD_17, X31CWebConst.DATABEAN_CLEAR);
		// リダイレクト情報.新規申込用取扱コード(汎用)
		bnRedirectinfo.sendMessage(CommonInfoCFConst.NEW_TRAT_CD_DCHSKM_17, X31CWebConst.DATABEAN_CLEAR);
		// リダイレクト情報.追加申込用データ抽出項目コード
		bnRedirectinfo.sendMessage(CommonInfoCFConst.ADD_DCHSKM_CD_17, X31CWebConst.DATABEAN_CLEAR);
		// リダイレクト情報.追加申込用取扱コード(汎用)
		bnRedirectinfo.sendMessage(CommonInfoCFConst.ADD_TRAT_CD_DCHSKM_17, X31CWebConst.DATABEAN_CLEAR);
		// リダイレクト情報.紹介用割引サービスコード
		bnRedirectinfo.sendMessage(CommonInfoCFConst.INTR_WRIB_SVC_CD_17, X31CWebConst.DATABEAN_CLEAR);
		// その他情報.汎用コード
		bnElseinfo.sendMessage(CommonInfoCFConst.HANYO_CD_18, X31CWebConst.DATABEAN_CLEAR);
	}

	// 2012/04/21 全戸一括物件申込対応(W09024) END

	/**
	 * WEB新規情報
	 * 
	 * @param bean
	 * @return bn
	 */
	@SuppressWarnings("unchecked")
	private X31SDataBeanAccess getWebInfo(X31SDataBeanAccess bean)
	{

		X31SDataBeanAccessArray arr = bean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn = arr.getDataBean(0);

		return bn;
	}

	/**
	 * 契約者情報
	 * 
	 * @param bn
	 * @return bn1
	 */
	@SuppressWarnings("unchecked")
	private X31SDataBeanAccess getKeiyakuinfo(X31SDataBeanAccess bn)
	{

		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.KEIYAKUSHA_INFO);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * 契約サービス情報
	 * 
	 * @param bn
	 * @return bn1
	 */
	@SuppressWarnings("unchecked")
	private X31SDataBeanAccess getKeiyakusvcinfo(X31SDataBeanAccess bn)
	{

		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.KEIYAKU_SVC_INFO);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * 光ネット
	 * 
	 * @param bn
	 * @return bn1
	 */
	@SuppressWarnings("unchecked")
	private X31SDataBeanAccess getEonet(X31SDataBeanAccess bn)
	{

		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.EONET);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * 光TV
	 * 
	 * @param bn
	 * @return bn1
	 */
	@SuppressWarnings("unchecked")
	private X31SDataBeanAccess getEotv(X31SDataBeanAccess bn)
	{

		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.EOTV);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * 光電話
	 * 
	 * @param bn
	 * @return bnEotel[]
	 */
	@SuppressWarnings("unchecked")
	private X31SDataBeanAccess[] getEotel(X31SDataBeanAccess bn)
	{
		X31SDataBeanAccess[] bnEotel = null;
		X31SDataBeanAccessArray aryEoTel = bn.getDataBeanArray(CommonInfoCFConst.EOTEL);
		// 光電話２レコード作成
		int cntTel = aryEoTel.getCount();
		if (cntTel == 0)
		{
			bnEotel = new X31SDataBeanAccess[2];
			for (int i = 0; i < 2; i++)
			{
				aryEoTel.addDataBean();
				bnEotel[i] = aryEoTel.getDataBean(i);
			}
		}
		else
		{
			bnEotel = new X31SDataBeanAccess[cntTel];
			for (int i = 0; i < cntTel; i++)
			{
				bnEotel[i] = aryEoTel.getDataBean(i);
			}
		}
		return bnEotel;
	}

	/**
	 * モバイル情報
	 * 
	 * @param bn
	 * @return bn1
	 */
	@SuppressWarnings("unchecked")
	private X31SDataBeanAccess getMobile(X31SDataBeanAccess bn)
	{

		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.EOMOBILE);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * マンション情報
	 * 
	 * @param bn
	 * @return bn1
	 */
	@SuppressWarnings("unchecked")
	private X31SDataBeanAccess getMansioninfo(X31SDataBeanAccess bn)
	{

		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.MANSION_INFO);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * リダイレクト情報
	 * 
	 * @param bn
	 * @return bn1
	 */
	@SuppressWarnings("unchecked")
	private X31SDataBeanAccess getRedirectinfo(X31SDataBeanAccess bn)
	{

		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.REDIRECT_INFO);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * 支払い方法情報
	 * 
	 * @param bn
	 * @return bn1
	 */
	@SuppressWarnings("unchecked")
	private X31SDataBeanAccess getPywyInfo(X31SDataBeanAccess bn)
	{

		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.PAYWAY_INFO);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * 利用場所情報
	 * 
	 * @param bean
	 * @param bn
	 * @return bn1
	 */
	@SuppressWarnings("unchecked")
	private X31SDataBeanAccess getRiyobasyoinfo(X31SDataBeanAccess bn)
	{

		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.RIYOBASHO_INFO);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * ＰＡＳＣＯ情報
	 * 
	 * @param bn
	 * @return bn1
	 */
	@SuppressWarnings("unchecked")
	private X31SDataBeanAccess getPasco(X31SDataBeanAccess bn)
	{

		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.PASCO_INFO);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * その他情報
	 * 
	 * @param bn
	 * @return bn1
	 */
	@SuppressWarnings("unchecked")
	private X31SDataBeanAccess getElseInfo(X31SDataBeanAccess bn)
	{

		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.ELSE_INFO);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * 遷移画面パターン判定処理
	 * 
	 * @param bn
	 * @return bn1
	 */
	@SuppressWarnings("unchecked")
	private X31SDataBeanAccess getNextScreenInfo(X31SDataBeanAccess bn)
	{

		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.ELSE_INFO);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * 利用回線・機器情報Beanを取得する
	 * 
	 * @param bn WEB新規情報Bean
	 * @return 利用回線・機器情報Bean
	 */
	private X31SDataBeanAccess getUseKaisenKikiInfo(X31SDataBeanAccess bn)
	{
		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.USE_KAISEN_KIKI_INFO);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * 契約者情報・氏名を取得する
	 * 
	 * <br>
	 * 
	 * @param keiyakushaInfoBean
	 * @return String
	 */
	public String getKshNm(X31SDataBeanAccess keiyakushaInfoBean)
	{
		StringBuilder sb = new StringBuilder();

		sb.append(keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSHNM_SEI_09, X31CWebConst.DATABEAN_GET_VALUE));
		sb.append(ZENKAKU_SPACE);
		sb.append(keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSHNM_NM_09, X31CWebConst.DATABEAN_GET_VALUE));

		return sb.toString();
	}

	/**
	 * サービス名を取得する
	 * 
	 * <br>
	 * 
	 * @param webNewInfoBean
	 * @return boolean
	 * @throws Exception
	 */
	public String[] getSrviceNm(X31SDataBeanAccess webNewInfoBean) throws Exception
	{

		String svc_net = ""; // 選択サービス(ネット)
		String svc_tel = ""; // 選択サービス(電話)
		String svc_tv = ""; // 選択サービス(テレビ)
		String svc_mob = ""; // 選択サービス(モバイル)
		String mskmKsn = "";// 申込回線サービス
		String mskmMnsType = "";// 申込マンションタイプ
		String netCourse = "";// 光ネットコース
		String netSvcNm = "";// 光ネットサービス名
		Integer svcCnt = 0;// サービスカウント

		// 契約サービス
		X31SDataBeanAccess bnKykSrv = getKeiyakusvcinfo(webNewInfoBean);
		// ネット
		X31SDataBeanAccess bnNet = getEonet(webNewInfoBean);
		// モバイル
		X31SDataBeanAccess bnMob = getMobile(webNewInfoBean);
		// マンション情報
		X31SDataBeanAccess bnMansion = getMansioninfo(webNewInfoBean);

		// サービス情報取得
		// 選択サービス(ネット)
		svc_net = bnKykSrv.sendMessageString(CommonInfoCFConst.SELECT_SVC_NET_10, X31CWebConst.DATABEAN_GET_VALUE);
		// 選択サービス(テレビ)
		svc_tv = bnKykSrv.sendMessageString(CommonInfoCFConst.SELECT_SVC_TV_10, X31CWebConst.DATABEAN_GET_VALUE);
		// 選択サービス(電話)
		svc_tel = bnKykSrv.sendMessageString(CommonInfoCFConst.SELECT_SVC_TEL_10, X31CWebConst.DATABEAN_GET_VALUE);
		// モバイルコース
		svc_mob = bnMob.sendMessageString(CommonInfoCFConst.MOBILE_COURSE_14, X31CWebConst.DATABEAN_GET_VALUE);

		// 提供方式パターンコード
		String teikyo_hoshiki = bnMansion.sendMessageString(CommonInfoCFConst.TEIKYO_HOSHIKI_PTN_CD_16, X31CWebConst.DATABEAN_GET_VALUE);

		// 選択サービス(ネット)選択
		if (SENTAKU.equals(svc_net))
		{
			svcCnt = svcCnt + 1;
		}
		// 選択サービス(電話)選択
		if (SENTAKU.equals(svc_tel))
		{
			svcCnt = svcCnt + 1;
		}
		// 選択サービス(テレビ)選択
		if (SENTAKU.equals(svc_tv))
		{
			svcCnt = svcCnt + 1;
		}
		// 選択サービス(モバイル)選択
		if (svc_mob.length() > 0)
		{
			if (svc_mob.equals(JFUStrConst.MOBILE_COURSE_3G_21M) || svc_mob.equals(JFUStrConst.MOBILE_COURSE_3G_7_2M)
					|| svc_mob.equals(JFUStrConst.MOBILE_COURSE_WIFI) || svc_mob.equals(JFUStrConst.MOBILE_COURSE_WIMAX))
			{
				svc_mob = SENTAKU;
			}
			else
			{
				svc_mob = MISENTAKU;
			}
		}
		else
		{
			svc_mob = MISENTAKU;
		}

		// 申込回線サービス
		mskmKsn = webNewInfoBean.sendMessageString(CommonInfoCFConst.MSKM_KSN_SVC_06, X31CWebConst.DATABEAN_GET_VALUE);
		// 申込マンションタイプ
		mskmMnsType = webNewInfoBean.sendMessageString(CommonInfoCFConst.MSKM_MNS_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE);
		// ｅｏ光ネット 光ネットコース
		netCourse = bnNet.sendMessageString(CommonInfoCFConst.NET_COURSE_11, X31CWebConst.DATABEAN_GET_VALUE);
		// サービス名称取得
		Map<String, String> servicenameMap = JFUWebCommon.getDispItemsAsMap(QUERY_PATH, QUERY_ATTR_NAME);

		String serviceNameTypeKey = null;
		String serviceNameCoseKey = null;
		String serviceName = "";

		// eo光ネット
		String typName = "";
		String crcName = "";
		if (SENTAKU.equals(svc_net))
		{
			// タイプ判定
			if (mskmKsn.equals(JFUStrConst.MSKM_KSN_SVC_HOME))
			{
				// 【ホームタイプ】
				serviceNameTypeKey = NET_TIPE_HOME;
				if (!isNullOrEmpty((String)servicenameMap.get(serviceNameTypeKey)))
				{
					typName = (String)servicenameMap.get(serviceNameTypeKey);
				}
			}
			else if (mskmKsn.equals(JFUStrConst.MSKM_KSN_SVC_MANSION))
			{
				if (mskmMnsType.equals(JFUStrConst.MSKM_MNS_TYPE_MEZON))
				{
					// 【メゾンタイプ】
					serviceNameTypeKey = NET_TIPE_MEZON;
					{
						typName = (String)servicenameMap.get(serviceNameTypeKey);
					}
				}
				else if (mskmMnsType.equals(JFUStrConst.MSKM_MNS_TYPE_MANSION))
				{
					// 【マンションタイプ】
					serviceNameTypeKey = NET_TIPE_MANSHON;
					{
						typName = (String)servicenameMap.get(serviceNameTypeKey);
					}
				}
			}

			// コース判定
			// 2013.7.9 VDSLコース名非表示対応
			if (!(JFUStrConst.TK_HOSHIKI_PTN_ENET.equals(teikyo_hoshiki) || JFUStrConst.TK_HOSHIKI_PTN_GG_ENET.equals(teikyo_hoshiki)))
			{
				if (netCourse.equals(JFUStrConst.NET_COURSE_100M))
				{
					// 100Mコース
					serviceNameTypeKey = NET_COURSE_1;
					{
						crcName = (String)servicenameMap.get(serviceNameTypeKey);
					}
				}
				else if (netCourse.equals(JFUStrConst.NET_COURSE_200M))
				{
					// 200Mコース
					serviceNameTypeKey = NET_COURSE_2;
					{
						crcName = (String)servicenameMap.get(serviceNameTypeKey);
					}
				}
				else if (netCourse.equals(JFUStrConst.NET_COURSE_1G))
				{
					// 1ギガコース
					serviceNameTypeKey = NET_COURSE_3;
					{
						crcName = (String)servicenameMap.get(serviceNameTypeKey);
					}
				}
			}
			netSvcNm = typName + crcName;
		}

		// (※複数サービスを同時申込した場合)
		if (svcCnt > 1)
		{
			serviceNameTypeKey = EO_SERVICE;
			if (!isNullOrEmpty((String)servicenameMap.get(serviceNameTypeKey)))
			{
				serviceName = (String)servicenameMap.get(serviceNameTypeKey);
			}
			if (SENTAKU.equals(svc_mob))
			{
				serviceNameTypeKey = MOBILE_SERVICE;
				if (!isNullOrEmpty((String)servicenameMap.get(serviceNameTypeKey)))
				{
					serviceName = serviceName + "、" + (String)servicenameMap.get(serviceNameTypeKey);
				}
			}
		}
		else if (svcCnt.equals(1))
		{
			// eo光ネット
			if (SENTAKU.equals(svc_net))
			{
				serviceName = typName + crcName;
			}
			else if (SENTAKU.equals(svc_tel))
			{
				// eo光電話
				serviceNameTypeKey = TEL;
				{
					serviceName = (String)servicenameMap.get(serviceNameTypeKey);
				}
			}
			else if (SENTAKU.equals(svc_tv))
			{
				serviceNameTypeKey = TV;
				{
					serviceName = (String)servicenameMap.get(serviceNameTypeKey);
				}
			}
			if (serviceName.length() > 0)
			{
				if (SENTAKU.equals(svc_mob))
				{
					serviceNameTypeKey = MOBILE_SERVICE;
					if (!isNullOrEmpty((String)servicenameMap.get(serviceNameTypeKey)))
					{
						serviceName = serviceName + "、" + (String)servicenameMap.get(serviceNameTypeKey);
					}
				}
			}
			else if (SENTAKU.equals(svc_mob))
			{
				// eoモバイル
				serviceNameTypeKey = MOBILE;
				{
					serviceName = (String)servicenameMap.get(serviceNameTypeKey);
				}
			}
		}

		return new String[] { serviceName, netSvcNm };
	}

	/**
	 * Null又は空文字かどうかを判定する。 <BR>
	 * 
	 * @param value
	 * @return （true:null、または空文字、false:null、または空文字以外）
	 */
	private boolean isNullOrEmpty(String value)
	{
		return null == value || "".equals(value) || "null".equals(value);
	}

	/**
	 * Beanがnullかどうかを判定する。 <BR>
	 * 
	 * @param value
	 * @return （true:null、false:null以外）
	 */
	private boolean isNullBean(X31SDataBeanAccess value)
	{
		return null == value;
	}

	/**
	 * 料金シミュレーションを呼び出します。
	 * 
	 * @return true
	 * @throws Exception
	 */
	public boolean ryokin() throws Exception
	{
		DEBUG_LOG.info("----- ryokin_FUW00927 Start -----");
		// 料金シミュレーション共通部品を呼び出し
		JFUWebCommon.ryokin(this);
		DEBUG_LOG.info("----- ryokin_FUW00927 End -----");
		return true;
	}

	/**
	 * 汎用コードリストから適用不可のデータを取り除きます。
	 * 
	 * <br>
	 * @param bnElseInfo その他情報
	 */
	private void removeInvalidDataFromHanyoCdList(X31SDataBeanAccess bnElseInfo)
	{

		X31SDataBeanAccessArray array = bnElseInfo.getDataBeanArray(CommonInfoCFConst.HANYO_CD_LIST);
		if (array == null)
		{
			return;
		}

		if (array.getCount() == 0)
		{
			return;
		}

		int idx = 0;
		for (idx = 0; idx < array.getCount();)
		{
			X31SDataBeanAccess data = array.getDataBean(idx);
			// 適用可否フラグが"1"(適用可)以外の場合は取り除くする 
			if (!JFUStrConst.HANYO_KH_FLG_TEKIYO_KA
					.equals(data.sendMessageString(CommonInfoCFConst.HANYO_KH_FLG_46, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				array.removeDataBean(idx);
			}
			else
			{
				idx++;
			}
		}
	}

	// TAI-2012-000136 Otsuka 2012/11/13 start
	/**
	 * フロント業務リスト
	 * @param commonInfoBean
	 * @return workKiseiListBean
	 */
	private X31SDataBeanAccess getWorkKiseiList(X31SDataBeanAccess commonInfoBean)
	{
		// フロント業務リストを取得
		X31SDataBeanAccessArray array = commonInfoBean.getDataBeanArray(CommonInfoCFConst.FRONT_WORK_INFO);
		if (array.getCount() == 0)
		{
			array.addDataBean();
		}
		X31SDataBeanAccess frontWorkListBean = array.getDataBean(0);

		return frontWorkListBean;
	}
	// TAI-2012-000136 Otsuka 2012/11/13 end

// ANK-3473-00-00 ADD START
	/**
	 * キャンペーン選択リストの取得
	 * @param commoninfoBean
	 * @param svcFormBean
	 */
	private void callFUSV0330(X31SDataBeanAccess commoninfoBean, X31SDataBeanAccess svcFormBean) throws Exception
	{
		// WEB新規情報
		X31SDataBeanAccess newInfoBean = getWebInfo(commoninfoBean);
		// 契約サービス
		X31SDataBeanAccess keiServiceBean = getKeiyakusvcinfo(newInfoBean);
		// 選択サービス(ネット)
		String svc_net = keiServiceBean.sendMessageString(CommonInfoCFConst.SELECT_SVC_NET_10, X31CWebConst.DATABEAN_GET_VALUE);
		// 選択サービス(テレビ)
		String svc_tv = keiServiceBean.sendMessageString(CommonInfoCFConst.SELECT_SVC_TV_10, X31CWebConst.DATABEAN_GET_VALUE);
		// 選択サービス(電話)
		String svc_tel = keiServiceBean.sendMessageString(CommonInfoCFConst.SELECT_SVC_TEL_10, X31CWebConst.DATABEAN_GET_VALUE);
		// システム日付
		String opeDate = JFUWebCommon.getOpeDate(this, null);

		//=====================================================================
		// サービス呼出処理
		//=====================================================================
		FUSV0330_FUSV0330OPDBMapper mapper = new FUSV0330_FUSV0330OPDBMapper(); // 設定値格納用マッパ
		HashMap<String, String> paramMap = new HashMap<String, String>(); // ユースケースIDマップ
		HashMap<String, Object> inputMap = new HashMap<String, Object>(); // 入力データマップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>(); // 結果データマップ
		X31SDataBeanAccess[] paramBean = { commoninfoBean, svcFormBean};

		// ユースケースIDをセット
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_FUSV0330);
// ANK-3566-00-00 ADD START
		// リダイレクト情報
		X31SDataBeanAccess bnRedirectinfo = getRedirectinfo(newInfoBean);
		// マンション情報
		X31SDataBeanAccess mansionInfoBean = newInfoBean.getDataBeanArray(CommonInfoCFConst.MANSION_INFO).getDataBean(0);
		// 申込マンションタイプ
		String mskmMnsYype = newInfoBean.sendMessageString(CommonInfoCFConst.MSKM_MNS_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE);
		// 加入契約申込条件コード
		String knykeiMskmJokenCd = mansionInfoBean.sendMessageString(CommonInfoCFConst.KNYKEI_MSKM_JOKEN_CD_16, X31CWebConst.DATABEAN_GET_VALUE);
		// 支払方式コード
		String paywayCd = mansionInfoBean.sendMessageString(CommonInfoCFConst.PAYWAY_CD_16, X31CWebConst.DATABEAN_GET_VALUE);
		// データ抽出項目設定フラグ
		Boolean dchskmFlg = false;
		// リダイレクト情報.新規申込用データ抽出項目コードに値が設定されている場合はキャンペーン取得しない。
		if (null != bnRedirectinfo.sendMessageString(CommonInfoCFConst.NEW_DCHSKM_CD_17, X31CWebConst.DATABEAN_GET_VALUE)
				&& !"".equals(bnRedirectinfo.sendMessageString(CommonInfoCFConst.NEW_DCHSKM_CD_17, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			dchskmFlg = true;
		}
		// リダイレクト情報.追加申込用データ抽出項目コードに値が設定されている場合はキャンペーン取得しない
		if (null != bnRedirectinfo.sendMessageString(CommonInfoCFConst.ADD_DCHSKM_CD_17, X31CWebConst.DATABEAN_GET_VALUE)
				&& !"".equals(bnRedirectinfo.sendMessageString(CommonInfoCFConst.ADD_DCHSKM_CD_17, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			dchskmFlg = true;
		}
		// 全戸一括または居住者一括の場合はキャンペーン取得しない
		if (JFUStrConst.MSKM_MNS_TYPE_MANSION.equals(mskmMnsYype)
				&& (JFUStrConst.KNYKEI_MSKM_JOKEN_IKT.equals(knykeiMskmJokenCd) || JFUStrConst.CD01216_003.equals(paywayCd) || JFUStrConst.CD01216_004
						.equals(paywayCd)))
		{
			dchskmFlg = true;
		}
		if (!dchskmFlg)
		{
// ANK-3566-00-00 ADD END
			// 上りマッピング
			mapper.setFUSV033001CC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1, opeDate);
		}else{
			// 上りマッピング
			mapper.setFUSV033003CC(inputMap);
		}
		// 上りマッピング
		mapper.setFUSV033004CC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);

		// キャンペーン選択用に料金グループ・コース・コードを決定
		FUSV0152_FUSV0152OPDBMapper mapper_temp = new FUSV0152_FUSV0152OPDBMapper();
		// 選択サービス(ネット)選択
		if (SENTAKU.equals(svc_net))
		{
			// サービス契約<eo光ネット>登録
			mapper_temp.setEKK0091D010(paramBean, inputMap, JPCModelConstant.FUNC_CD_1, opeDate);
		}
		// 選択サービス(電話)選択
		if (SENTAKU.equals(svc_tel))
		{
			// サービス契約<eo光電話>登録
			mapper_temp.setEKK0111D010(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		}
		// 選択サービス(テレビ)選択
		if (SENTAKU.equals(svc_tv))
		{
			// サービス契約<eo光TV>登録
			mapper_temp.setEKK0101D010(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		}

		//サービスをキック
		try
		{
			invokeService(paramMap, inputMap, outputMap);
		}
		catch (JCCWebServiceException se)
		{
			// 上記以外の場合システムエラーとし、業務共通例外クラス（JCCBusinessException）をスローする。
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}
		// 下りマッピング
		mapper.getFUSV033001CC(paramBean, outputMap, opeDate);
		mapper.getFUSV033003CC(paramBean, outputMap);
		mapper.getFUSV033004CC(paramBean, outputMap);
	}
// ANK-3473-00-00 ADD END

	/**
	 * 契約者住所選択の再設定
	 * @param bn WEB新規情報
	 * 
	 */
	private void setKshAddCfm(X31SDataBeanAccess bn)
	{
		// 新規申込の場合
		if (JFUStrConst.MSKM_KBN_NEW.equals(bn.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 契約者住所選択が空の場合は異なるを設定
			X31SDataBeanAccess keiyakushaInfoBean = bn.getDataBeanArray(CommonInfoCFConst.KEIYAKUSHA_INFO).getDataBean(0);
			if (JFUWebCommon.isNull(keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSHADD_CMF_09, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KSHADD_CMF_09, X31CWebConst.DATABEAN_SET_VALUE, BASHO_DIFF);
			}
		}
	}

	/**
	 * 光化マンション用の設定処理です。
	 * 
	 * <br>
	 * @param bean サービスフォームBean
	 * @param commonInfoBean 共有フォームBean
	 */
	private void setHikarikaMansInfo(X31SDataBeanAccess bean, X31SDataBeanAccess commonInfoBean)
	{
		// WEB新規情報
		X31SDataBeanAccess bn = getWebInfo(commonInfoBean);
		// マンション情報
		X31SDataBeanAccess mansionInfoBean = bn.getDataBeanArray(CommonInfoCFConst.MANSION_INFO).getDataBean(0);
		// 利用場所情報
		X31SDataBeanAccess bnRiyobasho = getRiyobasyoinfo(bn);

		// 光化マンションフラグが「1」以外の場合は処理を終了
		if (!JFUStrConst.HIKARIKA_MANS_FLG_1.equals(mansionInfoBean.sendMessageString(CommonInfoCFConst.HIKARIKA_MANS_FLG_16, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			return;
		}

		// 棟情報
		String touInfo = bnRiyobasho.sendMessageString(CommonInfoCFConst.USEPLACE_BILDNO_08, X31CWebConst.DATABEAN_GET_VALUE);

		// 棟情報が未設定の場合は処理を終了
		if (JFUWebCommon.isNull(touInfo))
		{
			return;
		}

		// 建物名に棟情報を結合する
		String kaisenPlaceAdrttm = bnRiyobasho.sendMessageString(CommonInfoCFConst.USEPLACE_TTM_08, X31CWebConst.DATABEAN_GET_VALUE)
									+ JFUStrConst.SPACE + touInfo;

		if (kaisenPlaceAdrttm.length() > 45)
		{
			// 45桁を超えた場合、46桁目以降を削る
			bnRiyobasho.sendMessageString(CommonInfoCFConst.USEPLACE_TTM_08, X31CWebConst.DATABEAN_SET_VALUE, kaisenPlaceAdrttm.substring(0, 45));
		}
		else
		{
			// 上記以外の場合、そのまま設定する
			bnRiyobasho.sendMessageString(CommonInfoCFConst.USEPLACE_TTM_08, X31CWebConst.DATABEAN_SET_VALUE, kaisenPlaceAdrttm);
		}
	}
}
