/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：KKW00828SFLogic
*   ソースファイル名：KKW00828SFLogic.java
*   作成者          ：FJ
*   日付            ：2012年02月24日
*＜機能概要＞
*   (1)ｅｏ光テレビガイド誌オプションの登録を行う。
*
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/02/24	FJ）川田	新規作成
*	v4.00.00	2012/08/29	FJ）稲岡	【ANK-0524-00-00】対応
*	v4.01.00	2012/10/22	FJ）庭山	【IT1-2012-0001619】対応
*	v4.02.00	2012/11/08	FJ）庭山	【IT2-2012-0001650】対応
*	v4.03.00	2012/11/27	FJ）庭山	【IT2-2012-0001794】対応
*	v4.04.00	2012/12/21	FJ）野口	【IT1-2012-0002486】対応
*	v5.00.00	2013/01/10	FJ）稲岡	【ANK-1385-00-00】対応
*	v4.05.00	2013/02/16	FJ）野口	【ST3-2013-0000040】対応
*	v4.06.00	2013/02/28	FJ）稲岡	【ST1-2013-0000253】対応
*	v4.07.00	2013/03/07	FJ）稲岡	【IT1-2013-0000404】対応
*	v6.00.00	2013/12/29	FJ）磯俣	【OM-2013-04054】clearSohusAdInfoへのパラメタtrueに変更
*	v18.00.00	2015/08/12	FJ) 原田	【ANK-2631-00-00】 ワンストップ案件(ＳＴＥＰ１)
*	v18.00.01	2015/09/30	FJ) 松本	【ST-2015-0000045】メッセージID不正
*	v26.00.00   2016/06/03	FJ) 笠川	【ANK-2687-00-00】プレミアムサポート施策
*	v26.00.01	2016/07/28	FJ）柳		【IT1-2016-0000100】異動区分選択切替マッピング漏れ対応
**********************************************************************/


package eo.web.webview.KKA17101SF;



import static eo.web.webview.common.JKKOneStopApiCommonUtil.checkRegulationForUpdateApi;
import static eo.web.webview.common.JKKOneStopApiCommonUtil.getReceiveXml;
import static com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG;
import static eo.web.webview.common.JKKOneStopApiCommonUtil.*;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.fujitsu.futurity.model.common.check.HalfCharCheck;
import com.fujitsu.futurity.model.common.check.LengthCheck;
import com.fujitsu.futurity.model.common.check.MixCharCheck;
import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;
import com.fujitsu.futurity.web.x31.X31SRuntimeException;
import com.fujitsu.futurity.web.x00.JCCWebServiceException;

import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JPCUtilCommon;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.KKA17201SF.KKW02522SFConst;
import eo.web.webview.KKA17101SF.KKW00828SFConst;
import eo.web.webview.KKA17101SF.ZMW10601SFConst;
import eo.web.webview.common.JKKOneStopApiCommonUtil;
import eo.web.webview.common.OneStopDataBeanAccess;
import eo.web.webview.commonOneStop.JCCWebCommon;
import eo.web.webview.commonOneStop.JCRScreenConst;
import eo.web.webview.commonOneStop.JKKCommonConst;
import eo.web.webview.commonOneStop.JKKScreenConst;
import eo.web.webview.commonOneStop.JKKWebCommon;
import eo.web.webview.commonOneStop.JZMScreenConst;
import eo.web.webview.commonOneStop.JCCMessageCache;
import eo.web.webview.mapping.KKSV0061_KKSV0061OPDBMapper;
import eo.web.webview.mapping.KKSV0062_KKSV0062OPDBMapper;
import eo.web.webview.mapping.KKSV0463_KKSV0463OPDBMapper;
import eo.web.webview.mapping.KKSV0523_KKSV0523OPDBMapper;
import eo.web.webview.mapping.KKSV0524_KKSV0524OPDBMapper;
import eo.web.webview.mapping.KKSV0525_KKSV0525OPDBMapper;
import eo.web.webview.mapping.KKSV0551_KKSV0551OPDBMapper;
import eo.web.webview.mapping.KKSV0820_KKSV0820OPDBMapper;

/**
 * 
 * ｅｏ光テレビガイド誌オプションの登録を行います。
 * 
 * <BR>
 * @author 富士通
 */
public class KKA17101SFLogic extends JCCWebBusinessLogic
{
	
	/** 顧客契約引継情報項目キー */
	private static final String[] CUST_KEI_HKTGI_KEYS = {
		JKKCommonConst.HKTGI_SYSID,
		JKKCommonConst.HKTGI_SVC_KEI_NO,
		JKKCommonConst.HKTGI_IDO_DIV,
		JKKCommonConst.HKTGI_IDO_RSN_CD,
/* ++++++++++ v4.04.00 追加開始 ++++++++++ */
		JKKCommonConst.HKTGI_IDO_RSN_MEMO,
/* ++++++++++ v4.04.00 追加終了 ++++++++++ */
		JKKCommonConst.HKTGI_OP_SVC_KEI_NO,
		JKKCommonConst.HKTGI_TRAN_DIV,
		JKKCommonConst.HKTGI_MSKM_NO,
		JKKCommonConst.HKTGI_MSKM_DTL_NO,
		JKKCommonConst.HKTGI_TOKUTEI_ID_KMK_NM,
		JKKCommonConst.HKTGI_TOKUTEI_ID_KMK_VALUE
	};
	
	/** イベントＩＤ コピー */
	private static final String EVENT_ID_COPY = "copy";
	
/* ++++++++++ v5.00.00 追加開始 ++++++++++ */
	/** HasnKey */
	private static final String HASH_KEY_ADD_CC = "EohTvGuideAddCC";
	/** eo光テレビガイド誌申込数「０」 */
	private static final String TV_GUIDE_MSKM_CNT_ZERO = "0";
/* ++++++++++ v5.00.00 追加終了 ++++++++++ */
	
/* ++++++++++ v4.05.00 追加開始 ++++++++++ */
	/** 住所チェック警告値 */
	private static final String STATUS_WARNING = "WA";
	/** 住所チェック対象リスト */
	private static final String[] AD_CHK_LV_ERR = {"guidemg_sohus_ad_chk_lv_err"};
	/** 住所チェック置き換え文字リスト */
	private static final String[] AD_CHK_LV_ERR_CHG = {"ガイド誌送付先住所"};
/* ++++++++++ v4.05.00 追加終了 ++++++++++ */
	
/* ++++++++++ v4.06.00 追加開始 ++++++++++ */
	/** チェックエラー */
	private static final String STATUS_ERROR = "1";
	/** HasnKey */
	private static final String HASH_KEY_TARGET_ERR_FLG = "target_err_flg";
	/** HasnKey */
	private static final String HASH_KEY_EXIST_ERR_FLG = "exist_err_flg";
/* ++++++++++ v4.06.00 追加終了 ++++++++++ */
	
	
// ANK-2631-00-00 2015/08/12 ADD START 【ワンストップ用】
	//ワンストップ返却用ワーニングメッセージ格納Map
	private Map<String, String[]> warMsgMap = null;

	//ワンストップ返却用単関連エラーメッセージ格納Map
	private Map<String, String[]> tkckErrMsgMap = null;
	
	//ワンストップ返却用エラーメッセージ格納Map
	private Map<String, String[]> errMsgMap = null;
	
	//ワンストップ返却用SIFエラー格納Map
	private Map<String, String[]> sifErrMap = null;
	
	//ワンストップ用受信パラメタ格納Map
	private Map<String, Object> requestMap = null;
	
	//機能コード
	private String funcCode = null;
	
	//インターフェイスID
	private static String IF_ID = "KKIFE296";
	
	//ワンストップ用ワーニング保持リスト
	private List<Map<String, String>> warnList = null;
	
	//コード区分リスト格納用Map
	private Map <String, List<Map<String, String>>> cdDivListMap = null;
	
	//ガイド誌送付先個別指定フラグ
	private static String KSITEI_FLG_1 = "1";		// 個別指定
	
	private static String KSITEI_FLG_2 = "0";		// 利用場所と同じ
	
	/** 変更開始月 1:即時 */
	private static final String CHG_STA_YM_REAL_TIME = "1";
	
	/** 変更開始月 2:次月より */
	private static final String CHG_STA_YM_FROM_NEXT = "2";
	
	/** 変更開始月 3:次々月より */
	private static final String CHG_STA_YM_FROM_AFTER_NEXT = "3";
	
	/** 受付変更開始月 01:即時 */
	private static final String CHG_STA_YM_01 = "01";
	
	/** 受付変更開始月 02:翌月 */
	private static final String CHG_STA_YM_02 = "02";

	/** 受付変更開始月 03:翌々月 */
	private static final String CHG_STA_YM_03 = "03";

	
	/** サービス契約コード */
	private static String svcCd = null;
	
	/** 料金コード */
	private static String ryknCd = null;
	
	/** eo光テレビガイド誌申込数 */
	private static String tvg_mskm = null;
// ANK-2631-00-00 2015/08/12 ADD END 【ワンストップ用】
	
	// IT1-2016-0000100 2016/07/28 ADD START
	// サービス提供履歴フラグ
	private String svcTkRrkFlg = "0";
	// IT1-2016-0000100 2016/07/28 ADD END
	
// ANK-2631-00-00 2015/08/12 ADD START 【ワンストップ用】
	
