/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：工事進捗確認
*   ソースファイル名：FUW00501SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年11月18日
*＜機能概要＞
*   工事進捗確認の画面制御を行います。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/11/18   FJ）山本    新規作成
*   v2.00       2012/05/28   FJ）赤井    疎通バグ対応
*   v4.01       2012/08/02   FJ）大塚    「案件番号：ANK-0329-00-00」フロント受付システム24時間365日稼動対応
*   v4.02       2012/12/25   FJ）齋藤    「対策番号：TAI-2012-0000136-160」工事進捗確認画面の宅内調査予定日表示値変更
*   v4.03       2013/01/16   FJ）佐々木  【PT強化2-No.108】DB検索結果が無い場合のエラーメッセージを修正
*   v4.04       2013/01/16   FJ）佐々木  【PT強化2-No.139】電話番号のDB存在チェックのエラー時のメッセージを修正
*   v4.05       2013/01/17   FJ）多賀    【IT-No.148】宅内調査予定日の表示不正修正
*   v4.06       2013/01/17   FJ）佐々木  【PT強化2-No.140】電話番号入力を３個に分割
*   v4.07       2012/01/17   FJ) 藤原    「障害番号：ST2-2013-0000033」メール送信設定変更対応
*   v4.08       2013/01/22   FJ) 大塚    「IT1-2013-0000254」 メールマスタ変更対応
*   v4.09       2013/03/04   FJ) 大塚    「No351」 申込書明細番号対応
*   v5.00       2013/11/21   FJ）中谷    【OM-2013-0004543】工事日表示不具合対応
*   v20.00      2016/01/04   FJ）岡井    【ANK-2612-00-00】１０Ｇコース導入対応
*   v29.00      2017/03/21   FJ）張本    【ANK-3147-00-00】OPMS工期変更理由のWeb工程進捗への反映
*   v32.00.00   2017/05/29   FJ) 謝      【ANK-3057-00-00】自動送信メールの文面変更
*   v33.00      2017/09/26   FJ) 岡井    【ANK-3180-01-00】工事進捗画面およびID登録証画面の廃止について
*   v35.00.00   2017/10/17   FJ）高野    【ANK-3298-00-00】工事進捗画面の項目追加
*   v38.00.00   2018/08/08   FJ）松原    【ANK-3457-00-00】ANK-3457-00-00_eoフロント工期進捗案内画面ログイン省略機能追加
*   v39.00      2018/09/25   FJ) 大島    【ANK-3421-00-00】【eo顧客S】メール文面の見直し対応
*   v40.00      2018/09/07   FJ）張本    【ANK-3412-00-00】５ギガ・１０ギガコース導入対応
*   v51.00      2020/11/12   FJ）張本    【ANK-3949-00-00】Netflix導入対応（STEP1）
*   v64.00      2023/01/31   FJ）西川    【ANK-4347-00-00】工事関連情報のメール／SMS／LINE通知対応
**********************************************************************/

package eo.web.webview.FUW00501SF;

import static com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG;

import java.util.HashMap;
import java.util.Map;

import com.fujitsu.futurity.web.x00.JCCBusinessException;
import com.fujitsu.futurity.web.x00.JCCWebServiceException;
import com.fujitsu.futurity.web.x31.X31CHashMap;
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.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.FUSV0172_FUSV0172OPDBMapper;
import eo.web.webview.mapping.FUSV0173_FUSV0173OPDBMapper;
import eo.web.webview.mapping.FUSV0175_FUSV0175OPDBMapper;
import eo.web.webview.mapping.FUSV0182_FUSV0182OPDBMapper;

/**
 * eo光ネット入力画面のVIEWロジックです。
 * <br>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class FUW00501SFLogic extends JCCWebBusinessLogic
{

	/** 共有フォームBean フロント区分 ： WEB新規 */
	private static final String FU_DIV_NEW = "N";

	/** 外部ファイルの取得クエリ ： 携帯アドレスのドメイン一覧 */
	private static final String QUERY_DOMAIN_PATH = "DISPSETTING/SETTING[@screenId='FUW00506']/DISPCTL[@groupid='mobileDomain']";

	/** 外部ファイルの取得クエリ ： 送信メール情報 */
	private static final String SEND_MAIL_INFO_PATH = "DISPSETTING/SETTING[@screenId='FUW00507']/DISPCTL[@groupid='sendMailInfo']";

	/** 属性名 */
	private static final String QUERY_ATTR_NAME = "id";

	/** プロパティファイル取得文字列 ： id名 */
	private static final String DOMAIN_ID_NM = "domain";

	/** プロパティファイル取得文字列 ： 送信元メールアドレス */
	private static final String SETTE_NAIYO_CFM_FROM_MLAD = "SETTE_NAIYO_CFM_FROM_MLAD";

	/** プロパティファイル取得文字列 ： 設定済み */
	private static final String MAP_KEY_MAIL_SET_TRUE = "mailSetTrue";

	/** プロパティファイル取得文字列 ： 未設定 */
	private static final String MAP_KEY_MAIL_SET_FALSE = "mailSetFalse";

	/** メッセージ引数（置換え文字） ： "申込番号" */
	private static final String[] ERR_MSG_MSKM_NO_1 = { "申込番号" };

	/** メッセージ引数（置換え文字） ： "電話番号" */
	private static final String[] ERR_MSG_TELNO_1 = { "電話番号" };

	/** メッセージ引数（置換え文字） ： "郵便番号" */
	private static final String[] ERR_MSG_ZIPCD_1 = { "郵便番号" };

	/** メッセージ引数（置換え文字） ： "PCメールアドレス" */
	private static final String[] ERR_MSG_PC_1 = { "PCメールアドレス" };

	/** メッセージ引数（置換え文字） ： "PCメールアドレス"、"PCメールアドレス(確認)" */
	private static final String[] ERR_MSG_PC_2 = { "PCメールアドレス", "PCメールアドレス(確認)" };

	/** メッセージ引数（置換え文字） ： "PCメールアドレス（確認）" */
	private static final String[] ERR_MSG_PC_SUB_1 = { "PCメールアドレス(確認)" };

	/** メッセージ引数（置換え文字） ： "携帯メールアドレス" */
	private static final String[] ERR_MSG_MB_1 = { "携帯メールアドレス" };

	/** メッセージ引数（置換え文字） ： "携帯メールアドレス"、"携帯メールアドレス(確認)" */
	//private static final String[] ERR_MSG_MB_2 = { "携帯メールアドレス", "携帯メールアドレス(確認)" };

	/** メッセージ引数（置換え文字） ： "携帯メールアドレス（確認）" */
	//private static final String[] ERR_MSG_MB_SUB_1 = { "携帯メールアドレス(確認)" };

	/** 画面項目ID（FUW00501） ： 申込番号 */
	private static final String KMKID_501_MSKM_NO = "mskmNo";

	/** 画面項目ID（FUW00501） ： 郵便番号 */
	private static final String KMKID_501_ZIP_CD = "zipCd";

	/** 画面項目ID（FUW00505） ： 契約者電話番号 */
	private static final String KMKID_505_TELNO = "telNo";

	/** 画面項目ID（FUW00506） ： 携帯メールアドレス */
	private static final String KMKID_506_PC_AD = "pcAdress";

	/** 画面項目ID（FUW00506） ： 携帯メールアドレス（確認） */
	private static final String KMKID_506_PC_AD_SUB = "pcAdress_sub";

	/** 画面項目ID（FUW00506） ： 携帯メールアドレス */
	private static final String KMKID_506_MB_AD = "mobileAdress";

	/** 画面項目ID（FUW00506） ： 携帯メールアドレス（確認） */
	//private static final String KMKID_506_MB_AD_SUB = "mobileAdress_sub";

	/** ユースケースID ： 契約者情報照会 */
	private static final String SERVICE_ID_FUSV0175 = "FUSV0175";

	/** ユースケースID ： 工事工程進捗照会 */
	private static final String SERVICE_ID_FUSV0173 = "FUSV0173";

	/** ユースケースID ： FUSV0182 */
	private static final String USECASE_ID_FUSV0182 = "FUSV0182";

	/** ユースケースID ： 工事進捗確認ログイン */
	private static final String SERVICE_ID_FUSV0172 = "FUSV0172";

	/** サービスフォームBean 遷移モード ： 受付中 */
	private static final String SCREEN_MODE_4 = "4";

	/** サービスフォームBean 工事案件情報.キャンセルフラグ ： 通常 */
	private static final String CANCEL_FLG_0 = "0";

	/** サービスフォームBean 遷移モード ： ネット */
	private static final String SM_NET = "1";

	/** サービスフォームBean 遷移モード ： 電話 */
	private static final String SM_TEL = "2";

	/** サービスフォームBean 遷移モード ： テレビ */
	private static final String SM_TV = "3";

	/** サービスフォームBean 各ボタン表示フラグ ： 表示 */
	private static final String BTN_DISP_FLG_TRUE = "1";

	/** サービスフォームBean 各ボタン表示フラグ ： 非表示 */
	private static final String BTN_DISP_FLG_FALSE = "0";
	
	/** 画面遷移ID（FUW00501） ： 申込番号 */
	private static final String SENIID_501_MSKM_NO = "mskm_no";

	/** 画面遷移ID（FUW00501） ： 郵便番号 */
	private static final String SENIID_501_PCD_CD = "pcd_no";
	
	// ***** その他 *****
	/** 画面遷移付加情報：0PJP */
	private static final String ADD_0PJP = "0PJP";
	// ***** その他 *****

