/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKW00858SFLogic
*	ソースファイル名：KKW00858SFLogic.java
*	作成者			：FJ)中川
*	日付			：2024年09月25日
*＜機能概要＞
*	NTT卸ネット電話情報登録・照会画面のビューロジッククラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v73.00.00	2024/09/25	FJ)中川		新規作成
*   v75.00.00	2025/02/19	GDC)J.Zabala	【ANK-4640-00-00】typeN：追加要件対応
**********************************************************************/
package eo.web.webview.KKW00858SF;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.common.JSYwebLog;
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.JKKStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JKKStringUtil;
import eo.common.util.JPCUtilCommon;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.ZMW10601SF.ZMW10601SFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKCommonConst;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.common.JKKWebCommon;
import eo.web.webview.common.JZMScreenConst;
import eo.web.webview.mapping.KKSV0093_KKSV0093OPDBMapper;
import eo.web.webview.mapping.KKSV0549_KKSV0549OPDBMapper;
import eo.web.webview.mapping.KKSV1037_KKSV1037OPDBMapper;
import eo.web.webview.mapping.KKSV1038_KKSV1038OPDBMapper;

/**
 * NTT卸ネット電話情報登録・照会画面のビューロジッククラス<p>
 * <br>
 * @author FJ
 */
@SuppressWarnings("serial")
public class KKW00858SFLogic extends JCCWebBusinessLogic 
{
	/** サービスフォームBeanの各画面のエラー情報格納配列領域のIndex値 */
	public static final int KKW00858_ERR_INFO = 0;
	
	/** 進捗特記事項1の設定文言 */
	private static final String EOHTEL_INFO = "ｅｏ光電話（ｔｙｐｅ　Ｎ）情報";
	private static final String ADD = "登録";
	private static final String CHG = "変更";
	private static final String DSL = "解約";
	private static final String RSV_CLK = "予約取消";
	private static final String CNCL = "キャンセル";
	
	/** サブオプションサービス判定用 */
	private static final String TELNO_TCHI = "1";
	private static final String HASINSHA_NO_DSP = "2";
	private static final String HITCHI_INCMHI = "3";
	private static final String KOKUSAI_TEL_STP = "4";
	
	/** 処理区分 登録 */
	private static final String SHORI_DIV_ADD = "1";
	/** 処理区分 変更 */
	private static final String SHORI_DIV_CHG = "3";
	/** 処理区分 解約 */
	private static final String SHORI_DIV_DSL = "4";
	/** 処理区分 オプション予約取消 */
	private static final String SHORI_DIV_OP_RSV_CL = "5";
	/** 処理区分 サブオプション予約取消 */
	private static final String SHORI_DIV_SBOP_RSV_CL = "6";
	
	/** 住所プルダウン情報設定内容 */
	private static final String[][] ADDRESS_KIND_LIST = {
		{"1", "1.契約者住所情報と同じ"},
		{"2", "2.利用場所住所情報と同じ"}
	};
	
	/**コードリストの定数*/
	private static final String CD_DIV_LIST = "コードリスト";
	/**コード名リストの定数*/
	private static final String CD_DIV_NM_LIST = "コード名リスト";
	
