/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：契約管理システム
*   モジュール名    ：０５０番号発番変更
*   ソースファイル名：KKA16401SFLogic.java
*   作成者          ：FJ
*   日付            ：2011年07月19日
*＜機能概要＞
*   ０５０番号発番変更部品です。
*   母体ソースコード：KKW03204SFLogic.java
*＜修正履歴＞
*	バージョン	修正日			修正者		修正内容
*	v1.00.00	2011/07/21		FJ）小笹	新規作成
*	v4.00.00	2013/03/04		FJ）江藤	【IT1-2013-0000328】照査前の場合、申込画面入力支援ワークススキーマに登録する
*   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/02/23		FJ) 江藤	【OM-2016-0000002】050OPのキャンセル時にSOD発行されない 
*   v23.02.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.KKA16401SF;

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.constant.JPCOnlineMessageConstant;
import eo.common.util.JKKStringUtil;
import eo.common.util.JPCDateChecker;
import eo.common.util.JPCUtilCommon;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.KKA16401SF.KKW03204SFConst;
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.KKSV0135_KKSV0135OPDBMapper;
import eo.web.webview.mapping.KKSV0136_KKSV0136OPDBMapper;
import eo.web.webview.mapping.KKSV0162_KKSV0162OPDBMapper;
import eo.web.webview.mapping.KKSV0163_KKSV0163OPDBMapper;
import eo.web.webview.mapping.KKSV0463_KKSV0463OPDBMapper;
import eo.web.webview.mapping.KKSV0551_KKSV0551OPDBMapper;
import eo.web.webview.mapping.KKSV0820_KKSV0820OPDBMapper;

/**
 * ０５０番号発番の解約または回復、予約取消を行います。<p>
 * オプションサービス契約一覧画面より遷移します。<p>
 * <BR>
 * @author FJ
 */
@SuppressWarnings("serial")
public class KKA16401SFLogic extends JCCWebBusinessLogic
{
	/**
	 * 申込種別コード（オプション申込）
	 */
	public static final String MSKM_SBT_CD_OPMK = "00026";
	
	/**
	 * サービス解約理由コード（通常解約）
	 */
	public static final String SVC_DLRE_CD_TUJYO = "01";
	
	/**
	 * エイジング種別コード（電話）
	 */
	public static final String AGING_SBT_CD_TEL = "001";
	
	/**
	 * 進捗ステータス（解約・回復・解約予約取消）→すぺて、"オプション設定完了"
	 */
	public static final String PRG_STAT_CD = "5102";
	
	/**
	 * 異動区分（解約・回復・解約予約取消）→すぺて、"オプション設定"
	 */
	public static final String IDO_DIV_CD = "0031";
	
	/**
	 * 解約種類（予約解約）
	 */
	public static final String DSL_RSV = "1";

	/**
	 * 解約種類（即日解約）
	 */
	public static final String DSL_SOKU = "2";

    //TAI-2012-0000081 2012/09/28 ADD START
    /**
     * オプションサービスコード（050）
     */
    public static final String OP_SVC_CD_050 = "B029";
    //TAI-2012-0000081 2012/09/28 ADD END
    
	/**
	 * メッセージエリア
	 */
	private static final  String[] MSGSTRING = {
			"050番号発番の解約",
			"050番号発番の回復",
			"050番号発番の予約取消"
	};
	
	/**
	 * APサーバに依頼する業務データを格納したマップオブジェクト
	 */
	private HashMap<String, Object> inputMap = null;
	
	/**
	 * APサーバの処理結果業務データを受け取るマップオブジェクト
	 */
	private HashMap<String, Object> outputMap = null;

	/**
	 * 処理区分
	 */
	private String trans_div = "";
	
// 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 = "KKIFE289";
	
	//ワンストップ用ワーニング保持リスト
	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_ENDYMD = "svc_endymd";
	
	/** 受信データ.電話番号 */
	private static final String TELNO = "telno";
	
	/** 処理区分(04：解約)固定値 */
	private static final String transDiv04 = "04";
	
	/** サービス契約コード */
	private static String svcCd = null;
	
	/** 電話番号一致フラグ */
	private String hnTellNoflg = JKKCommonConst.UMU_1;
	
	/** 契約状態チェックフラグ */
	private String hnSvcKeiStaflg = JKKCommonConst.UMU_0;
	
	/** サービス契約ステータス判定フラグ */
	private String hmSvcKeiNo = JKKCommonConst.UMU_0;

	/** オプション存在一致フラグ */
	private String hnopkeinm = JKKCommonConst.UMU_1;
	
	/** オプション存在一致フラグ */
	private String hnopEndRsvYMD = JKKCommonConst.UMU_1;
	
	/** オプション存在一致フラグ */
	private String hmFutureDate = 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();
				
				//ワンストップ独自関連チェック
				if (!knrnChkForOneStop())
				{
					//エラー発生の為処理終了
					return true;
				}
				
				///////////////////////////////////////////
				//050番号発番変更解約 初期表示処理
				///////////////////////////////////////////
				this.actionInit();
				
				// メッセージチェック
				if (!JKKOneStopApiCommonUtil.msgChk(this, warMsgMap, tkckErrMsgMap, errMsgMap, warnList, funcCode, IF_ID))
				{
					// エラー発生の為処理終了
					return true;
				}
				
				// DataBean上書き処理
				this.overwriteDataBean();
				
				////////////////////////////////////////////
				//変更画面「更新確認」ボタン押下
				////////////////////////////////////////////
				this.actionUpd_cfm();
				
				//メッセージチェック
				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("EKB0690-NW", new String[]{"利用終了日", "過去"}), new String[]{"E5010", ""});		// 過去日
// 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("EKK0351C240,1100,svc_endymd,EB", new String[]{"E5009", ""});		// 未来日（運用日＋60日）
	}