// ANK-3057-00-00 DEL START
//	/** メール表示用キー Webからのお問い合わせ */
//	private static final String ML_URL_WEB = "ML_URL_WEB";
// ANK-3057-00-00 DEL END

	/**
	 * 初期表示処理（FUW00501_工事進捗確認ログイン）
	 *
	 * @return true
	 * @throws Exception
	 */

	@SuppressWarnings("unchecked")
	public boolean init() throws Exception
	{
		DEBUG_LOG.info("■■■■工事工程進捗は廃止機能とするため共通エラー画面に遷移■■■■");

		// サービスの呼び出し処理で業務エラー例外（JCCWebServiceException）が発生している場合、
		//業務共通例外クラス（JCCBusinessException）をthrowする。
		throw new JCCBusinessException("0002");

//		// デバッグ用ログ出力
//		DEBUG_LOG.info("----- init_Start -----");
//
//		// 業務規制情報の取得
//		this.setWorkKiseiList();
//
//		// 共有フォームBeanのデータBeanアクセスクラスを取得。
//		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
//
//		// 共有フォームBeanからフロント共有情報を取得。
//		X31SDataBeanAccessArray beanFrontArr = commoninfoBean.getDataBeanArray(CommonInfoCFConst.FRONT_COMMON_INFO);
//		if (beanFrontArr.getCount() == 0)
//		{
//			beanFrontArr.addDataBean();
//		}
//		X31SDataBeanAccess beanFront = beanFrontArr.getDataBean(0);
//
//		// フロント共有情報.フロント区分に"N"(WEB新規)を設定します。
//		beanFront.sendMessageString(CommonInfoCFConst.FU_KBN_05, X31CWebConst.DATABEAN_SET_VALUE, FU_DIV_NEW);
//
//		// サービスフォームBeanのデータBeanアクセスクラスを取得。
//		X31SDataBeanAccess bean = super.getServiceFormBean();
//
//		//工事案件情報および、申込明細リストの空データを３件作成します。
//		X31SDataBeanAccessArray kjankenArr = bean.getDataBeanArray(FUW00501SFConst.KJAK_INFO);
//		X31SDataBeanAccessArray mskmDtlListArr = bean.getDataBeanArray(FUW00501SFConst.MSKM_DTL_LIST);
//
//		int arrCount = 0;
//
//		// 工事案件情報の作成
//		arrCount = kjankenArr.getCount();
//		if (arrCount > 3)
//		{
//			for (int i = arrCount; i <= 3; i++)
//			{
//				kjankenArr.addDataBean();
//			}
//		}
//
//		// 申込明細リスト
//		arrCount = mskmDtlListArr.getCount();
//		if (arrCount > 3)
//		{
//			for (int i = arrCount; i <= 3; i++)
//			{
//				mskmDtlListArr.addDataBean();
//			}
//		}
//
//		// ●申込番号と郵便番号（上）・郵便番号（下）にデフォルト値を設定
//		X31CHashMap reqParams  = this.getRequestParams();
//		if(paramCall(this.getRequestParams()))
//		{
//			//郵便番号の桁数チェック
//			int lenCheck = 7;
//			if(lenCheck == ((String)reqParams.get(SENIID_501_PCD_CD)).length())
//			{
//				//郵便番号（上）・郵便番号（下）の変数に格納
//				String pcd_1 = ((String)reqParams.get(SENIID_501_PCD_CD)).substring(0, 3);
//				String pcd_2 = ((String)reqParams.get(SENIID_501_PCD_CD)).substring(3, 7);
//				
//				// パラメータの値を設定
//				bean.sendMessageString(FUW00501SFConst.MSKM_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)reqParams.get(SENIID_501_MSKM_NO));
//				bean.sendMessageString(FUW00501SFConst.PCD_1, X31CWebConst.DATABEAN_SET_VALUE, pcd_1);
//				bean.sendMessageString(FUW00501SFConst.PCD_2, X31CWebConst.DATABEAN_SET_VALUE, pcd_2);
//				
//				DEBUG_LOG.info("----- init_End_自動ログイン  -----");
//				
//				kjscJokyoDsp();
//			}
//			else
//			{
//				// 遷移先に画面IDと画面名を設定
//				setNextScreen(JFUScreenConst.SCREEN_ID_FUW00501, JFUScreenConst.SCREEN_NAME_FUW00501);
//				
//				DEBUG_LOG.info("----- init_End  -----");
//			}
//		}
//		else
//		{
//			// 遷移先に画面IDと画面名を設定
//			setNextScreen(JFUScreenConst.SCREEN_ID_FUW00501, JFUScreenConst.SCREEN_NAME_FUW00501);
//			
//			DEBUG_LOG.info("----- init_End  -----");
//		}
//		return true;
	}

	/**
	 * 工事進捗状況の照会ボタン押下時（FUW00501_工事進捗確認ログイン）
	 *
	 * @return true
	 * @throws Exception
	 */
	public boolean kjscJokyoDsp() throws Exception
	{

		DEBUG_LOG.info("----- kjscJokyoDsp_Start -----");

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		//ユースケースID格納用マップを生成します。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, SERVICE_ID_FUSV0172);

		// 設定値格納用マップを生成します。
		FUSV0172_FUSV0172OPDBMapper mapper = new FUSV0172_FUSV0172OPDBMapper();
		HashMap<String, Object> inputMap = new HashMap<String, Object>();

		// 結果格納用マップを生成します。
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		//値を設定します。
		//工事進捗確認ログインコモンコンポーネント部品(JFUKjscLoginCC)
		mapper.setkjscLoginMap(bean, inputMap, JPCModelConstant.FUNC_CD_1);

		//ログイン可否フラグを初期化する
		bean.sendMessageString("ログイン可否フラグ", X31CWebConst.DATABEAN_SET_VALUE, "True");

		//サービスインターフェースの呼び出し
		try
		{
			invokeService(paramMap, inputMap, outputMap);
		}
		catch (JCCWebServiceException se)
		{
			//URLに申込番号・郵便番号が設定されていればFUW00501に割り込み設定
			if(paramCall(this.getRequestParams()))
			{
				
				// パラメータの値を空に設定
				bean.sendMessageString(FUW00501SFConst.MSKM_NO, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				bean.sendMessageString(FUW00501SFConst.PCD_1, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				bean.sendMessageString(FUW00501SFConst.PCD_2, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				
				// 遷移先に画面IDと画面名を設定
				setNextScreen(JFUScreenConst.SCREEN_ID_FUW00501, JFUScreenConst.SCREEN_NAME_FUW00501);
				
				DEBUG_LOG.info("■■■■URL呼び出しの時にエラーがあればFUW00501の画面に遷移。■■■■");

				return true;
			}
			
			DEBUG_LOG.info("■■■■共通エラー画面に飛ばします。■■■■");

			// サービスの呼び出し処理で業務エラー例外（JCCWebServiceException）が発生している場合、
			//業務共通例外クラス（JCCBusinessException）をthrowする。
			throw new JCCBusinessException("0002");

		}

		//サービスの処理結果を取得する。
		//工事進捗確認ログインコモンコンポーネント部品設定
		mapper.getkjscLoginMap(bean, outputMap);

		//サービスフォームBean.ログイン可否フラグが"false"の場合、
		//共通部品（JCCWebCommon.setMessageInfo()）を呼び出し、メッセージ設定後に処理を終了する。
		if ("FALSE".equals(bean.sendMessageString(FUW00501SFConst.LOGIN_KH_FLG, X31CWebConst.DATABEAN_GET_VALUE).toUpperCase()))
		{
			//URLに申込番号・郵便番号が設定されていればFUW00501に割り込み設定
			if(paramCall(this.getRequestParams()))
			{
				
				// パラメータの値を空に設定
				bean.sendMessageString(FUW00501SFConst.MSKM_NO, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				bean.sendMessageString(FUW00501SFConst.PCD_1, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				bean.sendMessageString(FUW00501SFConst.PCD_2, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				
				// 遷移先に画面IDと画面名を設定
				setNextScreen(JFUScreenConst.SCREEN_ID_FUW00501, JFUScreenConst.SCREEN_NAME_FUW00501);
				
				DEBUG_LOG.info("■■■■URL呼び出しの時にエラーがあればFUW00501の画面に遷移。■■■■");

				return true;
			}
			
			//メッセージを設定
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0400_TW, ERR_MSG_MSKM_NO_1, KMKID_501_MSKM_NO);
			// 【PT強化2-No.108】DB検索結果が無い場合のエラーメッセージを修正 ADD START
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0400_TW, ERR_MSG_ZIPCD_1, KMKID_501_ZIP_CD);
			// 【PT強化2-No.108】DB検索結果が無い場合のエラーメッセージを修正 ADD END

			return true;
		}

		//サービスフォームBeanへの情報設定および、共有フォームBeanに遷移先画面の設定を行う。
		//サービスフォームBean.遷移モードが"4"(受付中)以外の場合、画面初期表示用処理を行う。
		if (!SCREEN_MODE_4.equals(bean.sendMessageString(FUW00501SFConst.SCREEN_MODE, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			/** 照会ボタン表示切替メソッド化 START */
			setScreenMode(bean);
			/** 照会ボタン表示切替メソッド化 END */

		}

		//次画面の初期表示処理および遷移先画面の設定
		if (SCREEN_MODE_4.equals(bean.sendMessageString(FUW00501SFConst.SCREEN_MODE, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			//URLに申込番号・郵便番号が設定されていればFUW00502に割り込み設定
			if (paramCall(this.getRequestParams()))
			{

				super.setTransferPageId(JFUScreenConst.SCREEN_ID_FUW00502 + ADD_0PJP);

			}
			//サービスフォームBean.遷移モードが"4"(受付中)の場合
			setNextScreen(JFUScreenConst.SCREEN_ID_FUW00502, JFUScreenConst.SCREEN_NAME_FUW00502);

		}
		else if (CANCEL_FLG_0.equals(getUseKojiak(bean, FUW00501SFConst.CANCEL_FLG_01, 0)))
		{

			//サービスフォームBean.工事案件情報[0].キャンセルフラグが"0"(通常)の場合
			netKjscJokyoCfm();

		}
		else if (CANCEL_FLG_0.equals(getUseKojiak(bean, FUW00501SFConst.CANCEL_FLG_01, 1)))
		{

			//サービスフォームBean.工事案件情報[1].キャンセルフラグが"0"(通常)の場合
			telKjscJokyoCfm();

		}
		else if (CANCEL_FLG_0.equals(getUseKojiak(bean, FUW00501SFConst.CANCEL_FLG_01, 2)))
		{

			//サービスフォームBean.工事案件情報[2].キャンセルフラグが"0"(通常)の場合
			tvKjscJokyoCfm();

		}
		else if (!isEmpty(getUseKojiak(bean, FUW00501SFConst.CANCEL_FLG_01, 0))
				&& !CANCEL_FLG_0.equals(getUseKojiak(bean, FUW00501SFConst.CANCEL_FLG_01, 0)))
		{

			//サービスフォームBean.工事案件情報[0].キャンセルフラグが""以外もしくは "0"（通常）以外の場合
			netKjscJokyoCfm();

		}
		else if (!isEmpty(getUseKojiak(bean, FUW00501SFConst.CANCEL_FLG_01, 1))
				&& !CANCEL_FLG_0.equals(getUseKojiak(bean, FUW00501SFConst.CANCEL_FLG_01, 1)))
		{

			//サービスフォームBean.工事案件情報[1].キャンセルフラグが""以外もしくは "0"（通常）以外の場合
			telKjscJokyoCfm();

		}
		else if (!isEmpty(getUseKojiak(bean, FUW00501SFConst.CANCEL_FLG_01, 2))
				&& !CANCEL_FLG_0.equals(getUseKojiak(bean, FUW00501SFConst.CANCEL_FLG_01, 2)))
		{

			//サービスフォームBean.工事案件情報[2].キャンセルフラグが""以外もしくは "0"（通常）以外の場合
			tvKjscJokyoCfm();

		}

		// 現在照会中の画面の照会ボタンを非表示にする
		if (SM_NET.equals(bean.sendMessageString(FUW00501SFConst.SCREEN_MODE, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			bean.sendMessageString(FUW00501SFConst.NET_BTN_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, BTN_DISP_FLG_FALSE);
		}
		else if (SM_TEL.equals(bean.sendMessageString(FUW00501SFConst.SCREEN_MODE, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			bean.sendMessageString(FUW00501SFConst.TEL_BTN_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, BTN_DISP_FLG_FALSE);
		}
		else if (SM_TV.equals(bean.sendMessageString(FUW00501SFConst.SCREEN_MODE, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			bean.sendMessageString(FUW00501SFConst.TV_BTN_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, BTN_DISP_FLG_FALSE);
		}

		DEBUG_LOG.info("----- kjscJokyoDsp_End -----");

		return true;
	}

	/**
	 * eo光ネットの工事進捗状況を確認する押下時（FUW00503_工事進捗状況ログイン(キャンセル)）
	 *
	 * @return true
	 * @throws Exception
	 */
	public boolean netKjscJokyoCfm() throws Exception
	{

		DEBUG_LOG.info("----- netKjscJokyoCfm_Start -----");

		X31SDataBeanAccess serviceFormBean = getServiceFormBean();

		// 画面遷移モード設定
		serviceFormBean.sendMessageString(FUW00501SFConst.SCREEN_MODE, X31CWebConst.DATABEAN_SET_VALUE, SM_NET);

		// (1)工事案件情報[0] （ネット）を取得します。
		X31SDataBeanAccessArray sintyoku_list = serviceFormBean.getDataBeanArray(FUW00501SFConst.KJAK_INFO);
		X31SDataBeanAccess net_info = sintyoku_list.getDataBean(0);

		// 表示用サービス名称の設定(料金コースコードで判定)
		setDetailTitle(SM_NET, net_info.sendMessageString(FUW00501SFConst.PCRC_CD_01, X31CWebConst.DATABEAN_GET_VALUE));

		// (2)キャンセルフラグが0以外の場合
		if (!"0".equals(net_info.sendMessageString(FUW00501SFConst.CANCEL_FLG_01, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// (4)ネットの工事進捗確認ボタンを非表示にする。
			setScreenMode(serviceFormBean);
			serviceFormBean.sendMessageString(FUW00501SFConst.NET_BTN_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, BTN_DISP_FLG_FALSE);

			//URLに申込番号・郵便番号が設定されていればFUW00503に割り込み設定
			if(paramCall(this.getRequestParams()))
			{

				super.setTransferPageId(JFUScreenConst.SCREEN_ID_FUW00503 + ADD_0PJP);

			}
			
			setNextScreen(JFUScreenConst.SCREEN_ID_FUW00503, JFUScreenConst.SCREEN_NAME_FUW00503);
			return true;
		}

		// (3)キャンセルフラグが0の場合
		if ("0".equals(net_info.sendMessageString(FUW00501SFConst.CANCEL_FLG_01, X31CWebConst.DATABEAN_GET_VALUE)))
		{

			// サービス呼び出し
			executeFUSV0173(serviceFormBean);

		}

		// お知らせ事項表示フラグ取得
		serviceFormBean.sendMessageString(FUW00501SFConst.OSHIRASE_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, getOshiraseDispFlg());

		// (4)ネットの工事進捗確認ボタンを非表示にする。
		setScreenMode(serviceFormBean);
		serviceFormBean.sendMessageString(FUW00501SFConst.NET_BTN_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, BTN_DISP_FLG_FALSE);

		//URLに申込番号・郵便番号が設定されていればFUW00504に割り込み設定
		if(paramCall(this.getRequestParams()))
		{

			super.setTransferPageId(JFUScreenConst.SCREEN_ID_FUW00504 + ADD_0PJP);

		}
		// (5)画面遷移元・遷移先設定
		setNextScreen(JFUScreenConst.SCREEN_ID_FUW00504, JFUScreenConst.SCREEN_NAME_FUW00504);

		DEBUG_LOG.info("----- netKjscJokyoCfm_End -----");

		return true;
	}

	/**
	 * eo光電話の工事進捗状況を確認する押下時（FUW00503_工事進捗確認ログイン(キャンセル)）
	 *
	 * @return true
	 * @throws Exception
	 */
	public boolean telKjscJokyoCfm() throws Exception
	{

		DEBUG_LOG.info("----- telKjscJokyoCfm_Start -----");

		X31SDataBeanAccess serviceFormBean = getServiceFormBean();

		// 画面遷移モード設定
		serviceFormBean.sendMessageString(FUW00501SFConst.SCREEN_MODE, X31CWebConst.DATABEAN_SET_VALUE, SM_TEL);

		// (1)工事案件情報[1] （電話）を取得します。
		X31SDataBeanAccessArray sintyoku_list = serviceFormBean.getDataBeanArray(FUW00501SFConst.KJAK_INFO);
		X31SDataBeanAccess tel_info = sintyoku_list.getDataBean(1);

		// 表示用サービス名称の設定(料金コースコードで判定)
		setDetailTitle(SM_TEL, tel_info.sendMessageString(FUW00501SFConst.PCRC_CD_01, X31CWebConst.DATABEAN_GET_VALUE));

		// (2)キャンセルフラグが0以外の場合
		if (!"0".equals(tel_info.sendMessageString(FUW00501SFConst.CANCEL_FLG_01, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// (4)電話の工事進捗確認ボタンを非表示にする。
			setScreenMode(serviceFormBean);
			serviceFormBean.sendMessageString(FUW00501SFConst.TEL_BTN_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, BTN_DISP_FLG_FALSE);

			//URLに申込番号・郵便番号が設定されていればFUW00503に割り込み設定
			if(paramCall(this.getRequestParams()))
			{

				super.setTransferPageId(JFUScreenConst.SCREEN_ID_FUW00503 + ADD_0PJP);

			}

			setNextScreen(JFUScreenConst.SCREEN_ID_FUW00503, JFUScreenConst.SCREEN_NAME_FUW00503);
			return true;
		}

		// (3)キャンセルフラグが0の場合
		if ("0".equals(tel_info.sendMessageString(FUW00501SFConst.CANCEL_FLG_01, X31CWebConst.DATABEAN_GET_VALUE)))
		{

			// サービス呼び出し
			executeFUSV0173(serviceFormBean);

		}

		// お知らせ事項表示フラグ取得
		serviceFormBean.sendMessageString(FUW00501SFConst.OSHIRASE_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, getOshiraseDispFlg());

		// (4)電話の工事進捗確認ボタンを非表示にする。
		setScreenMode(serviceFormBean);
		serviceFormBean.sendMessageString(FUW00501SFConst.TEL_BTN_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, BTN_DISP_FLG_FALSE);

		//URLに申込番号・郵便番号が設定されていればFUW00504に割り込み設定
		if(paramCall(this.getRequestParams()))
		{

			super.setTransferPageId(JFUScreenConst.SCREEN_ID_FUW00504 + ADD_0PJP);

		}

		// (5)画面遷移元・遷移先設定
		setNextScreen(JFUScreenConst.SCREEN_ID_FUW00504, JFUScreenConst.SCREEN_NAME_FUW00504);

		DEBUG_LOG.info("----- teljscJokyoCfm_End -----");

		return true;
	}

	/**
	 * eo光テレビの工事進捗状況を確認する押下時（FUW00503_工事進捗確認ログイン(キャンセル)）
	 *
	 * @return true
	 * @throws Exception
	 */
	public boolean tvKjscJokyoCfm() throws Exception
	{

		DEBUG_LOG.info("----- tvKjscJokyoCfm_Start -----");

		X31SDataBeanAccess serviceFormBean = getServiceFormBean();

		// 画面遷移モード設定
		serviceFormBean.sendMessageString(FUW00501SFConst.SCREEN_MODE, X31CWebConst.DATABEAN_SET_VALUE, SM_TV);

		// (1) 工事案件情報[1] （テレビ）を取得します。
		X31SDataBeanAccessArray sintyoku_list = serviceFormBean.getDataBeanArray(FUW00501SFConst.KJAK_INFO);
		X31SDataBeanAccess tv_info = sintyoku_list.getDataBean(2);

		// 表示用サービス名称の設定(料金コースコードで判定)
		setDetailTitle(SM_TV, tv_info.sendMessageString(FUW00501SFConst.PCRC_CD_01, X31CWebConst.DATABEAN_GET_VALUE));

		// (2)キャンセルフラグが0以外の場合、遷移先に「FUW00503_工事進捗確認ログイン（キャンセル）」を設定して処理終了
		if (!"0".equals(tv_info.sendMessageString(FUW00501SFConst.CANCEL_FLG_01, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// (4)テレビの工事進捗確認ボタンを非表示にする。
			setScreenMode(serviceFormBean);
			serviceFormBean.sendMessageString(FUW00501SFConst.TV_BTN_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, BTN_DISP_FLG_FALSE);
			
			//URLに申込番号・郵便番号が設定されていればFUW00503に割り込み設定
			if(paramCall(this.getRequestParams()))
			{

				super.setTransferPageId(JFUScreenConst.SCREEN_ID_FUW00503 + ADD_0PJP);

			}

			setNextScreen(JFUScreenConst.SCREEN_ID_FUW00503, JFUScreenConst.SCREEN_NAME_FUW00503);
			return true;
		}

		// (3)キャンセルフラグが0の場合
		if ("0".equals(tv_info.sendMessageString(FUW00501SFConst.CANCEL_FLG_01, X31CWebConst.DATABEAN_GET_VALUE)))
		{

			// サービス呼び出し
			executeFUSV0173(serviceFormBean);

		}

		// お知らせ事項表示フラグ取得
		serviceFormBean.sendMessageString(FUW00501SFConst.OSHIRASE_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, getOshiraseDispFlg());

		// (4)テレビの工事進捗確認ボタンを非表示にする。
		setScreenMode(serviceFormBean);
		serviceFormBean.sendMessageString(FUW00501SFConst.TV_BTN_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, BTN_DISP_FLG_FALSE);

		//URLに申込番号・郵便番号が設定されていればFUW00504に割り込み設定
		if(paramCall(this.getRequestParams()))
		{

			super.setTransferPageId(JFUScreenConst.SCREEN_ID_FUW00504 + ADD_0PJP);

		}

		// (5)画面遷移元・遷移先設定
		setNextScreen(JFUScreenConst.SCREEN_ID_FUW00504, JFUScreenConst.SCREEN_NAME_FUW00504);

		DEBUG_LOG.info("----- tvjscJokyoCfm_End -----");

		return true;
	}

	/**
	 * メール送信設定へ押下時（FUW00504_工事進捗確認）
	 *
	 * @return true
	 * @throws Exception
	 */
	public boolean mailSendSet() throws Exception
	{

		DEBUG_LOG.info("----- mailSendSet_Start -----");

		setNextScreen(JFUScreenConst.SCREEN_ID_FUW00505, JFUScreenConst.SCREEN_NAME_FUW00505);

		DEBUG_LOG.info("----- mailSendSet_End -----");

		return true;
	}

	/**
	 * 戻る押下時（FUW00504_工事進捗確認）
	 *
	 * @return true
	 * @throws Exception
	 */
	public boolean back504() throws Exception
	{

		DEBUG_LOG.info("----- back504_Start -----");

		X31SDataBeanAccess serviceFormBean = getServiceFormBean();

		// 申込番号を初期化
		serviceFormBean.sendMessage(FUW00501SFConst.MSKM_NO, X31CWebConst.DATABEAN_CLEAR);
		// 郵便番号（上）を初期化
		serviceFormBean.sendMessage(FUW00501SFConst.PCD_1, X31CWebConst.DATABEAN_CLEAR);
		// 郵便番号（下）を初期化
		serviceFormBean.sendMessage(FUW00501SFConst.PCD_2, X31CWebConst.DATABEAN_CLEAR);

		setNextScreen(JFUScreenConst.SCREEN_ID_FUW00501, JFUScreenConst.SCREEN_NAME_FUW00501);

		DEBUG_LOG.info("----- back504_End -----");

		return true;
	}

	/**
	 * 認証押下時（FUW00505_メール送信設定認証）
	 *
	 * @return true
	 * @throws Exception
	 */
	public boolean ninsyo() throws Exception
	{

		DEBUG_LOG.info("----- ninsyo_Start -----");

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービス呼び出し（FUSV0175_契約者情報照会）
		executeFUSV0175(bean);

		// 電話番号入力を３個に分割
		String keishaTelNo = getKeishaTelNo(bean);
		String keishaTelNoOut = bean.sendMessageString(FUW00501SFConst.KEISHA_TELNO_OUT, X31CWebConst.DATABEAN_GET_VALUE);

		// 入力された電話番号とDBから取得した電話番号が一致しない場合、エラー（処理を終了する）
		if (!keishaTelNo.equals(keishaTelNoOut))
		{
			// 電話番号のDB存在チェックのエラー
			//			JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0400_TW, ERR_MSG_TELNO_1, KMKID_505_TELNO);
			JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKK0810_KW, ERR_MSG_TELNO_1, KMKID_505_TELNO);
			return true;
		}

		// 引継ぎ情報の作成（メールアドレスが空でないリストを探し、設定します。）
		X31SDataBeanAccess mskmDtl = null;
		String pcmail = JFUStrConst.EMPTY;
		String mbmail = JFUStrConst.EMPTY;
		for (int i = 0; i <= 2; i++)
		{
			mskmDtl = (bean.getDataBeanArray(FUW00501SFConst.MSKM_DTL_LIST)).getDataBean(i);
			if (JFUStrConst.EMPTY.equals(pcmail))
			{
				pcmail = mskmDtl.sendMessageString(FUW00501SFConst.KOJI_PRG_TCHI_MLAD_05, X31CWebConst.DATABEAN_GET_VALUE);
			}
			if (JFUStrConst.EMPTY.equals(mbmail))
			{
				mbmail = mskmDtl.sendMessageString(FUW00501SFConst.KJSC_TCH_KTAI_MLAD_05, X31CWebConst.DATABEAN_GET_VALUE);
			}
		}

		bean.sendMessageString(FUW00501SFConst.PC_MLAD, X31CWebConst.DATABEAN_SET_VALUE, pcmail); // PCメルアド
		bean.sendMessageString(FUW00501SFConst.KTAI_MLAD, X31CWebConst.DATABEAN_SET_VALUE, mbmail); // 携帯メルアド
		bean.sendMessageString(FUW00501SFConst.PC_MLAD_SUB, X31CWebConst.DATABEAN_SET_VALUE, pcmail); // PCメルアド(確認)
		bean.sendMessageString(FUW00501SFConst.KTAI_MLAD_SUB, X31CWebConst.DATABEAN_SET_VALUE, mbmail); // 携帯メルアド(確認)
		bean.sendMessageString(FUW00501SFConst.BF_PC_MLAD, X31CWebConst.DATABEAN_SET_VALUE, pcmail); // 変更前PCメルアド
		bean.sendMessageString(FUW00501SFConst.BF_KTAI_MLAD, X31CWebConst.DATABEAN_SET_VALUE, mbmail); // 変更前携帯メルアド

		setNextScreen(JFUScreenConst.SCREEN_ID_FUW00506, JFUScreenConst.SCREEN_NAME_FUW00506);
		DEBUG_LOG.info("----- ninsyo_End -----");

		return true;
	}

	/**
	 *  戻るボタン押下時
	 *
	 * @return boolean true(固定)
	 * @throws Exception
	 */
	public boolean back505() throws Exception
	{
		DEBUG_LOG.info("----- back505_Start -----");

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		// MOD START
		// クリア
		//		bean.sendMessage(FUW00501SFConst.KEISHA_TELNO, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(FUW00501SFConst.KEISHA_TELNO_1, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(FUW00501SFConst.KEISHA_TELNO_2, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(FUW00501SFConst.KEISHA_TELNO_3, X31CWebConst.DATABEAN_CLEAR);
		// MOD END

		// 工事進捗確認画面に遷移
		setNextScreen(JFUScreenConst.SCREEN_ID_FUW00504, JFUScreenConst.SCREEN_NAME_FUW00504);

		DEBUG_LOG.info("----- back505_End -----");

		return true;
	}

	/**
	 * 確認押下時（FUW00506_メール送信設定入力）
	 *
	 * @return true
	 * @throws Exception
	 */
	public boolean kakunin() throws Exception
	{

		DEBUG_LOG.info("----- kakunin_Start -----");

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 携帯メールアドレスは必ず未設定とする
		bean.sendMessageString(FUW00501SFConst.KTAI_MLAD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);

		// 単項目関連チェックを実施します。エラーの場合は処理を終了します。
		if (!isTankanrenChk())
		{
			return true;
		}

		// 携帯アドレスが入力されている場合、ドメインチェックを行う。
		String mb_ad = bean.sendMessageString(FUW00501SFConst.KTAI_MLAD, X31CWebConst.DATABEAN_GET_VALUE);

		if (!JFUStrConst.EMPTY.equals(mb_ad))
		{
			// 携帯ドメインの一覧を外部ファイルから取得する。
			Map<String, String> domainMap = JFUWebCommon.getDispItemsAsMap(QUERY_DOMAIN_PATH, QUERY_ATTR_NAME);

			// ドメインチェックの実施（エラーの場合、処理を終了する。）
			if (!isMbDomainCheck(mb_ad, domainMap))
			{
				return true;
			}
		}

		setNextScreen(JFUScreenConst.SCREEN_ID_FUW00507, JFUScreenConst.SCREEN_NAME_FUW00507);

		DEBUG_LOG.info("----- kakunin_End -----");

		return true;
	}

	/**
	 * 戻る押下時（FUW00506_メール送信設定入力）
	 *
	 * @return true
	 * @throws Exception
	 */
	public boolean back506() throws Exception
	{

		DEBUG_LOG.info("----- back506_Start -----");

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// クリア
		bean.sendMessageString(FUW00501SFConst.PC_MLAD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
		bean.sendMessageString(FUW00501SFConst.PC_MLAD_SUB, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
		bean.sendMessageString(FUW00501SFConst.KTAI_MLAD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
		bean.sendMessageString(FUW00501SFConst.KTAI_MLAD_SUB, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);

		//FUW00505_メール送信設定認証へ遷移する
		setNextScreen(JFUScreenConst.SCREEN_ID_FUW00505, JFUScreenConst.SCREEN_NAME_FUW00505);

		DEBUG_LOG.info("----- back506_End -----");

		return true;
	}

	/**
	 * 設定押下時（FUW00507_メール送信設定確認）
	 *
	 * @return true
	 * @throws Exception
	 */
	public boolean sette() throws Exception
	{

		DEBUG_LOG.info("----- sette_Start -----");

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();

		// パラメータ設定
		setParam507(serviceBean);

		// サービスの呼び出し
		FUSV0182_FUSV0182OPDBMapper mapper = new FUSV0182_FUSV0182OPDBMapper(); // 設定値格納用マッパ
		HashMap<String, Object> paramMap = new HashMap<String, Object>(); // ユースケースIDマップ
		HashMap<String, Object> inputMap = new HashMap<String, Object>(); // 入力データマップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>(); // 結果データマップ
		X31SDataBeanAccess[] paramBean = { serviceBean };

		// ユースケースIDをセット
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_FUSV0182);

		// 機能コード「1」を設定
		mapper.setFUSV018201SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setFUSV018202SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setFUSV018203SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setFUSV018204SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		//mapper.setFUSV018205SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setFUSV018206SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);

		// サービス呼び出し
		try
		{
			invokeService(paramMap, inputMap, outputMap);
		}
		catch (JCCWebServiceException jccexception)
		{
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}

		// 遷移先画面を設定（メール送信設定完了画面）
		setNextScreen(JFUScreenConst.SCREEN_ID_FUW00508, JFUScreenConst.SCREEN_NAME_FUW00508);

		// 申込完了メール送信部品呼出処理
		JFUWebCommon.sendMskmFinMail(this, outputMap, USECASE_ID_FUSV0182);

		DEBUG_LOG.info("----- sette_End -----");

		return true;
	}

	/**
	 * 戻る押下時（FUW00507_メール送信設定確認）
	 *
	 * @return true
	 * @throws Exception
	 */
	public boolean back507() throws Exception
	{

		DEBUG_LOG.info("----- back507_Start -----");

		// 遷移先画面を設定（メール送信設定入力画面）
		setNextScreen(JFUScreenConst.SCREEN_ID_FUW00506, JFUScreenConst.SCREEN_NAME_FUW00506);

		DEBUG_LOG.info("----- back507_End -----");

		return true;
	}

	/**
	 * 工事案件情報の指定された項目の値を取得する。
	 * <br>
	 * @param bean   データbean
	 * @param itemNm 項目名
	 * @param count  カウンタ
	 * @return 工事案件番号
	 * @throws Exception
	 */
	private String getUseKojiak(X31SDataBeanAccess bean, String itemNm, int count) throws Exception
	{

		X31SDataBeanAccessArray kjak = bean.getDataBeanArray(FUW00501SFConst.KJAK_INFO);

		if (kjak.getCount() <= count)
		{
			return JFUStrConst.EMPTY;
		}

		X31SDataBeanAccess kjakList = kjak.getDataBean(count);

		return kjakList.sendMessageString(itemNm, X31CWebConst.DATABEAN_GET_VALUE);

	}

	/**
	 * 表示用サービス名称設定
	 *
	 * @param screenMode		画面遷移モード
	 * @param priceCorceCode	料金コースコード
	 *
	 * return void
	 */
	private void setDetailTitle(String screenMode, String priceCorceCode)
	{
		DEBUG_LOG.info("----- setDetailTitle_START  -----");

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		//TODO 設定ファイルからサービス名を取得し、設定する必要あり。
		// 光ネットの場合の処理
		if (SM_NET.equals(screenMode))
		{
			// ホーム100Mコース
			if ("A03".equals(priceCorceCode))
			{
				bean.sendMessageString(FUW00501SFConst.DISP_SVC_NM, X31CWebConst.DATABEAN_SET_VALUE, "eo光ネット【ホームタイプ】100Mコース");
			}

			// ホーム1ギガコース
			else if ("A05".equals(priceCorceCode))
			{
				bean.sendMessageString(FUW00501SFConst.DISP_SVC_NM, X31CWebConst.DATABEAN_SET_VALUE, "eo光ネット【ホームタイプ】1ギガコース");
			}

			// ホーム200Mコース
			else if ("A07".equals(priceCorceCode))
			{
				bean.sendMessageString(FUW00501SFConst.DISP_SVC_NM, X31CWebConst.DATABEAN_SET_VALUE, "eo光ネット【ホームタイプ】200Mコース");
			}

			// ホーム10ギガコース
			else if ("A83".equals(priceCorceCode))
			{
				bean.sendMessageString(FUW00501SFConst.DISP_SVC_NM, X31CWebConst.DATABEAN_SET_VALUE, "eo光ネット【ホームタイプ】10ギガコース");
			}

			// ホーム5ギガコース
			else if ("A89".equals(priceCorceCode))
			{
				bean.sendMessageString(FUW00501SFConst.DISP_SVC_NM, X31CWebConst.DATABEAN_SET_VALUE, "eo光ネット【ホームタイプ】5ギガコース");
			}

			// ホーム1ギガコース Netflixパック
			else if ("A91".equals(priceCorceCode))
			{
				bean.sendMessageString(FUW00501SFConst.DISP_SVC_NM, X31CWebConst.DATABEAN_SET_VALUE, "eo光ネット【ホームタイプ】1ギガコース Netflixパック");
			}

			// ホーム5ギガコース Netflixパック
			else if ("A93".equals(priceCorceCode))
			{
				bean.sendMessageString(FUW00501SFConst.DISP_SVC_NM, X31CWebConst.DATABEAN_SET_VALUE, "eo光ネット【ホームタイプ】5ギガコース Netflixパック");
			}

			// ホーム10ギガコース Netflixパック
			else if ("A95".equals(priceCorceCode))
			{
				bean.sendMessageString(FUW00501SFConst.DISP_SVC_NM, X31CWebConst.DATABEAN_SET_VALUE, "eo光ネット【ホームタイプ】10ギガコース Netflixパック");
			}

			// その他 = 不正値
			else
			{
			}
		}

		// 光電話の場合の処理
		else if (SM_TEL.equals(screenMode))
		{
			// 1番号サービス
			if ("A31".equals(priceCorceCode))
			{
				bean.sendMessageString(FUW00501SFConst.DISP_SVC_NM, X31CWebConst.DATABEAN_SET_VALUE, "eo光電話（1番号サービス）");
			}

			// 2番号サービス
			else if ("A32".equals(priceCorceCode))
			{
				bean.sendMessageString(FUW00501SFConst.DISP_SVC_NM, X31CWebConst.DATABEAN_SET_VALUE, "eo光電話（2番号サービス）");
			}

			// その他 = 不正値
			else
			{
			}
		}

		// 光テレビの場合の処理
		else if (SM_TV.equals(screenMode))
		{
			bean.sendMessageString(FUW00501SFConst.DISP_SVC_NM, X31CWebConst.DATABEAN_SET_VALUE, "eo光テレビ");
		}

		// その他 = 不正値
		else
		{

		}

		DEBUG_LOG.info("----- setDetailTitle_End  -----");
	}

	/**
	 * 単項目関連チェック
	 * 単項目関連エラーがない場合のみtrueを返却します。
	 *
	 * @return result
	 */
	private boolean isTankanrenChk()
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 各種アドレスを格納
		String pc_ad = bean.sendMessageString(FUW00501SFConst.PC_MLAD, X31CWebConst.DATABEAN_GET_VALUE);
		String pc_ad_sub = bean.sendMessageString(FUW00501SFConst.PC_MLAD_SUB, X31CWebConst.DATABEAN_GET_VALUE);
		String mb_ad = bean.sendMessageString(FUW00501SFConst.KTAI_MLAD, X31CWebConst.DATABEAN_GET_VALUE);
		String mb_ad_sub = bean.sendMessageString(FUW00501SFConst.KTAI_MLAD_SUB, X31CWebConst.DATABEAN_GET_VALUE);

		String bf_pc_ad = bean.sendMessageString(FUW00501SFConst.BF_PC_MLAD, X31CWebConst.DATABEAN_GET_VALUE);
		String bf_mb_ad = bean.sendMessageString(FUW00501SFConst.BF_KTAI_MLAD, X31CWebConst.DATABEAN_GET_VALUE);

		// 返却値
		boolean result = true;

		// 単項目関連チェック（変更前アドレスが両方未設定かつ、入力値が全て空の場合、エラー）
		if (JFUStrConst.EMPTY.equals(bf_pc_ad) && JFUStrConst.EMPTY.equals(bf_mb_ad))
		{
			if (JFUStrConst.EMPTY.equals(pc_ad) && JFUStrConst.EMPTY.equals(pc_ad_sub) && JFUStrConst.EMPTY.equals(mb_ad)
					&& JFUStrConst.EMPTY.equals(mb_ad_sub))
			{
				// 各項目にエラーメッセージを出力し、処理を終了します（後続の処理を実行する意味がないため）
				JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0010_TW, ERR_MSG_PC_1, KMKID_506_PC_AD);
				JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0010_TW, ERR_MSG_PC_SUB_1, KMKID_506_PC_AD_SUB);
				//JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0010_TW, ERR_MSG_MB_1, KMKID_506_MB_AD);
				//JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0010_TW, ERR_MSG_MB_SUB_1, KMKID_506_MB_AD_SUB);
				return false;
			}
		}

		// 単項目関連チェック（PCアドレスが入力されている、かつPCアドレス確認が未入力の場合、エラー）
		if (!JFUStrConst.EMPTY.equals(pc_ad) && JFUStrConst.EMPTY.equals(pc_ad_sub))
		{
			JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0010_TW, ERR_MSG_PC_SUB_1, KMKID_506_PC_AD_SUB);
			result = false;
		}

		// 単項目関連チェック（PCアドレス確認が入力されている、かつPCアドレスが未入力の場合、エラー）
		if (JFUStrConst.EMPTY.equals(pc_ad) && !JFUStrConst.EMPTY.equals(pc_ad_sub))
		{
			JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0010_TW, ERR_MSG_PC_1, KMKID_506_PC_AD);
			result = false;
		}

//		// 単項目関連チェック（携帯アドレスが入力されている、かつ携帯アドレス確認が未入力の場合、エラー）
//		if (!JFUStrConst.EMPTY.equals(mb_ad) && JFUStrConst.EMPTY.equals(mb_ad_sub))
//		{
//			JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0010_TW, ERR_MSG_MB_SUB_1, KMKID_506_MB_AD_SUB);
//			result = false;
//		}
//
//		// 単項目関連チェック（携帯アドレス確認が入力されている、かつ携帯アドレスが未入力の場合、エラー）
//		if (JFUStrConst.EMPTY.equals(mb_ad) && !JFUStrConst.EMPTY.equals(mb_ad_sub))
//		{
//			JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0010_TW, ERR_MSG_MB_1, KMKID_506_MB_AD);
//			result = false;
//		}

		// ここまででエラーが発生していた場合、処理を終了する。（後続の処理を実行する意味がないため）
		if (!result)
		{
			return result;
		}

		// 単項目関連チェック（PCアドレス、PCアドレス確認が入力されている場合、同一値でなければエラー）
		if (!JFUStrConst.EMPTY.equals(pc_ad) && !JFUStrConst.EMPTY.equals(pc_ad_sub))
		{
			if (!pc_ad.equals(pc_ad_sub))
			{
				JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF1020_NW, ERR_MSG_PC_2, KMKID_506_PC_AD);
				result = false;
			}
		}

//		// 単項目関連チェック（携帯アドレス、携帯アドレス確認が入力されている場合、同一値でなければエラー）
//		if (!JFUStrConst.EMPTY.equals(pc_ad) && !JFUStrConst.EMPTY.equals(pc_ad_sub))
//		{
//			if (!pc_ad.equals(pc_ad_sub))
//			{
//				JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF1020_NW, ERR_MSG_MB_2, KMKID_506_MB_AD);
//				result = false;
//			}
//		}

		return result;
	}

	/**
	 * 携帯ドメインのチェックを実施します
	 * ドメインが一致した場合のみtrueを返却します。
	 * @param mb_ad 携帯アドレスに入力されたメールアドレス
	 * @param domainMap 許可ドメインの一覧マップ
	 * @return result
	 */
	private boolean isMbDomainCheck(String mb_ad, Map<String, String> domainMap)
	{
		// ドメインチェック判定用フラグ
		boolean result = false;

		// 携帯メールアドレスのドメイン部分のみ抽出
		String checkDomain = mb_ad.substring(mb_ad.indexOf(JFUStrConst.ATMARK) + 1, mb_ad.length());

		String domain = JFUStrConst.EMPTY;

		if (domainMap.isEmpty() == false)
		{
			for (int cnt = 1; cnt <= domainMap.size(); cnt++)
			{
				domain = domainMap.get(DOMAIN_ID_NM + String.valueOf(cnt));

				// ドメイン定義に一致すればTRUE
				if (checkDomain.equals(domain))
				{
					result = true;
					break;
				}
			}
		}

		// エラーがあった場合、エラーメッセージを設定
		if (!result)
		{
			JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF0400_TW, ERR_MSG_MB_1, KMKID_506_MB_AD);
		}

		return result;
	}

	/**
	 * サービス「FUSV0173_工事工程進捗照会」を呼び出します。
	 *
	 * @param bean サービスフォームBean
	 */
	private void executeFUSV0173(X31SDataBeanAccess bean)
	{
		// ユースケースID格納用マップを生成
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, SERVICE_ID_FUSV0173);

		// 設定値格納用マップ生成。
		FUSV0173_FUSV0173OPDBMapper mapper = new FUSV0173_FUSV0173OPDBMapper();

		// 結果格納用マップを生成
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// 入力格納用マップを生成
		HashMap<String, Object> inputMap = new HashMap<String, Object>();

		X31SDataBeanAccess[] paramBean = { bean };

		// 2013/01/17 n.taga START
		String kojiak_ymd = JFUStrConst.EMPTY;
		String takcho_ymd = JFUStrConst.EMPTY;
		String taknikj_ymd = JFUStrConst.EMPTY;
		// 2013/01/17 n.taga END
//ANK-3298-00-00 ADD START
		String takcho_hm = JFUStrConst.EMPTY;
		String taknikj_hm = JFUStrConst.EMPTY;
//ANK-3298-00-00 ADD END

		// 上りマッピング
		// 2012/12/25 TAI-2012-0000136-160 Y.Saitou DEL
		//		mapper.setFUSV017301SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1); // 工事案件一意照会
		mapper.setFUSV017302SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1); // 工事工程進捗一意照会

		// 工事進捗情報取得
		X31SDataBeanAccessArray kojiSinchokuInfo = bean.getDataBeanArray(FUW00501SFConst.KJSC_INFO);
		X31SDataBeanAccess kojiSinchokuInfoBean = kojiSinchokuInfo.getDataBean(0);
		// 初期化
		kojiSinchokuInfoBean.sendMessageString(CommonInfoCFConst.KOJIAK_FIN_RSV_YMD_42, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
		kojiSinchokuInfoBean.sendMessageString(CommonInfoCFConst.TAKCHO_FIN_YMD_42, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
		kojiSinchokuInfoBean.sendMessageString(CommonInfoCFConst.TAKNIKJ_RSV_YMD_42, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
//ANK-3298-00-00 ADD START
		kojiSinchokuInfoBean.sendMessageString(CommonInfoCFConst.TAKCHO_FIN_HM_42, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
		kojiSinchokuInfoBean.sendMessageString(CommonInfoCFConst.TAKNIKJ_RSV_HM_42, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
//ANK-3298-00-00 ADD END

		try
		{
			invokeService(paramMap, inputMap, outputMap);
		}
		catch (JCCWebServiceException jccexception)
		{
			DEBUG_LOG.info("-------FUW00503 invokeService error-------");
			// 更新時エラーの場合は業務用例外クラスをthrowします。
			throw new JCCBusinessException("0002");
		}

		X31SDataBeanAccess[] paramBeanOut = { bean };

		// 下りマッピング
		// 2012/12/25 TAI-2012-0000136-160 Y.Saitou DEL
		//		mapper.getFUSV017301SC(paramBeanOut, outputMap);
		mapper.getFUSV017302SC(paramBeanOut, outputMap);

		// 共有フォームBeanより値取得
		kojiak_ymd = kojiSinchokuInfoBean.sendMessageString(CommonInfoCFConst.KOJIAK_FIN_RSV_YMD_42, X31CWebConst.DATABEAN_GET_VALUE);
		takcho_ymd = kojiSinchokuInfoBean.sendMessageString(CommonInfoCFConst.TAKCHO_FIN_YMD_42, X31CWebConst.DATABEAN_GET_VALUE);
		taknikj_ymd = kojiSinchokuInfoBean.sendMessageString(CommonInfoCFConst.TAKNIKJ_RSV_YMD_42, X31CWebConst.DATABEAN_GET_VALUE);
//ANK-3298-00-00 ADD START
		takcho_hm = kojiSinchokuInfoBean.sendMessageString(CommonInfoCFConst.TAKCHO_FIN_HM_42, X31CWebConst.DATABEAN_GET_VALUE);
		taknikj_hm = kojiSinchokuInfoBean.sendMessageString(CommonInfoCFConst.TAKNIKJ_RSV_HM_42, X31CWebConst.DATABEAN_GET_VALUE);
//ANK-3298-00-00 ADD END
		
		// 取得した値を判定し半角ハイフンを挿入
		if (JFUStrConst.EMPTY.equals(kojiak_ymd) || kojiak_ymd == null)
		{
			kojiak_ymd = JFUStrConst.HALF_HAIHUN;
		}
		if (JFUStrConst.EMPTY.equals(takcho_ymd) || takcho_ymd == null)
		{
			takcho_ymd = JFUStrConst.HALF_HAIHUN;
		}
		if (JFUStrConst.EMPTY.equals(taknikj_ymd) || taknikj_ymd == null)
		{
			taknikj_ymd = JFUStrConst.HALF_HAIHUN;
		}
//ANK-3298-00-00 ADD START
		if (JFUStrConst.EMPTY.equals(takcho_hm) || takcho_hm == null)
		{
			takcho_hm = JFUStrConst.HALF_HAIHUN;
		}
		if (JFUStrConst.EMPTY.equals(taknikj_hm) || taknikj_hm == null)
		{
			taknikj_hm = JFUStrConst.HALF_HAIHUN;
		}
//ANK-3298-00-00 ADD END

		// 編集した値を共有フォームBeanに戻す
		kojiSinchokuInfoBean.sendMessageString(CommonInfoCFConst.KOJIAK_FIN_RSV_YMD_42, X31CWebConst.DATABEAN_SET_VALUE, kojiak_ymd);
		kojiSinchokuInfoBean.sendMessageString(CommonInfoCFConst.TAKCHO_FIN_YMD_42, X31CWebConst.DATABEAN_SET_VALUE, takcho_ymd);
		kojiSinchokuInfoBean.sendMessageString(CommonInfoCFConst.TAKNIKJ_RSV_YMD_42, X31CWebConst.DATABEAN_SET_VALUE, taknikj_ymd);
		// 2013/01/17 n.taga END
//ANK-3298-00-00 ADD START
		kojiSinchokuInfoBean.sendMessageString(CommonInfoCFConst.TAKCHO_FIN_HM_42, X31CWebConst.DATABEAN_SET_VALUE, takcho_hm);
		kojiSinchokuInfoBean.sendMessageString(CommonInfoCFConst.TAKNIKJ_RSV_HM_42, X31CWebConst.DATABEAN_SET_VALUE, taknikj_hm);
//ANK-3298-00-00 ADD END

	}

	/**
	 * サービス「FUSV0175_契約者情報照会」を呼び出します。
	 *
	 * @param bean サービスフォームBean
	 */
	private void executeFUSV0175(X31SDataBeanAccess bean)
	{
		X31SDataBeanAccess[] paramBean = { bean };

		// ユースケースID格納用マップを生成。
		Map<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, SERVICE_ID_FUSV0175);

		// マッピングクラスのインスタンスを生成
		FUSV0175_FUSV0175OPDBMapper mapper = new FUSV0175_FUSV0175OPDBMapper();
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		/* ++++++++++ v2.00 修正開始 ++++++++++ */
		//		// TAI-2011-0000035 2012/03/18 h.iwamoto START
		////		mapper.setFUSV017501SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		//		mapper.setFUSV017501SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2, JFUWebCommon.getOpeDate(this, null));
		//		// TAI-2011-0000035 2012/03/18 h.iwamoto END
		mapper.setFUSV017501SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		/* ++++++++++ v2.00 修正終了 ++++++++++ */

		mapper.setFUSV017502SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		mapper.setFUSV017503SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		mapper.setFUSV017504SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);

		try
		{
			// サービス（契約者情報照会）呼び出し
			DEBUG_LOG.info("----- call_FUSV0175_START -----");
			invokeService(paramMap, inputMap, outputMap);
			DEBUG_LOG.info("----- call_FUSV0175_END -----");
		}
		catch (JCCWebServiceException jccexception)
		{
			// システムエラー
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}

		X31SDataBeanAccess[] paramBeanOut = { bean };

		// サービスからの戻りデータをBeanにセット
		mapper.getFUSV017501SC(paramBeanOut, outputMap);
		mapper.getFUSV017502SC(paramBeanOut, outputMap);
		mapper.getFUSV017503SC(paramBeanOut, outputMap);
		mapper.getFUSV017504SC(paramBeanOut, outputMap);
	}

	/**
	 * サービスフォームBeanにデータの設定を行う
	 * <br>
	 * @param serviceBean サービスフォームBean
	 * @throws Exception 例外
	 */
	private void setParam507(X31SDataBeanAccess serviceBean) throws Exception
	{
		// 送信メール情報を取得
		Map<String, String> sendMailInfoMap = JFUWebCommon.getDispItemsAsMap(SEND_MAIL_INFO_PATH, QUERY_ATTR_NAME);

		// 送信元メールアドレス
		String fromMlad = JFUWebCommon.getApplicationConst(SETTE_NAIYO_CFM_FROM_MLAD);
		// 2013/01/17 障害対応（ST2-2013-0000033） Fujiwara Add End

		// 設定済み
		String maisetTrue = sendMailInfoMap.get(MAP_KEY_MAIL_SET_TRUE);
		// 未設定
		String maisetFalse = sendMailInfoMap.get(MAP_KEY_MAIL_SET_FALSE);
		// 運用日付
		String opeDate = JCCWebCommon.getOpeDate(this, null);

		// 外部ファイルから取得した送信元メールアドレス ⇒ 送信元メールアドレス
		serviceBean.sendMessageString(FUW00501SFConst.SENDM_MLAD, X31CWebConst.DATABEAN_SET_VALUE, fromMlad);

		// "01"(リアルタイム) ⇒ 送信元メールアドレス
		serviceBean.sendMessageString(FUW00501SFConst.MAIL_SEND_PATTERN_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00789_01);

		// 運用日付 ⇒ 共有フォームBean.工事進捗.工事進捗通知PCメールアドレス変更年月日
		serviceBean.sendMessageString(FUW00501SFConst.KJSC_TCH_PC_MLAD_CHG_YMD, X31CWebConst.DATABEAN_SET_VALUE, opeDate);

		// 運用日付 ⇒ サービスフォームBean.工事進捗通知携帯メールアドレス変更年月日
		serviceBean.sendMessageString(FUW00501SFConst.KJSC_TCH_KTAI_MLAD_CHG_YMD, X31CWebConst.DATABEAN_SET_VALUE, opeDate);

		// 送信先一覧を保持
		X31SDataBeanAccessArray sendsArray = serviceBean.getDataBeanArray(FUW00501SFConst.SENDS_LIST);
		// 文字列一覧を保持
		X31SDataBeanAccessArray charListArray = serviceBean.getDataBeanArray(FUW00501SFConst.CHR_LIST);

		// 送信先一覧が2行になるまで追加
		for (int i = sendsArray.getCount(); i < 2; i++)
		{
			sendsArray.addDataBean();
		}

// ANK-3057-00-00 MOD START
//		// 文字列一覧が3行になるまで追加
//		for (int i = charListArray.getCount(); i < 3; i++)
		// 文字列一覧が2行になるまで追加
		for (int i = charListArray.getCount(); i < 1; i++)
// ANK-3057-00-00 MOD END
		{
			charListArray.addDataBean();
		}

		// 送信先一覧DataBean
		X31SDataBeanAccess sendsListBean = null;

		// 送信先一覧DataBean
		X31SDataBeanAccess charListBean = null;

		// @PCメールアドレスの設定

		// サービスフォームBeanのPCメールアドレスが""(空)でない場合
		if (!JFUStrConst.EMPTY.equals(serviceBean.sendMessageString(FUW00501SFConst.PC_MLAD, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// "FUM1000015" ⇒ 共有フォームBean.工事進捗.メールコード
			serviceBean.sendMessageString(FUW00501SFConst.MAIL_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.MAIL_CD_SET_NYO_CFM);
			sendsListBean = sendsArray.getDataBean(0);

			// サービスフォームBean.PCメールアドレス ⇒ サービスフォームBean.送信先一覧[0].送信先メールアドレス
			sendsListBean.sendMessageString(FUW00501SFConst.MLAD_03, X31CWebConst.DATABEAN_SET_VALUE, serviceBean.sendMessageString(
					FUW00501SFConst.PC_MLAD, X31CWebConst.DATABEAN_GET_VALUE));

			// "01"(TO) ⇒ サービスフォームBean.送信先一覧[0].メールアドレス設定フィールドコード
			sendsListBean.sendMessageString(FUW00501SFConst.MLAD_SET_FIELD_CD_03, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00788_01);
// ANK-3421-00-00 ADD START
			X31SDataBeanAccessArray mailMeisaiListArray = serviceBean.getDataBeanArray(FUW00501SFConst.MAIL_DTL_CD_LIST);
			X31SDataBeanAccess mailMeisaiListDataType = mailMeisaiListArray.getDataBean(0);
			if (null == mailMeisaiListDataType)
			{
				mailMeisaiListArray.addDataBean();
				mailMeisaiListDataType = mailMeisaiListArray.getDataBean(0);
			}
			mailMeisaiListDataType.sendMessageString(FUW00501SFConst.MAIL_DTL_CD_06, X31CWebConst.DATABEAN_SET_VALUE,
					JFUStrConst.MAIL_DTL_CD_FUD1000082);
// ANK-3421-00-00 ADD END

		}

		// サービスフォームBeanのPCメールアドレスが""(空)かつ、サービスフォームBeanの変更前PCメールアドレスが""(空)でない場合
		if (JFUStrConst.EMPTY.equals(serviceBean.sendMessageString(FUW00501SFConst.PC_MLAD, X31CWebConst.DATABEAN_GET_VALUE))
				&& !JFUStrConst.EMPTY.equals(serviceBean.sendMessageString(FUW00501SFConst.BF_PC_MLAD, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// "FUM1000015" ⇒ 共有フォームBean.工事進捗.メールコード
			serviceBean.sendMessageString(FUW00501SFConst.MAIL_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.MAIL_CD_SET_NYO_CFM);
			sendsListBean = sendsArray.getDataBean(0);

			// サービスフォームBean.変更前PCメールアドレス ⇒ サービスフォームBean.送信先一覧[0].送信先メールアドレス
			sendsListBean.sendMessageString(FUW00501SFConst.MLAD_03, X31CWebConst.DATABEAN_SET_VALUE, serviceBean.sendMessageString(
					FUW00501SFConst.BF_PC_MLAD, X31CWebConst.DATABEAN_GET_VALUE));
			// "01"(TO) ⇒ サービスフォームBean.送信先一覧[0].メールアドレス設定フィールドコード
			sendsListBean.sendMessageString(FUW00501SFConst.MLAD_SET_FIELD_CD_03, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00788_01);
// ANK-3421-00-00 ADD START
			X31SDataBeanAccessArray mailMeisaiListArray = serviceBean.getDataBeanArray(FUW00501SFConst.MAIL_DTL_CD_LIST);
			X31SDataBeanAccess mailMeisaiListDataType = mailMeisaiListArray.getDataBean(0);
			if (null == mailMeisaiListDataType)
			{
				mailMeisaiListArray.addDataBean();
				mailMeisaiListDataType = mailMeisaiListArray.getDataBean(0);
			}
			mailMeisaiListDataType.sendMessageString(FUW00501SFConst.MAIL_DTL_CD_06, X31CWebConst.DATABEAN_SET_VALUE,
					JFUStrConst.MAIL_DTL_CD_FUD1000082);
// ANK-3421-00-00 ADD END
		}

//		// A携帯メールアドレスの設定
//
//		// サービスフォームBeanの携帯メールアドレスが""でない場合
//		if (!JFUStrConst.EMPTY.equals(serviceBean.sendMessageString(FUW00501SFConst.KTAI_MLAD, X31CWebConst.DATABEAN_GET_VALUE)))
//		{
//			// "FUM1000017" ⇒ サービスフォームBean.メールコード(携帯用)
//			serviceBean.sendMessageString(FUW00501SFConst.MAIL_CD_MOBILE, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.MAIL_CD_SET_NYO_CFM_MOBILE);
//
//			sendsListBean = sendsArray.getDataBean(1);
//
//			// サービスフォームBean.携帯メールアドレス ⇒ サービスフォームBean.送信先一覧[1].送信先メールアドレス
//			sendsListBean.sendMessageString(FUW00501SFConst.MLAD_03, X31CWebConst.DATABEAN_SET_VALUE, serviceBean.sendMessageString(
//					FUW00501SFConst.KTAI_MLAD, X31CWebConst.DATABEAN_GET_VALUE));
//			// "01"(TO) ⇒ サービスフォームBean.送信先一覧[1].メールアドレス設定フィールドコード
//			sendsListBean.sendMessageString(FUW00501SFConst.MLAD_SET_FIELD_CD_03, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00788_01);
//		}
//
//		// サービスフォームBeanの携帯メールアドレスが""かつ、サービスフォームBeanの変更前携帯メールアドレスが""でない場合
//		if (JFUStrConst.EMPTY.equals(serviceBean.sendMessageString(FUW00501SFConst.KTAI_MLAD, X31CWebConst.DATABEAN_GET_VALUE))
//				&& !JFUStrConst.EMPTY.equals(serviceBean.sendMessageString(FUW00501SFConst.BF_KTAI_MLAD, X31CWebConst.DATABEAN_GET_VALUE)))
//		{
//			// "FUM1000017" ⇒ サービスフォームBean.メールコード(携帯用)
//			serviceBean.sendMessageString(FUW00501SFConst.MAIL_CD_MOBILE, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.MAIL_CD_SET_NYO_CFM_MOBILE);
//
//			sendsListBean = sendsArray.getDataBean(1);
//
//			// サービスフォームBean.変更前携帯メールアドレス ⇒ サービスフォームBean.送信先一覧[0].送信先メールアドレス
//			sendsListBean.sendMessageString(FUW00501SFConst.MLAD_03, X31CWebConst.DATABEAN_SET_VALUE, serviceBean.sendMessageString(
//					FUW00501SFConst.BF_KTAI_MLAD, X31CWebConst.DATABEAN_GET_VALUE));
//			// "01"(TO) ⇒ サービスフォームBean.送信先一覧[0].メールアドレス設定フィールドコード
//			sendsListBean.sendMessageString(FUW00501SFConst.MLAD_SET_FIELD_CD_03, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00788_01);
//		}

		// Bメール帳票【項目NO.2】の設定
		// 文字列一覧に一行追加
		/* ++++++++++ v2.00 修正開始 ++++++++++ */
		//		charListArray.addDataBean();
		/* ++++++++++ v2.00 修正終了 ++++++++++ */
		charListBean = charListArray.getDataBean(0);

		// サービスフォームBeanのPCメールアドレスが""でない場合
		if (!JFUStrConst.EMPTY.equals(serviceBean.sendMessageString(FUW00501SFConst.PC_MLAD, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// "設定済み" ⇒ サービスフォームBean.文字列一覧[0].本文非定型置換文字
			charListBean.sendMessageString(FUW00501SFConst.TEXT_HTK_CKAM_MOJI_04, X31CWebConst.DATABEAN_SET_VALUE, maisetTrue);
		}

		// サービスフォームBeanのPCメールアドレスが""の場合
		if (JFUStrConst.EMPTY.equals(serviceBean.sendMessageString(FUW00501SFConst.PC_MLAD, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// "未設定" ⇒ サービスフォームBean.文字列一覧[0].本文非定型置換文字
			charListBean.sendMessageString(FUW00501SFConst.TEXT_HTK_CKAM_MOJI_04, X31CWebConst.DATABEAN_SET_VALUE, maisetFalse);
		}

//		// Cメール帳票【項目NO.3】の設定
//		// 文字列一覧に一行追加
//		charListBean = charListArray.getDataBean(1);
//
//		// サービスフォームBeanの携帯メールアドレスが""(空)でない場合
//		if (!JFUStrConst.EMPTY.equals(serviceBean.sendMessageString(FUW00501SFConst.KTAI_MLAD, X31CWebConst.DATABEAN_GET_VALUE)))
//		{
//			// "設定済み" ⇒ サービスフォームBean.文字列一覧[1].本文非定型置換文字
//			charListBean.sendMessageString(FUW00501SFConst.TEXT_HTK_CKAM_MOJI_04, X31CWebConst.DATABEAN_SET_VALUE, maisetTrue);
//		}
//
//		// サービスフォームBeanの携帯メールアドレスが""(空)の場合
//		if (JFUStrConst.EMPTY.equals(serviceBean.sendMessageString(FUW00501SFConst.KTAI_MLAD, X31CWebConst.DATABEAN_GET_VALUE)))
//		{
//			// "未設定" ⇒ サービスフォームBean.文字列一覧[1].本文非定型置換文字
//			charListBean.sendMessageString(FUW00501SFConst.TEXT_HTK_CKAM_MOJI_04, X31CWebConst.DATABEAN_SET_VALUE, maisetFalse);
//		}

// ANK-3057-00-00 DEL START
//		// IT1-2013-0000254 Otsuka 2013/01/22 start
//		// Dメール帳票【項目NO.4】の設定(URL)
//		charListBean = charListArray.getDataBean(2);
//
//		String urlWeb = JFUWebCommon.getDispText(JFUScreenConst.SCREEN_ID_FUW00507, ML_URL_WEB);
//		// Webからのお問い合わせ ⇒ サービスフォームBean.文字列一覧[2].本文非定型置換文字
//		charListBean.sendMessageString(FUW00501SFConst.TEXT_HTK_CKAM_MOJI_04, X31CWebConst.DATABEAN_SET_VALUE, urlWeb);
//		// IT1-2013-0000254 Otsuka 2013/01/22 end
// ANK-3057-00-00 DEL END
	}

	/**
	 * 空文字かどうかを判定する。 <BR>
	 *
	 * @param value
	 * @return （true:空文字、false:空文字以外）
	 */
	private boolean isEmpty(String value)
	{
		return JFUStrConst.EMPTY.equals(value);
	}

	/**
	 * 遷移先設定
	 *
	 * @param  screenMode        画面遷移モード
	 * @param  nextScreenId      遷移先画面ID
	 * @param  nextScreenName    遷移先画面名
	 *
	 * @return void
	 */
	private void setNextScreen(String nextScreenId, String nextScreenName)
	{
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, nextScreenId);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, nextScreenName);
	}

	/**
	 * 照会ボタン表示切替
	 * @param bean 工事進捗ログイン
	 * @throws Exception
	 */
	private void setScreenMode(X31SDataBeanAccess bean) throws Exception
	{
		//ネット照会ボタン表示フラグの設定
		//サービスフォームBean.工事案件情報[0].工事案件番号が""の場合
		if (isEmpty(getUseKojiak(bean, FUW00501SFConst.KJAK_NO_01, 0)))
		{

			//ネット照会ボタン表示フラグに"0"を設定する。
			bean.sendMessageString(FUW00501SFConst.NET_BTN_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, BTN_DISP_FLG_FALSE);
		}
		else
		{

			//ネット照会ボタン表示フラグに"1"を設定する。
			bean.sendMessageString(FUW00501SFConst.NET_BTN_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, BTN_DISP_FLG_TRUE);
		}

		//電話照会ボタン表示フラグの設定
		//サービスフォームBean.工事案件情報[1].工事案件番号が""の場合
		if (isEmpty(getUseKojiak(bean, FUW00501SFConst.KJAK_NO_01, 1)))
		{

			// 電話照会ボタン表示フラグに"0"を設定する。
			bean.sendMessageString(FUW00501SFConst.TEL_BTN_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, BTN_DISP_FLG_FALSE);
		}
		else
		{

			//電話照会ボタン表示フラグに"1"を設定する。
			bean.sendMessageString(FUW00501SFConst.TEL_BTN_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, BTN_DISP_FLG_TRUE);
		}

		//テレビ照会ボタン表示フラグの設定
		//サービスフォームBean.工事案件情報[2].工事案件番号が""の場合
		if (isEmpty(getUseKojiak(bean, FUW00501SFConst.KJAK_NO_01, 2)))
		{

			//テレビ照会ボタン表示フラグに"0"を設定する。
			bean.sendMessageString(FUW00501SFConst.TV_BTN_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, BTN_DISP_FLG_FALSE);
		}
		else
		{

			//テレビ照会ボタン表示フラグに"1"を設定する。
			bean.sendMessageString(FUW00501SFConst.TV_BTN_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, BTN_DISP_FLG_TRUE);
		}
	}

	/**
	 * お知らせ事項表示フラグ取得
	 * @return （1:表示、0:非表示）
	 */
	private String getOshiraseDispFlg()
	{
		// サービスフォームBean
		X31SDataBeanAccess serviceFormBean = getServiceFormBean();

		// 工事進捗情報を取得
		X31SDataBeanAccessArray sintyokuList = serviceFormBean.getDataBeanArray(FUW00501SFConst.KJSC_INFO);
		X31SDataBeanAccess sintyokuInfo = sintyokuList.getDataBean(0);

		String chosaNgFlg = sintyokuInfo.sendMessageString(FUW00501SFConst.CHOSA_NG_FLG_02, X31CWebConst.DATABEAN_GET_VALUE);
		String dsgnNgFlg = sintyokuInfo.sendMessageString(FUW00501SFConst.DSGN_NG_FLG_02, X31CWebConst.DATABEAN_GET_VALUE);
		String irregularFlg = sintyokuInfo.sendMessageString(FUW00501SFConst.IRREGULAR_FLG_02, X31CWebConst.DATABEAN_GET_VALUE);
		String stepTakchoSdaksRcpCd = sintyokuInfo.sendMessageString(FUW00501SFConst.STEP_TAKCHO_SDAKS_RCP_CD_02, X31CWebConst.DATABEAN_GET_VALUE);
		String stepUseStaCd = sintyokuInfo.sendMessageString(FUW00501SFConst.STEP_USE_STA_CD_02, X31CWebConst.DATABEAN_GET_VALUE);
		String takchoJssiFlg = sintyokuInfo.sendMessageString(FUW00501SFConst.TAKCHO_JSSI_FLG_02, X31CWebConst.DATABEAN_GET_VALUE);
		String kokiChgreMemo = sintyokuInfo.sendMessageString(FUW00501SFConst.KOKI_CHGRE_MEMO_02, X31CWebConst.DATABEAN_GET_VALUE);

		// FUW00504のお知らせ事項領域の表示制御判定
		if (JFUStrConst.CD00775_1.equals(irregularFlg))
		{
			// イレギュラーフラグが「1:あり」の場合
			return JFUStrConst.DISP_FLG_DSP;
		}

		if (JFUStrConst.CD00775_0.equals(irregularFlg))
		{
			// イレギュラーフラグが「0:なし」の場合

			if (JFUStrConst.CD00685_1.equals(dsgnNgFlg))
			{
				// イレギュラーフラグが「0:なし」で且つ
				// 設計NGフラグが「1:NG」の場合
				return JFUStrConst.DISP_FLG_DSP;
			}

			if (JFUStrConst.CD00685_0.equals(dsgnNgFlg) && JFUStrConst.CD00686_1.equals(chosaNgFlg))
			{
				// イレギュラーフラグが「0:なし」で且つ
				// 設計NGフラグが「0:通常」で且つ
				// 調査NGフラグ「1:NG」の場合
				return JFUStrConst.DISP_FLG_DSP;
			}

			if (JFUStrConst.CD00685_0.equals(dsgnNgFlg) && JFUStrConst.CD00686_0.equals(chosaNgFlg)
					&& JFUStrConst.CD00573_1.equals(stepTakchoSdaksRcpCd) && JFUStrConst.CD00687_1.equals(takchoJssiFlg))
			{
				// イレギュラーフラグが「0:なし」で且つ
				// 設計NGフラグが「0:通常」で且つ
				// 調査NGフラグ「0:通常」で且つ
				// 工程承諾書受領コードが「1:作業中」且つ
				// 宅内調査実施フラグが「1:宅内調査あり」の場合
				return JFUStrConst.DISP_FLG_DSP;
			}

			if (JFUStrConst.CD00685_0.equals(dsgnNgFlg) && JFUStrConst.CD00686_0.equals(chosaNgFlg)
					&& !JFUStrConst.CD00573_1.equals(stepTakchoSdaksRcpCd) && !JFUStrConst.CD00573_0.equals(stepUseStaCd))
			{
				// イレギュラーフラグが「0:なし」で且つ
				// 設計NGフラグが「0:通常」で且つ
				// 調査NGフラグ「0:通常」で且つ
				// 工程承諾書受領コードが「1:作業中」以外で且つ
				// 工程ご利用開始コードが「0:未着手」以外の場合
				return JFUStrConst.DISP_FLG_DSP;
			}
		}

		// FUW00504のお知らせ事項領域の表示制御判定
		if (!JFUWebCommon.isNull(kokiChgreMemo))
		{
			// 工期変更理由メモが未設定でない場合
			return JFUStrConst.DISP_FLG_DSP;
		}

		return JFUStrConst.DISP_FLG_HIDSP;
	}

	/**
	 * sフロント業務リスト
	 * @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;
	}

	/**
	 * 業務規制情報を設定する。
	 * @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 = 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);
		}
	}

	/**
	 * 契約者電話番号を取得する。
	 * @param bean サービスフォームBean
	 * @return String 契約者電話番号
	 */
	private String getKeishaTelNo(X31SDataBeanAccess bean)
	{
		String telNo =
				bean.sendMessageString(FUW00501SFConst.KEISHA_TELNO_1, X31CWebConst.DATABEAN_GET_VALUE)
						+ bean.sendMessageString(FUW00501SFConst.KEISHA_TELNO_2, X31CWebConst.DATABEAN_GET_VALUE)
						+ bean.sendMessageString(FUW00501SFConst.KEISHA_TELNO_3, X31CWebConst.DATABEAN_GET_VALUE);
		return telNo;
	}
	

	/**
	 * URLに申込番号・郵便番号を設定しているか確認。
	 * @param reqParams：リクエストパラメータ
	 * @return true：パラメータ呼び出し
	 * 			false：通常画面遷移
	 */
	@SuppressWarnings("unchecked")
	private boolean paramCall(X31CHashMap reqParams)
	{
		if((reqParams.containsKey(SENIID_501_MSKM_NO) && !JFUWebCommon.isNull((String)reqParams.get(SENIID_501_MSKM_NO)))
			&& (reqParams.containsKey(SENIID_501_PCD_CD) && !JFUWebCommon.isNull((String)reqParams.get(SENIID_501_PCD_CD))))
		{
			return true;
		}
		return false;
	}
}