	/**
	 * ワンストップ用APIコントロールメソッドです。
	 * <BR>
	 * @return boolean
	 * @throws Exeption
	 */
	public boolean apiControl() throws Exception
	{
		try
		{
			try
			{
				//API用初期処理
				if (!this.apiInit())
				{
					//業務規制中の為処理終了
					return true;
				}
				
				//ワンストップ独自単項目チェック
				if (!this.singleChkForOneStop())
				{
					//エラー発生の為処理終了
					return true;
				}
				
				//ワンストップ独自共通関連チェック
				if (!this.commonKnrnChkForOneStop())
				{
					//エラー処理の為処理終了
					return true;
				}
				//ワンストップ独自先行関連んチェック
				if(!this.senkoKnrnChkForOneStop())
				{
					//エラー処理の為処理終了
					return true;
				}
				
				//初期処理用DataBean上書き処理
				this.overwriteDataBeanForInit();
				
				///////////////////////////////////////////
				//eo光テレビガイド誌登録画面 初期表示処理
				///////////////////////////////////////////
				this.actionInit();
				
				// メッセージチェック
				if (!JKKOneStopApiCommonUtil.msgChk(this, warMsgMap, tkckErrMsgMap, errMsgMap, warnList, funcCode, IF_ID))
				{
					// エラー発生の為処理終了
					return true;
				}
				
				// DataBean上書き処理
				this.overwriteDataBean();
				
				//ワンストップ独自関連チェック
				if (!knrnChkForOneStop())
				{
					//エラー発生の為処理終了
					return true;
				}
				
				////////////////////////////////////////////
				//登録確認ボタン押下処理
				////////////////////////////////////////////
				this.forwardAddCfm();
				
				//メッセージチェック
				if (!JKKOneStopApiCommonUtil.msgChk(this, warMsgMap, tkckErrMsgMap, errMsgMap, warnList, funcCode, IF_ID))
				{
					//エラー発生の為処理終了
					return true;
				}
				
				//機能コードが "1" の場合のみ、確定ボタン押下処理
				if (JKKCommonConst.FUNC_CODE_1.equals(funcCode))
				{
					//////////////////////////////////////////////
					//確定ボタン押下処理
					//////////////////////////////////////////////
					this.forwardFix();
					
					//メッセージチェック
					if (!JKKOneStopApiCommonUtil.msgChk(this, warMsgMap, tkckErrMsgMap, errMsgMap, warnList, funcCode, IF_ID))
					{
						//エラー発生の為処理終了
						return true;
					}
				}
				
				//API用終了処理(リターンコード00(正常終了))
				this.apiTerminal("00");
			}
			catch (JCCWebServiceException wse)
			{
				//サービスIFエラー処理
				JKKOneStopApiCommonUtil.msgChk(this, warMsgMap, tkckErrMsgMap, errMsgMap, warnList, funcCode, IF_ID);
				X31CMessageResult msgResult = wse.getMessageList();
				JKKOneStopApiCommonUtil.sifErrChk(this, msgResult, sifErrMap, warnList, IF_ID);
			}
		}
		catch (Exception e)
		{
			//例外発生時はリターンコード99(システムエラー)
			JKKOneStopApiCommonUtil.printErrorLog(getSessionId(), "KKIFE296_eo光テレビガイド誌登録確定(ワンストップ)にて例外が発生しました。", e);
			this.apiTerminal("99");
		}
		return true;
	}
// ANK-2631-00-00 2015/08/12 ADD END 【ワンストップ用】
	
// ANK-2631-00-00 2015/08/12 ADD START 【ワンストップ用】
	/**
	 * ワンストップ用API初期処理メソッドです。
     * <BR>
	 * @return boolean
	 * @throws Exception 
	 */
	public boolean apiInit() throws Exception
	{
		// 受信データXML⇒Map変換
		requestMap = (Map<String, Object>)getReceiveXml(getSessionId()).get(IF_ID + "_RECEIVE");
		
		// 機能コード取得(業務規制チェック用に単項目チェック前に取得)
		funcCode = (String) requestMap.get("func_code");
		
		// 機能コードが"2"以外の場合、業務規制チェック
		if (!JKKCommonConst.FUNC_CODE_2.equals(funcCode)
				&& !checkRegulationForUpdateApi(this))
		{
			// エラーメッセージを設定
			JKKOneStopApiCommonUtil.setReturnXml(this, "E5001", warnList, funcCode, IF_ID);
			return false;
		}
		
		// エラー・ワーニングメッセージマップ作成
		this.createMsgMap();
		
		// ワーニングリスト生成
		warnList = new ArrayList<Map<String, String>>();
		
		return true;
	}
// ANK-2631-00-00 2015/08/12 ADD END 【ワンストップ用】

// ANK-2631-00-00 2015/08/12 ADD START 【ワンストップ用】
	/**
	 * メッセージマップ作成処理です。
	 * 画面独自処理にて発生しうるエラーメッセージをMapに格納する。
	 * <BR>
	 * @throws Exception
	 */
	private void createMsgMap() throws Exception
	{
		//メッセージ読み込み
		JCCMessageCache.setMessageCache();	
		
		//ワーニングメッセージ格納Map組み立て
		warMsgMap = new HashMap<String, String[]>();
		warMsgMap.put(JCCMessageCache.getMessage("EKBD290--Q",new String[]{"ガイド誌送付先住所"}), new String[]{"W0001", ""});
		
		//単関連エラーメッセージ格納Map組み立て（※なし）
		tkckErrMsgMap = new HashMap<String, String[]>();
		
		//エラーメッセージ格納Map組み立て
		errMsgMap = new HashMap<String, String[]>();
		errMsgMap.put(JCCMessageCache.getMessage("EKBC930-KW", new String[]{"メゾンタイプ"}), new String[]{"E5010", ""});
		errMsgMap.put(JCCMessageCache.getMessage("EKB2100-NW", new String[]{"eo光テレビガイド誌申込数", "１〜９９"}), new String[]{"E5011", ""});
		// ST-2015-0000045 2015/09/30 MOD START
		//errMsgMap.put(JCCMessageCache.getMessage("EKB2230_KW", new String[]{"オプション契約"}), new String[]{"E5012", ""});
		errMsgMap.put(JCCMessageCache.getMessage("EKB2230-KW", new String[]{"オプション契約"}), new String[]{"E5012", ""});
		// ST-2015-0000045 2015/09/30 MOD END
		errMsgMap.put(JCCMessageCache.getMessage("EKB1280-KW", new String[]{"海外住所コード", "手動入力なし"}), new String[]{"E5013", ""});
		errMsgMap.put(JCCMessageCache.getMessage("EKB4680-KW", new String[]{""}), new String[]{"E5014", ""});
		errMsgMap.put(JCCMessageCache.getMessage("EKB0030-KW", new String[]{"送付先住所-番地・号", "全角", "15"}), new String[]{"E5015", ""});
		errMsgMap.put(JCCMessageCache.getMessage("EKB0030-KW", new String[]{"送付先住所-番地・号", "全角", "27"}), new String[]{"E5015", ""});
		errMsgMap.put(JCCMessageCache.getMessage("EKB0030-KW", new String[]{"送付先住所-番地・号", "全角", "45"}), new String[]{"E5015", ""});
		errMsgMap.put(JCCMessageCache.getMessage("EKB0030-KW", new String[]{"送付先住所-番地・号", "全角", "57"}), new String[]{"E5015", ""});
		errMsgMap.put(JCCMessageCache.getMessage("EKB0030-KW", new String[]{"送付先住所-番地・号", "全角", "61"}), new String[]{"E5015", ""});
		errMsgMap.put(JCCMessageCache.getMessage("EKB8450-KW", new String[]{""}), new String[]{"E5016", ""});
			
		//サービスIFエラー格納Map組み立て
		//KEY=『サービスインターフェイスID,ステータス,エラー返却項目,エラーフラグ』
		sifErrMap = new HashMap<String, String[]>();
		
		sifErrMap.put("EKK0381C050,1100,guidemg_sohus_ad_chk_lv,EB",  new String[]{"E5016", "ガイド誌送付先住所-郵便番号","住所コード"});
		sifErrMap.put("EKK0381D010,1100,guidemg_sohus_ad_chk_lv,EB",  new String[]{"E5016", "ガイド誌送付先住所-郵便番号","住所コード"});
		sifErrMap.put("EKK0381C050,1100,guidemg_sohus_ad_chk_lv,WA",  new String[]{"W0001", "最下層住所"});
		sifErrMap.put("EKK0381D010,1100,guidemg_sohus_ad_chk_lv,WA",  new String[]{"W0001", "最下層住所"});
		sifErrMap.put("EKK0381D010,1100,guidemg_sohus_ad_chk_lv,EA",  new String[]{"E5014", "住所テーブル"});
		sifErrMap.put("EKK0381C050,1100,guidemg_sohus_ad_chk_lv,EA",  new String[]{"E5014", "住所テーブル"});
		sifErrMap.put("EKK0381D010,1050,guidemg_sohus_bnchigo,E3",  new String[]{"E5015", "ガイド誌送付先番地号"});
		sifErrMap.put("EKK0381D010,1050,guidemg_sohus_bnchigo,E3",  new String[]{"E5015", "ガイド誌送付先番地号"});
	}
// ANK-2631-00-00 2015/08/12 ADD END 【ワンストップ用】
	
// ANK-2631-00-00 2015/08/12 ADD START 【ワンストップ用】
	/**
	 * ワンストップ用単項目チェックメソッドです。
	 * <BR>
	 * @return boolean
	 * @throws Exception
	 */
	
	private boolean singleChkForOneStop() throws Exception
	{
		List<Map<String, String>> errList = new ArrayList<Map<String, String>>();
		String itemName = null;
		String itemValue = null;
		
		//機能コード
		itemName = "func_code";
		if (!JKKOneStopApiCommonUtil.checkRequireNotNull(requestMap, itemName))
		{
			//必須チェックエラー
			errList.add(JKKOneStopApiCommonUtil.getReqErrInfMap(itemName));
		}
		else
		{
			itemValue = (String)requestMap.get(itemName);
			if (!HalfCharCheck.isNumber1Check(itemValue))
			{
				//形式チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getFormErrInfMap(itemName));
			}
			if (!LengthCheck.isLength1Check(itemValue, 1))
			{
				//桁数チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getLenErrInfMap(itemName));
			}
			if (!JKKCommonConst.FUNC_CODE_1.equals(itemValue)
					&& !JKKCommonConst.FUNC_CODE_2.equals(itemValue))
			{
				// リファレンスチェックエラー
				errList.add(JKKOneStopApiCommonUtil.getRefErrInfMap(itemName));
			}
		}
		
		//SYSID
		itemName = "sysid";
		if (!JKKOneStopApiCommonUtil.checkRequireNotNull(requestMap, itemName))
		{
			//必須チェックエラー
			errList.add(JKKOneStopApiCommonUtil.getReqErrInfMap(itemName));
		}
		else
		{
			itemValue = (String)requestMap.get(itemName);
			if (!HalfCharCheck.isEnNumber1Check(itemValue))
			{
				//形式チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getFormErrInfMap(itemName));
			}
			if (!LengthCheck.isLength1Check(itemValue, 10))
			{
				//桁数チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getLenErrInfMap(itemName));
			}
		}
		
		//サービス契約番号
		itemName = "svc_kei_no";
		if (!JKKOneStopApiCommonUtil.checkRequireNotNull(requestMap, itemName))
		{
			//必須チェックエラー
			errList.add(JKKOneStopApiCommonUtil.getReqErrInfMap(itemName));
		}
		else
		{
			itemValue = (String)requestMap.get(itemName);
			if (!HalfCharCheck.isEnNumber1Check(itemValue))
			{
				//形式チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getFormErrInfMap(itemName));
			}
			if (!LengthCheck.isLength1Check(itemValue, 10))
			{
				//桁数チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getLenErrInfMap(itemName));
			}
		}
		
		//異動理由大分類コード
		itemName = "ido_rsn_dbri_cd";
		if (!JKKOneStopApiCommonUtil.checkRequireNotNull(requestMap, itemName))
		{
			//必須チェックエラー
			errList.add(JKKOneStopApiCommonUtil.getReqErrInfMap(itemName));
		}
		else
		{
			itemValue = (String)requestMap.get(itemName);
			if (!HalfCharCheck.isEnNumber1Check(itemValue))
			{
				//形式チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getFormErrInfMap(itemName));
			}
			if (!LengthCheck.isLength1Check(itemValue, 2))
			{
				//桁数チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getLenErrInfMap(itemName));
			}
		}
		
		//異動理由中分類コード
		itemName = "ido_rsn_cbri_cd";
		if (requestMap.containsKey(itemName))
		{
			itemValue = (String)requestMap.get(itemName);
			if (!HalfCharCheck.isEnNumber1Check(itemValue))
			{
				//形式チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getFormErrInfMap(itemName));
			}
			if (!LengthCheck.isLength1Check(itemValue, 2))
			{
				//桁数チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getLenErrInfMap(itemName));
			}
		}
		//異動理由メモ
		itemName = "ido_rsn_memo";
		if (requestMap.containsKey(itemName))
		{
			itemValue = (String)requestMap.get(itemName);
			if (!MixCharCheck.isMix1Check(itemValue))
			{
			//形式チェックエラー
			errList.add(JKKOneStopApiCommonUtil.getFormErrInfMap(itemName));
			}
			if (!LengthCheck.isLength2Check(itemValue, 1, 100))
			{
				//桁数チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getLenErrInfMap(itemName));
			}
		}
		
		//ユーザーID
		itemName = "user_id";
		if (!JKKOneStopApiCommonUtil.checkRequireNotNull(requestMap, itemName))
		{
			//必須チェックエラー
			errList.add(JKKOneStopApiCommonUtil.getReqErrInfMap(itemName));
		}
		else
		{
			itemValue = (String)requestMap.get(itemName);
			if (!HalfCharCheck.isEnNumber1Check(itemValue))
			{
				//形式チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getFormErrInfMap(itemName));
			}
			if (!LengthCheck.isLength2Check(itemValue, 6, 10))
			{
				//桁数チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getLenErrInfMap(itemName));
			}
		}
		
		// eo光テレビガイド誌申込数
		itemName = "mskm_cnt";
		if (!JKKOneStopApiCommonUtil.checkRequireNotNull(requestMap, itemName))
		{
			//必須チェックエラー
			errList.add(JKKOneStopApiCommonUtil.getReqErrInfMap(itemName));
		}
		else
		{
			itemValue = (String)requestMap.get(itemName);
			if (!HalfCharCheck.isNumber1Check(itemValue))
			{
				//形式チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getFormErrInfMap(itemName));
			}
			if (!LengthCheck.isLength2Check(itemValue, 1, 2))
			{
				//桁数チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getLenErrInfMap(itemName));
			}
		}
		
		// ガイド誌送付先個別指定フラグ
		itemName = "guidemg_shs_ksitei_flg";
		if (!JKKOneStopApiCommonUtil.checkRequireNotNull(requestMap, itemName))
		{
			//必須チェックエラー
			errList.add(JKKOneStopApiCommonUtil.getReqErrInfMap(itemName));
		}
		else
		{
			itemValue = (String)requestMap.get(itemName);
			if (!HalfCharCheck.isNumber1Check(itemValue))
			{
				//形式チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getFormErrInfMap(itemName));
			}
			if (!LengthCheck.isLength1Check(itemValue, 1))
			{
				//桁数チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getLenErrInfMap(itemName));
			}
			if (!KSITEI_FLG_1.equals(itemValue)
					&& !KSITEI_FLG_2.equals(itemValue))
			{
				// リファレンスチェックエラー
				errList.add(JKKOneStopApiCommonUtil.getRefErrInfMap(itemName));
			}
		}
		
		// 利用開始月
		itemName = "use_staym";
		if (!JKKOneStopApiCommonUtil.checkRequireNotNull(requestMap, itemName))
		{
			//必須チェックエラー
			errList.add(JKKOneStopApiCommonUtil.getReqErrInfMap(itemName));
		}
		else
		{
			itemValue = (String)requestMap.get(itemName);
			if (!HalfCharCheck.isEnNumber1Check(itemValue))
			{
				//形式チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getFormErrInfMap(itemName));
			}
			if (!LengthCheck.isLength1Check(itemValue, 2))
			{
				//桁数チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getLenErrInfMap(itemName));
			}
			if (!CHG_STA_YM_01.equals(itemValue)
					&& !CHG_STA_YM_02.equals(itemValue)
						&& !CHG_STA_YM_03.equals(itemValue))
			{
				// リファレンスチェックエラー
				errList.add(JKKOneStopApiCommonUtil.getRefErrInfMap(itemName));
			}
			
		}
		
		// ガイド誌送付先郵便番号
		itemName = "guidemg_sohus_pcd";
		if (requestMap.containsKey(itemName))
		{
			itemValue = (String)requestMap.get(itemName);
			if (!HalfCharCheck.isNumber1Check(itemValue))
			{
				//形式チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getFormErrInfMap(itemName));
			}
			if (!LengthCheck.isLength1Check(itemValue, 7))
			{
				//桁数チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getLenErrInfMap(itemName));
			}
		}
		
		// ガイド誌送付先住所コード
		itemName = "guidemg_sohus_ad_cd";
		if (requestMap.containsKey(itemName))
		{
			itemValue = (String)requestMap.get(itemName);
			if (!HalfCharCheck.isEnNumber1Check(itemValue))
			{
				//形式チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getFormErrInfMap(itemName));
			}
			if (!LengthCheck.isLength1Check(itemValue, 11))
			{
				//桁数チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getLenErrInfMap(itemName));
			}
		}
		
		// ガイド誌送付先都道府県名
		itemName = "guidemg_sohus_state_nm";
		if (requestMap.containsKey(itemName))
		{
			itemValue = (String)requestMap.get(itemName);
			if (!MixCharCheck.isNameAddressCheck(itemValue))
			{
				//形式チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getFormErrInfMap(itemName));
			}
			if (!LengthCheck.isLength2Check(itemValue, 1, 4))
			{
				//桁数チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getLenErrInfMap(itemName));
			}
		}
		
		// ガイド誌送付先市区町村名
		itemName = "guidemg_sohus_city_nm";
		if (requestMap.containsKey(itemName))
		{
			itemValue = (String)requestMap.get(itemName);
			if (!MixCharCheck.isNameAddressCheck(itemValue))
			{
				//形式チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getFormErrInfMap(itemName));
			}
			if (!LengthCheck.isLength2Check(itemValue, 1, 12))
			{
				//桁数チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getLenErrInfMap(itemName));
			}
		}
		
		// ガイド誌送付先大字通称名
		itemName = "guidemg_sohus_oaztsu_nm";
		if (requestMap.containsKey(itemName))
		{	
			itemValue = (String)requestMap.get(itemName);
			if (!MixCharCheck.isNameAddressCheck(itemValue))
			{
				//形式チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getFormErrInfMap(itemName));
			}
			if (!LengthCheck.isLength2Check(itemValue, 1, 18))
			{
				//桁数チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getLenErrInfMap(itemName));
			}
		}
		
		// ガイド誌送付先字丁目名
		itemName = "guidemg_sohus_azcho_nm";
		if (requestMap.containsKey(itemName))
		{
			itemValue = (String)requestMap.get(itemName);
			if (!MixCharCheck.isNameAddressCheck(itemValue))
			{
				//形式チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getFormErrInfMap(itemName));
			}
			if (!LengthCheck.isLength2Check(itemValue, 1, 12))
			{
				//桁数チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getLenErrInfMap(itemName));
			}
		}
		
		// ガイド誌送付先番地号
		itemName = "guidemg_sohus_bnchigo";
		if (requestMap.containsKey(itemName))
		{
			itemValue = (String)requestMap.get(itemName);
			if (!MixCharCheck.isNameAddressCheck(itemValue))
			{
				//形式チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getFormErrInfMap(itemName));
			}
			if (!LengthCheck.isLength2Check(itemValue, 1, 61))
			{
				//桁数チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getLenErrInfMap(itemName));
			}
		}
		
		// ガイド誌送付先補記・建物名
		itemName = "guidemg_sohus_adrttm";
		if (requestMap.containsKey(itemName))
		{
			itemValue = (String)requestMap.get(itemName);
			if (!MixCharCheck.isNameAddressCheck(itemValue))
			{
				//形式チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getFormErrInfMap(itemName));
			}
			if (!LengthCheck.isLength2Check(itemValue, 1, 45))
			{
				//桁数チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getLenErrInfMap(itemName));
			}
		}
		
		// ガイド誌送付先補記・部屋番号
		itemName = "guidemg_sohus_adrrm";
		if (requestMap.containsKey(itemName))
		{
			itemValue = (String)requestMap.get(itemName);
			if (!MixCharCheck.isNameAddressCheck(itemValue))
			{
				//形式チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getFormErrInfMap(itemName));
			}
			if (!LengthCheck.isLength2Check(itemValue, 1, 15))
			{
				//桁数チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getLenErrInfMap(itemName));
			}
		}
		
		//エラーが存在する場合
		if (errList.size() > 0)
		{
			JKKOneStopApiCommonUtil.setReturnXml(this, "10", errList, warnList, funcCode, IF_ID);
			return false;
		}
		
		return true;
	}
// ANK-2631-00-00 2015/08/12 ADD END 【ワンストップ用】
	
// ANK-2631-00-00 2015/08/12 ADD START 【ワンストップ用】
	
