/*********************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *	システム名		：顧客契約
 *	モジュール名	：０５０番号発番登録
 *	ソースファイル名：KKA16301SFLogic.java
 *	作成者			：富士通
 *	日付			：2011年06月16日
 *＜機能概要＞
 *	０５０番号発番登録機能のビューロジッククラスです。
 *   母体ソースコード：KKW03201SFLogic.java
*＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	v1.00.00	2011/06/16	富士通		新規作成
 *	v4.00.00	2012/08/23	富士通		案件番号「KAD-2012-0000092」
 *	v20.00.00	2015/12/04	FJ)谷口		【OM-2015-0000564】番号変更後に引き継いだ転送電話OPを解約したらSIP解約・消去オーダが送信された
 *	v23.00.00	2015/11/06	FJ) 林		【ANK-2694-00-00】 ワンストップ案件(ＳＴＥＰ２)
 *	v23.00.01   2016/01/08  FJ) 抱      【ANK-2694-00-00】 ワンストップ案件（ＳＴＥＰ２） OM-2015-0000564によるエラー処理の追加
 *  v23.01.00   2016/03/29  FJ)松本     【OM-2016-0000839】対応
 *  v26.00.00	2016/06/10  FJ)笠川     【ANK-2687-00-00】 プレミアムサポート施策
 *	v26.00.01	2016/07/28	FJ)柳		【IT1-2016-0000100】異動区分選択切替マッピング漏れ対応
 **********************************************************************/
package eo.web.webview.KKA16301SF;

import static eo.web.webview.common.JKKOneStopApiCommonUtil.checkRegulationForUpdateApi;
import static eo.web.webview.common.JKKOneStopApiCommonUtil.getReceiveXml;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.fujitsu.futurity.common.JSYwebLog;
import com.fujitsu.futurity.model.common.check.DatetimeCheck;
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.x00.JCCWebServiceException;
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 eo.common.constant.JPCModelConstant;
import eo.common.util.JKKStringUtil;
import eo.common.util.JPCDateChecker;
import eo.common.util.JPCDateUtil;
import eo.common.util.JPCUtilCommon;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.commonOneStop.JKKPulldownUtil;

import eo.web.webview.commonOneStop.JKKCommonConst;
import eo.web.webview.commonOneStop.JCCMessageCache;
import eo.web.webview.common.JKKOneStopApiCommonUtil;
import eo.web.webview.common.OneStopDataBeanAccess;
import eo.web.webview.commonOneStop.JKKScreenConst;
import eo.web.webview.commonOneStop.JCCWebCommon;

import eo.web.webview.mapping.KKSV0042_KKSV0042OPDBMapper;
import eo.web.webview.mapping.KKSV0043_KKSV0043OPDBMapper;
import eo.web.webview.mapping.KKSV0061_KKSV0061OPDBMapper;
import eo.web.webview.mapping.KKSV0062_KKSV0062OPDBMapper;
import eo.web.webview.mapping.KKSV0099_KKSV0099OPDBMapper;
import eo.web.webview.mapping.KKSV0100_KKSV0100OPDBMapper;
import eo.web.webview.mapping.KKSV0101_KKSV0101OPDBMapper;
import eo.web.webview.mapping.KKSV0463_KKSV0463OPDBMapper;
import eo.web.webview.mapping.KKSV0551_KKSV0551OPDBMapper;
import eo.web.webview.mapping.KKSV0820_KKSV0820OPDBMapper;
import eo.common.constant.JPCOnlineMessageConstant;  
/**
 * <dd>クラス名：０５０番号発番登録ビューロジック <dd>クラス説明：画面上のボタン押下時の各処理を記述します。 <dd>備考：
 * 
 * @version 1.0 2011/06/16
 * @author 富士通
 */
@SuppressWarnings("serial")
public class KKA16301SFLogic extends JCCWebBusinessLogic {


// ANK-2694-00-00 2015/11/06 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 = "KKIFE288";
	
	//ワンストップ用ワーニング保持リスト
	private List<Map<String, String>> warnList = null;
	
	//コード区分リスト格納用Map
	private Map <String, List<Map<String, String>>> cdDivListMap = null;
	
	/** 受信データ.オプションサービス契約番号 */
	private static final String SVC_KEI_NO = "svc_kei_no";
	
	/** 受信データ.サービス利用開始年月日 */
	private static final String SVC_USE_STA_KIBO_YMD = "svc_use_sta_kibo_ymd";
	
	/** 受信データ.電話番号 */
	private static final String TELNO = "telno";
	
	/** 未来日(60日) */
	private static final int paramStaDays = 60;
	
	/** サービス契約コード */
	private static String svcCd = null;
	
	/** 電話番号一致フラグ */
	private String hnTellNoflg = JKKCommonConst.UMU_1;
	
	/** サービス契約ステータス判定フラグ */
	private String hmSvcKeiNo = JKKCommonConst.UMU_0;
	
	/** オプション存在一致フラグ */
	private String hnopkeinm = JKKCommonConst.UMU_0;
	
	/** 未来日（運用日＋60日）チェックフラグ */
	private String hnFutureYMD = JKKCommonConst.UMU_0;
	
	/** オプションサービス契約番号 */
	private String opSvcKeiNo = "";
	
	/** サービス契約内訳 */
	private String svcKeiUcwkNo = "";
	
	/**コードステータスリストの定数*/
	private ArrayList<HashMap> eo_op_list = new ArrayList<HashMap>();
// ANK-2694-00-00 2015/11/06 ADD END
	
	// IT1-2016-0000100 2016/07/28 ADD START
	// サービス提供履歴フラグ
	private String svcTkRrkFlg = "0";
	// IT1-2016-0000100 2016/07/28 ADD END

// ANK-2694-00-00 2015/11/06 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();
				
				//ワンストップ独自関連チェック1
				if (!knrnChkForOneStop())
				{
					//エラー発生の為処理終了
					return true;
				}
				
				///////////////////////////////////////////
				//050番号発番登録確認 初期表示処理
				///////////////////////////////////////////
				this.actionInit();
				
				// メッセージチェック
				if (!JKKOneStopApiCommonUtil.msgChk(this, warMsgMap, tkckErrMsgMap, errMsgMap, warnList, funcCode, IF_ID))
				{
					// エラー発生の為処理終了
					return true;
				}
				
				// DataBean上書き処理
				this.overwriteDataBean();
				
				//ワンストップ独自関連チェック2
				if (!knrnChkForOneStop2())
				{
					//エラー発生の為処理終了
					return true;
				}
				
				//メッセージチェック
				if (!JKKOneStopApiCommonUtil.msgChk(this, warMsgMap, tkckErrMsgMap, errMsgMap, warnList, funcCode, IF_ID))
				{
					//エラー発生の為処理終了
					return true;
				}
				
				////////////////////////////////////////////
				//登録確認ボタン押下処理
				////////////////////////////////////////////
				this.actionCfm();
				
				//メッセージチェック
				if (!JKKOneStopApiCommonUtil.msgChk(this, warMsgMap, tkckErrMsgMap, errMsgMap, warnList, funcCode, IF_ID))
				{
					//エラー発生の為処理終了
					return true;
				}
				
				//機能コードが "1" の場合のみ、確定ボタン押下処理
				if (JKKCommonConst.FUNC_CODE_1.equals(funcCode))
				{
					//////////////////////////////////////////////
					//確定ボタン押下処理
					//////////////////////////////////////////////
					this.actionFix();
					
					//メッセージチェック
					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(), "KKIFE288_050番号発番登録確認(ワンストップ)にて例外が発生しました。", e);
			this.apiTerminal("99");
		}
		return true;
	}
// ANK-2694-00-00 2015/11/06 ADD END
	
	

// ANK-2694-00-00 2015/11/06 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-2694-00-00 2015/11/06 ADD END
	
// ANK-2694-00-00 2015/11/06 ADD START
	/**
	 * メッセージマップ作成処理です。
	 * 画面独自処理にて発生しうるエラーメッセージをMapに格納する。
	 * <BR>
	 * @throws Exception
	 */
	private void createMsgMap() throws Exception
	{
		// メッセージ読み込み
		JCCMessageCache.setMessageCache();
		
		// ワーニングメッセージ格納Map組み立て（※なし）
		warMsgMap = new HashMap<String, String[]>();
		
		// 単関連エラーメッセージ格納Map組み立て（※なし）
		tkckErrMsgMap = new HashMap<String, String[]>();
		
		// エラーメッセージ格納Map組み立て
		errMsgMap = new HashMap<String, String[]>();
		errMsgMap.put(JCCMessageCache.getMessage("EKB4330-KW", new String[]{""}), new String[]{"E5011", ""});	// 050番号チェック（検索結果0件）
		errMsgMap.put(JCCMessageCache.getMessage("EKB0350--I", new String[]{""}), new String[]{"E5011", ""});	// 050番号チェック（該当データ無）
		errMsgMap.put(JCCMessageCache.getMessage("EKB0340--I", new String[]{""}), new String[]{"E5011", ""});	// 050番号チェック（最大検索件数超え）
// ANK-2694-00-00 2016/01/08 ADD START
		errMsgMap.put(JCCMessageCache.getMessage("EKBE020-KW", new String[]{""}), new String[]{"E50ZZ", ""});
// ANK-2694-00-00 2016/01/08 ADD END
		
		// サービスIFエラー格納Map組み立て
		// KEY=『サービスインターフェイスID,ステータス,エラー返却項目,エラーフラグ』
		sifErrMap = new HashMap<String, String[]>();
		sifErrMap.put("EKK0371D010,1100,n_050_op_telno,EB"   ,  new String[]{"E5011", ""});		// 払出対象050番号が使用中
		sifErrMap.put("EZM0111D010,1100,aging_tg_value,EA"   ,  new String[]{"E5011", ""});		// 払出対象050番号が未使用だがエージングに存在する
	}
