/*********************************************************************
 * All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *   システム名      ：eo顧客基幹システム
 *   モジュール名    ：申込完了（量販・訪販）
 *   ソースファイル名：FUW00932SFLogic.java
 *   作成者          ：富士通
 *   日付            ：2012年01月10日
 *＜機能概要＞
 *   登録完了（量販・訪販）の画面制御を行います。
 *＜修正履歴＞
 *   バージョン  修正日       修正者      修正内容
 *   v10.00      2014/08/12   FJ) 西川   「案件番号: ANK-2086-00-00」【ＮＯ．１３７】アクセスログ集中管理Ｓへのログ対応（フロントＳ（量販）分）
 *   v29.00.00   2016/11/18   FJ) 阪口   【ANK-2990-00-00】 新電力対応Step2
 *   v34.00.00   2017/09/08   FJ) 杉本   【ANK-3210-00-00】 電気単独対応
 *   v39.00.00   2018/11/21   FJ)黒田(耕)【ANK-3518-00-00】量販・訪販Webのサービス追加
 *   v49.00.00   2020/06/18   FJ) 岡井   【ANK-3840-00-00】テレビリースサービス新規申込対応
 *   v50.00.00   2020/08/26   FJ) 岡井   【ANK-3902-00-00】定額テレビサービス量販・訪販取扱店情報連携
 *   v53.01.00   2021/05/05   FJ）西川   【ANK-4009-13-00】CX戦略WG方針対応_mineo同時申込時の挙動
 *   v56.00.00   2021/12/06   FJ）美濃原 【ANK-4103-00-00】マンション光コンセントタイプのWeb受付対応
 *   v73.00.00   2024/12/24   FJ）福山   【ANK-4427-00-00】NTT卸対応
 *   v72.00.00   2024/10/31   FJ）飯田   【ANK-4598-00-00】量販・訪販WebのeoID取得方法変更
 **********************************************************************/

package eo.web.webview.FUW00932SF;

import static com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

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 eo.common.constant.JFUStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JFUCommonUtil;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.FUW00943SF.FUW00943SFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JFUEncryptUtil;
import eo.web.webview.common.JFUScreenConst;
import eo.web.webview.common.JFUWebCommon;
import eo.web.webview.mapping.FUSV0343_FUSV0343OPDBMapper;
import eo.web.webview.mapping.FUSV0348_FUSV0348OPDBMapper;
import eo.web.webview.mapping.FUSV0379_FUSV0379OPDBMapper;

/**
 * eo光ネット入力画面のVIEWロジックです。 <br>
 *
 * @author 富士通
 */
@SuppressWarnings("serial")
public class FUW00932SFLogic extends JCCWebBusinessLogic
{
	/** 量販用のアクセスログ操作区分取得キー */
	private static final String KEY_RYOHAN_ACCESSLOG_DIV = "RYOHAN_ACCESSLOG_DIV";

	/** メニュー(量販);印刷 */
	private static final String FUW009050_PRINT_BTN = "FUW009050PJP.printBtn";

	/** 登録完了(量販);印刷 */
	private static final String FUW009310_PRINT_BTN = "FUW009310PJP.printBtn";

	/** 申込完了(量販);印刷 */
	private static final String FUW009320_PRINT_BTN = "FUW009320PJP.printBtn";

	/** 表示制御フラグ 表示(1) */
	private static final Boolean VIEW_MODE_ON = true;

	/** 表示制御フラグ 非表示(0) */
	private static final Boolean VIEW_MODE_OFF = false;

	/** プロパティパス */
	private static final String QUERY_PATH = "DISPSETTING/SETTING[@screenId='FUW00932']/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";
// ANK-4427-00-00 ADD START
	/** タイプ名：ホームタイプ */
	private static final String NET_TIPE_TYPE_N = "NET_TIPE_TYPE_N";
// ANK-4427-00-00 ADD END
	/** コース名：結合文字列(ネット) */
	private static final String NET_COURSE = "NET_COURSE_";
	/** コース名：結合文字列(ネット) 光配線 */
	private static final String NET_COURSE_CHG = "NET_COURSE_CHG_";
	/** コース名：結合文字列(電話) */
	private static final String TEL_COURSE = "TEL_";
	/** コース名：結合文字列(テレビ) */
	private static final String TV_COURSE = "TV_";
	/** コース名：結合文字列(モバイル) */
	private static final String MOBILE_COURSE = "MOBILE_";

	// ANK-2990-00-00 ADD START
	/** アプリケーションプロパティから共通暗号化キーを取得するキー (eo電気申込) */
	private static final String ELEC_MSKM_ENCRYPTION_KEY = "ELEC_MSKM_ENCRYPTION_KEY";
	// ANK-2990-00-00 ADD END
	/** アプリケーションプロパティから共通暗号化キーを取得するキー (外部リンク（定額サービス）用) */
	private static final String TEGAK_SVC_MSKM_ENCRYPTION_KEY = "TEGAK_SVC_MSKM_ENCRYPTION_KEY";

	/** アプリケーションプロパティから共通暗号化キーを取得するキー (mineo申込) */
	private static final String MINEO_MSKM_ENCRYPTION_KEY = "MINEO_MSKM_ENCRYPTION_KEY";
	/** アプリケーションプロパティから初期化ベクトルを取得するキー (mineo申込) */
	private static final String MINEO_MSKM_ENCRYPTION_IV_KEY = "MINEO_MSKM_ENCRYPTION_IV_KEY";
	/** 複合化キー */
    private static final String TRUE_KEY = "ENCRYPT_KEY";

	/** サービスID：FUSV0348 */
	private static final String USECASE_ID_FUSV0348 = "FUSV0348";
// ANK-4598-00-00 ADD START
	/** サービスID:SMS送信・キャンセル */
	private static final String USECASE_ID_FUSV0343 = "FUSV0343";
	/** サービスID:SMS送信連携（eoID・eoIDパスワード） */
	private static final String USECASE_ID_FUSV0379 = "FUSV0379";
	// ANK-4598-00-00 ADD END
	