	/**
	 * ワンストップ用共通関連チェックメソッドです。
	 * <BR>
	 * @return boolean
	 * @throws Exception
	 */
	private boolean commonKnrnChkForOneStop() throws Exception
	{
		// dataBean取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		
		// チェック対象パラメタの退避
		String sysid = (String)requestMap.get("sysid");
		String svcKeiNo = (String)requestMap.get("svc_kei_no");
		String userId = (String)requestMap.get("user_id");
		String idoDiv = JKKCommonConst.IDO_DIV_VALUE_00031;
		String idoRsnDbriCd = (String)requestMap.get("ido_rsn_dbri_cd");
		String idoRsnCbriCd = (String)requestMap.get("ido_rsn_cbri_cd");
		
		// 取得対象コード種別（※なし）
		List<String> cdSbtList = new ArrayList<String>();
		
		// 運用日付
		String opeDate = JCCWebCommon.getOpeDate(this, null);
		
		// SYSID・サービス契約番号・ユーザIDの存在チェック＋コード種別の取得
		// ■KKSV0820
		HashMap<String, Object> kksv0820ParamMap  = new HashMap<String, Object>();
		HashMap<String, Object> kksv0820InputMap  = new HashMap<String, Object>();
		HashMap<String, Object> kksv0820OutputMap = new HashMap<String, Object>();
		
		// パラメタ設定
		kksv0820ParamMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0820");
		kksv0820ParamMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, "KKSV0820OP");
		
		// 上りマッピング
		KKSV0820_KKSV0820OPDBMapper kksv0820Mapper = new KKSV0820_KKSV0820OPDBMapper();
		kksv0820Mapper.setKKSV082001CC(paramBean, kksv0820InputMap, opeDate, sysid, svcKeiNo, userId, cdSbtList);
		
		invokeService(kksv0820ParamMap, kksv0820InputMap, kksv0820OutputMap);
		
		// SYSID存在チェック
		if (!JKKOneStopApiCommonUtil.checkExistSysid(kksv0820OutputMap))
		{
			JKKOneStopApiCommonUtil.setReturnXml(this, "E5003", warnList, funcCode, IF_ID);
			return false;
		}
		
		// サービス契約番号存在チェック
		if (!JKKOneStopApiCommonUtil.checkExistSvcKeiNo(kksv0820OutputMap))
		{
			JKKOneStopApiCommonUtil.setReturnXml(this, "E5004", warnList, funcCode, IF_ID);
			return false;
		}
		
		// ユーザID存在チェック
		if (!JKKOneStopApiCommonUtil.checkExistUserId(kksv0820OutputMap))
		{
			JKKOneStopApiCommonUtil.setReturnXml(this, "E5005", warnList, funcCode, IF_ID);
			return false;
		}
		
		// コード区分リストの退避
		Map<String, Object> kksv082001ccMap = (Map<String, Object>) kksv0820OutputMap.get("KKSV082001CC");
		Map<String, Object> codeMeishoKanriMap = (Map)kksv082001ccMap.get("codeMeishoKanriMap");
		cdDivListMap = (Map)codeMeishoKanriMap.get("rslt_cd_sbt_map");
		
		// 異動理由の大分類・中分類の組み合わせチェック／サービス契約の異動可能チェック用のサービス呼び出し
		OneStopDataBeanAccess osBean = new OneStopDataBeanAccess();
		osBean.sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_SET_VALUE, sysid);
		osBean.sendMessageString("選択サービス契約番号", X31CWebConst.DATABEAN_SET_VALUE, svcKeiNo);
		osBean.sendMessageString("運用日付", X31CWebConst.DATABEAN_SET_VALUE,  opeDate);
		// IT1-2016-0000100 2016/07/28 ADD START
		osBean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_SET_VALUE, svcKeiNo);
		// IT1-2016-0000100 2016/07/28 ADD END
		
		OneStopDataBeanAccess[] paramOsBean = {osBean};
		
		// ■KKSV0061
		HashMap<String, Object> kksv0061ParamMap  = new HashMap<String, Object>();
		HashMap<String, Object> kksv0061InputMap  = new HashMap<String, Object>();
		HashMap<String, Object> kksv0061OutputMap = new HashMap<String, Object>();
		
		// パラメタ設定
		kksv0061ParamMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JKKCommonConst.UCID_KKSV0061);
		kksv0061ParamMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, JKKCommonConst.OPID_KKSV0061OP);
		
		// 上りマッピング
		KKSV0061_KKSV0061OPDBMapper kksv0061Mapper = new KKSV0061_KKSV0061OPDBMapper();
		kksv0061Mapper.setKKSV006101SC(paramOsBean, kksv0061InputMap, JPCModelConstant.FUNC_CD_1);
		kksv0061Mapper.setKKSV006102SC(paramOsBean, kksv0061InputMap, JPCModelConstant.FUNC_CD_3);
		kksv0061Mapper.setKKSV006103SC(paramOsBean, kksv0061InputMap, JPCModelConstant.FUNC_CD_3);
		
		invokeService(kksv0061ParamMap, kksv0061InputMap, kksv0061OutputMap);
		
		// 取得情報の下りマッピング
		kksv0061Mapper.getKKSV006101SC(paramOsBean, kksv0061OutputMap);
		kksv0061Mapper.getKKSV006102SC(paramOsBean, kksv0061OutputMap);
		kksv0061Mapper.getKKSV006103SC(paramOsBean, kksv0061OutputMap);
		kksv0061Mapper.getKKSV006104SC(paramOsBean, kksv0061OutputMap);
		
		// ■KKSV0062
		HashMap<String, Object> kksv0062ParamMap  = new HashMap<String, Object>();
		HashMap<String, Object> kksv0062InputMap  = new HashMap<String, Object>();
		HashMap<String, Object> kksv0062OutputMap = new HashMap<String, Object>();
		
		kksv0062ParamMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JKKCommonConst.UCID_KKSV0062);
		kksv0062ParamMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, JKKCommonConst.OPID_KKSV0062OP);
		
		// 上りマッピング
		KKSV0062_KKSV0062OPDBMapper kksv0062Mapper = new KKSV0062_KKSV0062OPDBMapper();
		kksv0062Mapper.setKKSV006201SC(paramOsBean, kksv0062InputMap, JPCModelConstant.FUNC_CD_2);
		kksv0062Mapper.setKKSV006202SC(paramOsBean, kksv0062InputMap, JPCModelConstant.FUNC_CD_1);
		kksv0062Mapper.setKKSV006203SC(paramOsBean, kksv0062InputMap, JPCModelConstant.FUNC_CD_1);
		kksv0062Mapper.setKKSV006205SC(paramOsBean, kksv0062InputMap, JPCModelConstant.FUNC_CD_1);
		kksv0062Mapper.setKKSV006206SC(paramOsBean, kksv0062InputMap, JPCModelConstant.FUNC_CD_1);
		kksv0062Mapper.setKKSV006207SC(paramOsBean, kksv0062InputMap, JPCModelConstant.FUNC_CD_6);
		kksv0062Mapper.setKKSV006208SC(paramOsBean, kksv0062InputMap, JPCModelConstant.FUNC_CD_2);
		kksv0062Mapper.setKKSV006209SC(paramOsBean, kksv0062InputMap, JPCModelConstant.FUNC_CD_1);
		kksv0062Mapper.setKKSV006210SC(paramOsBean, kksv0062InputMap, JPCModelConstant.FUNC_CD_2);
		kksv0062Mapper.setKKSV006212SC(paramOsBean, kksv0062InputMap, JPCModelConstant.FUNC_CD_1);
		kksv0062Mapper.setKKSV006221SC(paramOsBean, kksv0062InputMap, JPCModelConstant.FUNC_CD_1);
		// 2016/06/03 ANK-2687-00-00 ADD START
		kksv0062Mapper.setKKSV006222CC(paramOsBean, kksv0062InputMap, JPCModelConstant.FUNC_CD_1);
		// 2016/06/03 ANK-2687-00-00 ADD END
		// IT1-2016-0000100 2016/07/28 ADD START
		kksv0062Mapper.setKKSV006223SC(paramOsBean, kksv0062InputMap, JPCModelConstant.FUNC_CD_2);
		// IT1-2016-0000100 2016/07/28 ADD END
		invokeService(kksv0062ParamMap, kksv0062InputMap, kksv0062OutputMap);
		
		// 取得情報の下りマッピング
		kksv0062Mapper.getKKSV006201SC(paramOsBean, kksv0062OutputMap);
		kksv0062Mapper.getKKSV006205SC(paramOsBean, kksv0062OutputMap);
		kksv0062Mapper.getKKSV006207SC(paramOsBean, kksv0062OutputMap);
		kksv0062Mapper.getKKSV006209SC(paramOsBean, kksv0062OutputMap);
		kksv0062Mapper.getKKSV006210SC(paramOsBean, kksv0062OutputMap);
		kksv0062Mapper.getKKSV006211SC(paramOsBean, kksv0062OutputMap);
		kksv0062Mapper.getKKSV006208SC(paramOsBean, kksv0062OutputMap);
		kksv0062Mapper.getKKSV006221SC(paramOsBean, kksv0062OutputMap);
		Map<?, ?> kksv006201scMap = (Map<?, ?>) kksv0062OutputMap.get("KKSV006201SC");
		List<?> ekk0081a010List = (List<?>) kksv006201scMap.get("EKK0081A010CBSMsg1List");
		Map<?, ?> ekk0081a010Map = (Map<?, ?>) (null != ekk0081a010List && 0 < ekk0081a010List.size() ? ekk0081a010List.get(0) : null);
		String prcGrpCd = (String) (null != ekk0081a010Map ? ekk0081a010Map.get("prc_grp_cd") : "");
		// サービス契約コードの取得
		svcCd = (String) (null != ekk0081a010Map ? ekk0081a010Map.get("svc_cd") : "");
		// 料金コードの取得
		ryknCd = (String) (null != ekk0081a010Map ? ekk0081a010Map.get("pcrs_cd") : "");
		
