/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JKKGetSvcKeiMobileCC
*   ソースファイル名：JKKGetSvcKeiMobileCC.java
*   作成者          ：富士通
*   日付            ：2011年09月08日
*＜機能概要＞
*   eoモバイル契約の照会を行います。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/09/08   FJ）眞方    新規作成
*   v4.00.00    2012/08/06   FJ）北浦    【ANK-0099-00-00】eoモバイルへのeo64移行用料金プラン追加
*   v4.01.00    2012/08/07   FJ) 上田    【ANK-0398-00-00】住所管理に伴う「例外登録」の管理追加対応
*   v4.02.00    2012/09/07   FJ) 川西    【ANK-0546-00-00】宅内PF対応
*   v4.03.00    2012/10/16   FJ）松田    【ANK-1199-00-00】申込書明細番号の自動発番について
*   v4.04.00    2012/11/19   FJ）松田    【IT1-2012-0002135】更新年月日時分秒(更新前)のマッピング修正
*   v4.05.00    2012/12/20   FJ）松田    【KAD-2012-0001108】書面での受付番号の申込イメージの紐付けについて
*   v5.00.00	2013/01/25   FJ) 谷口	 【ANK-1270-02-00】１G値下げに伴う200M申込受付停止及びファミパ・無線ルータ値下げ対応
*   v5.01.00    2013/02/07   FJ) 中山    【ST2-2013-0000666】DB照会データがNULLの場合の空文字列変換
**********************************************************************/

package com.fujitsu.futurity.bp.custom.common;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.fujitsu.futurity.bp.x21.bpm.ServiceComponentRequestInvoker;
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.AbstractCommonComponent;
import com.fujitsu.futurity.bp.x21.cc.ICommonComponent;
import com.fujitsu.futurity.bp.x21.cc.exception.CCException;
import com.fujitsu.futurity.common.JCMConstants;
import com.fujitsu.futurity.model.base.CAANMsg;

import eo.common.constant.JKKStrConst;
import eo.common.constant.JPCModelConstant;
import eo.ejb.cbs.cbsmsg.EKK0021A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0021A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0121A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0121A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0161B004CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0161B004CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0201A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0201A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0251A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0251A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0251B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0251B001CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0341B508CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0341B508CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0351B512CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0351B512CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0361A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0361A010CBSMsg1List;


/**
 *eoモバイル契約の照会を行います。
 * <BR>
 * @author 富士通
 */
public class JKKGetSvcKeiMobileCC extends AbstractCommonComponent implements ICommonComponent
{