	/**
	 * NTT卸ネット電話情報登録・照会画面の初期表示処理を行います。
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean actionInit() throws Exception
	{
		// 画面情報を取得し、サービスフォームBeanに設定。
		JCCWebCommon.getScreenInfo(this);
		
		//サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {svcFormBean};
		
		// 運用日付をDataBeanに設定
		paramBean[0].sendMessageString(KKW00858SFConst.UNYO_YMD, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getOpeDate(this, null));
		paramBean[0].sendMessageString(KKW00858SFConst.OPE_DATE, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getOpeDate(this, null));
		
		// 住所情報プルダウン情報を生成
		initPulldownAddressKindList(paramBean[0].getDataBeanArray(KKW00858SFConst.AD_INF_PULLDOWN_INF));
		
		// DataBean設定処理（引継情報）
		setHktgiBean(paramBean);
		
		// 初期表示サービス呼出処理
		executeInitSvc(paramBean);
		
		// DataBean設定処理
		setDataInit(paramBean);

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true;
	}

	/**
	 * NTT卸ネット電話情報登録確認画面の初期表示処理を行います。
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean actionInitCfm() throws Exception
	{
		// 画面情報を取得し、サービスフォームBeanに設定。
		JCCWebCommon.getScreenInfo(this);
		
		//サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {svcFormBean};
		
		// DataBean設定処理（引継情報）
		setHktgiBean(paramBean);
		
		// 処理区分判定
		String tranDiv = svcFormBean.sendMessageString(KKW00858SFConst.TRAN_DIV, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 予約取消の場合はメッセージを出力
		if(JKKCommonConst.OP_TRAN_DIV_RSV_CL.equals(tranDiv))
		{
			// 運用日付をDataBeanに設定
			paramBean[0].sendMessageString(KKW00858SFConst.UNYO_YMD, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getOpeDate(this, null));
			paramBean[0].sendMessageString(KKW00858SFConst.OPE_DATE, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getOpeDate(this, null));
			
			// 初期表示サービス呼出処理
			executeInitSvc(paramBean);
			
			// DataBean設定処理
			setDataInit(paramBean);
			
			// DataBean項目間の同期編集（上り）
			refleshBeanUp(svcFormBean);
			
			// メッセージ出力
			String[] msgInfo = {"NTT卸ネット電話情報の予約取消"};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0370__I, msgInfo);
		}
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true;
	}

	/**
	 * クリア処理<br>
	 * <br>
	 * １．初期表示処理を呼び出します。<br>
	 * <br>
	 * @return true:正常
	 * @throws Exception 
	 */
	public boolean actionClear() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};

		// 初期表示サービス呼出処理
		executeInitSvc(paramBean);
		
		// DataBean設定処理
		setDataInit(paramBean);
		
		// 住所情報プルダウン初期化
		initPulldownAddressKindList(paramBean[0].getDataBeanArray(KKW00858SFConst.AD_INF_PULLDOWN_INF));
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return true;
	}

	/**
	 * 戻る処理<br>
	 * <br>
	 * １．呼び出し元画面に戻ります。<br>
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean actionBack() throws Exception
	{

		// 共有フォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
	
		// 遷移先の画面IDを取得し共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getScreenId(this));

		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true;
	}

	/**
	 * 登録・照会画面「更新確認」ボタン押下時の処理を行います。
	 * <br>
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception 例外が発生した場合
	 */
	public boolean actionCfm() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		
		// チェック状態再設定処理
		setCheckStat(svcFormBean);
		
		// DataBean項目間の同期編集（上り）
		refleshBeanUp(svcFormBean);
		
		// 処理区分
		String tranDiv = svcFormBean.sendMessageString(KKW00858SFConst.TRAN_DIV, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 各種チェック
		// 単関連、関連
		// 単関連チェック No.13  郵便番号の整合性チェック
		if(!tankanrenChkNo13())
		{
			JCCWebCommon.setMessageInfo(this, "EKB0620-NW", new String[]{"住所マスタの郵便番号","入力された郵便番号"});
			return false;
		}
		// メッセージ
		String strMsgInfo = "";
		
		// 処理区分判定
		String cfmTranDiv = "";
		if(JKKStringUtil.isNullBlank(tranDiv))
		{
			cfmTranDiv = SHORI_DIV_ADD;
			strMsgInfo = "NTT卸ネット電話情報の登録";
			
			// 進捗特記事項1
			svcFormBean.sendMessageString(KKW00858SFConst.PRG_TKJK_1, X31CWebConst.DATABEAN_SET_VALUE, EOHTEL_INFO + ADD);
		}
		else if(JKKCommonConst.OP_TRAN_DIV_CHGE.equals(tranDiv))
		{
			cfmTranDiv = SHORI_DIV_CHG;
			// メッセージ出力
			strMsgInfo = "NTT卸ネット電話情報の変更";
			
			// 進捗特記事項1
			svcFormBean.sendMessageString(KKW00858SFConst.PRG_TKJK_1, X31CWebConst.DATABEAN_SET_VALUE, EOHTEL_INFO + CHG);
		}
		else if(JKKCommonConst.OP_TRAN_DIV_DSL.equals(tranDiv))
		{
			cfmTranDiv = SHORI_DIV_DSL;
			strMsgInfo = "NTT卸ネット電話情報の解約";
			
			// 進捗特記事項1
			svcFormBean.sendMessageString(KKW00858SFConst.PRG_TKJK_1, X31CWebConst.DATABEAN_SET_VALUE, EOHTEL_INFO + DSL);
		}
		
		// サービス呼出
		invokeCfmService(svcFormBean, JPCModelConstant.FUNC_CD_2, cfmTranDiv, "");
		
		// メッセージ出力
		if(!JKKStringUtil.isNullBlank(strMsgInfo))
		{
			String[] msgInfo = { strMsgInfo };
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0370__I, msgInfo);
		}
		
		// 関連チェック No.11  自動解約確認
		if(JKKCommonConst.OP_TRAN_DIV_CHGE.equals(tranDiv))
		{
			String hasinshaNoDspDslRsvFlg = svcFormBean.sendMessageString(KKW00858SFConst.HASINSHA_NO_DSP_DSL_RSV_FLG, X31CWebConst.DATABEAN_GET_VALUE);
			String hasinshaNoDspUseEndRsvYmd = svcFormBean.sendMessageString(KKW00858SFConst.HASINSHA_NO_DSP_USE_ENDRSVYMD, X31CWebConst.DATABEAN_GET_VALUE);
			boolean hitchiIncmhiMskmUm = svcFormBean.sendMessageBoolean(KKW00858SFConst.HITCHI_INCMHI_MSKM_UM, X31CWebConst.DATABEAN_GET_VALUE);
			if(!JKKCommonConst.FLG_ON.equals(hasinshaNoDspDslRsvFlg) && !JKKStringUtil.isNullBlank(hasinshaNoDspUseEndRsvYmd)
				&& hitchiIncmhiMskmUm)
			{
				String[] str = {"発信者番号表示","解約","非通知着信拒否"};
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB1760__I, str);
			}
		}
		
		// ANK-4640-00-00 ADD START
		// 処理区分判定
		if(JKKStringUtil.isNullBlank(tranDiv) || JKKCommonConst.OP_TRAN_DIV_CHGE.equals(tranDiv))
		{
			// スクリーンサービス開始日
			String befSvcStaYmd = svcFormBean.sendMessageString(KKW00858SFConst.BEF_SVC_STAYMD, X31CWebConst.DATABEAN_GET_VALUE);
			
			if(JKKStringUtil.isNullBlank(befSvcStaYmd))
			{
				// サービス開始日
				String svcStaYmd = svcFormBean.sendMessageString(KKW00858SFConst.SVC_STAYMD, X31CWebConst.DATABEAN_GET_VALUE);
				
				if(!JKKStringUtil.isNullBlank(svcStaYmd))
				{
					String[] msgInfo = { "事務手数料有無の登録" };
					JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0370__I, msgInfo);
				}
				else
				{
					JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBG330__I);
				}
			}
		}
		// ANK-4640-00-00 ADD END
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		//共有Bean アクセスクラスの取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// 画面ID・画面名の設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW00859);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW00859);
		return true;
	}

	/**
	 * 登録・照会画面「予約取消」ボタン押下時の処理を行います(電話番号通知)。
	 * <br>
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception 例外が発生した場合
	 */
	public boolean actionClTelnoTchi() throws Exception
	{
		return actionCl(TELNO_TCHI);
	}

	/**
	 * 登録・照会画面「予約取消」ボタン押下時の処理を行います(発信者番号表示)。
	 * <br>
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception 例外が発生した場合
	 */
	public boolean actionClHasinshaNoDsp() throws Exception
	{
		return actionCl(HASINSHA_NO_DSP);
	}

	/**
	 * 登録・照会画面「予約取消」ボタン押下時の処理を行います(非通知着信拒否)。
	 * <br>
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception 例外が発生した場合
	 */
	public boolean actionClHitchiIncmhi() throws Exception
	{
		return actionCl(HITCHI_INCMHI);
	}

	/**
	 * 登録・照会画面「予約取消」ボタン押下時の処理を行います(国際電話利用抑止)。
	 * <br>
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception 例外が発生した場合
	 */
	public boolean actionClKokusaiTelStp() throws Exception
	{
		return actionCl(KOKUSAI_TEL_STP);
	}

	/**
	 * 登録・照会画面「コピー」ボタン押下時の処理を行います。
	 * <br>
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception 例外が発生した場合
	 */
	public boolean actionCopy() throws Exception 
	{
		
		HashMap<String, Object> paramMap = null;
		HashMap<String, Object> inputMap = null;
		HashMap<String, Object> outputMap = null;
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		
		// チェック状態再設定処理
		setCheckStat(bean);
		
		// -----------住所情報の選択値を取得-----------
		X31SDataBeanAccessArray adInfPulldownInfList = bean.getDataBeanArray(KKW00858SFConst.AD_INF_PULLDOWN_INF);
		X31SDataBeanAccess adInfPulldownInf = adInfPulldownInfList.getDataBean(0);
		String adInfIndex = adInfPulldownInf.sendMessageString(KKW00858SFConst.INDEX_03, X31CWebConst.DATABEAN_GET_VALUE);
		String adInfCd = adInfPulldownInf.sendMessageString(KKW00858SFConst.CD_DIV_LIST_03, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(adInfIndex));
		bean.sendMessageString(KKW00858SFConst.AD_INF_CD, X31CWebConst.DATABEAN_SET_VALUE, adInfCd);
		
		// 利用場所住所のコピー
		//指定が空欄のままなら何もせずに戻る
		if ("".equals(adInfCd))
		{
			return true;
		}
		// -----------サービス呼出処理-----------
		paramMap = new HashMap<String, Object>(); // パラメタ設定用マップ
		inputMap = new HashMap<String, Object>(); // 入力情報格納用マップ
		outputMap = new HashMap<String, Object>(); // 結果格納用マップ
		
		// パラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JKKCommonConst.UCID_KKSV0093);
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, JKKCommonConst.OPID_KKSV0093OP);
		
		// 上りマッピング(サービス項目-DataBean項目マッピング)
		KKSV0093_KKSV0093OPDBMapper mapper = new KKSV0093_KKSV0093OPDBMapper();
		mapper.setKKSV009301SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		mapper.setKKSV009302SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setREQCHK(paramBean, inputMap, null);
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		// 番号ポータビリティ情報登録コピーサービスを実施
		invokeService(paramMap, inputMap, outputMap);
		
		// 取得情報の下りマッピング
		mapper.getKKSV009301SC(paramBean, outputMap);
		mapper.getKKSV009302SC(paramBean, outputMap);
		
		// -----------住所コピー処理-----------
		if (ADDRESS_KIND_LIST[0][0].equals(adInfCd))
		{
			// お客様の情報を設定
			X31SDataBeanAccessArray custInfList = bean.getDataBeanArray(KKW00858SFConst.CUST_INF);
			if (custInfList != null && custInfList.getCount() > 0)
			{
				X31SDataBeanAccess custInf = custInfList.getDataBean(0);
				String keishaPcd = custInf.sendMessageString(KKW00858SFConst.KEISHA_PCD_04, X31CWebConst.DATABEAN_GET_VALUE);
				bean.sendMessageString(KKW00858SFConst.TYPEN_PCD_BF, X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.toTopThreeDigitFromPcd(keishaPcd));
				bean.sendMessageString(KKW00858SFConst.TYPEN_PCD_AF, X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.toUnderFourDigitFromPcd(keishaPcd));
				String usePlaceAdCd = custInf.sendMessageString(KKW00858SFConst.KEISHA_AD_CD_04, X31CWebConst.DATABEAN_GET_VALUE);
				bean.sendMessageString(KKW00858SFConst.TYPEN_AD_CD1, X31CWebConst.DATABEAN_SET_VALUE, subString(usePlaceAdCd, 0, 2));
				bean.sendMessageString(KKW00858SFConst.TYPEN_AD_CD2, X31CWebConst.DATABEAN_SET_VALUE, subString(usePlaceAdCd, 2, 5));
				bean.sendMessageString(KKW00858SFConst.TYPEN_AD_CD3, X31CWebConst.DATABEAN_SET_VALUE, subString(usePlaceAdCd, 5, 8));
				bean.sendMessageString(KKW00858SFConst.TYPEN_AD_CD4, X31CWebConst.DATABEAN_SET_VALUE, subString(usePlaceAdCd, 8, 11));
				bean.sendMessageString(KKW00858SFConst.TYPEN_STATE_NM, X31CWebConst.DATABEAN_SET_VALUE,
						custInf.sendMessageString(KKW00858SFConst.KEISHA_STATE_NM_04, X31CWebConst.DATABEAN_GET_VALUE));
				bean.sendMessageString(KKW00858SFConst.TYPEN_CITY_NM, X31CWebConst.DATABEAN_SET_VALUE,
						custInf.sendMessageString(KKW00858SFConst.KEISHA_CITY_NM_04, X31CWebConst.DATABEAN_GET_VALUE));
				bean.sendMessageString(KKW00858SFConst.TYPEN_OAZTSU_NM, X31CWebConst.DATABEAN_SET_VALUE,
						custInf.sendMessageString(KKW00858SFConst.KEISHA_OAZTSU_NM_04, X31CWebConst.DATABEAN_GET_VALUE));
				bean.sendMessageString(KKW00858SFConst.TYPEN_AZCHO_NM, X31CWebConst.DATABEAN_SET_VALUE,
						custInf.sendMessageString(KKW00858SFConst.KEISHA_AZCHO_NM_04, X31CWebConst.DATABEAN_GET_VALUE));
				bean.sendMessageString(KKW00858SFConst.TYPEN_BNCHIGO, X31CWebConst.DATABEAN_SET_VALUE,
						custInf.sendMessageString(KKW00858SFConst.KEISHA_BNCHIGO_04, X31CWebConst.DATABEAN_GET_VALUE));
				bean.sendMessageString(KKW00858SFConst.TYPEN_ADRTTM, X31CWebConst.DATABEAN_SET_VALUE,
						custInf.sendMessageString(KKW00858SFConst.KEISHA_ADRTTM_04, X31CWebConst.DATABEAN_GET_VALUE));
				bean.sendMessageString(KKW00858SFConst.TYPEN_ADRRM, X31CWebConst.DATABEAN_SET_VALUE,
						custInf.sendMessageString(KKW00858SFConst.KEISHA_ADRRM_04, X31CWebConst.DATABEAN_GET_VALUE));
			}
		}
		else if (ADDRESS_KIND_LIST[1][0].equals(adInfCd))
		{
			// サービス契約回線内訳の情報を設定
			X31SDataBeanAccessArray svkeiKaisenUwInfList = bean.getDataBeanArray(KKW00858SFConst.SVKEI_KAISEN_UW_INF);
			if (svkeiKaisenUwInfList != null && svkeiKaisenUwInfList.getCount() > 0)
			{
				X31SDataBeanAccess svkeiKaisenUwInf = svkeiKaisenUwInfList.getDataBean(0);
				String kaisenPlacePcd = svkeiKaisenUwInf.sendMessageString(KKW00858SFConst.KAISEN_PLACE_PCD_05, X31CWebConst.DATABEAN_GET_VALUE);
				bean.sendMessageString(KKW00858SFConst.TYPEN_PCD_BF, X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.toTopThreeDigitFromPcd(kaisenPlacePcd));
				bean.sendMessageString(KKW00858SFConst.TYPEN_PCD_AF, X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.toUnderFourDigitFromPcd(kaisenPlacePcd));
				String usePlaceAdCd = svkeiKaisenUwInf.sendMessageString(KKW00858SFConst.KAISEN_PLACE_AD_CD_05, X31CWebConst.DATABEAN_GET_VALUE);
				bean.sendMessageString(KKW00858SFConst.TYPEN_AD_CD1, X31CWebConst.DATABEAN_SET_VALUE, subString(usePlaceAdCd, 0, 2));
				bean.sendMessageString(KKW00858SFConst.TYPEN_AD_CD2, X31CWebConst.DATABEAN_SET_VALUE, subString(usePlaceAdCd, 2, 5));
				bean.sendMessageString(KKW00858SFConst.TYPEN_AD_CD3, X31CWebConst.DATABEAN_SET_VALUE, subString(usePlaceAdCd, 5, 8));
				bean.sendMessageString(KKW00858SFConst.TYPEN_AD_CD4, X31CWebConst.DATABEAN_SET_VALUE, subString(usePlaceAdCd, 8, 11));
				bean.sendMessageString(KKW00858SFConst.TYPEN_STATE_NM, X31CWebConst.DATABEAN_SET_VALUE,
						svkeiKaisenUwInf.sendMessageString(KKW00858SFConst.KAISEN_PLACE_STATE_NM_05, X31CWebConst.DATABEAN_GET_VALUE));
				bean.sendMessageString(KKW00858SFConst.TYPEN_CITY_NM, X31CWebConst.DATABEAN_SET_VALUE,
						svkeiKaisenUwInf.sendMessageString(KKW00858SFConst.KAISEN_PLACE_CITY_NM_05, X31CWebConst.DATABEAN_GET_VALUE));
				bean.sendMessageString(KKW00858SFConst.TYPEN_OAZTSU_NM, X31CWebConst.DATABEAN_SET_VALUE,
						svkeiKaisenUwInf.sendMessageString(KKW00858SFConst.KAISEN_PLACE_OAZTSU_NM_05, X31CWebConst.DATABEAN_GET_VALUE));
				bean.sendMessageString(KKW00858SFConst.TYPEN_AZCHO_NM, X31CWebConst.DATABEAN_SET_VALUE,
						svkeiKaisenUwInf.sendMessageString(KKW00858SFConst.KAISEN_PLACE_AZCHO_NM_05, X31CWebConst.DATABEAN_GET_VALUE));
				bean.sendMessageString(KKW00858SFConst.TYPEN_BNCHIGO, X31CWebConst.DATABEAN_SET_VALUE,
						svkeiKaisenUwInf.sendMessageString(KKW00858SFConst.KAISEN_PLACE_BNCHIGO_05, X31CWebConst.DATABEAN_GET_VALUE));
				bean.sendMessageString(KKW00858SFConst.TYPEN_ADRTTM, X31CWebConst.DATABEAN_SET_VALUE,
						svkeiKaisenUwInf.sendMessageString(KKW00858SFConst.KAISEN_PLACE_ADRTTM_05, X31CWebConst.DATABEAN_GET_VALUE));
				bean.sendMessageString(KKW00858SFConst.TYPEN_ADRRM, X31CWebConst.DATABEAN_SET_VALUE,
						svkeiKaisenUwInf.sendMessageString(KKW00858SFConst.KAISEN_PLACE_ADRRM_05, X31CWebConst.DATABEAN_GET_VALUE));
			}
		}
		
		// 手動入力
		bean.sendMessageBoolean(KKW00858SFConst.TYPEN_AD_MAN_INPUT_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true;
		
	}

	/**
	 * 登録確認画面「確定」ボタン押下時の処理を行います。
	 * <br>
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception 例外が発生した場合
	 */
	public boolean actionFix() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		
		// 処理区分判定
		String tranDiv = svcFormBean.sendMessageString(KKW00858SFConst.TRAN_DIV, X31CWebConst.DATABEAN_GET_VALUE);
		String cfmTranDiv = "";
		if(JKKStringUtil.isNullBlank(tranDiv))
		{
			cfmTranDiv = SHORI_DIV_ADD;
			// 進捗特記事項1
			svcFormBean.sendMessageString(KKW00858SFConst.PRG_TKJK_1, X31CWebConst.DATABEAN_SET_VALUE, EOHTEL_INFO + ADD);
		}
		else if(JKKCommonConst.OP_TRAN_DIV_CHGE.equals(tranDiv))
		{
			cfmTranDiv = SHORI_DIV_CHG;
			// 進捗特記事項1
			svcFormBean.sendMessageString(KKW00858SFConst.PRG_TKJK_1, X31CWebConst.DATABEAN_SET_VALUE, EOHTEL_INFO + CHG);
		}
		else if(JKKCommonConst.OP_TRAN_DIV_DSL.equals(tranDiv))
		{
			cfmTranDiv = SHORI_DIV_DSL;
			// 進捗特記事項1
			svcFormBean.sendMessageString(KKW00858SFConst.PRG_TKJK_1, X31CWebConst.DATABEAN_SET_VALUE, EOHTEL_INFO + DSL);
		}
		else if(JKKCommonConst.OP_TRAN_DIV_RSV_CL.equals(tranDiv))
		{
			cfmTranDiv = SHORI_DIV_OP_RSV_CL;
			String opSvcKeiStat = svcFormBean.sendMessageString(KKW00858SFConst.OP_SVC_KEI_STAT, X31CWebConst.DATABEAN_GET_VALUE);
			// 進捗特記事項1
			if(JKKStrConst.OP_SVC_STAT_UKETSUKEZUMI.equals(opSvcKeiStat) || JKKStrConst.OP_SVC_STAT_SHOSAZUMI.equals(opSvcKeiStat))
			{
				svcFormBean.sendMessageString(KKW00858SFConst.PRG_TKJK_1, X31CWebConst.DATABEAN_SET_VALUE, EOHTEL_INFO + CNCL);
			}
			else
			{
				svcFormBean.sendMessageString(KKW00858SFConst.PRG_TKJK_1, X31CWebConst.DATABEAN_SET_VALUE, EOHTEL_INFO + RSV_CLK);
			}
		}

		// サービス呼出
		invokeCfmService(svcFormBean, JPCModelConstant.FUNC_CD_1, cfmTranDiv, "");
		
		// 返却メッセージ
		String rtnMsgId = svcFormBean.sendMessageString(KKW00858SFConst.RTN_MSG_ID, X31CWebConst.DATABEAN_GET_VALUE);
		if(!JKKStringUtil.isNullBlank(rtnMsgId))
		{
			// メッセージの設定
			String[] str = getMsgRep(cfmTranDiv, rtnMsgId);
			
			if (str == null) 
			{
				// メッセージ出力(IDのみ)
				JCCWebCommon.setMessageInfo(this, rtnMsgId);
			}
			else
			{
				// メッセージ出力(置換文字あり)
				JCCWebCommon.setMessageInfo(this, rtnMsgId, str);
			}
			return false;
		}

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		//共有Bean アクセスクラスの取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		
		// 画面ID・画面名の設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW02301);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW02301);
		return true;
	}

	/**
	 * 修正処理<br>
	 * <br>
	 * １．変更画面に戻ります。<br>
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean actionShusei() throws Exception
	{
		
		// 共有フォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		
		// 遷移先の画面IDを共有フォームBeanの項目に設定する
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_ID_KKW00858);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_NAME_KKW00858);

		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return true;
		
	}

	
	/**
	 * DataBean設定処理（初期表示）<br>
	 * <br>
	 * 画面DataBeanに必要な項目をセットします。<br>
	 * <br>
	 * @param paramBean DataBean項目の配列
	 */
	private void setHktgiBean(X31SDataBeanAccess[] paramBean)
	{
		// 顧客契約引継リストの取得
		X31SDataBeanAccessArray hktgilist = paramBean[0].getDataBeanArray(KKW00858SFConst.CUST_KEI_HKTGI_LIST);
		X31SDataBeanAccess hktgiBean = hktgilist.getDataBean(0);
		
		// DataBeanにセットしなおす
		// 処理区分
		String tran_div = hktgiBean.sendMessageString(KKW00858SFConst.TRAN_DIV_01, X31CWebConst.DATABEAN_GET_VALUE);
		paramBean[0].sendMessageString(KKW00858SFConst.TRAN_DIV,  X31CWebConst.DATABEAN_SET_VALUE, tran_div);

		// SYSID
		String sysid = hktgiBean.sendMessageString(KKW00858SFConst.SYSID_01, X31CWebConst.DATABEAN_GET_VALUE);
		paramBean[0].sendMessageString(KKW00858SFConst.SYSID,  X31CWebConst.DATABEAN_SET_VALUE, sysid);

		// サービス契約番号
		String svc_kei_no = hktgiBean.sendMessageString(KKW00858SFConst.SVC_KEI_NO_01, X31CWebConst.DATABEAN_GET_VALUE);
		paramBean[0].sendMessageString(KKW00858SFConst.SVC_KEI_NO,  X31CWebConst.DATABEAN_SET_VALUE, svc_kei_no);

		// 異動区分
		String ido_div = hktgiBean.sendMessageString(KKW00858SFConst.IDO_DIV_01, X31CWebConst.DATABEAN_GET_VALUE);
		paramBean[0].sendMessageString(KKW00858SFConst.IDO_DIV,  X31CWebConst.DATABEAN_SET_VALUE, ido_div);

		// 異動理由コードの設定
		X31SDataBeanAccessArray ido_rsn_list = paramBean[0].getDataBeanArray(KKW00858SFConst.IDO_RSN_CD_LIST);
		String ido_rsn_memo = hktgiBean.sendMessageString(KKW00858SFConst.IDO_RSN_MEMO_01, X31CWebConst.DATABEAN_GET_VALUE);

		// 異動理由コードの要素数を取得
		int cnt = (Integer)hktgiBean.sendMessage(KKW00858SFConst.IDO_RSN_CD_01, X31CWebConst.DATABEAN_GET_COUNT);
		
		// 異動理由コードの要素数分繰り返す
		for(int i = 0; i < cnt; i++)
		{
			X31SDataBeanAccess ido_rsn_bean = null;
			if(ido_rsn_list.getCount() - 1 >= i)
			{
				ido_rsn_bean = ido_rsn_list.getDataBean(i);
			}
			else
			{
				ido_rsn_bean = ido_rsn_list.addDataBean();
			}
			if (ido_rsn_bean == null) 
			{
				continue;
			}

			// 異動理由コードの取得
			String ido_rsn_cd = hktgiBean.sendMessageString(KKW00858SFConst.IDO_RSN_CD_01, X31CWebConst.DATABEAN_GET_VALUE, i);
			
			// 異動理由.異動理由コードの設定
			ido_rsn_bean.sendMessageString(KKW00858SFConst.IDO_RSN_CD_02, X31CWebConst.DATABEAN_SET_VALUE, ido_rsn_cd);
			// 異動理由.異動理由メモの設定
			ido_rsn_bean.sendMessageString(KKW00858SFConst.IDO_RSN_MEMO_02, X31CWebConst.DATABEAN_SET_VALUE, ido_rsn_memo);
			
		}
		
		// オプションサービス契約番号
		if(JKKStringUtil.isNullBlank(tran_div))
		{
			paramBean[0].sendMessageString(KKW00858SFConst.OP_SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, new String());
		}
		else
		{
			String op_svc_kei_no = hktgiBean.sendMessageString(KKW00858SFConst.OP_SVC_KEI_NO_01, X31CWebConst.DATABEAN_GET_VALUE, 0);
			paramBean[0].sendMessageString(KKW00858SFConst.OP_SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, op_svc_kei_no);
		}
	}

	/**
	 * NTT卸ネット電話情報照会サービス実行処理
	 * <br>
	 * @param paramBean DataBean項目の配列
	 */
	private void executeInitSvc(X31SDataBeanAccess[] paramBean)
	{
		// 変数の定義
		HashMap<String, Object> paramMap = null;
		HashMap<String, Object> inputMap = null;
		HashMap<String, Object> outputMap = null;
		
		paramMap = new HashMap<String, Object>();		// パラメタ設定用マップ
		inputMap = new HashMap<String, Object>();		// 入力用マップ
		outputMap = new HashMap<String, Object>();		// 結果格納用マップ
		
		// パラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV1037");
		
		// 上りマッピング処理(サービス項目-DataBean項目マッピング)
		KKSV1037_KKSV1037OPDBMapper mapper = new KKSV1037_KKSV1037OPDBMapper();
		
		// オプションサービス契約一意照会
		mapper.setKKSV103701CC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);

		// サービス呼出処理
		invokeService(paramMap, inputMap, outputMap);

		// 下りマッピング処理(サービス項目-DataBean項目マッピング)
		// オプションサービス契約一意照会
		mapper.getKKSV103701CC(paramBean, outputMap);
	}

	/**
	 * DataBean設定処理（初期表示）<br>
	 * <br>
	 * 画面DataBeanに必要な項目をセットします。<br>
	 * <br>
	 * @param paramBean DataBean項目の配列
	 */
	private void setDataInit(X31SDataBeanAccess[] paramBean)
	{
		String svcStaYmd = paramBean[0].sendMessageString(KKW00858SFConst.SVC_STAYMD, X31CWebConst.DATABEAN_GET_VALUE);
		if(!JKKStringUtil.isNullBlank(svcStaYmd) && svcStaYmd.length() >= 8){
			// 利用開始日（年）
			paramBean[0].sendMessageString(KKW00858SFConst.SVC_STAYMD_YEAR, X31CWebConst.DATABEAN_SET_VALUE, svcStaYmd.substring(0, 4));
			// 利用開始日（月）
			paramBean[0].sendMessageString(KKW00858SFConst.SVC_STAYMD_MON, X31CWebConst.DATABEAN_SET_VALUE, svcStaYmd.substring(4, 6));
			// 利用開始日（日）
			paramBean[0].sendMessageString(KKW00858SFConst.SVC_STAYMD_DAY, X31CWebConst.DATABEAN_SET_VALUE, svcStaYmd.substring(6, 8));
		}else{
			// 利用開始日（年）
			paramBean[0].sendMessageString(KKW00858SFConst.SVC_STAYMD_YEAR, X31CWebConst.DATABEAN_SET_VALUE, "");
			// 利用開始日（月）
			paramBean[0].sendMessageString(KKW00858SFConst.SVC_STAYMD_MON, X31CWebConst.DATABEAN_SET_VALUE, "");
			// 利用開始日（日）
			paramBean[0].sendMessageString(KKW00858SFConst.SVC_STAYMD_DAY, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		String svcEndYmd = paramBean[0].sendMessageString(KKW00858SFConst.SVC_ENDYMD, X31CWebConst.DATABEAN_GET_VALUE);
		String svcEndRsvYmd = paramBean[0].sendMessageString(KKW00858SFConst.SVC_ENDRSVYMD, X31CWebConst.DATABEAN_GET_VALUE);
		if(!JKKStringUtil.isNullBlank(svcEndYmd) && svcEndYmd.length() >= 8){
			// 利用終了日（年）
			paramBean[0].sendMessageString(KKW00858SFConst.SVC_ENDYMD_YEAR, X31CWebConst.DATABEAN_SET_VALUE, svcEndYmd.substring(0, 4));
			// 利用終了日（月）
			paramBean[0].sendMessageString(KKW00858SFConst.SVC_ENDYMD_MON, X31CWebConst.DATABEAN_SET_VALUE, svcEndYmd.substring(4, 6));
			// 利用終了日（日）
			paramBean[0].sendMessageString(KKW00858SFConst.SVC_ENDYMD_DAY, X31CWebConst.DATABEAN_SET_VALUE, svcEndYmd.substring(6, 8));
		}else if(!JKKStringUtil.isNullBlank(svcEndRsvYmd) && svcEndRsvYmd.length() >= 8){
			// 利用終了日（年）
			paramBean[0].sendMessageString(KKW00858SFConst.SVC_ENDYMD_YEAR, X31CWebConst.DATABEAN_SET_VALUE, svcEndRsvYmd.substring(0, 4));
			// 利用終了日（月）
			paramBean[0].sendMessageString(KKW00858SFConst.SVC_ENDYMD_MON, X31CWebConst.DATABEAN_SET_VALUE, svcEndRsvYmd.substring(4, 6));
			// 利用終了日（日）
			paramBean[0].sendMessageString(KKW00858SFConst.SVC_ENDYMD_DAY, X31CWebConst.DATABEAN_SET_VALUE, svcEndRsvYmd.substring(6, 8));
		}else{
			// 利用終了日（年）
			paramBean[0].sendMessageString(KKW00858SFConst.SVC_ENDYMD_YEAR, X31CWebConst.DATABEAN_SET_VALUE, "");
			// 利用終了日（月）
			paramBean[0].sendMessageString(KKW00858SFConst.SVC_ENDYMD_MON, X31CWebConst.DATABEAN_SET_VALUE, "");
			// 利用終了日（日）
			paramBean[0].sendMessageString(KKW00858SFConst.SVC_ENDYMD_DAY, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		String telnoTchiUseEndYmd = paramBean[0].sendMessageString(KKW00858SFConst.TELNO_TCHI_USE_ENDRSVYMD, X31CWebConst.DATABEAN_GET_VALUE);
		if(!JKKStringUtil.isNullBlank(telnoTchiUseEndYmd) && telnoTchiUseEndYmd.length() >= 8){
			// 電話番号通知利用終了日（年）
			paramBean[0].sendMessageString(KKW00858SFConst.TELNO_TCHI_USE_ENDYMD_YEAR, X31CWebConst.DATABEAN_SET_VALUE, telnoTchiUseEndYmd.substring(0, 4));
			// 電話番号通知利用終了日（月）
			paramBean[0].sendMessageString(KKW00858SFConst.TELNO_TCHI_USE_ENDYMD_MON, X31CWebConst.DATABEAN_SET_VALUE, telnoTchiUseEndYmd.substring(4, 6));
			// 電話番号通知利用終了日（日）
			paramBean[0].sendMessageString(KKW00858SFConst.TELNO_TCHI_USE_ENDYMD_DAY, X31CWebConst.DATABEAN_SET_VALUE, telnoTchiUseEndYmd.substring(6, 8));
		}else{
			// 電話番号通知利用終了日（年）
			paramBean[0].sendMessageString(KKW00858SFConst.TELNO_TCHI_USE_ENDYMD_YEAR, X31CWebConst.DATABEAN_SET_VALUE, "");
			// 電話番号通知利用終了日（月）
			paramBean[0].sendMessageString(KKW00858SFConst.TELNO_TCHI_USE_ENDYMD_MON, X31CWebConst.DATABEAN_SET_VALUE, "");
			// 電話番号通知利用終了日（日）
			paramBean[0].sendMessageString(KKW00858SFConst.TELNO_TCHI_USE_ENDYMD_DAY, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		String hasinshaNoDspUseEndYmd = paramBean[0].sendMessageString(KKW00858SFConst.HASINSHA_NO_DSP_USE_ENDRSVYMD, X31CWebConst.DATABEAN_GET_VALUE);
		if(!JKKStringUtil.isNullBlank(hasinshaNoDspUseEndYmd) && hasinshaNoDspUseEndYmd.length() >= 8){
			// 発信者番号表示利用終了日（年）
			paramBean[0].sendMessageString(KKW00858SFConst.HASINSHA_NO_DSP_USE_ENDYMD_YEAR, X31CWebConst.DATABEAN_SET_VALUE, hasinshaNoDspUseEndYmd.substring(0, 4));
			// 発信者番号表示利用終了日（月）
			paramBean[0].sendMessageString(KKW00858SFConst.HASINSHA_NO_DSP_USE_ENDYMD_MON, X31CWebConst.DATABEAN_SET_VALUE, hasinshaNoDspUseEndYmd.substring(4, 6));
			// 発信者番号表示利用終了日（日）
			paramBean[0].sendMessageString(KKW00858SFConst.HASINSHA_NO_DSP_USE_ENDYMD_DAY, X31CWebConst.DATABEAN_SET_VALUE, hasinshaNoDspUseEndYmd.substring(6, 8));
		}else{
			// 発信者番号表示利用終了日（年）
			paramBean[0].sendMessageString(KKW00858SFConst.HASINSHA_NO_DSP_USE_ENDYMD_YEAR, X31CWebConst.DATABEAN_SET_VALUE, "");
			// 発信者番号表示利用終了日（月）
			paramBean[0].sendMessageString(KKW00858SFConst.HASINSHA_NO_DSP_USE_ENDYMD_MON, X31CWebConst.DATABEAN_SET_VALUE, "");
			// 発信者番号表示利用終了日（日）
			paramBean[0].sendMessageString(KKW00858SFConst.HASINSHA_NO_DSP_USE_ENDYMD_DAY, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		String hitchiIncmhiUseEndYmd = paramBean[0].sendMessageString(KKW00858SFConst.HITCHI_INCMHI_USE_ENDRSVYMD, X31CWebConst.DATABEAN_GET_VALUE);
		if(!JKKStringUtil.isNullBlank(hitchiIncmhiUseEndYmd) && hitchiIncmhiUseEndYmd.length() >= 8){
			// 非通知着信拒否利用終了日（年）
			paramBean[0].sendMessageString(KKW00858SFConst.HITCHI_INCMHI_USE_ENDYMD_YEAR, X31CWebConst.DATABEAN_SET_VALUE, hitchiIncmhiUseEndYmd.substring(0, 4));
			// 非通知着信拒否利用終了日（月）
			paramBean[0].sendMessageString(KKW00858SFConst.HITCHI_INCMHI_USE_ENDYMD_MON, X31CWebConst.DATABEAN_SET_VALUE, hitchiIncmhiUseEndYmd.substring(4, 6));
			// 非通知着信拒否利用終了日（日）
			paramBean[0].sendMessageString(KKW00858SFConst.HITCHI_INCMHI_USE_ENDYMD_DAY, X31CWebConst.DATABEAN_SET_VALUE, hitchiIncmhiUseEndYmd.substring(6, 8));
		}else{
			// 非通知着信拒否利用終了日（年）
			paramBean[0].sendMessageString(KKW00858SFConst.HITCHI_INCMHI_USE_ENDYMD_YEAR, X31CWebConst.DATABEAN_SET_VALUE, "");
			// 非通知着信拒否利用終了日（月）
			paramBean[0].sendMessageString(KKW00858SFConst.HITCHI_INCMHI_USE_ENDYMD_MON, X31CWebConst.DATABEAN_SET_VALUE, "");
			// 非通知着信拒否利用終了日（日）
			paramBean[0].sendMessageString(KKW00858SFConst.HITCHI_INCMHI_USE_ENDYMD_DAY, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		String kokusaiTelStpUseEndYmd = paramBean[0].sendMessageString(KKW00858SFConst.KOKUSAI_TEL_STP_USE_ENDRSVYMD, X31CWebConst.DATABEAN_GET_VALUE);
		if(!JKKStringUtil.isNullBlank(kokusaiTelStpUseEndYmd) && kokusaiTelStpUseEndYmd.length() >= 8){
			// 国際電話利用抑止利用終了日（年）
			paramBean[0].sendMessageString(KKW00858SFConst.KOKUSAI_TEL_STP_USE_ENDYMD_YEAR, X31CWebConst.DATABEAN_SET_VALUE, kokusaiTelStpUseEndYmd.substring(0, 4));
			// 国際電話利用抑止利用終了日（月）
			paramBean[0].sendMessageString(KKW00858SFConst.KOKUSAI_TEL_STP_USE_ENDYMD_MON, X31CWebConst.DATABEAN_SET_VALUE, kokusaiTelStpUseEndYmd.substring(4, 6));
			// 国際電話利用抑止利用終了日（日）
			paramBean[0].sendMessageString(KKW00858SFConst.KOKUSAI_TEL_STP_USE_ENDYMD_DAY, X31CWebConst.DATABEAN_SET_VALUE, kokusaiTelStpUseEndYmd.substring(6, 8));
		}else{
			// 国際電話利用抑止利用終了日（年）
			paramBean[0].sendMessageString(KKW00858SFConst.KOKUSAI_TEL_STP_USE_ENDYMD_YEAR, X31CWebConst.DATABEAN_SET_VALUE, "");
			// 国際電話利用抑止利用終了日（月）
			paramBean[0].sendMessageString(KKW00858SFConst.KOKUSAI_TEL_STP_USE_ENDYMD_MON, X31CWebConst.DATABEAN_SET_VALUE, "");
			// 国際電話利用抑止利用終了日（日）
			paramBean[0].sendMessageString(KKW00858SFConst.KOKUSAI_TEL_STP_USE_ENDYMD_DAY, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		// ANK-4640-00-00 ADD START
		// 通信事業者コード
		String tsjgsCd = JKKWebCommon.convertCode(
							paramBean[0], 
							KKW00858SFConst.NOW_USE_TEL_SVC_TK_JGS, 
							KKW00858SFConst.SELECT_INDEX_06, 
							KKW00858SFConst.TSJGS_CD_LIST_06);
		paramBean[0].sendMessageString(KKW00858SFConst.TSJGS_CD, X31CWebConst.DATABEAN_SET_VALUE, tsjgsCd);
		// 通信事業者名
		String tsjgsNm = JKKWebCommon.getPullDownName(
							paramBean[0], 
							KKW00858SFConst.NOW_USE_TEL_SVC_TK_JGS,
							KKW00858SFConst.SELECT_INDEX_06, 
							KKW00858SFConst.TSJGS_CD_LIST_06,
							KKW00858SFConst.TSJGS_NM_LIST_06);
		paramBean[0].sendMessageString(KKW00858SFConst.TSJGS_NM, X31CWebConst.DATABEAN_SET_VALUE, tsjgsNm);
		
		// 前サービス開始日
		paramBean[0].sendMessageString(KKW00858SFConst.BEF_SVC_STAYMD, X31CWebConst.DATABEAN_SET_VALUE, svcStaYmd);
		
		// 事務手数料有無 初期値：「有」
		paramBean[0].sendMessageString(KKW00858SFConst.JMTE_UM, X31CWebConst.DATABEAN_SET_VALUE, JKKStrConst.CD_DIV_UM_ARI);
		// ANK-4640-00-00 ADD END
	}

	/**
	 * DataBean項目間の同期編集（上り）を行います。<br>
	 * <br>
	 * DataBeanに必要な項目を編集しセットします。<br>
	 * <br>
	 * @param svcFormBean DataBean
	 */
	private void refleshBeanUp(X31SDataBeanAccess svcFormBean) 
	{
		// 利用開始日
		String svcStaYear = svcFormBean.sendMessageString(KKW00858SFConst.SVC_STAYMD_YEAR, X31CWebConst.DATABEAN_GET_VALUE);
		String svcStaMon = svcFormBean.sendMessageString(KKW00858SFConst.SVC_STAYMD_MON, X31CWebConst.DATABEAN_GET_VALUE);
		String svcStaDay = svcFormBean.sendMessageString(KKW00858SFConst.SVC_STAYMD_DAY, X31CWebConst.DATABEAN_GET_VALUE);
		svcFormBean.sendMessageString(KKW00858SFConst.SVC_STAYMD, X31CWebConst.DATABEAN_SET_VALUE, svcStaYear + svcStaMon + svcStaDay);
		
		// 利用終了日
		String svcEndYear = svcFormBean.sendMessageString(KKW00858SFConst.SVC_ENDYMD_YEAR, X31CWebConst.DATABEAN_GET_VALUE);
		String svcEndMon = svcFormBean.sendMessageString(KKW00858SFConst.SVC_ENDYMD_MON, X31CWebConst.DATABEAN_GET_VALUE);
		String svcEndDay = svcFormBean.sendMessageString(KKW00858SFConst.SVC_ENDYMD_DAY, X31CWebConst.DATABEAN_GET_VALUE);
		svcFormBean.sendMessageString(KKW00858SFConst.SVC_ENDYMD, X31CWebConst.DATABEAN_SET_VALUE, svcEndYear + svcEndMon + svcEndDay);

		// 電話番号通知利用終了日
		String telnoTchiUseEndYear = svcFormBean.sendMessageString(KKW00858SFConst.TELNO_TCHI_USE_ENDYMD_YEAR, X31CWebConst.DATABEAN_GET_VALUE);
		String telnoTchiUseEndMon = svcFormBean.sendMessageString(KKW00858SFConst.TELNO_TCHI_USE_ENDYMD_MON, X31CWebConst.DATABEAN_GET_VALUE);
		String telnoTchiUseEndDay = svcFormBean.sendMessageString(KKW00858SFConst.TELNO_TCHI_USE_ENDYMD_DAY, X31CWebConst.DATABEAN_GET_VALUE);
		svcFormBean.sendMessageString(KKW00858SFConst.TELNO_TCHI_USE_ENDRSVYMD, X31CWebConst.DATABEAN_SET_VALUE, telnoTchiUseEndYear + telnoTchiUseEndMon + telnoTchiUseEndDay);

		// 発信者番号表示利用終了日
		String hasinshaNoDspUseEndYear = svcFormBean.sendMessageString(KKW00858SFConst.HASINSHA_NO_DSP_USE_ENDYMD_YEAR, X31CWebConst.DATABEAN_GET_VALUE);
		String hasinshaNoDspUseEndMon = svcFormBean.sendMessageString(KKW00858SFConst.HASINSHA_NO_DSP_USE_ENDYMD_MON, X31CWebConst.DATABEAN_GET_VALUE);
		String hasinshaNoDspUseEndDay = svcFormBean.sendMessageString(KKW00858SFConst.HASINSHA_NO_DSP_USE_ENDYMD_DAY, X31CWebConst.DATABEAN_GET_VALUE);
		svcFormBean.sendMessageString(KKW00858SFConst.HASINSHA_NO_DSP_USE_ENDRSVYMD, X31CWebConst.DATABEAN_SET_VALUE, hasinshaNoDspUseEndYear + hasinshaNoDspUseEndMon + hasinshaNoDspUseEndDay);

		// 非通知着信拒否利用終了日
		String hitchiIncmhiUseEndYear = svcFormBean.sendMessageString(KKW00858SFConst.HITCHI_INCMHI_USE_ENDYMD_YEAR, X31CWebConst.DATABEAN_GET_VALUE);
		String hitchiIncmhiUseEndMon = svcFormBean.sendMessageString(KKW00858SFConst.HITCHI_INCMHI_USE_ENDYMD_MON, X31CWebConst.DATABEAN_GET_VALUE);
		String hitchiIncmhiUseEndDay = svcFormBean.sendMessageString(KKW00858SFConst.HITCHI_INCMHI_USE_ENDYMD_DAY, X31CWebConst.DATABEAN_GET_VALUE);
		svcFormBean.sendMessageString(KKW00858SFConst.HITCHI_INCMHI_USE_ENDRSVYMD, X31CWebConst.DATABEAN_SET_VALUE, hitchiIncmhiUseEndYear + hitchiIncmhiUseEndMon + hitchiIncmhiUseEndDay);

		// 国際電話利用抑止利用終了日
		String kokusaiTelStpUseEndYear = svcFormBean.sendMessageString(KKW00858SFConst.KOKUSAI_TEL_STP_USE_ENDYMD_YEAR, X31CWebConst.DATABEAN_GET_VALUE);
		String kokusaiTelStpUseEndMon = svcFormBean.sendMessageString(KKW00858SFConst.KOKUSAI_TEL_STP_USE_ENDYMD_MON, X31CWebConst.DATABEAN_GET_VALUE);
		String kokusaiTelStpUseEndDay = svcFormBean.sendMessageString(KKW00858SFConst.KOKUSAI_TEL_STP_USE_ENDYMD_DAY, X31CWebConst.DATABEAN_GET_VALUE);
		svcFormBean.sendMessageString(KKW00858SFConst.KOKUSAI_TEL_STP_USE_ENDRSVYMD, X31CWebConst.DATABEAN_SET_VALUE, kokusaiTelStpUseEndYear + kokusaiTelStpUseEndMon + kokusaiTelStpUseEndDay);
		
		// ANK-4640-00-00 ADD START
		// 通信事業者コード
		String tsjgsCd = JKKWebCommon.convertCode(
							svcFormBean, 
							KKW00858SFConst.NOW_USE_TEL_SVC_TK_JGS, 
							KKW00858SFConst.SELECT_INDEX_06, 
							KKW00858SFConst.TSJGS_CD_LIST_06);
		svcFormBean.sendMessageString(KKW00858SFConst.TSJGS_CD, X31CWebConst.DATABEAN_SET_VALUE, tsjgsCd);
		// 通信事業者名
		String tsjgsNm = JKKWebCommon.getPullDownName(
							svcFormBean, 
							KKW00858SFConst.NOW_USE_TEL_SVC_TK_JGS,
							KKW00858SFConst.SELECT_INDEX_06, 
							KKW00858SFConst.TSJGS_CD_LIST_06,
							KKW00858SFConst.TSJGS_NM_LIST_06);
		svcFormBean.sendMessageString(KKW00858SFConst.TSJGS_NM, X31CWebConst.DATABEAN_SET_VALUE, tsjgsNm);
		// ANK-4640-00-00 ADD END
	}

	/**
	 * 更新サービスを実行します<br>
	 * <br>
	 * @param svcFormBean DataBean
	 * @param funcCode 機能コード
	 * @param tranDiv 処理コード
	 * @param clSbop 予約取消するサブオプションを識別する文字
	 */
	@SuppressWarnings("unchecked")
	private void invokeCfmService(X31SDataBeanAccess svcFormBean, String funcCode, String tranDiv, String clSbop)
	{
		// HashMap定義
		HashMap<String, Object> paramMap = new HashMap<String, Object>();		//パラメタマップ生成
		HashMap<String, Object> inputMap = new HashMap<String, Object>();		//インプットマップ生成
		HashMap<String, Object> outputMap = new HashMap<String, Object>();		//アウトプットマップ生成

		// サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess[] paramBean = {svcFormBean};

		//サービスパラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JKKCommonConst.UCID_KKSV1038);
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, JKKCommonConst.OPID_KKSV1038OP);

		// 上りマッピング(サービス項目-DataBean項目マッピング)
		KKSV1038_KKSV1038OPDBMapper mapper = new KKSV1038_KKSV1038OPDBMapper();

		// NTT卸ネット電話情報登録CC
		inputMap = mapper.setKKSV103801CC(paramBean, inputMap, funcCode, tranDiv, clSbop);

		// 返却ＩＤをクリア
		paramBean[0].sendMessageString(KKW00858SFConst.RTN_MSG_ID, X31CWebConst.DATABEAN_SET_VALUE, "");

		// サービスの呼び出し
		invokeService(paramMap, inputMap, outputMap);
		
		// 下りマッピング
		mapper.getKKSV103801CC(paramBean, outputMap, tranDiv);

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
	}


	/**
	 * 住所検索画面の呼び出し処理を行います。
	 * <br>
	 * @return true
	 * @throws Exception 業務サービス内でエラーが発生した場合
	 */
	public boolean searchAd() throws Exception
	{
		// -----------住所検索画面への引継情報を生成-----------
		//サービスフォームBean アクセスクラスの取得	
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		// 郵便番号上３桁
		dataMap.put(ZMW10601SFConst.SESSION_KEY_PCD_1, bean.sendMessageString(KKW00858SFConst.TYPEN_PCD_BF, X31CWebConst.DATABEAN_GET_VALUE));
		// 郵便番号下４桁
		dataMap.put(ZMW10601SFConst.SESSION_KEY_PCD_2, bean.sendMessageString(KKW00858SFConst.TYPEN_PCD_AF, X31CWebConst.DATABEAN_GET_VALUE));

		// 引継情報を設定
		JCCWebCommon.setScreenInfo(this, JZMScreenConst.SCREEN_ID_ZMW10601, dataMap);
		JCCWebCommon.setScreenId(this, JZMScreenConst.SCREEN_ID_ZMW10601, JKKScreenConst.SCREEN_ID_KKW00858);
		
		// -----------遷移先画面設定-----------
		X31SDataBeanAccess  commonInfoBean = super.getCommonInfoBean();
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_ID_ZMW10601);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_NAME_ZMW10601);
		
		return true;
	}
	
	/**
	 * 住所検索画面からの復帰処理を行います。
	 * <br>
	 * @return true
	 * @throws Exception 業務サービス内でエラーが発生した場合
	 */
	public boolean refreshAd() throws Exception
	{
		// -----------住所検索画面からの引継情報を取得-----------
		//サービスフォームBean アクセスクラスの取得	
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// チェック状態再設定処理
		setCheckStat(bean);
		
		// 引継情報を取得
		HashMap<String, Object> dataMap = JCCWebCommon.getScreenInfo(this);
		
		// DataBeanに設定
		//郵便番号
		bean.sendMessageString(KKW00858SFConst.TYPEN_PCD_BF, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(ZMW10601SFConst.SESSION_RET_PCD_1));
		bean.sendMessageString(KKW00858SFConst.TYPEN_PCD_AF, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(ZMW10601SFConst.SESSION_RET_PCD_2));
		//住所コード
		bean.sendMessageString(KKW00858SFConst.TYPEN_AD_CD1, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(ZMW10601SFConst.SESSION_RET_AD_CD_1));
		bean.sendMessageString(KKW00858SFConst.TYPEN_AD_CD2, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(ZMW10601SFConst.SESSION_RET_AD_CD_2));
		bean.sendMessageString(KKW00858SFConst.TYPEN_AD_CD3, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(ZMW10601SFConst.SESSION_RET_AD_CD_3));
		bean.sendMessageString(KKW00858SFConst.TYPEN_AD_CD4, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(ZMW10601SFConst.SESSION_RET_AD_CD_4));
		// 手動入力
		bean.sendMessageBoolean(KKW00858SFConst.TYPEN_AD_MAN_INPUT_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
		//都道府県
		bean.sendMessageString(KKW00858SFConst.TYPEN_STATE_NM, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(ZMW10601SFConst.SESSION_RET_STATE_NM));
		//市区町村
		bean.sendMessageString(KKW00858SFConst.TYPEN_CITY_NM, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(ZMW10601SFConst.SESSION_RET_CITY_NM));
		//大字通称名
		bean.sendMessageString(KKW00858SFConst.TYPEN_OAZTSU_NM, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(ZMW10601SFConst.SESSION_RET_OAZTSU_NM));
		//字丁目
		bean.sendMessageString(KKW00858SFConst.TYPEN_AZCHO_NM, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(ZMW10601SFConst.SESSION_RET_AZCHO_NM));
		
		// -----------遷移先画面設定-----------
		X31SDataBeanAccess  commonInfoBean = super.getCommonInfoBean();
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW00858);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW00858);
		
		return true;
	}
	
	/**
	 * 住所情報選択プルダウンを初期化する。
	 * <br>
	 * @param pulldown_list 住所情報選択プルダウン情報を設定するbean
	 */
	private void initPulldownAddressKindList(X31SDataBeanAccessArray pulldownList)
	{
		X31SDataBeanAccess pulldownSubbean = null;
		if (pulldownList.getCount() - 1 >= 0)
		{
			pulldownSubbean =  pulldownList.getDataBean(0);
		}
		else
		{
			pulldownSubbean =  pulldownList.addDataBean();
		}
		
		//プルダウン情報Beanのコードリスト名領域のクリアを行います
		pulldownSubbean.sendMessage(CD_DIV_LIST, X31CWebConst.DATABEAN_CLEAR);
		pulldownSubbean.sendMessage(CD_DIV_NM_LIST, X31CWebConst.DATABEAN_CLEAR);
		pulldownSubbean.sendMessageString(KKW00858SFConst.INDEX_03, X31CWebConst.DATABEAN_SET_VALUE, "0");
		pulldownSubbean.sendMessageString(CD_DIV_LIST, X31CWebConst.DATABEAN_ADD_VALUE, "");
		pulldownSubbean.sendMessageString(CD_DIV_NM_LIST, X31CWebConst.DATABEAN_ADD_VALUE, "");
		for (String[] items : ADDRESS_KIND_LIST)
		{
			pulldownSubbean.sendMessageString(CD_DIV_LIST, X31CWebConst.DATABEAN_ADD_VALUE, items[0]);
			pulldownSubbean.sendMessageString(CD_DIV_NM_LIST, X31CWebConst.DATABEAN_ADD_VALUE, items[1]);
			
		}
	}
	
	/**
	 * <dd>メソッド名：単関連チェック処理【No.13 整合性チェック】
	 * <dd>メソッド説明：郵便番号と住所コードが不整合の場合、エラー。
	 * <dd>備考：なし。
	 * @return チェックOK:true チェックNG:false
	 * @throws Exception 例外
	 */
	private boolean tankanrenChkNo13() throws Exception
	{
		// サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		X31SDataBeanAccess[] param = {svcFormBean};
		
		// 郵便番号を連結
		String pcdCd = svcFormBean.sendMessageString(KKW00858SFConst.TYPEN_PCD_BF, X31CWebConst.DATABEAN_GET_VALUE) +
						svcFormBean.sendMessageString(KKW00858SFConst.TYPEN_PCD_AF, X31CWebConst.DATABEAN_GET_VALUE);

		// 住所コードを取得
		String adCd = svcFormBean.sendMessageString(KKW00858SFConst.TYPEN_AD_CD1, X31CWebConst.DATABEAN_GET_VALUE)
						+ svcFormBean.sendMessageString(KKW00858SFConst.TYPEN_AD_CD2, X31CWebConst.DATABEAN_GET_VALUE)
						+ svcFormBean.sendMessageString(KKW00858SFConst.TYPEN_AD_CD3, X31CWebConst.DATABEAN_GET_VALUE)
						+ svcFormBean.sendMessageString(KKW00858SFConst.TYPEN_AD_CD4, X31CWebConst.DATABEAN_GET_VALUE);
		
		if(JKKStringUtil.isNullBlank(pcdCd) || JKKStringUtil.isNullBlank(adCd))
		{
			// 住所関連項目をすべてクリア
			svcFormBean.sendMessageString(KKW00858SFConst.TYPEN_PCD_BF, X31CWebConst.DATABEAN_SET_VALUE, "");
			svcFormBean.sendMessageString(KKW00858SFConst.TYPEN_PCD_AF, X31CWebConst.DATABEAN_SET_VALUE, "");
			svcFormBean.sendMessageString(KKW00858SFConst.TYPEN_AD_CD1, X31CWebConst.DATABEAN_SET_VALUE, "");
			svcFormBean.sendMessageString(KKW00858SFConst.TYPEN_AD_CD2, X31CWebConst.DATABEAN_SET_VALUE, "");
			svcFormBean.sendMessageString(KKW00858SFConst.TYPEN_AD_CD3, X31CWebConst.DATABEAN_SET_VALUE, "");
			svcFormBean.sendMessageString(KKW00858SFConst.TYPEN_AD_CD4, X31CWebConst.DATABEAN_SET_VALUE, "");
			svcFormBean.sendMessageString(KKW00858SFConst.TYPEN_STATE_NM, X31CWebConst.DATABEAN_SET_VALUE, "");
			svcFormBean.sendMessageString(KKW00858SFConst.TYPEN_CITY_NM, X31CWebConst.DATABEAN_SET_VALUE, "");
			svcFormBean.sendMessageString(KKW00858SFConst.TYPEN_OAZTSU_NM, X31CWebConst.DATABEAN_SET_VALUE, "");
			svcFormBean.sendMessageString(KKW00858SFConst.TYPEN_AZCHO_NM, X31CWebConst.DATABEAN_SET_VALUE, "");
			svcFormBean.sendMessageString(KKW00858SFConst.TYPEN_BNCHIGO, X31CWebConst.DATABEAN_SET_VALUE, "");
			svcFormBean.sendMessageString(KKW00858SFConst.TYPEN_ADRTTM, X31CWebConst.DATABEAN_SET_VALUE, "");
			svcFormBean.sendMessageString(KKW00858SFConst.TYPEN_ADRRM, X31CWebConst.DATABEAN_SET_VALUE, "");
			svcFormBean.sendMessageBoolean(KKW00858SFConst.TYPEN_AD_MAN_INPUT_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
			return true;
		}

		// 手動入力チェックボックスがチェック有となっているかを判定
		boolean typenAdManInputFlg = svcFormBean.sendMessageBoolean(KKW00858SFConst.TYPEN_AD_MAN_INPUT_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		if(typenAdManInputFlg)
		{
			// 手動入力が選択されている場合はチェックはしない
			return true;
		}

		// 住所コードに紐づく郵便番号を取得
		String res = getPcdForAdInfo(param, adCd);

		// 郵便番号と住所コードが不整合の場合はエラー
		if(!res.equals(pcdCd))
		{
			return false;
		}

		// チェックOK
		return true;
	}
	
	/**
	 * <dd>メソッド名：住所コードに紐づく郵便番号取得処理
	 * <dd>メソッド説明：郵便番号と住所コードが不整合の場合エラー。
	 * <dd>備考：なし。
	 * @return pcdCd 住所コードに紐づく郵便番号
	 * @throws Exception 例外
	 */
	@SuppressWarnings("unchecked")
	private String getPcdForAdInfo(X31SDataBeanAccess[] paramBean, String adCd) throws Exception
	{
		String pcdCd = "";
		// 住所情報取得サービスを実施
		HashMap<String, Object> outputMap = executeGetAdInfo(paramBean, adCd);

		//下り情報MapがNULLか判定する
		if(outputMap == null)
		{
			//NULLの場合処理を終了します
			return pcdCd;
		}
		// 転居先サービス住所情報取得サービス結果を取得
		HashMap<String, Object> parentMap = (HashMap)outputMap.get("KKSV054901SC");
		// 住所一意照会結果リストを取得
		ArrayList childList = (ArrayList)parentMap.get("EZM0081A010CBSMsg1List");
		// 住所明細リストを住所明細情報Mapに設定
		HashMap childMap = (HashMap)childList.get(0);
		// 郵便番号を取得
		pcdCd = (String)childMap.get("pcd");

		return pcdCd;
	}
	
	/**
	 * 住所情報取得サービスを実行する
	 * @param  paramBean  DataBeanアクセスクラス
	 * @param  commonInfoBean  共通アクセスクラス
	 * @param  keyAdCd KEY項目＿住所コード
	 * @return outputMap S-IFout項目
	 * @throws Exception 
	 */
	private HashMap<String, Object> executeGetAdInfo(X31SDataBeanAccess[] paramBean, String keyAdCd) throws Exception
	{
		// HashMap定義
		HashMap<String, Object> paramMap = null;
		HashMap<String, Object> inputMap = null;
		HashMap<String, Object> outputMap = null;

		// 住所情報取得サービスパラメタ生成
		paramMap = new HashMap<String, Object>();		// パラメタ設定用マップ
		inputMap = new HashMap<String, Object>();		// 入力用マップ
		outputMap = new HashMap<String, Object>();		// 結果格納用マップ

		// パラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JKKCommonConst.UCID_KKSV0549);

		// 上りマッピング(サービス項目-DataBean項目マッピング)
		KKSV0549_KKSV0549OPDBMapper mapper = new KKSV0549_KKSV0549OPDBMapper();

		// 住所一意照会SC
		mapper.setKKSV054901SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2, keyAdCd);

		// 住所変更共通ヘッダ情報取得サービス
		invokeService(paramMap, inputMap, outputMap);

		return outputMap;
	}
	
	/**
	 * チェック状態再設定処理を行います。
	 * <br>
	 * @param svcFormBean サービスフォームビーン
	 * @throws Exception 例外が発生した場合
	 */
	private void setCheckStat(X31SDataBeanAccess svcFormBean) throws Exception
	{
		// 画面表示用のチェックボックスは非活性により、値が消えてしまうため、再度設定する
		// 手動入力
		String tranDiv = svcFormBean.sendMessageString(KKW00858SFConst.TRAN_DIV, X31CWebConst.DATABEAN_GET_VALUE);
		if (JKKCommonConst.OP_TRAN_DIV_DSL.equals(tranDiv)
				&& JKKCommonConst.FLG_ON.equals(svcFormBean.sendMessageString(KKW00858SFConst.TYPEN_AD_MAN_INPUT_FLG_HOJI, X31CWebConst.DATABEAN_GET_VALUE))) {
			svcFormBean.sendMessageBoolean(KKW00858SFConst.TYPEN_AD_MAN_INPUT_FLG, X31CWebConst.DATABEAN_SET_VALUE, true);
		}
		// 電話番号通知申込有無
		if (!JKKStringUtil.isNullBlank(svcFormBean.sendMessageString(KKW00858SFConst.TELNO_TCHI_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE))) {
			svcFormBean.sendMessageBoolean(KKW00858SFConst.TELNO_TCHI_MSKM_UM, X31CWebConst.DATABEAN_SET_VALUE, true);
		}
		// 発信者番号表示申込有無
		if (!JKKStringUtil.isNullBlank(svcFormBean.sendMessageString(KKW00858SFConst.HASINSHA_NO_DSP_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE))) {
			svcFormBean.sendMessageBoolean(KKW00858SFConst.HASINSHA_NO_DSP_MSKM_UM, X31CWebConst.DATABEAN_SET_VALUE, true);
		}
		// 非通知着信拒否申込有無
		if (!JKKStringUtil.isNullBlank(svcFormBean.sendMessageString(KKW00858SFConst.HITCHI_INCMHI_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE))) {
			svcFormBean.sendMessageBoolean(KKW00858SFConst.HITCHI_INCMHI_MSKM_UM, X31CWebConst.DATABEAN_SET_VALUE, true);
		}
		// 国際電話利用抑止契約番号
		if (!JKKStringUtil.isNullBlank(svcFormBean.sendMessageString(KKW00858SFConst.KOKUSAI_TEL_STP_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE))) {
			svcFormBean.sendMessageBoolean(KKW00858SFConst.KOKUSAI_TEL_STP_MSKM_UM, X31CWebConst.DATABEAN_SET_VALUE, true);
		}
	}
	
	/**
	 * 文字列を指定値で切り出します。
	 * <br>
	 * @param str 対象文字列
	 * @param startIndex 開始位置
	 * @param endIndex 終了位置
	 * @return 切り出した文字列
	 */
	private String subString(String str, int startIndex, int endIndex)
	{
		if (JKKStringUtil.isNullBlank(str))
		{
			return null;
		}
		
		if (str.length() < endIndex)
		{
			return null;
		}
		return str.substring(startIndex, endIndex);
	}
	
	/**
	 * 置換メッセージ取得処理<br>
	 * <br>
	 * 返却メッセージＩＤに対応する置換文字列を取得する。<br>
	 * <br>
	 * @param trandiv 処理区分
	 * @param rtnMsgId 返却メッセージＩＤ
	 * @return 置換用メッセージ
	 */
	
	private String[] getMsgRep(String trandiv, String rtnMsgId)
	{
		// 処理区分が予約取消の場合
		if(SHORI_DIV_OP_RSV_CL.equals(trandiv))
		{
			// 予約取消不可（EKB5420-JW）
			if (JPCOnlineMessageConstant.EKB5420_JW.equals(rtnMsgId));
			{
				String[] str = {"オプション", "予約取消"};
				return str;
			}
		}
		// 処理区分が予約取消の場合
		else if(SHORI_DIV_SBOP_RSV_CL.equals(trandiv))
		{
			// 予約取消不可（EKB5420-JW）
			if (JPCOnlineMessageConstant.EKB5420_JW.equals(rtnMsgId));
			{
				String[] str = {"サブオプション", "予約取消"};
				return str;
			}
		}
		
		return null;
		
	}
	
	/**
	 * 登録・照会画面「予約取消」ボタン押下時の処理を行います。
	 * <br>
	 * @param sbop サブオプションサービス判定用
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception 例外が発生した場合
	 */
	private boolean actionCl(String sbop) throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		
		// 進捗特記事項1
		svcFormBean.sendMessageString(KKW00858SFConst.PRG_TKJK_1, X31CWebConst.DATABEAN_SET_VALUE, "");

		// サービス呼出
		invokeCfmService(svcFormBean, JPCModelConstant.FUNC_CD_1, SHORI_DIV_SBOP_RSV_CL, sbop);

		// 返却メッセージ
		String rtnMsgId = svcFormBean.sendMessageString(KKW00858SFConst.RTN_MSG_ID, X31CWebConst.DATABEAN_GET_VALUE);
		if(!JKKStringUtil.isNullBlank(rtnMsgId))
		{
			// メッセージの設定
			String[] str = getMsgRep(SHORI_DIV_SBOP_RSV_CL, rtnMsgId);
			
			if (str == null) 
			{
				// メッセージ出力(IDのみ)
				JCCWebCommon.setMessageInfo(this, rtnMsgId);
			}
			else
			{
				// メッセージ出力(置換文字あり)
				JCCWebCommon.setMessageInfo(this, rtnMsgId, str);
			}
			return false;
		}

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		// 画面リロード処理
		actionInit();
		
		return true;
	}
}