	/**
	 * 初期表示処理
	 *
	 * @return true
	 * @throws Exception
	 */
	public boolean init() throws Exception
	{
		// デバッグ用ログ出力
		DEBUG_LOG.info("----- init_Start -----");

		// 共有フォームBean取得
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();
		// サービスフォームBean取得
		X31SDataBeanAccess serviceInfoBean = getServiceFormBean();

		// ＷＥＢ新規情報取得
		X31SDataBeanAccess webNewInfoBean = JFUWebCommon.getDataBeanTypeByPath(commonInfoBean, JFUWebCommon.WEB_NEW_INFO);

		// 契約サービス情報取得
		X31SDataBeanAccess keiyakuSvcInfoBean = JFUWebCommon.getDataBeanTypeByPath(commonInfoBean, JFUWebCommon.KEIYAKU_SVC_INFO);

		// eo光ネット取得
		X31SDataBeanAccess eonetBean = JFUWebCommon.getDataBeanTypeByPath(commonInfoBean, JFUWebCommon.EONET);

		// eo光電話取得
		X31SDataBeanAccess eotelBean = JFUWebCommon.getDataBeanTypeByPath(commonInfoBean, JFUWebCommon.EOTEL);

		// eo光テレビ取得
		X31SDataBeanAccess eotvBean = JFUWebCommon.getDataBeanTypeByPath(commonInfoBean, JFUWebCommon.EOTV);

		// eoモバイル取得
		X31SDataBeanAccess eomobileBean = JFUWebCommon.getDataBeanTypeByPath(commonInfoBean, JFUWebCommon.EOMOBILE);

		// マンション情報
		X31SDataBeanAccess mansionInfoBean = JFUWebCommon.getDataBeanTypeByPath(commonInfoBean, JFUWebCommon.MANSION_INFO);

		// 申込回線サービス
		String mskm_ksn_svc = webNewInfoBean.sendMessageString(CommonInfoCFConst.MSKM_KSN_SVC_06, X31CWebConst.DATABEAN_GET_VALUE);
		// 申込マンションタイプ
		String mskmMnsType = webNewInfoBean.sendMessageString(CommonInfoCFConst.MSKM_MNS_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE);
		// 提供方式パターンコード
		String tkHoshikiPtnCd = mansionInfoBean.sendMessageString(CommonInfoCFConst.TEIKYO_HOSHIKI_PTN_CD_16, X31CWebConst.DATABEAN_GET_VALUE);

		/**
		 * 集合住宅情報表示制御フラグ処理 ＷＥＢ新規情報[0].申込回線サービス=2(マンションタイプ)になっている場合に表示
		 * */
		String mansion_type = webNewInfoBean.sendMessageString(CommonInfoCFConst.MSKM_MNS_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE);
		if ((JFUStrConst.MSKM_KSN_SVC_MANSION.equals(webNewInfoBean.sendMessageString(CommonInfoCFConst.MSKM_KSN_SVC_06,
				X31CWebConst.DATABEAN_GET_VALUE)) && (JFUStrConst.MSKM_MNS_TYPE_MANSION.equals(mansion_type) || JFUStrConst.MSKM_MNS_TYPE_MEZON
				.equals(mansion_type))))
		{
			serviceInfoBean.sendMessageBoolean(FUW00932SFConst.MANSION_INFO_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, VIEW_MODE_ON);
		}
		else
		{
			serviceInfoBean.sendMessageBoolean(FUW00932SFConst.MANSION_INFO_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, VIEW_MODE_OFF);
		}

		// サービス名リスト
		X31SDataBeanAccessArray beanArray = serviceInfoBean.getDataBeanArray(FUW00932SFConst.SERVICE_LIST);

		// サービス名称取得
		Map<String, String> servicenameMap = JFUWebCommon.getDispItemsAsMap(QUERY_PATH, QUERY_ATTR_NAME);

		// 受付番号取得
		String uketsuke = keiyakuSvcInfoBean.sendMessageString(CommonInfoCFConst.MSKMSHO_NO_10, X31CWebConst.DATABEAN_GET_VALUE);

		serviceInfoBean.sendMessageString(FUW00932SFConst.UKETSUKE, X31CWebConst.DATABEAN_SET_VALUE, uketsuke);

		// 選択サービス（ネット）が"1"(選択中)の場合
		if (!isNullBean(keiyakuSvcInfoBean)
				&& JFUStrConst.SELECT_SVC_NET_CHOICE.equals(keiyakuSvcInfoBean.sendMessageString(CommonInfoCFConst.SELECT_SVC_NET_10,
						X31CWebConst.DATABEAN_GET_VALUE)))
		{
			String serviceNameTypeKey = null;
			String serviceNameCoseKey = null;

			// eo光ネットタイプ：ホーム・マンション判定
			if (JFUStrConst.MSKM_KSN_SVC_HOME.equals(webNewInfoBean.sendMessageString(CommonInfoCFConst.MSKM_KSN_SVC_06,
					X31CWebConst.DATABEAN_GET_VALUE)))
			{

				if (!isNullBean(eonetBean))
				{
// ANK-4427-00-00 MOD START
					String typenFlg = webNewInfoBean.sendMessageString(CommonInfoCFConst.TYPEN_FLG_06, X31CWebConst.DATABEAN_GET_VALUE);
					//TYPE N の場合
					if (!JFUWebCommon.isNull(typenFlg))
					{
						serviceNameTypeKey = NET_TIPE_TYPE_N;
					}
					//通常のホームタイプ の場合
					else
					{
						serviceNameTypeKey = NET_TIPE_HOME;
					}
// ANK-4427-00-00 MOD END
					serviceNameCoseKey = NET_COURSE + eonetBean.sendMessageString(CommonInfoCFConst.NET_COURSE_11, X31CWebConst.DATABEAN_GET_VALUE);

				}

			}
			else if (JFUStrConst.MSKM_KSN_SVC_MANSION.equals(webNewInfoBean.sendMessageString(CommonInfoCFConst.MSKM_KSN_SVC_06,
					X31CWebConst.DATABEAN_GET_VALUE))
					&& JFUWebCommon.isTkHosikiChgSbtCd(mansionInfoBean))
			{
				// 料金コースと画面表示コースが異なる
				serviceNameTypeKey = NET_TIPE_MANSHON;
				serviceNameCoseKey = NET_COURSE_CHG + JFUWebCommon.getMansionTonaiSpeedCd(mansionInfoBean);
			}
			else if (JFUStrConst.MSKM_KSN_SVC_MANSION.equals(webNewInfoBean.sendMessageString(CommonInfoCFConst.MSKM_KSN_SVC_06,
					X31CWebConst.DATABEAN_GET_VALUE)))
			{
				// eo光ネットタイプ：マンション・メゾン判定
				if (!isNullBean(eonetBean)
						&& JFUStrConst.MSKM_MNS_TYPE_MANSION.equals(webNewInfoBean.sendMessageString(CommonInfoCFConst.MSKM_MNS_TYPE_06,
								X31CWebConst.DATABEAN_GET_VALUE)))
				{
					serviceNameTypeKey = NET_TIPE_MANSHON;
					serviceNameCoseKey = NET_COURSE + eonetBean.sendMessageString(CommonInfoCFConst.NET_COURSE_11, X31CWebConst.DATABEAN_GET_VALUE);
				}
				else if (!isNullBean(eonetBean)
						&& JFUStrConst.MSKM_MNS_TYPE_MEZON.equals(webNewInfoBean.sendMessageString(CommonInfoCFConst.MSKM_MNS_TYPE_06,
								X31CWebConst.DATABEAN_GET_VALUE)))
				{
					serviceNameTypeKey = NET_TIPE_MEZON;
					serviceNameCoseKey = NET_COURSE + eonetBean.sendMessageString(CommonInfoCFConst.NET_COURSE_11, X31CWebConst.DATABEAN_GET_VALUE);
				}
			}

			// サービス名・受付番号セット
			if (!isNullOrEmpty(serviceNameTypeKey) && !isNullOrEmpty(serviceNameCoseKey))
			{

				String serviceNameNet = null;

				if (!isNullOrEmpty(servicenameMap.get(serviceNameTypeKey)))
				{
					serviceNameNet = servicenameMap.get(serviceNameTypeKey);
				}

				// 2013.7.9 VDSLコース名非表示対応
				if(JFUStrConst.MSKM_KSN_SVC_MANSION.equals(mskm_ksn_svc) && JFUStrConst.MSKM_MNS_TYPE_MANSION.equals(mskmMnsType)
						&& (JFUStrConst.TK_HOSHIKI_PTN_VDSL.equals(tkHoshikiPtnCd) || JFUStrConst.TK_HOSHIKI_PTN_VDSLS.equals(tkHoshikiPtnCd)))
				{
					serviceNameCoseKey = JFUStrConst.EMPTY;
				}

				if (!isNullOrEmpty(servicenameMap.get(serviceNameCoseKey)))
				{
					serviceNameNet = serviceNameNet + servicenameMap.get(serviceNameCoseKey);
				}
				// サービス名セット
				setService(beanArray, serviceNameNet);
			}
		}

		// 選択サービス（電話）が"1"(選択中)の場合
		if (!isNullBean(eotelBean)
				&& JFUStrConst.SELECT_SVC_CHOICE.equals(keiyakuSvcInfoBean.sendMessageString(CommonInfoCFConst.SELECT_SVC_TEL_10,
						X31CWebConst.DATABEAN_GET_VALUE)))
		{
			String serviceNameKey = TEL_COURSE + webNewInfoBean.sendMessageString(CommonInfoCFConst.TEL_COURSE_06, X31CWebConst.DATABEAN_GET_VALUE);

			String serviceNameTel = servicenameMap.get(serviceNameKey);

			// サービス名セット
			setService(beanArray, serviceNameTel);
		}

		// 選択サービス（テレビ）が"1"(選択中)の場合
		if (!isNullBean(eotvBean)
				&& JFUStrConst.SELECT_SVC_TV_CHOICE.equals(keiyakuSvcInfoBean.sendMessageString(CommonInfoCFConst.SELECT_SVC_TV_10,
						X31CWebConst.DATABEAN_GET_VALUE)))
		{
			String serviceNameKey = TV_COURSE + eotvBean.sendMessageString(CommonInfoCFConst.TV_COURSE_13, X31CWebConst.DATABEAN_GET_VALUE);

			String serviceNameTv = servicenameMap.get(serviceNameKey);

			// サービス名セット
			setService(beanArray, serviceNameTv);
		}

		// モバイル判定
		if (!isNullBean(eomobileBean)
				&& !isNullOrEmpty(eomobileBean.sendMessageString(CommonInfoCFConst.MOBILE_COURSE_14, X31CWebConst.DATABEAN_GET_VALUE)))
		{

			if (!JFUStrConst.MOBILE_COURSE_NON.equals(eomobileBean.sendMessageString(CommonInfoCFConst.MOBILE_COURSE_14,
					X31CWebConst.DATABEAN_GET_VALUE)))
			{
				String serviceNameKey =
						MOBILE_COURSE + eomobileBean.sendMessageString(CommonInfoCFConst.MOBILE_COURSE_14, X31CWebConst.DATABEAN_GET_VALUE);
				// サービス名取得
				String serviceNameMobile = servicenameMap.get(serviceNameKey);

				// サービス名セット
				setService(beanArray, serviceNameMobile);
			}
		}

		//取次票表示判定を行う。　以下の条件に全て満たしている時True,それ以外はFalse
		if (JFUStrConst.SELECT_SVC_NET_CHOICE.equals(keiyakuSvcInfoBean.sendMessageString(CommonInfoCFConst.SELECT_SVC_NET_10,
				X31CWebConst.DATABEAN_GET_VALUE))
				&& JFUStrConst.SELECT_SVC_CHOICE.equals(keiyakuSvcInfoBean.sendMessageString(CommonInfoCFConst.SELECT_SVC_TEL_10,
						X31CWebConst.DATABEAN_GET_VALUE))
				&& !JFUStrConst.NET_COURSE_100M_LIGHT.equals(eonetBean.sendMessageString(CommonInfoCFConst.NET_COURSE_11,
						X31CWebConst.DATABEAN_GET_VALUE)))
		{
			serviceInfoBean.sendMessageBoolean(FUW00932SFConst.TRTG_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, VIEW_MODE_ON);
		}
		else
		{
			serviceInfoBean.sendMessageBoolean(FUW00932SFConst.TRTG_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, VIEW_MODE_OFF);
		}

		// ANK-2990-00-00 ADD START
		// eo電気同時申込みの場合、eo電気外部連携情報を設定する
		String eoelecDojiMskm = webNewInfoBean.sendMessageString(CommonInfoCFConst.EOELEC_DOJI_MSKM_ISHI_UM_06, X31CWebConst.DATABEAN_GET_VALUE);
		if (JFUStrConst.CD00002_1.equals(eoelecDojiMskm))
		{
			// その他情報取得
			X31SDataBeanAccess elseInfoBean = webNewInfoBean.getDataBeanArray(CommonInfoCFConst.ELSE_INFO).getDataBean(0);

			// 暗号化前の値
			// sysid
			String outlink_elec_sysid = webNewInfoBean.sendMessageString(CommonInfoCFConst.SYSID_06, X31CWebConst.DATABEAN_GET_VALUE);
// ANK-3518-00-00 ADD START
			// eoid
			String outlink_elec_eoid = webNewInfoBean.sendMessageString(CommonInfoCFConst.EOID_06, X31CWebConst.DATABEAN_GET_VALUE);
// ANK-3518-00-00 ADD END
			// サービス契約番号
			String outlink_elec_okid = eonetBean.sendMessageString(CommonInfoCFConst.SVC_KEI_NO_11, X31CWebConst.DATABEAN_GET_VALUE);
// ANK-3210-00-00 ADD START
			if ("".equals(outlink_elec_okid))
			{
				outlink_elec_okid = eotelBean.sendMessageString(CommonInfoCFConst.SVC_KEI_NO_11, X31CWebConst.DATABEAN_GET_VALUE);
				
				if ("".equals(outlink_elec_okid))
				{
					outlink_elec_okid = eotvBean.sendMessageString(CommonInfoCFConst.SVC_KEI_NO_11, X31CWebConst.DATABEAN_GET_VALUE);
				}
			}
// ANK-3210-00-00 ADD END
			// 申込書番号
			String outlink_mskmsho_no = keiyakuSvcInfoBean.sendMessageString(CommonInfoCFConst.MSKMSHO_NO_11, X31CWebConst.DATABEAN_GET_VALUE);
			// 取扱コード1-1（取扱店用取扱コード）
			String outlink_trat_cd_1_1 = elseInfoBean.sendMessageString(CommonInfoCFConst.TORITEN_TORIATSUKAI_CD_18, X31CWebConst.DATABEAN_GET_VALUE);
			// 取扱コード1-2（担当者用取扱コード）
			String outlink_trat_cd_1_2 = elseInfoBean.sendMessageString(CommonInfoCFConst.TNTSHA_TORIATSUKAI_CD_18, X31CWebConst.DATABEAN_GET_VALUE);
			// 販売タイプ
			String hanbaiType = webNewInfoBean.sendMessageString(CommonInfoCFConst.HANBAI_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE);
			// 受付担当ユーザーID（担当者ID）
			String outlink_mskm_uk_tnt_user_id = elseInfoBean.sendMessageString(CommonInfoCFConst.TANTOSHA_ID_18, X31CWebConst.DATABEAN_GET_VALUE);
			// 共通暗号化キーをAPLConstから取得
			String outlink_elec_cck = JCCWebCommon.getApplicationConst(ELEC_MSKM_ENCRYPTION_KEY);

			// 外部リンク用パラメータ暗号化処理
			// 暗号化用ランダムキー取得
			String randomKey = JFUCommonUtil.createRondomKey();
			// 外部リンク（電気）用SYSID (共有フォームBean.ＷＥＢ新規情報.ｓｙｓＩＤをランダムキーにて暗号化した値)
			String criptElecSysid = JFUCommonUtil.encrypt(randomKey, outlink_elec_sysid);
			serviceInfoBean.sendMessageString(FUW00932SFConst.OUTLINK_ELEC_SYSID, X31CWebConst.DATABEAN_SET_VALUE, criptElecSysid);
// ANK-3518-00-00 ADD START
			// 外部リンク（電気）用eoID (共有フォームBean.ＷＥＢ新規情報.ｅｏＩＤをランダムキーにて暗号化した値)
			if (!JFUWebCommon.isNull(outlink_elec_eoid))
			{
				String criptElecEoid = JFUCommonUtil.encrypt(randomKey, outlink_elec_eoid);
				serviceInfoBean.sendMessageString(FUW00932SFConst.OUTLINK_ELEC_EOID, X31CWebConst.DATABEAN_SET_VALUE, criptElecEoid);
			}
// ANK-3518-00-00 ADD END
			// 外部リンク（電気）用サービス契約番号 (サービス契約ネットリスト.サービス契約ネットリスト.サービス契約番号をランダムキーにて暗号化した値)
			String criptElecOkid = JFUCommonUtil.encrypt(randomKey, outlink_elec_okid);
			serviceInfoBean.sendMessageString(FUW00932SFConst.OUTLINK_ELEC_OKID, X31CWebConst.DATABEAN_SET_VALUE, criptElecOkid);
			// 外部リンク（電気）用申込書番号 (共有フォームBean.契約サービス情報.申込書番号)
			String criptElecMskmshoNo = JFUCommonUtil.encrypt(randomKey, outlink_mskmsho_no);
			serviceInfoBean.sendMessageString(FUW00932SFConst.OUTLINK_ELEC_MSKMSHO_NO, X31CWebConst.DATABEAN_SET_VALUE, criptElecMskmshoNo);
			// 外部リンク（電気）用暗号キー (ランダムキーを共通暗号化キーで暗号化した値)
			String criptOutlinkElecCk =  JFUCommonUtil.encryptBeforeDecryptKey(outlink_elec_cck, randomKey);
			serviceInfoBean.sendMessageString(FUW00932SFConst.OUTLINK_ELEC_CK, X31CWebConst.DATABEAN_SET_VALUE, criptOutlinkElecCk);
			// 外部リンク（電気）用取扱コード1-1 (共有フォームBean.ＷＥＢ新規情報.その他情報.取扱店用取扱コードをランダムキーにて暗号化した値)
			String criptTratCd_1_1 = JFUCommonUtil.encrypt(randomKey, outlink_trat_cd_1_1);
			serviceInfoBean.sendMessageString(FUW00932SFConst.OUTLINK_TRAT_CD_1_1, X31CWebConst.DATABEAN_SET_VALUE, criptTratCd_1_1); 

			// 外部リンク（電気）用取扱コード1-2 
			if (!isNullOrEmpty(outlink_trat_cd_1_2))
			{
				// 共有フォームBean.ＷＥＢ新規情報.その他情報.担当者用取扱コードをランダムキーにて暗号化した値（※値がある場合のみ）
				String criptTratCd_1_2 = JFUCommonUtil.encrypt(randomKey, outlink_trat_cd_1_2);
				serviceInfoBean.sendMessageString(FUW00932SFConst.OUTLINK_TRAT_CD_1_2, X31CWebConst.DATABEAN_SET_VALUE, criptTratCd_1_2);
			}

			// 外部リンク（電気）申込形態
			if (JFUStrConst.HNBAI_TYPE_RYOHAN.equals(hanbaiType))
			{
				// 共有フォームBean.ＷＥＢ新規情報.販売タイプが量販の場合、申込形態コード「量販」をランダムキーにて暗号化した値
				String criptMskmFormCd = JFUCommonUtil.encrypt(randomKey, JFUStrConst.CD00591_02);
				serviceInfoBean.sendMessageString(FUW00932SFConst.OUTLINK_MSKM_FORM_CD, X31CWebConst.DATABEAN_SET_VALUE, criptMskmFormCd);
			}
			else if (JFUStrConst.HNBAI_TYPE_HOHAN.equals(hanbaiType))
			{
				// 共有フォームBean.ＷＥＢ新規情報.販売タイプが訪販の場合、申込形態コード「訪販」をランダムキーにて暗号化した値
				String criptMskmFormCd = JFUCommonUtil.encrypt(randomKey, JFUStrConst.CD00591_03);
				serviceInfoBean.sendMessageString(FUW00932SFConst.OUTLINK_MSKM_FORM_CD, X31CWebConst.DATABEAN_SET_VALUE, criptMskmFormCd);
			}

			// 外部リンク（電気）用受付担当ユーザーID (共有フォームBean.ＷＥＢ新規情報.その他情報.担当者ＩＤをランダムキーにて暗号化した値)
			String criptMskmUkTntUserId = JFUCommonUtil.encrypt(randomKey, outlink_mskm_uk_tnt_user_id);
			serviceInfoBean.sendMessageString(FUW00932SFConst.OUTLINK_MSKM_UK_TNT_USER_ID, X31CWebConst.DATABEAN_SET_VALUE, criptMskmUkTntUserId);
		}
		// ANK-2990-00-00 ADD END

		// 定額サービス申込有の場合
		String tegakSvcMskmUm = webNewInfoBean.sendMessageString(CommonInfoCFConst.TEGAK_SVC_MSKM_UM_06, X31CWebConst.DATABEAN_GET_VALUE);
		if (JFUStrConst.CD00002_1.equals(tegakSvcMskmUm))
		{
			// その他情報取得
			X31SDataBeanAccess elseInfoBean = webNewInfoBean.getDataBeanArray(CommonInfoCFConst.ELSE_INFO).getDataBean(0);

			// ●暗号化前の値
			// sysid + YYYYMMDDHHMMSS
			String outlink_tegak_svc_sysid = webNewInfoBean.sendMessageString(CommonInfoCFConst.SYSID_06, X31CWebConst.DATABEAN_GET_VALUE);
			if (!JFUWebCommon.isNull(outlink_tegak_svc_sysid))
			{
				outlink_tegak_svc_sysid = outlink_tegak_svc_sysid + JFUWebCommon.getOpeDateTime(this, null);
			}
			// eoid + YYYYMMDDHHMMSS
			String outlink_tegak_svc_eoid = webNewInfoBean.sendMessageString(CommonInfoCFConst.EOID_06, X31CWebConst.DATABEAN_GET_VALUE);
			if (!JFUWebCommon.isNull(outlink_tegak_svc_eoid))
			{
				outlink_tegak_svc_eoid = outlink_tegak_svc_eoid + JFUWebCommon.getOpeDateTime(this, null);
			}
			// サービス契約番号
			String outlink_tegak_svc_okid = eonetBean.sendMessageString(CommonInfoCFConst.SVC_KEI_NO_11, X31CWebConst.DATABEAN_GET_VALUE);
			if ("".equals(outlink_tegak_svc_okid))
			{
				outlink_tegak_svc_okid = eotelBean.sendMessageString(CommonInfoCFConst.SVC_KEI_NO_11, X31CWebConst.DATABEAN_GET_VALUE);
				
				if ("".equals(outlink_tegak_svc_okid))
				{
					outlink_tegak_svc_okid = eotvBean.sendMessageString(CommonInfoCFConst.SVC_KEI_NO_11, X31CWebConst.DATABEAN_GET_VALUE);
				}
			}
			// 申込書番号
			String outlink_tegak_svc_mskmsho_no = keiyakuSvcInfoBean.sendMessageString(CommonInfoCFConst.MSKMSHO_NO_11, X31CWebConst.DATABEAN_GET_VALUE);
			// 取扱コード1-1（取扱店用取扱コード）
			String outlink_tegak_svc_trat_cd_1_1 = elseInfoBean.sendMessageString(CommonInfoCFConst.TORITEN_TORIATSUKAI_CD_18, X31CWebConst.DATABEAN_GET_VALUE);
			// 取扱コード1-2（担当者用取扱コード）
			String outlink_tegak_svc_trat_cd_1_2 = elseInfoBean.sendMessageString(CommonInfoCFConst.TNTSHA_TORIATSUKAI_CD_18, X31CWebConst.DATABEAN_GET_VALUE);
			// 販売タイプ
			String hanbaiType = webNewInfoBean.sendMessageString(CommonInfoCFConst.HANBAI_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE);
			// 受付担当ユーザーID（担当者ID）
			String outlink_tegak_svc_mskm_uk_tnt_user_id = elseInfoBean.sendMessageString(CommonInfoCFConst.TANTOSHA_ID_18, X31CWebConst.DATABEAN_GET_VALUE);

			// 定額サービスコース
			String outlink_tegak_svc_crs = webNewInfoBean.sendMessageString(CommonInfoCFConst.TEGAK_SVC_COURSE_06, X31CWebConst.DATABEAN_GET_VALUE);
			List<String> outlink_tegak_svc_crs_list = new ArrayList<String>();
			if (outlink_tegak_svc_crs.contains(JFUStrConst.COMMA))
			{
				// カンマで分割して格納
				outlink_tegak_svc_crs_list = Arrays.asList(outlink_tegak_svc_crs.split(JFUStrConst.COMMA));
			}
			else
			{
				// そのまま格納
				outlink_tegak_svc_crs_list = Arrays.asList(outlink_tegak_svc_crs);
			}

			// 代理店名(取扱店名)
			String outlink_tegak_svc_agnt_nm = elseInfoBean.sendMessageString(CommonInfoCFConst.TORIATSUKAI_NM_18, X31CWebConst.DATABEAN_GET_VALUE);
			// 申込受付担当ユーザー名(担当者名)
			String outlink_tegak_svc_mskm_uk_tnt_user_nm = elseInfoBean.sendMessageString(CommonInfoCFConst.TANTOSHA_NM_18, X31CWebConst.DATABEAN_GET_VALUE);

			// 共通暗号化キーをAPLConstから取得
			String outlink_tegak_svc_ck = JCCWebCommon.getApplicationConst(TEGAK_SVC_MSKM_ENCRYPTION_KEY);

			// ●外部リンク用パラメータ暗号化処理
			// 暗号化用ランダムキー取得
			String randomKey = JFUCommonUtil.createRondomKey();
			// 外部リンク（定額サービス）用SYSID (共有フォームBean.ＷＥＢ新規情報.ｓｙｓＩＤをランダムキーにて暗号化した値)
			String encSysid = JFUCommonUtil.encrypt(randomKey, outlink_tegak_svc_sysid);
			serviceInfoBean.sendMessageString(FUW00932SFConst.OUTLINK_TEGAK_SYSID, X31CWebConst.DATABEAN_SET_VALUE, encSysid);
			// 外部リンク（定額サービス）用eoID (共有フォームBean.ＷＥＢ新規情報.ｅｏＩＤをランダムキーにて暗号化した値)
			if (!JFUWebCommon.isNull(outlink_tegak_svc_eoid))
			{
				String encEoid = JFUCommonUtil.encrypt(randomKey, outlink_tegak_svc_eoid);
				serviceInfoBean.sendMessageString(FUW00932SFConst.OUTLINK_TEGAK_EOID, X31CWebConst.DATABEAN_SET_VALUE, encEoid);
			}
			// 外部リンク（定額サービス）用サービス契約番号 (サービス契約ネットリスト.サービス契約ネットリスト.サービス契約番号をランダムキーにて暗号化した値)
			String enkOkid = JFUCommonUtil.encrypt(randomKey, outlink_tegak_svc_okid);
			serviceInfoBean.sendMessageString(FUW00932SFConst.OUTLINK_TEGAK_OKID, X31CWebConst.DATABEAN_SET_VALUE, enkOkid);
			// 外部リンク（定額サービス）用申込書番号 (共有フォームBean.契約サービス情報.申込書番号)
			String encMskmshoNo = JFUCommonUtil.encrypt(randomKey, outlink_tegak_svc_mskmsho_no);
			serviceInfoBean.sendMessageString(FUW00932SFConst.OUTLINK_TEGAK_MSKMSHO_NO, X31CWebConst.DATABEAN_SET_VALUE, encMskmshoNo);
			// 外部リンク（定額サービス）用暗号キー (ランダムキーを共通暗号化キーで暗号化した値)
			String encCk =  JFUCommonUtil.encryptBeforeDecryptKey(outlink_tegak_svc_ck, randomKey);
			serviceInfoBean.sendMessageString(FUW00932SFConst.OUTLINK_TEGAK_CK, X31CWebConst.DATABEAN_SET_VALUE, encCk);
			// 外部リンク（定額サービス）用取扱コード1-1 (共有フォームBean.ＷＥＢ新規情報.その他情報.取扱店用取扱コードをランダムキーにて暗号化した値)
			String encTratCd_1_1 = JFUCommonUtil.encrypt(randomKey, outlink_tegak_svc_trat_cd_1_1);
			serviceInfoBean.sendMessageString(FUW00932SFConst.OUTLINK_TEGAK_TRAT_CD_1_1, X31CWebConst.DATABEAN_SET_VALUE, encTratCd_1_1); 

			// 外部リンク（定額サービス）用取扱コード1-2 
			if (!isNullOrEmpty(outlink_tegak_svc_trat_cd_1_2))
			{
				// 共有フォームBean.ＷＥＢ新規情報.その他情報.担当者用取扱コードをランダムキーにて暗号化した値（※値がある場合のみ）
				String encTratCd_1_2 = JFUCommonUtil.encrypt(randomKey, outlink_tegak_svc_trat_cd_1_2);
				serviceInfoBean.sendMessageString(FUW00932SFConst.OUTLINK_TEGAK_TRAT_CD_1_2, X31CWebConst.DATABEAN_SET_VALUE, encTratCd_1_2);
			}

			// 外部リンク（定額サービス）申込形態
			if (JFUStrConst.HNBAI_TYPE_RYOHAN.equals(hanbaiType))
			{
				// 共有フォームBean.ＷＥＢ新規情報.販売タイプが量販の場合、申込形態コード「量販」をランダムキーにて暗号化した値
				String encMskmFormCd = JFUCommonUtil.encrypt(randomKey, JFUStrConst.CD00591_02);
				serviceInfoBean.sendMessageString(FUW00932SFConst.OUTLINK_TEGAK_MSKM_FORM_CD, X31CWebConst.DATABEAN_SET_VALUE, encMskmFormCd);
			}
			else if (JFUStrConst.HNBAI_TYPE_HOHAN.equals(hanbaiType))
			{
				// 共有フォームBean.ＷＥＢ新規情報.販売タイプが訪販の場合、申込形態コード「訪販」をランダムキーにて暗号化した値
				String encMskmFormCd = JFUCommonUtil.encrypt(randomKey, JFUStrConst.CD00591_03);
				serviceInfoBean.sendMessageString(FUW00932SFConst.OUTLINK_TEGAK_MSKM_FORM_CD, X31CWebConst.DATABEAN_SET_VALUE, encMskmFormCd);
			}

			// 外部リンク（定額サービス）用受付担当ユーザーID (共有フォームBean.ＷＥＢ新規情報.その他情報.担当者ＩＤをランダムキーにて暗号化した値)
			String encMskmUkTntUserId = JFUCommonUtil.encrypt(randomKey, outlink_tegak_svc_mskm_uk_tnt_user_id);
			serviceInfoBean.sendMessageString(FUW00932SFConst.OUTLINK_TEGAK_MSKM_UK_TNT_USER_ID, X31CWebConst.DATABEAN_SET_VALUE, encMskmUkTntUserId);

			// 外部リンク（定額サービス）用契約情報
			X31SDataBeanAccessArray tegakSvcKeiList = serviceInfoBean.getDataBeanArray(FUW00932SFConst.OUTLINK_TEGAK_KEI_LIST);
			tegakSvcKeiList.clearArray();

			for (int i = 0; i < outlink_tegak_svc_crs_list.size(); i++)
			{
				X31SDataBeanAccess tegakSvcKeiBean = tegakSvcKeiList.addDataBean();

				String[] tegakSvcKei = outlink_tegak_svc_crs_list.get(i).split(JFUStrConst.SLASH);

				String encKeiSbtCd = JFUCommonUtil.encrypt(randomKey, tegakSvcKei[0]);
				String encKikiSbtCd = JFUStrConst.EMPTY;

				if (tegakSvcKei.length == 2)
				{
					// 機器種別コードは任意項目
					encKikiSbtCd = JFUCommonUtil.encrypt(randomKey, tegakSvcKei[1]);
				}

				tegakSvcKeiBean.sendMessageString(FUW00932SFConst.KEI_SBT_CD_02, X31CWebConst.DATABEAN_SET_VALUE, encKeiSbtCd);
				tegakSvcKeiBean.sendMessageString(FUW00932SFConst.KIKI_SBT_CD_02, X31CWebConst.DATABEAN_SET_VALUE, encKikiSbtCd);
			}

			// 外部リンク（定額サービス）用代理店名 (共有フォームBean.ＷＥＢ新規情報.その他情報.取扱店名をランダムキーにて暗号化した値)
			String encAgntNm = JFUCommonUtil.encrypt(randomKey, outlink_tegak_svc_agnt_nm);
			serviceInfoBean.sendMessageString(FUW00932SFConst.OUTLINK_TEGAK_AGNT_NM, X31CWebConst.DATABEAN_SET_VALUE, encAgntNm);

			// 外部リンク（定額サービス）用申込受付担当ユーザー名 (共有フォームBean.ＷＥＢ新規情報.その他情報.担当者名をランダムキーにて暗号化した値)
			String encMskmUkTntUserNm = JFUCommonUtil.encrypt(randomKey, outlink_tegak_svc_mskm_uk_tnt_user_nm);
			serviceInfoBean.sendMessageString(FUW00932SFConst.OUTLINK_TEGAK_MSKM_UK_TNT_USER_NM, X31CWebConst.DATABEAN_SET_VALUE, encMskmUkTntUserNm);
		}

		// mineo情報
		X31SDataBeanAccess mineoBean = getMineoSvcInfo(commonInfoBean);

		// mineo外部連携情報設定
		if (mineoBean.sendMessageBoolean(CommonInfoCFConst.MINEO_MSKM_FLG_57, X31CWebConst.DATABEAN_GET_VALUE))
		{
			// 契約者情報
			X31SDataBeanAccess keiyakushaInfoBean = getKeiyakushaInfo(webNewInfoBean);

			// その他情報
			X31SDataBeanAccess elseInfoBean = webNewInfoBean.getDataBeanArray(CommonInfoCFConst.ELSE_INFO).getDataBean(0);

			// 契約種別
			String keiSbt = webNewInfoBean.sendMessageString(CommonInfoCFConst.KEI_SBT_06, X31CWebConst.DATABEAN_GET_VALUE);

			// 共通暗号化キーをAPLConstから取得
			String outlinkMineoKey = JFUCommonUtil.decryptKey(TRUE_KEY, JCCWebCommon.getApplicationConst(MINEO_MSKM_ENCRYPTION_KEY));
			// 初期化ベクトルをAPLConstから取得
			String outlinkMineoIv =JFUCommonUtil.decryptKey(TRUE_KEY, JCCWebCommon.getApplicationConst(MINEO_MSKM_ENCRYPTION_IV_KEY));

			// ｓｙｓＩＤ
			String outlinkMineoSysid = webNewInfoBean.sendMessageString(CommonInfoCFConst.SYSID_06, X31CWebConst.DATABEAN_GET_VALUE);
			// 申込書番号/受付番号
			String outlinkMineoUkNo = keiyakuSvcInfoBean.sendMessageString(CommonInfoCFConst.MSKMSHO_NO_11, X31CWebConst.DATABEAN_GET_VALUE);

			// 個人メールアドレス
			String kojinMlad = keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.KOJIN_MLAD_09, X31CWebConst.DATABEAN_GET_VALUE);
			// 法人メールアドレス
			String hojinMlad = keiyakushaInfoBean.sendMessageString(CommonInfoCFConst.HOJIN_MLAD_09, X31CWebConst.DATABEAN_GET_VALUE);
			// 店舗コード
			String tenpoCd = elseInfoBean.sendMessageString(CommonInfoCFConst.TORIATSUKAI_ID_18, X31CWebConst.DATABEAN_GET_VALUE);
			// ログインID
			String loginId = elseInfoBean.sendMessageString(CommonInfoCFConst.TANTOSHA_ID_18, X31CWebConst.DATABEAN_GET_VALUE);
			// パスワード
			String password = elseInfoBean.sendMessageString(CommonInfoCFConst.TANTOSHA_PW_18, X31CWebConst.DATABEAN_GET_VALUE);
			// 取扱コード1-2
			String toriCd12 = elseInfoBean.sendMessageString(CommonInfoCFConst.TNTSHA_TORIATSUKAI_CD_18, X31CWebConst.DATABEAN_GET_VALUE);

			// ●mineo連携値の設定
			// SYSID(暗号化なし)
			serviceInfoBean.sendMessageString(FUW00943SFConst.OUTLINK_MINEO_SYSID, X31CWebConst.DATABEAN_SET_VALUE, outlinkMineoSysid);
			// 申込書番号/受付番号(暗号化なし)
			serviceInfoBean.sendMessageString(FUW00943SFConst.OUTLINK_MINEO_UK_NO, X31CWebConst.DATABEAN_SET_VALUE, outlinkMineoUkNo);

			setSFBeanEncContentsMlad(commonInfoBean, serviceInfoBean);

			// 店舗コード(暗号化なし)
			serviceInfoBean.sendMessageString(FUW00943SFConst.OUTLINK_MINEO_TENPO_CD, X31CWebConst.DATABEAN_SET_VALUE, tenpoCd);
			// ログインID(暗号化なし)
			serviceInfoBean.sendMessageString(FUW00943SFConst.OUTLINK_MINEO_LOGIN_ID, X31CWebConst.DATABEAN_SET_VALUE, loginId);

			// パスワード(暗号化あり)
			String encPassword = JFUEncryptUtil.encryptAES(outlinkMineoKey, outlinkMineoIv, password);
			serviceInfoBean.sendMessageString(FUW00943SFConst.OUTLINK_MINEO_PW, X31CWebConst.DATABEAN_SET_VALUE, encPassword);

			// 取扱コード1-2(暗号化なし)
			serviceInfoBean.sendMessageString(FUW00943SFConst.OUTLINK_MINEO_TORI_CD_1_2, X31CWebConst.DATABEAN_SET_VALUE, toriCd12);
		}

		
		// 申込受付実績登録部品実行
		JFUWebCommon.executeWebMskmUkJskAdd(this);