//		tvg_mskm = (String) (null != ekk0081a010Map ? ekk0081a010Map.get("mskm_cnt") : "");
		
		//料金グループコードが、 Wi-Fi／EMobile／UQ-WiMAX の何れかの場合
//		if ("07".equals(prcGrpCd) || "08".equals(prcGrpCd) || "09".equals(prcGrpCd) || "10".equals(prcGrpCd))
//		{
//			kksv0062Mapper.getKKSV006212SC(paramOsBean, kksv0062OutputMap);
//		}
		
		// IT1-2016-0000100 2016/07/28 ADD START
		kksv0062Mapper.getKKSV006223SC(paramOsBean, kksv0062OutputMap);
		
		Map<?, ?> kksv006223scMap = (Map<?, ?>)kksv0062OutputMap.get("KKSV006223SC");
		List<?> eKK0081B024List = (List<?>)kksv006223scMap.get("EKK0081B024CBSMsg1List");
		Map<?, ?> eKK0081B024Map = null;
		String svcKeiStat = "";
		
		// サービス契約履歴一覧照会マップ.サービス契約履歴一覧照会明細がNULLでない
		// かつ サービス契約履歴一覧照会マップ.サービス契約履歴一覧照会明細のサイズが0より大きい場合
		if (eKK0081B024List != null && 0 < eKK0081B024List.size()) {
			for (int i = 0; i < eKK0081B024List.size(); i++) {
				eKK0081B024Map = (Map<?, ?>)eKK0081B024List.get(i);
				
				svcKeiStat = (String)eKK0081B024Map.get("svc_kei_stat");
				
				// サービス契約ステータス = "100"(サービス提供中)の場合、
				// サービス提供履歴フラグに"1"(サービス提供履歴あり)を設定する
				if (JKKCommonConst.SVC_KEI_STAT_100.equals(svcKeiStat)) {
					svcTkRrkFlg = "1";
					break;
				}
			}
		}
		// IT1-2016-0000100 2016/07/28 ADD END
		
		// ■KKSV0463
		HashMap<String, Object> kksv0463ParamMap  = new HashMap<String, Object>();
		HashMap<String, Object> kksv0463InputMap  = new HashMap<String, Object>();
		HashMap<String, Object> kksv0463OutputMap = new HashMap<String, Object>();
		
		kksv0463ParamMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JKKCommonConst.UCID_KKSV0463);
		kksv0463ParamMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, JKKCommonConst.OPID_KKSV0463OP);
		
		// 上りマッピング
		KKSV0463_KKSV0463OPDBMapper kksv0463Mapper = new KKSV0463_KKSV0463OPDBMapper();
		kksv0463Mapper.setKKSV046301SC(paramOsBean, kksv0463InputMap, JPCModelConstant.FUNC_CD_1, idoDiv);
		
		// 異動区分選択異動理由切替サービスを実施
		invokeService(kksv0463ParamMap, kksv0463InputMap, kksv0463OutputMap);
		
		// ■KKSV0551
		HashMap<String, Object> kksv0551ParamMap  = new HashMap<String, Object>();
		HashMap<String, Object> kksv0551InputMap  = new HashMap<String, Object>();
		HashMap<String, Object> kksv0551OutputMap = new HashMap<String, Object>();
		
		kksv0551ParamMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JKKCommonConst.UCID_KKSV0551);
		kksv0551ParamMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, JKKCommonConst.OPID_KKSV0551OP);
		
		// 上りマッピング
		KKSV0551_KKSV0551OPDBMapper kksv0551Mapper = new KKSV0551_KKSV0551OPDBMapper();
		kksv0551Mapper.setKKSV055101SC(paramOsBean, kksv0551InputMap, JPCModelConstant.FUNC_CD_1, idoRsnDbriCd);
		
		// 異動区分選択異動理由大分類切替サービスを実施
		invokeService(kksv0551ParamMap, kksv0551InputMap, kksv0551OutputMap);
		
		// 異動理由大分類・中分類組合せチェック
		if (!JKKOneStopApiCommonUtil.checkIdoRsnCdPair(kksv0463OutputMap, kksv0551OutputMap, osBean, idoRsnDbriCd, idoRsnCbriCd))
		{
			JKKOneStopApiCommonUtil.setReturnXml(this, "E5006", warnList, funcCode, IF_ID);
			return false;
		}
		
		// サービス契約異動可能チェック
		if (!JKKOneStopApiCommonUtil.checkSvcKeiIdoPsb(kksv0062OutputMap, osBean, idoDiv))
		{
			JKKOneStopApiCommonUtil.setReturnXml(this, "E5007", warnList, funcCode, IF_ID);
			return false;
		}
		
		return true;
	}
// ANK-2631-00-00 2015/08/12 ADD END 【ワンストップ用】
	
// ANK-2631-00-00 2015/08/12 ADD START 【ワンストップ用】
	/**
	 *  ワンストップ独自先行関連チェック処理です。
	 *  <BR>
	 *  @return boolean
	 *  @throws Exception
	 */
	private boolean senkoKnrnChkForOneStop() throws Exception
	{
		// エラーリスト生成
		List<Map<String, String>> errList = new ArrayList<Map<String, String>>();
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		// 必須チェック
		// ガイド誌送付先個別指定フラグの取得
		String guidemg_shs_ksitei_flg = (String)requestMap.get("guidemg_shs_ksitei_flg");
		String guidemg_sohus_pcd = (String)requestMap.get("guidemg_sohus_pcd");
		String guidemg_sohus_ad_cd = (String)requestMap.get("guidemg_sohus_ad_cd");
		String guidemg_sohus_state_nm = (String)requestMap.get("guidemg_sohus_state_nm");
		String guidemg_sohus_city_nm = (String)requestMap.get("guidemg_sohus_city_nm");
		String guidemg_sohus_bnchigo = (String)requestMap.get("guidemg_sohus_bnchigo");

		
		if(KSITEI_FLG_1.equals(guidemg_shs_ksitei_flg))
		{
			if(guidemg_sohus_pcd == null || 		// ガイド誌送付先郵便番号
				guidemg_sohus_ad_cd == null ||			// ガイド誌送付先住所コード
				guidemg_sohus_state_nm == null ||		// ガイド誌送付先都道府県名
				guidemg_sohus_city_nm == null ||		// ガイド誌送付先市区町村名
				guidemg_sohus_bnchigo == null  			// ガイド誌送付先番地号
				)
			{
				errList.add(JKKOneStopApiCommonUtil.getTkckErrInfMap("E5002","guidemg_shs_ksitei_flg"));
				JKKOneStopApiCommonUtil.setReturnXml(this, "10", errList, warnList, funcCode, IF_ID);
				return false;
			}
		}
		
		// サービスの種類チェック
		if (!svcCd.equals("03"))
		{
			JKKOneStopApiCommonUtil.setReturnXml(this, "E5008", warnList, funcCode, IF_ID);
			return false;
		}
		
		// 料金コースチェック
		if (!"A24".equals(ryknCd)
				&& !"A38".equals(ryknCd)
					&& !"A39".equals(ryknCd)
						&& !"A64".equals(ryknCd))
		{
			JKKOneStopApiCommonUtil.setReturnXml(this, "E5009", warnList, funcCode, IF_ID);
			return false;
		}
		
		// 海外住所チェック
		if ("00000000000".equals(guidemg_sohus_ad_cd))
		{
			JKKOneStopApiCommonUtil.setReturnXml(this, "E5013", warnList, funcCode, IF_ID);
			return false;
		}
		
		return true;
	}
// ANK-2631-00-00 2015/08/12 ADD END 【ワンストップ用】
	
	
// ANK-2631-00-00 2015/08/12 ADD START 【ワンストップ用】
	/**
	 * 初期処理用DataBean上書き処理です。
	 * <BR>
	 */
	private void overwriteDataBeanForInit()
	{
		// 初期処理用の引継リスト作成
		HashMap<String, Object> inMap = new HashMap<String, Object>();
		ArrayList<HashMap<String, Object>> hktgList = new ArrayList<HashMap<String, Object>>();
		HashMap<String, Object> paraMap = new HashMap<String, Object>();
		
		// 異動区分(00031:オプション設定 固定)
		inMap.put(JKKCommonConst.HKTGI_IDO_DIV, JKKCommonConst.IDO_DIV_VALUE_00031);
		//異動理由コード
		inMap.put(JKKCommonConst.HKTGI_IDO_RSN_CD, new String[]{(String)requestMap.get("ido_rsn_dbri_cd")});
		// 異動理由メモ
		inMap.put(JKKCommonConst.HKTGI_IDO_RSN_MEMO, (String)requestMap.get("ido_rsn_memo"));
		// サービス契約番号
		inMap.put(JKKCommonConst.HKTGI_SVC_KEI_NO, (String)requestMap.get("svc_kei_no"));
		// SYSID
		inMap.put(JKKCommonConst.HKTGI_SYSID, (String)requestMap.get("sysid"));
		// テレビガイド誌申込数
		
		hktgList.add(inMap);
		paraMap.put(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST, hktgList);
		
		JCCWebCommon.setScreenInfo(this, "KKA17101", paraMap);
		
		//共有フォームビーンにユーザーIDを設定する
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		commonBean.sendMessageString(CommonInfoCFConst.USER_ID, X31CWebConst.DATABEAN_SET_VALUE, (String)requestMap.get("user_id"));
	}
	
// ANK-2631-00-00 2015/08/12 ADD END 【ワンストップ用】
	
// ANK-2631-00-00 2015/08/12 ADD START 【ワンストップ用】
	
	/**
	 * DataBean上書き処理です。
	 * <BR>
	 * @return boolean
	 * @throws Exception
	 */
	private void overwriteDataBean()
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess bean = getServiceFormBean();
		
		//データBeanから取得するとき