// ANK-2694-00-00 2015/11/06 ADD END

// ANK-2694-00-00 2015/11/06 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));
			}
		}
		
		// 電話番号
		itemName = TELNO;
		if (!JKKOneStopApiCommonUtil.checkRequireNotNull(requestMap, itemName))
		{
			// 必須チェックエラー
			errList.add(JKKOneStopApiCommonUtil.getReqErrInfMap(itemName));
		}
		else
		{
			itemValue = (String)requestMap.get(itemName);
			if (!HalfCharCheck.isTelno2Check(itemValue))
			{
				// 形式チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getFormErrInfMap(itemName));
			}
			if (!LengthCheck.isLength2Check(itemValue, 10, 11))
			{
				// 桁数チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getLenErrInfMap(itemName));
			}
		}
		
		// サービス利用開始希望年月日
		itemName = SVC_USE_STA_KIBO_YMD;
		if (!JKKOneStopApiCommonUtil.checkRequireNotNull(requestMap, itemName))
		{
			// 必須チェックエラー
			errList.add(JKKOneStopApiCommonUtil.getReqErrInfMap(itemName));
		}
		else
		{
			itemValue = (String)requestMap.get(itemName);
			if (!DatetimeCheck.isDateCheck(itemValue))
			{
				// 形式チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getFormErrInfMap(itemName));
			}
			else if (!JPCUtilCommon.checkDate(itemValue, 8))
			{
				// 日付妥当性チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getFormErrInfMap(itemName));
			}
			if (!LengthCheck.isLength1Check(itemValue, 8))
			{
				// 桁数チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getLenErrInfMap(itemName));
			}
		}
		
		//エラーが存在する場合
		if (errList.size() > 0)
		{
			JKKOneStopApiCommonUtil.setReturnXml(this, "10", errList, warnList, funcCode, IF_ID);
			return false;
		}
		return true;
	}
// ANK-2694-00-00 2015/11/06 ADD END

// ANK-2694-00-00 2015/11/06 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, "E5002", warnList, funcCode, IF_ID);
			return false;
		}
		
		// サービス契約番号存在チェック
		if (!JKKOneStopApiCommonUtil.checkExistSvcKeiNo(kksv0820OutputMap))
		{
			JKKOneStopApiCommonUtil.setReturnXml(this, "E5003", warnList, funcCode, IF_ID);
			return false;
		}
		
		// ユーザID存在チェック
		if (!JKKOneStopApiCommonUtil.checkExistUserId(kksv0820OutputMap))
		{
			JKKOneStopApiCommonUtil.setReturnXml(this, "E5004", 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/10 ANK-2687-00-00 ADD START
		kksv0062Mapper.setKKSV006222CC(paramOsBean, kksv0062InputMap, JPCModelConstant.FUNC_CD_1);
		// 2016/06/10 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") : "");

		// 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, "E5005", warnList, funcCode, IF_ID);
			return false;
		}
		
		// サービス契約異動可能チェック
		if (!JKKOneStopApiCommonUtil.checkSvcKeiIdoPsb(kksv0062OutputMap, osBean, idoDiv))
		{
			JKKOneStopApiCommonUtil.setReturnXml(this, "E5006", warnList, funcCode, IF_ID);
			return false;
		}
		
		return true;
	}
// ANK-2694-00-00 2015/11/06 ADD END

// ANK-2694-00-00 2015/11/06 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();
		// 必須チェック
		
		// サービスの種類チェック
		if (!svcCd.equals(JKKCommonConst.SVC_CD_02))
		{
			JKKOneStopApiCommonUtil.setReturnXml(this, "E5007", warnList, funcCode, IF_ID);
			return false;
		}
		return true;
	}
// ANK-2694-00-00 2015/11/06 ADD END