	/**
	 * eoモバイル照会処理
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param ccName ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite getSvcKeiMobile(SessionHandle handle, IRequestParameterReadWrite param, String ccName) throws Throwable
	{
		// エラーフラグ(実行判定用)
		String errFlgCc = "0";

		// 作業用変数の初期化
		Map<?, ?> result = null;
		Map mskmDtlNoAll = new HashMap();

		// データ返却用のマップオブジェクト
		Map userMap = new HashMap();

		Map<String, Object> ccParam = (Map<String, Object>)param.getData(ccName);
		if (ccParam == null)
		{
			return param;
		}

		// ワークエリアからeoモバイルのサービス契約情報を取得する
		List<HashMap> svcKeiMapList = getSvcKeiList(param, mskmDtlNoAll);
		if ((svcKeiMapList == null) || (svcKeiMapList.size() == 0))
		{
			// eoモバイルのサービス契約が存在しなければ、処理終了
			return param;
		}

		String opeDate = (String)ccParam.get("ope_date");

		String preMskmDtlNo = null;

		for (Map svcKeiMap : svcKeiMapList) {

			String svcKeiNo = (String)svcKeiMap.get("svc_kei_no");           // サービス契約番号
			String mskmDtlNo = (String)svcKeiMap.get("mskm_dtl_no");         // 申込明細番号
			String pcrsCd = (String)svcKeiMap.get("pcrs_cd");
			String prcGrpCd = (String)svcKeiMap.get("prc_grp_cd");           // 料金グループコード
			String pplanCd = (String)svcKeiMap.get("pplan_cd");              // 料金プランコード

			// サービス契約番号,料金コースコードを返却値に設定
			// (Wi-Fi以外のサービス契約の情報が設定されていない時のみ)
			if (!userMap.containsKey("mobile_svc_kei_no"))
			{
				setDataMap(userMap, "mobile_svc_kei_no", svcKeiNo);
				setDataMap(userMap, "mobile_pcrs_cd", pcrsCd);
				setDataMap(userMap, "mobile_prc_grp_cd", prcGrpCd);
				setDataMap(userMap, "mobile_pplan_cd", pplanCd);
			}
					
			/****************************************************/
			/** 機器提供サービス契約一意照会                    */
			/****************************************************/
			String listNamePre = null;
			Map<?, ?> resultKiki = callGetKktkSvcKeiSc(handle, param, svcKeiNo);
			if (JKKBpCommon.isSuccess(resultKiki))
			{
				ArrayList msg1List = new ArrayList();
				userMap.put("mobile_EKK0341B508CBSMsg1List", msg1List);
				CAANMsg[] list = JKKBpCommon.getResultMsgList(resultKiki, EKK0341B508CBSMsg.EKK0341B508CBSMSG1LIST);
				
				for (int i = 0; i < list.length; i++)
				{
					
					HashMap<String, Object> childMap = new HashMap<String, Object>();
					
					listNamePre = EKK0341B508CBSMsg.EKK0341B508CBSMSG1LIST + "[" + i + "].";
					
					String kktkSvcKeiNo = JKKBpCommon.getResultString(resultKiki, listNamePre + EKK0341B508CBSMsg1List.KKTK_SVC_KEI_NO);
					if ((kktkSvcKeiNo != null) && (!"".equals(kktkSvcKeiNo)))
					{
						setDataMap(childMap, "mobile_svc_kei_no", svcKeiNo); // サービス契約番号
						setDataMap(childMap, "mobile_pcrs_cd", pcrsCd); // 料金コースコード(Wi-FIのものが既に設定されていても上書きでOK)
						setDataMap(childMap, "mobile_kktk_pcrs_cd", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.PCRS_CD)); // 機器＿料金コースコード
						setDataMap(childMap, "mobile_kktk_pplan_cd", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.PPLAN_CD)); // 機器＿料金プランコード
						setDataMap(childMap, "mobile_kiki_sohus_ad_cd", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.KIKI_SOHUS_AD_CD)); // 機器送付先＿住所コード
						setDataMap(childMap, "mobile_kiki_sohus_pcd", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.KIKI_SOHUS_PCD)); // 機器送付先＿郵便番号
						setDataMap(childMap, "mobile_kiki_sohus_state_nm", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.KIKI_SOHUS_STATE_NM)); // 機器送付先＿都道府県
						setDataMap(childMap, "mobile_kiki_sohus_city_nm", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.KIKI_SOHUS_CITY_NM)); // 機器送付先＿市区町村
						setDataMap(childMap, "mobile_kiki_sohus_oaztsu_nm", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.KIKI_SOHUS_OAZTSU_NM));// 機器送付先＿大字通称名
						setDataMap(childMap, "mobile_kiki_sohus_azcho_nm", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.KIKI_SOHUS_AZCHO_NM)); // 機器送付先＿字丁目
						setDataMap(childMap, "mobile_kiki_sohus_bnchigo", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.KIKI_SOHUS_BNCHIGO)); // 機器送付先＿番地・号
						setDataMap(childMap, "mobile_kiki_sohus_adrttm", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.KIKI_SOHUS_ADRTTM)); // 機器送付先＿建物名等
						setDataMap(childMap, "mobile_kiki_sohus_adrrm", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.KIKI_SOHUS_ADRRM)); // 機器送付先＿部屋番号等
						setDataMap(childMap, "mobile_kktk_svc_kei_no", kktkSvcKeiNo); // 機器提供サービス契約番号
						setDataMap(childMap, "mobile_kktk_svc_cd", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.KKTK_SVC_CD)); // 機器提供サービスコード
						setDataMap(childMap, "mobile_last_upd_dtm", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.LAST_UPD_DTM)); // 最終更新年月日時分秒
						setDataMap(childMap, "mobile_rsv_aply_ymd", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.RSV_APLY_YMD)); // 予約適用年月日
						setDataMap(childMap, "mobile_pnlty_hassei_cd", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.PNLTY_HASSEI_CD)); // 違約金発生コード
						setDataMap(childMap, "mobile_kktk_sbt_cd", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.KKTK_SBT_CD)); // 機器提供種別コード
						setDataMap(childMap, "mobile_hambai_sbt_cd", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.HAMBAI_SBT_CD)); // 販売種別コード
						setDataMap(childMap, "mobile_hdd_capa_cd", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.HDD_CAPA_CD)); // HDD容量コード
						setDataMap(childMap, "mobile_tsushin_kiki_set_cd", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.TSUSHIN_KIKI_SET_CD)); // 通信機器セットコード
						setDataMap(childMap, "mobile_mskm_dtl_no", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.MSKM_DTL_NO)); // 申込明細番号
						setDataMap(childMap, "mobile_link_stb_flg", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.LINK_STB_FLG)); // リンクSTBフラグ
						setDataMap(childMap, "mobile_kiki_soryo_um", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.KIKI_SORYO_UM)); // 機器送料有無
						setDataMap(childMap, "mobile_kiki_sohus_nm", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.KIKI_SOHUS_NM)); // 機器送付先名
						setDataMap(childMap, "mobile_kiki_sohus_kana", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.KIKI_SOHUS_KANA)); // 機器送付先カナ名
						setDataMap(childMap, "mobile_kiki_sohus_telno", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.KIKI_SOHUS_TELNO)); // 機器送付先電話番号
						setDataMap(childMap, "mobile_kiki_sohus_ksh_ad_sai_flg", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.KIKI_SOHUS_KSH_AD_SAI_FLG)); // 機器送付先_契約者住所差異フラグ
						setDataMap(childMap, "mobile_kiki_shs_kbt_shitei_flg", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.KIKI_SHS_KBT_SHITEI_FLG)); // 機器送付先個別指定フラグ
						setDataMap(childMap, "mobile_ad_mi_fix_flg", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.AD_MI_FIX_FLG)); // 住所未確定フラグ
						setDataMap(childMap, "mobile_haiso_div", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.HAISO_DIV)); // 配送区分
						setDataMap(childMap, "mobile_ftrial_kanyu_ymd", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.FTRIAL_KANYU_YMD)); // 試用加入年月日
						setDataMap(childMap, "mobile_ftrial_prd_endymd", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.FTRIAL_PRD_ENDYMD)); // 試用期間終了年月日
						setDataMap(childMap, "mobile_honkanyu_ymd", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.HONKANYU_YMD)); // 本加入年月日
						setDataMap(childMap, "mobile_honkanyu_iko_kigen_ymd", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.HONKANYU_IKO_KIGEN_YMD)); // 本加入移行期限年月日
						setDataMap(childMap, "mobile_hosho_cd", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.HOSHO_CD)); // 保証コード
						setDataMap(childMap, "mobile_ido_div", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.IDO_DIV)); // 異動区分
						setDataMap(childMap, "mobile_cas_card_use_kyodak_ymd", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.CAS_CARD_USE_KYODAK_YMD)); // CASカード使用許諾年月日
						setDataMap(childMap, "mobile_kiki_huka_info_cd", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.KIKI_HUKA_INFO_CD)); // 機器付加情報コード
						setDataMap(childMap, "mobile_taknkiki_model_cd", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.TAKNKIKI_MODEL_CD)); // 宅内機器型式コード
						setDataMap(childMap, "mobile_kiki_seizo_no", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.KIKI_SEIZO_NO)); // 機器製造番号
						setDataMap(childMap, "mobile_kiki_hkat_shitei_soko_cd", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.KIKI_HKAT_SHITEI_SOKO_CD)); // 機器引当指定倉庫コード
						setDataMap(childMap, "mobile_kiki_hkat_shitei_skdn_cd", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.KIKI_HKAT_SHITEI_SKDN_CD)); // 機器引当指定倉庫棚コード
						setDataMap(childMap, "mobile_kiki_shs_ad_man_input_flg", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.KIKI_SHS_AD_MAN_INPUT_FLG)); // 機器送付先住所手動入力フラグ
						setDataMap(childMap, "mobile_kiki_sti_ji_kriplace_skcd", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.KIKI_STI_JI_KRIPLACE_SKCD));// 機器指定時管理場所識別コード
						setDataMap(childMap, "mobile_kiki_sti_ji_kocomp_cd", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.KIKI_STI_JI_KOCOMP_CD));// 機器指定時工事会社コード
						setDataMap(childMap, "mobile_kiki_sti_ji_kocomp_slf_cd", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.KIKI_STI_JI_KOCOMP_SLF_CD));// 機器指定時工事会社棚コード
						setDataMap(childMap, "mobile_kiki_sti_ji_ytkskof_cd", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.KIKI_STI_JI_YTKSKOF_CD));// 機器指定時預託先オフィスコード
						setDataMap(childMap, "mobile_kiki_sti_ji_ytkskof_slf_cd", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.KIKI_STI_JI_YTKSKOF_SLF_CD));// 機器指定時預託先オフィス棚コード
						setDataMap(childMap, "mobile_haiso_way_cd", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.HAISO_WAY_CD));// 配送方法コード
						setDataMap(childMap, "mobile_kiki_itens_mv_jssis_skcd", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.KIKI_ITENS_MV_JSSIS_SKCD));// 機器移転先移動実施者識別コード
						setDataMap(childMap, "mobile_kaishu_kiki_um", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.KAISHU_KIKI_UM));// 回収機器有無
						setDataMap(childMap, "mobile_haiso_req_shitei_ymd", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.HAISO_REQ_SHITEI_YMD));// 配送依頼指定年月日
						setDataMap(childMap, "mobile_svc_sta_ji_his_jokyo_skcd", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.SVC_STA_JI_HIS_JOKYO_SKCD));// サービス開始時配送状況識別コード
						setDataMap(childMap, "mobile_upd_dtm", JKKBpCommon.getResultString(resultKiki, listNamePre
								+ EKK0341B508CBSMsg1List.UPD_DTM));// 更新年月日時分秒
						msg1List.add(childMap);
					}
					
				}
			}
			else
			{
				// エラー情報のセット
				errFlgCc = "1";
				JKKBpCommon.setResultCtrlData(param, resultKiki);
			}

			if (!mskmDtlNo.equals(preMskmDtlNo))
			{
				/***************************************************/
				/** 申込明細一意照会SC呼出                         */
				/***************************************************/
				result = callGetMskmDtlSc(handle, param, mskmDtlNo);
				if (JKKBpCommon.isSuccess(result))
				{
					
					String resultPre = EKK0021A010CBSMsg.EKK0021A010CBSMSG1LIST + "[0].";
					// 申込明細番号
					setDataMap(userMap, "mobile_mskm_dtl_no", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.MSKM_DTL_NO));
					// 世代登録年月日時分秒
					setDataMap(userMap, "mobile_gene_add_dtm", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.GENE_ADD_DTM));
					// 申込明細ステータス
					setDataMap(userMap, "mobile_mskm_dtl_stat", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.MSKM_DTL_STAT));
					// 申込明細ステータス名称
					setDataMap(userMap, "mobile_mskm_dtl_stat_nm", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.MSKM_DTL_STAT_NM));
					// 申込番号
					setDataMap(userMap, "mobile_mskm_no", JKKBpCommon.getResultString(result, resultPre + EKK0021A010CBSMsg1List.MSKM_NO));
					// 申込書番号
					setDataMap(userMap, "mobile_mskmsho_no", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.MSKMSHO_NO));
					// 申込書明細番号
					setDataMap(userMap, "mobile_mskmsho_dtl_no", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.MSKMSHO_DTL_NO));
					// 申込年月日
					setDataMap(userMap, "mobile_mskm_ymd", JKKBpCommon.getResultString(result, resultPre + EKK0021A010CBSMsg1List.MSKM_YMD));
					// SYSID
					setDataMap(userMap, "mobile_sysid", JKKBpCommon.getResultString(result, resultPre + EKK0021A010CBSMsg1List.SYSID));
					// SYSID名称
					setDataMap(userMap, "mobile_sysid_nm", JKKBpCommon.getResultString(result, resultPre + EKK0021A010CBSMsg1List.SYSID_NM));
					// WEB受付番号
					setDataMap(userMap, "mobile_web_uk_no", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.WEB_UK_NO));
					// 申込形態コード
					setDataMap(userMap, "mobile_mskm_form_cd", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.MSKM_FORM_CD));
					// 申込形態コード名称
					setDataMap(userMap, "mobile_mskm_form_cd_nm", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.MSKM_FORM_CD_NM));
					// 申込明細種別コード
					setDataMap(userMap, "mobile_mskm_dtl_sbt_cd", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.MSKM_DTL_SBT_CD));
					// 連絡先携帯電話番号
					setDataMap(userMap, "mobile_rrks_ktai_telno", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.RRKS_KTAI_TELNO));
					// 連絡先勤務先名
					setDataMap(userMap, "mobile_rrks_offc_nm", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.RRKS_OFFC_NM));
					// 昼間連絡先電話番号
					setDataMap(userMap, "mobile_dt_rrks_telno", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.DT_RRKS_TELNO));
					// 新規申込種別コード
					setDataMap(userMap, "mobile_new_mskm_sbt_cd", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.NEW_MSKM_SBT_CD));
					// 申込契機コード
					setDataMap(userMap, "mobile_mskm_optnty_cd", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.MSKM_OPTNTY_CD));
					// 申込契機コード名称
					setDataMap(userMap, "mobile_mskm_optnty_cd_nm", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.MSKM_OPTNTY_CD_NM));
					// 宅内調査希望アポ期限年月日
					setDataMap(userMap, "mobile_takcho_kibo_apo_kigen_ymd", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.TAKCHO_KIBO_APO_KIGEN_YMD));
					// 工事アポ連絡先指定コード
					setDataMap(userMap, "mobile_koji_apo_rrks_shitei_cd", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.KOJI_APO_RRKS_SHITEI_CD));
					// 工事アポ連絡先電話番号
					setDataMap(userMap, "mobile_koji_apo_rrks_telno", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.KOJI_APO_RRKS_TELNO));
					// 連絡事項登録年月日時分秒
					setDataMap(userMap, "mobile_rrk_jiko_add_dtm", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.RRK_JIKO_ADD_DTM));
					// 申込明細照査年月日時分秒
					setDataMap(userMap, "mobile_mskm_dtl_shosa_dtm", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.MSKM_DTL_SHOSA_DTM));
					// 申込明細照査取消年月日
					setDataMap(userMap, "mobile_mskm_dtl_shosa_cl_ymd", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.MSKM_DTL_SHOSA_CL_YMD));
					// 後続業務依頼年月日
					setDataMap(userMap, "mobile_kzkwrk_reqymd", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.KZKWRK_REQYMD));
					// 申込明細キャンセル年月日
					setDataMap(userMap, "mobile_mskm_dtl_cancel_ymd", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.MSKM_DTL_CANCEL_YMD));
					// 申込明細キャンセル理由コード
					setDataMap(userMap, "mobile_mskm_dtl_cancel_rsn_cd", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.MSKM_DTL_CANCEL_RSN_CD));
					// 申込明細キャンセル理由メモ
					setDataMap(userMap, "mobile_mskm_dtl_cancel_rsn_memo", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.MSKM_DTL_CANCEL_RSN_MEMO));
					// 申込明細キャンセル取消年月日
					setDataMap(userMap, "mobile_mskm_dtl_cancel_cl_ymd", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.MSKM_DTL_CANCEL_CL_YMD));
					// 申込連絡先メールアドレス
					setDataMap(userMap, "mobile_mskm_rrks_mlad", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.MSKM_RRKS_MLAD));
					// 工事進捗通知メールアドレス
					setDataMap(userMap, "mobile_koji_prg_tchi_mlad", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.KOJI_PRG_TCHI_MLAD));
					// 連絡事項
					setDataMap(userMap, "mobile_rrk_jiko", JKKBpCommon.getResultString(result, resultPre + EKK0021A010CBSMsg1List.RRK_JIKO));
					// 最新照会年月日
					setDataMap(userMap, "mobile_rcnt_shokai_ymd", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.RCNT_SHOKAI_YMD));
					// Web照会回数
					setDataMap(userMap, "mobile_web_shokai_cnt", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.WEB_SHOKAI_CNT));
					// PC照会回数
					setDataMap(userMap, "mobile_pc_shokai_cnt", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.PC_SHOKAI_CNT));
					// 携帯照会回数
					setDataMap(userMap, "mobile_ktai_shokai_cnt", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.KTAI_SHOKAI_CNT));
					// 工事進捗通知携帯メールアドレス
					setDataMap(userMap, "mobile_kjsc_tch_ktai_mlad", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.KJSC_TCH_KTAI_MLAD));
					// 工事進捗通知PCメールアドレス変更年月日
					setDataMap(userMap, "mobile_kjsc_tch_pc_mlad_chg_ymd", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.KJSC_TCH_PC_MLAD_CHG_YMD));
					// 工事進捗通知携帯メールアドレス変更年月日
					setDataMap(userMap, "mobile_kjsc_tch_ktai_mlad_chg_ymd", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.KJSC_TCH_KTAI_MLAD_CHG_YMD));
					// 進捗メール最終送信年月日時分秒
					setDataMap(userMap, "mobile_prg_ml_last_send_dtm", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.PRG_ML_LAST_SEND_DTM));
					// メール送信除外フラグ
					setDataMap(userMap, "mobile_ml_send_jgi_flg", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.ML_SEND_JGI_FLG));
					// メール送信除外理由メモ
					setDataMap(userMap, "mobile_ml_send_jgi_rsn_memo", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.ML_SEND_JGI_RSN_MEMO));
					// 番ポ申込連絡先電話番号
					setDataMap(userMap, "mobile_bmp_mskm_rrks_tln", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.BMP_MSKM_RRKS_TLN));
					// オプションサービス引継有無
					setDataMap(userMap, "mobile_op_svc_hktgi_um", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.OP_SVC_HKTGI_UM));
					// オプションサービス引継有無名称
					setDataMap(userMap, "mobile_op_svc_hktgi_um_nm", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.OP_SVC_HKTGI_UM_NM));
					// 解約書類送付希望有無
					setDataMap(userMap, "mobile_dsl_aticle_sohu_kibo_um", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.DSL_ATICLE_SOHU_KIBO_UM));
					// 解約書類送付希望有無名称
					setDataMap(userMap, "mobile_dsl_aticle_sohu_kibo_um_nm", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.DSL_ATICLE_SOHU_KIBO_UM_NM));
					// 連絡手段補記
					setDataMap(userMap, "mobile_rrk_way_hoki", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.RRK_WAY_HOKI));
					// 新築物件コード
					setDataMap(userMap, "mobile_newconst_bukken_cd", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.NEWCONST_BUKKEN_CD));
					// 新築物件コード名称
					setDataMap(userMap, "mobile_newconst_bukken_cd_nm", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.NEWCONST_BUKKEN_CD_NM));
					// 復活案件フラグ
					setDataMap(userMap, "mobile_hukkat_anken_flg", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.HUKKAT_ANKEN_FLG));
					// 復活案件フラグ名称
					setDataMap(userMap, "mobile_hukkat_anken_flg_nm", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.HUKKAT_ANKEN_FLG_NM));
					// 同一設備再申込コード
					setDataMap(userMap, "mobile_same_equip_re_mskm_cd", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.SAME_EQUIP_RE_MSKM_CD));
					// 同一設備再申込コード名称
					setDataMap(userMap, "mobile_same_equip_re_mskm_cd_nm", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.SAME_EQUIP_RE_MSKM_CD_NM));
					// 本人確認書類種別コード
					setDataMap(userMap, "mobile_hnin_cfm_aticle_sbt_cd", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.HNIN_CFM_ATICLE_SBT_CD));
					// 本人確認書類種別コード名称
					setDataMap(userMap, "mobile_hnin_cfm_aticle_sbt_cd_nm", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.HNIN_CFM_ATICLE_SBT_CD_NM));
					// 申込書種別コード
					setDataMap(userMap, "mobile_mskmsho_sbt_cd", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.MSKMSHO_SBT_CD));
					// 申込書種別コード名称
					setDataMap(userMap, "mobile_mskmsho_sbt_cd_nm", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.MSKMSHO_SBT_CD_NM));
					// 契約付加コード
					setDataMap(userMap, "mobile_kei_huka_cd", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.KEI_HUKA_CD));
					// 地図添付有無
					setDataMap(userMap, "mobile_map_temp_um", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.MAP_TEMP_UM));
					// 地図添付有無名称
					setDataMap(userMap, "mobile_map_temp_um_nm", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.MAP_TEMP_UM_NM));
					// KCNSTB申込台数
					setDataMap(userMap, "mobile_kcn_stb_mskm_cnt", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.KCN_STB_MSKM_CNT));
					// KCNSTB種類コード
					setDataMap(userMap, "mobile_kcn_stb_kind_cd", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.KCN_STB_KIND_CD));
					// マンション設備システム連携用記事欄
					setDataMap(userMap, "mobile_manssbsys_rnki_yo_kijiran", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.MANSSBSYS_RNKI_YO_KIJIRAN));
					// マンションID
					setDataMap(userMap, "mobile_mansion_id", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.MANSION_ID));
					// CAT-ID
					setDataMap(userMap, "mobile_catid", JKKBpCommon.getResultString(result, resultPre + EKK0021A010CBSMsg1List.CATID));
					// 申込受付種別コード
					setDataMap(userMap, "mobile_mkm_uk_sbt_cd", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.MKM_UK_SBT_CD));
					// 申込受付種別コード名称
					setDataMap(userMap, "mobile_mkm_uk_sbt_cd_nm", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.MKM_UK_SBT_CD_NM));
					// 申込書取扱情報担当者名
					setDataMap(userMap, "mobile_mskmsho_trat_if_tntsha_nm", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.MSKMSHO_TRAT_IF_TNTSHA_NM));
					// 申込書取扱情報電話番号
					setDataMap(userMap, "mobile_mskmsho_trat_if_telno", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.MSKMSHO_TRAT_IF_TELNO));
					// 割引自動適用対象外フラグ
					setDataMap(userMap, "mobile_wrib_auto_aply_tg_gai_flg", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.WRIB_AUTO_APLY_TG_GAI_FLG));
					// 登録年月日時分秒
					setDataMap(userMap, "mobile_add_dtmo", JKKBpCommon.getResultString(result, resultPre + EKK0021A010CBSMsg1List.ADD_DTM));
					// 登録オペレータアカウント
					setDataMap(userMap, "mobile_add_opeacnt", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.ADD_OPEACNT));
					// 更新年月日時分秒
					setDataMap(userMap, "mobile_upd_dtm", JKKBpCommon.getResultString(result, resultPre + EKK0021A010CBSMsg1List.UPD_DTM));
					// 更新オペレータアカウント
					setDataMap(userMap, "mobile_upd_opeacnt", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.UPD_OPEACNT));
					// 削除年月日時分秒
					setDataMap(userMap, "mobile_del_dtm", JKKBpCommon.getResultString(result, resultPre + EKK0021A010CBSMsg1List.DEL_DTM));
					// 削除オペレータアカウント
					setDataMap(userMap, "mobile_del_opeacnt", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.DEL_OPEACNT));
					// 無効フラグ
					setDataMap(userMap, "mobile_mk_flg", JKKBpCommon.getResultString(result, resultPre + EKK0021A010CBSMsg1List.MK_FLG));
					// 無効フラグ名称
					setDataMap(userMap, "mobile_mk_flg_nm", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.MK_FLG_NM));
					// 最終更新年月日時分秒
					setDataMap(userMap, "mobile_mskm_last_upd_dtm", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.LAST_UPD_DTM));
					// 本人確認書類名
					setDataMap(userMap, "hnin_cfm_aticle_nm", JKKBpCommon.getResultString(result, resultPre
							+ EKK0021A010CBSMsg1List.HNIN_CFM_ATICLE_NM));
				}
				else
				{
					// エラー情報のセット
					errFlgCc = "1";
					JKKBpCommon.setResultCtrlData(param, result);
				}
				preMskmDtlNo = mskmDtlNo;
			}
		}

		/***************************************************/
		/** サービス契約一意照会SC呼出                     */
		/***************************************************/
		String svcKeiNo = (String)userMap.get("mobile_svc_kei_no");
		result = callGetSvcKeiSc(handle, param, svcKeiNo, opeDate);
		if (JKKBpCommon.isSuccess(result))
		{
			String resultPre = EKK0081A010CBSMsg.EKK0081A010CBSMSG1LIST + "[0].";
			setDataMap(userMap, "mobile_mskm_dtl_no", JKKBpCommon.getResultString(result, resultPre + EKK0081A010CBSMsg1List.MSKM_DTL_NO));
			setDataMap(userMap, "mobile_seiri_no", JKKBpCommon.getResultString(result, resultPre + EKK0081A010CBSMsg1List.SEIRI_NO));
			setDataMap(userMap, "mobile_skekka_cd", JKKBpCommon.getResultString(result, resultPre + EKK0081A010CBSMsg1List.SKEKKA_CD));
			setDataMap(userMap, "mobile_skekka_cd_nm", JKKBpCommon.getResultString(result, resultPre + EKK0081A010CBSMsg1List.SKEKKA_CD_NM));
			setDataMap(userMap, "mobile_skekka_send_cd", JKKBpCommon.getResultString(result, resultPre
					+ EKK0081A010CBSMsg1List.SKEKKA_SEND_CD));
			setDataMap(userMap, "mobile_skekka_send_cd_nm", JKKBpCommon.getResultString(result, resultPre
					+ EKK0081A010CBSMsg1List.SKEKKA_SEND_CD_NM));
			setDataMap(userMap, "mobile_skekka_dtl_cd", JKKBpCommon.getResultString(result, resultPre
					+ EKK0081A010CBSMsg1List.SKEKKA_DTL_CD));
			setDataMap(userMap, "mobile_skekka_hoki_cd", JKKBpCommon.getResultString(result, resultPre
					+ EKK0081A010CBSMsg1List.SKEKKA_HOKI_CD));
			setDataMap(userMap, "mobile_skekka_hoki_cd_nm", JKKBpCommon.getResultString(result, resultPre
					+ EKK0081A010CBSMsg1List.SKEKKA_HOKI_CD_NM));
			setDataMap(userMap, "mobile_payway_keizoku_flg", JKKBpCommon.getResultString(result, resultPre
					+ EKK0081A010CBSMsg1List.PAYWAY_KEIZOKU_FLG));
			setDataMap(userMap, "mobile_svc_kei_stat", JKKBpCommon.getResultString(result, resultPre + EKK0081A010CBSMsg1List.SVC_KEI_STAT));
			setDataMap(userMap, "mobile_svc_cd", JKKBpCommon.getResultString(result, resultPre + EKK0081A010CBSMsg1List.SVC_CD));
			setDataMap(userMap, "mobile_last_upd_dtm", JKKBpCommon.getResultString(result, resultPre + EKK0081A010CBSMsg1List.LAST_UPD_DTM));
			setDataMap(userMap, "mobile_ido_ng_stat_cd", JKKBpCommon.getResultString(result, resultPre
					+ EKK0081A010CBSMsg1List.IDO_NG_STAT_CD));
			setDataMap(userMap, "mobile_intr_cd", JKKBpCommon.getResultString(result, resultPre + EKK0081A010CBSMsg1List.INTR_CD));
			setDataMap(userMap, "mobile_work_rrk_biko", JKKBpCommon.getResultString(result, resultPre
					+ EKK0081A010CBSMsg1List.WORK_RRK_BIKO));
			setDataMap(userMap, "kk0081_ido_div", JKKBpCommon.getResultString(result, resultPre + EKK0081A010CBSMsg1List.IDO_DIV));
			setDataMap(userMap, "kk0081_last_upd_dtm", JKKBpCommon.getResultString(result, resultPre + EKK0081A010CBSMsg1List.LAST_UPD_DTM));
			setDataMap(userMap, "kk0081_juryo_chok_tchi_yh", JKKBpCommon.getResultString(result, resultPre
					+ EKK0081A010CBSMsg1List.JURYO_CHOK_TCHI_YH));
			setDataMap(userMap, "kk0081_juryo_chok_tchi_yh_nm", JKKBpCommon.getResultString(result, resultPre
					+ EKK0081A010CBSMsg1List.JURYO_CHOK_TCHI_YH_NM));
			
			// ID速報書出力要否
			setDataMap(userMap, "kk0081_id_sokhosho_output_yh", JKKBpCommon.getResultString(result, resultPre
					+ EKK0081A010CBSMsg1List.ID_SOKHOSHO_OUTPUT_YH));
			// 試用加入年月日
			setDataMap(userMap, "kk0081_ftrial_kanyu_ymd", JKKBpCommon.getResultString(result, resultPre
					+ EKK0081A010CBSMsg1List.FTRIAL_KANYU_YMD));
			// 試用期間終了年月日
			setDataMap(userMap, "kk0081_ftrial_prd_endymd", JKKBpCommon.getResultString(result, resultPre
					+ EKK0081A010CBSMsg1List.FTRIAL_PRD_ENDYMD));
			// 本加入年月日
			setDataMap(userMap, "kk0081_honkanyu_ymd", JKKBpCommon.getResultString(result, resultPre + EKK0081A010CBSMsg1List.HONKANYU_YMD));
			// 本加入移行期限年月日
			setDataMap(userMap, "kk0081_honkanyu_iko_kigen_ymd", JKKBpCommon.getResultString(result, resultPre
					+ EKK0081A010CBSMsg1List.HONKANYU_IKO_KIGEN_YMD));
			// レター発送仕分区分
			setDataMap(userMap, "kk0081_letter_hasso_shiwake_div", JKKBpCommon.getResultString(result, resultPre
					+ EKK0081A010CBSMsg1List.LETTER_HASSO_SHIWAKE_DIV));
			// サンキューレター送付先コード
			setDataMap(userMap, "kk0081_thnx_letter_shs_cd", JKKBpCommon.getResultString(result, resultPre
					+ EKK0081A010CBSMsg1List.THNX_LETTER_SHS_CD));
			// WEBオプション追加不可フラグ
			setDataMap(userMap, "kk0081_web_op_add_fail_flg", JKKBpCommon.getResultString(result, resultPre
					+ EKK0081A010CBSMsg1List.WEB_OP_ADD_FAIL_FLG));
			// 違約金発生コード
			setDataMap(userMap, "kk0081_pnlty_hassei_cd", JKKBpCommon.getResultString(result, resultPre
					+ EKK0081A010CBSMsg1List.PNLTY_HASSEI_CD));
			
			result = callGetSvcKeiMobileSc(handle, param, svcKeiNo,
					JKKBpCommon.getResultString(result, resultPre + EKK0081A010CBSMsg1List.GENE_ADD_DTM));
			if (JKKBpCommon.isSuccess(result))
			{
				CAANMsg[] list = JKKBpCommon.getResultMsgList(result, EKK0121A010CBSMsg.EKK0121A010CBSMSG1LIST);
				if (list != null && list.length > 0)
				{
					// １件のみ照会される想定のためindex:0のレコードをマッピングする
					EKK0121A010CBSMsg1List msgLst = new EKK0121A010CBSMsg1List();
					for (int i = 0; i < msgLst.getContents().length; i++)
					{
						setDataMap(userMap, "kk0121_" + msgLst.getContents()[i][0], JKKBpCommon.getResultString(result,
								"EKK0121A010CBSMsg1List[0]." + msgLst.getContents()[i][0]));
					}
				}
			}
			else
			{
				// エラー情報のセット
				errFlgCc = "1";
				JKKBpCommon.setResultCtrlData(param, result);
			}
		}
		else
		{
			// エラー情報のセット
			errFlgCc = "1";
			JKKBpCommon.setResultCtrlData(param, result);
		}

		/*********************************************************/
		/** サービス契約回線内訳一覧照会（サービス契約番号）呼出 */
		/*********************************************************/
		result = callGetSvcKeiKaisenUcwkListSc(handle, param, svcKeiNo);
		if (JKKBpCommon.isSuccess(result))
		{
			ArrayList msg1List = new ArrayList();
			userMap.put("mobile_EKK0251B001CBSMsg1List", msg1List);
			CAANMsg[] list = JKKBpCommon.getResultMsgList(result, EKK0251B001CBSMsg.EKK0251B001CBSMSG1LIST);
			if (list != null && list.length > 0)
			{
				for (int idx = 0; idx < list.length; idx++)
				{
					String svcKeiKaisenUcwkNo = JKKBpCommon.getResultString(result,
											"EKK0251B001CBSMsg1List[" + idx + "]." + EKK0251B001CBSMsg1List.SVC_KEI_KAISEN_UCWK_NO);

					/*************************************/
					/** サービス契約回線内訳一意照会呼出 */
					/*************************************/
					Map<?, ?> resultSvcKeiKaisenUcwk = callGetSvcKeiKaisenUcwkSc(handle, param, svcKeiKaisenUcwkNo);
					if (JKKBpCommon.isSuccess(resultSvcKeiKaisenUcwk))
					{
						EKK0251A010CBSMsg1List msgLst = new EKK0251A010CBSMsg1List();
						String svcKeiKaisenUcwkStat = JKKBpCommon.getResultString(resultSvcKeiKaisenUcwk,
								"EKK0251A010CBSMsg1List[0]." + EKK0251A010CBSMsg1List.SVC_KEI_KAISEN_UCWK_STAT);
						if(JKKStrConst.CD00054_010.equals(svcKeiKaisenUcwkStat))
						{
							HashMap<String, Object> childMap = new HashMap<String, Object>();
							for (int i = 0; i < msgLst.getContents().length; i++)
							{
								setDataMap(childMap, (String)msgLst.getContents()[i][0], JKKBpCommon.getResultString(resultSvcKeiKaisenUcwk,
									"EKK0251A010CBSMsg1List[0]." + msgLst.getContents()[i][0]));
							}
							msg1List.add(childMap);
						}
					}
					else
					{
						// エラー情報のセット
						errFlgCc = "1";
						JKKBpCommon.setResultCtrlData(param, resultSvcKeiKaisenUcwk);
					}
				}
			}
		}
		else
		{
			// エラー情報のセット
			errFlgCc = "1";
			JKKBpCommon.setResultCtrlData(param, result);
		}

		/*********************************************************/
		/** サービス契約内訳一覧照会呼出                         */
		/*********************************************************/
		result = callGetSvcKeiUcwkListSc(handle, param, svcKeiNo);
		if (JKKBpCommon.isSuccess(result))
		{
			ArrayList msg1List = new ArrayList();
			userMap.put("mobile_EKK0201A010CBSMsg1List", msg1List);
			CAANMsg[] list = JKKBpCommon.getResultMsgList(result, EKK0161B004CBSMsg.EKK0161B004CBSMSG1LIST);
			if (list != null && list.length > 0)
			{
				for (int idx = 0; idx < list.length; idx++)
				{
					HashMap<String, Object> childMap = new HashMap<String, Object>();
					
					String svcKeiUcwkStat = JKKBpCommon.getResultString(result,
							"EKK0161B004CBSMsg1List[" + idx + "]." + EKK0161B004CBSMsg1List.SVC_KEI_UCWK_STAT);
					if(!JKKStrConst.CD00037_UK_ZM.equals(svcKeiUcwkStat)) 
					{
						continue;
					}
					
					String svcKeiUcwkNo = JKKBpCommon.getResultString(result,
											"EKK0161B004CBSMsg1List[" + idx + "]." + EKK0161B004CBSMsg1List.SVC_KEI_UCWK_NO);

					setDataMap(childMap, "kk0161_pcrs_cd", JKKBpCommon.getResultString(result, "EKK0161B004CBSMsg1List[" + idx + "]."
							+ EKK0161B004CBSMsg1List.PCRS_CD));
					setDataMap(childMap, "kk0161_pplan_cd", JKKBpCommon.getResultString(result, "EKK0161B004CBSMsg1List[" + idx + "]."
							+ EKK0161B004CBSMsg1List.PPLAN_CD));
					setDataMap(childMap, "kk0161_ido_div", JKKBpCommon.getResultString(result, "EKK0161B004CBSMsg1List[" + idx + "]."
							+ EKK0161B004CBSMsg1List.IDO_DIV));

					/***********************************************/
					/** サービス契約内訳＜eoモバイル＞一意照会呼出 */
					/***********************************************/
					Map<?, ?> resultSvcKeiUcwk = callGetSvcKeiUcwkMobileSc(handle, param, svcKeiUcwkNo);
					if (JKKBpCommon.isSuccess(resultSvcKeiUcwk))
					{
						EKK0201A010CBSMsg1List msgLst = new EKK0201A010CBSMsg1List();
						for (int i = 0; i < msgLst.getContents().length; i++)
						{
							setDataMap(childMap, "kk0201_" + msgLst.getContents()[i][0], JKKBpCommon.getResultString(resultSvcKeiUcwk,
									"EKK0201A010CBSMsg1List[0]." + msgLst.getContents()[i][0]));
						}
					}
					else
					{
						// エラー情報のセット
						errFlgCc = "1";
						JKKBpCommon.setResultCtrlData(param, resultSvcKeiUcwk);
					}
					msg1List.add(childMap);
				}
			}
		}
		else
		{
			// エラー情報のセット
			errFlgCc = "1";
			JKKBpCommon.setResultCtrlData(param, result);
		}

		/*********************************************************/
		/** 照査前オプション一覧照会呼出                         */
		/*********************************************************/
		result = callGetOptionListSc(handle, param, svcKeiNo);
		if (JKKBpCommon.isSuccess(result))
		{
			ArrayList msg1List = new ArrayList();
			userMap.put("mobile_optionList", msg1List);
			CAANMsg[] list = JKKBpCommon.getResultMsgList(result, EKK0351B512CBSMsg.EKK0351B512CBSMSG1LIST);
			if (list != null && list.length > 0)
			{
				for (int idx = 0; idx < list.length; idx++)
				{
					String opSvcKeiNo = JKKBpCommon.getResultString(result,
							"EKK0351B512CBSMsg1List[" + idx + "]." + EKK0351B512CBSMsg1List.KK0351_OP_SVC_KEI_NO);

					if (opSvcKeiNo != null && !"".equals(opSvcKeiNo))
					{
						HashMap<String, Object> childMap = new HashMap<String, Object>();
						msg1List.add(childMap);

						//サブオプションサービス契約＿サブオプションサービスコード
						setDataMap(childMap, "kk0351_op_svc_cd", JKKBpCommon.getResultString(result,
								"EKK0351B512CBSMsg1List[" + idx + "]." + EKK0351B512CBSMsg1List.KK0351_OP_SVC_CD));

						setDataMap(childMap, "kk0351_ido_div", JKKBpCommon.getResultString(result, "EKK0351B512CBSMsg1List[" + idx + "]."
								+ EKK0351B512CBSMsg1List.KK0351_IDO_DIV));
						setDataMap(childMap, "kk0351_last_upd_dtm", JKKBpCommon.getResultString(result, "EKK0351B512CBSMsg1List[" + idx
								+ "]." + EKK0351B512CBSMsg1List.KK0351_LAST_UPD_DTM));
						setDataMap(childMap, "kk0401_sbop_svc_kei_no", JKKBpCommon.getResultString(result, "EKK0351B512CBSMsg1List[" + idx
								+ "]." + EKK0351B512CBSMsg1List.KK0401_SBOP_SVC_KEI_NO));
						//サブオプションサービス契約＿サブオプションサービスコード
						setDataMap(childMap, "kk0401_sbop_svc_cd", JKKBpCommon.getResultString(result,
								"EKK0351B512CBSMsg1List[" + idx + "]." + EKK0351B512CBSMsg1List.KK0401_SBOP_SVC_CD));
						setDataMap(childMap, "kk0401_ido_div", JKKBpCommon.getResultString(result, "EKK0351B512CBSMsg1List[" + idx + "]."
								+ EKK0351B512CBSMsg1List.KK0401_IDO_DIV));
						setDataMap(childMap, "kk0401_last_upd_dtm", JKKBpCommon.getResultString(result, "EKK0351B512CBSMsg1List[" + idx
								+ "]." + EKK0351B512CBSMsg1List.KK0401_LAST_UPD_DTM));
						
						//オプションサービス契約＿料金コースコード
						setDataMap(childMap, "kk0351_pcrs_cd", JKKBpCommon.getResultString(result, "EKK0351B512CBSMsg1List[" + idx
								+ "]." + EKK0351B512CBSMsg1List.KK0351_PCRS_CD));
						//オプションサービス契約＿料金プランコード
						setDataMap(childMap, "kk0351_pplan_cd", JKKBpCommon.getResultString(result, "EKK0351B512CBSMsg1List[" + idx
								+ "]." + EKK0351B512CBSMsg1List.KK0351_PPLAN_CD));
						//サブオプションサービス契約＿料金コースコード
						setDataMap(childMap, "kk0401_pcrs_cd", JKKBpCommon.getResultString(result, "EKK0351B512CBSMsg1List[" + idx
								+ "]." + EKK0351B512CBSMsg1List.KK0401_PCRS_CD));
						//サブオプションサービス契約＿料金プランコード
						setDataMap(childMap, "kk0401_pplan_cd", JKKBpCommon.getResultString(result, "EKK0351B512CBSMsg1List[" + idx
								+ "]." + EKK0351B512CBSMsg1List.KK0401_PPLAN_CD));
						
						errFlgCc = callGetOpInfo(handle, param, childMap, opSvcKeiNo, result, errFlgCc, idx);
					}
				}
			}
		}
		else
		{
			// エラー情報のセット
			errFlgCc = "1";
			JKKBpCommon.setResultCtrlData(param, result);
		}

		/***************************************************/
		/** 下りデータマッピング処理開始                   */
		/***************************************************/
		JKKBpCommon.setResultUserData(param, ccName, userMap);
		if ("0".equals(errFlgCc))
		{
			JKKBpCommon.setResultCtrlData(param, result, ccName, 0, 0);
		}
		else
		{
			String errMsg = "eoモバイル照会CCで例外が発生しました";
			throw new CCException(errMsg, new Exception(errMsg));
		}

		return param;
	}

	/**
	 * オプション情報取得処理です。
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param childMap 下りマップ
	 * @param opSvcKeiNo オプションサービス契約番号
	 * @param result BP結果
	 * @param errFlgCc エラーフラグ
	 * @param idx インデックス
	 * @return エラーフラグ
	 * @throws Throwable
	 */
	private String callGetOpInfo(SessionHandle handle, IRequestParameterReadWrite param,
			HashMap<String, Object> childMap, String opSvcKeiNo, Map<?, ?> result, String errFlgCc, int idx)
	throws Throwable
	{
		String tmpErrFlgCC = errFlgCc;
		
		/**********************************************/
		/** オプションサービス契約＜ISP＞一意照会呼出 */
		/**********************************************/
		Map<?, ?> resultOpSvcKei = callGetOpSvcKeiIspSc(handle, param, opSvcKeiNo);
		if (JKKBpCommon.isSuccess(resultOpSvcKei))
		{
			EKK0361A010CBSMsg1List msgLst = new EKK0361A010CBSMsg1List();
			for (int i = 0; i < msgLst.getContents().length; i++)
			{
				setDataMap(childMap, "kk0361_" + msgLst.getContents()[i][0], JKKBpCommon.getResultString(resultOpSvcKei,
						"EKK0361A010CBSMsg1List[0]." + msgLst.getContents()[i][0]));
			}
		}
		else
		{
			// エラー情報のセット
			tmpErrFlgCC = "1";
			JKKBpCommon.setResultCtrlData(param, resultOpSvcKei);
		}

		return tmpErrFlgCC;
	}
	
	/**
	 * eoモバイル照会処理(照査前)
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param ccName ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws Throwable
	 * @see com.fujitsu.futurity.bp.custom.common.JKKGetSvcKeiMobileCC#getSvcKeiMobile
	 */
	public IRequestParameterReadWrite getSvcKeiMobileShosaBf(SessionHandle handle, IRequestParameterReadWrite param, String ccName) throws Throwable
	{
		/**
		 * 申込新規時と同様の照会を行う。
		 */
		return getSvcKeiMobile(handle, param, ccName);
	}

	/**
	 * ワーク領域のサービス契約情報格納マップの取得を行います。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param mskmDtlNoAll 全ての申込明細番号
	 * @return ワーク領域のサービス契約情報格納マップ
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private List<HashMap> getSvcKeiList(IRequestParameterReadWrite param, Map mskmDtlNoAll) throws RequestParameterException
	{

		// eoモバイルの契約を格納するリスト
		List svcKeiList = new ArrayList();

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			return svcKeiList;
		}

		// 申込サービス契約内訳一覧照会ＣＣの作業領域のマップを取得
		HashMap mskmSvcKeiUcwkWorkMap = (HashMap)workMap.get("JKKGetMskmSvcKeiUcwkListCCWork");
		if (mskmSvcKeiUcwkWorkMap == null)
		{
			return svcKeiList;
		}

		// 申込明細リストを取得
		ArrayList<HashMap> mskmDtlList = (ArrayList<HashMap>)mskmSvcKeiUcwkWorkMap.get("mskm_dtl_list");
		if (mskmDtlList == null)
		{
			return svcKeiList;
		}

		// 申込明細のサービス契約リストからサービス契約：eoモバイルを検索
		for (HashMap mskmDtlMap : mskmDtlList)
		{
			ArrayList<HashMap> svcKeiListAll = (ArrayList<HashMap>)mskmDtlMap.get("svc_kei_list");
			for (HashMap svcKeiMap : svcKeiListAll)
			{
				boolean isMobile = JKKStrConst.CD00037_UK_ZM.equals((String)svcKeiMap.get("svc_kei_stat")) && 
				(JKKStrConst.CD00133_07.equals((String)svcKeiMap.get("prc_grp_cd")) || // eoモバイル(Wi-Fi)
				JKKStrConst.CD00133_08.equals((String)svcKeiMap.get("prc_grp_cd")) || // eoモバイル(EM)
				JKKStrConst.CD00133_09.equals((String)svcKeiMap.get("prc_grp_cd")) || // eoモバイル(UQ-WiMAX)
				JKKStrConst.CD00133_16.equals((String)svcKeiMap.get("prc_grp_cd")));  //eoモバイル(メールアドレス)
				if (isMobile)
				{
					mskmDtlNoAll.put(mskmDtlMap.get("mskm_dtl_no"), mskmDtlMap.get("mskm_dtl_no"));
					svcKeiMap.put("mskm_dtl_no", mskmDtlMap.get("mskm_dtl_no"));
					svcKeiList.add(svcKeiMap);
				}
			}
		}

		return svcKeiList;
	}

	/**
	 * 照査前機器提供サービス契約一覧照会SCの実行
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param kktkSvcKeiNo 機器提供サービス契約番号
	 * @return 実行結果
	 * @throws Throwable
	 */
	private Map<?, ?> callGetKktkSvcKeiSc(SessionHandle handle, IRequestParameterReadWrite param, String kktkSvcKeiNo)
			throws Throwable
	{

		/**************************************************************************/
		/** 照査前機器提供サービス契約一覧照会SCへの上りマッピング                */
		/**************************************************************************/
		String funcCd = "1";
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(EKK0341B508CBSMsg.KEY_SVC_KEI_NO, kktkSvcKeiNo);
		HashMap<String, Object> paramMap = JKKBpCommon.createScParamForSearch(param, "EKK0341B508", EKK0341B508CBSMsg.class , inMap, funcCd);

		/**************************************************************************/
		/** ＳＣ呼出実行                                                          */
		/**************************************************************************/
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		JKKBpCommon.printBpDebugLog(this.getClass(),
				"照査前機器提供サービス契約一覧照会SC呼び出し開始（ 機器提供サービス契約番号：" + kktkSvcKeiNo + " ）");
		Map<?, ?> result = scCall.run(paramMap, handle);
		JKKBpCommon.printBpDebugLog(this.getClass(),
				"照査前機器提供サービス契約一覧照会SC呼び出し完了" + result);

		return result;
	}


	/**
	 * 申込明細一意照会SCの実行
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param mskmDtlNo 申込明細番号
	 * @return 実行結果
	 * @throws Throwable
	 */
	private Map<?, ?> callGetMskmDtlSc(SessionHandle handle, IRequestParameterReadWrite param, String mskmDtlNo) throws Throwable
	{
		/***************************************************/
		/** 申込明細一意照会SCへの上りマッピング         */
		/***************************************************/
		String funcCd = "2";
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(EKK0021A010CBSMsg.KEY_MSKM_DTL_NO, mskmDtlNo);
		HashMap<String, Object> paramMap = JKKBpCommon.createScParamForSearch(param, "EKK0021A010", EKK0021A010CBSMsg.class , inMap, funcCd);

		/***************************************************/
		/** ＳＣ呼出実行                                   */
		/***************************************************/
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		JKKBpCommon.printBpDebugLog(this.getClass(), "申込明細一意照会SC呼び出し開始（ 申込明細番号：" + ((mskmDtlNo != null) ? mskmDtlNo : "") + " ）");
		Map<?, ?> result = scCall.run(paramMap, handle);
		JKKBpCommon.printBpDebugLog(this.getClass(), "申込明細一意照会SC呼び出し完了" + result);

		return result;
	}

	/**
	 * サービス契約一意照会SCの実行
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param svcKeiNo サービス契約番号
	 * @param opeDate 運用日付
	 * @return 実行結果
	 * @throws Throwable
	 */
	private Map<?, ?> callGetSvcKeiSc(SessionHandle handle, IRequestParameterReadWrite param, String svcKeiNo, String opeDate) throws Throwable
	{
		/***************************************************/
		/** サービス契約一意照会SCへの上りマッピング         */
		/***************************************************/
		String funcCd = "2";
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(EKK0081A010CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
		inMap.put(EKK0081A010CBSMsg.KEY_RSV_APLY_YMD, opeDate);
		HashMap<String, Object> paramMap = JKKBpCommon.createScParamForSearch(param, "EKK0081A010", EKK0081A010CBSMsg.class , inMap, funcCd);

		/***************************************************/
		/** ＳＣ呼出実行                                   */
		/***************************************************/
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		JKKBpCommon.printBpDebugLog(this.getClass(), 
				"サービス契約一意照会SC呼び出し開始（ サービス契約番号：" + ((svcKeiNo != null) ? svcKeiNo : "") + " ）");
		Map<?, ?> result = scCall.run(paramMap, handle);
		JKKBpCommon.printBpDebugLog(this.getClass(), "サービス契約一意照会SC呼び出し完了" + result);

		return result;
	}

	/**
	 * サービス契約<eoモバイル>一意照会SCの実行
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param svcKeiNo サービス契約番号
	 * @param geneAddDtm 世代登録年月日時分秒
	 * @return 実行結果
	 * @throws Throwable
	 */
	private Map<?, ?> callGetSvcKeiMobileSc(SessionHandle handle, IRequestParameterReadWrite param, String svcKeiNo, String geneAddDtm) throws Throwable
	{
		/***************************************************/
		/** サービス契約<eoモバイル>一意照会SCへの上りマッピング         */
		/***************************************************/
		String funcCd = "1";
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(EKK0121A010CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
		inMap.put(EKK0121A010CBSMsg.KEY_GENE_ADD_DTM, geneAddDtm);
		HashMap<String, Object> paramMap = JKKBpCommon.createScParamForSearch(param, "EKK0121A010", EKK0121A010CBSMsg.class , inMap, funcCd);

		/***************************************************/
		/** ＳＣ呼出実行                                   */
		/***************************************************/
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		JKKBpCommon.printBpDebugLog(this.getClass(), 
				"サービス契約<eoモバイル>一意照会SC呼び出し開始（ サービス契約番号：" + ((svcKeiNo != null) ? svcKeiNo : "") + " ）");
		Map<?, ?> result = scCall.run(paramMap, handle);
		JKKBpCommon.printBpDebugLog(this.getClass(), "サービス契約一意照会SC呼び出し完了" + result);

		return result;
	}

	/**
	 * サービス契約回線内訳一覧照会（サービス契約番号）の実行
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param svcKeiNo サービス契約番号
	 * @return 実行結果
	 * @throws Throwable
	 */
	private Map<?, ?> callGetSvcKeiKaisenUcwkListSc(SessionHandle handle, IRequestParameterReadWrite param, String svcKeiNo) throws Throwable
	{
		/***************************************************/
		/** サービス契約回線内訳一覧照会（サービス契約番号）への上りマッピング         */
		/***************************************************/
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(EKK0251B001CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
		HashMap<String, Object> paramMap = JKKBpCommon.createScParamForSearch(param, "EKK0251B001", EKK0251B001CBSMsg.class,
				inMap, JPCModelConstant.FUNC_CD_1);

		/***************************************************/
		/** ＳＣ呼出実行                                   */
		/***************************************************/
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		JKKBpCommon.printBpDebugLog(this.getClass(), 
				"サービス契約回線内訳一覧照会（サービス契約番号）呼び出し開始（ サービス契約番号：" + ((svcKeiNo != null) ? svcKeiNo : "") + " ）");
		Map<?, ?> result = scCall.run(paramMap, handle);
		JKKBpCommon.printBpDebugLog(this.getClass(), "サービス契約回線内訳一覧照会（サービス契約番号）呼び出し完了" + result);

		return result;
	}

	/**
	 * サービス契約回線内訳一意照会の実行
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param svcKeiKaisenUcwkNo サービス契約回線内訳番号
	 * @return 実行結果
	 * @throws Throwable
	 */
	private Map<?, ?> callGetSvcKeiKaisenUcwkSc(SessionHandle handle, IRequestParameterReadWrite param, String svcKeiKaisenUcwkNo) throws Throwable
	{
		/***********************************************************/
		/** サービス契約回線内訳一意照会への上りマッピング         */
		/***********************************************************/
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(EKK0251A010CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO, svcKeiKaisenUcwkNo);
		HashMap<String, Object> paramMap = JKKBpCommon.createScParamForSearch(param, "EKK0251A010", EKK0251A010CBSMsg.class,
				inMap, JPCModelConstant.FUNC_CD_2);

		/***************************************************/
		/** ＳＣ呼出実行                                   */
		/***************************************************/
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		JKKBpCommon.printBpDebugLog(this.getClass(), 
				"サービス契約回線内訳一意照会呼び出し開始（ サービス契約回線内訳番号：" + ((svcKeiKaisenUcwkNo != null) ? svcKeiKaisenUcwkNo : "") + " ）");
		Map<?, ?> result = scCall.run(paramMap, handle);
		JKKBpCommon.printBpDebugLog(this.getClass(), "サービス契約回線内訳一意照会呼び出し完了" + result);

		return result;
	}

	/**
	 * サービス契約内訳一覧照会の実行
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param svcKeiNo サービス契約番号
	 * @return 実行結果
	 * @throws Throwable
	 */
	private Map<?, ?> callGetSvcKeiUcwkListSc(SessionHandle handle, IRequestParameterReadWrite param, String svcKeiNo) throws Throwable
	{
		/*******************************************************/
		/** サービス契約内訳一覧照会への上りマッピング         */
		/*******************************************************/
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(EKK0161B004CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
		inMap.put(EKK0161B004CBSMsg.KEY_SVC_PRD_FLG, null);
		HashMap<String, Object> paramMap = JKKBpCommon.createScParamForSearch(param, "EKK0161B004", EKK0161B004CBSMsg.class,
				inMap, JPCModelConstant.FUNC_CD_1);

		/***************************************************/
		/** ＳＣ呼出実行                                   */
		/***************************************************/
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		JKKBpCommon.printBpDebugLog(this.getClass(), 
				"サービス契約内訳一覧照会呼び出し開始（ サービス契約番号：" + ((svcKeiNo != null) ? svcKeiNo : "") + " ）");
		Map<?, ?> result = scCall.run(paramMap, handle);
		JKKBpCommon.printBpDebugLog(this.getClass(), "サービス契約内訳一覧照会呼び出し完了" + result);

		return result;
	}

	/**
	 * サービス契約内訳＜eoモバイル＞一意照会の実行
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param svcKeiUcwkNo サービス契約内訳番号
	 * @return 実行結果
	 * @throws Throwable
	 */
	private Map<?, ?> callGetSvcKeiUcwkMobileSc(SessionHandle handle, IRequestParameterReadWrite param, String svcKeiUcwkNo) throws Throwable
	{
		/*******************************************************************/
		/** サービス契約内訳＜eoモバイル＞一意照会への上りマッピング         */
		/*******************************************************************/
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(EKK0201A010CBSMsg.KEY_SVC_KEI_UCWK_NO, svcKeiUcwkNo);
		HashMap<String, Object> paramMap = JKKBpCommon.createScParamForSearch(param, "EKK0201A010", EKK0201A010CBSMsg.class,
				inMap, JPCModelConstant.FUNC_CD_2);

		/***************************************************/
		/** ＳＣ呼出実行                                   */
		/***************************************************/
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		JKKBpCommon.printBpDebugLog(this.getClass(), 
				"サービス契約内訳＜eoモバイル＞一意照会呼び出し開始（ サービス契約内訳番号：" + ((svcKeiUcwkNo != null) ? svcKeiUcwkNo : "") + " ）");
		Map<?, ?> result = scCall.run(paramMap, handle);
		JKKBpCommon.printBpDebugLog(this.getClass(), "サービス契約内訳＜eoモバイル＞一意照会呼び出し完了" + result);

		return result;
	}

	/**
	 * 照査前オプション一覧照会の実行
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param svcKeiNo サービス契約番号
	 * @return 実行結果
	 * @throws Throwable
	 */
	private Map<?, ?> callGetOptionListSc(SessionHandle handle, IRequestParameterReadWrite param, String svcKeiNo) throws Throwable
	{
		/*******************************************************/
		/** 照査前オプション一覧照会への上りマッピング         */
		/*******************************************************/
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(EKK0351B512CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
		HashMap<String, Object> paramMap = JKKBpCommon.createScParamForSearch(param, "EKK0351B512", EKK0351B512CBSMsg.class,
				inMap, JPCModelConstant.FUNC_CD_1);

		/***************************************************/
		/** ＳＣ呼出実行                                   */
		/***************************************************/
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		JKKBpCommon.printBpDebugLog(this.getClass(), 
				"照査前オプション一覧照会呼び出し開始（ サービス契約番号：" + ((svcKeiNo != null) ? svcKeiNo : "") + " ）");
		Map<?, ?> result = scCall.run(paramMap, handle);
		JKKBpCommon.printBpDebugLog(this.getClass(), "照査前オプション一覧照会呼び出し完了" + result);

		return result;
	}

	/**
	 * オプションサービス契約＜ISP＞一意照会の実行
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param opSvcKeiNo オプションサービス契約番号
	 * @return 実行結果
	 * @throws Throwable
	 */
	private Map<?, ?> callGetOpSvcKeiIspSc(SessionHandle handle, IRequestParameterReadWrite param, String opSvcKeiNo) throws Throwable
	{
		/*******************************************************************/
		/** オプションサービス契約＜ISP＞一意照会への上りマッピング        */
		/*******************************************************************/
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		inMap.put(EKK0361A010CBSMsg.KEY_OP_SVC_KEI_NO, opSvcKeiNo);
		HashMap<String, Object> paramMap = JKKBpCommon.createScParamForSearch(param, "EKK0361A010", EKK0361A010CBSMsg.class,
				inMap, JPCModelConstant.FUNC_CD_2);

		/***************************************************/
		/** ＳＣ呼出実行                                   */
		/***************************************************/
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		JKKBpCommon.printBpDebugLog(this.getClass(), 
				"オプションサービス契約＜ISP＞一意照会呼び出し開始（ オプションサービス契約番号：" + ((opSvcKeiNo != null) ? opSvcKeiNo : "") + " ）");
		Map<?, ?> result = scCall.run(paramMap, handle);
		JKKBpCommon.printBpDebugLog(this.getClass(), "オプションサービス契約＜ISP＞一意照会呼び出し完了" + result);

		return result;
	}

	/**
	 * ＢＰチェック用の入力パラメータを作成する。
	 * <br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return ＢＰチェック用パラメータ
	 */
	@SuppressWarnings("unchecked")
	public HashMap getInvokeCBS(SessionHandle handle, IRequestParameterReadWrite param, String fixedText)
	{
		// BPチェックは行わない(0件のCAANMsg配列を返却)
		HashMap param4BpChek = new HashMap();
		param4BpChek.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]{});
		return param4BpChek;
	}

	/**
	 * ＢＰチェック結果を編集する。
	 * <br />
	 * @param param リクエストパラメータ
	 * @param caanMsgs サービスインターフェイス用のパラメータ配列
	 * @param returnCode リターンコード
	 * @return リクエストパラメータ
	 */
	public IRequestParameterReadWrite editErrorInfo(IRequestParameterReadWrite param, CAANMsg[] caanMsgs, Integer returnCode)
	{
		// BPチェックを行わない為、チェック結果の編集も不要
		return param;
	}

	/**
	 * ユーザデータ情報に値を設定します。<br>
	 * 　@getValueにデータが存在する場合、dataMapに設定します。<br>
	 * 　A上記以外の場合、空文字を設定します。<br>
	 * @param dataMap 値を設定するユーザデータ情報
	 * @param setKey ユーザデータ情報のキー名
	 * @param getValue メッセージキャリアからの取得値
	 */
	@SuppressWarnings("unchecked")
	private void setDataMap(Map dataMap, String setKey, String getValue)
	{
		if (null == getValue)
		{
			dataMap.put(setKey, "");
		}
		else
		{
			dataMap.put(setKey, getValue);
		}
	}
}
