/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JFUGetOptPackMskmCC
*   ソースファイル名：JFUGetOptPackMskmCC.java
*   作成者          ：富士通
*   日付            ：2014年04月30日
*＜機能概要＞
*   電話オプションパック申込照会コモンコンポーネント部品
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v9.00.00    2014/04/30   FJ）谷本    新規作成
*   
**********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;

import com.fujitsu.futurity.bp.x21.bpm.db.SessionHandle;
import com.fujitsu.futurity.bp.x21.bpm.exception.RequestParameterException;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadWrite;
import com.fujitsu.futurity.model.ejb.common.JSYejbLog;

import eo.common.constant.JFUStrConst;
import eo.common.constant.JPCModelConstant;
import eo.ejb.cbs.cbsmsg.EKK0081B508CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081B508CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0601B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0831A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0831A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK2871B501CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK2871B501CBSMsg1List;

/**
 * 電話オプションパック申込照会コモンコンポーネント部品
 * <br>
 * @author 富士通
 */
@SuppressWarnings("unchecked")
public class JFUGetOptPackMskmCC extends JFUBaseCC
{

	/* ■□ EKK2871B501_申込判定用割引サービス構成明細一覧照会 ■□ */
	/** テンプレートID(申込判定用割引サービス構成明細一覧照会) */
	private static final String TEMP_ID_EKK2871B501 = "EKK2871B501";
	/** テンプレートID(申込判定用割引サービス構成明細一覧照会明細) */
	private static final String TEMP_ID_DTL_EKK2871B501 = EKK2871B501CBSMsg.EKK2871B501CBSMSG1LIST;
	/** IN項目リスト(申込判定用割引サービス構成明細一覧照会) */
	private static final List<String> IN_COL_LIST_EKK2871B501 =
			Arrays.asList(EKK2871B501CBSMsg.KEY_KKOP_SVC_CD, EKK2871B501CBSMsg.KEY_KKTK_SVC_CD, EKK2871B501CBSMsg.KEY_OP_SVC_CD,
					EKK2871B501CBSMsg.KEY_PCRS_CD, EKK2871B501CBSMsg.KEY_PPLAN_CD, EKK2871B501CBSMsg.KEY_PRC_GRP_CD,
					EKK2871B501CBSMsg.KEY_SBOP_SVC_CD, EKK2871B501CBSMsg.KEY_SEIOPSVC_CD, EKK2871B501CBSMsg.KEY_SVC_CD,
					EKK2871B501CBSMsg.KEY_WRIB_KOSE_SVC_SKCD, EKK2871B501CBSMsg.KEY_WRIB_SVC_CD);
	/** 関連チェックエラー項目(申込判定用割引サービス構成明細一覧照会) */
	private static final String ERR_COL_EKK2871B501 = EKK2871B501CBSMsg.KEY_WRIB_SVC_CD_ERR;
	/** SC実行結果取得キー(申込判定用割引サービス構成明細一覧照会) */
	private static final String TEMP_TEMP_KEY_EKK2871B501 = TEMP_TEMPLATE_PRIFIX + TEMP_ID_EKK2871B501 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ EKK0601B001_料金プラン固定単価（オプション申込料金）一覧照会 ■□ */
	/** テンプレートID(料金プラン固定単価（オプション申込料金）一覧照会) */
	private static final String TEMP_ID_EKK0601B001 = "EKK0601B001";
	/** テンプレートID(料金プラン固定単価（オプション申込料金）一覧照会明細) */
	private static final String TEMP_ID_DTL_EKK0601B001 = EKK0601B001CBSMsg.EKK0601B001CBSMSG1LIST;
	/** IN項目リスト(料金プラン固定単価（オプション申込料金）一覧照会) */
	private static final List<String> IN_COL_LIST_EKK0601B001 =
			Arrays.asList(EKK0601B001CBSMsg.KEY_PCRS_CD, EKK0601B001CBSMsg.KEY_PPLAN_CD, EKK0601B001CBSMsg.MAX_SEARCH_NUM,
					EKK0601B001CBSMsg.DISPLAY_NUM, EKK0601B001CBSMsg.DISPLAY_PAGE_NUM, EKK0601B001CBSMsg.SEARCH_TYPE,
					EKK0601B001CBSMsg.TOTAL_PAGE_NUM);
	/** 関連チェックエラー項目(料金プラン固定単価（オプション申込料金）一覧照会) */
	private static final String ERR_COL_EKK0601B001 = EKK0601B001CBSMsg.KEY_PPLAN_CD_ERR;
	/** SC実行結果取得キー(料金プラン固定単価（オプション申込料金）一覧照会) */
	private static final String TEMP_TEMP_KEY_EKK0601B001 = TEMP_TEMPLATE_PRIFIX + TEMP_ID_EKK0601B001 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ EKK0081B508_eo光電話サービス契約情報一覧照会 ■□ */
	/** テンプレートID(eo光電話サービス契約情報一覧照会) */
	private static final String TEMP_ID_EKK0081B508 = "EKK0081B508";
	/** テンプレートID(eo光電話サービス契約情報一覧照会明細) */
	private static final String TEMP_ID_DTL_EKK0081B508 = EKK0081B508CBSMsg.EKK0081B508CBSMSG1LIST;
	/** IN項目リスト(eo光電話サービス契約情報一覧照会) */
	private static final List<String> IN_COL_LIST_EKK0081B508 =
			Arrays.asList(EKK0081B508CBSMsg.KEY_SYSID, EKK0081B508CBSMsg.KEY_SVC_KEI_NO, EKK0081B508CBSMsg.KEY_TELNO);
	/** 関連チェックエラー項目(eo光電話サービス契約情報一覧照会) */
	private static final String ERR_COL_EKK0081B508 = EKK0081B508CBSMsg.KEY_TELNO_ERR;
	/** SC実行結果取得キー(eo光電話サービス契約情報一覧照会) */
	private static final String TEMP_TEMP_KEY_EKK0081B508 = TEMP_TEMPLATE_PRIFIX + TEMP_ID_EKK0081B508 + TEMP_TEMPLATE_PRIFIX_SEP;