// ANK-2694-00-00 2015/11/06 ADD START
	/**
	 * 初期処理用DataBean上書き処理です。
	 * <BR>
	 */
	private void overwriteDataBeanForInit()
	{
		// データビーンの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		// 運用日付
		String opeDate = JCCWebCommon.getOpeDate(this, null);
		// サービス契約番号
		String svcKeiNo = (String)requestMap.get(SVC_KEI_NO);
		
		OneStopDataBeanAccess osBean = new OneStopDataBeanAccess();
		osBean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_SET_VALUE, svcKeiNo);
		osBean.sendMessageString("運用年月日", X31CWebConst.DATABEAN_SET_VALUE,  opeDate);
		osBean.sendMessageString("異動区分", X31CWebConst.DATABEAN_SET_VALUE,  JKKCommonConst.IDO_DIV_VALUE_00031);
		
		OneStopDataBeanAccess[] paramOsBean = {osBean};
		
		// サービス契約番号→サービス契約内訳
		// ■KKSV0042
		HashMap<String, Object> kksv0042ParamMap  = new HashMap<String, Object>();
		HashMap<String, Object> kksv0042InputMap  = new HashMap<String, Object>();
		HashMap<String, Object> kksv0042OutputMap = new HashMap<String, Object>();		
		
		// サービスパラメタ設定
		kksv0042ParamMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID,   JKKCommonConst.UCID_KKSV0042);
		kksv0042ParamMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, JKKCommonConst.OPID_KKSV0042OP);
		
		// 上りマッピング(サービス項目-DataBean項目マッピング)
		KKSV0042_KKSV0042OPDBMapper mapper = new KKSV0042_KKSV0042OPDBMapper();
		kksv0042InputMap = mapper.setKKSV004201SC(paramOsBean, kksv0042InputMap, JPCModelConstant.FUNC_CD_2);		// サービス契約一意照会
		kksv0042InputMap = mapper.setKKSV004202SC(paramOsBean, kksv0042InputMap, JPCModelConstant.FUNC_CD_1);		// サービス契約共通情報一覧照会
		kksv0042InputMap = mapper.setKKSV004203SC(paramOsBean, kksv0042InputMap, JPCModelConstant.FUNC_CD_2);		// 督促一意照会
		kksv0042InputMap = mapper.setKKSV004204SC(paramOsBean, kksv0042InputMap, JPCModelConstant.FUNC_CD_1);		// コード名称管理一意照会：異動区分名称
		kksv0042InputMap = mapper.setKKSV004205SC(paramOsBean, kksv0042InputMap, JPCModelConstant.FUNC_CD_1);		// コード名称管理一意照会：サービス契約ステータス名称
		kksv0042InputMap = mapper.setKKSV004206SC(paramOsBean, kksv0042InputMap, JPCModelConstant.FUNC_CD_1);		// 割引サービス契約一覧照会
		kksv0042InputMap = mapper.setKKSV004207SC(paramOsBean, kksv0042InputMap, JPCModelConstant.FUNC_CD_4);		// サービス契約内訳<eo光電話>一覧照会
		kksv0042InputMap = mapper.setKKSV004208SC(paramOsBean, kksv0042InputMap, JPCModelConstant.FUNC_CD_1);		// サービス契約内訳一覧照会
		kksv0042InputMap = mapper.setKKSV004209SC(paramOsBean, kksv0042InputMap, JPCModelConstant.FUNC_CD_1);		// オプションチャンネル情報一覧照会
		// 2016/06/10 ANK-2687-00-00 ADD START ワンストップではセットしているだけ
		kksv0042InputMap = mapper.setKKSV004211CC(paramOsBean, kksv0042InputMap, JPCModelConstant.FUNC_CD_1);		// お客様ランク情報一意照会
		// 2016/06/10 ANK-2687-00-00 ADD END ワンストップではセットしているだけ
		// オプションサービス契約一覧照会初期表示サービス実行
		invokeService(kksv0042ParamMap, kksv0042InputMap, kksv0042OutputMap);

		// 取得情報の下りマッピング
		mapper.getKKSV004201SC(paramOsBean, kksv0042OutputMap);
		mapper.getKKSV004202SC(paramOsBean, kksv0042OutputMap);
		mapper.getKKSV004203SC(paramOsBean, kksv0042OutputMap);
		mapper.getKKSV004204SC(paramOsBean, kksv0042OutputMap);
		mapper.getKKSV004205SC(paramOsBean, kksv0042OutputMap);
		mapper.getKKSV004206SC(paramOsBean, kksv0042OutputMap);
		mapper.getKKSV004208SC(paramOsBean, kksv0042OutputMap);
		mapper.getKKSV004209SC(paramOsBean, kksv0042OutputMap);
		
		// サービス契約番号に紐付く電話番号取得
		HashMap parentTelMap = null;
		if(kksv0042OutputMap.containsKey("KKSV004207SC"))
		{
			parentTelMap = (HashMap)kksv0042OutputMap.get("KKSV004207SC");
		}
		
		if(parentTelMap.containsKey("EKK0191B001CBSMsg1List"))
		{
			ArrayList childTelList = null;
			childTelList = (ArrayList)parentTelMap.get("EKK0191B001CBSMsg1List");
			for(int f=0;f<childTelList.size();f++)
			{
				HashMap childMap = (HashMap)childTelList.get(f);
				
				if (childMap != null)
				{
					// 受信データ.電話番号
					String getTelNo = (String)requestMap.get(TELNO);
				
						if(getTelNo.equals(childMap.get("telno")))
						{
							// OM-2016-0000839 2016/03/29 DEL START
							// 電話番号一致時サービス契約内訳番号取得
							//svcKeiUcwkNo = (String)childMap.get("svc_kei_ucwk_no");
							//paramOsBean[0].sendMessageString("サービス契約内訳番号", X31CWebConst.DATABEAN_SET_VALUE, svcKeiUcwkNo);
							// OM-2016-0000839 2016/03/29 DEL END
							// 電話番号存在チェックフラグを無に
							hnTellNoflg = JKKCommonConst.UMU_0;
							
							// サービス契約内訳ステータス取得
							String svcKeiUcwkSta = (String)childMap.get("svc_kei_ucwk_stat");
							// OM-2016-0000839 2016/03/29 ADD START
							// 指定された電話番号に紐付く内訳番号を取得
							String tmp_svc_kei_ucwk_no = (String)childMap.get("svc_kei_ucwk_no");
							
							if(!JKKCommonConst.SVC_KEI_STAT_910.equals(svcKeiUcwkSta)
									&& !JKKCommonConst.SVC_KEI_STAT_920.equals(svcKeiUcwkSta))
							{
								// 解約済かキャンセル済以外の内訳番号を設定
								// 複数存在する場合はより内訳番号が大きい方を設定
								if(JKKStringUtil.isNullBlank(this.svcKeiUcwkNo)
										|| tmp_svc_kei_ucwk_no.compareTo(this.svcKeiUcwkNo) > 0)
								{
									// サービスのINPUTとなる対象の内訳番号を取得
									this.svcKeiUcwkNo = tmp_svc_kei_ucwk_no;
									paramOsBean[0].sendMessageString("サービス契約内訳番号", X31CWebConst.DATABEAN_SET_VALUE, this.svcKeiUcwkNo);
								}
							}
							// OM-2016-0000839 2016/03/29 ADD END
							// OM-2016-0000839 2016/03/29 DEL START
							//if ((JKKCommonConst.SVC_KEI_STAT_910.equals(svcKeiUcwkSta)) || (JKKCommonConst.SVC_KEI_STAT_920.equals(svcKeiUcwkSta)))
							//{
							//	 //解約オーダーが投入可能ステータス時フラグを有に
							//	hmSvcKeiNo = JKKCommonConst.UMU_1;
							//	return;
							//}
							//break;
							// OM-2016-0000839 2016/03/29 DEL END
						}
				}
			}
			// 電話番号不一致時、処理を終了する
			if (!(JKKCommonConst.UMU_0.equals(hnTellNoflg))){
				return;
			}
			
			// OM-2016-0000839 2016/03/29 ADD START
			// 対象の内訳が全て解約済もしくはキャンセル済の場合、処理を終了する
			if (JKKStringUtil.isNullBlank(this.svcKeiUcwkNo)){
				hmSvcKeiNo = JKKCommonConst.UMU_1;
				return;
			}
			// OM-2016-0000839 2016/03/29 ADD END
		}
		
		// ■KKSV0043
		HashMap<String, Object> kksv0043ParamMap  = new HashMap<String, Object>();
		HashMap<String, Object> kksv0043InputMap  = new HashMap<String, Object>();
		HashMap<String, Object> kksv0043OutputMap = new HashMap<String, Object>();
		
		kksv0043ParamMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JKKCommonConst.UCID_KKSV0043);
		
		// 上りマッピング(サービス項目-DataBean項目マッピング)
		KKSV0043_KKSV0043OPDBMapper mapper_0043 = new KKSV0043_KKSV0043OPDBMapper();
		mapper_0043.setKKSV004301SC(paramOsBean, kksv0043InputMap, JPCModelConstant.FUNC_CD_2);
		mapper_0043.setKKSV004303CC(paramOsBean, kksv0043InputMap, JPCModelConstant.FUNC_CD_1);
		mapper_0043.setKKSV004304CC(paramOsBean, kksv0043InputMap, JPCModelConstant.FUNC_CD_1);
		
		// オプションサービス契約一覧照会サービス実行
		invokeService(kksv0043ParamMap, kksv0043InputMap, kksv0043OutputMap);
		
		mapper_0043.getKKSV004301SC(paramOsBean, kksv0043OutputMap,false);
		mapper_0043.getKKSV004303CC(paramOsBean, kksv0043OutputMap);
		mapper_0043.getKKSV004305SC(paramOsBean, kksv0043OutputMap);
		mapper_0043.getKKSV004306SC(paramOsBean, kksv0043OutputMap);
		
		HashMap opSvcCdAllMap = null;
		
		if(kksv0043OutputMap.containsKey("KKSV004301SC"))
		{
			opSvcCdAllMap = (HashMap)kksv0043OutputMap.get("KKSV004301SC");
		}
		
		// オプションサービスコード一覧
		if(opSvcCdAllMap.containsKey("EKK0351B002CBSMsg1List"))
		{
			ArrayList childList = null;
			childList = (ArrayList)opSvcCdAllMap.get("EKK0351B002CBSMsg1List");
			
			// オプションサービスコード存在チェック
			for(int i=0;i<childList.size();i++)
			{
				HashMap childMap = (HashMap)childList.get(i);
			
				// オプションサービスが050ナンバー時
				if((KKW03201SFConst.OP_SVC_CD_050).equals(childMap.get("op_svc_cd")))
				{
					// オプションサービス契約ステータス取得
					String opSvcKeiStat = (String)childMap.get("op_svc_kei_stat");
					if (!((JKKCommonConst.SVC_KEI_STAT_910.equals(opSvcKeiStat)) || (JKKCommonConst.SVC_KEI_STAT_920.equals(opSvcKeiStat))))
					{
						// 同一オプション存在チェックフラグを立てる
						hnopkeinm = JKKCommonConst.UMU_1;
						return;
					}
				}
			}
		}
		
		// 初期処理用の引継リスト作成
		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, svcKeiNo);
		// SYSID
		inMap.put(JKKCommonConst.HKTGI_SYSID, (String)requestMap.get("sysid"));
		// オプション契約番号
		inMap.put(JKKCommonConst.HKTGI_OP_SVC_KEI_NO, new String[]{(String)(opSvcKeiNo)});
		// サービス契約内訳番号
		inMap.put(JKKCommonConst.HKTGI_SVC_KEI_UCWK_NO, svcKeiUcwkNo);
		
		hktgList.add(inMap);
		paraMap.put(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST, hktgList);
		
		JCCWebCommon.setScreenInfo(this, "KKA16301", paraMap);
		
		// 共有フォームビーンにユーザIDを設定する
		X31SDataBeanAccess  commonBean = super.getCommonInfoBean();
		commonBean.sendMessageString(CommonInfoCFConst.USER_ID, X31CWebConst.DATABEAN_SET_VALUE, (String)requestMap.get("user_id"));
		
	}
// ANK-2694-00-00 2015/11/06 ADD END

// ANK-2694-00-00 2015/11/06 ADD START
	/**
	 * ワンストップ独自関連チェック1
	 * @return boolean
	 * @throws Exception
	 */
	
	public boolean knrnChkForOneStop() throws Exception
	{
		// 電話番号存在チェック
		if (JKKCommonConst.UMU_1.equals(hnTellNoflg))
		{
			JKKOneStopApiCommonUtil.setReturnXml(this, "E5008", warnList, funcCode, IF_ID);
			return false;
		}
		
		// サービス契約状態チェック
		if (JKKCommonConst.UMU_1.equals(hmSvcKeiNo))
		{
			JKKOneStopApiCommonUtil.setReturnXml(this, "E5009", warnList, funcCode, IF_ID);
			return false;
		}
		
		// 050ナンバープラスオプション存在チェック
		if (JKKCommonConst.UMU_1.equals(hnopkeinm))
		{
			JKKOneStopApiCommonUtil.setReturnXml(this, "E5010", warnList, funcCode, IF_ID);
			return false;
		}
		
		// 運用日付取得
		String opeDate = JCCWebCommon.getOpeDate(this, null);
		
		// 日付整合性チェック
		if (!JKKOneStopApiCommonUtil.checkRequireNotNull(requestMap, SVC_USE_STA_KIBO_YMD))
		{
			// 必須チェックエラー
			JKKOneStopApiCommonUtil.setReturnXml(this, "E5014", warnList, funcCode, IF_ID);
		}
		
		// 利用開始日取得
		String ymd = (String)requestMap.get(SVC_USE_STA_KIBO_YMD);
		
		// 過去日チェック(運用日付より過去日が指定された場合はエラー)
		if (JPCDateChecker.isPastDate(ymd, opeDate, "0"))
		{
			JKKOneStopApiCommonUtil.setReturnXml(this, "E5013", warnList, funcCode, IF_ID);
			return false;
		}
		
		return true;
	}
// ANK-2694-00-00 2015/11/06 ADD END