//		String aaa = bean.sendMessageString(KKW00828SFConst.USEPCAD_DOITSU_HOLD_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		
		String guidemg_shs_ksitei_flg = (String)requestMap.get("guidemg_shs_ksitei_flg");
		
		
		// ガイド誌送付先個別指定フラグ
		if(KSITEI_FLG_1.equals(guidemg_shs_ksitei_flg))
		{
			X31SDataBeanAccessArray listBean = bean.getDataBeanArray(KKW00828SFConst.AD_INFO);
			X31SDataBeanAccess subbean = listBean.getDataBean(0);
			setValue(subbean, KKW00828SFConst.SELECT_INDEX_01, "0");
			
			bean.sendMessage(KKW00828SFConst.OAZTSU, X31CWebConst.DATABEAN_CLEAR);					// 大字通称名
			bean.sendMessage(KKW00828SFConst.AZCHO, X31CWebConst.DATABEAN_CLEAR);						// 字丁目
			bean.sendMessage(KKW00828SFConst.ADRTTM, X31CWebConst.DATABEAN_CLEAR);						// 建物名
			bean.sendMessage(KKW00828SFConst.ADRRM, X31CWebConst.DATABEAN_CLEAR);
			
			
			//データBeanに設定するとき
			String guidemg_sohus_pcd = (String)requestMap.get("guidemg_sohus_pcd");
			String guidemg_sohus_ad_cd = (String)requestMap.get("guidemg_sohus_ad_cd");
			String guidemg_sohus_state_nm = (String)requestMap.get("guidemg_sohus_state_nm");
			String guidemg_sohus_city_nm = (String)requestMap.get("guidemg_sohus_city_nm");
			String guidemg_sohus_oasztsu_nm = (String)requestMap.get("guidemg_sohus_oaztsu_nm");
			String guidemg_sohus_azcho_nm = (String)requestMap.get("guidemg_sohus_azcho_nm");
			String guidemg_sohus_bnchigo = (String)requestMap.get("guidemg_sohus_bnchigo");
			String guidemg_sohus_adrttm = (String)requestMap.get("guidemg_sohus_adrttm");
			String guidemg_sohus_adrrm = (String)requestMap.get("guidemg_sohus_adrrm");
			
			// 郵便番号
			 listBean = bean.getDataBeanArray(KKW00828SFConst.PCD);
			 subbean = listBean.getDataBean(0);
			subbean.sendMessageString(KKW00828SFConst.PCD_1_02, X31CWebConst.DATABEAN_SET_VALUE,guidemg_sohus_pcd.substring(0, 3));			// 郵便番号１（上３桁）
			subbean.sendMessageString(KKW00828SFConst.PCD_2_02, X31CWebConst.DATABEAN_SET_VALUE,guidemg_sohus_pcd.substring(3, 7));			// 郵便番号２（下４桁）
			subbean.sendMessageString(KKW00828SFConst.PCD_02, X31CWebConst.DATABEAN_SET_VALUE,guidemg_sohus_pcd);			// 郵便番号
						
			// 住所コード
			listBean = bean.getDataBeanArray(KKW00828SFConst.AD_CD);
			subbean = listBean.getDataBean(0);
			subbean.sendMessageString(KKW00828SFConst.AD_CD1_03, X31CWebConst.DATABEAN_SET_VALUE,guidemg_sohus_ad_cd.substring(0,2));		// 住所コード１
			subbean.sendMessageString(KKW00828SFConst.AD_CD2_03, X31CWebConst.DATABEAN_SET_VALUE,guidemg_sohus_ad_cd.substring(2,5));		// 住所コード２
			subbean.sendMessageString(KKW00828SFConst.AD_CD3_03, X31CWebConst.DATABEAN_SET_VALUE,guidemg_sohus_ad_cd.substring(5,8));		// 住所コード３
			subbean.sendMessageString(KKW00828SFConst.AD_CD4_03, X31CWebConst.DATABEAN_SET_VALUE,guidemg_sohus_ad_cd.substring(8,11));		// 住所コード４
			subbean.sendMessageString(KKW00828SFConst.AD_CD_03, X31CWebConst.DATABEAN_SET_VALUE,guidemg_sohus_ad_cd);			// 住所コード
			
			
			bean.sendMessageBoolean(KKW00828SFConst.USEPCAD_DOITSU, X31CWebConst.DATABEAN_SET_VALUE, false);							// 利用場所と同じ
			bean.sendMessageString(KKW00828SFConst.PCD, X31CWebConst.DATABEAN_SET_VALUE,guidemg_sohus_pcd);		// 郵便番号1(上3桁)
			bean.sendMessageString(KKW00828SFConst.PCD_1_02, X31CWebConst.DATABEAN_SET_VALUE,guidemg_sohus_pcd.substring(0, 3));		// 郵便番号1(上3桁)
			bean.sendMessageString(KKW00828SFConst.PCD_2_02, X31CWebConst.DATABEAN_SET_VALUE,guidemg_sohus_pcd.substring(3, 7));		// 郵便番号2(下4桁)
			bean.sendMessageString(KKW00828SFConst.AD_CD, X31CWebConst.DATABEAN_SET_VALUE,guidemg_sohus_ad_cd);		// 住所コード1
			bean.sendMessageString(KKW00828SFConst.AD_CD1_03, X31CWebConst.DATABEAN_SET_VALUE,guidemg_sohus_ad_cd.substring(0,2));		// 住所コード1
			bean.sendMessageString(KKW00828SFConst.AD_CD2_03, X31CWebConst.DATABEAN_SET_VALUE,guidemg_sohus_ad_cd.substring(2,5));		// 住所コード2
			bean.sendMessageString(KKW00828SFConst.AD_CD3_03, X31CWebConst.DATABEAN_SET_VALUE,guidemg_sohus_ad_cd.substring(5,8));		// 住所コード3
			bean.sendMessageString(KKW00828SFConst.AD_CD4_03, X31CWebConst.DATABEAN_SET_VALUE,guidemg_sohus_ad_cd.substring(8,11));		// 住所コード4
			bean.sendMessageString(KKW00828SFConst.STATE, X31CWebConst.DATABEAN_SET_VALUE,guidemg_sohus_state_nm);						// 都道府県
			bean.sendMessageString(KKW00828SFConst.CITY, X31CWebConst.DATABEAN_SET_VALUE,guidemg_sohus_city_nm);						// 市区町村
			bean.sendMessageString(KKW00828SFConst.OAZTSU, X31CWebConst.DATABEAN_SET_VALUE,guidemg_sohus_oasztsu_nm);					// 大字通称名
			bean.sendMessageString(KKW00828SFConst.AZCHO, X31CWebConst.DATABEAN_SET_VALUE,guidemg_sohus_azcho_nm);						// 字丁目
			bean.sendMessageString(KKW00828SFConst.BNCHIGO, X31CWebConst.DATABEAN_SET_VALUE,guidemg_sohus_bnchigo);						// 番地・号
			bean.sendMessageString(KKW00828SFConst.ADRTTM, X31CWebConst.DATABEAN_SET_VALUE,guidemg_sohus_adrttm);						// 建物名
			bean.sendMessageString(KKW00828SFConst.ADRRM, X31CWebConst.DATABEAN_SET_VALUE,guidemg_sohus_adrrm);							// 部屋番号
		}
		else
		{
			
			bean.sendMessageBoolean(KKW00828SFConst.USEPCAD_DOITSU, X31CWebConst.DATABEAN_SET_VALUE, true);							// 利用場所と同じ
		}
		
		// eo光テレビガイド誌申込数の処理
		String mskm_cnt = (String)requestMap.get("mskm_cnt");
		bean.sendMessageString(KKW00828SFConst.TV_GUIDE_MSKM_CNT, X31CWebConst.DATABEAN_SET_VALUE,mskm_cnt);						// eo光テレビガイド誌申込数
		if ("00".equals(bean.sendMessageString(KKW00828SFConst.TV_GUIDE_MSKM_CNT, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			bean.sendMessageString(KKW00828SFConst.TV_GUIDE_MSKM_CNT, X31CWebConst.DATABEAN_SET_VALUE,"0");
		}
		
		String use_staym = (String)requestMap.get("use_staym");
		if ("01".equals(use_staym))
		{
			bean.sendMessageString(KKW00828SFConst.USE_STAYM, X31CWebConst.DATABEAN_SET_VALUE,CHG_STA_YM_REAL_TIME);
		}
		if ("02".equals(use_staym))
		{
			bean.sendMessageString(KKW00828SFConst.USE_STAYM, X31CWebConst.DATABEAN_SET_VALUE,CHG_STA_YM_FROM_NEXT);
		}
		if ("03".equals(use_staym))
		{
			bean.sendMessageString(KKW00828SFConst.USE_STAYM, X31CWebConst.DATABEAN_SET_VALUE,CHG_STA_YM_FROM_AFTER_NEXT);
		}
	}
	
// ANK-2631-00-00 2015/08/12 ADD END 【ワンストップ用】
	
// ANK-2631-00-00 2015/08/12 ADD START 【ワンストップ用】
	/**
	 * ワンストップ独自関連チェック
	 * @return boolean
	 * @throws Exception
	 */
	
	public boolean knrnChkForOneStop() throws Exception
	{
		
		
		
		return true;
	}
	
// ANK-2631-00-00 2015/08/12 ADD END 【ワンストップ用】
	
// ANK-2631-00-00 2015/08/12 ADD START 【ワンストップ用】
	/**
	 * ワンストップ用API終了メソッドです。
	 * <BR>
	 * @param returnCd リターンコード
	 * @return boolean
	 * @throws Exception
	 */
	
	public void apiTerminal(String returnCd) throws Exception
	{
		JKKOneStopApiCommonUtil.setReturnXml(this, returnCd, null, warnList, funcCode, IF_ID);
	}
// ANK-2631-00-00 2015/08/12 ADD END 【ワンストップ用】	
	
	/**
	 * 初期表示処理を行います。
	 * <br>
	 * @return boolean:処理結果
	 * @exception Exception：例外が発生した場合。
	 */
	public boolean actionInit() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess srvBean = super.getServiceFormBean();
		
		// 引継ぎ情報の取得
		JCCWebCommon.getScreenInfo(this);
		
		// 運用日付の設定
		setValue(srvBean, KKW00828SFConst.OPE_DATE, JCCWebCommon.getOpeDate(this, null));
		setValue(srvBean, KKW00828SFConst.OPE_DATE_TIME_STAMP, JCCWebCommon.getOpeDateTimeStamp(this, null));
		
 //++++++++++ v4.00.00 追加開始 ++++++++++ 
		// ワンストップメニューから遷移時
		if(JCRScreenConst.SCREEN_ID_CRW10601.equals(JCCWebCommon.getScreenId(this)))
		{
			// ワンストップフラグ
			setValue(srvBean, KKW00828SFConst.ONE_STOP_FLG, "1");
		}
 //++++++++++ v4.00.00 追加終了 ++++++++++ 
		
		// ■ サービス呼び出し準備
		X31SDataBeanAccess[] paramBean = { srvBean };
		HashMap< String, Object > paramMap = new HashMap< String, Object >();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0523");
		
		HashMap< String, Object > inputMap = new HashMap< String, Object >();
		HashMap< String, Object > outputMap = new HashMap< String, Object >();
		
		// ■ パラメータ設定
		KKSV0523_KKSV0523OPDBMapper mapper = new KKSV0523_KKSV0523OPDBMapper();
		mapper.setKKSV052301CC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		
		// ■ サービス呼び出し
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		// ■ サービス結果の転記
		mapper.getKKSV052301CC(paramBean, outputMap);
		
 //++++++++++ v4.06.00 変更開始 ++++++++++ 
		// 対象チェック
		if (hasTargetErr(outputMap))
		{
			// メッセージの設定
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB1420_NW, new String[]{"登録"});
			setValue(srvBean, KKW00828SFConst.KRN_CHK_ERR_FLG, "1");
		}
		// 存在チェック
		else if (hasExistErr(outputMap))
		{
			// メッセージの設定
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB2230_KW, new String[]{"オプション契約"});
//			JCCWebCommon.setMessageInfo(this, "EKB2100-NW", new String[]{"eo光テレビガイド誌申込数", msg.toString()}, "tv_guide_mskm_cnt");

			setValue(srvBean, KKW00828SFConst.KRN_CHK_ERR_FLG, "1");
		}
// ++++++++++ v4.06.00 変更終了 ++++++++++ 
		
// ++++++++++ v4.00.00 追加開始 ++++++++++ 
		// 利用開始月 初期選択値 = 「次月より」
		setValue(srvBean, KKW00828SFConst.USE_STAYM, "2");
// ++++++++++ v4.00.00 追加終了 ++++++++++ 
		
// ++++++++++ v4.06.00 追加開始 ++++++++++ 
		// 初期表示フラグ
		setValue(srvBean, KKW00828SFConst.INIT_FLG, "1");