	/** 無効なサービス契約ステータス */
	private static final List<String> SVC_KEI_STAT_MUKO = Arrays.asList(JFUStrConst.CD00037_910, JFUStrConst.CD00037_920);

	/* ■□ EKK0831A010_サブオプションサービス一意照会SC ■□ */
	/** テンプレートID(サブオプションサービス一意照会) */
	private static final String TEMP_ID_EKK0831A010 = "EKK0831A010";
	/** テンプレートID(サブオプションサービス一意照会明細) */
	private static final String TEMP_ID_DTL_EKK0831A010 = EKK0831A010CBSMsg.EKK0831A010CBSMSG1LIST;
	/** IN項目リスト(サブオプションサービス一意照会) */
	private static final List<String> IN_COL_LIST_EKK0831A010 = Arrays.asList(EKK0831A010CBSMsg.KEY_SBOP_SVC_CD, EKK0831A010CBSMsg.KEY_GENE_ADD_DTM);
	/** 関連チェック,エラー項目(サブオプションサービス一意照会) */
	private static final String ERR_COL_EKK0831A010 = EKK0831A010CBSMsg.KEY_SBOP_SVC_CD_ERR;
	/** SC実行結果取得キー(サブオプションサービス一意照会) */
	private static final String TEMP_TEMP_KEY_EKK0831A010 = TEMP_TEMPLATE_PRIFIX + TEMP_ID_EKK0831A010 + TEMP_TEMPLATE_PRIFIX_SEP;

	// ■ IN項目ID ■
	/** IN項目ID：SYSID */
	private static final String IN_SYSID = "sysid";
	/** IN項目ID：電話番号 */
	private static final String IN_TEL_NO = "tel_no";
	/** IN項目ID：サービス契約番号 */
	private static final String IN_SVC_KEI_NO = "svc_kei_no";

	// ■ OUT項目ID ■
	/** OUT項目ID：申込判定用割引サービス構成リスト */
	private static final String OUT_MSJ_WRSKS_LIST = "out_msj_wrsks_list";
	/** OUT項目ID：料金プラン固定単価リスト */
	private static final String OUT_PPLAN_KTTANKA = "out_pplan_kttanka_list";
	/** OUT項目ID：サービス契約情報リスト */
	private static final String OUT_SVC_KEI_LIST = "out_svc_kei_list";
	/** OUT項目ID：オプションサービス契約予約リスト */
	private static final String OUT_OP_SVC_RSV_LIST = "out_op_svc_rsv_list";

