/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：担当者ログイン(量販・訪販)
*   ソースファイル名：FUW00902SFLogic.java
*   作成者          ：富士通
*   日付            ：2012年02月23日
*＜機能概要＞
*  担当者ログイン(量販・訪販)のビューロジッククラスです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v3.00       2012/02/23   FJ）山下    新規作成
*   v4.01       2012/08/02   FJ）大塚    「案件番号：ANK-0329-00-00」フロント受付システム24時間365日稼動対応
*   v4.02       2013/02/20   FJ）齋藤   【IT1-2013-0000300】担当者ログインチェック障害
*   v4.03       2013/02/27   FJ）齋藤   【新規-No.329】パスワードの変更処理障害
*   v32.00      2017/04/20   FJ）岡井   【ANK-3158-00-00】訪販申込情報の検索・取得API作成
*   v35.00      2017/11/06   FJ) 美濃原 【ANK-3319-00-00】auショップでのタブレット申し込み対応
*   v41.00      2019/03/28   FJ）松原   【ANK-3588-00-00】量販ＷＥＢへの取り扱いコード入力欄追加
*   v70.00      2024/02/05   FJ) 美濃原 【ANK-4551-00-00】202404CP対応
**********************************************************************/
package eo.web.webview.FUW00902SF;

import static com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG;

import java.util.HashMap;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;

import com.fujitsu.futurity.web.x00.JCCBusinessException;
import com.fujitsu.futurity.web.x00.JCCWebServiceException;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;
import com.fujitsu.futurity.web.x33.DispatchContext;
import com.fujitsu.futurity.web.x33.DispatchContextFactory;
import com.fujitsu.futurity.web.x33.HttpDispatchContext;

import eo.common.constant.JFUStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JPCDateUtil;
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.FUSV0211_FUSV0211OPDBMapper;
import eo.web.webview.mapping.FUSV0255_FUSV0255OPDBMapper;