// ANK-2694-00-00 2015/11/06 ADD START
	/**
	 * DataBean上書き処理です。
	 * <BR>
	 * @return boolean
	 * @throws Exception
	 */
	private void overwriteDataBean()
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		
		// 払戻種別プルダウンの選択を取得
		X31SDataBeanAccessArray telno_rsc_sbt_list = paramBean[0]
				.getDataBeanArray(KKW03201SFConst.HRADSI_SBT_LIST);
		X31SDataBeanAccess telno_subbean = telno_rsc_sbt_list.getDataBean(0);
		
		// 添え字の設定(1:通常払出)固定
		telno_subbean.sendMessageString(KKW03201SFConst.INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, "1");
		
		//払出種別プルダウンの選択に応じて、検索条件をセット
		setTelnoRscSbtList(paramBean, bean);
		
		// 050番号一覧検索
		searchList(paramBean,true);
		
		// サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		
		// 利用開始日取得
		String useEndYMD = (String)requestMap.get(SVC_USE_STA_KIBO_YMD);
		
		String strFutureYMD = svcFormBean.sendMessageString(KKW03201SFConst.RSV_PSB_PRD, X31CWebConst.DATABEAN_GET_VALUE);
		int futureYMD = Integer.valueOf(strFutureYMD).intValue();
		
		// 運用日付取得
		String opeDate = JCCWebCommon.getOpeDate(this, null);

		// 未来日チェック(運用日＋60日以降の日付を指定されるとエラー)
		int day = JPCDateUtil.subtractDay(useEndYMD, opeDate);
		if (day > futureYMD)
		{
			hnFutureYMD = JKKCommonConst.UMU_1;
			return;
		}
		
		svcFormBean.sendMessageString(KKW03201SFConst.USE_STAYMD_YEAR, X31CWebConst.DATABEAN_SET_VALUE, (useEndYMD.substring(0, 4)));	// 利用終了日（年
		svcFormBean.sendMessageString(KKW03201SFConst.USE_STAYMD_MON, X31CWebConst.DATABEAN_SET_VALUE, (useEndYMD).substring(4, 6));	// 利用終了日（月
		svcFormBean.sendMessageString(KKW03201SFConst.USE_STAYMD_DAY, X31CWebConst.DATABEAN_SET_VALUE, (useEndYMD).substring(6, 8));	// 利用終了日（日
	}
// ANK-2694-00-00 2015/11/06 ADD END

	// ANK-2694-00-00 2015/11/06 ADD START
	/**
	 * ワンストップ独自関連チェック1
	 * @return boolean
	 * @throws Exception
	 */
	
	public boolean knrnChkForOneStop2() throws Exception
	{
		// 電話番号存在チェック
		if (JKKCommonConst.UMU_1.equals(hnFutureYMD))
		{
			JKKOneStopApiCommonUtil.setReturnXml(this, "E5012", warnList, funcCode, IF_ID);
			return false;
		}
		
		return true;
	}
// ANK-2694-00-00 2015/11/06 ADD END

