/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JFUMTPlanChgPrcShokaiCC
*   ソースファイル名：JFUMTPlanChgPrcShokaiCC.java
*   作成者          ：富士通
*   日付            ：2018年12月28日
*＜機能概要＞
*   eo光ネットマンションタイププラン変更基本料金一覧照会コモンコンポーネント部品
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2018/12/28   FJ)原田     【ANK-3248-00-00】マンションタイプの引越しNavi対応
*   v67.00      2023/08/14   FJ)張本     【ANK-4467-00-00】FRONTIERのマンション導線巻き取りに伴うAPI変更
*   v73.00      2024/11/15   FJ) 張本    【ANK-4493-00-00】【eo定期】光配線マンションのコースアップ対応
*
**********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

import com.fujitsu.futurity.bp.custom.constant.JACPrcSimulationMsg;
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.bp.x21.cc.exception.SCCallException;
import com.fujitsu.futurity.common.JCMConstants;
import com.fujitsu.futurity.common.x01.sc.SCControlMapKeys;

import eo.common.constant.JFUStrConst;
import eo.common.constant.JPCModelConstant;
import eo.ejb.cbs.cbsmsg.EKK0881A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0881A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0891A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0891A010CBSMsg1List;

/**
 * eo光ネットマンションタイププラン変更基本料金一覧照会コモンコンポーネント部品です。
 * 
 * <br>
 * @author 富士通
 */
@SuppressWarnings("unchecked")
public class JFUMTPlanChgPrcShokaiCC extends JFUBaseCC
{

	// ■結果返却
	/** 基本料金リスト(返却リスト) */
	private static final String RESULT_LIST_NM = "JFUMTPlanChgPrcShokaiCCMsg1List";

	// ■項目ID
	/** ＫＥＹ＿料金グループコード */
	private static final String KEY_PRC_GRP_CD = "key_prc_grp_cd";
	/** ＫＥＹ＿料金コースコード */
	private static final String KEY_PCRS_CD = "key_pcrs_cd";

	/** ＫＥＹ＿支払契約識別コード */
	private static final String KEY_PAY_KEI_SKBT_CD = "key_pay_kei_skbt_cd";
	/** ＫＥＹ＿提供方式契約番号 */
	private static final String KEY_TK_HOSHIKI_KEI_NO = "key_tk_hoshiki_kei_no";
	/** ＫＥＹ＿マンションID */
	private static final String KEY_MANSION_ID = "key_mansion_id";
	/** ＫＥＹ＿料金プランコード */
	private static final String KEY_PRC_PLAN_CD = "key_prc_plan_cd";

	/** 料金シミュレーション基本料金リスト */
	private static final String JACPRCSIMULATIONLIST = "JACPrcSimulationList";

	/** OUTPUTマップキー 料金コース */
	private static final String OUT_MAP_KEY_PCRS_CD = "pcrs_cd";
	/** OUTPUTマップキー 料金コース */
	private static final String OUT_MAP_KEY_PPLAN_CD = "pplan_cd";

	/** シミュレーション結果リスト */
	private static final String JACPRCSIMULATIONCCMSG2LIST = "JACPrcSimulationMsg2List";
	/** 料金コースコード */
	private static final String PCRS_CD = "pcrs_cd";
	/** 料金サービスコード（料金プランコード） */
	private static final String PRC_SVC_CD = "prc_svc_cd";
	/** 料金項目コード */
	private static final String PRC_KMK_CD = "prc_kmk_cd";
	/** 料金項目コード */
	private static final String KEY_PRC_KMK_CD = "key_prc_kmk_cd";
	/** 料金項目コード：基本料金 */
	private static final String PRC_KMK_CD_KIHON = "21001101601";

	/** 料金項目コードリスト(通常割1年目、通常割2年目、通常割3年目) */
	private static final List<String> PRC_KMK_CD_NORMAL_LIST = Arrays.asList("S1200100101", "S1200100201", "S1200100301");

