/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JFUStkStbShokaiCC
*   ソースファイル名：JFUStkStbShokaiCC.java
*   作成者          ：富士通
*   日付            ：2011年02月04日
*＜機能概要＞
*   eo光スティックレンタルサービス申込照会コモンコンポーネント部品
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v5.00	    2013/02/20   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 eo.common.constant.JFUStrConst;
import eo.common.constant.JPCModelConstant;
import eo.ejb.cbs.cbsmsg.EKK0081B520CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081B520CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0341B512CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0591A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0591B003CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0591B003CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0601B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0791A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0791A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0801A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1621A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1621A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK1861B501CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EZM0411A010CBSMsg;

/**
 * eo光スティックレンタルサービス申込照会コモンコンポーネント部品
 * <br>
 * @author 富士通
 */
@SuppressWarnings("unchecked")
public class JFUStkStbShokaiCC extends JFUBaseCC
{
	/** ＫＥＹ＿サービス契約番号 */
	private static final String KEY_SVC_KEI_NO = "key_svc_kei_no";
	/** ＫＥＹ＿宅内機器型式コード */
	private static final String KEY_TAKNKIKI_MODEL_CD = "key_taknkiki_model_cd";
	/** 宅内機器種別コード */
	private static final String TAKNKIKI_SBT_CD = "taknkiki_sbt_cd";
	/** 料金コースコード */
	private static final String PCRS_CD = "pcrs_cd";
	/** 機器提供種別コード */
	private static final String KKTK_SBT_CD = "key_kktk_sbt_cd";

	/** 料金プラン固定単価（オプション申込料金）一覧明細 */
	private static final String PPLAN_KTTANKA_LIST = "pplan_kttanka_list";
	/** 料金コース_機器提供サービス一意照会明細 */
	private static final String PCRS_KKTKSVC_LIST = "pcrs_kktksvc_list";
	/** 料金コース_機器型式対象料金コース一意照会明細 */
	private static final String KKTK_PPLAN_BETU_KIKI_MDL_LIST = "kktk_pplan_betu_kiki_mdl_list";
	/** 宅内機器型式一意照会明細 */
	private static final String TKKIKI_MDL_LIST = "tkkiki_mdl_list";
	/** 料金プラン一覧照会明細 */
	private static final String PPLAN_LIST = "pplan_list";
	/** 宅内機器型式コード */
	private static final String TAKNKIKI_MODEL_CD = "taknkiki_model_cd";

	/** リスト先頭*/
	private static final int LIST_TOP = 0;

	/* ■□ 機器提供サービス契約一覧照会（各種通信機器情報取得）SC ■□ */
	/** テンプレートID(機器提供サービス契約一覧照会（各種通信機器情報取得）) */
	private static final String TEMPLATE_ID_1 = "EKK0341B512";
	/** テンプレートID(明細)(機器提供サービス契約一覧照会（各種通信機器情報取得）) */
	private static final String TEMPLATE_ID_DETAIL_1 = "EKK0341B512CBSMsg1List";
	/** IN項目リスト(機器提供サービス契約一覧照会（各種通信機器情報取得）) */
	private static final List<String> IN_COLUMN_LIST_1 =
			Arrays.asList(EKK0341B512CBSMsg.KEY_SVC_KEI_NO, EKK0341B512CBSMsg.MAX_SEARCH_NUM, EKK0341B512CBSMsg.DISPLAY_NUM,
					EKK0341B512CBSMsg.DISPLAY_PAGE_NUM, EKK0341B512CBSMsg.SEARCH_TYPE, EKK0341B512CBSMsg.TOTAL_PAGE_NUM);