// ANK-2694-00-00 2015/11/06 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-2694-00-00 2015/11/06 ADD END

	/**
	 * 登録画面初期表示処理
	 * 
	 * @return
	 * @throws Exception
	 */
	public boolean actionInit() throws Exception {

		// 戻り値
		Boolean bRtn = true;
		// 共有Bean アクセスクラスの取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// ANK-2694-00-00 2015/11/06 ADD START
		// 遷移先画面IDを取得
//		String screenId = commonInfoBean.sendMessageString(
//				CommonInfoCFConst.NEXT_SCREEN_ID,
//				X31CWebConst.DATABEAN_GET_VALUE);
		// 遷移先画面IDを取得
		String screenId = (JKKScreenConst.SCREEN_ID_KKW03201);
		// ANK-2694-00-00 2015/11/06 ADD END

		// 遷移先画面IDから、行う表示処理を決定する
		if (JKKScreenConst.SCREEN_ID_KKW03201.equals(screenId)) {
			bRtn = actionInitKKW03201();
		} else if (JKKScreenConst.SCREEN_ID_KKW03202.equals(screenId)) {

		} else if (JKKScreenConst.SCREEN_ID_KKW03203.equals(screenId)) {

		} else if (JKKScreenConst.SCREEN_ID_KKW02301.equals(screenId)) {

		}

		return bRtn;
	}

	/**
	 * 登録画面初期表示処理(画面ごと個別処理）
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	private boolean actionInitKKW03201() throws Exception
	{
		// HashMap定義
		HashMap<String, Object> paramMap = null;
		HashMap<String, Object> inputMap = null;
		HashMap<String, Object> outputMap = null;

		// サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		//TAI-2012-0000081 2012/09/29 ADD START
		// オプションサービスコードを編集する
		svcFormBean.sendMessageString(KKW03201SFConst.OP_SVC_CD, X31CWebConst.DATABEAN_SET_VALUE,
				KKW03201SFConst.OP_SVC_CD_050);
		//TAI-2012-0000081 2012/09/29 ADD END
		X31SDataBeanAccess[] paramBean = { svcFormBean };

		// セッション情報取得
		getSessionData(svcFormBean);
		
		//運用日の設定
		svcFormBean.sendMessageString(
				KKW03201SFConst.RSV_APLY_YMD, 
				X31CWebConst.DATABEAN_SET_VALUE,
				JCCWebCommon.getOpeDate(this, 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_KKSV0099);
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID,
				JKKCommonConst.OPID_KKSV0099OP);

		// 上りマッピング(サービス項目-DataBean項目マッピング)
		KKSV0099_KKSV0099OPDBMapper mapper = new KKSV0099_KKSV0099OPDBMapper();
		mapper.setKKSV009901SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setKKSV009902SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setKKSV009903SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setKKSV009904SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		mapper.setKKSV009905SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		//TAI-2012-0000081 2012/09/27 ADD START
		mapper.setKKSV009906SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);	//オプションサービス一意照会
		//TAI-2012-0000081 2012/09/27 ADD END

		// 050番号発番登録 初期表示サービス実行
		invokeService(paramMap, inputMap, outputMap);

		// 取得情報の下りマッピング
		JKKPulldownUtil.setPulldownList(svcFormBean, outputMap,
				KKW03201SFConst.HRADSI_SBT_LIST, "KKSV009901SC", true);
		mapper.getKKSV009901SC(paramBean, outputMap);
		mapper.getKKSV009902SC(paramBean, outputMap);
		mapper.getKKSV009903SC(paramBean, outputMap);
		mapper.getKKSV009904SC(paramBean, outputMap);
		mapper.getKKSV009905SC(paramBean, outputMap);
		//TAI-2012-0000081 2012/09/27 ADD START
		mapper.getKKSV009906SC(paramBean, outputMap);	//オプションサービス一意照会
		//TAI-2012-0000081 2012/09/27 ADD END

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(),
				null, null, null);

		// 画面表示用DataBean設定
		String unyo_ymd = JCCWebCommon.getOpeDate(this, null);
		svcFormBean.sendMessageString(KKW03201SFConst.USE_STAYMD_YEAR,
				X31CWebConst.DATABEAN_SET_VALUE, unyo_ymd.substring(0, 4));
		svcFormBean.sendMessageString(KKW03201SFConst.USE_STAYMD_MON,
				X31CWebConst.DATABEAN_SET_VALUE, unyo_ymd.substring(4, 6));
		svcFormBean.sendMessageString(KKW03201SFConst.USE_STAYMD_DAY,
				X31CWebConst.DATABEAN_SET_VALUE, unyo_ymd.substring(6, 8));
		svcFormBean.sendMessageString(KKW03201SFConst.UNYO_YMD,
				X31CWebConst.DATABEAN_SET_VALUE, unyo_ymd.substring(0, 8));
		svcFormBean.sendMessageString(KKW03201SFConst.UNYO_YMD_YEAR,
				X31CWebConst.DATABEAN_SET_VALUE, unyo_ymd.substring(0, 4));
		svcFormBean.sendMessageString(KKW03201SFConst.UNYO_YMD_MON,
				X31CWebConst.DATABEAN_SET_VALUE, unyo_ymd.substring(4, 6));
		svcFormBean.sendMessageString(KKW03201SFConst.UNYO_YMD_DAY,
				X31CWebConst.DATABEAN_SET_VALUE, unyo_ymd.substring(6, 8));

		X31SDataBeanAccessArray rsv_uppl_prd_list = svcFormBean.getDataBeanArray(KKW03201SFConst.RSV_UPPL_PRD_LIST);
		X31SDataBeanAccess subbean = rsv_uppl_prd_list.getDataBean(0);

		//予約上限日数
		String rsv_uppl_prd = subbean.sendMessageString(KKW03201SFConst.WORK_PARAM_SETTE_VALUE_03, X31CWebConst.DATABEAN_GET_VALUE);
		svcFormBean.sendMessageString(KKW03201SFConst.RSV_UPPL_PRD, X31CWebConst.DATABEAN_SET_VALUE, rsv_uppl_prd);

		////	IT1-No90 故障連番32対応にて、固定値を設定
//		svcFormBean.sendMessageString(
//				KKW03201SFConst.RSV_UPPL_PRD,
//				X31CWebConst.DATABEAN_SET_VALUE, 
//				"60"
//				);

		//サービス契約世代登録年月日時分秒を移し変え
		X31SDataBeanAccessArray svcList = null;
		X31SDataBeanAccess svcElement = null;
		svcList = svcFormBean.getDataBeanArray(KKW03201SFConst.SVC_KEI_LIST);
		svcElement = svcList.getDataBean(0);
		svcFormBean.sendMessageString(
				KKW03201SFConst.SVC_KEI_GENE_ADD_DTM,
				X31CWebConst.DATABEAN_SET_VALUE,
				svcElement.sendMessageString(
						KKW03201SFConst.GENE_ADD_DTM_08, 
						X31CWebConst.DATABEAN_GET_VALUE));

		//サービス契約内訳世代登録年月日時分秒を移し変え
		X31SDataBeanAccessArray svcUcwkList = null;
		X31SDataBeanAccess svcUcwkElement = null;
		svcUcwkList = svcFormBean.getDataBeanArray(KKW03201SFConst.SVC_KEI_UCHK_LIST);
		svcUcwkElement = svcUcwkList.getDataBean(0);
		svcFormBean.sendMessageString(
				KKW03201SFConst.SVC_KEI_UCHK_GENE_ADD_DTM,
				X31CWebConst.DATABEAN_SET_VALUE,
				svcUcwkElement.sendMessageString(
						KKW03201SFConst.GENE_ADD_DTM_09, 
						X31CWebConst.DATABEAN_GET_VALUE));

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(),
				null, null, null);

		getCommonInfoBean().sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_NAME_KKW03201);

		return true;
	}

	/**
	 * 電話番号発番ボタン押下
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean actionTelnoHtb() throws Exception {
		// サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = { svcFormBean };

		//払出種別プルダウンの選択に応じて、検索条件をセット
		setTelnoRscSbtList(paramBean, svcFormBean);
		

		// 050番号一覧検索
		searchList(paramBean,true);

		return true;
	}

	/**
	 * ページングリンク押下
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean actionPaging() throws Exception {
		// サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = { bean };

		//払出種別プルダウンの選択に応じて、検索条件をセット
		setTelnoRscSbtList(paramBean, bean);
		
		// 050番号一覧検索
		searchList(paramBean,false);

		return true;
	}
	
	/**
	 * 払出種別プルダウンの選択情報に応じて、検索条件をセット
	 * 
	 * @return なし
	 * 
	 */
	private void setTelnoRscSbtList(X31SDataBeanAccess[] paramBean, X31SDataBeanAccess svcFormBean)
	{
		// 払戻種別プルダウンの選択を取得
		X31SDataBeanAccessArray telno_rsc_sbt_list = paramBean[0]
				.getDataBeanArray(KKW03201SFConst.HRADSI_SBT_LIST);
		X31SDataBeanAccess telno_subbean = telno_rsc_sbt_list.getDataBean(0);

		// 添え字の取得
		String index = telno_subbean.sendMessageString(
				KKW03201SFConst.INDEX_01, X31CWebConst.DATABEAN_GET_VALUE);

		// 添え字から払戻種別を取得
//		String telno_srv_sbt = telno_subbean.sendMessageString(
//				KKW03201SFConst.CD_DIV_LIST_01,
//				X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(index));
		
//		svcFormBean.sendMessageString(
//				KKW03201SFConst.TELNO_RSV_SBT_CD, 
//				X31CWebConst.DATABEAN_SET_VALUE, 
//				telno_srv_sbt);
		
		//払戻種別により条件を設定
		X31SDataBeanAccessArray custList = svcFormBean.getDataBeanArray(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST);
		X31SDataBeanAccess subbean = custList.getDataBean(0);
//		if (JKKCommonConst.HRADSI_SBT_CD_01.equals(telno_srv_sbt)) {
		if (index.equals("1")){
			//通常払出
			//電話番号予約ステータス - なし
			paramBean[0].sendMessageString(KKW03201SFConst.TELNO_RSV_STAT,
					X31CWebConst.DATABEAN_SET_VALUE, 
					JKKCommonConst.TELNO_RSV_STAT_VALUE_999);
			
			//SYSIDは指定しない
			paramBean[0].sendMessageString(KKW03201SFConst.SYSID,
					X31CWebConst.DATABEAN_SET_VALUE,"");
			
			// 20130218 ST2-2013-0000698 ADD START
			//サービス契約番号は指定しない
			paramBean[0].sendMessageString(KKW03201SFConst.SVC_KEI_NO,
					X31CWebConst.DATABEAN_SET_VALUE,"");
			// 20130218 ST2-2013-0000698 ADD END
			
			//予約種別コード
			svcFormBean.sendMessageString(
					KKW03201SFConst.TELNO_RSV_SBT_CD, 
					X31CWebConst.DATABEAN_SET_VALUE, 
					"");
			
//		}else if (JKKCommonConst.HRADSI_SBT_CD_02.equals(telno_srv_sbt)) {
		}else if (index.equals("2")){

			//通常予約払出
			//電話番号予約ステータス - 予約
			paramBean[0].sendMessageString(KKW03201SFConst.TELNO_RSV_STAT,
					X31CWebConst.DATABEAN_SET_VALUE, 
					JKKCommonConst.TELNO_RSV_STAT_VALUE_100);
			
			//SYSIDは指定しない
			paramBean[0].sendMessageString(KKW03201SFConst.SYSID,
					X31CWebConst.DATABEAN_SET_VALUE,"");
			
			// 20130218 ST2-2013-0000698 ADD START
			//サービス契約番号は指定しない
			paramBean[0].sendMessageString(KKW03201SFConst.SVC_KEI_NO,
					X31CWebConst.DATABEAN_SET_VALUE,"");
			// 20130218 ST2-2013-0000698 ADD END
			
			//予約種別コード
			svcFormBean.sendMessageString(
					KKW03201SFConst.TELNO_RSV_SBT_CD, 
					X31CWebConst.DATABEAN_SET_VALUE, 
					"01");
			
//		}else if (JKKCommonConst.HRADSI_SBT_CD_03.equals(telno_srv_sbt)) {
		}else if (index.equals("3")){

			//指定予約払出
			//電話番号予約ステータス - 予約
			paramBean[0].sendMessageString(KKW03201SFConst.TELNO_RSV_STAT,
					X31CWebConst.DATABEAN_SET_VALUE,
					JKKCommonConst.TELNO_RSV_STAT_VALUE_100);
			
			// SYSID
			paramBean[0].sendMessageString(KKW03201SFConst.SYSID,
					X31CWebConst.DATABEAN_SET_VALUE, subbean.sendMessageString(
							KKW03201SFConst.SYSID_04,
							X31CWebConst.DATABEAN_GET_VALUE));
			
			// 20130218 ST2-2013-0000698 ADD START
			//サービス契約番号
			paramBean[0].sendMessageString(KKW03201SFConst.SVC_KEI_NO,
					X31CWebConst.DATABEAN_SET_VALUE, subbean.sendMessageString(
							KKW03201SFConst.SVC_KEI_NO_04,
							X31CWebConst.DATABEAN_GET_VALUE));
			// 20130218 ST2-2013-0000698 ADD END
			
			//予約種別コード
			svcFormBean.sendMessageString(
					KKW03201SFConst.TELNO_RSV_SBT_CD, 
					X31CWebConst.DATABEAN_SET_VALUE, 
					"02");

//		}else if (JKKCommonConst.HRADSI_SBT_CD_04.equals(telno_srv_sbt)) {
		}else if (index.equals("4")){

			//引継予約払出
			//電話番号予約ステータス - 予約
			paramBean[0].sendMessageString(KKW03201SFConst.TELNO_RSV_STAT,
					X31CWebConst.DATABEAN_SET_VALUE,
					JKKCommonConst.TELNO_RSV_STAT_VALUE_100);
			
			// SYSID
			paramBean[0].sendMessageString(KKW03201SFConst.SYSID,
					X31CWebConst.DATABEAN_SET_VALUE, subbean.sendMessageString(
							KKW03201SFConst.SYSID_04,
							X31CWebConst.DATABEAN_GET_VALUE));
			
			// 20130218 ST2-2013-0000698 ADD START
			//サービス契約番号
			paramBean[0].sendMessageString(KKW03201SFConst.SVC_KEI_NO,
					X31CWebConst.DATABEAN_SET_VALUE, subbean.sendMessageString(
							KKW03201SFConst.SVC_KEI_NO_04,
							X31CWebConst.DATABEAN_GET_VALUE));
			// 20130218 ST2-2013-0000698 ADD END
			
			//予約種別コード
			svcFormBean.sendMessageString(
					KKW03201SFConst.TELNO_RSV_SBT_CD, 
					X31CWebConst.DATABEAN_SET_VALUE, 
					"03");

		}
	}

	/**
	 * 一覧検索サービス呼出処理
	 * 
	 * @param paramBean
	 *            DataBeanアクセスクラス
	 * @param pageReset ページ番号のリセット
	 */
	private void searchList(X31SDataBeanAccess[] paramBean,boolean pageReset) {
		// HashMap定義
		HashMap<String, Object> paramMap = null;
		HashMap<String, Object> inputMap = null;
		HashMap<String, Object> outputMap = null;

		// 共有Bean アクセスクラスの取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// サービスの呼び出し
		paramMap = new HashMap<String, Object>(); // パラメタマップ生成
		inputMap = new HashMap<String, Object>(); // インプットマップ生成
		outputMap = new HashMap<String, Object>(); // アウトプットマップ生成

		// サービスパラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID,
				JKKCommonConst.UCID_KKSV0100);
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID,
				JKKCommonConst.OPID_KKSV0100OP);

		// 利用開始日の設定
		paramBean[0].sendMessageString(KKW03201SFConst.DSP_USE_STAYMD,
				X31CWebConst.DATABEAN_SET_VALUE, paramBean[0]
						.sendMessageString(KKW03201SFConst.USE_STAYMD_YEAR,
								X31CWebConst.DATABEAN_GET_VALUE)
						+ "/"
						+ paramBean[0].sendMessageString(
								KKW03201SFConst.USE_STAYMD_MON,
								X31CWebConst.DATABEAN_GET_VALUE)
						+ "/"
						+ paramBean[0].sendMessageString(
								KKW03201SFConst.USE_STAYMD_DAY,
								X31CWebConst.DATABEAN_GET_VALUE));

		// 検索タイプの設定
		paramBean[0]
				.sendMessageString(KKW03201SFConst.SEARCH_TYPE,
						X31CWebConst.DATABEAN_SET_VALUE,
						KKW03201SFConst.SEARCH_PATTERN);

		paramBean[0].sendMessageString(KKW03201SFConst.MAX_SEARCH_NUM,
				X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon
						.getSearchConst("KKW03201_MAX_SHOW_CNT"));

		paramBean[0].sendMessageString(KKW03201SFConst.DISPLAY_NUM,
				X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon
						.getSearchConst("KKW03201_ROW_PER_PAGE"));
		
		// 一覧クリア
		setClear();

		// 上りマッピング(サービス項目-DataBean項目マッピング)
		KKSV0100_KKSV0100OPDBMapper mapper = new KKSV0100_KKSV0100OPDBMapper();
		mapper.setKKSV010001SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);

		//ページ番号のリセット
		if(pageReset){
			JCCWebCommon.clearPageLinkInfo(this, "KKW03201");
		}
		
		// ページリンク情報の上りマッピング
		JCCWebCommon.upmapperPageLinkInfo(this, "0", "KKSV010001SC", inputMap);
		
		// 電話番号情報提供サービス実行
		invokeService(paramMap, inputMap, outputMap);

		// 取得情報の下りマッピング
		mapper.getKKSV010001SC(paramBean, outputMap);

		// 検索エラーフラグの取得
		String searchErrFlg = JCCWebCommon.getSearchErrFlg("KKSV010001SC",
				outputMap);
		if (JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchErrFlg)) {
			JCCWebCommon.setMessageInfo(this, "EKB4330-KW"); // 検索結果が0件
		} else if (JPCModelConstant.SEARCH_ERR_FLG_OVERMAX.equals(searchErrFlg)) {
			String[] str = { JCCWebCommon
					.getSearchConst("KKW03201_MAX_SHOW_CNT") };
			JCCWebCommon.setMessageInfo(this, "EKB0340--I", str); // 検索結果が最大検索件数超え
		} else if (JPCModelConstant.SEARCH_ERR_FLG_NODATA.equals(searchErrFlg)) {
			JCCWebCommon.setMessageInfo(this, "EKB0350--I"); // 該当データなし
		}

		// ページング情報の設定
		JCCWebCommon.downmapperPageLinkInfo(this, "KKSV010001SC", outputMap);

		// 検索のコマンドIDを設定する。
		JCCWebCommon.setSearchCommand(this, "paging");

		// 画面表示設定
		X31SDataBeanAccessArray list_050_no_info = paramBean[0]
				.getDataBeanArray(KKW03201SFConst.LIST_050_NO_INFO);
		X31SDataBeanAccess subbean = null;
		int listCount = list_050_no_info.getCount();
		for (int i = 0; i < listCount; i++) {
			subbean = list_050_no_info.getDataBean(i);
			// No
			subbean.sendMessageString(KKW03201SFConst.NO_02,
					X31CWebConst.DATABEAN_SET_VALUE, Integer.toString(i + 1));

			// 行表示フラグ
			if (i % 2 == 0) {
				subbean.sendMessageString(KKW03201SFConst.GYO_DISP_FLG_02,
						X31CWebConst.DATABEAN_SET_VALUE, "1");
			} else {
				subbean.sendMessageString(KKW03201SFConst.GYO_DISP_FLG_02,
						X31CWebConst.DATABEAN_SET_VALUE, "2");
			}
			// 初期選択
			if (i == 0) {
				paramBean[0].sendMessageString(KKW03201SFConst.TELNO_SEL,
						X31CWebConst.DATABEAN_SET_VALUE, "0");
				//払出０５０番号
				paramBean[0].sendMessageString(KKW03201SFConst.HRADSI_050_NO,
						X31CWebConst.DATABEAN_SET_VALUE, subbean
								.sendMessageString(KKW03201SFConst.TELNO_02,
										X31CWebConst.DATABEAN_GET_VALUE));
				//予約削除用キー情報・電話番号予約番号
				String telno_rsv_no = subbean.sendMessageString(KKW03201SFConst.TELNO_RSV_NO_02, X31CWebConst.DATABEAN_GET_VALUE);
				paramBean[0].sendMessageString(KKW03201SFConst.KK0181_TELNO_RSV_NO, X31CWebConst.DATABEAN_SET_VALUE, telno_rsv_no);
				//予約削除用キー情報・更新年月日時分秒
				String upd_dtm = subbean.sendMessageString(KKW03201SFConst.ZM0181_UPD_DTM_02, X31CWebConst.DATABEAN_GET_VALUE);
				paramBean[0].sendMessageString(KKW03201SFConst.KK0181_UPD_DTM, X31CWebConst.DATABEAN_SET_VALUE, upd_dtm);
			}
		}

		// 払出種別プルダウンの選択を取得
		X31SDataBeanAccessArray telno_rsv_sbt_list = paramBean[0]
				.getDataBeanArray(KKW03201SFConst.HRADSI_SBT_LIST);
		X31SDataBeanAccess subbean2 = telno_rsv_sbt_list.getDataBean(0);
		// 添え字の取得
		String index = subbean2.sendMessageString(KKW03201SFConst.INDEX_01,
				X31CWebConst.DATABEAN_GET_VALUE);
		// 添え字からコード名称を取得
		String cd_div_nm = subbean2.sendMessageString(
				KKW03201SFConst.CD_DIV_NM_LIST_01,
				X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(index));
		// コードと名称に分割
		// 20120510 ST2-2012-0000881 START
		//String[] cd_div_nm_array = cd_div_nm.split(". ");
		String[] cd_div_nm_array = cd_div_nm.split("\\.");
		// 20120510 ST2-2012-0000881 END
		// 名称をDataBeanに設定
		paramBean[0].sendMessageString(KKW03201SFConst.DSP_HRADSI_SBT,
				X31CWebConst.DATABEAN_SET_VALUE, cd_div_nm_array[1]);

		// 共有フォームBean設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_ID_KKW03201);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_NAME_KKW03201);

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(),
				null, null, null);
	}

	/**
	 * 一覧クリア処理
	 */
	private void setClear() {
		// サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		X31SDataBeanAccessArray list_050_No_Info = svcFormBean
				.getDataBeanArray(KKW03201SFConst.LIST_050_NO_INFO);

		// 050番号情報一覧のクリア
		list_050_No_Info.clearArray();

		// 050番号のクリア
		svcFormBean.sendMessage(KKW03201SFConst.HRADSI_050_NO,
				X31CWebConst.DATABEAN_CLEAR);
	}

	/**
	 * 登録画面「登録確認」ボタン押下
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean actionCfm() throws Exception {
		
		// サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();

		//SYSID条件を元に戻す
		X31SDataBeanAccessArray custList = svcFormBean.getDataBeanArray(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST);
		X31SDataBeanAccess subbean = custList.getDataBean(0);
		svcFormBean.sendMessageString(KKW03201SFConst.SYSID,
				X31CWebConst.DATABEAN_SET_VALUE, subbean.sendMessageString(
						KKW03201SFConst.SYSID_04,
						X31CWebConst.DATABEAN_GET_VALUE));
		
		// 20130219 ST2-2013-0000698 ADD START
		//サービス契約番号条件を元に戻す
		svcFormBean.sendMessageString(KKW03201SFConst.SVC_KEI_NO,
				X31CWebConst.DATABEAN_SET_VALUE, subbean.sendMessageString(
						KKW03201SFConst.SVC_KEI_NO_04,
						X31CWebConst.DATABEAN_GET_VALUE));
		// 20130219 ST2-2013-0000698 ADD END
		// 登録確認サービス実行
		boolean exeResult = createOpSvcKei(JPCModelConstant.FUNC_CD_2);
		if (exeResult) {

			// 表示用項目の設定
			// 利用開始日
			svcFormBean.sendMessageString(KKW03201SFConst.DSP_USE_STAYMD,
					X31CWebConst.DATABEAN_SET_VALUE, svcFormBean
							.sendMessageString(KKW03201SFConst.USE_STAYMD_YEAR,
									X31CWebConst.DATABEAN_GET_VALUE)
							+ "/"
							+ svcFormBean.sendMessageString(
									KKW03201SFConst.USE_STAYMD_MON,
									X31CWebConst.DATABEAN_GET_VALUE)
							+ "/"
							+ svcFormBean.sendMessageString(
									KKW03201SFConst.USE_STAYMD_DAY,
									X31CWebConst.DATABEAN_GET_VALUE));

			// 共有フォームBean設定
			X31SDataBeanAccess commonBean = super.getCommonInfoBean();
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
					X31CWebConst.DATABEAN_SET_VALUE,
					JKKScreenConst.SCREEN_ID_KKW03202);
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
					X31CWebConst.DATABEAN_SET_VALUE,
					JKKScreenConst.SCREEN_NAME_KKW03202);

			// メッセージ表示処理
			String[] str = { "０５０番号発番の登録" };
			JCCWebCommon.setMessageInfo(this, "EKB0370--I", str);
		}
		return true;
	}

	/**
	 * 登録確認画面「確定」ボタン押下時処理
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean actionFix() throws Exception {

		// サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();

		// 登録確認サービス実行
		boolean exeResult = createOpSvcKei(JPCModelConstant.FUNC_CD_1);
		if (exeResult) {
			
			// 表示用項目の設定
			// 利用開始日
			svcFormBean.sendMessageString(KKW03201SFConst.DSP_USE_STAYMD,
					X31CWebConst.DATABEAN_SET_VALUE, svcFormBean
							.sendMessageString(KKW03201SFConst.USE_STAYMD_YEAR,
									X31CWebConst.DATABEAN_GET_VALUE)
							+ "/"
							+ svcFormBean.sendMessageString(
									KKW03201SFConst.USE_STAYMD_MON,
									X31CWebConst.DATABEAN_GET_VALUE)
							+ "/"
							+ svcFormBean.sendMessageString(
									KKW03201SFConst.USE_STAYMD_DAY,
									X31CWebConst.DATABEAN_GET_VALUE));
			
			
			// 共有フォームBean設定
			X31SDataBeanAccess commonBean = super.getCommonInfoBean();
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
					X31CWebConst.DATABEAN_SET_VALUE,
					JKKScreenConst.SCREEN_ID_KKW03203);
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
					X31CWebConst.DATABEAN_SET_VALUE,
					JKKScreenConst.SCREEN_NAME_KKW03203);

			// メッセージ表示処理
			String[] str = { "０５０番号発番の登録" };
			JCCWebCommon.setMessageInfo(this, "EKB4390--I", str);
		}
		return true;
	}

	/**
	 * ０５０番号発番登録確認処理
	 * 
	 * @param funcCode
	 *            機能コード
	 * @return 正常終了:true 異常終了:false
	 */
	private boolean createOpSvcKei(String funcCode) throws Exception
	{
		// HashMap定義
		HashMap<String, Object> paramMap = null;
		HashMap<String, Object> inputMap = null;
		HashMap<String, Object> outputMap = null;

		// サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = { svcFormBean };

		// サービスの呼び出し
		paramMap = new HashMap<String, Object>(); // パラメタマップ生成
		inputMap = new HashMap<String, Object>(); // インプットマップ生成
		outputMap = new HashMap<String, Object>(); // アウトプットマップ生成

		// サービスフォームBean設定
		set050InfoBean(paramBean);
		
		// サービスパラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID,
				JKKCommonConst.UCID_KKSV0101);
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID,
				JKKCommonConst.OPID_KKSV0101OP);

		 // 上りマッピング(サービス項目-DataBean項目マッピング)
		 KKSV0101_KKSV0101OPDBMapper mapper = new KKSV0101_KKSV0101OPDBMapper();
		 mapper.setKKSV010101SC(paramBean, inputMap, funcCode);
		 mapper.setKKSV010102SC(paramBean, inputMap, funcCode);
		 mapper.setKKSV010103SC(paramBean, inputMap, funcCode);
		 mapper.setKKSV010104SC(paramBean, inputMap, funcCode);
		 mapper.setKKSV010105SC(paramBean, inputMap, funcCode);
		 mapper.setKKSV010106SC(paramBean, inputMap, funcCode);
		 mapper.setKKSV010107SC(paramBean, inputMap, funcCode);
		 mapper.setKKSV010108SC(paramBean, inputMap, funcCode);
		 mapper.setKKSV010109SC(paramBean, inputMap, funcCode);		//IT障害KK1-0113対応
		 mapper.setKKSV010110SC(paramBean, inputMap, funcCode);		//IT障害KK1-0113対応
		 mapper.setKKSV010111SC(paramBean, inputMap, funcCode);
		// KAD-2012-00000087 ADD Start
		 mapper.setKKSV010112CC(paramBean, inputMap, funcCode);
		// KAD-2012-00000087 ADD End
		// 20120423 ST2-2012-0000737 START
		 mapper.setKKSV010112SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		 // IT1-2014-0000028 2014-01-22 MOD_START