	/** 料金プランマップ*/
	private static final Map<String, String> PPLAN_CD_MAP = new HashMap<String, String>()
	{
		private static final long serialVersionUID = 1L;
		{
			put(JFUStrConst.CD00134_A57, JFUStrConst.CD00565_PA5701);
			put(JFUStrConst.CD00134_A74, JFUStrConst.CD00565_PA7401);
		}
	};
	/** 申込可否マップ*/
	private static final Map<String, String> MSKM_KH_MAP = new HashMap<String, String>()
	{
		private static final long serialVersionUID = 1L;
		{
			put(JFUStrConst.CD00134_A57, EKK0881A010CBSMsg1List.KNYKEI_NET_1G_MKM_KH_MANS);
			put(JFUStrConst.CD00134_A74, EKK0881A010CBSMsg1List.KNYKEI_NET_10G_MKM_KH_MANS);
		}
	};


	/* ■□ 提供方式契約一意照会SC ■□ */
	/** テンプレートID(提供方式契約一意照会) */
	private static final String TEMPLATE_ID_EKK0891A010 = "EKK0891A010";
	/** テンプレートID(提供方式契約一意照会明細) */
	private static final String TEMPLATE_ID_EKK0891A010_DETAIL = EKK0891A010CBSMsg.EKK0891A010CBSMSG1LIST;
	/** IN項目リスト(提供方式契約一意照会) */
	private static final List<String> IN_COLUMN_LIST_EKK0891A010 = Arrays.asList(EKK0891A010CBSMsg.KEY_TK_HOSHIKI_KEI_NO);
	/** 関連チェックエラー項目(提供方式契約一意照会) */
	private static final String ERROR_COLUMN_EKK0891A010 = EKK0891A010CBSMsg.KEY_TK_HOSHIKI_KEI_NO_ERR;
	/** SC実行結果取得キー(提供方式契約一意照会) */
	private static final String TEMP_TEMPLATE_KEY_EKK0891A010 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_EKK0891A010 + TEMP_TEMPLATE_PRIFIX_SEP + "1";

	/* ■□ 回線使用契約一意照会SC ■□ */
	/** テンプレートID(回線使用契約一意照会) */
	private static final String TEMPLATE_ID_EKK0881A010 = "EKK0881A010";
	/** テンプレートID(回線使用契約一意照会明細) */
	private static final String TEMPLATE_ID_EKK0881A010_DETAIL = EKK0881A010CBSMsg.EKK0881A010CBSMSG1LIST;
	/** IN項目リスト(回線使用契約一意照会) */
	private static final List<String> IN_COLUMN_LIST_EKK0881A010 = Arrays.asList(EKK0881A010CBSMsg.KEY_KAISEN_USE_KEI_NO);
	/** 関連チェックエラー項目(回線使用契約一意照会) */
	private static final String ERROR_COLUMN_EKK0881A010 = EKK0881A010CBSMsg.KEY_KAISEN_USE_KEI_NO_ERR;
	/** SC実行結果取得キー(回線使用契約一意照会) */
	private static final String TEMP_TEMPLATE_KEY_EKK0881A010 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_EKK0881A010 + TEMP_TEMPLATE_PRIFIX_SEP + "1";

	/** テンプレートID(料金コース変更可能条件一覧照会) */
	private static final String TEMPLATE_ID_2 = "EKK1631B002";
	/** 関連チェックエラー項目(料金コース変更可能条件一覧照会) */
	private static final String ERROR_COLUMN_2 = "no_chg_pcrs_err";