	/* ■□ サービス契約一覧照会（各種通信機器情報取得）SC ■□ */
	/** テンプレートID(サービス契約一覧照会（各種通信機器情報取得）) */
	private static final String TEMPLATE_ID_2 = "EKK0081B520";
	/** テンプレートID(明細)(サービス契約一覧照会（各種通信機器情報取得）) */
	private static final String TEMPLATE_ID_DETAIL_2 = "EKK0081B520CBSMsg1List";
	/** IN項目リスト(サービス契約一覧照会（各種通信機器情報取得）) */
	private static final List<String> IN_COLUMN_LIST_2 =
			Arrays.asList(EKK0081B520CBSMsg.KEY_SVC_KEI_NO, EKK0081B520CBSMsg.MAX_SEARCH_NUM, EKK0081B520CBSMsg.DISPLAY_NUM,
					EKK0081B520CBSMsg.DISPLAY_PAGE_NUM, EKK0081B520CBSMsg.SEARCH_TYPE, EKK0081B520CBSMsg.TOTAL_PAGE_NUM);

	/* ■□ 宅内機器型式一意照会SC ■□ */
	/** テンプレートID(宅内機器型式一意照会) */
	private static final String TEMPLATE_ID_3 = "EZM0411A010";
	/** テンプレートID(明細)(宅内機器型式一意照会) */
	private static final String TEMPLATE_ID_DETAIL_3 = "EZM0411A010CBSMsg1List";
	/** IN項目リスト(宅内機器型式一意照会) */
	private static final List<String> IN_COLUMN_LIST_3 = Arrays.asList(EZM0411A010CBSMsg.KEY_TAKNKIKI_MODEL_CD);

	/* ■□ 機器型式対象料金コース一意照会SC ■□ */
	/** テンプレートID(機器型式対象料金コース一意照会) */
	private static final String TEMPLATE_ID_4 = "EKK1621A010";
	/** テンプレートID(明細)(機器型式対象料金コース一意照会) */
	private static final String TEMPLATE_ID_DETAIL_4 = "EKK1621A010CBSMsg1List";
	/** IN項目リスト(機器型式対象料金コース一意照会) */
	private static final List<String> IN_COLUMN_LIST_4 =
			Arrays.asList(EKK1621A010CBSMsg.KEY_TAKNKIKI_MODEL_CD, EKK1621A010CBSMsg.KEY_KKTK_SBT_CD, EKK1621A010CBSMsg.KEY_HAMBAI_SBT_CD);

	/* ■□ 料金プラン一覧照会SC ■□ */
	/** テンプレートID(料金プラン一覧照会) */
	private static final String TEMPLATE_ID_5 = "EKK0591B003";
	/** テンプレートID(明細)(料金プラン一覧照会) */
	private static final String TEMPLATE_ID_DETAIL_5 = "EKK0591B003CBSMsg1List";
	/** IN項目リスト(料金プラン一覧照会) */
	private static final List<String> IN_COLUMN_LIST_5 = Arrays.asList(EKK0591B003CBSMsg.KEY_PCRS_CD);