// ++++++++++ v4.06.00 追加終了 ++++++++++ 
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commonBean = super.getCommonInfoBean();
		
		// 画面遷移
		setValue(commonBean, CommonInfoCFConst.NEXT_SCREEN_ID, JKKScreenConst.SCREEN_ID_KKW00828);
		setValue(commonBean, CommonInfoCFConst.NEXT_SCREEN_NAME, JKKScreenConst.SCREEN_NAME_KKW00828);
		
		return true;
	}
		

	/**
	 * 住所情報を画面項目にコピーします。
	 * <br>
	 * @return boolean:処理結果
	 * @exception Exception：例外が発生した場合。
	 */
	public boolean copy() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess srvBean = super.getServiceFormBean();
		
		// 送付先住所情報クリア
		clearSohusAdInfo(srvBean, true);
		
		// イベントＩＤ格納
		srvBean.sendMessageString(KKW02522SFConst.EVENTID, X31CWebConst.DATABEAN_SET_VALUE, EVENT_ID_COPY);
		
		// サービス呼出
		X31SDataBeanAccess[] paramBean = { srvBean };
		HashMap< String, String > paramMap = new HashMap< String, String >();
		HashMap< String, Object > inputMap = new HashMap< String, Object >();
		HashMap< String, Object > outputMap = new HashMap< String, Object >();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0524");
		
		// 上りマッピング
		KKSV0524_KKSV0524OPDBMapper mapper = new KKSV0524_KKSV0524OPDBMapper();
		mapper.setKKSV052401CC(paramBean, inputMap);
		
		// サービス呼び出し
		X31CMessageResult result = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(result != null)
		{
			JCCWebCommon.setMessageInfo(this, result);
			return true;
		}
		
		// 下りマッピング
		mapper.getKKSV052401CC(paramBean, outputMap);
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commonBean = super.getCommonInfoBean();
		
		// 画面遷移
		setValue(commonBean, CommonInfoCFConst.NEXT_SCREEN_ID, JKKScreenConst.SCREEN_ID_KKW00828);
		setValue(commonBean, CommonInfoCFConst.NEXT_SCREEN_NAME, JKKScreenConst.SCREEN_NAME_KKW00828);
		
		return true;
	}
	
	/**
	 * 住所検索画面を表示します。
	 * <br>
	 * @return boolean 処理結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean openAdSch() throws Exception
	{
		//サービスフォームBean
		X31SDataBeanAccess srvBean = getServiceFormBean();
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		
		// パラメータの設定
		X31SDataBeanAccessArray arraybean = srvBean.getDataBeanArray(KKW00828SFConst.PCD);
		X31SDataBeanAccess subBean = arraybean.getDataBean(0);
		
		// 郵便番号
		paramMap.put(ZMW10601SFConst.SESSION_KEY_PCD_1, getValue(subBean, KKW00828SFConst.PCD_1_02));
		paramMap.put(ZMW10601SFConst.SESSION_KEY_PCD_2, getValue(subBean, KKW00828SFConst.PCD_2_02));
		
		// 次画面ＩＤをキーに情報設定を行う
		JCCWebCommon.setScreenInfo(this, JZMScreenConst.SCREEN_ID_ZMW10601, paramMap);
		
		// セッションへセット
		JCCWebCommon.setScreenId(this, JZMScreenConst.SCREEN_ID_ZMW10601, JKKScreenConst.SCREEN_ID_KKW00828);
		
		// 共有フォームBean
		X31SDataBeanAccess  commonBean = super.getCommonInfoBean();
		
		// 画面遷移
		setValue(commonBean, CommonInfoCFConst.NEXT_SCREEN_ID, JZMScreenConst.SCREEN_ID_ZMW10601);
		setValue(commonBean, CommonInfoCFConst.NEXT_SCREEN_NAME, JZMScreenConst.SCREEN_NAME_ZMW10601);
		
		return true;
	}
	
	/**
	 * 住所検索結果を設定します。
	 * <br>
	 * @return boolean 処理結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean closeAdSch() throws Exception
	{
		//サービスフォームBean
		X31SDataBeanAccess srvBean = getServiceFormBean();
		
		HashMap<String, Object> resultMap = JCCWebCommon.getScreenInfo(this);
		
		// 住所コード
		X31SDataBeanAccessArray arraybean = srvBean.getDataBeanArray(KKW00828SFConst.AD_CD);
		X31SDataBeanAccess subBean = arraybean.getDataBean(0);
		setValue(subBean, KKW00828SFConst.AD_CD1_03, (String)resultMap.get(ZMW10601SFConst.SESSION_RET_AD_CD_1));
		setValue(subBean, KKW00828SFConst.AD_CD2_03, (String)resultMap.get(ZMW10601SFConst.SESSION_RET_AD_CD_2));
		setValue(subBean, KKW00828SFConst.AD_CD3_03, (String)resultMap.get(ZMW10601SFConst.SESSION_RET_AD_CD_3));
		setValue(subBean, KKW00828SFConst.AD_CD4_03, (String)resultMap.get(ZMW10601SFConst.SESSION_RET_AD_CD_4));
		
		// 郵便番号
		arraybean = srvBean.getDataBeanArray(KKW00828SFConst.PCD);
		subBean = arraybean.getDataBean(0);
		setValue(subBean, KKW00828SFConst.PCD_1_02, (String)resultMap.get(ZMW10601SFConst.SESSION_RET_PCD_1));
		setValue(subBean, KKW00828SFConst.PCD_2_02, (String)resultMap.get(ZMW10601SFConst.SESSION_RET_PCD_2));
		
		// 住所
		String state = (String)resultMap.get(ZMW10601SFConst.SESSION_RET_STATE_NM);
		String city = (String)resultMap.get(ZMW10601SFConst.SESSION_RET_CITY_NM);
		String oaztsu = (String)resultMap.get(ZMW10601SFConst.SESSION_RET_OAZTSU_NM);
		String azcho = (String)resultMap.get(ZMW10601SFConst.SESSION_RET_AZCHO_NM);
		
		if("00".equals((String)resultMap.get(ZMW10601SFConst.SESSION_RET_AD_CD_1)))
		{
			setValue(srvBean, KKW00828SFConst.STATE, "");
			setValue(srvBean, KKW00828SFConst.CITY, "");
			setValue(srvBean, KKW00828SFConst.OAZTSU, "");
			setValue(srvBean, KKW00828SFConst.AZCHO, "");
			
			setValue(srvBean, KKW00828SFConst.BNCHIGO, state + city + oaztsu + azcho);
		}
		else if("000".equals((String)resultMap.get(ZMW10601SFConst.SESSION_RET_AD_CD_2)))
		{
			setValue(srvBean, KKW00828SFConst.STATE, state);
			setValue(srvBean, KKW00828SFConst.CITY, "");
			setValue(srvBean, KKW00828SFConst.OAZTSU, "");
			setValue(srvBean, KKW00828SFConst.AZCHO, "");
			
			setValue(srvBean, KKW00828SFConst.BNCHIGO, city + oaztsu + azcho);
		}
		else if("000".equals((String)resultMap.get(ZMW10601SFConst.SESSION_RET_AD_CD_3)))
		{
			setValue(srvBean, KKW00828SFConst.STATE, state);
			setValue(srvBean, KKW00828SFConst.CITY, city);
			setValue(srvBean, KKW00828SFConst.OAZTSU, "");
			setValue(srvBean, KKW00828SFConst.AZCHO, "");
			
			setValue(srvBean, KKW00828SFConst.BNCHIGO,  oaztsu + azcho);
		}
		else if("000".equals((String)resultMap.get(ZMW10601SFConst.SESSION_RET_AD_CD_4)))
		{
			setValue(srvBean, KKW00828SFConst.STATE, state);
			setValue(srvBean, KKW00828SFConst.CITY, city);
			setValue(srvBean, KKW00828SFConst.OAZTSU, oaztsu);
			setValue(srvBean, KKW00828SFConst.AZCHO, "");
			
			setValue(srvBean, KKW00828SFConst.BNCHIGO, azcho);
		}
		else
		{
			setValue(srvBean, KKW00828SFConst.STATE, state);
			setValue(srvBean, KKW00828SFConst.CITY, city);
			setValue(srvBean, KKW00828SFConst.OAZTSU, oaztsu);
			setValue(srvBean, KKW00828SFConst.AZCHO, azcho);
		}
		
		// 住所情報プルダウン ⇒ 空白選択(共通仕様)
		arraybean = srvBean.getDataBeanArray(KKW00828SFConst.AD_INFO);
		subBean = arraybean.getDataBean(0);
		setValue(subBean, KKW00828SFConst.SELECT_INDEX_01, "0");
		
		// 手動入力 ⇒ チェックなし(共通仕様)
		srvBean.sendMessageBoolean(KKW00828SFConst.EX, X31CWebConst.DATABEAN_SET_VALUE, false);
		
		// 制御のために住所検索戻りフラグを設定
		setValue(srvBean, KKW00828SFConst.AD_RETURN_FLG, "1");
		
		// 共有フォームBean
		X31SDataBeanAccess  commonBean = super.getCommonInfoBean();
		
		// 画面遷移
		setValue(commonBean, CommonInfoCFConst.NEXT_SCREEN_ID, JKKScreenConst.SCREEN_ID_KKW00828);
		setValue(commonBean, CommonInfoCFConst.NEXT_SCREEN_NAME, JKKScreenConst.SCREEN_NAME_KKW00828);
		
		return true;
	}
	
	/**
	 * eo光テレビガイド誌登録確認画面に画面遷移します。
	 * <br>
	 * @return boolean 処理結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean forwardAddCfm() throws Exception
	{
		/// 共有フォームBean
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		//サービスフォームBean
		X31SDataBeanAccess srvBean = getServiceFormBean();
		
		// 住所情報選択インデックス
		X31SDataBeanAccessArray listBean = srvBean.getDataBeanArray(KKW00828SFConst.AD_INFO);
		X31SDataBeanAccess subbean = listBean.getDataBean(0);
		setValue(subbean, KKW00828SFConst.SELECT_INDEX_01, getValue(srvBean, KKW00828SFConst.AD_INFO_SEL_IDX));
		
		// 入力された情報を登録用に編集
		editParamForAdd(srvBean);
		
		// サービス呼出処理
		if(!executeInvokeService(commonBean, srvBean, JKKCommonConst.FUNC_CODE_2))
		{
			return true;
		}
		
		// 入力された情報を表示用に編集
		editParamForDisp(srvBean);
		
		// メッセージの設定
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKK0370__I, new String[]{"eo光テレビガイド誌登録"});
		
		// 遷移遷移
		setValue(commonBean, CommonInfoCFConst.NEXT_SCREEN_ID, JKKScreenConst.SCREEN_ID_KKW00829);
		setValue(commonBean, CommonInfoCFConst.NEXT_SCREEN_NAME, JKKScreenConst.SCREEN_NAME_KKW00829);
		
		return true;
	}
	
	/**
	 * eo光テレビガイド誌登録完了画面に画面遷移します。
	 * <br>
	 * @return boolean 処理結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean forwardFix() throws Exception
	{
		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		//サービスフォームBean
		X31SDataBeanAccess srvBean = getServiceFormBean();
		
		// サービス呼出処理
		if(!executeInvokeService(commonBean, srvBean, JKKCommonConst.FUNC_CODE_1))
		{
			return true;
		}
		
		// メッセージの設定
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4390__I, new String[]{"eo光テレビガイド誌登録"});
		
		// 遷移遷移
		setValue(commonBean, CommonInfoCFConst.NEXT_SCREEN_ID, JKKScreenConst.SCREEN_ID_KKW00830);
		setValue(commonBean, CommonInfoCFConst.NEXT_SCREEN_NAME, JKKScreenConst.SCREEN_NAME_KKW00830);
		
		return true;
	}
	
	
	/**
	 * サービス呼出処理。
	 * <br>
	 * @param  commonBean
	 * @param  srvBean
	 * @param  funcCode
	 * 
	 * @return boolean 処理結果
	 * @throws Exception 例外が発生した場合
	 */
	private boolean executeInvokeService(X31SDataBeanAccess commonBean, X31SDataBeanAccess srvBean, String funcCode) throws Exception
	{
		// サービス呼出
		X31SDataBeanAccess[] paramBean = { srvBean };
		HashMap< String, Object > paramMap = new HashMap< String, Object >();
		HashMap< String, Object > inputMap = new HashMap< String, Object >();
		HashMap< String, Object > outputMap = new HashMap< String, Object >();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0525");
		
		// ■ パラメータ設定
		KKSV0525_KKSV0525OPDBMapper mapper = new KKSV0525_KKSV0525OPDBMapper();
		
/* ++++++++++ v5.00.00 変更開始 ++++++++++ */
		X31SDataBeanAccess[] paramBeans = {srvBean, commonBean};					// ワンストップ対応履歴登録CC用Bean配列
		String svcKeiStat = getValue(srvBean, KKW00828SFConst.SVC_KEI_STAT);		// 契約ステータス
		String oneStopFlg = getValue(srvBean, KKW00828SFConst.ONE_STOP_FLG);		// ワンストップフラグ
/* ++++++++++ v4.06.00 追加・変更開始 ++++++++++ */
		boolean usePcAdDoitsu = srvBean.sendMessageBoolean(KKW00828SFConst.USEPCAD_DOITSU, X31CWebConst.DATABEAN_GET_VALUE);
		mapper.setEohTvGuideAddCC(paramBean, inputMap, paramBeans, svcKeiStat, oneStopFlg, usePcAdDoitsu);
/* ++++++++++ v4.06.00 追加・変更終了 ++++++++++ */
		mapper.setKKSV0525WORK01(paramBean, inputMap, funcCode);
/* ++++++++++ v5.00.00 変更終了 ++++++++++ */
		
		// サービス呼出
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return false;
		}
		
/* ++++++++++ v5.00.00 追加開始 ++++++++++ */
		// 登録確認時
		if (JKKCommonConst.FUNC_CODE_2.equals(funcCode))
		{
			// eo光テレビガイド誌冊数上限チェック判定
			if (hasErrTvGuideMskmCnt(srvBean, outputMap))
			{
				return false;
			}
		}
/* ++++++++++ v5.00.00 追加終了 ++++++++++ */
		
/* ++++++++++ v4.05.00 追加開始 ++++++++++ */
		//ワーニング判定
		warningChk(outputMap);
/* ++++++++++ v4.05.00 追加終了 ++++++++++ */
		
		return true;
	}
	
	/**
	 * 遷移元画面に画面遷移します。
	 * <br>
	 * @return boolean 処理結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean back() throws Exception
	{
		// 遷移元に画面遷移
		setValue(super.getCommonInfoBean(), CommonInfoCFConst.NEXT_SCREEN_ID, JCCWebCommon.getScreenId(this));
		
		return true;
	}
	
	/**
	 * 画面項目を初期表示の状態に戻します。
	 * <br>
	 * @return boolean 処理結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean clear() throws Exception
	{
/* ++++++++++ v4.07.00 追加開始 ++++++++++ */
		// 画面を初期表示状態に設定
		reInitScreen();