// 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_ENDYMD;
		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()
	{
		//サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcBean = super.getServiceFormBean();
		X31SDataBeanAccessArray custKeiHktgiListMSKM =  svcBean.getDataBeanArray(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST);
		X31SDataBeanAccess custKeiHktgiInfMSKM = custKeiHktgiListMSKM.getDataBean(0);
		// 運用日付
		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("KKSV004202SC"))
		{
			parentTelMap = (HashMap)kksv0042OutputMap.get("KKSV004202SC");
		}
		
		if(parentTelMap.containsKey("EKK0081B010CBSMsg1List"))
		{
			ArrayList childSvcKeiList = null;
			childSvcKeiList = (ArrayList)parentTelMap.get("EKK0081B010CBSMsg1List");
			
			HashMap childSvcKeiListMap = (HashMap)childSvcKeiList.get(0);
			String svcKeiStat = (String)childSvcKeiListMap.get("svc_kei_stat");
			if (JKKCommonConst.SVC_KEI_STAT_210.equals(svcKeiStat)){
				// 休止中の場合、未来日チェックのフラグを立てる
				hmFutureDate = JKKCommonConst.UMU_1;
			}else if((JKKCommonConst.SVC_KEI_STAT_010.equals(svcKeiStat)) || 
							(JKKCommonConst.SVC_KEI_STAT_020.equals(svcKeiStat)) ||
								(JKKCommonConst.SVC_KEI_STAT_910.equals(svcKeiStat)) ||
									(JKKCommonConst.SVC_KEI_STAT_920.equals(svcKeiStat))){
				// 解約オーダー投入不可エラー
				hnSvcKeiStaflg = JKKCommonConst.UMU_1;
				return;
			}
		}
		
		// サービス契約番号に紐付く電話番号取得
		if(kksv0042OutputMap.containsKey("KKSV004207SC"))
		{
			parentTelMap = (HashMap)kksv0042OutputMap.get("KKSV004207SC");
		}
		
		if(parentTelMap.containsKey("EKK0191B001CBSMsg1List"))
		{
			ArrayList childTelList = null;
			childTelList = (ArrayList)parentTelMap.get("EKK0191B001CBSMsg1List");
			// OM-2016-0000839 2016/03/29 ADD START
			String crt_svc_kei_ucwk_stat = null;
			// OM-2016-0000839 2016/03/29 ADD END
			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((KKW03204SFConst.OP_SVC_CD_050).equals(childMap.get("op_svc_cd")))
				{
					// 引継ぎ情報の退避
					opSvcKeiNo = (String)childMap.get("op_svc_kei_no");			// オプションサービス契約.オプションサービス契約番号
					String opMskmDtlNo = (String)childMap.get("mskm_dtl_no");	// オプションサービス契約.申込明細番号
					String opMskmNo = (String)childMap.get("mskm_no");			// オプションサービス契約.申込番号
					String opIdoRsvFlg = (String)childMap.get("ido_rsv_flg");	// オプションサービス契約.異動予約存在フラグ
					// 申込明細番号
					custKeiHktgiInfMSKM.sendMessageString(KKW03204SFConst.MSKM_DTL_NO_01, X31CWebConst.DATABEAN_SET_VALUE, opMskmDtlNo);
					// 申込番号
					custKeiHktgiInfMSKM.sendMessageString(KKW03204SFConst.MSKM_NO_01, X31CWebConst.DATABEAN_SET_VALUE, opMskmNo);
					
					// オプションサービス契約ステータス取得
					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_0;
						if (!(opIdoRsvFlg.equals("1")))
						{
							// 予約なし（異動予約存在なし）チェックフラグ
							hnopEndRsvYMD = JKKCommonConst.UMU_0;
							break;
						}
					}
				}
			}
		}
		// チェックフラグがどれか１つでも立ってる時、処理を終了する
		if (!((JKKCommonConst.UMU_0.equals(hnopkeinm)) &&
				(JKKCommonConst.UMU_0.equals(hnopEndRsvYMD)))){
			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);
		// 処理区分 04：解約(固定値)
		inMap.put(JKKCommonConst.HKTGI_TRAN_DIV, transDiv04);
		
		hktgList.add(inMap);
		paraMap.put(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST, hktgList);
		
		JCCWebCommon.setScreenInfo(this, "KKA16401", 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
	/**
	 * ワンストップ独自関連チェック
	 * @return boolean
	 * @throws Exception
	 */
	
	public boolean knrnChkForOneStop() throws Exception
	{
		// 契約状態チェック
		if (JKKCommonConst.UMU_1.equals(hnSvcKeiStaflg))
		{
			JKKOneStopApiCommonUtil.setReturnXml(this, "E5012", warnList, funcCode, IF_ID);
			return false;
		}
		
		// 電話番号存在チェック
		if (JKKCommonConst.UMU_1.equals(hnTellNoflg))
		{
			JKKOneStopApiCommonUtil.setReturnXml(this, "E5013", warnList, funcCode, IF_ID);
			return false;
		}
		
		// サービス契約内訳チェック
		if (JKKCommonConst.UMU_1.equals(hmSvcKeiNo))
		{
			JKKOneStopApiCommonUtil.setReturnXml(this, "E5014", warnList, funcCode, IF_ID);
			return false;
		}
		
		// 050ナンバープラスオプション存在チェック
		if (JKKCommonConst.UMU_1.equals(hnopkeinm))
		{
			JKKOneStopApiCommonUtil.setReturnXml(this, "E5015", warnList, funcCode, IF_ID);
			return false;
		}
		
		// 予約存在チェック
		if (JKKCommonConst.UMU_1.equals(hnopEndRsvYMD))
		{
			JKKOneStopApiCommonUtil.setReturnXml(this, "E5011", warnList, funcCode, IF_ID);
			return false;
		}
		
		// 運用日付取得
		String opeDate = JCCWebCommon.getOpeDate(this, null);
		
		// 利用開始日取得
		String ymd = (String)requestMap.get(SVC_ENDYMD);
		// 未来日チェックフラグ"有"時未来日チェックを行う
		if (JKKCommonConst.UMU_1.equals(hmFutureDate))
		{
			// 休止中時未来日での登録エラー
			if (JPCDateChecker.isFutureDate(ymd, opeDate, "0"))
			{
				JKKOneStopApiCommonUtil.setReturnXml(this, "E5008", warnList, funcCode, IF_ID);
				return false;
			}
		}
		if (JPCDateChecker.isPastDate(ymd, opeDate, "0"))
		{
			JKKOneStopApiCommonUtil.setReturnXml(this, "E5010", 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  commoninfoBean = super.getCommonInfoBean();

			// サービスフォームBean
			X31SDataBeanAccess bean = super.getServiceFormBean();
			X31SDataBeanAccess[] paramBean = {bean};
			
			// DataBean設定
			// サービス終了年月日
			String useEndYMD = (String)requestMap.get(SVC_ENDYMD);
			bean.sendMessageString(KKW03204SFConst.USE_ENDYMD_YEAR, X31CWebConst.DATABEAN_SET_VALUE, (useEndYMD.substring(0, 4)));	// 利用終了日（年
			bean.sendMessageString(KKW03204SFConst.USE_ENDYMD_MON, X31CWebConst.DATABEAN_SET_VALUE, (useEndYMD).substring(4, 6));	// 利用終了日（月
			bean.sendMessageString(KKW03204SFConst.USE_ENDYMD_DAY, X31CWebConst.DATABEAN_SET_VALUE, (useEndYMD).substring(6, 8));	// 利用終了日（日
			
		}
//ANK-2694-00-00 2015/10/08 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

	/**
	 * 初期表示処理<br>
	 * <br>
	 * １．マッピングのために、DataBeanに遷移元情報を設定します。<br>
	 * ２．050番号発番変更初期表示サービスの呼び出しを行います。<br>
	 * ３．画面表示用にDataBeanに格納します。<br>
	 * <br>
	 *
	 * @return 正常／異常
	 * @throws Exception 
	 */
	public boolean actionInit() throws Exception 
	{
		boolean result = true;
		KKSV0135_KKSV0135OPDBMapper mapper = null;	// DataBean-BPマッピングクラスオブジェクト
		// メッセージ表示用
		String[] msgInfo = new String[1];


		// 画面情報を取得し、サービスフォームBeanに設定。
		JCCWebCommon.getScreenInfo(this);

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		//TAI-2012-0000081 2012/09/29 ADD START
		// オプションサービスコード
		bean.sendMessageString(KKW03204SFConst.OP_SVC_CD, X31CWebConst.DATABEAN_SET_VALUE, OP_SVC_CD_050);
		//TAI-2012-0000081 2012/09/29 ADD END
		X31SDataBeanAccess[] paramBean = {bean};
		
		// サービス実行のための初期化
		setDataInit();

		// 画面項目引継リスト.処理区分による、DataBeanセット処理の振分け
		if(JKKCommonConst.OP_TRAN_DIV_DSL.equals(trans_div))
		{
			// 処理区分"解約"
			setDataInit_Kaiyaku();
		}
		
		// 処理区分による、メッセージ表示処理の振分け
		if(JKKCommonConst.OP_TRAN_DIV_KAIHK.equals(trans_div)) 
		{
			// "回復"
			msgInfo[0] = MSGSTRING[1];
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0370__I, msgInfo);
		}
		else if(JKKCommonConst.OP_TRAN_DIV_RSV_CL.equals(trans_div))
		{
			// "予約取消"
			msgInfo[0] = MSGSTRING[2];
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0370__I, msgInfo);
		}
		
		// 上りマッピング処理(サービス項目-DataBean項目マッピング)
		// 機能コード：一意照会（カレント）
		mapper = new KKSV0135_KKSV0135OPDBMapper();
		inputMap = new HashMap<String, Object>();
		mapper.setKKSV013501SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		mapper.setKKSV013502SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		mapper.setKKSV013503SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		mapper.setKKSV013504SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		//TAI-2012-0000081 2012/09/27 ADD START
		mapper.setKKSV013505SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);	//オプションサービス一意照会
		//TAI-2012-0000081 2012/09/27 ADD END
		// IT2-2013-0000223 2013/03/06 ADD START
		mapper.setKKSV013506SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		// IT2-2013-0000223 2013/03/06 ADD END
		
		// 050番号発番変更初期表示サービスの実行
		X31CMessageResult msgResult = doService("KKSV0135", "KKSV0135OP");
		
		if(msgResult == null)
		{
			// 取得データの下りマッピング処理
			mapper.getKKSV013501SC(bean, outputMap);
			mapper.getKKSV013502SC(bean, outputMap);
			mapper.getKKSV013503SC(bean, outputMap);
			mapper.getKKSV013504SC(paramBean, outputMap);
			//TAI-2012-0000081 2012/09/27 ADD START
			mapper.getKKSV013505SC(bean, outputMap);	//オプションサービス一意照会
			//TAI-2012-0000081 2012/09/27 ADD END
		}
		
		if(JKKCommonConst.OP_TRAN_DIV_DSL.equals(trans_div))
		{
			// 表示用利用開始日
			bean.sendMessageString(KKW03204SFConst.DSP_STAYMD, X31CWebConst.DATABEAN_SET_VALUE,
					bean.sendMessageString(KKW03204SFConst.USE_STAYMD, X31CWebConst.DATABEAN_GET_VALUE));
		}
		else
		{
			
			// 表示用利用開始日
			bean.sendMessageString(KKW03204SFConst.DSP_STAYMD, X31CWebConst.DATABEAN_SET_VALUE,
					bean.sendMessageString(KKW03204SFConst.USE_STAYMD, X31CWebConst.DATABEAN_GET_VALUE));
			
			// IT2-2013-0000223 2013/03/06 MOD START
			// 表示用利用終了日
			//bean.sendMessageString(KKW03204SFConst.DSP_ENDYMD, X31CWebConst.DATABEAN_SET_VALUE,
					//bean.sendMessageString(KKW03204SFConst.USE_ENDYMD, X31CWebConst.DATABEAN_GET_VALUE));
				
			String useEndRsvYmd = "";
			
			HashMap<String, Object> kksv013506SC = (HashMap<String, Object>)outputMap.get("KKSV013506SC");
			
			if (kksv013506SC != null  && kksv013506SC.containsKey("EKK1681B001CBSMsg1List")){
				
				ArrayList eKK1681B001CBSMsg1List = (ArrayList)kksv013506SC.get("EKK1681B001CBSMsg1List");
				if(eKK1681B001CBSMsg1List != null && eKK1681B001CBSMsg1List.size() > 0){
					HashMap<String, Object> eKK1681B001Map = (HashMap<String, Object>)eKK1681B001CBSMsg1List.get( eKK1681B001CBSMsg1List.size() - 1);
					useEndRsvYmd = String.valueOf(eKK1681B001Map.get("rsv_aply_ymd"));
				}
				
				if(useEndRsvYmd == null || "".equals(useEndRsvYmd)){
					bean.sendMessageString(KKW03204SFConst.DSP_ENDYMD, X31CWebConst.DATABEAN_SET_VALUE,
							bean.sendMessageString(KKW03204SFConst.USE_ENDYMD, X31CWebConst.DATABEAN_GET_VALUE));
				
				}else{
					bean.sendMessageString(KKW03204SFConst.DSP_ENDYMD, X31CWebConst.DATABEAN_SET_VALUE, useEndRsvYmd);
				}
			}
			
			// IT2-2013-0000223 2013/03/06 MOD END
		}
		
		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return result;
	}
	
	/**
	 * 変更画面「更新確認」ボタン押下
	 * １．DataBean設定処理
	 * ２．サービス呼出処理
	 * ３．遷移先画面設定
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception 
	 */
	public boolean actionUpd_cfm() throws Exception
	{
		boolean result = true;
		// メッセージ表示用
		String[] msgInfo = new String[1];
		
		// 共有フォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();

		// サービスフォームBean
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		
		// サービス呼び出し戻り値用
		X31CMessageResult msgResult = null;
		
		// DataBean設定
		// 利用終了日
		String usd_endymd = bean.sendMessageString(KKW03204SFConst.USE_ENDYMD_YEAR, X31CWebConst.DATABEAN_GET_VALUE) +
							bean.sendMessageString(KKW03204SFConst.USE_ENDYMD_MON, X31CWebConst.DATABEAN_GET_VALUE) +
							bean.sendMessageString(KKW03204SFConst.USE_ENDYMD_DAY, X31CWebConst.DATABEAN_GET_VALUE);
		bean.sendMessageString(KKW03204SFConst.USE_ENDYMD, X31CWebConst.DATABEAN_SET_VALUE, usd_endymd);
		// 表示用利用終了日
		bean.sendMessageString(KKW03204SFConst.DSP_ENDYMD, X31CWebConst.DATABEAN_SET_VALUE, usd_endymd);
		
		// DataBeanへの値設定
		setDataDsl();
		
		// 上りマッピング処理(サービス項目-DataBean項目マッピング)
		// 機能コード：チェックのみ
		setMappedKKSV0136(JPCModelConstant.FUNC_CD_2);
		
		// サービス呼出処理
		msgResult = doService("KKSV0136", "KKSV0136OP");
		
		// OM-2015-0000564 20151204 ADD START
		// エラーメッセージを設定
		if (setErrorMessageInfo(outputMap, "KKSV013601SC"))
		{
			return false;
		}
		// OM-2015-0000564 20151204 ADD END
		
		storeDataBeanDslsrv(paramBean, outputMap);
		
		String strMsg = bean.sendMessageString(KKW03204SFConst.ERR_MSG_ID, X31CWebConst.DATABEAN_GET_VALUE);
		
		if(strMsg == null || "".equals(strMsg))
		{
			// 遷移先の画面IDを共有フォームBeanの項目に設定する
			commoninfoBean.sendMessageString(
					CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
					JKKScreenConst.SCREEN_ID_KKW03205);
			commoninfoBean.sendMessageString(
					CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
					JKKScreenConst.SCREEN_NAME_KKW03205);

			msgInfo[0] = MSGSTRING[0];
			
			// 変更確認画面メッセージ出力
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0370__I, msgInfo);
		}
		else
		{
			// メッセージの設定
			String[] str = getMsgRep(trans_div, strMsg);
			if (str == null) 
			{
				// メッセージ出力(IDのみ)
				JCCWebCommon.setMessageInfo(this, strMsg);
			}
			else
			{
				// メッセージ出力(置換文字あり)
				JCCWebCommon.setMessageInfo(this, strMsg, str);
			}
		}

		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return result;
	}

	/**
	 * 確定処理<br>
	 * <br>
	 * １．サービスの呼び出しを行います。<br>
	 * 　　<li>０５０番号発番変更確認サービス
	 * ２．変更完了画面へ遷移します。<br>
	 * <br>
	 *
	 * @return 正常／異常
	 * @throws Exception
	 */
	public boolean actionFix() throws Exception
	{
		boolean result = true;
		
		// 共有フォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		
		// サービスフォームBean
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		
		// 画面表示用メッセージ
		String[] msgInfo = new String[1];
		
		// 画面項目引継リスト.処理区分による、DataBeanセット処理の振分け
		if(JKKCommonConst.OP_TRAN_DIV_DSL.equals(trans_div))
		{
			// 処理区分"解約"
			// DataBeanへの値設定
			setDataDsl();
			// 上りマッピング処理(サービス項目-DataBean項目マッピング)
			// 機能コード：チェック＆登録
			setMappedKKSV0136(JPCModelConstant.FUNC_CD_1);
			// サービス呼出処理
			doService("KKSV0136", "KKSV0136OP");
			// 結果取得
			storeDataBeanDslsrv(paramBean, outputMap);
			
			// 正常時表示メッセージ
			msgInfo[0] = MSGSTRING[0];
		}
		else if(JKKCommonConst.OP_TRAN_DIV_KAIHK.equals(trans_div))
		{
			// 処理区分"回復"
			// DataBeanへの値設定
			setDataKaihk();
			// 上りマッピング処理(サービス項目-DataBean項目マッピング)
			// 機能コード：チェック＆登録
			setMappedKKSV0162(JPCModelConstant.FUNC_CD_1);
			// サービス呼出処理
			doService("KKSV0162", "KKSV0162OP");
			// OM-2015-0000564 20151204 ADD START
			// エラーメッセージを設定
			if (setErrorMessageInfo(outputMap,"KKSV016201SC"))
			{
				return false;
			}
			// OM-2015-0000564 20151204 ADD END
			// 結果取得
			storeDataBeanKaihksrv(paramBean, outputMap);
			// 正常時表示メッセージ
			msgInfo[0] = MSGSTRING[1];

		}
		else if(JKKCommonConst.OP_TRAN_DIV_RSV_CL.equals(trans_div))
		{
			// 処理区分"予約取消"
			// DataBeanへの値設定
			setDataDslStp();
			// 上りマッピング処理(サービス項目-DataBean項目マッピング)
			// 機能コード：チェック＆登録
			setMappedKKSV0163(JPCModelConstant.FUNC_CD_1);
			// サービス呼出処理
			doService("KKSV0163", "KKSV0163OP");
			// 結果取得
			storeDataBeanRsvclsrv(paramBean, outputMap);
			// 正常時表示メッセージ
			msgInfo[0] = MSGSTRING[2];
		}
		
		String strMsg = bean.sendMessageString(KKW03204SFConst.ERR_MSG_ID, X31CWebConst.DATABEAN_GET_VALUE);
		
		if(strMsg == null || "".equals(strMsg))
		{
			// 遷移先の画面IDを共有フォームBeanの項目に設定する
			commoninfoBean.sendMessageString(
					CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
					JKKScreenConst.SCREEN_ID_KKW03206);
			commoninfoBean.sendMessageString(
					CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
					JKKScreenConst.SCREEN_NAME_KKW03206);

			// 画面に完了画面の文字列の表示
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4390__I, msgInfo);
		}
		else
		{
			// メッセージの設定
			String[] str = getMsgRep(trans_div, strMsg);
			if (str == null) 
			{
				// メッセージ出力(IDのみ)
				JCCWebCommon.setMessageInfo(this, strMsg);
			}
			else
			{
				// メッセージ出力(置換文字あり)
				JCCWebCommon.setMessageInfo(this, strMsg, str);
			}
		}
		
		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return result;
	}
	
	/**
	 * 修正処理<br>
	 * <br>
	 * １．050番号発番変更画面に戻ります。<br>
	 * <br>
	 *
	 * @return 正常／異常
	 * @throws Exception 
	 */
	public boolean actionShusei() throws Exception
	{
		boolean result = true;

		// 共有フォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		
		// 遷移先の画面IDを共有フォームBeanの項目に設定する
		commoninfoBean.sendMessageString(
				CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_ID_KKW03204);
		commoninfoBean.sendMessageString(
				CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_NAME_KKW03204);

		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return result;
	}

	/**
	 * 戻る処理<br>
	 * <br>
	 * １．呼び出し元画面に戻ります。<br>
	 * <br>
	 *
	 * @return 正常／異常
	 * @throws Exception 
	 */
	public boolean actionBack() throws Exception
	{
		boolean result = true;

		// 共有フォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
	
		// 遷移先の画面IDを取得し共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(
				CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JCCWebCommon.getScreenId(this));

		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return result;
	}

	/**
	 * 完了処理<br>
	 * <br>
	 * １．呼び出し元画面に戻ります。<br>
	 * <br>
	 *
	 * @return 正常／異常
	 * @throws Exception 
	 */
	public boolean actionFin() throws Exception
	{
		boolean result = true;

		// 共有フォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();

		// 遷移先の画面IDを取得し共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(
				CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JCCWebCommon.getScreenId(this));

		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return result;
	}

	/**
	 * クリア処理<br>
	 * <br>
	 * １．DataBean初期設定処理を呼び出します。<br>
	 * <br>
	 *
	 * @return 正常／異常
	 * @throws Exception 
	 */
	public boolean actionClear() throws Exception
	{
		boolean result = true;

		setDataInit_Kaiyaku();

		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return result;
	}
	
	/**
	 * サービス呼出処理<br>
	 * <br>
	 * 050番号発番変更サービスの呼び出しを行います。<br>
	 * <br>
	 * @param usecase_id ユースケースID
	 * @param operation_id オペレーションID
	 * @return APサーバでエラーが発生した場合は、エラーメッセージ情報オブジェクトが返却されます。<br>
	 * 正常終了時には、null値が返却されます。
	 * @throws Exception 
	 */
	private X31CMessageResult doService(String usecase_id, String operation_id) throws Exception
	{
		X31CMessageResult msgResult = null;		// 戻り値用
		HashMap<String, Object> paramMap = null;				// APサーバに依頼する情報を格納したマップオブジェクト

		try
		{
			// パラメタ設定
			paramMap = new HashMap<String, Object>();
			paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, usecase_id);
			paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, operation_id);

			// メッセージリストの初期化
			clearMessageResultList();

			// DataBeanをログ出力
			JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

			// サービスの呼び出し
			outputMap = new HashMap<String, Object>();
			msgResult = invokeService(paramMap, inputMap, outputMap);

			// DataBeanをログ出力
			JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		}
		finally
		{
			paramMap = null;
		}

		return msgResult;
	}
	
	/**
	 * 初期データセット処理<br>
	 * <br>
	 * <br>
	 *
	 * @return なし
	 * @throws Exception 
	 */
	private void setDataInit() throws Exception
	{
		String opeDate = JCCWebCommon.getOpeDate(this , null);		// 運用年月日
		//サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcBean = super.getServiceFormBean();
		
		// 顧客契約引継項目の受取
		//セッションデータ取得
		
		X31SDataBeanAccessArray custKeiHktgiList =  svcBean.getDataBeanArray(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST);
		X31SDataBeanAccess custKeiHktgiInf = custKeiHktgiList.getDataBean(0);

		trans_div = custKeiHktgiInf.sendMessageString(JKKCommonConst.HKTGI_TRAN_DIV, X31CWebConst.DATABEAN_GET_VALUE);
		String ido_div = custKeiHktgiInf.sendMessageString(JKKCommonConst.HKTGI_IDO_DIV, X31CWebConst.DATABEAN_GET_VALUE);
		String sys_id = custKeiHktgiInf.sendMessageString(JKKCommonConst.HKTGI_SYSID, X31CWebConst.DATABEAN_GET_VALUE);
		String svc_kei_no = custKeiHktgiInf.sendMessageString(JKKCommonConst.HKTGI_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);

		// 可変項目の場合(String[]のみ対応)	
		int length = (Integer)custKeiHktgiInf.sendMessage(JKKCommonConst.HKTGI_OP_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_COUNT);
		String[] obj = new String[length];
		for (int i = 0 ; i < length ; i++)
		{
			obj[i] = custKeiHktgiInf.sendMessageString(JKKCommonConst.HKTGI_OP_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE, i);
		}

		// オプションサービス契約番号
		String op_svc_kei_no = "";
		if(length > 0)
		{
			op_svc_kei_no = obj[0];
		}
		
		// 異動理由コードの設定
		X31SDataBeanAccessArray ido_rsn_list = svcBean.getDataBeanArray(KKW03204SFConst.IDO_RSN_LIST);

		// 異動理由コードの要素数を取得
		int cnt = (Integer)custKeiHktgiInf.sendMessage(KKW03204SFConst.IDO_RSN_CD_01, X31CWebConst.DATABEAN_GET_COUNT);
		
		// 異動理由コードの要素数分繰り返す
		for(int i = 0; i < cnt; i++)
		{
			X31SDataBeanAccess ido_rsn_bean = null;
			if(ido_rsn_list.getCount() - 1 >= i)
			{
				ido_rsn_bean = ido_rsn_list.getDataBean(i);
			}
			else
			{
				ido_rsn_bean = ido_rsn_list.addDataBean();
			}
			if (ido_rsn_bean == null) 
			{
				continue;
			}

			// 異動理由コードの取得
			String ido_rsn_cd = custKeiHktgiInf.sendMessageString(KKW03204SFConst.IDO_RSN_CD_01, X31CWebConst.DATABEAN_GET_VALUE, i);
			// UI残65_異動理由の要否について 2012/05/14 ariyoshi strat
			// 異動理由メモの取得
			String ido_rsn_memo = custKeiHktgiInf.sendMessageString(KKW03204SFConst.IDO_RSN_MEMO_01, X31CWebConst.DATABEAN_GET_VALUE);
			
			// 異動理由.異動理由コードの設定
			ido_rsn_bean.sendMessageString(KKW03204SFConst.IDO_RSN_CD_02, X31CWebConst.DATABEAN_SET_VALUE, ido_rsn_cd);
			// 異動理由.異動理由メモの設定
			ido_rsn_bean.sendMessageString(KKW03204SFConst.IDO_RSN_MEMO_02, X31CWebConst.DATABEAN_SET_VALUE, ido_rsn_memo);
			// UI残65_異動理由の要否について 2012/05/14 ariyoshi end
			
		}
		
		// 申込番号
		String mskm_no = custKeiHktgiInf.sendMessageString(KKW03204SFConst.MSKM_NO_01, X31CWebConst.DATABEAN_GET_VALUE);
		svcBean.sendMessageString(KKW03204SFConst.MSKM_NO, X31CWebConst.DATABEAN_SET_VALUE, mskm_no);
		
		// 申込明細番号
		String mskm_dtl_no = custKeiHktgiInf.sendMessageString(KKW03204SFConst.MSKM_DTL_NO_01, X31CWebConst.DATABEAN_GET_VALUE);
		svcBean.sendMessageString(KKW03204SFConst.MSKM_DTL_NO, X31CWebConst.DATABEAN_SET_VALUE, mskm_dtl_no);
		
		svcBean.sendMessageString(KKW03204SFConst.IDO_DIV, X31CWebConst.DATABEAN_SET_VALUE, ido_div);
		svcBean.sendMessageString(KKW03204SFConst.SYS_ID, X31CWebConst.DATABEAN_SET_VALUE, sys_id);
		svcBean.sendMessageString(KKW03204SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, svc_kei_no);
		svcBean.sendMessageString(KKW03204SFConst.OP_SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, op_svc_kei_no);
		
		// 画面で使用する運用年月日をサービスフォームBeanへ設定
		svcBean.sendMessageString(KKW03204SFConst.UNYO_YMD, X31CWebConst.DATABEAN_SET_VALUE, opeDate);
		// 運用年月日時分秒
		svcBean.sendMessageString(KKW03204SFConst.UNYO_DTM, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getSysDateTimeStamp());

		//TAI-2012-0000081 2012/09/29 ADD START
		// オプションサービスコード
		svcBean.sendMessageString(KKW03204SFConst.OP_SVC_CD, X31CWebConst.DATABEAN_SET_VALUE, OP_SVC_CD_050);
		//TAI-2012-0000081 2012/09/29 ADD END
		
		// 20130304 IT1-2013-0000328 ADD START
		// 電話番号順から判定 → 電話タブオプション情報制御コード
		String telno_jun = custKeiHktgiInf.sendMessageString(KKW03204SFConst.TELNO_JUN_02, X31CWebConst.DATABEAN_GET_VALUE);
		if ("1".equals(telno_jun)) {
			svcBean.sendMessageString(KKW03204SFConst.TEL_1_TAB_OP_IF_CTL_CD, X31CWebConst.DATABEAN_SET_VALUE, "1");
		} else if ("2".equals(telno_jun)){
			svcBean.sendMessageString(KKW03204SFConst.TEL_2_TAB_OP_IF_CTL_CD, X31CWebConst.DATABEAN_SET_VALUE, "1");
		}
		// 20130304 IT1-2013-0000328 ADD END
		
	}

	/**
	 * 初期データセット処理(解約)<br>
	 * <br>
	 * <br>
	 *
	 * @return なし
	 * @throws Exception 
	 */
	private void setDataInit_Kaiyaku() throws Exception
	{
		String opeDate = JCCWebCommon.getOpeDate(this , null);		// 運用年月日
		
		//サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcBean = super.getServiceFormBean();
		
		// 利用終了年、月、日の切り出し
		String strBuf = opeDate.substring(0, 4);
		svcBean.sendMessageString(KKW03204SFConst.USE_ENDYMD_YEAR, X31CWebConst.DATABEAN_SET_VALUE, strBuf);
		strBuf = opeDate.substring(4, 6);
		svcBean.sendMessageString(KKW03204SFConst.USE_ENDYMD_MON, X31CWebConst.DATABEAN_SET_VALUE, strBuf);
		strBuf = opeDate.substring(6, 8);
		svcBean.sendMessageString(KKW03204SFConst.USE_ENDYMD_DAY, X31CWebConst.DATABEAN_SET_VALUE, strBuf);
		
		// 解約画面への遷移ボタンを有効化
		svcBean.sendMessageBoolean(KKW03204SFConst.DSL_VIEW_ENABLE_FLG, X31CWebConst.DATABEAN_SET_VALUE, true);
	}
	