/**
 * 担当者ログインのビューロジッククラスです。<p>
 * <BR>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class FUW00902SFLogic extends JCCWebBusinessLogic
{
	/** ユースケースID（FUSV0211） */
	private static final String USECASE_ID_FUSV0211 = "FUSV0211";

	/** ユースケースID（FUSV0255） */
	private static final String USECASE_ID_FUSV0255 = "FUSV0255";

	/** フロント区分：量販・訪販 */
	private static final String FU_KBN_R = "R";

	/** 有効なCookieが設定されているかどうかの判断を行うCookieのKEY */
	private static final String TRAT_CD = "trat_cd";
	/** 有効なCookieが設定されているかどうかの判断を行うCookieのKEY */
	private static final String HANBAI_TYPE = "hanbai_type";
	/** 有効なCookieが設定されているかどうかの判断を行うCookieのKEY */
	private static final String TRAT_NM = "trat_nm";

	/** エラー用画面ID 担当者ID */
	private static final String TANTOSHA_ID = "tantoshaid";
	/** エラー用画面ID パスワード */
	private static final String PW = "pw";

	/** エラー用画面文言 入力 */
	private static final String TXT_INPUT = "入力";

	/** エラー用画面文言 入力 */
	private static final String TXT_ID = "受付担当者ID";

	/** エラー用画面文言 入力 */
	private static final String TXT_PASS = "パスワード";

	/** エラー用画面文言 入力 */
	private static final String TXT_AUTH = "アクセス権限";

	/** プロパティ取得キー  権限コード：量販 */
	private static final String AUTH_RYOHAN = "AUTH_RYOHAN";
	/** プロパティ取得キー  権限コード：訪販 */
	private static final String AUTH_HOHAN = "AUTH_HOHAN";

	/** パスワード有効期間 */
	private static final String FU_PASS_YUKO_DAY = "FU_PASS_YUKO_DAY";

	/**
	 * 初期表示処理
	 * <BR>
	 * @return 処理結果
	 * @throws Exception 例外
	 */
	public boolean init() throws Exception
	{
		// 業務規制情報設定処理
		this.setWorkKiseiList();

		// 共有フォームBeanの取得
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		//サービスフォームBean
		X31SDataBeanAccess serviceFormBean = getServiceFormBean();

		String screenId = JFUWebCommon.getScreenId(this);

		// 遷移元が取扱店ログインの場合
		if (JFUScreenConst.SCREEN_ID_FUW00901.equals(screenId))
		{
			serviceFormBean.sendMessageBoolean(FUW00902SFConst.COOKIE_FLG, X31CWebConst.DATABEAN_SET_VALUE, true);

			// サービスを呼び出す。
			//			this.callFUSV0255Service();

			//////////////////// デバッグ用設定
			serviceFormBean.getDataBeanArray(FUW00902SFConst.WORK_PARAM_LIST).addDataBean();
			X31SDataBeanAccess workParamListBean = serviceFormBean.getDataBeanArray(FUW00902SFConst.WORK_PARAM_LIST).getDataBean(0);

			// APLConstより取得
			String passDay = JFUWebCommon.getApplicationConst(FU_PASS_YUKO_DAY);

			workParamListBean.sendMessageString(FUW00902SFConst.WORK_PARAM_SETTE_VALUE_04, X31CWebConst.DATABEAN_SET_VALUE, passDay);
			///////////////////
		}
		else
		{
			DEBUG_LOG.info("----- ★★★FUW00902SFLogic(init) Cookie★★★ -----screenId[" + JFUWebCommon.nvl(screenId, JFUStrConst.EMPTY) + "]");
			// cookieに値が設定されている場合
			if (isActiveCookie(commonInfoBean))
			{
				DEBUG_LOG.info("----- ★★★FUW00902SFLogic(init) isActiveCookie ★★★ ----");
				// ●フロント共有情報を取得
				X31SDataBeanAccess frontCommonInfoBean = getFrontCommonInfo(commonInfoBean);

				// フロント区分を設定
				frontCommonInfoBean.sendMessageString(CommonInfoCFConst.FU_KBN_05, X31CWebConst.DATABEAN_SET_VALUE, FU_KBN_R);

				serviceFormBean.sendMessageBoolean(FUW00902SFConst.COOKIE_FLG, X31CWebConst.DATABEAN_SET_VALUE, true);

				// ●WEB新規情報を取得
				X31SDataBeanAccess webNewInfoBean = getWebNewInfo(commonInfoBean);
				// 申込区分（新規固定）
				webNewInfoBean.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.MSKM_KBN_NEW);
			}
			else
			{
				// サービスを呼び出す。
				//			this.callFUSV0255Service();

				//////////////////// デバッグ用設定
				serviceFormBean.getDataBeanArray(FUW00902SFConst.WORK_PARAM_LIST).addDataBean();
				X31SDataBeanAccess workParamListBean = serviceFormBean.getDataBeanArray(FUW00902SFConst.WORK_PARAM_LIST).getDataBean(0);

				// APLConstより取得
				String passDay = JFUWebCommon.getApplicationConst(FU_PASS_YUKO_DAY);

				workParamListBean.sendMessageString(FUW00902SFConst.WORK_PARAM_SETTE_VALUE_04, X31CWebConst.DATABEAN_SET_VALUE, passDay);
				///////////////////

				serviceFormBean.sendMessageBoolean(FUW00902SFConst.COOKIE_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
			}
		}
		return true;
	}

	/**
	 * ログインボタン押下処理
	 * <BR>
	 * @return 処理結果
	 * @throws Exception 例外
	 */
	public boolean login() throws Exception
	{
		// 共有フォームBeanの取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// WEB新規情報取得
		X31SDataBeanAccess webNewInfoBean = getWebNewInfo(commonInfoBean);

		// その他情報取得
		X31SDataBeanAccess elseInfoBean = getelseInfo(webNewInfoBean);

		// 販売タイプを取得
		String strHanbaiType = webNewInfoBean.sendMessageString(CommonInfoCFConst.HANBAI_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE);

		// 業務規制リスト取得
		X31SDataBeanAccess workKiseiListBean = getWorkKiseiList(commonInfoBean);

		// 規制フラグを取得
		String kiseiFlg = workKiseiListBean.sendMessageString(CommonInfoCFConst.FRONT_KADO_TRGT_KISEI_FLG_48, X31CWebConst.DATABEAN_GET_VALUE);

		//  サービスの実行
		this.callFUSV0211Service();

		//サービスフォームBean
		X31SDataBeanAccess serviceFormBean = getServiceFormBean();

		// 画面にて入力されたパスワード
		String password = serviceFormBean.sendMessageString(FUW00902SFConst.PWD, X31CWebConst.DATABEAN_GET_VALUE);

		// パスワードのチェック
		// 検索件数をチェック
		Integer iResultCount = serviceFormBean.getDataBeanArray(FUW00902SFConst.PASSWORD_LIST).getCount();

		// 検索結果が0件
		if (iResultCount < 1)
		{
			JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0420_TW, new String[] { TXT_ID, TXT_INPUT }, TANTOSHA_ID);
			return true;
		}
		// パスワードリストを取得
		X31SDataBeanAccess passListBean = serviceFormBean.getDataBeanArray(FUW00902SFConst.PASSWORD_LIST).getDataBean(0);

		// ユーザー名
		String tantoshaNm = passListBean.sendMessageString(FUW00902SFConst.USER_NM_01, X31CWebConst.DATABEAN_GET_VALUE);

		// パスワード 複合化して格納
		String strPass =
				JFUWebCommon.getDecryptResultPassword(passListBean.sendMessageString(FUW00902SFConst.RH_VH_USER_PWD_01,
						X31CWebConst.DATABEAN_GET_VALUE));

		// パスワードを複合化する。

		// パスワードが一致しない場合
		if (!strPass.equals(password))
		{
			JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0420_TW, new String[] { TXT_PASS, TXT_INPUT }, PW);
			return true;
		}

		// 一致したパスワードを設定
		elseInfoBean.sendMessageString(CommonInfoCFConst.TANTOSHA_PW_18, X31CWebConst.DATABEAN_SET_VALUE, strPass);

		// 権限チェック
		// 検索件数をチェック
		Integer iAuthResultCount = serviceFormBean.getDataBeanArray(FUW00902SFConst.AUTH_LIST).getCount();

		// 検索結果が0件
		if (iAuthResultCount < 1)
		{
			JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0450_KW, new String[] { TXT_AUTH }, TANTOSHA_ID);
			return true;
		}

		/* 2013/02/20 IT1-2013-0000300 Y.Saitou DEL */

		// 共有フォームBeanに引継ぎ情報を設定する。
		setTransferInfoByNext(tantoshaNm);

		//業務規制中の場合、メニュー（量販・訪販）FUW00905に遷移する。
		if (JFUStrConst.CD01306_1.equals(kiseiFlg))
		{
			// メニュー（量販・訪販）FUW00905に遷移する。
			this.setNextScreenInfo(JFUScreenConst.SCREEN_ID_FUW00905, JFUScreenConst.SCREEN_NAME_FUW00905);

			return true;
		}

		// パスワード操作内容コード
		String pass_sosa = passListBean.sendMessageString(FUW00902SFConst.PWD_SOSA_NAIYO_CD_01, X31CWebConst.DATABEAN_GET_VALUE);

		/* 2013/02/27 パスワードの変更処理障害 Y.Saitou MOD */
		// パスワード操作内容コードが変更の場合、パスワード有効期限チェックを行う。
		if (JFUStrConst.CD01426_2.equals(pass_sosa))
		{
			// パスワード設定年月日時分秒(前回のパスワード変更日付) yyyyMMddHHmmssに加工
			String passYmd = passListBean.sendMessageString(FUW00902SFConst.PWD_SETTE_DTM_01, X31CWebConst.DATABEAN_GET_VALUE).substring(0, 14);

			// ログイン日付(運用日付)yyyyMMddHHmmss  20110624173142
			String loginYmd = JFUWebCommon.getOpeDateTime(this, null);

			// パスワードの有効日数を取得
			// 業務パラメータリストを取得
			X31SDataBeanAccess workParamListBean = serviceFormBean.getDataBeanArray(FUW00902SFConst.WORK_PARAM_LIST).getDataBean(0);

			String yukoDay = workParamListBean.sendMessageString(FUW00902SFConst.WORK_PARAM_SETTE_VALUE_04, X31CWebConst.DATABEAN_GET_VALUE);

			// 有効期限を取得
			int deff_date = JPCDateUtil.subtractDay(loginYmd, passYmd);

			// 最終設定日が有効日数以上前の場合
			if (deff_date >= Integer.parseInt(yukoDay))
			{
				serviceFormBean.sendMessageBoolean(FUW00902SFConst.ISNEXTFLG, X31CWebConst.DATABEAN_SET_VALUE, false);

				// パスワード変更（量販・訪販）FUW00903に遷移する。
				this.setNextScreenInfo(JFUScreenConst.SCREEN_ID_FUW00903, JFUScreenConst.SCREEN_NAME_FUW00903);
			}
			// パスワードの有効期限が10日以下の場合、パスワード有効期限を設定する。
			else if ((Integer.parseInt(yukoDay) - deff_date) <= 10)
			{
				String kigen = Integer.toString((Integer.parseInt(yukoDay) - deff_date));

				serviceFormBean.sendMessageString(FUW00902SFConst.PWD_YK_KIGEN, X31CWebConst.DATABEAN_SET_VALUE, kigen);

				serviceFormBean.sendMessageBoolean(FUW00902SFConst.ISNEXTFLG, X31CWebConst.DATABEAN_SET_VALUE, true);

				// パスワードの有効期限が10日以下の場合、FUW00902を再描画し、ダイアログを出す。
				this.setNextScreenInfo(JFUScreenConst.SCREEN_ID_FUW00902, JFUScreenConst.SCREEN_NAME_FUW00902);
			}
			else
			{
				serviceFormBean.sendMessageBoolean(FUW00902SFConst.ISNEXTFLG, X31CWebConst.DATABEAN_SET_VALUE, false);

				// メニュー（量販・訪販）FUW00905に遷移する。
				this.setNextScreenInfo(JFUScreenConst.SCREEN_ID_FUW00905, JFUScreenConst.SCREEN_NAME_FUW00905);
			}
		}
		else
		{
			serviceFormBean.sendMessageBoolean(FUW00902SFConst.ISNEXTFLG, X31CWebConst.DATABEAN_SET_VALUE, false);

			// パスワード操作内容コードが変更以外の場合、パスワード変更（量販・訪販）FUW00903に遷移する。
			this.setNextScreenInfo(JFUScreenConst.SCREEN_ID_FUW00903, JFUScreenConst.SCREEN_NAME_FUW00903);
		}

		return true;
	}

	/**
	 * 戻るボタン押下処理(cookieに値が設定されていない場合の処理)
	 * <BR>
	 * @return 処理結果
	 * @throws Exception 例外
	 */
	public boolean back() throws Exception
	{
		// 上記以外の場合、取扱店ログイン（量販・訪販）FUW00901に遷移する。
		this.setNextScreenInfo(JFUScreenConst.SCREEN_ID_FUW00901, JFUScreenConst.SCREEN_NAME_FUW00901);

		return true;
	}

	/**
	 * 次へボタン押下処理
	 * <BR>
	 * @return 処理結果
	 * @throws Exception 例外
	 */
	public boolean next() throws Exception
	{
		// サービスフォームBeanを取得
		X31SDataBeanAccess serviceFormBean = getServiceFormBean();

		// 遷移先フラグ
		String transFlg = serviceFormBean.sendMessageString(FUW00902SFConst.TRANS_FLG, X31CWebConst.DATABEAN_GET_VALUE);

		if (JFUScreenConst.SCREEN_ID_FUW00903.equals(transFlg))
		{
			this.setNextScreenInfo(JFUScreenConst.SCREEN_ID_FUW00903, JFUScreenConst.SCREEN_NAME_FUW00903);
		}
		else if (JFUScreenConst.SCREEN_ID_FUW00905.equals(transFlg))
		{
			this.setNextScreenInfo(JFUScreenConst.SCREEN_ID_FUW00905, JFUScreenConst.SCREEN_NAME_FUW00905);
		}
		else
		{

			this.setNextScreenInfo(JFUScreenConst.SCREEN_ID_FUW00902, JFUScreenConst.SCREEN_NAME_FUW00902);
		}

		return true;
	}

	/**
	 * 業務パラメータ一意照会サービスを呼び出す。
	 * @throws Exception 
	 */
	private void callFUSV0255Service() throws Exception
	{
		// サービスフォームBeanを取得
		X31SDataBeanAccess serviceFormBean = getServiceFormBean();

		// パスワード有効期限取得キーを設定する。
		serviceFormBean.sendMessageString(FUW00902SFConst.WORK_PARAM_ID, X31CWebConst.DATABEAN_SET_VALUE, FU_PASS_YUKO_DAY);

		HashMap<String, String> paramMap = new HashMap<String, String>();

		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_FUSV0255);

		// 設定値格納用マップを生成。
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		// 検索結果格納用マップを生成。
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		X31SDataBeanAccess[] paramBean = { getServiceFormBean() };

		// DataBean-BPマッピング
		FUSV0255_FUSV0255OPDBMapper mapper = new FUSV0255_FUSV0255OPDBMapper();

		// サービスの入力値設定
		mapper.setFUSV025501SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);

		try
		{
			// サービス呼出 
			invokeService(paramMap, inputMap, outputMap);
		}
		catch (JCCWebServiceException jwse)
		{
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}

		mapper.getFUSV025501SC(paramBean, outputMap);
	}

	/**
	 * 担当者ログイン実績登録サービスを呼び出す。
	 * @throws Exception 
	 */
	private void callFUSV0211Service() throws Exception
	{
		// 共有フォームBeanを取得
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// サービスフォームBeanを取得
		X31SDataBeanAccess serviceFormBean = getServiceFormBean();

		// WEB新規情報取得
		X31SDataBeanAccess webNewInfoBean = getWebNewInfo(commonInfoBean);

		// その他情報取得
		X31SDataBeanAccess elseInfoBean = getelseInfo(webNewInfoBean);

		// 販売タイプを取得
		String strHanbaiType = webNewInfoBean.sendMessageString(CommonInfoCFConst.HANBAI_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE);

		// 権限コードをプロパティから取得する。
		String authCd = "";

		// 受付担当者識別コード
		String uk_tntsha_skbt_cd = "";

		// 量販の場合
		if (JFUStrConst.HNBAI_TYPE_RYOHAN.equals(strHanbaiType))
		{
			authCd = JFUWebCommon.getDispText(JFUScreenConst.SCREEN_ID_FUW00902, AUTH_RYOHAN);
			uk_tntsha_skbt_cd = JFUStrConst.CD01268_02;
		}
		// 訪販の場合
		else if (JFUStrConst.HNBAI_TYPE_HOHAN.equals(strHanbaiType))
		{
			authCd = JFUWebCommon.getDispText(JFUScreenConst.SCREEN_ID_FUW00902, AUTH_HOHAN);
			uk_tntsha_skbt_cd = JFUStrConst.CD01268_03;
		}

		// 権限コードの設定
		serviceFormBean.sendMessageString(FUW00902SFConst.AUTHORITY_CD, X31CWebConst.DATABEAN_SET_VALUE, authCd);

		// 予約適用年月日の設定
		serviceFormBean.sendMessageString(FUW00902SFConst.RSV_APLY_YMD, X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon.getOpeDate(this, null));

		// 取扱店用取扱コード取得
		String strToritenTratCd = elseInfoBean.sendMessageString(CommonInfoCFConst.TORITEN_TORIATSUKAI_CD_18, X31CWebConst.DATABEAN_GET_VALUE);

		// 代理店コード設定
		serviceFormBean.sendMessageString(FUW00902SFConst.AGNT_CD, X31CWebConst.DATABEAN_SET_VALUE, strToritenTratCd);

		// 量販訪販ユーザーパスワード (実行判定に使用)
		String pass = serviceFormBean.sendMessageString(FUW00902SFConst.PWD, X31CWebConst.DATABEAN_GET_VALUE);

		HashMap<String, String> paramMap = new HashMap<String, String>();

		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_FUSV0211);

		// 設定値格納用マップを生成。
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		// 検索結果格納用マップを生成。
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		X31SDataBeanAccess[] paramBean = { getServiceFormBean() };

		// DataBean-BPマッピング
		FUSV0211_FUSV0211OPDBMapper mapper = new FUSV0211_FUSV0211OPDBMapper();

		// 実行条件用にデータをセットする
		inputMap.put("hanbaiType", strHanbaiType); // 販売タイプ
		inputMap.put("pass", JFUWebCommon.getEncryptResultPassword(pass)); // 量販訪販ユーザーパスワード 暗号化して渡す
		inputMap.put("screenId", JFUScreenConst.SCREEN_ID_FUW00902); // 2013/04/08 Otsuka

		// サービスの入力値設定
		mapper.setEZM0501A010(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		mapper.setEZM0011B020(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setEKK0061B502(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setEFU0221B010(paramBean, inputMap, JPCModelConstant.FUNC_CD_1, this);
		mapper.setEFU0221D010(paramBean, inputMap, JPCModelConstant.FUNC_CD_1, this, uk_tntsha_skbt_cd);

		try
		{
			// サービス呼出 
			invokeService(paramMap, inputMap, outputMap);
		}
		catch (JCCWebServiceException jwse)
		{
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}

		mapper.getEZM0501A010(paramBean, outputMap);
		mapper.getEZM0011B020(paramBean, outputMap);

		// 量販の場合のみマッピングする。
		if (JFUStrConst.HNBAI_TYPE_RYOHAN.equals(strHanbaiType))
		{
			mapper.getEKK0061B502(paramBean, outputMap);
		}
	}

	/**
	 * 次へボタン押下時の引継情報を共有フォームBeanに設定する。
	 * @param tantosha_nm
	 */
	private void setTransferInfoByNext(String tantosha_nm)
	{
		//サービスフォームBean
		X31SDataBeanAccess serviceFormBean = getServiceFormBean();

		// 共有フォームBeanの取得
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// WEB新規情報を取得
		X31SDataBeanAccess webNewInfoBean = getWebNewInfo(commonInfoBean);

		// その他情報を取得
		X31SDataBeanAccess elseInfoBean = getelseInfo(webNewInfoBean);

		// 担当者IDを取得(画面入力値)
		String tantoshaId = serviceFormBean.sendMessageString(FUW00902SFConst.TANTOSHA_ID, X31CWebConst.DATABEAN_GET_VALUE);

		elseInfoBean.sendMessageString(CommonInfoCFConst.TANTOSHA_ID_18, X31CWebConst.DATABEAN_SET_VALUE, tantoshaId);

		// ユーザー名を設定
		elseInfoBean.sendMessageString(CommonInfoCFConst.TANTOSHA_NM_18, X31CWebConst.DATABEAN_SET_VALUE, tantosha_nm);
// ANK-3588-00-00 START
		// 販売タイプを取得
		//String strHanbaiType = webNewInfoBean.sendMessageString(CommonInfoCFConst.HANBAI_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE);

		// 量販の場合
		//if (JFUStrConst.HNBAI_TYPE_RYOHAN.equals(strHanbaiType))
		//{
			// 代理店リストを取得
			//X31SDataBeanAccess agentCdListBean = serviceFormBean.getDataBeanArray(FUW00902SFConst.AGNT_CD_LIST).getDataBean(0);

			/* 2013/02/20 IT1-2013-0000300 Y.Saitou MOD */
			//if (agentCdListBean != null)
			//{
				// 代理店コードを取得
				//String agntCd = agentCdListBean.sendMessageString(FUW00902SFConst.AGNT_CD_02, X31CWebConst.DATABEAN_GET_VALUE);

				// 担当者用取扱コードに設定
				//elseInfoBean.sendMessageString(CommonInfoCFConst.TNTSHA_TORIATSUKAI_CD_18, X31CWebConst.DATABEAN_SET_VALUE, agntCd);
			//}
		//}
// ANK-3588-00-00 END
	}

	/**
	 * 共有フォームBeanに遷移先情報を設定する。
	 * <BR>
	 * @param pstrNextScreenId 遷移先画面ID
	 * @param pstrNextScreenName 遷移先画面名
	 */
	private void setNextScreenInfo(String pstrNextScreenId, String pstrNextScreenName)
	{
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// 遷移先画面ID
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, pstrNextScreenId);

		// 遷移先画面名
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, pstrNextScreenName);
	}

	/**
	 * フロント共有情報 
	 * @param commonInfoBean
	 * @return frontCommonInfoBean
	 */
	private X31SDataBeanAccess getFrontCommonInfo(X31SDataBeanAccess commonInfoBean)
	{
		X31SDataBeanAccessArray array = commonInfoBean.getDataBeanArray(CommonInfoCFConst.FRONT_COMMON_INFO);
		if (array.getCount() == 0)
		{
			array.addDataBean();
		}
		X31SDataBeanAccess frontCommonInfoBean = array.getDataBean(0);

		return frontCommonInfoBean;

	}

	/**
	 * フロント業務リスト
	 * @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;
	}

	/**
	 * その他情報
	 * @param webNewInfoBean
	 * @return elseInfoBean
	 */
	private X31SDataBeanAccess getelseInfo(X31SDataBeanAccess webNewInfoBean)
	{
		X31SDataBeanAccessArray array = webNewInfoBean.getDataBeanArray(CommonInfoCFConst.ELSE_INFO);
		if (array.getCount() == 0)
		{
			array.addDataBean();
		}
		X31SDataBeanAccess elseInfoBean = array.getDataBean(0);

		return elseInfoBean;
	}

	/**
	 * WEB新規情報
	 * @param commonInfoBean
	 * @return webNewInfoBean
	 */
	private X31SDataBeanAccess getWebNewInfo(X31SDataBeanAccess commonInfoBean)
	{
		X31SDataBeanAccessArray array = commonInfoBean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		if (array.getCount() == 0)
		{
			array.addDataBean();
		}
		X31SDataBeanAccess webNewInfoBean = array.getDataBean(0);

		return webNewInfoBean;
	}

	/**
	 * 業務規制情報を設定する。
	 * @return boolean true:規制中  false:規制中でない
	 */
	private void setWorkKiseiList()
	{
		// 業務規制情報取得
		HashMap<String, Object> workKiseiInfoMap = JCCWebCommon.getBusinessControlMap(this);

		// 業務規制情報マップから、フロント２４時間３６５日稼動対象規制情報を取得
		HashMap<?, ?> workKiseiMap = (HashMap<?, ?>)workKiseiInfoMap.get(JFUStrConst.WORK_KISEI_FUGKW0009);

		// 業務規制フラグの取得
		String kiseiFlg = (String)workKiseiMap.get(JFUStrConst.KISEI_FLG);

		// 共有フォームBeanの取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// 業務規制リスト取得
		X31SDataBeanAccess workKiseiListBean = getWorkKiseiList(commonInfoBean);

		// 規制フラグを設定
		if (JFUStrConst.CD01306_1.equals(kiseiFlg))
		{
			workKiseiListBean.sendMessageString(CommonInfoCFConst.FRONT_KADO_TRGT_KISEI_FLG_48, X31CWebConst.DATABEAN_SET_VALUE,
					JFUStrConst.CD01306_1);
		}
		else
		{
			workKiseiListBean.sendMessageString(CommonInfoCFConst.FRONT_KADO_TRGT_KISEI_FLG_48, X31CWebConst.DATABEAN_SET_VALUE,
					JFUStrConst.CD01306_0);
		}
	}

	private Boolean isActiveCookie(X31SDataBeanAccess commonInfoBean) throws Exception
	{
		int count = 0;
		boolean result = false;

		// ●WEB新規情報を取得
		X31SDataBeanAccess webNewInfoBean = getWebNewInfo(commonInfoBean);

		// ●その他情報を取得
		X31SDataBeanAccess elseInfoBean = getelseInfo(webNewInfoBean);

		DispatchContext context = DispatchContextFactory.getInstance().getHttpDispatchContext();
		HttpServletRequest request = ((HttpDispatchContext)context).getServletRequest();

		Cookie[] cookies = request.getCookies();

			// Cookieの設定チェック
			for (int i = 0; i < cookies.length; i++)
			{
				Cookie cookie = cookies[i];
				if (TRAT_CD.equals(cookie.getName()))
				{
					elseInfoBean.sendMessageString(CommonInfoCFConst.TORITEN_TORIATSUKAI_CD_18, X31CWebConst.DATABEAN_SET_VALUE, cookie.getValue());
					elseInfoBean.sendMessageString(CommonInfoCFConst.TORIATSUKAI_ID_18, X31CWebConst.DATABEAN_SET_VALUE, cookie.getValue());
					elseInfoBean.sendMessageString(CommonInfoCFConst.AU_SHOP_TRAT_FLG_18, X31CWebConst.DATABEAN_SET_VALUE,
						JFUWebCommon.getAuShopFlg(cookie.getValue()));
					// 申込経路 (ANK-4551-00-00)
					String mskmRoute = JFUWebCommon.getMskmRoute(this);
					webNewInfoBean.sendMessageString(CommonInfoCFConst.MSKM_ROUTE_06, X31CWebConst.DATABEAN_SET_VALUE, mskmRoute);
					count++;
				}
				else if (HANBAI_TYPE.equals(cookie.getName()))
				{

					webNewInfoBean.sendMessageString(CommonInfoCFConst.HANBAI_TYPE_06, X31CWebConst.DATABEAN_SET_VALUE, cookie.getValue());
					count++;
				}
				else if (TRAT_NM.equals(cookie.getName()))
				{
				elseInfoBean.sendMessageString(CommonInfoCFConst.TORIATSUKAI_NM_18, X31CWebConst.DATABEAN_SET_VALUE, cookie.getValue());
					count++;
				}
			}

		if (count == 3)
		{
			result = true;
		}

		return result;

	}

}