/* ++++++++++ v4.07.00 追加終了 ++++++++++ */
		
		return true;
	}
	
/* ++++++++++ v4.06.00 追加開始 ++++++++++ */
	/**
	 * 「利用場所と同じ」チェックボックス変更。
	 * <br>
	 * @return boolean 処理結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean usepcadDoitsuChange() throws Exception
	{
/* ++++++++++ v4.07.00 追加開始 ++++++++++ */
		// 画面を初期表示状態に設定
		reInitScreen();
/* ++++++++++ v4.07.00 追加終了 ++++++++++ */
		
		return true;
	}
/* ++++++++++ v4.06.00 追加終了 ++++++++++ */
	
	/**
	 * eo光テレビガイド誌登録画面に画面遷移します。
	 * <br>
	 * @return boolean 処理結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean forwardShusei() throws Exception
	{
		/// 共有フォームBean
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		// 遷移先画面IDを設定
		setValue(commonBean, CommonInfoCFConst.NEXT_SCREEN_ID, JKKScreenConst.SCREEN_ID_KKW00828);
		setValue(commonBean, CommonInfoCFConst.NEXT_SCREEN_NAME, JKKScreenConst.SCREEN_NAME_KKW00828);
		
		return true;
	}
	
	/**
	 * 遷移元画面に画面遷移します。
	 * <br>
	 * @return boolean 処理結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean forwardFin() throws Exception
	{
		// 顧客契約内引継ぎデータセット
		HashMap<String, Object> dataMap = getHktgiDataMap(super.getServiceFormBean(), KKW00828SFConst.CUST_KEI_HKTGI_LIST, CUST_KEI_HKTGI_KEYS);
		
		// 画面情報を設定
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW02301, dataMap);
		
		// 遷移先画面IDを設定
		setValue(super.getCommonInfoBean(), CommonInfoCFConst.NEXT_SCREEN_ID, JKKScreenConst.SCREEN_ID_KKW02301);
		
		return true;
	}
	
/* ++++++++++ v4.07.00 追加開始 ++++++++++ */
	/**
	 * 画面を初期表示状態に設定
	 */
	private void reInitScreen()
	{
		//サービスフォームBean
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// 送付先住所情報クリア
		clearSohusAdInfo(bean, true);
		
		// 初期表示の状態
		reInitSohusAdInfo(bean);
		
		// 初期表示フラグ
		setValue(bean, KKW00828SFConst.INIT_FLG, "1");
		
		/// 共有フォームBean
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		// 画面遷移
		setValue(commonBean, CommonInfoCFConst.NEXT_SCREEN_ID, JKKScreenConst.SCREEN_ID_KKW00828);
		setValue(commonBean, CommonInfoCFConst.NEXT_SCREEN_NAME, JKKScreenConst.SCREEN_NAME_KKW00828);
	}
/* ++++++++++ v4.07.00 追加終了 ++++++++++ */
	
	/**
	 * 送付先住所情報をクリアします。
	 * @param bean			画面情報
	 * @param clrEvFlg		クリアイベントフラグ
	 */
	private void clearSohusAdInfo(X31SDataBeanAccess bean, boolean clrEvFlg)
	{
		// 郵便番号
		X31SDataBeanAccessArray listBean = bean.getDataBeanArray(KKW00828SFConst.PCD);
		X31SDataBeanAccess subbean = listBean.getDataBean(0);
		subbean.sendMessage(KKW00828SFConst.PCD_1_02, X31CWebConst.DATABEAN_CLEAR);			// 郵便番号１（上３桁）
		subbean.sendMessage(KKW00828SFConst.PCD_2_02, X31CWebConst.DATABEAN_CLEAR);			// 郵便番号２（下４桁）
		subbean.sendMessage(KKW00828SFConst.PCD_02, X31CWebConst.DATABEAN_CLEAR);			// 郵便番号
		subbean.sendMessage(KKW00828SFConst.PCD_DISP_02, X31CWebConst.DATABEAN_CLEAR);		// 郵便番号(表示用)
		
		// 住所コード
		listBean = bean.getDataBeanArray(KKW00828SFConst.AD_CD);
		subbean = listBean.getDataBean(0);
		subbean.sendMessage(KKW00828SFConst.AD_CD1_03, X31CWebConst.DATABEAN_CLEAR);		// 住所コード１
		subbean.sendMessage(KKW00828SFConst.AD_CD2_03, X31CWebConst.DATABEAN_CLEAR);		// 住所コード２
		subbean.sendMessage(KKW00828SFConst.AD_CD3_03, X31CWebConst.DATABEAN_CLEAR);		// 住所コード３
		subbean.sendMessage(KKW00828SFConst.AD_CD4_03, X31CWebConst.DATABEAN_CLEAR);		// 住所コード４
		subbean.sendMessage(KKW00828SFConst.AD_CD_03, X31CWebConst.DATABEAN_CLEAR);			// 住所コード
		subbean.sendMessage(KKW00828SFConst.AD_CD_DISP_03, X31CWebConst.DATABEAN_CLEAR);	// 住所コード(表示用)
		
		// 住所情報
		bean.sendMessage(KKW00828SFConst.STATE, X31CWebConst.DATABEAN_CLEAR);				// 都道府県
		bean.sendMessage(KKW00828SFConst.CITY, X31CWebConst.DATABEAN_CLEAR);				// 市区町村
		bean.sendMessage(KKW00828SFConst.OAZTSU, X31CWebConst.DATABEAN_CLEAR);				// 大字通称名
		bean.sendMessage(KKW00828SFConst.AZCHO, X31CWebConst.DATABEAN_CLEAR);				// 字丁目
		bean.sendMessage(KKW00828SFConst.BNCHIGO, X31CWebConst.DATABEAN_CLEAR);				// 番地・号
		
		if(clrEvFlg)
		{
			bean.sendMessage(KKW00828SFConst.ADRTTM, X31CWebConst.DATABEAN_CLEAR);			// 建物名
			bean.sendMessage(KKW00828SFConst.ADRRM, X31CWebConst.DATABEAN_CLEAR);			// 部屋番号
			bean.sendMessage(KKW00828SFConst.TELNO, X31CWebConst.DATABEAN_CLEAR);			// 電話番号
		}
		
		// 住所情報コンボの名称
		listBean = bean.getDataBeanArray(KKW00828SFConst.AD_INFO);
		subbean = listBean.getDataBean(0);
		subbean.sendMessage(KKW00828SFConst.CD_DIV_NM_01, X31CWebConst.DATABEAN_CLEAR);
		
		setValue(bean, KKW00828SFConst.TV_GUIDE_MSKM_CNT, "1");								// eo光テレビガイド誌
		setValue(bean, KKW00828SFConst.USE_STAYM, "2");										// 利用開始月 初期選択値 = 「次月より」
		bean.sendMessage(KKW00828SFConst.EVENTID, X31CWebConst.DATABEAN_CLEAR);				// イベントＩＤ
		bean.sendMessage(KKW00828SFConst.AD_RETURN_FLG, X31CWebConst.DATABEAN_CLEAR);		// 住所検索戻りフラグ
	}
	
/* ++++++++++ v4.06.00 追加開始 ++++++++++ */
	/**
	 * 送付先住所情報を初期表示状態にします。
	 * @param bean			画面情報
	 */
	private void reInitSohusAdInfo(X31SDataBeanAccess bean)
	{
		// ■送付先住所
		X31SDataBeanAccessArray listBean = bean.getDataBeanArray(KKW00828SFConst.AD_INFO);
		X31SDataBeanAccess subbean = listBean.getDataBean(0);
		setValue(subbean, KKW00828SFConst.SELECT_INDEX_01, "1");										// 住所情報コンボ
		
/* ++++++++++ v4.06.00 追加開始 ++++++++++ */
		bean.sendMessageBoolean(KKW00828SFConst.USEPCAD_DOITSU, X31CWebConst.DATABEAN_SET_VALUE, true);	// 利用場所と同じ
/* ++++++++++ v4.06.00 追加終了 ++++++++++ */
		
		listBean = bean.getDataBeanArray(KKW00828SFConst.PCD);
		subbean = listBean.getDataBean(0);
		setValue(subbean, KKW00828SFConst.PCD_1_02, 
				getDataBeanArrayValue(bean, KKW00828SFConst.PCD, KKW00828SFConst.KEISHA_PCD_1_02));		// 郵便番号
		setValue(subbean, KKW00828SFConst.PCD_2_02, 
				getDataBeanArrayValue(bean, KKW00828SFConst.PCD, KKW00828SFConst.KEISHA_PCD_2_02));
		
		bean.sendMessageBoolean(KKW00828SFConst.EX, X31CWebConst.DATABEAN_SET_VALUE, false);			// 手動入力
		
		listBean = bean.getDataBeanArray(KKW00828SFConst.AD_CD);
		subbean = listBean.getDataBean(0);
		setValue(subbean, KKW00828SFConst.AD_CD1_03, 
				getDataBeanArrayValue(bean, KKW00828SFConst.AD_CD, KKW00828SFConst.KEISHA_AD_CD1_03));	// 住所コード
		setValue(subbean, KKW00828SFConst.AD_CD2_03, 
				getDataBeanArrayValue(bean, KKW00828SFConst.AD_CD, KKW00828SFConst.KEISHA_AD_CD2_03));
		setValue(subbean, KKW00828SFConst.AD_CD3_03, 
				getDataBeanArrayValue(bean, KKW00828SFConst.AD_CD, KKW00828SFConst.KEISHA_AD_CD3_03));
		setValue(subbean, KKW00828SFConst.AD_CD4_03, 
				getDataBeanArrayValue(bean, KKW00828SFConst.AD_CD, KKW00828SFConst.KEISHA_AD_CD4_03));
		setValue(bean, KKW00828SFConst.STATE, getValue(bean, KKW00828SFConst.BK_KEISHA_STATE));			// 都道府県
		setValue(bean, KKW00828SFConst.CITY, getValue(bean, KKW00828SFConst.BK_KEISHA_CITY));			// 市区町村
		setValue(bean, KKW00828SFConst.OAZTSU, getValue(bean, KKW00828SFConst.BK_KEISHA_OAZTSU));		// 大字通称名
		setValue(bean, KKW00828SFConst.AZCHO, getValue(bean, KKW00828SFConst.BK_KEISHA_AZCHO));			// 字丁目
		setValue(bean, KKW00828SFConst.BNCHIGO, getValue(bean, KKW00828SFConst.BK_KEISHA_BNCHIGO));		// 番地・号
		setValue(bean, KKW00828SFConst.ADRTTM, getValue(bean, KKW00828SFConst.BK_KEISHA_ADRTTM));		// 建物名
		setValue(bean, KKW00828SFConst.ADRRM, getValue(bean, KKW00828SFConst.BK_KEISHA_ADRRM));			// 部屋番号
		setValue(bean, KKW00828SFConst.TELNO, getValue(bean, KKW00828SFConst.BK_KEISHA_TELNO));			// 電話番号
		
		// ■送付先氏名
		setValue(bean, KKW00828SFConst.SHS_NM, getValue(bean, KKW00828SFConst.BK_KEISHA_SHS_NM));		// 送付先名
		setValue(bean, KKW00828SFConst.SHS_KANA, getValue(bean, KKW00828SFConst.BK_KEISHA_SHS_KANA));	// 送付先カナ名
	}
	
	/**
	 * 退避している項目を取得します。
	 * @param bean			画面情報
	 * @param String
	 */
	private String getDataBeanArrayValue(X31SDataBeanAccess bean, String arrayNm, String ItemNm)
	{
		X31SDataBeanAccessArray arraybean = bean.getDataBeanArray(arrayNm);
		X31SDataBeanAccess subBean = arraybean.getDataBean(0);
		
		return getValue(subBean, ItemNm);
	}