//		 mapper.setKKSV010113SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		 mapper.setKKSV010113SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		 // IT1-2014-0000028 2014-01-22 MOD_END
		// 20120423 ST2-2012-0000737 END

// ▼▼▼▼▼ 2012/08/23 ADD START ▼▼▼▼▼
		 mapper.setKKSV010114SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
// ▲▲▲▲▲ 2012/08/23 ADD E N D ▲▲▲▲▲

		 // IT1-2014-0000028 2014-01-21 ADD_START
		 mapper.setKKSV010116SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		 // IT1-2014-0000028 2014-01-21 ADD_END

		 // OM-2015-0000564 20151204 ADD START
		 mapper.setKKSV010117SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		 // OM-2015-0000564 20151204 ADD END
		 
		 // 050番号発番登録確認サービス実行
		 invokeService(paramMap, inputMap, outputMap);

		// OM-2015-0000564 20151204 ADD START
		// エラーメッセージを設定
		if (setErrorMessageInfo(outputMap))
		{
			return false;
		}
		// OM-2015-0000564 20151204 ADD END
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(),
				null, null, null);

		return true;
	}

	/**
	 * 登録画面「クリア」ボタン押下
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean actionClear() throws Exception {
		// 共有Bean アクセスクラスの取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// 一覧クリア
		setClear();

		// 共有フォームBean設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_ID_KKW03201);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_NAME_KKW03201);

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(),
				null, null, null);

		return true;
	}

	/**
	 * 登録画面「戻る」ボタン押下
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean actionBack() throws Exception {
		// 共有フォームBean設定
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		commonBean
				.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
						X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon
								.getScreenId(this));

		return true;
	}

	/**
	 * 登録確認画面「修正」ボタン押下時処理
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean actionShusei() throws Exception {
		// 共有フォームBean設定
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_ID_KKW03201);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_NAME_KKW03201);

		return true;
	}

	/**
	 * 登録完了画面「完了」ボタン押下時処理
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean actionFin() throws Exception {
		// 共有フォームBean設定
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		commonBean
				.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
						X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon
								.getScreenId(this));

		return true;
	}

	/**
	 * 引継情報を取得しサービスフォームBeanに設定する
	 * 
	 * @param svcFormBean
	 *            DataBeanアクセスクラス
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean getSessionData(X31SDataBeanAccess svcFormBean)
			throws Exception {
		// 前画面からの引継情報を取得
		HashMap<String, Object> dataMap = JCCWebCommon.getScreenInfo(this);
		if (dataMap == null) {
			return false;
		}

		// 顧客契約引継リスト（第二階層）から第一階層の同名項目にセット

		X31SDataBeanAccessArray custList = svcFormBean
				.getDataBeanArray(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST);
		X31SDataBeanAccess subbean = custList.getDataBean(0);

		// SYSID
		svcFormBean.sendMessageString(KKW03201SFConst.SYSID,
				X31CWebConst.DATABEAN_SET_VALUE, subbean.sendMessageString(
						KKW03201SFConst.SYSID_04,
						X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約番号
		svcFormBean.sendMessageString(KKW03201SFConst.SVC_KEI_NO,
				X31CWebConst.DATABEAN_SET_VALUE, subbean.sendMessageString(
						KKW03201SFConst.SVC_KEI_NO_04,
						X31CWebConst.DATABEAN_GET_VALUE));
		// 異動区分
		svcFormBean.sendMessageString(KKW03201SFConst.IDO_DIV,
				X31CWebConst.DATABEAN_SET_VALUE, subbean.sendMessageString(
						KKW03201SFConst.IDO_DIV_04,
						X31CWebConst.DATABEAN_GET_VALUE));
		// 異動理由
		int count = (Integer) subbean.sendMessage(
				KKW03201SFConst.IDO_RSN_CD_04, X31CWebConst.DATABEAN_GET_COUNT);
		for (int i = 0; i < count; i++) {
			
			String idoRsnCd;
			// UI残65_異動理由の要否について 2012/05/14 ariyoshi strat
			String idoRsnMemo;
			X31SDataBeanAccessArray arraybean = svcFormBean.getDataBeanArray(KKW03201SFConst.IDO_RSN_LIST);
			X31SDataBeanAccess bean;

			//引継ぎ項目から異動理由コードの取得
			idoRsnCd = subbean.sendMessageString(
					KKW03201SFConst.IDO_RSN_CD_04,
					X31CWebConst.DATABEAN_GET_VALUE, i);
			
			//引継ぎ項目から異動理由メモの取得
			idoRsnMemo = subbean.sendMessageString(
					KKW03201SFConst.IDO_RSN_MEMO_04,
					X31CWebConst.DATABEAN_GET_VALUE);
			
			//根元の階層のBeanへ異動理由コードを設定
			svcFormBean.sendMessageString(KKW03201SFConst.IDO_RSN_CD,
					X31CWebConst.DATABEAN_ADD_VALUE, idoRsnCd);

			//明細に異動理由コードを追加
			bean = arraybean.addDataBean();
			bean.sendMessageString(
					KKW03201SFConst.IDO_RSN_CD_06, 
					X31CWebConst.DATABEAN_SET_VALUE,
					idoRsnCd);
			
			//明細に異動理由メモを追加
			bean.sendMessageString(
					KKW03201SFConst.IDO_RSN_MEMO_06, 
					X31CWebConst.DATABEAN_SET_VALUE,
					idoRsnMemo);
			// UI残65_異動理由の要否について 2012/05/14 ariyoshi end
		}
		
		//サービス契約内訳番号の設定
		svcFormBean.sendMessageString(
				KKW03201SFConst.SVC_KEI_UCWK_NO,
				X31CWebConst.DATABEAN_SET_VALUE,
				subbean.sendMessageString(
						KKW03201SFConst.SVC_KEI_UCWK_NO_04,
						X31CWebConst.DATABEAN_GET_VALUE));

		// 運用年月日を設定
		svcFormBean.sendMessageString(KKW03201SFConst.UNYO_YMD,
				X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getOpeDate(this,
						null));

		// KAD-2012-00000087 ADD Start
		// 電話番号順から判定 → 電話タブオプション情報制御コード
		String telno_jun = subbean.sendMessageString(KKW03201SFConst.TELNO_JUN_04, X31CWebConst.DATABEAN_GET_VALUE);
		if ("1".equals(telno_jun)) {
			svcFormBean.sendMessageString(KKW03201SFConst.TEL_1_TAB_OP_IF_CTL_CD, X31CWebConst.DATABEAN_SET_VALUE, "1");
		} else if ("2".equals(telno_jun)){
			svcFormBean.sendMessageString(KKW03201SFConst.TEL_2_TAB_OP_IF_CTL_CD, X31CWebConst.DATABEAN_SET_VALUE, "1");
		}
		// KAD-2012-00000087 ADD End

		return true;
	}

	/**
	 * 登録画面「選択」ラジオボタン押下時処理
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean actionRadioClick() throws Exception {
		// 共有Bean アクセスクラスの取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = { svcFormBean };

		// 一覧の選択行の位置を取得
		String sel = paramBean[0].sendMessageString(KKW03201SFConst.TELNO_SEL,
				X31CWebConst.DATABEAN_GET_VALUE);

		// 選択行より、払出電話番号を取得
		X31SDataBeanAccessArray list_050_no_info = paramBean[0]
				.getDataBeanArray(KKW03201SFConst.LIST_050_NO_INFO);
		X31SDataBeanAccess subbean = list_050_no_info.getDataBean(Integer
				.parseInt(sel));
		String telno = subbean.sendMessageString(KKW03201SFConst.TELNO_02,
				X31CWebConst.DATABEAN_GET_VALUE);

		// 払出０５０番号に設定
		paramBean[0].sendMessageString(KKW03201SFConst.HRADSI_050_NO,
				X31CWebConst.DATABEAN_SET_VALUE, telno);

		//予約削除用キー情報・電話番号予約番号
		String telno_rsv_no = subbean.sendMessageString(KKW03201SFConst.TELNO_RSV_NO_02, X31CWebConst.DATABEAN_GET_VALUE);
		paramBean[0].sendMessageString(KKW03201SFConst.KK0181_TELNO_RSV_NO, X31CWebConst.DATABEAN_SET_VALUE, telno_rsv_no);
		//予約削除用キー情報・更新年月日時分秒
		String upd_dtm = subbean.sendMessageString(KKW03201SFConst.ZM0181_UPD_DTM_02, X31CWebConst.DATABEAN_GET_VALUE);
		paramBean[0].sendMessageString(KKW03201SFConst.KK0181_UPD_DTM, X31CWebConst.DATABEAN_SET_VALUE, upd_dtm);

		// 共有フォームBean設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_ID_KKW03201);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_NAME_KKW03201);

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(),
				null, null, null);

		return true;
	}
	/**
	 * サービスコンポーネント設定情報の格納処理６６
	 * <br>
	 * @param paramBean DataBean項目の配列
	 * @exception Exceptionがスローされます。
	 */
	private void set050InfoBean(X31SDataBeanAccess[] paramBean) throws Exception
	{
		
		// 利用開始日を結合
		String use_staymd_year = paramBean[0].sendMessageString(KKW03201SFConst.USE_STAYMD_YEAR, X31CWebConst.DATABEAN_GET_VALUE);
		String use_staymd_mon = paramBean[0].sendMessageString(KKW03201SFConst.USE_STAYMD_MON, X31CWebConst.DATABEAN_GET_VALUE);
		String use_staymd_day = paramBean[0].sendMessageString(KKW03201SFConst.USE_STAYMD_DAY, X31CWebConst.DATABEAN_GET_VALUE);
		String use_staymd = use_staymd_year + use_staymd_mon + use_staymd_day;
		
		//利用開始日設定
		paramBean[0].sendMessageString(KKW03201SFConst.DSP_USE_STAYMD, X31CWebConst.DATABEAN_SET_VALUE, use_staymd);
		
		//料金コース
		paramBean[0].sendMessageString(KKW03201SFConst.PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, "B33");
		
		//料金プラン
		paramBean[0].sendMessageString(KKW03201SFConst.PPLAN_CD, X31CWebConst.DATABEAN_SET_VALUE, "PB3301");
		
		//請求契約番号
		String seiky_kei_no = null;
		X31SDataBeanAccessArray beanArray = paramBean[0].getDataBeanArray(KKW03201SFConst.SEIKY_KEI_LIST);
		if (0 < beanArray.getCount())
		{
			seiky_kei_no = beanArray.getDataBean(0).sendMessageString(KKW03201SFConst.SEIKY_KEI_NO_07, X31CWebConst.DATABEAN_GET_VALUE);
		}
		paramBean[0].sendMessageString(KKW03201SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, seiky_kei_no);

		//親契約識別
		paramBean[0].sendMessageString(KKW03201SFConst.OYA_KEI_SKBT_CD, X31CWebConst.DATABEAN_SET_VALUE, "03");
		
		//異動区分判定
		String ido_div = paramBean[0].sendMessageString(KKW03201SFConst.IDO_DIV, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 00031:オプション設定の時
		if (KKW03201SFConst.IDO_DIV.equals(ido_div))
		{
			// 申込種別コード:00026（オプション設定）
			paramBean[0].sendMessageString(KKW03201SFConst.MSKM_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, JKKCommonConst.MSKM_SBT_CD_VALUE_00026);
			
		}
		// 以外（新規申込）
		else 
		{
			// 申込種別コード:00001（新規契約）
			paramBean[0].sendMessageString(KKW03201SFConst.MSKM_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, JKKCommonConst.MSKM_SBT_CD_VALUE_00001);
			
		}

		// 即時適用（サービス契約．サービス開始日が過去日（当日含む）　かつ　利用開始日が当日）の場合のみ実行
		if (JPCDateChecker.isEqualDate(use_staymd, JCCWebCommon.getOpeDate(this, null)))
		{
			// 進捗ステータス:5102
			paramBean[0].sendMessageString(KKW03201SFConst.PRG_STAT, X31CWebConst.DATABEAN_SET_VALUE,
					JKKCommonConst.PRG_STAT_CD_5102);
		}
		else
		{
			// 進捗ステータス:5101
			paramBean[0].sendMessageString(KKW03201SFConst.PRG_STAT, X31CWebConst.DATABEAN_SET_VALUE,
					JKKCommonConst.PRG_STAT_CD_5101);
		}

		// 運用年月日
		paramBean[0].sendMessageString(KKW03201SFConst.UNYO_YMD, X31CWebConst.DATABEAN_SET_VALUE, 
				JCCWebCommon.getOpeDate(this, null));
		
		// 運用年月日時分秒
		paramBean[0].sendMessageString(KKW03201SFConst.UNYO_DTM, X31CWebConst.DATABEAN_SET_VALUE, 
				JCCWebCommon.getOpeDate(this, null) + "000000000");
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

	}
	
	// OM-2015-0000564 20151204 ADD START
	/**
	 * エラーメッセージを設定します。
	 * <br>
	 * @param outputMap サービス実行結果
	 * @return エラーが存在する場合はtrue、存在しない場合はfalse
	 */
	@SuppressWarnings("unchecked")
	private boolean setErrorMessageInfo(HashMap<String, Object> outputMap)
	{
		boolean isError = false;

		// オーダ発行条件チェック
		HashMap<String, Object> kksv010117scMap = (HashMap<String, Object>)outputMap.get("KKSV010117SC");
		if (null != kksv010117scMap)
		{
			// エラーの場合
			if ("1".equals(kksv010117scMap.get("chk_kbn")))
			{
				// オーダが処理された後の操作を促すメッセージを表示
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBE020_KW);
				isError = true;
			}
		}

		return isError;
	}
	// OM-2015-0000564 20151204 ADD END
}