	/** リスト先頭*/
	protected static final int LIST_TOP = 0;

	/**
	 * eo光電話オプションパック申込照会コモンコンポーネント部品実行処理<br>
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return リクエストパラメータ管理クラス
	 * @throws Exception 例外
	 */
	public IRequestParameterReadWrite getResultData(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{

		// 開始ログ
		outDebugLog("----- getResultData Start  -----");
		// 
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ●結果格納マップ
		HashMap resultMap = new HashMap();

		// ●ＩＮ項目
		// IN項目ID：SYSID
		String inSysId = (String)inMap.get(IN_SYSID);
		// IN項目ID：サービス契約番号
		String inSvcKeiNo = (String)inMap.get(IN_SVC_KEI_NO);
		// IN項目ID：電話番号
		String inTelNo = (String)inMap.get(IN_TEL_NO);

		// ●ＯＵＴ項目
		// OUT項目ID：申込判定用割引サービス構成リスト
		resultMap.put(OUT_MSJ_WRSKS_LIST, new ArrayList());
		// OUT項目ID：料金プラン固定単価リスト
		resultMap.put(OUT_PPLAN_KTTANKA, new ArrayList());
		// OUT項目ID：サービス契約情報リスト
		resultMap.put(OUT_SVC_KEI_LIST, new ArrayList());
		// OUT項目ID：オプション予約リスト
		resultMap.put(OUT_OP_SVC_RSV_LIST, new ArrayList());

		// チェック対象オプション（サブオプションを含む）
		HashMap checkOpMap = new HashMap();

		// ●申込判定用割引サービス構成明細一覧照会※eo光電話パック７
		// ユーザデータ初期化
		initData(param, fixedText, IN_COL_LIST_EKK2871B501);
		// 上りマッピング
		setEKK2871B501(param, fixedText, JFUStrConst.KK0841_WRIB_SVC_CD_TEL_OP_PACK7);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMP_ID_EKK2871B501, TEMP_ID_DTL_EKK2871B501, IN_COL_LIST_EKK2871B501, ERR_COL_EKK2871B501);
		// 結果分ループ
		for (HashMap dataMap : getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMP_KEY_EKK2871B501), TEMP_ID_DTL_EKK2871B501))
		{
			// 料金コースコード
			String pcrsCd = (String)dataMap.get(EKK2871B501CBSMsg1List.PCRS_CD);
			// 料金プランコード
			String pplanCd = (String)dataMap.get(EKK2871B501CBSMsg1List.PPLAN_CD);
			// オプションサービスコード
			String opSvcCd = (String)dataMap.get(EKK2871B501CBSMsg1List.OP_SVC_CD); // サブオプションの場合は設定されないので下記で設定する。
			// サブオプションサービスコード
			String sbopSvcCd = (String)dataMap.get(EKK2871B501CBSMsg1List.SBOP_SVC_CD);

			// 値があればマップにセット
			if (!JFUBPCommon.isNull(opSvcCd))
			{
				checkOpMap.put(opSvcCd, opSvcCd);
			}
			if (!JFUBPCommon.isNull(sbopSvcCd))
			{
				checkOpMap.put(sbopSvcCd, sbopSvcCd);
			}

			// ●料金プラン固定単価（オプション申込料金）一覧照会※個別オプション、サブオプション
			// ユーザデータ初期化
			initData(param, fixedText, IN_COL_LIST_EKK0601B001);
			// 上りマッピング
			setEKK0601B001(param, fixedText, pcrsCd, pplanCd);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMP_ID_EKK0601B001, TEMP_ID_DTL_EKK0601B001, IN_COL_LIST_EKK0601B001, ERR_COL_EKK0601B001);

			// ■返却値設定(料金プラン固定単価リスト)
			HashMap tankaMap = getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMP_KEY_EKK0601B001), TEMP_ID_DTL_EKK0601B001).get(0);
			// 料金コースコードを追加
			tankaMap.put("pcrs_cd", pcrsCd);
			// 料金プランコードを追加
			tankaMap.put("pplan_cd", pplanCd);
			setReturnDataMap(resultMap, OUT_PPLAN_KTTANKA, tankaMap);

			// サブオプションに紐づくオプションのデータをセット
			if (!JFUBPCommon.isNull(sbopSvcCd))
			{

				// ○サブオプションサービス一意照会
				// ユーザデータ初期化
				JFUBPCommon.initData(param, fixedText, IN_COL_LIST_EKK0831A010);
				// 上りマッピング
				setInMapEKK0831A010(param, fixedText, sbopSvcCd);
				// サービスIF実行
				JFUBPCommon.executeSC(handle, param, fixedText, TEMP_ID_EKK0831A010, TEMP_ID_DTL_EKK0831A010, IN_COL_LIST_EKK0831A010,
						ERR_COL_EKK0831A010);
				// オプションサービスコード
				dataMap.put("op_svc_cd", JFUBPCommon.getTemplateListValue(inMap, JFUBPCommon.getMaxTempTempleteKey(inMap, TEMP_TEMP_KEY_EKK0831A010),
						TEMP_ID_DTL_EKK0831A010, EKK0831A010CBSMsg1List.OP_SVC_CD, 0));
			}

			// ■返却値設定（申込判定用割引サービス構成リスト）
			setReturnDataMap(resultMap, OUT_MSJ_WRSKS_LIST, dataMap);

		}

		// ○割引サービスコードリストの設定
		// ●割引サービスコードリストにパック３の値を追加
		// ●申込判定用割引サービス構成明細一覧照会※eo光電話パック３
		// ユーザデータ初期化
		initData(param, fixedText, IN_COL_LIST_EKK2871B501);
		// 上りマッピング
		setEKK2871B501(param, fixedText, JFUStrConst.KK0841_WRIB_SVC_CD_TEL_OP_PACK3);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMP_ID_EKK2871B501, TEMP_ID_DTL_EKK2871B501, IN_COL_LIST_EKK2871B501, ERR_COL_EKK2871B501);
		// パック３のデータを取得
		List<HashMap> pack3List = getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMP_KEY_EKK2871B501), TEMP_ID_DTL_EKK2871B501);
		// パック７のオプションをループ
		ArrayList<HashMap> msjWrsksList7List = (ArrayList)resultMap.get(OUT_MSJ_WRSKS_LIST);
		for (HashMap<String, String> dataMap : msjWrsksList7List)
		{
			String pcrsCd = dataMap.get(EKK2871B501CBSMsg1List.PCRS_CD);

			// 割引サービスコードリストに設定
			dataMap.put("wrib_svc_cd_list", JFUStrConst.KK0841_WRIB_SVC_CD_TEL_OP_PACK7);

			for (HashMap<String, String> dataMap2 : pack3List)
			{
				if (pcrsCd.equals(dataMap2.get(EKK2871B501CBSMsg1List.PCRS_CD)))
				{
					// 同じ場合に
					dataMap
							.put("wrib_svc_cd_list", dataMap.get("wrib_svc_cd_list") + JFUStrConst.COMMA
									+ JFUStrConst.KK0841_WRIB_SVC_CD_TEL_OP_PACK3);
					break;
				}
			}
		}

		// ●料金プラン固定単価（オプション申込料金）一覧照会※eo光電話パック３
		// ユーザデータ初期化
		initData(param, fixedText, IN_COL_LIST_EKK0601B001);
		// 上りマッピング
		setEKK0601B001(param, fixedText, JFUStrConst.CD00134_F03, JFUStrConst.CD00565_PF0301);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMP_ID_EKK0601B001, TEMP_ID_DTL_EKK0601B001, IN_COL_LIST_EKK0601B001, ERR_COL_EKK0601B001);
		// ■返却値設定(料金プラン固定単価リスト)
		// 料金コースコードを追加
		HashMap tankaMap3 = getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMP_KEY_EKK0601B001), TEMP_ID_DTL_EKK0601B001).get(0);
		tankaMap3.put("wrib_svc_cd", JFUStrConst.KK0841_WRIB_SVC_CD_TEL_OP_PACK3);
		tankaMap3.put("pcrs_cd", JFUStrConst.CD00134_F03);
		tankaMap3.put("pplan_cd", JFUStrConst.CD00565_PF0301);
		setReturnDataMap(resultMap, OUT_PPLAN_KTTANKA, tankaMap3);

		// ●料金プラン固定単価（オプション申込料金）一覧照会※eo光電話パック７
		// ユーザデータ初期化
		initData(param, fixedText, IN_COL_LIST_EKK0601B001);
		// 上りマッピング
		setEKK0601B001(param, fixedText, JFUStrConst.CD00134_F04, JFUStrConst.CD00565_PF0401);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMP_ID_EKK0601B001, TEMP_ID_DTL_EKK0601B001, IN_COL_LIST_EKK0601B001, ERR_COL_EKK0601B001);
		// ■返却値設定(料金プラン固定単価リスト)
		// 料金コースコードを追加
		HashMap tankaMap7 = getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMP_KEY_EKK0601B001), TEMP_ID_DTL_EKK0601B001).get(0);
		tankaMap7.put("wrib_svc_cd", JFUStrConst.KK0841_WRIB_SVC_CD_TEL_OP_PACK7);
		tankaMap7.put("pcrs_cd", JFUStrConst.CD00134_F04);
		tankaMap7.put("pplan_cd", JFUStrConst.CD00565_PF0401);
		setReturnDataMap(resultMap, OUT_PPLAN_KTTANKA, tankaMap7);

		// ★オプション、サブオプションの異動予約チェック
		// ●eo光電話サービス契約情報一覧照会
		// 　※オプションのデータがとれる。（サブオプションが紐づく場合は、オプションのレコードに含まれる）
		// ユーザデータ初期化
		initData(param, fixedText, IN_COL_LIST_EKK0081B508);
		// 検索エラーなし
		ignoreSearchError(param, fixedText);
		// 上りマッピング
		setEKK0081B508(param, fixedText, inSysId, inSvcKeiNo, inTelNo);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMP_ID_EKK0081B508, TEMP_ID_DTL_EKK0081B508, IN_COL_LIST_EKK0081B508, ERR_COL_EKK0081B508);
		// 結果分ループ
		for (HashMap dataMap : getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMP_KEY_EKK0081B508), TEMP_ID_DTL_EKK0081B508))
		{
			// オプションサービスコード
			String opSvcCd = (String)dataMap.get(EKK0081B508CBSMsg1List.OP_SVC_CD);
			// オプションサービス契約ステータス
			String opSvcKeiStat = (String)dataMap.get(EKK0081B508CBSMsg1List.OP_SVC_KEI_STAT);
			// 異動予約詳細コード（オプションサービス契約）
			String kk0351IdoRsvStatCd = (String)dataMap.get(EKK0081B508CBSMsg1List.KK0351_IDO_RSV_DTL_CD);
			// サブオプションサービスコード
			String sbopSvcCd = (String)dataMap.get(EKK0081B508CBSMsg1List.SBOP_SVC_CD);
			// 異動予約詳細コード（サブオプションサービス契約）
			String kk041IdoRsvStatCd = (String)dataMap.get(EKK0081B508CBSMsg1List.KK0401_IDO_RSV_DTL_CD);

			// オプション、サブオプション以外はスキップ
			if (JFUBPCommon.isNull(opSvcCd) && JFUBPCommon.isNull(sbopSvcCd))
			{
				continue;
			}

			// 無効データの場合はスキップ（オプションは必ずあるため）
			if (SVC_KEI_STAT_MUKO.contains(opSvcKeiStat))
			{
				continue;
			}

			// パックの構成一覧に、含まれていない場合は、スキップ
			if (!checkOpMap.containsKey(opSvcCd) && !checkOpMap.containsKey(sbopSvcCd))
			{
				continue;
			}

			// 異動予約状態コードが入っていれば場合は、エラー
			if (!JFUBPCommon.isNull(kk0351IdoRsvStatCd) || !JFUBPCommon.isNull(kk041IdoRsvStatCd))
			{
				// ■返却値設定（オプションサービス契約予約リスト）
				setReturnDataMap(resultMap, OUT_OP_SVC_RSV_LIST, dataMap); // 予約エラー判定用
			}
			else
			{
				// ■返却値設定（サービス契約情報リスト）
				setReturnDataMap(resultMap, OUT_SVC_KEI_LIST, dataMap);
			}

		}

		// ※
		// 住所の予約チェックは、JKKTelSelectOpPackOperateCC_電話セレクトオプションパック操作部品を照会で呼出
		// サービス利用開始日＞運用日で判断を行う。

		// ●リクエストパラメータに結果を格納
		param.removeData(fixedText);
		param.setData(fixedText, resultMap);

		// 終了ログ
		outDebugLog("----- getResultData End  -----");
		return param;

	}

	/**
	 * 上りマッピング項目設定(サブオプションサービス一意照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param sbopSvcCd
	 * @throws RequestParameterException
	 */
	private void setInMapEKK0831A010(IRequestParameterReadWrite param, String fixedText, String sbopSvcCd) throws RequestParameterException
	{

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード設定(2:カレント)
		JFUBPCommon.setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_2);

		// ＫＥＹ＿サブオプションサービスコード
		inMap.put(EKK0831A010CBSMsg.KEY_SBOP_SVC_CD, sbopSvcCd);

	}

	/**
	 * eo光電話サービス契約情報一覧照会の上りマッピング処理です。
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param sysId
	 * @param svcKeiNo
	 * @param telNo
	 * @throws RequestParameterException 
	 */
	private void setEKK0081B508(IRequestParameterReadWrite param, String fixedText, String sysId, String svcKeiNo, String telNo)
			throws RequestParameterException
	{
		// 機能コード設定(2)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_2);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿SYSID
		inMap.put(EKK0081B508CBSMsg.KEY_SYSID, sysId);
		// ＫＥＹ＿サービス契約番号
		inMap.put(EKK0081B508CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
		// ＫＥＹ＿電話番号
		inMap.put(EKK0081B508CBSMsg.KEY_TELNO, telNo);
	}

	/**
	 * 申込判定用割引サービス構成明細一覧照会の上りマッピング処理です。
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param wribSvcCd 割引サービスコード
	 * @throws RequestParameterException 
	 */
	private void setEKK2871B501(IRequestParameterReadWrite param, String fixedText, String wribSvcCd) throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿割引サービスコード
		inMap.put(EKK2871B501CBSMsg.KEY_WRIB_SVC_CD, wribSvcCd);
	}

	/**
	 * 料金プラン固定単価（オプション申込料金）一覧照会の上りマッピング処理です。
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param pcrsCd
	 * @param pplanCD
	 * @throws RequestParameterException
	 */
	private void setEKK0601B001(IRequestParameterReadWrite param, String fixedText, String pcrsCd, String pplanCD) throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿料金コースコード
		inMap.put(EKK0601B001CBSMsg.KEY_PCRS_CD, pcrsCd);
		// ＫＥＹ＿料金プランコード
		inMap.put(EKK0601B001CBSMsg.KEY_PPLAN_CD, pplanCD);

		// 最大検索件数
		inMap.put(EKK0601B001CBSMsg.MAX_SEARCH_NUM, JFUStrConst.MAX_SEARCH_NUM);
		// 表示件数
		inMap.put(EKK0601B001CBSMsg.DISPLAY_NUM, JFUStrConst.MAX_SEARCH_NUM);
		// 表示ページ番号
		inMap.put(EKK0601B001CBSMsg.DISPLAY_PAGE_NUM, JFUStrConst.MAX_SEARCH_NUM);
		// 検索処理パターン
		inMap.put(EKK0601B001CBSMsg.SEARCH_TYPE, SEARCH_TYPE_IKT);
		// 総ページ数
		inMap.put(EKK0601B001CBSMsg.TOTAL_PAGE_NUM, JFUStrConst.MAX_SEARCH_NUM);
	}

	/**
	 * 下りマッピング項目設定(マップ値)
	 * <br>
	 * @param resultMap
	 * @param retKey
	 * @param tempMap
	 * @throws RequestParameterException
	 */
	private void setReturnDataMap(HashMap resultMap, String retKey, HashMap tempMap) throws RequestParameterException
	{
		// リターンマップに返却値を設定
		ArrayList<Object> retlist = (ArrayList<Object>)resultMap.get(retKey);
		if (retlist == null)
		{
			retlist = new ArrayList<Object>();
		}
		retlist.add(tempMap);
		resultMap.put(retKey, retlist);

	}

	/**
	 * チェック処理（共通処理）
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return リクエストパラメータ
	 * @throws Exception
	 */
	public HashMap<String, Object> getInvokeCBS(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		return null;
	}

	/**
	 * デバッグ出力処理です。
	 * 
	 * <br>
	 * @param obj 出力内容
	 */
	private void outDebugLog(Object obj)
	{
		// デバッグ出力
		JSYejbLog.println(JSYejbLog.DEBUG, this.getClass(), obj, null, null, null);
	}
}