//	/**
//	 * 解約種類判定<br>
//	 * <br>
//	 * 解約種類の判定を行います。
//	 * <br>
//	 * @param opeDate 運用日付
//	 * @return 解約種類<br>
//	 * 　　　　　・予約解約<br>
//	 * 　　　　　・即日解約<br>
//	 * @throws Exception 
//	 */
//	private String getDsl_kind(String opeDate) throws Exception
//	{
//		// サービスフォームBeanのデータBeanアクセスクラスを取得。
//		X31SDataBeanAccess bean = super.getServiceFormBean();
//
//		// 利用終了日取得
//		String use_endymd_year = bean.sendMessageString(KKW03204SFConst.USE_ENDYMD_YEAR, X31CWebConst.DATABEAN_GET_VALUE);
//		String use_endymd_mon = bean.sendMessageString(KKW03204SFConst.USE_ENDYMD_MON, X31CWebConst.DATABEAN_GET_VALUE);
//		String use_endymd_day = bean.sendMessageString(KKW03204SFConst.USE_ENDYMD_DAY, X31CWebConst.DATABEAN_GET_VALUE);
//		String use_endymd = use_endymd_year + use_endymd_mon + use_endymd_day;
//
//		// 運用日＝利用終了日は即日解約
//		if (opeDate.equals(use_endymd))
//		{
//			return	DSL_SOKU;		// 即日解約
//		}
//		// それ以外は予約解約
//		else
//		{
//			return	DSL_RSV;		// 予約解約
//		}
//	}
	
	/**
	 * DataBean設定処理（解約処理）<br>
	 * <br>
	 * 画面DataBeanに必要な項目をセットします。<br>
	 * <br>
	 * @throws Exception 
	 */
	private void setDataDsl() throws Exception
	{
		String opeDate = JCCWebCommon.getOpeDate(this , null);		// 運用年月日
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		String usd_endymd = bean.sendMessageString(KKW03204SFConst.USE_ENDYMD, X31CWebConst.DATABEAN_GET_VALUE);
		
//		// 解約種類判定
//		String dsl_kind = getDsl_kind(opeDate);
//
//		// 解約種類
//		bean.sendMessageString(KKW03204SFConst.DSL_KIND,  X31CWebConst.DATABEAN_SET_VALUE, dsl_kind);
//		
//		// 即時解約
//		bean.sendMessageString(KKW03204SFConst.VAL_SOKU,  X31CWebConst.DATABEAN_SET_VALUE, DSL_SOKU);
		
		//サービス課金終了年月日
		// 共通CCで取得予定。暫定的に、利用終了年月日をセット
		bean.sendMessageString(KKW03204SFConst.SVC_CHRG_ENDYMD, X31CWebConst.DATABEAN_SET_VALUE, usd_endymd);
		
		//▼▼エイジングリスト化▼▼
		// エイジング情報リストの設定
		X31SDataBeanAccess aging_info_bean = null;
		X31SDataBeanAccessArray aging_info_list =  bean.getDataBeanArray(KKW03204SFConst.AGING_INFO_LIST);
		if(aging_info_list.getCount() == 0 || aging_info_list == null){
			aging_info_bean = aging_info_list.addDataBean();
			
			// エイジング種別コードの設定
			aging_info_bean.sendMessageString(KKW03204SFConst.AGING_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, AGING_SBT_CD_TEL);
	
			// エイジング対象値
			String aging_sbt_cd = bean.sendMessageString(KKW03204SFConst.HRADSI_050_NO, X31CWebConst.DATABEAN_GET_VALUE);
			// エイジング対象値の設定
			aging_info_bean.sendMessageString(KKW03204SFConst.AGING_TG_VALUE, X31CWebConst.DATABEAN_SET_VALUE, aging_sbt_cd);
		}
		//▲▲エイジングリスト化▲▲
		
	}
	
	/**
	 * 解約サービス結果設定処理
	 * @param paramBean DataBeanアクセス配列
	 * @param outputMap 出力データ
	 * @return なし
	 */
	private void storeDataBeanDslsrv(X31SDataBeanAccess[] paramBean,
			HashMap<String, Object> outputMap)
	{
		// 下りデータマッピング
		KKSV0136_KKSV0136OPDBMapper mapper = new KKSV0136_KKSV0136OPDBMapper();
		mapper.getOpsvckeiDslCC(paramBean, outputMap);
	}
	
	/**
	 * DataBean設定処理（回復処理）<br>
	 * <br>
	 * 画面DataBeanに必要な項目をセットします。<br>
	 * <br>
	 * @throws Exception 
	 */
	private void setDataKaihk() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 運用日付の取得
		String opeDate = JCCWebCommon.getOpeDate(this , null);

		// 回復年月日 ← 運用日付
		bean.sendMessageString(KKW03204SFConst.KAIHK_YMD, X31CWebConst.DATABEAN_SET_VALUE, opeDate);
		
		//▼▼エイジングリスト化▼▼
		// エイジング情報リストの設定
		X31SDataBeanAccess aging_info_bean = null;
		X31SDataBeanAccessArray aging_info_list =  bean.getDataBeanArray(KKW03204SFConst.AGING_INFO_LIST);
		if(aging_info_list.getCount() == 0 || aging_info_list == null){
			aging_info_bean = aging_info_list.addDataBean();
			
			// エイジング種別コードの設定
			aging_info_bean.sendMessageString(KKW03204SFConst.AGING_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, AGING_SBT_CD_TEL);
	
			// エイジング対象値
			String aging_sbt_cd = bean.sendMessageString(KKW03204SFConst.HRADSI_050_NO, X31CWebConst.DATABEAN_GET_VALUE);
			// エイジング対象値の設定
			aging_info_bean.sendMessageString(KKW03204SFConst.AGING_TG_VALUE, X31CWebConst.DATABEAN_SET_VALUE, aging_sbt_cd);
		}
		//▲▲エイジングリスト化▲▲
	}

	/**
	 * 回復サービス結果設定処理
	 * @param paramBean DataBeanアクセス配列
	 * @param outputMap 出力データ
	 * @return なし
	 */
	private void storeDataBeanKaihksrv(X31SDataBeanAccess[] paramBean,
			HashMap<String, Object> outputMap)
	{
		// 下りデータマッピング
		KKSV0162_KKSV0162OPDBMapper mapper = new KKSV0162_KKSV0162OPDBMapper();
		
		mapper.getOpsvckeiKaihkCC(paramBean, outputMap);
		
	}
	
	/**
	 * DataBean設定処理（予約取消処理）<br>
	 * <br>
	 * 画面DataBeanに必要な項目をセットします。<br>
	 * <br>
	 */
	private void setDataDslStp()
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		//▼▼エイジングリスト化▼▼
		// エイジング情報リストの設定
		X31SDataBeanAccess aging_info_bean = null;
		X31SDataBeanAccessArray aging_info_list =  bean.getDataBeanArray(KKW03204SFConst.AGING_INFO_LIST);
		if(aging_info_list.getCount() == 0 || aging_info_list == null){
			aging_info_bean = aging_info_list.addDataBean();
			
			// エイジング種別コードの設定
			aging_info_bean.sendMessageString(KKW03204SFConst.AGING_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, AGING_SBT_CD_TEL);
	
			// エイジング対象値
			String aging_sbt_cd = bean.sendMessageString(KKW03204SFConst.HRADSI_050_NO, X31CWebConst.DATABEAN_GET_VALUE);
			// エイジング対象値の設定
			aging_info_bean.sendMessageString(KKW03204SFConst.AGING_TG_VALUE, X31CWebConst.DATABEAN_SET_VALUE, aging_sbt_cd);
		}
		//▲▲エイジングリスト化▲▲
	}
	
	/**
	 * 予約取消サービス結果設定処理
	 * @param paramBean DataBeanアクセス配列
	 * @param outputMap 出力データ
	 * @return なし
	 */
	private void storeDataBeanRsvclsrv(X31SDataBeanAccess[] paramBean,
			HashMap<String, Object> outputMap)
	{
		// 下りデータマッピング
		KKSV0163_KKSV0163OPDBMapper mapper = new KKSV0163_KKSV0163OPDBMapper();
		
//		mapper.getOpSvcKeiCnslCC(paramBean, outputMap);
	}
	
	/**
	 * 050番号発番解約確認サービスのマッピング<BR>
	 * <br>
	 * 050番号発番解約確認サービスのマッピングを行います。
	 * 
	 * @param func_cd 機能コード
	 */
	private void setMappedKKSV0136(String func_cd)
	{
		KKSV0136_KKSV0136OPDBMapper	mapper136 = null;
		
		mapper136 = new KKSV0136_KKSV0136OPDBMapper();
		inputMap = new HashMap<String, Object>();
		
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};

		// 上りマッピング
		mapper136.setKKSV0136WORK(paramBean, inputMap, func_cd);
		mapper136.setOpsvckeiDslCC(paramBean, inputMap, func_cd);
		mapper136.setJKKHakkoSODCC(paramBean, inputMap, func_cd);
		
		// OM-2015-0000564 20151204 ADD START
		mapper136.setKKSV013601SC(paramBean, inputMap, func_cd);
		// OM-2015-0000564 20151204 ADD END
		// サービス課金終了日算出
		// 共通サービスIFが未実装のため、保留