/* ++++++++++ v4.06.00 追加終了 ++++++++++ */
	
	/**
	 * 入力された情報を登録用に編集します。
	 * <br>
	 * @param bean 画面情報
	 */
	private void editParamForAdd(X31SDataBeanAccess bean)
	{
		// 住所情報
		String adInfNm = JKKWebCommon.getPullDownName(bean,
														KKW00828SFConst.AD_INFO,
														KKW00828SFConst.SELECT_INDEX_01,
														KKW00828SFConst.CD_DIV_CD_LIST_01,
														KKW00828SFConst.CD_DIV_NM_LIST_01);
		setValue(bean.getDataBeanArray(KKW00828SFConst.AD_INFO).getDataBean(0), KKW00828SFConst.CD_DIV_NM_01, adInfNm);
		
		X31SDataBeanAccess subbean = null;
		
		// 郵便番号
		subbean = getBeanPcd(bean);
		String pcd = JPCUtilCommon.concatPcd(getValue(subbean, KKW00828SFConst.PCD_1_02), getValue(subbean, KKW00828SFConst.PCD_2_02));
		setValue(subbean, KKW00828SFConst.PCD_02, pcd);
		
		// 住所コード
		subbean = getBeanAdCd(bean);
		setValue(subbean, KKW00828SFConst.AD_CD_03, getEditAdCd(subbean));
	}
	
	/**
	 * 入力された情報を表示用に編集します。
	 * <br>
	 * @param bean 画面情報
	 */
	private void editParamForDisp(X31SDataBeanAccess bean)
	{
		// 表示＿住所情報
		setValue(bean, KKW00828SFConst.DISP_AD_INFO, getAdInfoSelName(bean));
		
		// 郵便番号
		X31SDataBeanAccess subbean = null;
		subbean = getBeanPcd(bean);
		String pcd = JPCUtilCommon.concatPcd(getValue(subbean, KKW00828SFConst.PCD_1_02), getValue(subbean, KKW00828SFConst.PCD_2_02));
		setValue(subbean, KKW00828SFConst.PCD_DISP_02, JPCUtilCommon.hyhunPcd(pcd));
		
		// 住所コード
		subbean = getBeanAdCd(bean);
		setValue(subbean, KKW00828SFConst.AD_CD_DISP_03, JPCUtilCommon.hyhunAdCd(getEditAdCd(subbean)));
		
		// 利用開始月
		String useStaYM = getValue(bean, KKW00828SFConst.USE_STAYM);
		
		// 表示＿利用終了月
		if("1".equals(useStaYM))
		{
			// 即時
			setValue(bean, KKW00828SFConst.DISP_USE_STAYM, "即時");
		}
		else if("2".equals(useStaYM))
		{
			// 次月より
			setValue(bean, KKW00828SFConst.DISP_USE_STAYM, "次月より");
		}
		else if("3".equals(useStaYM))
		{
			// 次々月より
			setValue(bean, KKW00828SFConst.DISP_USE_STAYM, "次々月より");
		}
		else
		{
			setValue(bean, KKW00828SFConst.DISP_USE_STAYM, "");
		}
	}
	
/* ++++++++++ v4.06.00 追加開始 ++++++++++ */
	/**
	 * コンボボックス選択表示文字列を設定します。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.選択インデックスを取得します。<br>
	 *
	 * 2.選択インデックスの表示文字列を取得します。<br>
	 *
	 * </pre>
	 * <p>
	 * @param srvBean 設定する画面のBean
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private String getAdInfoSelName(X31SDataBeanAccess srvBean)
	{
		String result = "";
		X31SDataBeanAccessArray comboArray = srvBean.getDataBeanArray(KKW00828SFConst.AD_INFO);
		X31SDataBeanAccess subbean = comboArray.getDataBean(0);
		String index = "";
		if (srvBean.sendMessageBoolean(KKW00828SFConst.USEPCAD_DOITSU, X31CWebConst.DATABEAN_GET_VALUE))
		{
			index = "1";
		}
		else
		{
			index = subbean.sendMessageString(KKW00828SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_GET_VALUE);
		}
		
		if(null != index && index.length() > 0)
		{
			result = subbean.sendMessageString(KKW00828SFConst.CD_DIV_NM_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(index));
			if (result.length() > 3) {
				return result.substring(2);
			}
			
		}
		
		return result;
	}
/* ++++++++++ v4.06.00 追加終了 ++++++++++ */
	
	/**
	 * 郵便番号を取得します。
	 * <br>
	 * @param bean 画面情報
	 * @return bean
	 */
	private X31SDataBeanAccess getBeanPcd(X31SDataBeanAccess bean)
	{
		// 郵便番号
		X31SDataBeanAccessArray listBean = bean.getDataBeanArray(KKW00828SFConst.PCD);
		
		return listBean.getDataBean(0);
	}
	
	/**
	 * 住所コードを取得します。
	 * <br>
	 * @param bean 画面情報
	 * @return bean
	 */
	private X31SDataBeanAccess getBeanAdCd(X31SDataBeanAccess bean)
	{
		// 住所コード
		X31SDataBeanAccessArray listBean = bean.getDataBeanArray(KKW00828SFConst.AD_CD);
		
		return listBean.getDataBean(0);
	}
	
	/**
	 * 連結した住所コードを取得します。
	 * <br>
	 * @param bean 画面情報
	 * @return string
	 */
	private String getEditAdCd(X31SDataBeanAccess subbean)
	{
		StringBuilder sb = new StringBuilder();
		sb.append(getValue(subbean, KKW00828SFConst.AD_CD1_03));
		sb.append(getValue(subbean, KKW00828SFConst.AD_CD2_03));
		sb.append(getValue(subbean, KKW00828SFConst.AD_CD3_03));
		sb.append(getValue(subbean, KKW00828SFConst.AD_CD4_03));
		
		return sb.toString();
	}
	
	/**	
	 * <dd>メソッド名：引継情報データマップ取得
	 * <dd>メソッド説明：引数のサービスフォームBeanより引継情報データマップの生成を行う。
	 * <dd>備考：引継情報データタイプの可変項目はString[]のみ対応。
	 * @param bean サービスフォームBean
	 * @param hktgiKey 引継情報データタイプのキー
	 * @param hktgiPrmKeys 引継情報データタイプの項目キーリスト	
	 * @return HashMap<String, Object> 引継情報データマップ
	 */
	private HashMap<String, Object> getHktgiDataMap(X31SDataBeanAccess bean, String hktgiKey, String[] hktgiPrmKeys)
	{
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		List<HashMap<String, Object>> dataList = new ArrayList<HashMap<String, Object>>();
		
		X31SDataBeanAccessArray infList =  bean.getDataBeanArray(hktgiKey);
		HashMap<String, Object> inMap = null;
		for (int i = 0; i < infList.getCount(); i++)
		{
			inMap = new HashMap<String, Object>();
			X31SDataBeanAccess inf = infList.getDataBean(i);
			for (int j = 0; j < hktgiPrmKeys.length; j++)
			{
				try
				{
					inMap.put(hktgiPrmKeys[j], inf.sendMessageObject(hktgiPrmKeys[j], X31CWebConst.DATABEAN_GET_VALUE));
				}
				catch (X31SRuntimeException ex)
				{
					// 可変項目の場合(String[]のみ対応)	
					int length = (Integer)inf.sendMessage(hktgiPrmKeys[j], X31CWebConst.DATABEAN_GET_COUNT);
					String[] obj = new String[length];
					for (int k = 0; k < length; k++)
					{
						obj[k] = inf.sendMessageString(hktgiPrmKeys[j], X31CWebConst.DATABEAN_GET_VALUE, k);
					}
					inMap.put(hktgiPrmKeys[j], obj);
				}
			}
			dataList.add(inMap);
		}
		dataMap.put(hktgiKey, dataList);
		return dataMap;	
	}
	
/* ++++++++++ v5.00.00 追加開始 ++++++++++ */
	/**
	 * eo光テレビガイド誌申込数チェック処理を行います。
	 * @eo光テレビガイド誌申込数＝０
	 * Aeo光テレビガイド誌申込数上限チェック
	 * <br>
	 * @param bean 画面情報
	 * @param outputMap サービス実行結果
	 * 
	 * @return boolean 処理結果
	 */
	@SuppressWarnings("unchecked")
	private boolean hasErrTvGuideMskmCnt(X31SDataBeanAccess bean, HashMap<String, Object> outputMap)
	{
		String tvGuideMskmCnt = "";
		HashMap parentMap = null;
		
		if(outputMap.containsKey(HASH_KEY_ADD_CC))
		{
			parentMap = (HashMap)outputMap.get(HASH_KEY_ADD_CC);
		}
		
		// @eo光テレビガイド誌申込数「０」チェック
		tvGuideMskmCnt = getValue(bean, KKW00828SFConst.TV_GUIDE_MSKM_CNT);
		if (TV_GUIDE_MSKM_CNT_ZERO.equals(tvGuideMskmCnt))
		{
			// ガイド誌申込数上限
			String tvGuideUpplno = (String)parentMap.get("tv_guide_upplno");
			// メッセージ
			StringBuilder msg = new StringBuilder();
			msg.append("１〜");
			msg.append(halfToFull(tvGuideUpplno));
			
			// エラーメッセージ格納
			// ＜＜　%1%は%2%の範囲で入力してください。＞＞
			JCCWebCommon.setMessageInfo(this, "EKB2100-NW", new String[]{"eo光テレビガイド誌申込数", msg.toString()}, "tv_guide_mskm_cnt");
			return true;
		}
		
		// Aeo光テレビガイド誌申込数上限チェック
		if(parentMap.containsKey("err_msg"))
		{
			if(!isBlank(parentMap.get("err_msg")))
			{
				String errMsg = (String)parentMap.get("err_msg");
				
				// エラーメッセージ格納
				// ＜＜　%1%で登録する冊数が上限値を超えました。＞＞
				JCCWebCommon.setMessageInfo(this, "EKBC930-KW", new String[]{errMsg});
				return true;
			}
		}
		
		return false;
	}
	
	/**
	 * 半角数字を全角数字に変換します。
	 * <br>
	 * @param num
	 * <br>
	 * @return String 全角数字
	 */
	private String halfToFull(String num)
	{
		StringBuilder sb = new StringBuilder(num);
		for (int i=0; i<num.length(); i++)
		{
			char c = sb.charAt(i);
			if (c >= '0'&& c <= '9')
			{
				sb.setCharAt(i, (char)(c - '0' + '０'));
			}
		}
		
		return sb.toString();
	}
/* ++++++++++ v5.00.00 追加終了 ++++++++++ */
	
	/**
	 * データBeanから指定された項目の値を取得します。
	 * <br>
	 * @param bean 画面情報
	 * @param itemName 項目名
	 * <br>
	 * @return String 項目値
	 */
	private String getValue(X31SDataBeanAccess bean, String itemName)
	{
		return bean.sendMessageString(itemName, X31CWebConst.DATABEAN_GET_VALUE);
	}
	
	/**
	 * データBeanに指定された項目の値を設定します。
	 * <br>
	 * @param bean 画面情報
	 * @param itemName 項目名
	 * @param value 設定値
	 */
	private void setValue(X31SDataBeanAccess bean, String itemName, String value)
	{
		bean.sendMessageString(itemName, X31CWebConst.DATABEAN_SET_VALUE, value);
	}
	
	/**
	 * 引数に値が設定されているか判定します。
	 * <br>
	 * @param	obj	判定する引数
	 * @return	boolean	引数に値が設定されていない場合はtrue
	 */
	private boolean isBlank(Object obj)
	{
		if (obj == null || obj.equals("")) 
		{
			return true;
		}
		
		return false;
	}
	
/* ++++++++++ v4.05.00 追加開始 ++++++++++ */
	/**
	 * ワーニングチェック
	 * 
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	private void warningChk(HashMap outputMap)
	{
		// 戻り値
		HashMap parentMap = null;
		
		if(outputMap.containsKey("EohTvGuideAddCC")){
			parentMap = (HashMap)outputMap.get("EohTvGuideAddCC");
		}
		
		if (null != parentMap)
		{
			for (int i=0;i<AD_CHK_LV_ERR.length;i++) {
			
				if (parentMap.containsKey(AD_CHK_LV_ERR[i]))
				{
					String warningStatus = (String)parentMap.get(AD_CHK_LV_ERR[i]);
					if (STATUS_WARNING.equals(warningStatus))
					{
						JCCWebCommon.setMessageInfo(this, "EKBD290--Q",new String[]{AD_CHK_LV_ERR_CHG[i]});
					}
				}
			}
		}
	}
/* ++++++++++ v4.05.00 追加終了 ++++++++++ */
/* ++++++++++ v4.06.00 追加開始 ++++++++++ */
	/**
	 * 対象チェック
	 * 
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	private boolean hasTargetErr(HashMap outputMap)
	{
		// 戻り値
		HashMap parentMap = null;
		
		if(outputMap.containsKey("KKSV052301CC"))
		{
			parentMap = (HashMap)outputMap.get("KKSV052301CC");
		}
		
		if (null != parentMap)
		{
			if (parentMap.containsKey(HASH_KEY_TARGET_ERR_FLG))
			{
				if (STATUS_ERROR.equals((String)parentMap.get(HASH_KEY_TARGET_ERR_FLG)))
				{
					return true;
				}
			}
		}
		
		return false;
	}
	
	/**
	 * 存在チェック
	 * 
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	private boolean hasExistErr(HashMap outputMap)
	{
		// 戻り値
		HashMap parentMap = null;
		
		if(outputMap.containsKey("KKSV052301CC"))
		{
			parentMap = (HashMap)outputMap.get("KKSV052301CC");
		}
		
		if (null != parentMap)
		{
			if (parentMap.containsKey(HASH_KEY_EXIST_ERR_FLG))
			{
				if (STATUS_ERROR.equals((String)parentMap.get(HASH_KEY_EXIST_ERR_FLG)))
				{
					return true;
				}
			}
		}
		
		return false;
	}
/* ++++++++++ v4.06.00 追加終了 ++++++++++ */
}