	/**
	 * 基本料金取得処理です。
	 * 引数の料金コース、料金プランコードに該当する基本料金を取得します。
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return リクエストパラメータ管理クラス
	 * @throws Exception
	 */
	public IRequestParameterReadWrite getBasicPrcData(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		// 結果返却マップ
		HashMap resultMap = new HashMap();
		// 結果返却リスト
		ArrayList outList = new ArrayList();

		// IN項目：料金コースコード
		String mansionId = (String)((HashMap)param.getData(fixedText)).get(KEY_MANSION_ID);
		// IN項目：料金プランコード
		String payKeiSkbtCd = (String)((HashMap)param.getData(fixedText)).get(KEY_PAY_KEI_SKBT_CD);
		// IN項目：提供方式契約番号
		String inTkHoshikiKeiNo = (String)((HashMap)param.getData(fixedText)).get(KEY_TK_HOSHIKI_KEI_NO);
		// IN項目：料金コースコード
		String inPcrsCd = (String)((HashMap)param.getData(fixedText)).get(KEY_PCRS_CD);
		// IN項目：料金プランコード
		String inPplanCd = (String)((HashMap)param.getData(fixedText)).get(KEY_PRC_PLAN_CD);

		HashMap outMap = new HashMap();

		outMap.put(OUT_MAP_KEY_PCRS_CD, inPcrsCd);
		outMap.put(OUT_MAP_KEY_PPLAN_CD, inPplanCd);

		// ●料金シミュレーション(基本料金)
		ArrayList kihonPrcList = executeJACPrcSimulation(handle, param, fixedText, mansionId, payKeiSkbtCd, inTkHoshikiKeiNo, JPCModelConstant.FUNC_CD_1);

		// 料金シミュレーション結果を格納
		outMap.put(JACPRCSIMULATIONLIST, kihonPrcList);

		// 結果を格納
		outList.add(outMap);

		// 最終結果をユーザデータに格納
		resultMap.put(RESULT_LIST_NM, outList);
		param.setData(fixedText, resultMap);

		return param;
	}

	/**
	 * 基本料金取得処理です。
	 * 引数の料金コース、料金プランコードに該当する基本料金を取得します。
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return リクエストパラメータ管理クラス
	 * @throws Exception
	 */
	public IRequestParameterReadWrite getPlanChgPrcData(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		// 結果返却マップ
		HashMap resultMap = new HashMap();
		// 結果返却リスト
		ArrayList outList = new ArrayList();

		// IN項目：支払契約識別コード
		String payKeiSkbtCd = (String)((HashMap)param.getData(fixedText)).get(KEY_PAY_KEI_SKBT_CD);
		// IN項目：料金グループコード
		String inPrcGrpCd = (String)((HashMap)param.getData(fixedText)).get(KEY_PRC_GRP_CD);
		// IN項目：提供方式契約番号
		String inTkHoshikiKeiNo = (String)((HashMap)param.getData(fixedText)).get(KEY_TK_HOSHIKI_KEI_NO);

		// マンション以外の場合は処理を中断する
		if (!JFUStrConst.CD00133_04.equals(inPrcGrpCd))
		{
			return param;
		}

		// ●料金シミュレーション(基本料金)
		ArrayList kihonPrcList = executeJACPrcSimulation(handle, param, fixedText, JFUStrConst.EMPTY, payKeiSkbtCd, inTkHoshikiKeiNo, JPCModelConstant.FUNC_CD_1);

		if(!JFUBPCommon.isNull(inTkHoshikiKeiNo))
		{
			// ●提供方式契約一意照会
			initData(param, fixedText, IN_COLUMN_LIST_EKK0891A010);
			// 上りマッピング
			setInMapKaisenUseKeiNoSearch(param, fixedText, inTkHoshikiKeiNo);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_EKK0891A010, TEMPLATE_ID_EKK0891A010_DETAIL, IN_COLUMN_LIST_EKK0891A010, ERROR_COLUMN_EKK0891A010);
			// 回線使用契約番号
			String kaisenUseKeiNo = getTemplateListValue((HashMap)param.getData(fixedText), TEMP_TEMPLATE_KEY_EKK0891A010, TEMPLATE_ID_EKK0891A010_DETAIL, EKK0891A010CBSMsg1List.KAISEN_USE_KEI_NO, 0);

			// ●回線使用契約一意照会
			initData(param, fixedText, IN_COLUMN_LIST_EKK0881A010);
			// 上りマッピング
			setInMapOwnrKeiNoSearch(param, fixedText, kaisenUseKeiNo);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_EKK0881A010, TEMPLATE_ID_EKK0881A010_DETAIL, IN_COLUMN_LIST_EKK0881A010, ERROR_COLUMN_EKK0881A010);