//		mapper136.setKKSV013601CC(paramBean, inputMap, "1");
	}

	/**
	 * 050番号発番変更回復サービスのマッピング<BR>
	 * <br>
	 * 050番号発番変更回復サービスのマッピングを行います。
	 * 
	 * @param func_cd 機能コード
	 */
	private void setMappedKKSV0162(String func_cd)
	{
		KKSV0162_KKSV0162OPDBMapper	mapper162 = null;
		
		mapper162 = new KKSV0162_KKSV0162OPDBMapper();
		inputMap = new HashMap<String, Object>();
		
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};

		// 上りマッピング
		mapper162.setOpsvckeiKaihkCC(paramBean, inputMap, func_cd);
		mapper162.setJKKHakkoSODCC(paramBean, inputMap, func_cd);
		mapper162.setKKSV0162WORK(paramBean, inputMap, func_cd);
		
		// OM-2015-0000564 20151204 ADD START
		mapper162.setKKSV016201SC(paramBean, inputMap, func_cd);
		// OM-2015-0000564 20151204 ADD END
	}
	
	/**
	 * 050番号発番変更キャンセルサービスのマッピング<BR>
	 * <br>
	 * 050番号発番変更キャンセルサービスのマッピングを行います。
	 * 
	 * @param func_cd 機能コード
	 */
	private void setMappedKKSV0163(String func_cd)
	{
		KKSV0163_KKSV0163OPDBMapper	mapper163 = null;
		
		mapper163 = new KKSV0163_KKSV0163OPDBMapper();
		inputMap = new HashMap<String, Object>();
		
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		
		mapper163.setOpSvcKeiCnslCC(paramBean, inputMap, func_cd);
		// OM-2016-0000002 2016/02/23 ADD START
		mapper163.setKKSV0163WORK(paramBean, inputMap, func_cd);
		mapper163.setJKKHakkoSODCC(paramBean, inputMap, func_cd);
		// OM-2016-0000002 2016/02/23 ADD END
		// 20130304 IT1-2013-0000328 ADD START
		mapper163.setKKSV016302CC(paramBean, inputMap, func_cd);		//申込画面入力支援ワーク情報更新CC
		// 20130304 IT1-2013-0000328 ADD END

	}
	
	/**
	 * 置換メッセージ取得処理<br>
	 * <br>
	 * 返却メッセージＩＤに対応する置換文字列を取得する。<br>
	 * <br>
	 * @param trandiv 処理区分
	 * @param rtn_msg_id 返却メッセージＩＤ
	 * @return 置換用メッセージ
	 */
	private String[] getMsgRep(String trandiv, String rtn_msg_id)
	{
		
		// 処理区分が解約の場合
		if(JKKCommonConst.OP_TRAN_DIV_DSL.equals(trandiv))
		{
			// 休止中未来日付（EKB5440-JW）
			if (JPCOnlineMessageConstant.EKB5440_JW.equals(rtn_msg_id)) 
			{
				String[] str = {"休止中", "未来日指定の解約は"};
				return str;
			}
			
			// 未来日（EKB0270-NW）
			if (JPCOnlineMessageConstant.EKB0270_NW.equals(rtn_msg_id)) 
			{
				String[] str = {"利用終了日", "運用日+60日", "日付"};
				return str;
			}
			
			// 過去日(EKB0690-NW)
			if (JPCOnlineMessageConstant.EKB0690_NW.equals(rtn_msg_id)) 
			{
				String[] str = {"利用終了日", "過去"};
				return str;
			}
		}
		// 処理区分が回復の場合
		else if(JKKCommonConst.OP_TRAN_DIV_KAIHK.equals(trandiv))
		{
			
			// 回復可能期間（EKB5440-JW）
			if (JPCOnlineMessageConstant.EKB5440_JW.equals(rtn_msg_id)) 
			{
				String[] str = {"回復可能期間外", "回復は"};
				return str;
			}
			
		}
		
		return null;
	}
	

	
	// OM-2015-0000564 20151204 ADD START
	/**
	 * エラーメッセージを設定します。
	 * <br>
	 * @param outputMap サービス実行結果
	 * @param key       マップ名
	 * @return エラーが存在する場合はtrue、存在しない場合はfalse
	 */
	@SuppressWarnings("unchecked")
	private boolean setErrorMessageInfo(HashMap<String, Object> outputMap, String key)
	{
		boolean isError = false;

		// オーダ発行条件チェック
		HashMap<String, Object> resultMap = (HashMap<String, Object>)outputMap.get(key);
		if (null != resultMap)
		{
			// エラーの場合
			if ("1".equals(resultMap.get("chk_kbn")))
			{
				// オーダが処理された後の操作を促すメッセージを表示
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBE020_KW);
				isError = true;
			}
		}

		return isError;
	}
	// OM-2015-0000564 20151204 ADD END

}