	/* ■□ 料金プラン固定単価（オプション申込料金）一覧照会SC ■□ */
	/** テンプレートID(料金プラン固定単価（オプション申込料金）一覧照会) */
	private static final String TEMPLATE_ID_6 = "EKK0601B001";
	/** テンプレートID(明細)(料金プラン固定単価（オプション申込料金）一覧照会) */
	private static final String TEMPLATE_ID_DETAIL_6 = "EKK0601B001CBSMsg1List";
	/** IN項目リスト(料金プラン固定単価（オプション申込料金）一覧照会) */
	private static final List<String> IN_COLUMN_LIST_6 =
			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);

	/* ■□ 料金コース一意照会SC ■□ */
	/** テンプレートID(料金コース一意照会) */
	private static final String TEMPLATE_ID_7 = "EKK0791A010";
	/** テンプレートID(明細)(料金コース一意照会) */
	private static final String TEMPLATE_ID_DETAIL_7 = "EKK0791A010CBSMsg1List";
	/** IN項目リスト(料金コース一意照会) */
	private static final List<String> IN_COLUMN_LIST_7 =
			Arrays.asList(EKK0791A010CBSMsg.KEY_PCRS_CD, EKK0791A010CBSMsg.KEY_GENE_ADD_DTM, EKK0791A010CBSMsg.KEY_RSV_APLY_YMD);

	/* ■□ 料金コース_機器提供サービス一意照会SC ■□ */
	/** テンプレートID(料金コース_機器提供サービス一意照会) */
	private static final String TEMPLATE_ID_8 = "EKK0801A010";
	/** テンプレートID(明細)(料金コース_機器提供サービス一意照会) */
	private static final String TEMPLATE_ID_DETAIL_8 = "EKK0801A010CBSMsg1List";
	/** IN項目リスト(料金コース_機器提供サービス一意照会) */
	private static final List<String> IN_COLUMN_LIST_8 =
			Arrays.asList(EKK0801A010CBSMsg.KEY_PCRS_CD, EKK0801A010CBSMsg.KEY_KKTK_SVC_CD, EKK0801A010CBSMsg.KEY_GENE_ADD_DTM,
					EKK0801A010CBSMsg.KEY_RSV_APLY_YMD);

	/**
	 * eo光スティックレンタルサービス申込照会コモンコンポーネント部品実行処理<br>
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return リクエストパラメータ管理クラス
	 * @throws Exception 例外
	 */

	public IRequestParameterReadWrite searchStkStb(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		HashMap inMap = (HashMap)param.getData(fixedText);
		inMap.put(PPLAN_KTTANKA_LIST, new ArrayList());
		inMap.put(PCRS_KKTKSVC_LIST, new ArrayList());
		inMap.put(KKTK_PPLAN_BETU_KIKI_MDL_LIST, new ArrayList());
		inMap.put(TKKIKI_MDL_LIST, new ArrayList());
		inMap.put(PPLAN_LIST, new ArrayList());

		// ●機器提供サービス契約一覧照会（各種通信機器情報取得）
		// 上りマッピング
		setInKktkSvkeiListShokai(param, fixedText);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_1, TEMPLATE_ID_DETAIL_1, IN_COLUMN_LIST_1, BLANK);

		// ●サービス契約一覧照会（各種通信機器情報取得）
		// 上りマッピング
		setInSvkeiListShokai(param, fixedText);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_2, TEMPLATE_ID_DETAIL_2, IN_COLUMN_LIST_2, BLANK);

		// ●宅内機器型式取得 EKK1861B501 サービス別宅内機器型式候補一覧照会（抽出条件種別）
		// 上りマッピング
		setInSvbetuTkkikimdlListShokai(param, fixedText);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);

		List<HashMap> resultlist = JFUBPCommon.getTaknkiki(handle, param, fixedText);

		// 下りマッピング
		setOutSvBtTkkikimdlListShokai(param, fixedText, resultlist);

		String keyTaknikikiModelCd = (String)inMap.get(KEY_TAKNKIKI_MODEL_CD);

		// ●宅内機器型式一意照会
		// 上りマッピング
		setInTkkikiKtskListShokai(param, fixedText, keyTaknikikiModelCd);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_3, TEMPLATE_ID_DETAIL_3, IN_COLUMN_LIST_3, BLANK);
		// 下りマッピング
		setOutTkkikiKtskListShokai(param, fixedText);

		// ●機器型式対象料金コース一意照会
		// 上りマッピング
		setInKikimdlTgPcrsShokai(param, fixedText, keyTaknikikiModelCd);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_4, TEMPLATE_ID_DETAIL_4, IN_COLUMN_LIST_4, BLANK);
		// 下りマッピング
		setOutKikimdlTgPcrsShokai(param, fixedText);

		// ●料金プラン一覧照会
		// 上りマッピング
		setInPplanListShokai(param, fixedText);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_5, TEMPLATE_ID_DETAIL_5, IN_COLUMN_LIST_5, BLANK);
		// 下りマッピング
		setOutPplanListShokai(param, fixedText);

		// ●料金プラン固定単価（オプション申込料金）一覧照会
		// 上りマッピング
		setInPplanKttankaOpListShokai(param, fixedText);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_6, TEMPLATE_ID_DETAIL_6, IN_COLUMN_LIST_6, BLANK);
		// 下りマッピング
		setOutPplanKttankaOpListShokai(param, fixedText, keyTaknikikiModelCd);

		// ●料金コース一意照会
		// 上りマッピング
		setInPcrsShokai(param, fixedText);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_7, TEMPLATE_ID_DETAIL_7, IN_COLUMN_LIST_7, BLANK);

		// ●料金コース_機器提供サービス一意照会
		// 上りマッピング
		setInPcrsKktkSvcShokai(param, fixedText);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_8, TEMPLATE_ID_DETAIL_8, IN_COLUMN_LIST_8, BLANK);
		// 下りマッピング
		setOutPcrsKktkSvcShokai(param, fixedText, keyTaknikikiModelCd);

		ArrayList<Object> workLstPplanKttankaList = (ArrayList<Object>)inMap.get(PPLAN_KTTANKA_LIST);
		ArrayList<Object> workLstPcrsKktksvcList = (ArrayList<Object>)inMap.get(PCRS_KKTKSVC_LIST);

		HashMap<String, Object> pplanKttankaList = (HashMap<String, Object>)workLstPplanKttankaList.get(0);
		HashMap<String, Object> pcrsKktksvcList = (HashMap<String, Object>)workLstPcrsKktksvcList.get(0);

		pplanKttankaList.put(TAKNKIKI_MODEL_CD, keyTaknikikiModelCd);
		pcrsKktksvcList.put(TAKNKIKI_MODEL_CD, keyTaknikikiModelCd);

		return param;
	}

	/**
	 * 上りマッピング項目設定(機器提供サービス契約一覧照会（各種通信機器情報取得）)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws RequestParameterException
	 */
	private void setInKktkSvkeiListShokai(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 検索エラーなし設定
		ignoreSearchError(param, fixedText);

		// 機能コード設定(1:抽出条件に一致するレコードの一覧照会を行う)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ＫＥＹ＿サービス契約番号
		inMap.put(EKK0341B512CBSMsg.KEY_SVC_KEI_NO, inMap.get(KEY_SVC_KEI_NO));
		// 最大検索件数
		inMap.put(EKK0341B512CBSMsg.MAX_SEARCH_NUM, JFUStrConst.MAX_SEARCH_NUM);
		// 表示件数
		inMap.put(EKK0341B512CBSMsg.DISPLAY_NUM, JFUStrConst.MAX_SEARCH_NUM);
		// 表示ページ番号
		inMap.put(EKK0341B512CBSMsg.DISPLAY_PAGE_NUM, JFUStrConst.MAX_SEARCH_NUM);
		// 検索処理パターン
		inMap.put(EKK0341B512CBSMsg.SEARCH_TYPE, SEARCH_TYPE_IKT);
		// 総ページ数
		inMap.put(EKK0341B512CBSMsg.TOTAL_PAGE_NUM, JFUStrConst.MAX_SEARCH_NUM);
	}

	/**
	 * 上りマッピング項目設定(サービス契約一覧照会（各種通信機器情報取得）)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws RequestParameterException
	 */
	private void setInSvkeiListShokai(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 検索エラーなし設定
		ignoreSearchError(param, fixedText);

		// 機能コード設定(1:抽出条件に一致するレコードの一覧照会を行う)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ＫＥＹ＿サービス契約番号
		inMap.put(EKK0081B520CBSMsg.KEY_SVC_KEI_NO, inMap.get(KEY_SVC_KEI_NO));
		// 最大検索件数
		inMap.put(EKK0081B520CBSMsg.MAX_SEARCH_NUM, JFUStrConst.MAX_SEARCH_NUM);
		// 表示件数
		inMap.put(EKK0081B520CBSMsg.DISPLAY_NUM, JFUStrConst.MAX_SEARCH_NUM);
		// 表示ページ番号
		inMap.put(EKK0081B520CBSMsg.DISPLAY_PAGE_NUM, JFUStrConst.MAX_SEARCH_NUM);
		// 検索処理パターン
		inMap.put(EKK0081B520CBSMsg.SEARCH_TYPE, SEARCH_TYPE_IKT);
		// 総ページ数
		inMap.put(EKK0081B520CBSMsg.TOTAL_PAGE_NUM, JFUStrConst.MAX_SEARCH_NUM);

	}

	/**
	 * 上りマッピング項目設定(サービス別宅内機器型式候補一覧照会（抽出条件種別）)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws RequestParameterException
	 */
	private void setInSvbetuTkkikimdlListShokai(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード設定(1:抽出条件に一致するレコードの一覧照会を行う)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		ArrayList<Object> workLstEKK0081B520 = (ArrayList<Object>)inMap.get(TEMPLATE_ID_DETAIL_2);
		HashMap<String, Object> workMapEKK0081B520 = (HashMap<String, Object>)workLstEKK0081B520.get(LIST_TOP);

		// ＫＥＹ＿料金コースコード <-- サービス契約.料金コースコード
		inMap.put(PCRS_CD, workMapEKK0081B520.get(EKK0081B520CBSMsg1List.PCRS_CD));
		// ＫＥＹ＿宅内機器種別コード <-- 宅内機器種別コード eo光スティックレンタルサービス
		inMap.put(TAKNKIKI_SBT_CD, JFUStrConst.CD01262_Q0);

	}

	/**
	 * 上りマッピング項目設定(宅内機器型式一意照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param keyTaknikikiModelCd 宅内機器型式コード
	 * @throws RequestParameterException
	 */
	private void setInTkkikiKtskListShokai(IRequestParameterReadWrite param, String fixedText, String keyTaknikikiModelCd)
			throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		// 機能コード設定(1:抽出条件に一致するレコードの一覧照会を行う)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ＫＥＹ＿宅内機器型式コード
		inMap.put(EZM0411A010CBSMsg.KEY_TAKNKIKI_MODEL_CD, keyTaknikikiModelCd);

	}

	/**
	 * 下りマッピング項目設定(サービス別宅内機器型式候補一覧照会（抽出条件種別）)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param resultlist EKK1861B501 サービス別宅内機器型式候補一覧照会（抽出条件種別）
	 * @throws RequestParameterException
	 */
	private void setOutSvBtTkkikimdlListShokai(IRequestParameterReadWrite param, String fixedText, List<HashMap> resultlist)
			throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);
		HashMap<String, Object> workMapEKK1861B501 = (HashMap<String, Object>)resultlist.get(LIST_TOP);

		// 宅内機器型式コード(返却値は１件のみ)
		inMap.put(KEY_TAKNKIKI_MODEL_CD, workMapEKK1861B501.get(EKK1861B501CBSMsg1List.TAKNKIKI_MODEL_CD));

	}

	/**
	 * 下りマッピング項目設定(宅内機器型式一意照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws RequestParameterException
	 */
	private void setOutTkkikiKtskListShokai(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);
		ArrayList<Object> workLstEZM0411A010 = (ArrayList<Object>)inMap.get(TEMPLATE_ID_DETAIL_3);
		HashMap<String, Object> workMapEZM0411A010 = (HashMap<String, Object>)workLstEZM0411A010.get(LIST_TOP);

		ArrayList<Object> tkkikiMdlList = (ArrayList<Object>)inMap.get(TKKIKI_MDL_LIST);
		tkkikiMdlList.add(workMapEZM0411A010);

	}

	/**
	 * 上りマッピング項目設定(機器型式対象料金コース一意照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param keyTaknikikiModelCd 宅内機器型式コード
	 * @throws RequestParameterException
	 */
	private void setInKikimdlTgPcrsShokai(IRequestParameterReadWrite param, String fixedText, String keyTaknikikiModelCd)
			throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		// 機能コード設定(1:PK指定でレコードの照会を行う)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ＫＥＹ＿宅内機器型式コード
		inMap.put(EKK1621A010CBSMsg.KEY_TAKNKIKI_MODEL_CD, keyTaknikikiModelCd);
		// ＫＥＹ＿機器提供種別コード
		inMap.put(EKK1621A010CBSMsg.KEY_KKTK_SBT_CD, inMap.get(KKTK_SBT_CD));
		// ＫＥＹ＿販売種別コード
		inMap.put(EKK1621A010CBSMsg.KEY_HAMBAI_SBT_CD, JFUStrConst.CD00348_10);
	}

	/**
	 * 下りマッピング項目設定(機器型式対象料金コース一意照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws RequestParameterException
	 */
	private void setOutKikimdlTgPcrsShokai(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{

		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);
		ArrayList<Object> workLstEKK1621A010 = (ArrayList<Object>)inMap.get(TEMPLATE_ID_DETAIL_4);
		HashMap<String, Object> workMapEKK1621A010 = (HashMap<String, Object>)workLstEKK1621A010.get(LIST_TOP);

		ArrayList<Object> kktkPplanBetuKikiMdlList = (ArrayList<Object>)inMap.get(KKTK_PPLAN_BETU_KIKI_MDL_LIST);
		kktkPplanBetuKikiMdlList.add(workMapEKK1621A010);

	}

	/**
	 * 上りマッピング項目設定(料金プラン一覧照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws RequestParameterException
	 */
	private void setInPplanListShokai(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{

		// ユーザデータ取得
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);
		ArrayList<Object> workLstEKK1621A010 = (ArrayList<Object>)inMap.get("EKK1621A010CBSMsg1List");
		HashMap<String, Object> workMapEKK1621A010 = (HashMap<String, Object>)workLstEKK1621A010.get(LIST_TOP);

		// 機能コード設定(1:抽出条件に一致するレコードの一覧照会を行う)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ＫＥＹ＿料金コースコード
		inMap.put(EKK0591A010CBSMsg.KEY_PCRS_CD, workMapEKK1621A010.get(EKK1621A010CBSMsg1List.PCRS_CD));

	}

	/**
	* 下りマッピング項目設定(料金プラン一覧照会)
	* 
	* <br>
	* @param param リクエストパラメータ
	* @param fixedText サービスメッセージ
	* @throws RequestParameterException
	*/
	private void setOutPplanListShokai(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);
		ArrayList<Object> workLstEKK0591B003 = (ArrayList<Object>)inMap.get(TEMPLATE_ID_DETAIL_5);
		HashMap<String, Object> workMapEKK0591B003 = (HashMap<String, Object>)workLstEKK0591B003.get(LIST_TOP);

		ArrayList<Object> pplanList = (ArrayList<Object>)inMap.get(PPLAN_LIST);
		pplanList.add(workMapEKK0591B003);

	}

	/**
	 * 上りマッピング項目設定(料金プラン固定単価（オプション申込料金）一覧照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws RequestParameterException
	 */
	private void setInPplanKttankaOpListShokai(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{

		// ユーザデータ取得
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);
		ArrayList<Object> workLstEKK0591B003 = (ArrayList<Object>)inMap.get(TEMPLATE_ID_DETAIL_5);
		HashMap<String, Object> workMapEKK0591B003 = (HashMap<String, Object>)workLstEKK0591B003.get(LIST_TOP);

		// 機能コード設定(1:抽出条件に一致するレコードの一覧照会を行う)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ＫＥＹ＿料金コースコード
		inMap.put(EKK0601B001CBSMsg.KEY_PCRS_CD, workMapEKK0591B003.get(EKK0591B003CBSMsg1List.PCRS_CD));
		// ＫＥＹ＿料金プランコード
		inMap.put(EKK0601B001CBSMsg.KEY_PPLAN_CD, workMapEKK0591B003.get(EKK0591B003CBSMsg1List.PPLAN_CD));

		// 最大検索件数
		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 param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param keyTaknikikiModelCd 宅内機器型式コード
	 * @throws RequestParameterException
	 */
	private void setOutPplanKttankaOpListShokai(IRequestParameterReadWrite param, String fixedText, String keyTaknikikiModelCd)
			throws RequestParameterException
	{
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);
		ArrayList<Object> workLstEKK0601B001 = (ArrayList<Object>)inMap.get(TEMPLATE_ID_DETAIL_6);
		HashMap<String, Object> workMapEKK0601B001 = (HashMap<String, Object>)workLstEKK0601B001.get(LIST_TOP);

		ArrayList<Object> pplanKttankaList = (ArrayList<Object>)inMap.get(PPLAN_KTTANKA_LIST);
		pplanKttankaList.add(workMapEKK0601B001);

	}

	/**
	 * 上りマッピング項目設定(料金コース一意照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws RequestParameterException
	 */
	private void setInPcrsShokai(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		// ユーザデータ取得
		ArrayList<Object> workLstEKK0591B003 = (ArrayList<Object>)inMap.get(TEMPLATE_ID_DETAIL_5);
		HashMap<String, Object> workMapEKK0591B003 = (HashMap<String, Object>)workLstEKK0591B003.get(LIST_TOP);

		// 機能コード設定(2:カレントレコードの照会を行う)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_2);

		// ＫＥＹ＿料金コースコード
		inMap.put(EKK0791A010CBSMsg.KEY_PCRS_CD, workMapEKK0591B003.get(EKK0591B003CBSMsg1List.PCRS_CD));
		// ＫＥＹ＿予約適用年月日
		inMap.put(EKK0791A010CBSMsg.KEY_RSV_APLY_YMD, JFUBPCommon.getOpeDate(null));

	}

	/**
	 * 上りマッピング項目設定(料金コース_機器提供サービス一意照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param cnt カウント
	 * @throws RequestParameterException
	 */
	private void setInPcrsKktkSvcShokai(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		// ユーザデータ取得
		ArrayList<Object> workLstEKK0791A010 = (ArrayList<Object>)inMap.get(TEMPLATE_ID_DETAIL_7);
		HashMap<String, Object> workMapEKK0791A010 = (HashMap<String, Object>)workLstEKK0791A010.get(LIST_TOP);

		ArrayList<Object> workLstEKK0081B520 = (ArrayList<Object>)inMap.get(TEMPLATE_ID_DETAIL_2);
		HashMap<String, Object> workMapEKK0081B520 = (HashMap<String, Object>)workLstEKK0081B520.get(LIST_TOP);

		// 機能コード設定(2:カレントレコードの照会を行う)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_2);

		// ＫＥＹ＿料金コースコード
		inMap.put(EKK0801A010CBSMsg.KEY_PCRS_CD, workMapEKK0081B520.get(EKK0081B520CBSMsg1List.PCRS_CD));
		// ＫＥＹ＿機器提供サービスコード
		inMap.put(EKK0801A010CBSMsg.KEY_KKTK_SVC_CD, workMapEKK0791A010.get(EKK0791A010CBSMsg1List.KKTK_SVC_CD));
		// ＫＥＹ＿予約適用年月日
		inMap.put(EKK0801A010CBSMsg.KEY_RSV_APLY_YMD, JFUBPCommon.getOpeDate(null));
	}

	/**
	 * 下りマッピング項目設定(料金コース_機器提供サービス一意照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param i カウント
	 * @param keyTaknikikiModelCd 宅内機器型式コード
	 * @throws RequestParameterException
	 */
	private void setOutPcrsKktkSvcShokai(IRequestParameterReadWrite param, String fixedText, String keyTaknikikiModelCd)
			throws RequestParameterException
	{
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);
		ArrayList<Object> workLstEKK0801A010 = (ArrayList<Object>)inMap.get(TEMPLATE_ID_DETAIL_8);
		HashMap<String, Object> workMapEKK0801A010 = (HashMap<String, Object>)workLstEKK0801A010.get(LIST_TOP);

		ArrayList<Object> pcrskktksvclist = (ArrayList<Object>)inMap.get(PCRS_KKTKSVC_LIST);
		pcrskktksvclist.add(workMapEKK0801A010);
	}

	/**
	 * チェック処理
	 * 
	 * <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;
	}
}