			// 提供方式パターンコード
			String tkHoshikiPatternCd =
					getTemplateListValue((HashMap)param.getData(fixedText), TEMP_TEMPLATE_KEY_EKK0891A010, TEMPLATE_ID_EKK0891A010_DETAIL,
							EKK0891A010CBSMsg1List.TK_HOSHIKI_PATTERN_CD, 0);

			// 光配線コース変更可能マンション以外はコース変更不可エラー
			if (!JFUStrConst.CD01213_53.equals(tkHoshikiPatternCd))
			{
				setRelationErrorInfo(param, TEMPLATE_ID_2, ERROR_COLUMN_2, fixedText);
				throw new SCCallException(String.valueOf(param.getControlMapData(SCControlMapKeys.RETURN_MESSAGE)), String
						.valueOf(RETURN_CODE_NORMAL), JPCModelConstant.RELATION_ERR);
			}

			// コース変更対象の基本料金を設定する
			Set<String> keyPcrsSet = MSKM_KH_MAP.keySet();
			for (String keyPcrsCd : keyPcrsSet)
			{
				// 申込可否
				String knykeiMskmKh =
						getTemplateListValue((HashMap)param.getData(fixedText), TEMP_TEMPLATE_KEY_EKK0881A010, TEMPLATE_ID_EKK0881A010_DETAIL,
								MSKM_KH_MAP.get(keyPcrsCd), 0);

				if (JFUStrConst.CD00003_1.equals(knykeiMskmKh))
				{
					HashMap jacPrcSimulationMap = new HashMap();
					ArrayList jacPrcSimulationList = new ArrayList();
					ArrayList jacPrcSimulationMsg2List = new ArrayList();

					// 料金項目コードリスト分を格納
					for (int p = 0; p < PRC_KMK_CD_NORMAL_LIST.size(); p++)
					{
						// 基本料金を設定
						HashMap jacPrcSimulationMsg2Map = new HashMap();
						jacPrcSimulationMsg2Map.put(PRC_KMK_CD, PRC_KMK_CD_KIHON);

						// ●固定単価
						for (int i = 0; i < kihonPrcList.size(); i++)
						{
							HashMap jACPrcSimulationMap = (HashMap)kihonPrcList.get(i);
							// 固定金額リスト取得
							ArrayList koteiAmntList = (ArrayList)jACPrcSimulationMap.get(JACPRCSIMULATIONCCMSG2LIST);
							// 明細リスト存在チェック
							if (JFUBPCommon.isNull(koteiAmntList))
							{
								// 存在しない場合処理を終了する
								break;
							}
							for (int j = 0; j < koteiAmntList.size(); j++)
							{
								// 固定金額
								HashMap koteiAmntMap = (HashMap)koteiAmntList.get(j);
								// 料金項目コード
								String prcKmkCd = (String)koteiAmntMap.get(PRC_KMK_CD);
								// 料金コースコード
								String pcrsCd = (String)koteiAmntMap.get(PCRS_CD);
								// 料金プランコード
								String pplanCd = ((String)koteiAmntMap.get(PRC_SVC_CD)).trim();
	
								// 該当する基本料金を取得する
								if (PRC_KMK_CD_KIHON.equals(prcKmkCd) && pcrsCd.equals(keyPcrsCd) && PPLAN_CD_MAP.get(keyPcrsCd).equals(pplanCd))
								{
									jacPrcSimulationMsg2Map = new HashMap(koteiAmntMap);
								}
							}

							// 料金項目を設定
							jacPrcSimulationMsg2Map.put(KEY_PRC_KMK_CD, PRC_KMK_CD_NORMAL_LIST.get(p));	
							// シミュレーション結果リストを格納
							jacPrcSimulationMsg2List.add(jacPrcSimulationMsg2Map);
							jacPrcSimulationMap.put(JACPRCSIMULATIONCCMSG2LIST, jacPrcSimulationMsg2List);
						}
					}

					// 料金シミュレーション結果を格納
					HashMap outMap = new HashMap();
					jacPrcSimulationList.add(jacPrcSimulationMap);
					outMap.put(JACPRCSIMULATIONLIST, jacPrcSimulationList);

					// 結果リストを格納
					outMap.put(OUT_MAP_KEY_PCRS_CD, keyPcrsCd);
					outMap.put(OUT_MAP_KEY_PPLAN_CD, PPLAN_CD_MAP.get(keyPcrsCd));
					outList.add(outMap);
				}
			}
		}


		// 最終結果をユーザデータに格納
		resultMap.put(RESULT_LIST_NM, outList);
		param.setData(fixedText, resultMap);

		return param;
	}

	/**
	 * 基本料金取得処理です。
	 * 引数の料金コース、料金プランコードに該当する基本料金を取得します。
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return リクエストパラメータ管理クラス
	 * @throws Exception
	 */
	public IRequestParameterReadWrite getResultData(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		// 結果返却マップ
		HashMap resultMap = new HashMap();
		// 結果返却リスト
		ArrayList outList = new ArrayList();

		// IN項目：マンションＩＤ
		String mansionId = (String)((HashMap)param.getData(fixedText)).get(KEY_MANSION_ID);
		// IN項目：支払契約識別コード 
		String payKeiSkbtCd = (String)((HashMap)param.getData(fixedText)).get(KEY_PAY_KEI_SKBT_CD);
		// IN項目：提供方式契約番号
		String inTkHoshikiKeiNo = (String)((HashMap)param.getData(fixedText)).get(KEY_TK_HOSHIKI_KEI_NO);

		HashMap outMap = new HashMap();

		// ●料金シミュレーション(基本料金)
		ArrayList kihonPrcList = executeJACPrcSimulation(handle, param, fixedText, mansionId, payKeiSkbtCd, inTkHoshikiKeiNo, JPCModelConstant.FUNC_CD_3);

		// 料金シミュレーション結果を格納
		outMap.put(JACPRCSIMULATIONLIST, kihonPrcList);

		// 結果を格納
		outList.add(outMap);

		// 最終結果をユーザデータに格納
		resultMap.put(RESULT_LIST_NM, outList);
		param.setData(fixedText, resultMap);

		return param;
	}
	/**
	 * チェック処理です。
	 * <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;
	}

	/**
	 * 料金シミュレーション(AC)部品実行処理です。
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param pcrsCd 料金コースコード
	 * @param pplanCd 料金プランコード
	 * @param pcrKmkCdListNm 料金コードリスト
	 * @return 結果リスト
	 * @throws Exception
	 */
	private ArrayList executeJACPrcSimulation(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, String mansionId,
			String payKeiSkbtCd, String tkHoshikiKeiNo, String funcCd) throws Exception
	{
		// 返却結果リスト
		ArrayList prcSimuList = new ArrayList();

		// 上りマッピング
		setPrcSimParam(param, fixedText, mansionId, payKeiSkbtCd, tkHoshikiKeiNo, funcCd);
		// 部品呼出
		JACPrcSimulation prcSimu = new JACPrcSimulation();
		prcSimu.getPrcSimulation(handle, param, fixedText);
		// 結果リスト取得
		prcSimuList.add(getJACPrcSimulation((HashMap)param.getData(fixedText)));

		return prcSimuList;
	}

	/**
	 * 料金シミュレーション部品の上りマッピング処理です。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param pcrsCd 料金コースコード
	 * @param pplanCd 料金プランコード
	 * @param prcKmkCd 料金項目コード
	 * @throws RequestParameterException
	 */
	private void setPrcSimParam(IRequestParameterReadWrite param, String fixedText, String mansionId, String payKeiSkbtCd, String tkHoshikiKeiNo, String funcCd)
			throws RequestParameterException
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング　2013.04.26：機能コード(2→1)変更
		parentMap.put(JCMConstants.FUNC_CODE_KEY, funcCd);

		// シミュレーション依頼リスト
		ArrayList arrayList = new ArrayList<HashMap>();
		HashMap detailMap1 = new HashMap();

		// マンションID
		detailMap1.put(KEY_MANSION_ID, mansionId);

		// ＫＥＹ＿支払契約識別コード
		detailMap1.put(KEY_PAY_KEI_SKBT_CD, payKeiSkbtCd);
		
		// 提供方式契約番号
		detailMap1.put(KEY_TK_HOSHIKI_KEI_NO, tkHoshikiKeiNo);

		arrayList.add(detailMap1);
		parentMap.put(JACPrcSimulationMsg.JACPrcSimulationMSG1LIST, arrayList);

		// シミュレーション結果リスト
		ArrayList resList = new ArrayList<HashMap>();
		HashMap detailMap = new HashMap();
		resList.add(detailMap);
		parentMap.put(JACPrcSimulationMsg.JACPrcSimulationMSG2LIST, resList);

		param.setData(fixedText, parentMap);
	}

	/**
	 * 料金シミュレーション部品の下りマッピング処理です。
	 * @param dataMap INマップ
	 * @return 結果マップ
	 */
	private HashMap getJACPrcSimulation(HashMap dataMap)
	{
		HashMap resultMap = new HashMap();
		ArrayList resultList = new ArrayList();

		// シミュレーション依頼リスト
		ArrayList<HashMap> childList01 = getDTLList(dataMap, JACPrcSimulationMsg.JACPrcSimulationMSG1LIST);
		// シミュレーション結果リスト
		ArrayList<HashMap> childList02 = getDTLList(dataMap, JACPrcSimulationMsg.JACPrcSimulationMSG2LIST);

		if (childList01 != null && childList02 != null)
		{
			for (int i = 0; i < childList02.size(); i++)
			{
				HashMap childMap02 = childList02.get(i);

				// シミュレーション結果リストのマップを明細(返却)リストに格納
				resultList.add(childMap02);
			}
		}

		// 返却マップに格納
		resultMap.put(JACPrcSimulationMsg.JACPrcSimulationMSG2LIST, resultList);

		return resultMap;
	}

	/**
	 * 明細リストを返却します。
	 * <br>
	 * @param dataMap INマップ
	 * @param listNm リスト名
	 * @return 検索結果リスト
	 */
	private ArrayList<HashMap> getDTLList(HashMap dataMap, String listNm)
	{
		// 結果格納用リスト
		ArrayList<HashMap> resultList = new ArrayList<HashMap>();
		// リスト内検索
		ArrayList childList = (ArrayList)dataMap.get(listNm);

		if (childList != null && childList.size() > 0)
		{
			for (int j = 0; j < childList.size(); j++)
			{
				HashMap childMap = (HashMap)childList.get(j);
				resultList.add(childMap);
			}
		}

		return resultList;
	}

	/**
	 * 上りマッピング項目設定(提供方式契約一意照会）
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param tkHoshikiKeiNo 提供方式契約番号
	 * @throws RequestParameterException
	 */
	private void setInMapKaisenUseKeiNoSearch(IRequestParameterReadWrite param, String fixedText, String tkHoshikiKeiNo)
			throws RequestParameterException
	{
		// 機能コード設定(1:提供方式契約一意照会)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿提供方式契約番号
		inMap.put(EKK0891A010CBSMsg.KEY_TK_HOSHIKI_KEI_NO, tkHoshikiKeiNo);
	}

	/**
	 * 上りマッピング項目設定(回線使用契約一意照会）
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kaisenUseKeiNo 回線使用契約番号
	 * @throws RequestParameterException
	 */
	private void setInMapOwnrKeiNoSearch(IRequestParameterReadWrite param, String fixedText, String kaisenUseKeiNo) throws RequestParameterException
	{
		// 機能コード設定(1:回線使用契約一意照会)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿回線使用契約番号
		inMap.put(EKK0881A010CBSMsg.KEY_KAISEN_USE_KEI_NO, kaisenUseKeiNo);
	}
}