		// アクセスログ操作区分設定処理
		setAccLogSosaDiv();

		DEBUG_LOG.info("----- init_End  -----");

		return true;
	}

	/**
	 * 申込サービス名と受付番号を設定する。 <br>
	 *
	 * @param beanArray
	 *            データbean
	 * @param serviceName
	 *            申込サービス名
	 * @throws Exception
	 */
	private void setService(X31SDataBeanAccessArray beanArray, String serviceName) throws Exception
	{

		// サービス名リスト
		X31SDataBeanAccess subbean = beanArray.addDataBean();

		// 申込サービス名と受付番号を設定する。
		subbean.sendMessageString(FUW00932SFConst.SERVICE_01, X31CWebConst.DATABEAN_SET_VALUE, serviceName);
	}

	/**
	 * 遷移先の画面ID・画面名を共有フォームBeanの項目に設定する。 <br>
	 *
	 * @param screenId
	 *            画面ＩＤ
	 * @param screenName
	 *            画面名
	 * @throws Exception
	 */
	private void setScreenInfo(String screenId, String screenName) throws Exception
	{

		// 共有フォームBean取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, screenId);

		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, screenName);

	}

	/**
	 * 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 処理結果
	 * @throws Exception
	 */
	public boolean hikaePrint() throws Exception
	{
		// 共有フォームBean取得
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();
		// サービスフォームBean取得
		X31SDataBeanAccess serviceInfoBean = getServiceFormBean();

		// その他情報
		X31SDataBeanAccess elseInfoBean = JFUWebCommon.getDataBeanTypeByPath(commonInfoBean, JFUWebCommon.ELSE_INFO);

		// ＷＥＢ新規情報取得
		X31SDataBeanAccessArray webNewInfo = commonInfoBean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		X31SDataBeanAccess webNewInfoBean = webNewInfo.getDataBean(0);

		// 画面遷移モードに"0"(通常遷移)を設定する。
		webNewInfoBean.sendMessageString(CommonInfoCFConst.SCREEN_MODE_06, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.SCREEN_MODE_DEF);

		// 控えタイプの設定
		//先に取次票のフラグ管理
		String printType = serviceInfoBean.sendMessageString(FUW00932SFConst.PRINT_TYPE, X31CWebConst.DATABEAN_GET_VALUE);

		if (serviceInfoBean.sendMessageBoolean(FUW00932SFConst.TRTG_PRINT_FLG, X31CWebConst.DATABEAN_GET_VALUE))
		{
			if (JFUStrConst.PRINT_TYPE_OKYAKU.equals(printType))
			{
				elseInfoBean.sendMessageString(CommonInfoCFConst.PRINT_KIND_18, X31CWebConst.DATABEAN_SET_VALUE,
						JFUStrConst.PRINT_TYPE_OKYAKU_TORITSUGI);
			}
			else if (JFUStrConst.PRINT_TYPE_MISE.equals(printType))
			{
				/* 取扱店控えを選択中、取次票印刷を非活性(False)判定にする
				elseInfoBean.sendMessageString(CommonInfoCFConst.PRINT_KIND_18, X31CWebConst.DATABEAN_SET_VALUE,
						JFUStrConst.PRINT_TYPE_MISE_TORITSUGI);
				*/
				elseInfoBean.sendMessageString(CommonInfoCFConst.PRINT_KIND_18, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.PRINT_TYPE_MISE);
			}
		}
		else
		{
			if (JFUStrConst.PRINT_TYPE_OKYAKU.equals(printType))
			{
				elseInfoBean.sendMessageString(CommonInfoCFConst.PRINT_KIND_18, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.PRINT_TYPE_OKYAKU);
			}
			else if (JFUStrConst.PRINT_TYPE_MISE.equals(printType))
			{
				elseInfoBean.sendMessageString(CommonInfoCFConst.PRINT_KIND_18, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.PRINT_TYPE_MISE);
			}

		}
		// 遷移先画面ID、画面名の設定
		setScreenInfo(JFUScreenConst.SCREEN_ID_FUW00940, JFUScreenConst.SCREEN_NAME_FUW00940);

		return true;
	}

	/**
	 * アクセスログ操作区分設定処理
	 *
	 * <br>
	 * @throws Exception 例外
	 */
	private void setAccLogSosaDiv() throws Exception
	{
		DEBUG_LOG.debug("アクセスログ操作区分設定処理 開始");
		// 共有フォームBeanを取得
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// WEB新規情報取得
		X31SDataBeanAccess cfWebNewInfo = commonInfoBean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO).getDataBean(0);

		// 販売タイプを取得
		String hanbaiType = cfWebNewInfo.sendMessageString(CommonInfoCFConst.HANBAI_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE);

		if (JFUStrConst.HNBAI_TYPE_RYOHAN.equals(hanbaiType))
		{
			// 量販の場合

			// FUDispDefinitionよりアクセスログの出力項目の操作区分の設定値を取得
			String ryohanAccessLogDiv = JFUWebCommon.getDispText(JFUScreenConst.SCREEN_ID_FUW00932, KEY_RYOHAN_ACCESSLOG_DIV);

			// 操作区分の差し替え内容をMapに設定
			HashMap<String, String> accLogMap = new HashMap<String, String>();
			accLogMap.put(FUW009050_PRINT_BTN, ryohanAccessLogDiv); // メニュー(量販);印刷
			accLogMap.put(FUW009310_PRINT_BTN, ryohanAccessLogDiv); // 登録完了(量販);印刷
			accLogMap.put(FUW009320_PRINT_BTN, ryohanAccessLogDiv); // 申込完了(量販);印刷

			// アクセスログ操作区分設定処理
			if (JCCWebCommon.setAccLogSosaDiv(this, accLogMap))
			{
				DEBUG_LOG.debug("アクセスログ操作区分設定処理 正常終了：販売タイプ（量販：1・訪販：2）:" + hanbaiType);
			}
			else
			{
				DEBUG_LOG.debug("アクセスログ操作区分設定処理 異常終了：販売タイプ（量販：1・訪販：2）:" + hanbaiType);
			}
		}
		else
		{
			// 上記以外（量販以外）の場合

			// 削除する操作区分のキーをListに設定
			ArrayList<String> accLogList = new ArrayList<String>();
			accLogList.add(FUW009050_PRINT_BTN); // メニュー(量販以外);印刷
			accLogList.add(FUW009310_PRINT_BTN); // 登録完了(量販以外);印刷
			accLogList.add(FUW009320_PRINT_BTN); // 申込完了(量販以外);印刷

			// アクセスログ操作区分削除処理
			if (JCCWebCommon.rmvAccLogSosaDiv(this, accLogList))
			{
				DEBUG_LOG.debug("アクセスログ操作区分削除処理 正常終了：販売タイプ（量販：1・訪販：2）:" + hanbaiType);
			}
			else
			{
				DEBUG_LOG.debug("アクセスログ操作区分削除処理 異常終了：販売タイプ（量販：1・訪販：2）:" + hanbaiType);
			}
		}
		DEBUG_LOG.debug("アクセスログ操作区分設定処理 終了");
	}

	/**
	 * ｍｉｎｅｏサービス情報
	 * @param commonInfoBean
	 * @return mineoBean
	 */
	private X31SDataBeanAccess getMineoSvcInfo(X31SDataBeanAccess bn)
	{
		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.MINEO_SVC_INFO);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * 契約者情報
	 * @param commonInfoBean
	 * @return keiyakushaInfoBean
	 */
	private X31SDataBeanAccess getKeiyakushaInfo(X31SDataBeanAccess bn)
	{
		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.KEIYAKUSHA_INFO);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * 外部リンク（ｍｉｎｅｏ）用メールアドレス取得部品呼出処理です。
	 * 
	 * <br>
	 * @return
	 * @throws Exception
	 */
	public boolean getMineoMlad() throws Exception
	{
		DEBUG_LOG.info("★★★外部リンク（ｍｉｎｅｏ）用メールアドレス取得部品呼出処理開始★★★");
		try
		{
			// 共有フォームBean取得
			X31SDataBeanAccess commonInfoBean = getCommonInfoBean();
			// サービスフォームBean取得
			X31SDataBeanAccess serviceInfoBean = getServiceFormBean();

			// ●サービスの呼び出し
			try
			{
				setSFBeanEncContentsMlad(commonInfoBean, serviceInfoBean);
			}
			catch (JCCWebServiceException se)
			{
				DEBUG_LOG.info("※サービス(FUSV0348)実行中にエラー発生※");

				// 検索結果なしとして扱う
				// 外部リンク（ｍｉｎｅｏ）用メールアドレス
				serviceInfoBean.sendMessageString(FUW00932SFConst.OUTLINK_MINEO_MLAD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
			}
		}
		catch (Exception e)
		{
			DEBUG_LOG.info("※外部リンク（ｍｉｎｅｏ）用メールアドレス取得処理中にエラー発生※");

			// 検索結果なしとして扱う
			X31SDataBeanAccess serviceInfoBean = this.getServiceFormBean();
			// 外部リンク（ｍｉｎｅｏ）用メールアドレス
			serviceInfoBean.sendMessageString(FUW00932SFConst.OUTLINK_MINEO_MLAD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);

		}
		DEBUG_LOG.info("★★★外部リンク（ｍｉｎｅｏ）用メールアドレス取得部品呼出処理終了★★★");

		return true;
	}

	/**
	 * コンテンツ用メールアドレス設定部品呼出処理です。
	 * 
	 * <br>
	 * @return
	 * @throws Exception
	 */
	private void setSFBeanEncContentsMlad(X31SDataBeanAccess commonInfoBean,X31SDataBeanAccess serviceInfoBean) throws Exception
	{
		// ●サービスの呼び出し
		try
		{
			// ユースケースIDを格納
			HashMap<String, String> paramMap = new HashMap<String, String>();
			paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_FUSV0348);

			// DBMapper呼び出し
			FUSV0348_FUSV0348OPDBMapper mapper = new FUSV0348_FUSV0348OPDBMapper();

			// ●上りマッピング
			HashMap<String, Object> dataMap = new HashMap<String, Object>();
			// 連絡先(コンテンツ用メールアドレス)一覧照会
			mapper.setFUSV034801SC(commonInfoBean, dataMap, JPCModelConstant.FUNC_CD_1);

			// 検索結果格納用マップ
			HashMap<String, Object> outputMap = new HashMap<String, Object>();

			// ●サービスの呼び出し
			invokeService(paramMap, dataMap, outputMap);
			// ●下りマッピング
			// 連絡先(コンテンツ用メールアドレス)一覧照会
			mapper.getFUSV034801SC(serviceInfoBean, outputMap);
		}
		catch (JCCWebServiceException se)
		{
			DEBUG_LOG.info("※サービス(FUSV0348)実行中にエラー発生※");

			// 検索結果なしとして扱う
			// 外部リンク（ｍｉｎｅｏ）用メールアドレス
			serviceInfoBean.sendMessageString(FUW00932SFConst.OUTLINK_MINEO_MLAD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
		}
	}
	
// ANK-4598-00-00 ADD START
	/**
	 * FUSV0343_SMS送信
	 * 
	 * @return
	 * @throws Exception 
	 */
	public boolean sendSms() throws Exception
	{
		
		// サービスフォームBean取得
		X31SDataBeanAccess serviceFormBean = this.getServiceFormBean();
		
		// SMS送信回数
		String srtSmsSendCnt = serviceFormBean.sendMessageString(FUW00932SFConst.SMS_SEND_CNT, X31CWebConst.DATABEAN_GET_VALUE);
		if (JFUCommonUtil.isNull(srtSmsSendCnt))
		{
			srtSmsSendCnt = "0";
		}
		int intSmsSendCnt = 0;
		try {
			intSmsSendCnt = Integer.parseInt(srtSmsSendCnt) + 1;
		} catch (NumberFormatException e) {
		}
		serviceFormBean.sendMessageString(FUW00932SFConst.SMS_SEND_CNT, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(intSmsSendCnt));
		
		String mode = "1";
		if (intSmsSendCnt > 1)
		{
			mode = "2";
		}
		
		// 各Beanを配列に格納
		X31SDataBeanAccess[] beanArray = { serviceFormBean };

		// ユースケースIDを格納
		HashMap<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_FUSV0343);

		// DBMapper呼び出し
		FUSV0343_FUSV0343OPDBMapper mapper = new FUSV0343_FUSV0343OPDBMapper();

		// ●上りマッピング
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		// SMS送信・キャンセルCC
		mapper.setFUSV034301CC(beanArray, dataMap, mode);

		// 検索結果格納用マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// ●サービスの呼び出し
		try
		{
			invokeService(paramMap, dataMap, outputMap);
		}
		catch (Exception e)
		{
			DEBUG_LOG.info("※サービス(FUSV0343)実行中にエラー発生※");
			// SMS未送信にする
			serviceFormBean.sendMessageString(FUW00932SFConst.SMS_SEND_FLG, X31CWebConst.DATABEAN_SET_VALUE, "0");
			// SMS送信結果（失敗）
			serviceFormBean.sendMessageString(FUW00932SFConst.SMS_SEND_RESULT, X31CWebConst.DATABEAN_SET_VALUE, "1");

			return true;
		}
		// ●下りマッピング
		mapper.getFUSV034301CC(serviceFormBean, outputMap, mode);

		// SMS送信済
		serviceFormBean.sendMessageString(FUW00932SFConst.SMS_SEND_FLG, X31CWebConst.DATABEAN_SET_VALUE, "1");

		return true;
	}
	
	/**
	 * FUSV0379_SMS送信（初期eoID送信）
	 * 
	 * @return
	 * @throws Exception 
	 */
	public boolean sendShkEoid() throws Exception
	{
		// 共有フォームBean取得
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// サービスフォームBean取得
		X31SDataBeanAccess serviceFormBean = this.getServiceFormBean();

		// 各Beanを配列に格納
		X31SDataBeanAccess[] beanArray = { serviceFormBean, commonInfoBean };

		// SMS有効期限チェック
		if(!(onetKeyYkKigenCheck(serviceFormBean))){
			// チェックでエラーだった場合処理を終了する
			return true;
		}

		// ユースケースIDを格納
		HashMap<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_FUSV0379);

		// DBMapper呼び出し
		FUSV0379_FUSV0379OPDBMapper mapper = new FUSV0379_FUSV0379OPDBMapper();

		// ●上りマッピング
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		mapper.setFUSV037901CC(beanArray, dataMap);

		// 検索結果格納用マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// ●サービスの呼び出し
		try
		{
			invokeService(paramMap, dataMap, outputMap);
		}
		catch (Exception e)
		{
			DEBUG_LOG.info("※サービス(FUSV0379)実行中にエラー発生※");
			// SMS未送信にする
			serviceFormBean.sendMessageString(FUW00932SFConst.SMS_SEND_FLG, X31CWebConst.DATABEAN_SET_VALUE, "0");
			// SMS送信結果（失敗）
			serviceFormBean.sendMessageString(FUW00932SFConst.SMS_SEND_RESULT, X31CWebConst.DATABEAN_SET_VALUE, "1");

			return true;
		}
		// ●下りマッピング
		mapper.getFUSV037901CC(serviceFormBean, outputMap);
		
		return true;
	}
	
	/**
	 * SMS有効期限チェック
	 * @param serviceFormBean サービスフォームBean
	 * @return 判定結果(true:有効期限内、false:有効期限超過)
	 * @throws Exception 
	 */
	private boolean onetKeyYkKigenCheck(X31SDataBeanAccess serviceFormBean){
		String onet_key_yk_kigen = serviceFormBean.sendMessageString(FUW00932SFConst.ONET_KEY_YK_KIGEN, X31CWebConst.DATABEAN_GET_VALUE);
		
		// ワンタイムキー有効期限が超過している場合はエラー
		if (JFUWebCommon.getOpeDateTime(this, null).compareTo(onet_key_yk_kigen) > 0) 
		{
			serviceFormBean.sendMessageString(FUW00932SFConst.SMS_SEND_RESULT, X31CWebConst.DATABEAN_SET_VALUE, "2");
			DEBUG_LOG.info("----- next：ワンタイムキー有効期限が超過エラー -----");
			return false;
		}
		
		return true;
	}
// ANK-4598-00-00 ADD END
}
