/*********************************************************************
 * All Rights reserved, Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *   システム名      ：eo顧客基幹システム
 *   モジュール名    ：JFUMansionSearchCC
 *   ソースファイル名：JFUMansionSearchCC.java
 *   作成者          ：富士通
 *   日付            ：2011年10月01日
 *＜機能概要＞
 *   マンション検索コモンコンポーネント部品
 *＜修正履歴＞
 *   バージョン  修正日       修正者      修正内容
 *   v3.00.00    2012/05/23   FJ）岩元    新規作成
 *   v3.00.00    2012/06/25   FJ）岩元    マンション検索4、低価格マンション(ログイン)
 *                                        eo光eoモバイル契約一覧からの呼び出しに対応
 *   v3.00.00    2012/08/23   FJ）岩元    割引キャンペーンコード取得に対応
 *   v4.00.00    2012/09/26   FJ) 岩元    ロット1障害対応のコメント削除
 *                                        ANK-0363-00-00 従量制対応
 *                                        ANK-1220-00-00 マンション情報整合性チェック部品呼出
 *   v5.00.00    2012/12/14   FJ) 大村    ANK-1392-00-00 棟別マンション対応
 *   v5.01.00    2012/12/26   FJ) 大村    IT1-No966 IT環境データ障害対応
 *   v5.02.00    2013/02/08   FJ) 大村    ANK-1435-00-00(提供条件-旧光直収)
 *   v5.03.00    2013/02/25   FJ) 大塚    No356 マンション割引対応
 *   v5.04.00    2013/03/26   FJ) 大村    IT1-2013-0000626 マンション棟対応
 *   v5.05.00    2013/08/07   FJ) 文元    IT1-2013-001522 「EKK0861B501_マンション検索一覧照会」返却項目追加対応
 *   v5.06.00    2013/08/15   FJ) 岡井    【仕様変更】非表示マンション・メゾン対応
 *   v7.00.00    2014/02/20   FJ) 岡井    OM-2014-0000790 マンション検索修正対応
 *   v8.00.00    2014/05/16   FJ) 清水    OM-1888 併設扱い時の入れ替えで資料請求フラグも入れ替える
 *   v38.00.00   2018/08/13   FJ) 岡井    【ANK-3406-00-00】マンションオーナー情報の検索結果変更およびマンション受付表示変更対応
 *   v38.00.01   2018/08/28   FJ) 謝      【ANK-3328-00-00】マンション検索後の申込確認画面追加
 *   v40.00      2018/09/07   FJ）張本    【ANK-3412-00-00】５ギガ・１０ギガコース導入対応
 *   v40.00.01   2018/12/21   FJ）澤田    【ANK-3248-00-00】引越しNavi対応
 *   v40.01      2019/01/29   FJ）張本    【ANK-3412-07-00】メゾン向け5G・10G提供情報表示対応
 *   v45.00.00   2019/09/06   FJ）松原    【ANK-3694-00-00】マンション形態によるキャンペーン適用可否制御機能追加
 *   v46.00      2019/10/03   FJ) 西川    【ANK-3731-00-00】マンション光配線切替対応
 *   v48.00      2020/02/04   FJ) 岡井    【ANK-3757-00-00】マンション工事種別イーサ他社併行時のサービス開始希望日の入力欄制御
 *   v50.00      2020/08/26   FJ) 大島    【ANK-3805-00-00】無線ルーター機能無料マンション対応
 *   v51.00      2020/08/31   FJ) 岡井    【ANK-3885-00-00】光化マンションの自動設計対応
 *   v56.00      2021/10/26   FJ) 大島    【ANK-4101-00-00】【eo】引越しNaviの5G･10Gコースの受付対応
 *   v56.01      2021/12/06   FJ）美濃原  【ANK-4103-00-00】マンション光コンセントタイプのWeb受付対応
 *   v57.00      2022/02/28   FJ) 張本    【ANK-4173-00-00】【eo顧客】解約後の契約情報表示、再申込対応
 *   v60.00      2022/06/20   FJ）美濃原  変更【ANK-4244-00-00】【eo定期】MT既設賃貸対応
 *   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.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

import com.fujitsu.futurity.bp.custom.constant.JFUMansionSearchConstCC;
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.exception.CCException;
import com.fujitsu.futurity.bp.x21.cc.exception.SCCallException;
import com.fujitsu.futurity.common.JCMConstants;
import com.fujitsu.futurity.common.x01.sc.SCControlMapKeys;
import com.fujitsu.futurity.mapping.bp.common.TemplateErrorUtil;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.common.JCMAPLConstMgr;
import com.fujitsu.futurity.model.ejb.common.JSYejbLog;

import eo.common.constant.JFUStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.util.JFUCheckMansionInfo;
import eo.ejb.cbs.cbsmsg.EKK0861B501CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0861B501CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK2701B501CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK2701B501CBSMsg1List;

public class JFUMansionSearchCC extends AbstractCommonComponent
{
	/** コンポーネント名称 */
	private String cName = JFUStrConst.EMPTY;

	/** 機能コード */
	private String func_code = JFUStrConst.EMPTY;

	/** ＫＥＹ＿郵便番号 */
	private String key_pcd = null;

	/** ＫＥＹ＿物件管理番号 */
	private String key_bkn_knri_no = null;

	/** ＫＥＹ＿都道府県名 */
	private String key_state_nm = null;

	/** ＫＥＹ＿市区町村名 */
	private String key_city_nm = null;

	/** ＫＥＹ＿大字通称名 */
	private String key_oaztsu_nm = null;

	/** ＫＥＹ＿マンション物件番号 */
	private String key_mansion_bukken_no = null;

	//ANK-1392-00-00 I/F変更 >>>
	/** ＫＥＹ＿ネット回線使用契約番号 */
	private String key_net_kaisen_use_kei_no = null;

	/** ＫＥＹ＿テレビ回線使用契約番号 */
	private String key_tv_kaisen_use_kei_no = null;
	//ANK-1392-00-00 I/F変更 <<<

	/** 退避＿マンション情報マップ */
	private HashMap temp_mansion_map = null;

	/** 配列番号 */
	private int index = 0;

	/** チェック結果：3(異常系その4) */
	private static final String CHECK_RESULT_4 = "4";

	/**
	 * 初期化処理
	 * <br>
	 */
	private void init()
	{
		// クラス変数の初期化
		this.cName = null;
		this.func_code = null;
		this.key_pcd = JFUMansionSearchConstCC.INIT_KEY_PCD;
		this.key_bkn_knri_no = null;
		this.key_state_nm = null;
		this.key_city_nm = null;
		this.key_oaztsu_nm = null;
		//ANK-1392-00-00 I/F変更 >>>
		this.key_net_kaisen_use_kei_no = null;
		this.key_tv_kaisen_use_kei_no = null;
		//ANK-1392-00-00 I/F変更 <<<
		this.key_mansion_bukken_no = null;
		this.temp_mansion_map = null;
	}

	/**
	 * マンション検索処理
	 * <br>
	 * @param handle
	 * @param param
	 * @param fixedText
	 * @return
	 * @throws Exception
	 */
	public IRequestParameterReadWrite mansionSearch(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Throwable
	{

		// クラス変数の初期化
		init();

		//ANK-1392-00-00 I/F変更 >>>
//		//退避＿オーナー契約番号
//		String taihi_ownr_kei_no = JFUStrConst.EMPTY;
//		//退避＿ネット回線使用契約番号
//		String taihi_net_kaisen_use_kei_no = JFUStrConst.EMPTY;
//		//退避＿テレビ回線使用契約番号
//		String taihi_tv_kaisen_use_kei_no = JFUStrConst.EMPTY;
		//ANK-1392-00-00 I/F変更 <<<

		// 上りマッピングの処理結果を取得するためのマップを生成します。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// SC呼び出し部品のインスタンスを生成します。
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		// マップのキー値を取得します。
		this.cName = fixedText;

		// ユーザデータ情報を取得します。
		HashMap<String, Object> inMap = (HashMap)param.getData(cName);

		// マップが無い場合処理終了
		if (inMap == null)
		{
			return param;
		}

		// 機能コードを取得する
		this.func_code = (String)inMap.get(JCMConstants.FUNC_CODE_KEY);

		if (JFUMansionSearchConstCC.FUNC_CODE_KEY_1.equals(this.func_code))
		{
			// -----マンション検索一覧紹介振舞-----

			if (inMap.containsKey("key_pcd") && !isBlank(inMap.get("key_pcd")))
			{
				// ＫＥＹ＿郵便番号
				this.key_pcd = (String)inMap.get("key_pcd");
			}
			else if (inMap.containsKey("key_bkn_knri_no") && !isBlank(inMap.get("key_bkn_knri_no")))
			{
				// ＫＥＹ＿物件管理番号
				this.key_bkn_knri_no = (String)inMap.get("key_bkn_knri_no");
			}
			else
			{
				// ＫＥＹ＿郵便番号
				this.key_pcd = null;
				// ＫＥＹ＿都道府県名
				this.key_state_nm = (String)inMap.get("key_state_nm");
				// ＫＥＹ＿市区町村名
				this.key_city_nm = (String)inMap.get("key_city_nm");
				// ＫＥＹ＿大字通称名
				this.key_oaztsu_nm = (String)inMap.get("key_oaztsu_nm");
			}

			// 上りマッピング
			paramMap = editMansionSearchInMsg(param);

			// サービスコンポーネント実行
			Map result = scCall.run(paramMap, handle);

			// 下りマッピング
			editMansionSearchOutMsg(result, param, handle);

		}
		//ANK-1392-00-00 I/F変更 >>>
		// 機能コード＝２： マンション提供回線組み合わせ候補情報で照会を分離させる
		else if (JFUMansionSearchConstCC.FUNC_CODE_KEY_2.equals(this.func_code))
		{
			// -----マンション検索一覧照会振舞-----

			// マンション提供回線組み合わせ候補情報で照会する
			this.key_net_kaisen_use_kei_no = (String)inMap.get("key_net_kaisen_use_kei_no");
			this.key_tv_kaisen_use_kei_no = (String)inMap.get("key_tv_kaisen_use_kei_no");

			// 上りマッピング
			paramMap = editMansionSearchInMsg(param);

			// サービスコンポーネント実行
			Map result = scCall.run(paramMap, handle);

			// 下りマッピング
			editMansionSearchOutMsg(result, param, handle);
		}
		//ANK-1392-00-00 I/F変更 <<<
		else if (JFUMansionSearchConstCC.FUNC_CODE_KEY_2.equals(this.func_code) || JFUMansionSearchConstCC.FUNC_CODE_KEY_3.equals(this.func_code))
		{
			// -----マンション検索一覧紹介振舞-----

			// 別のマップからマッピングを行う(設定されてなければ行われない)
			atherMapToMapping(param, inMap);

			// マンション検索一意紹介リスト
			ArrayList mansion_search_a_list = (ArrayList)inMap.get(JFUMansionSearchConstCC.MANSION_SEARCH_A_LIST);

			// リストが無い場合処理終了
			if (mansion_search_a_list == null || mansion_search_a_list.size() == 0)
			{
				return param;
			}

			Iterator ite = mansion_search_a_list.iterator();
			index = 0;

			// 退避＿マンション物件番号
			String taihi_mansion_bukken_no = JFUStrConst.EMPTY;

			while (ite.hasNext())
			{
				HashMap mansion_search_a_map = (HashMap)ite.next();

				//ANK-1392-00-00 I/F変更 <<<
				// FUNC_CODE_KEY_2の処理を分離したため削除
				//ANK-1392-00-00 I/F変更 >>>

				if (JFUMansionSearchConstCC.FUNC_CODE_KEY_3.equals(this.func_code))
				{
					// マンション物件番号で一意紹介する
					this.key_mansion_bukken_no = (String)mansion_search_a_map.get("key_mansion_bukken_no");

					if (this.key_mansion_bukken_no == null || JFUStrConst.EMPTY.equals(this.key_mansion_bukken_no))
					{
						// 処理を行わず次の配列へ
						// 配列+1
						index++;
						continue;
					}
					// 前回処理時と同一のマンション物件番号の場合
					else if (this.key_mansion_bukken_no.equals(taihi_mansion_bukken_no))
					{
						// 退避から下りマッピング
						editMansionSearchOutMsgFromTemp(param);

						// 次の配列へ
						// 配列+1
						index++;
						continue;
					}

					// 退避＿マンション物件番号へ設定
					taihi_mansion_bukken_no = this.key_mansion_bukken_no;

				}

				// 上りマッピング
				paramMap = editMansionSearchInMsg(param);

				// サービスコンポーネント実行
				Map result = scCall.run(paramMap, handle);

				// 下りマッピング
				editMansionSearchOutMsg(result, param, handle);
				// 配列+1
				index++;
			}
		}
		if (JFUMansionSearchConstCC.FUNC_CODE_KEY_4.equals(this.func_code))
		{
			// -----マンション検索一覧紹介振舞-----

			// 別のマップからマッピングを行う(設定されてなければ行われない)
			atherMapToMapping(param, inMap);

			// 上りマッピング
			paramMap = editMansionSearchInMsg(param);

			// サービスコンポーネント実行
			Map result = scCall.run(paramMap, handle);

			// 下りマッピング
			editMansionSearchOutMsg(result, param, handle);

		}
		else
		{
			// 想定しない機能コードの場合処理終了
			return param;
		}

		return param;
	}

	/**
	 * マンション物件一覧照会入力チェック処理
	 * <br>
	 * @param handle
	 * @param param
	 * @param fixedText
	 * @return
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	public HashMap<String, Object> getInvokeCBS(SessionHandle handle, IRequestParameterReadWrite param, String fixedText)
			throws RequestParameterException
	{

		// マップを取得するキーを設定します。
		cName = fixedText;

		// 入力チェック用パラメータ設定処理を行います。（チェック自体は実施しません）
		HashMap paramMap = editMansionSearchInMsg(param);

		return paramMap;
	}

	/**
	 * エラー情報マッピング処理
	 * <br>
	 * @param param
	 * @param templates
	 * @param returnCode
	 * @return
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite editErrorInfo(IRequestParameterReadWrite param, CAANMsg[] templates, int returnCode)
			throws RequestParameterException
	{

		// エラーリストを設定します。
		ArrayList errlist = new ArrayList(10);

		// エラーマップを設定します。
		HashMap errMap = new HashMap(10);

		// ユーザデータ情報を取得します。
		HashMap inMap = (HashMap)param.getData(cName);
		if (inMap == null)
		{
			inMap = new HashMap();
		}

		for (int i = 0; i < templates.length; i++)
		{

			CAANMsg template = templates[i];
			int templateStatus = template.getInt(EKK0861B501CBSMsg.STATUS);
			if (0 != returnCode)
			{
				templateStatus = 9000;
			}
			if (null == JCMAPLConstMgr.getString(JFUMansionSearchConstCC.RETURN_MESSAGE
					+ String.format(JFUMansionSearchConstCC.STATUS_FORMAT, templateStatus)))
			{
				templateStatus = 0;
			}

			int bpStatus = 0;
			Object obj = param.getControlMapData(SCControlMapKeys.RETURN_CODE);
			if (null == obj)
			{
				bpStatus = -1;
			}
			else
			{
				bpStatus = Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
			}

			if (templateStatus > bpStatus)
			{

				// BPにサービスコンポーネントのステータスを設定します。
				String formatStatus = String.format(JFUMansionSearchConstCC.STATUS_FORMAT, templateStatus);
				String message = JCMAPLConstMgr.getString(JFUMansionSearchConstCC.RETURN_MESSAGE + formatStatus);
				param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
				param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
			}

			// マンション検索住所一覧マップ.ＫＥＹ＿郵便番号 → ＫＥＹ＿郵便番号のエラー情報返却
			if (!template.isNull(EKK0861B501CBSMsg.KEY_PCD_ERR))
			{
				errMap.put(EKK0861B501CBSMsg.KEY_PCD_ERR, template.getString(EKK0861B501CBSMsg.KEY_PCD_ERR));
			}

			// マンション検索住所一覧マップ.ＫＥＹ＿都道府県名 → ＫＥＹ＿都道府県名のエラー情報返却
			if (!template.isNull(EKK0861B501CBSMsg.KEY_STATE_NM_ERR))
			{
				errMap.put(EKK0861B501CBSMsg.KEY_STATE_NM_ERR, template.getString(EKK0861B501CBSMsg.KEY_STATE_NM_ERR));
			}

			// マンション検索住所一覧マップ.ＫＥＹ＿市区町村名 → ＫＥＹ＿市区町村名のエラー情報返却
			if (!template.isNull(EKK0861B501CBSMsg.KEY_CITY_NM_ERR))
			{
				errMap.put(EKK0861B501CBSMsg.KEY_CITY_NM_ERR, template.getString(EKK0861B501CBSMsg.KEY_CITY_NM_ERR));
			}

			// マンション検索住所一覧マップ.ＫＥＹ＿大字通称名 → ＫＥＹ＿大字通称名のエラー情報返却
			if (!template.isNull(EKK0861B501CBSMsg.KEY_OAZTSU_NM_ERR))
			{
				errMap.put(EKK0861B501CBSMsg.KEY_OAZTSU_NM_ERR, template.getString(EKK0861B501CBSMsg.KEY_OAZTSU_NM_ERR));
			}

			// マンション物件一覧照会マップ.ＫＥＹ＿マンション物件番号エラー → ＫＥＹ＿マンション物件番号のエラー情報返却
			if (!template.isNull(EKK0861B501CBSMsg.KEY_MANSION_BUKKEN_NO_ERR))
			{
				errMap.put(EKK0861B501CBSMsg.KEY_MANSION_BUKKEN_NO_ERR, template.getString(EKK0861B501CBSMsg.KEY_MANSION_BUKKEN_NO_ERR));
			}

			//ANK-1392-00-00 I/F変更 >>>
			// マンション検索住所一覧マップ.ＫＥＹ＿ネット回線使用契約番号 → ＫＥＹ＿ネット回線使用契約番号のエラー情報返却
			if (!template.isNull(EKK0861B501CBSMsg.KEY_NET_KAISEN_USE_KEI_NO_ERR))
			{
				errMap.put(EKK0861B501CBSMsg.KEY_NET_KAISEN_USE_KEI_NO_ERR, template.getString(EKK0861B501CBSMsg.KEY_NET_KAISEN_USE_KEI_NO_ERR));
			}
			// マンション検索住所一覧マップ.ＫＥＹ＿テレビ回線使用契約番号 → ＫＥＹ＿テレビ回線使用契約番号のエラー情報返却
			if (!template.isNull(EKK0861B501CBSMsg.KEY_TV_KAISEN_USE_KEI_NO_ERR))
			{
				errMap.put(EKK0861B501CBSMsg.KEY_TV_KAISEN_USE_KEI_NO_ERR, template.getString(EKK0861B501CBSMsg.KEY_TV_KAISEN_USE_KEI_NO_ERR));
			}
			//ANK-1392-00-00 I/F変更 <<<

			// エラー情報をリストに設定します。
			errlist.add(errMap);
		}

		inMap.put(JFUMansionSearchConstCC.ERR_LIST, errlist);
		return param;
	}

	/**
	 * マンション物件一覧照会メッセージ取得処理
	 * <br>
	 * @param param
	 * @return
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private HashMap<String, Object> editMansionSearchInMsg(IRequestParameterReadWrite param) throws RequestParameterException
	{
		HashMap<String, Object> paramMap = new HashMap<String, Object>(10);

		// 【取得元：電文ヘッダ(ヘッダ)】
		// 電文ID
		paramMap.put(JCMConstants.TRANZACTION_ID_KEY, param.getTelegramID());

		// ユースケースID
		paramMap.put(JCMConstants.USECASE_ID_KEY, param.getUsecaseID());

		// オペレーションID
		paramMap.put(JCMConstants.OPERATION_ID_KEY, param.getOperationID());

		// サービス呼び出し区分
		paramMap.put(JCMConstants.CALL_TYPE_KEY, param.getCallType());

		// 【取得元：ユーザエリア(コントロールマップ)】
		// 依頼先ホスト名
		paramMap.put(JCMConstants.CLIENT_HOST_NAME_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTNAME));

		// 依頼元IPアドレス
		paramMap.put(JCMConstants.CLIENT_IP_ADDRESS_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTIP));

		// 依頼元画面ID
		paramMap.put(JCMConstants.INVOKE_GAMEN_ID_KEY, param.getControlMapData(SCControlMapKeys.REQ_VIEWID));

		// オペレータID
		paramMap.put(JCMConstants.OPERATOR_ID_KEY, param.getControlMapData(SCControlMapKeys.OPERATOR_ID));

		// ユーザデータ情報
		HashMap inMap = (HashMap)param.getData(cName);
		CAANMsg template = setMansionSearchTemplate(inMap, param);

		CAANMsg[] templates = new CAANMsg[1];
		templates[0] = template;
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}

	/**
	 * マンション物件一覧照会(上りマッピング)
	 * <br>
	 * @param inMap
	 * @param param
	 * @return
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg setMansionSearchTemplate(HashMap inMap, IRequestParameterReadWrite param) throws RequestParameterException
	{

		CAANMsg template = new CAANMsg(EKK0861B501CBSMsg.class.getName());

		// 全項目のNullマッピングを行う
		fillCAANMSGNullMapping(template, new EKK0861B501CBSMsg().getContents());

		// テンプレートID
		template.set(EKK0861B501CBSMsg.TEMPLATEID, JFUMansionSearchConstCC.TEMPLATE_EKK0861B501);

		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);

		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);

		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

		// 機能コード
		template.set(EKK0861B501CBSMsg.FUNC_CODE, this.func_code);

		// ＫＥＹ＿郵便番号
		template.set(EKK0861B501CBSMsg.KEY_PCD, this.key_pcd);

		// ＫＥＹ＿都道府県名
		template.set(EKK0861B501CBSMsg.KEY_STATE_NM, this.key_state_nm);

		// ＫＥＹ＿市区町村名
		template.set(EKK0861B501CBSMsg.KEY_CITY_NM, this.key_city_nm);

		// ＫＥＹ＿大字通称名
		template.set(EKK0861B501CBSMsg.KEY_OAZTSU_NM, this.key_oaztsu_nm);

		// ＫＥＹ＿物件管理番号
		template.set(EKK0861B501CBSMsg.KEY_BKN_KNRI_NO, this.key_bkn_knri_no);

		//ANK-1392-00-00 I/F変更 >>>
		// ＫＥＹ＿ネット回線使用契約番号
		if(JFUBPCommon.isNull(this.key_net_kaisen_use_kei_no))
		{
			template.setNull(EKK0861B501CBSMsg.KEY_NET_KAISEN_USE_KEI_NO);
		}
		else
		{
			template.set(EKK0861B501CBSMsg.KEY_NET_KAISEN_USE_KEI_NO, this.key_net_kaisen_use_kei_no);
		}

		// ＫＥＹ＿テレビ回線使用契約番号
		if(JFUBPCommon.isNull(this.key_tv_kaisen_use_kei_no))
		{
			template.setNull(EKK0861B501CBSMsg.KEY_TV_KAISEN_USE_KEI_NO);
		}
		else
		{
			template.set(EKK0861B501CBSMsg.KEY_TV_KAISEN_USE_KEI_NO, this.key_tv_kaisen_use_kei_no);
		}
		//ANK-1392-00-00 I/F変更 <<<

		// ＫＥＹ＿マンション物件番号
		template.set(EKK0861B501CBSMsg.KEY_MANSION_BUKKEN_NO, this.key_mansion_bukken_no);

		return template;

	}

	/**
	 * マンション物件一覧照会(下りマッピング)
	 * <br>
	 * @param msgList
	 * @param param
	 * @return
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editMansionSearchOutMsg(Map<?, ?> msgList, IRequestParameterReadWrite param,
			SessionHandle handle) throws Throwable
	{
		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];
		CAANMsg[] templateArray = parentTemplate.getCAANMsgList(EKK0861B501CBSMsg.EKK0861B501CBSMSG1LIST);

		// リターンコード取得
		Object return_code = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 結果を詰めるマップを取得
		HashMap dataMap = (HashMap)param.getData(cName);

		// 結果を詰めるリスト
		ArrayList mansion_search_list = null;

		// 結果を詰めるマップ
		HashMap childMap = null;

		// 新しく配列を確保する
		mansion_search_list = new ArrayList();

		// 退避用MAP
		HashMap temp_search_map = null;

		// 下りマッピング開始
		if (templateArray != null)
		{
			// -----ループ処理ここまで-----
			for (int i = 0; i < templateArray.length; i++)
			{
				CAANMsg childTemplate = templateArray[i];

				childMap = new HashMap();

				// ANK-3885-00-00 ADD START
				String pid = JFUStrConst.EMPTY;
				String hhs1gOnlyFlg = JFUStrConst.EMPTY;
				String tkHoshikiPatternCd = JFUStrConst.EMPTY;
				// ANK-3885-00-00 ADD END

				// マンション物件番号
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.MANSION_BUKKEN_NO))
				{
					childMap.put("mansion_bukken_no", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("mansion_bukken_no", childTemplate.getString(EKK0861B501CBSMsg1List.MANSION_BUKKEN_NO));
				}

				// マンション物件コード
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.MANSION_BUKKEN_CD))
				{
					childMap.put("mansion_bukken_cd", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("mansion_bukken_cd", childTemplate.getString(EKK0861B501CBSMsg1List.MANSION_BUKKEN_CD));
				}

				// 物件管理番号
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.BKN_KNRI_NO))
				{
					childMap.put("bkn_knri_no", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("bkn_knri_no", childTemplate.getString(EKK0861B501CBSMsg1List.BKN_KNRI_NO));
				}

				// 回線使用契約物件名
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.MSBSN_KRTG_BKN_NM)) //ANK-1392-00-00 I/F名変更
				{
					childMap.put("kisnusekei_bkn_nm", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("kisnusekei_bkn_nm", childTemplate.getString(EKK0861B501CBSMsg1List.MSBSN_KRTG_BKN_NM)); //ANK-1392-00-00 I/F名変更
				}

				// 回線使用契約物件住所コード
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.MSBSN_KRTG_BKN_AD_CD)) //ANK-1392-00-00 I/F名変更
				{
					childMap.put("kisnusekei_bkn_ad_cd", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("kisnusekei_bkn_ad_cd", childTemplate.getString(EKK0861B501CBSMsg1List.MSBSN_KRTG_BKN_AD_CD)); //ANK-1392-00-00 I/F名変更
				}

				// 回線使用契約物件郵便番号
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.MSBSN_KRTG_BKN_PCD)) //ANK-1392-00-00 I/F名変更
				{
					childMap.put("kisnusekei_bkn_pcd", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("kisnusekei_bkn_pcd", childTemplate.getString(EKK0861B501CBSMsg1List.MSBSN_KRTG_BKN_PCD)); //ANK-1392-00-00 I/F名変更
				}

				// 回線使用契約物件都道府県名
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.MSBSN_KRTG_BKN_STATE_NM)) //ANK-1392-00-00 I/F名変更
				{
					childMap.put("kisnusekei_bkn_state_nm", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("kisnusekei_bkn_state_nm", childTemplate.getString(EKK0861B501CBSMsg1List.MSBSN_KRTG_BKN_STATE_NM)); //ANK-1392-00-00 I/F名変更
				}

				// 回線使用契約物件市区町村名
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.MSBSN_KRTG_BKN_CITY_NM)) //ANK-1392-00-00 I/F名変更
				{
					childMap.put("kisnusekei_bkn_city_nm", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("kisnusekei_bkn_city_nm", childTemplate.getString(EKK0861B501CBSMsg1List.MSBSN_KRTG_BKN_CITY_NM)); //ANK-1392-00-00 I/F名変更
				}

				// 回線使用契約物件大字通称名
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.MSBSN_KRTG_BKN_OAZTSU_NM)) //ANK-1392-00-00 I/F名変更
				{
					childMap.put("kisnusekei_bkn_oaztsu_nm", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("kisnusekei_bkn_oaztsu_nm", childTemplate.getString(EKK0861B501CBSMsg1List.MSBSN_KRTG_BKN_OAZTSU_NM)); //ANK-1392-00-00 I/F名変更
				}

				// 回線使用物件字丁名
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.MSBSN_KRTG_BKN_AZCHO_NM)) //ANK-1392-00-00 I/F名変更
				{
// ANK-3328-00-00 MOD START
//					childMap.put("kisnusekei_bkn_azcho_nm", JFUStrConst.EMPTY);
					if (childTemplate.isNull(EKK0861B501CBSMsg1List.MSBSN_KRTG_BKN_BNCHIGO))
					{
						childMap.put("kisnusekei_bkn_azcho_nm", JFUStrConst.EMPTY);
					}
					else
					{
						childMap.put("kisnusekei_bkn_azcho_nm", childTemplate.getString(EKK0861B501CBSMsg1List.MSBSN_KRTG_BKN_BNCHIGO));
					}
// ANK-3328-00-00 MOD END
				}
				else
				{
// ANK-3328-00-00 MOD START
//					childMap.put("kisnusekei_bkn_azcho_nm", childTemplate.getString(EKK0861B501CBSMsg1List.MSBSN_KRTG_BKN_AZCHO_NM)); //ANK-1392-00-00 I/F名変更
					if (childTemplate.isNull(EKK0861B501CBSMsg1List.MSBSN_KRTG_BKN_BNCHIGO))
					{
						childMap.put("kisnusekei_bkn_azcho_nm", childTemplate.getString(EKK0861B501CBSMsg1List.MSBSN_KRTG_BKN_AZCHO_NM));
					}
					else
					{
						childMap.put("kisnusekei_bkn_azcho_nm", childTemplate.getString(EKK0861B501CBSMsg1List.MSBSN_KRTG_BKN_AZCHO_NM)
								+ childTemplate.getString(EKK0861B501CBSMsg1List.MSBSN_KRTG_BKN_BNCHIGO));
					}
// ANK-3328-00-00 MOD END
				}
				// マンション営業管理対象物件字丁目名
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.MSBSN_KRTG_BKN_AZCHO_NM))
				{
					childMap.put("msbsn_krtg_bkn_azcho_nm", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("msbsn_krtg_bkn_azcho_nm", childTemplate.getString(EKK0861B501CBSMsg1List.MSBSN_KRTG_BKN_AZCHO_NM));
				}
				// マンション営業管理対象物件番地号
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.MSBSN_KRTG_BKN_BNCHIGO))
				{
					childMap.put("msbsn_krtg_bkn_bnchigo", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("msbsn_krtg_bkn_bnchigo", childTemplate.getString(EKK0861B501CBSMsg1List.MSBSN_KRTG_BKN_BNCHIGO));
				}
				// ネット用回線使用契約番号
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.NET_KAISEN_USE_KEI_NO))
				{
					childMap.put("net_kaisen_use_kei_no", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("net_kaisen_use_kei_no", childTemplate.getString(EKK0861B501CBSMsg1List.NET_KAISEN_USE_KEI_NO));
				}

				// テレビ用回線使用契約番号
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.TV_KAISEN_USE_KEI_NO))
				{
					childMap.put("tv_kaisen_use_kei_no", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("tv_kaisen_use_kei_no", childTemplate.getString(EKK0861B501CBSMsg1List.TV_KAISEN_USE_KEI_NO));
				}

				// マンションＩＤ
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.MANSION_ID))
				{
					childMap.put("mansion_id", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("mansion_id", childTemplate.getString(EKK0861B501CBSMsg1List.MANSION_ID));
				}

				// ペアＩＤ
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.PAIRID))
				{
					childMap.put("pairid", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("pairid", childTemplate.getString(EKK0861B501CBSMsg1List.PAIRID));
				}

				// CAT-ID
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.CATID))
				{
					childMap.put("catid", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("catid", childTemplate.getString(EKK0861B501CBSMsg1List.CATID));
				}

				// 宅内特殊配線有料工事コード
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.TAKNI_TOKUHSEN_YRKOJI_CD))
				{
					childMap.put("takni_tokuhsen_yrkoji_cd", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("takni_tokuhsen_yrkoji_cd", childTemplate.getString(EKK0861B501CBSMsg1List.TAKNI_TOKUHSEN_YRKOJI_CD));
				}

				// マンション価格帯コード
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.MANSION_KAKAKUTAI_CD))
				{
					childMap.put("mansion_kakakutai_cd", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("mansion_kakakutai_cd", childTemplate.getString(EKK0861B501CBSMsg1List.MANSION_KAKAKUTAI_CD));
				}

				// 加入契約申込条件コード
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.KNYKEI_MSKM_JOKEN_CD))
				{
					childMap.put("knykei_mskm_joken_cd", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("knykei_mskm_joken_cd", childTemplate.getString(EKK0861B501CBSMsg1List.KNYKEI_MSKM_JOKEN_CD));
				}

				// ネット加入契約申込条件コード
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.NET_KNYKEI_MSKM_JOKEN_CD))
				{
					childMap.put("net_knykei_mskm_joken_cd", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("net_knykei_mskm_joken_cd", childTemplate.getString(EKK0861B501CBSMsg1List.NET_KNYKEI_MSKM_JOKEN_CD));
				}

				// テレビ加入契約申込条件コード
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.TV_KNYKEI_MSKM_JOKEN_CD))
				{
					childMap.put("tv_knykei_mskm_joken_cd", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("tv_knykei_mskm_joken_cd", childTemplate.getString(EKK0861B501CBSMsg1List.TV_KNYKEI_MSKM_JOKEN_CD));
				}

				// 加入契約ネット10G申込可否
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.KNYKEI_NET_10G_MSKM_KH))
				{
					childMap.put("knykei_net_10g_mskm_kh", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("knykei_net_10g_mskm_kh", childTemplate.getString(EKK0861B501CBSMsg1List.KNYKEI_NET_10G_MSKM_KH));
				}

				// 加入契約ネット1G申込可否
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.KNYKEI_NET_1G_MSKM_KH))
				{
					childMap.put("knykei_net_1g_mskm_kh", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("knykei_net_1g_mskm_kh", childTemplate.getString(EKK0861B501CBSMsg1List.KNYKEI_NET_1G_MSKM_KH));
				}

				// 加入契約ネット200M申込可否
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.KNYKEI_NET_200M_MSKM_KH))
				{
					childMap.put("knykei_net_200m_mskm_kh", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("knykei_net_200m_mskm_kh", childTemplate.getString(EKK0861B501CBSMsg1List.KNYKEI_NET_200M_MSKM_KH));
				}

				// 加入契約ネット100M申込可否
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.KNYKEI_NET_100M_MSKM_KH))
				{
					childMap.put("knykei_net_100m_mskm_kh", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("knykei_net_100m_mskm_kh", childTemplate.getString(EKK0861B501CBSMsg1List.KNYKEI_NET_100M_MSKM_KH));
				}

				// メゾン光テレビ提供コード
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.MAISON_HIKARI_TV_TK_CD))
				{
					childMap.put("maison_hikari_tv_tk_cd", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("maison_hikari_tv_tk_cd", childTemplate.getString(EKK0861B501CBSMsg1List.MAISON_HIKARI_TV_TK_CD));
				}

				// 光テレビ提供状況コード
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.HIKARI_TV_TK_JOKYO_CD))
				{
					childMap.put("hikari_tv_tk_jokyo_cd", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("hikari_tv_tk_jokyo_cd", childTemplate.getString(EKK0861B501CBSMsg1List.HIKARI_TV_TK_JOKYO_CD));
				}

				// 光電話提供コード
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.HIKARI_TEL_TK_CD))
				{
					childMap.put("hikari_tel_tk_cd", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("hikari_tel_tk_cd", childTemplate.getString(EKK0861B501CBSMsg1List.HIKARI_TEL_TK_CD));
				}

				// 標準サービス開始日数
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.STDARD_SVC_STA_NISU))
				{
					childMap.put("stdard_svc_sta_nisu", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("stdard_svc_sta_nisu", childTemplate.getString(EKK0861B501CBSMsg1List.STDARD_SVC_STA_NISU));
				}

				// 提供方式コード
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.TK_HOSHIKI_CD))
				{
					childMap.put("tk_hoshiki_cd", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("tk_hoshiki_cd", childTemplate.getString(EKK0861B501CBSMsg1List.TK_HOSHIKI_CD));
				}

				// 提供料金種別コード
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.TK_PRC_SBT_CD))
				{
					childMap.put("tk_prc_sbt_cd", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("tk_prc_sbt_cd", childTemplate.getString(EKK0861B501CBSMsg1List.TK_PRC_SBT_CD));
				}

				// 棟内速度コード
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.TONAI_SPEED_CD))
				{
					childMap.put("tonai_speed_cd", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("tonai_speed_cd", childTemplate.getString(EKK0861B501CBSMsg1List.TONAI_SPEED_CD));
				}

				// ネット用提供方式契約番号
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.NET_TK_HOSHIKI_KEI_NO))
				{
					childMap.put("net_tk_hoshiki_kei_no", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("net_tk_hoshiki_kei_no", childTemplate.getString(EKK0861B501CBSMsg1List.NET_TK_HOSHIKI_KEI_NO));
				}

				// テレビ用提供方式契約番号
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.TV_TK_HOSHIKI_KEI_NO))
				{
					childMap.put("tv_tk_hoshiki_kei_no", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("tv_tk_hoshiki_kei_no", childTemplate.getString(EKK0861B501CBSMsg1List.TV_TK_HOSHIKI_KEI_NO));
				}

				// Ｐ−ＩＤ
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.PID))
				{
					childMap.put("pid", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("pid", childTemplate.getString(EKK0861B501CBSMsg1List.PID));

					// ANK-3885-00-00 ADD START
					pid = childTemplate.getString(EKK0861B501CBSMsg1List.PID);
					// ANK-3885-00-00 ADD END
				}

				// オーナー契約番号
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.OWNR_KEI_NO))
				{
					childMap.put("ownr_kei_no", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("ownr_kei_no", childTemplate.getString(EKK0861B501CBSMsg1List.OWNR_KEI_NO));
				}

				// マンションオーナーＩＤ
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.MANSION_OWNR_ID))
				{
					childMap.put("mansion_ownr_id", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("mansion_ownr_id", childTemplate.getString(EKK0861B501CBSMsg1List.MANSION_OWNR_ID));
				}

				// IP払出コード
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.IP_HRADSI_CD))
				{
					childMap.put("ip_hradsi_cd", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("ip_hradsi_cd", childTemplate.getString(EKK0861B501CBSMsg1List.IP_HRADSI_CD));
				}

				// 支払方式コード
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.PAY_HOSHIKI_CD))
				{
					childMap.put("pay_hoshiki_cd", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("pay_hoshiki_cd", childTemplate.getString(EKK0861B501CBSMsg1List.PAY_HOSHIKI_CD));
				}

				// 起点変電所コード
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.KITEN_HDSHO_CD))
				{
					childMap.put("kiten_hdsho_cd", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("kiten_hdsho_cd", childTemplate.getString(EKK0861B501CBSMsg1List.KITEN_HDSHO_CD));
				}

				// 集約局コード
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.SHYAKK_CD))
				{
					childMap.put("shyakk_cd", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("shyakk_cd", childTemplate.getString(EKK0861B501CBSMsg1List.SHYAKK_CD));
				}

				// ネット用マンション割引サービス契約番号
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.NET_MANSION_WRIB_SVC_KEI_NO))
				{
					childMap.put("net_mansion_wrib_svc_kei_no", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("net_mansion_wrib_svc_kei_no", childTemplate.getString(EKK0861B501CBSMsg1List.NET_MANSION_WRIB_SVC_KEI_NO));
				}

				// ネット用マンションキャンペーンコード
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.NET_MANS_CAMPAIGN_CD))
				{
					childMap.put("net_mans_campaign_cd", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("net_mans_campaign_cd", childTemplate.getString(EKK0861B501CBSMsg1List.NET_MANS_CAMPAIGN_CD));
				}

				// テレビ用マンション割引サービス契約番号
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.TV_MANSION_WRIB_SVC_KEI_NO))
				{
					childMap.put("tv_mansion_wrib_svc_kei_no", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("tv_mansion_wrib_svc_kei_no", childTemplate.getString(EKK0861B501CBSMsg1List.TV_MANSION_WRIB_SVC_KEI_NO));
				}

				// テレビ用マンションキャンペーンコード
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.TV_MANS_CAMPAIGN_CD))
				{
					childMap.put("tv_mans_campaign_cd", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("tv_mans_campaign_cd", childTemplate.getString(EKK0861B501CBSMsg1List.TV_MANS_CAMPAIGN_CD));
				}

				// ANK-0363-00-00 2012/09/26 h.iwamoto START
				// ｅｏ光ネット従量プラン申込可否
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.EOHNT_JURYO_PLAN_MKM_KH))
				{
					childMap.put("eohnt_juryo_plan_mkm_kh", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("eohnt_juryo_plan_mkm_kh", childTemplate.getString(EKK0861B501CBSMsg1List.EOHNT_JURYO_PLAN_MKM_KH));
				}
				// ANK-0363-00-00 2012/09/26 h.iwamoto END

				// ANK-1190-00-00 2012/10/25 Otsuka START
				// サービス開始予定年月日
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.SVC_STA_RSV_YMD))
				{
					childMap.put("svc_sta_rsv_ymd", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("svc_sta_rsv_ymd", childTemplate.getString(EKK0861B501CBSMsg1List.SVC_STA_RSV_YMD));
				}
				// サービス開始年月日
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.SVC_STA_YMD))
				{
					childMap.put("svc_sta_ymd", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("svc_sta_ymd", childTemplate.getString(EKK0861B501CBSMsg1List.SVC_STA_YMD));
				}

				// ANK-1435-00-00(提供条件-旧光直収) >>>
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.ACCSS_KISN_SPEED_CD))
				{
					childMap.put("accss_kisn_speed_cd", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("accss_kisn_speed_cd", childTemplate.getString(EKK0861B501CBSMsg1List.ACCSS_KISN_SPEED_CD));
				}
				// ANK-1435-00-00(提供条件-旧光直収) <<<E

				// 契約付加(レンタル)コード
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.KEI_HUKA_RENT_CD))
				{
					childMap.put("kei_huka_rent_cd", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("kei_huka_rent_cd", childTemplate.getString(EKK0861B501CBSMsg1List.KEI_HUKA_RENT_CD));
				}

				// 契約付加(買取)コード
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.KEI_HUKA_KAITORI_CD))
				{
					childMap.put("kei_huka_kaitori_cd", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("kei_huka_kaitori_cd", childTemplate.getString(EKK0861B501CBSMsg1List.KEI_HUKA_KAITORI_CD));
				}
				// マンション接続機器コード
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.MCNTKK_CD))
				{
					childMap.put("mcntkk_cd", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("mcntkk_cd", childTemplate.getString(EKK0861B501CBSMsg1List.MCNTKK_CD));
				}
				// マンション接続機器型式コード
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.MCNTKK_MODEL_CD))
				{
					childMap.put("mcntkk_model_cd", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("mcntkk_model_cd", childTemplate.getString(EKK0861B501CBSMsg1List.MCNTKK_MODEL_CD));
				}
				// メゾン開通実績PON種別コード
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.MZ_OPJSK_PON_SBT_CD))
				{
					childMap.put("mz_opjsk_pon_sbt_cd", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("mz_opjsk_pon_sbt_cd", childTemplate.getString(EKK0861B501CBSMsg1List.MZ_OPJSK_PON_SBT_CD));
				}

				// BSパススルー可否
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.BSPT_KH))
				{
					childMap.put("bspt_kh", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("bspt_kh", childTemplate.getString(EKK0861B501CBSMsg1List.BSPT_KH));
				}

				// 光配線1Gのみフラグ
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.HHS_1GONLY_FLG))
				{
					childMap.put("hhs_1gonly_flg", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("hhs_1gonly_flg", childTemplate.getString(EKK0861B501CBSMsg1List.HHS_1GONLY_FLG));

					// ANK-3885-00-00 ADD START
					hhs1gOnlyFlg = childTemplate.getString(EKK0861B501CBSMsg1List.HHS_1GONLY_FLG);
					// ANK-3885-00-00 ADD END
				}

				// ANK-3757-00-00 ADD START
				// イーサ他社併行フラグ
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.KOJI_SBT))
				{
					childMap.put("ether_tashaheiko_flg", JFUStrConst.EMPTY);
// ANK-3805-00-00 ADD START
					childMap.put("koji_sbt", JFUStrConst.EMPTY);
// ANK-3805-00-00 ADD END
				}
				else
				{
					if (JFUStrConst.KOJI_SBT_001.equals(childTemplate.getString(EKK0861B501CBSMsg1List.KOJI_SBT)))
					{
						// 工事種別が"001"の場合はイーサ他社併行フラグに"1"を設定
						childMap.put("ether_tashaheiko_flg", JFUStrConst.ETHER_TASHAHEIKO_FLG_1);
					}
					else
					{
						// 上記外の場合は未設定
						childMap.put("ether_tashaheiko_flg", JFUStrConst.EMPTY);
					}
// ANK-3805-00-00 ADD START
					// 工事種別
					childMap.put("koji_sbt", childTemplate.getString(EKK0861B501CBSMsg1List.KOJI_SBT));
// ANK-3805-00-00 ADD END
				}
				// ANK-3757-00-00 ADD END

				// ANK-3885-00-00 ADD START
				// 提供方式パターンコード
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.TK_HOSHIKI_PATTERN_CD))
				{
					childMap.put("tk_hoshiki_pattern_cd", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("tk_hoshiki_pattern_cd", childTemplate.getString(EKK0861B501CBSMsg1List.TK_HOSHIKI_PATTERN_CD));
					tkHoshikiPatternCd = childTemplate.getString(EKK0861B501CBSMsg1List.TK_HOSHIKI_PATTERN_CD);
				}

				// 回線使用契約物件カナ名
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.MSBSN_KRTG_BKN_KANA))
				{
					childMap.put("kisnusekei_bkn_kana", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("kisnusekei_bkn_kana", childTemplate.getString(EKK0861B501CBSMsg1List.MSBSN_KRTG_BKN_KANA));
				}

				// 加入契約ネット10G申込可否_マンション
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.KNYKEI_NET_10G_MKM_KH_MANS))
				{
					childMap.put("knykei_net_10g_mkm_kh_mans", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("knykei_net_10g_mkm_kh_mans", childTemplate.getString(EKK0861B501CBSMsg1List.KNYKEI_NET_10G_MKM_KH_MANS));
				}

				// 加入契約ネット1G申込可否_マンション
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.KNYKEI_NET_1G_MKM_KH_MANS))
				{
					childMap.put("knykei_net_1g_mkm_kh_mans", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("knykei_net_1g_mkm_kh_mans", childTemplate.getString(EKK0861B501CBSMsg1List.KNYKEI_NET_1G_MKM_KH_MANS));
				}

				// 提供方式変更種別の設定
				String tk_hoshiki_cd = (String)childMap.get("tk_hoshiki_cd");
				String tk_hoshiki_pattern_cd = (String)childMap.get("tk_hoshiki_pattern_cd");
				String tonai_speed_cd = (String)childMap.get("tonai_speed_cd");
				String hhs_1gonly_flg = (String)childMap.get("hhs_1gonly_flg");
				String kanyu_kei_pay_hoshiki_cd = (String)childMap.get("pay_hoshiki_cd");
				String tk_hoshiki_chg_sbt_cd = JFUBPCommon.getTkHoshikiChgSbtCd(tk_hoshiki_cd, tk_hoshiki_pattern_cd, tonai_speed_cd,
						hhs_1gonly_flg, kanyu_kei_pay_hoshiki_cd);
				childMap.put("tk_hoshiki_chg_sbt_cd", tk_hoshiki_chg_sbt_cd);

				printlnEjbLog("■■■■■ マンション物件コード[" + childMap.get("mansion_bukken_cd") + "]" 
						+ " ネットの回線使用契約番号[" + childMap.get("net_kaisen_use_kei_no") + "]" 
						+ " テレビの回線使用契約番号[" + childMap.get("tv_kaisen_use_kei_no") + "]" 
						+ " 提供方式コード[" + tk_hoshiki_cd + "] 提供方式パターンコード["+ tk_hoshiki_pattern_cd
						 + "] 棟内速度コード[" + tonai_speed_cd + "] -----> 提供方式変更種別[" + tk_hoshiki_chg_sbt_cd + "] ■■■■■");

				// ANK-1190-00-00 2012/10/25 Otsuka END
				// ネット加入契約申込条件コードが非表示("19"、"29")で光テレビ提供状況コードが未提供("0")の場合
				if ((JFUStrConst.KNYKEI_MSKM_JOKEN_DONYU_MK.equals((String)childMap.get("net_knykei_mskm_joken_cd"))
						&& "0".equals((String)childMap.get("hikari_tv_tk_jokyo_cd"))
						|| (JFUStrConst.KNYKEI_MSKM_JOKEN_DONYU_MK_MAISON.equals((String)childMap.get("net_knykei_mskm_joken_cd"))
						&& "00".equals(((String)childMap.get("maison_hikari_tv_tk_cd")).trim())))
						&& !JFUStrConst.KNYKEI_MSKM_JOKEN_DONYU_RSV.equals((String)childMap.get("tv_knykei_mskm_joken_cd"))
						&& !JFUStrConst.KNYKEI_MSKM_JOKEN_ATICLE.equals((String)childMap.get("tv_knykei_mskm_joken_cd"))
						&& !JFUStrConst.KNYKEI_MSKM_JOKEN_ATICLE_RSV_MAISON.equals((String)childMap.get("tv_knykei_mskm_joken_cd"))
						&& !JFUStrConst.KNYKEI_MSKM_JOKEN_ATICLE_SIKY_MAISON.equals((String)childMap.get("tv_knykei_mskm_joken_cd")))
				{
					// 画面に表示しない
					continue;
				}

				// ANK-1392-00-00 全戸一括の低価格は画面に表示しない>>>
				String knykei_mskm_joken_cd = (String)childMap.get("knykei_mskm_joken_cd");
				String mansion_kakakutai_cd = (String)childMap.get("mansion_kakakutai_cd");
				if (knykei_mskm_joken_cd.equals("13") && mansion_kakakutai_cd.equals("1"))
				{
					continue;
				}
				// ANK-1392-00-00 <<<E

				// マンション時ネット併設時のデータ編集処理

				// マンション物件コード取得
				String mansionBukkenCd = (String)childMap.get("mansion_bukken_cd");
				// 光テレビ提供状況コード取得
				String hikariTvTkJokenCd = (String)childMap.get("hikari_tv_tk_jokyo_cd");
				// テレビ用提供方式番号
				String tvTkHoshikiKeiNo = (String)childMap.get("tv_tk_hoshiki_kei_no");
				// テレビ用回線使用契約番号
				String tvKaisenUseKeiNo = (String)childMap.get("tv_kaisen_use_kei_no");

				// テレビ用提供方式番号またはテレビ用回線使用契約番号が無い場合
				if (isBlank(tvTkHoshikiKeiNo) || isBlank(tvKaisenUseKeiNo))
				{
					// マンションかつネット併設の場合
					if (JFUMansionSearchConstCC.MANSION_BUKKEN_CD_MF.equals(mansionBukkenCd)
							&& JFUMansionSearchConstCC.HIKARI_TV_TK_JOKYO_CD_NET_HIST.equals(hikariTvTkJokenCd))
					{
						// ネット用からテレビ用に転記(提供方式契約番号)
						childMap.put("tv_tk_hoshiki_kei_no", childTemplate.getString(EKK0861B501CBSMsg1List.NET_TK_HOSHIKI_KEI_NO));
						// ネット用からテレビ用に転記(回線使用契約番号)
						childMap.put("tv_kaisen_use_kei_no", childTemplate.getString(EKK0861B501CBSMsg1List.NET_KAISEN_USE_KEI_NO));

						// ネット用からテレビ用に転記(マンション割引サービス契約番号)
						childMap.put("tv_mansion_wrib_svc_kei_no", childTemplate.getString(EKK0861B501CBSMsg1List.NET_MANSION_WRIB_SVC_KEI_NO));
						// ネット用からテレビ用に転記(マンションキャンペーンコード)
						childMap.put("tv_mans_campaign_cd", childTemplate.getString(EKK0861B501CBSMsg1List.NET_MANS_CAMPAIGN_CD));

					}
				}

				// メゾン時マンションIDクリア処理(マンションデータ整合性チェックでやる？)
				if (JFUStrConst.CD01228_002.equals(mansionBukkenCd))
				{
					// マンションIDを空にする
					childMap.put("mansion_id", JFUStrConst.EMPTY);
				}

				// ANK-1220-00-00対応 2012/09/23 h.iwamoto START
				// マンションデータ整合性チェックを行う
				String mansionCheckResult = mansionCheck(childMap);
				if ("0".equals(mansionCheckResult))
				{
					// チェック結果"0"の場合資料請求フラグOFF
					childMap.put("siryo_seiky_flg", "0");
				}
				else if ("1".equals(mansionCheckResult))
				{
					// チェック結果"1"の場合資料請求フラグON
					childMap.put("siryo_seiky_flg", "1");
				}
				else if ("2".equals(mansionCheckResult))
				{
					// チェック結果"2"の場合非表示
					continue;
				}
				// ANK-1220-00-00対応 2012/09/23 h.iwamoto END

				// 非表示物件であるか判定する
				if(JFUMansionSearchConstCC.MANSION_BUKKEN_CD_MF.equals(mansionBukkenCd) && judgeNodispMansion(handle, param, childMap))
				{
					// マンションで非表示物件の場合、物件データを格納せず次の情報へ
					continue;
				}

				// 入れ替えフラグ
				boolean isTradeAdd = false;

				// add start 2014/05/19 OM-1888 併設扱い時の入れ替えで資料請求フラグも入れ替える
				// 併設資料請求フラグ
				boolean isHeisetsuSiryoFlg = false;
				// add end   2014/05/19 OM-1888 併設扱い時の入れ替えで資料請求フラグも入れ替える

				// 退避MAPがある場合
				if (temp_search_map != null)
				{
//					// 退避MAPの物件管理番号
//					String temp_bkn_knri_no = (String)temp_search_map.get("bkn_knri_no");
//					// ループカレントの物件管理番号
//					String child_bkn_knri_no = (String)childMap.get("bkn_knri_no");

					//ANK-1392-00-00　棟別対応 >>>
					//以下の条件に該当する場合は、1行にまとめる
					// 退避MAPのオーナー契約番号
					String temp_ownr_kei_no = (String)temp_search_map.get("ownr_kei_no");
					// ループカレントのオーナー契約番号
					String child_ownr_kei_no = (String)childMap.get("ownr_kei_no");
					// 退避MAPのネット用回線使用契約番号
					String temp_net_kaisen_use_kei_no = (String)temp_search_map.get("net_kaisen_use_kei_no");
					// ループカレントのネット用回線使用契約番号
					String child_net_kaisen_use_kei_no = (String)childMap.get("net_kaisen_use_kei_no");
					// 退避MAPのテレビ用回線使用契約番号
					String temp_tv_kaisen_use_kei_no = (String)temp_search_map.get("tv_kaisen_use_kei_no");
					// ループカレントのテレビ用回線使用契約番号
					String child_tv_kaisen_use_kei_no = (String)childMap.get("tv_kaisen_use_kei_no");
					//ANK-1392-00-00　棟別対応 <<<

					//ANK-1392-00-00　棟別対応 >>>
					// 同じオーナー契約番号の場合
					if (temp_ownr_kei_no.equals(child_ownr_kei_no))
					{
						// ネット用回線使用契約番号が同じ かつ、テレビ用回線使用契約番号がおなじ場合は、併設扱い
						if (temp_net_kaisen_use_kei_no.equals(child_net_kaisen_use_kei_no)
								&& temp_tv_kaisen_use_kei_no.equals(child_tv_kaisen_use_kei_no))
						{
							//ネット併設用の既存ロジックの場所移動↓↓↓
							// 提供方式コードの大きい方を取得
							HashMap maxTkHoshikiCdMap = this.getMaxTkHoshikiCdMap(temp_search_map, childMap);

							// 提供方式コードの大きいMAPが取得できた場合
							if (maxTkHoshikiCdMap != null)
							{

								// No356 2013/02/25 Otsuka start キャンペーン情報の複数持ち対応

								String temp_tk_hoshiki_cd = (String)temp_search_map.get("tk_hoshiki_cd");
								String child_tk_hoshiki_cd = (String)childMap.get("tk_hoshiki_cd");

								// 提供方式コードが同じ場合
								if (temp_tk_hoshiki_cd.equals(child_tk_hoshiki_cd))
								{
									String temp_net_wrib_svc_kei_no = (String)temp_search_map.get("net_mansion_wrib_svc_kei_no");
									String temp_net_campaign_cd = (String)temp_search_map.get("net_mans_campaign_cd");
									String temp_tv_wrib_svc_kei_no = (String)temp_search_map.get("tv_mansion_wrib_svc_kei_no");
									String temp_tv_campaign_cd = (String)temp_search_map.get("tv_mans_campaign_cd");

									String child_net_wrib_svc_kei_no = (String)childMap.get("net_mansion_wrib_svc_kei_no");
									String child_net_campaign_cd = (String)childMap.get("net_mans_campaign_cd");
									String child_tv_wrib_svc_kei_no = (String)childMap.get("tv_mansion_wrib_svc_kei_no");
									String child_tv_campaign_cd = (String)childMap.get("tv_mans_campaign_cd");

									// ネット用マンション割引サービス契約番号
									// 同じコードが存在しない場合、カンマ区切りで設定する。
									if (temp_net_wrib_svc_kei_no.indexOf(child_net_wrib_svc_kei_no) == -1)
									{
										if (!JFUStrConst.EMPTY.equals(temp_net_wrib_svc_kei_no))
										{
											temp_net_wrib_svc_kei_no += JFUStrConst.COMMA;
										}

										temp_net_wrib_svc_kei_no += child_net_wrib_svc_kei_no;
									}

									// ネット用マンションキャンペーンコード
									// 同じコードが存在しない場合、カンマ区切りで設定する。
									if (temp_net_campaign_cd.indexOf(child_net_campaign_cd) == -1)
									{
										if (!JFUStrConst.EMPTY.equals(temp_net_campaign_cd))
										{
											temp_net_campaign_cd += JFUStrConst.COMMA;
										}

										temp_net_campaign_cd += child_net_campaign_cd;
									}

									// テレビ用マンション割引サービス契約番号
									// 同じコードが存在しない場合、カンマ区切りで設定する。
									if (temp_tv_wrib_svc_kei_no.indexOf(child_tv_wrib_svc_kei_no) == -1)
									{
										if (!JFUStrConst.EMPTY.equals(temp_tv_wrib_svc_kei_no))
										{
											temp_tv_wrib_svc_kei_no += JFUStrConst.COMMA;
										}

										temp_tv_wrib_svc_kei_no += child_tv_wrib_svc_kei_no;
									}

									// テレビ用マンションキャンペーンコード
									// 同じコードが存在しない場合、カンマ区切りで設定する。
									if (temp_tv_campaign_cd.indexOf(child_tv_campaign_cd) == -1)
									{
										if (!JFUStrConst.EMPTY.equals(temp_tv_campaign_cd))
										{
											temp_tv_campaign_cd += JFUStrConst.COMMA;
										}
										temp_tv_campaign_cd += child_tv_campaign_cd;
									}

									// 上書きする
									maxTkHoshikiCdMap.put("net_mansion_wrib_svc_kei_no", temp_net_wrib_svc_kei_no);

									maxTkHoshikiCdMap.put("net_mans_campaign_cd", temp_net_campaign_cd);

									maxTkHoshikiCdMap.put("tv_mansion_wrib_svc_kei_no", temp_tv_wrib_svc_kei_no);

									maxTkHoshikiCdMap.put("tv_mans_campaign_cd", temp_tv_campaign_cd);
								}
								// No356 2013/02/25 Otsuka end

								//// マンション検索一覧の最後を入れ替える。
								// edit start 2014/05/16 OM-1888 併設扱い時の入れ替えで資料請求フラグも入れ替える
								// HashMap lastMap = (HashMap)mansion_search_list.get(mansion_search_list.size() - 1);
								// if (!"1".equals(lastMap.get("siryo_seiky_flg")))
								// {
								// 	mansion_search_list.remove(mansion_search_list.size() - 1);
								// 	mansion_search_list.add(maxTkHoshikiCdMap);
								// }
								mansion_search_list.remove(mansion_search_list.size() - 1);
								mansion_search_list.add(maxTkHoshikiCdMap);
								// edit end   2014/05/16 OM-1888 併設扱い時の入れ替えで資料請求フラグも入れ替える
								isTradeAdd = true;

							}
							//ネット併設用の既存ロジックの場所移動↑↑↑
						}

						// マンション残対応 >>>棟をネット回線単位から分離
						//ネット用回線使用契約番号が同じ、かつ、
						//テレビ用回線使用契約番号がのどちらかが空
						//の場合、結果に詰め込まない。
						// ネット：A棟,B棟共用　ＴＶ：A棟回線あり,B棟無し
						else if (temp_net_kaisen_use_kei_no.equals(child_net_kaisen_use_kei_no)
								&& ((!temp_tv_kaisen_use_kei_no.equals(JFUStrConst.EMPTY) && child_tv_kaisen_use_kei_no.equals(JFUStrConst.EMPTY))
								  ||(temp_tv_kaisen_use_kei_no.equals(JFUStrConst.EMPTY) && !child_tv_kaisen_use_kei_no.equals(JFUStrConst.EMPTY))
								)
								)
						{
							// 詰め込んだデータの資料請求フラグに1を設定する
							HashMap mmap = (HashMap)mansion_search_list.get(mansion_search_list.size() - 1);
							mmap.put("siryo_seiky_flg", "1");
							// 入れ替えフラグON
							isTradeAdd = true;

							// add start 2014/05/19 OM-1888 併設扱い時の入れ替えで資料請求フラグも入れ替える
							// 併設資料請求フラグ
							isHeisetsuSiryoFlg = true;
							// add end   2014/05/19 OM-1888 併設扱い時の入れ替えで資料請求フラグも入れ替える
						}

						//テレビ用回線使用契約番号が同じ、かつ、
						//ネット用回線使用契約番号がのどちらかが空
						//の場合、結果に詰め込まない。
						// ＴＶ：A棟,B棟共用　ネット：A棟回線あり,B棟無し
						else if (temp_tv_kaisen_use_kei_no.equals(child_tv_kaisen_use_kei_no)
								&& ((!temp_net_kaisen_use_kei_no.equals(JFUStrConst.EMPTY) && child_net_kaisen_use_kei_no.equals(JFUStrConst.EMPTY))
								  ||(temp_net_kaisen_use_kei_no.equals(JFUStrConst.EMPTY) && !child_net_kaisen_use_kei_no.equals(JFUStrConst.EMPTY))
								)
								)
						{
							// 詰め込んだデータの資料請求フラグに1を設定する
							HashMap mmap = (HashMap)mansion_search_list.get(mansion_search_list.size() - 1);
							mmap.put("siryo_seiky_flg", "1");
							// 入れ替えフラグON
							isTradeAdd = true;

							// add start 2014/05/19 OM-1888 併設扱い時の入れ替えで資料請求フラグも入れ替える
							// 併設資料請求フラグ
							isHeisetsuSiryoFlg = true;
							// add end   2014/05/19 OM-1888 併設扱い時の入れ替えで資料請求フラグも入れ替える
						}
						// マンション残対応 <<<E


						//ネット用回線使用契約番号が同じ、かつ、テレビ用回線使用契約番号が空でない場合
						//の場合、結果に詰め込まない。
						else if (temp_net_kaisen_use_kei_no.equals(child_net_kaisen_use_kei_no)
								&& !temp_tv_kaisen_use_kei_no.equals(child_tv_kaisen_use_kei_no) && !temp_tv_kaisen_use_kei_no.equals(JFUStrConst.EMPTY)
								&& !child_tv_kaisen_use_kei_no.equals(JFUStrConst.EMPTY))
						{
							//テレビ回線が他のネット回線で使用されているか判断する
							//使用されている場合は、資料請求とする
							boolean isUsedOther = false;
							for (int j = i + 1; j < templateArray.length; j++)
							{
								CAANMsg diff_childTemplate = templateArray[j];
								// オーナー契約番号が一致する
								if (!diff_childTemplate.isNull(EKK0861B501CBSMsg1List.OWNR_KEI_NO)
										&& child_ownr_kei_no.equals(diff_childTemplate.getString(EKK0861B501CBSMsg1List.OWNR_KEI_NO)))
								{

									String diff_net_kaisen_use_kei_no = diff_childTemplate.getString(EKK0861B501CBSMsg1List.NET_KAISEN_USE_KEI_NO);
									if (diff_net_kaisen_use_kei_no == null)
									{
										diff_net_kaisen_use_kei_no = JFUStrConst.EMPTY;
									}
									String diff_tv_kaisen_use_kei_no = diff_childTemplate.getString(EKK0861B501CBSMsg1List.TV_KAISEN_USE_KEI_NO);
									if (diff_tv_kaisen_use_kei_no == null)
									{
										diff_tv_kaisen_use_kei_no = JFUStrConst.EMPTY;
									}
									if (!child_net_kaisen_use_kei_no.equals(diff_net_kaisen_use_kei_no)
											&& child_tv_kaisen_use_kei_no.equals(diff_tv_kaisen_use_kei_no))
									{
										isUsedOther = true;
										break;
									}
								}
								else
								{
									break;
								}

							}
							if (isUsedOther)
							{
								HashMap mmap = (HashMap)mansion_search_list.get(mansion_search_list.size() - 1);
								mmap.put("siryo_seiky_flg", "1");

								// 詰め込んだデータの資料請求フラグに1を設定する
								// 入れ替えフラグON
								isTradeAdd = true;
							}
						}

						//ＴＶ用回線使用契約番号が同じ、かつ、ネット用回線使用契約番号が空でない場合
						//の場合、結果に詰め込まない。
						else if (temp_tv_kaisen_use_kei_no.equals(child_tv_kaisen_use_kei_no)
								&& !temp_net_kaisen_use_kei_no.equals(child_net_kaisen_use_kei_no) && !temp_net_kaisen_use_kei_no.equals(JFUStrConst.EMPTY)
								&& !child_net_kaisen_use_kei_no.equals(JFUStrConst.EMPTY))
						{
							//ネット回線が他のＴＶ回線で使用されているか判断する
							//使用されている場合は、資料請求とする
							boolean isUsedOther = false;
							for (int j = i + 1; j < templateArray.length; j++)
							{
								CAANMsg diff_childTemplate = templateArray[j];
								// オーナー契約番号が一致する
								if (!diff_childTemplate.isNull(EKK0861B501CBSMsg1List.OWNR_KEI_NO)
										&& child_ownr_kei_no.equals(diff_childTemplate.getString(EKK0861B501CBSMsg1List.OWNR_KEI_NO)))
								{

									String diff_tv_kaisen_use_kei_no = diff_childTemplate.getString(EKK0861B501CBSMsg1List.TV_KAISEN_USE_KEI_NO);
									if (diff_tv_kaisen_use_kei_no == null)
									{
										diff_tv_kaisen_use_kei_no = JFUStrConst.EMPTY;
									}
									String diff_net_kaisen_use_kei_no = diff_childTemplate.getString(EKK0861B501CBSMsg1List.NET_KAISEN_USE_KEI_NO);
									if (diff_net_kaisen_use_kei_no == null)
									{
										diff_net_kaisen_use_kei_no = JFUStrConst.EMPTY;
									}
									if (!child_tv_kaisen_use_kei_no.equals(diff_tv_kaisen_use_kei_no)
											&& child_net_kaisen_use_kei_no.equals(diff_net_kaisen_use_kei_no))
									{
										isUsedOther = true;
										break;
									}
								}
								else
								{
									break;
								}

							}
							if (isUsedOther)
							{
								HashMap mmap = (HashMap)mansion_search_list.get(mansion_search_list.size() - 1);
								mmap.put("siryo_seiky_flg", "1");

								// 詰め込んだデータの資料請求フラグに1を設定する
								// 入れ替えフラグON
								isTradeAdd = true;
							}


						}

//						//ネット用回線使用契約番号が同じ、もしくは、テレビ用回線使用契約番号がおなじ かつ ネット用回線使用契約番号のどちらかが空
//						//の場合、結果に詰め込まない。
//						else if (temp_net_kaisen_use_kei_no.equals(child_net_kaisen_use_kei_no)
//								|| (temp_tv_kaisen_use_kei_no.equals(child_tv_kaisen_use_kei_no) && (temp_net_kaisen_use_kei_no.equals("") || child_net_kaisen_use_kei_no
//										.equals(""))))
//						{
//							// 詰め込んだデータの資料請求フラグに1を設定する
//							HashMap mmap = (HashMap)mansion_search_list.get(mansion_search_list.size() - 1);
//							mmap.put("siryo_seiky_flg", "1");
//							// 入れ替えフラグON
//							isTradeAdd = true;
//
//						}


					}
					//ANK-1392-00-00　棟別対応 <<<

				}

				// 加入契約10G申込適用開始年月日
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.KNYKEI_10G_MSKM_TSTAYMD))
				{
					childMap.put("knykei_10g_mskm_tstaymd", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("knykei_10g_mskm_tstaymd", childTemplate.getString(EKK0861B501CBSMsg1List.KNYKEI_10G_MSKM_TSTAYMD));
				}
				// 加入契約10G申込適用終了年月日
				if (childTemplate.isNull(EKK0861B501CBSMsg1List.KNYKEI_10G_MSKM_TENDYMD))
				{
					childMap.put("knykei_10g_mskm_tendymd", JFUStrConst.EMPTY);
				}
				else
				{
					childMap.put("knykei_10g_mskm_tendymd", childTemplate.getString(EKK0861B501CBSMsg1List.KNYKEI_10G_MSKM_TENDYMD));
				}
				
				// 入れ替え処理を行っていない場合
				if (!isTradeAdd)
				{
					// ADD
					mansion_search_list.add(childMap);
				}

				// edit start 2014/05/19 OM-1888 併設扱い時の入れ替えで資料請求フラグも入れ替える
				// temp_search_map = new HashMap(childMap);
				if (!isHeisetsuSiryoFlg)
				{
					// 退避処理
					temp_search_map = new HashMap(childMap);
				}
				// edit end   2014/05/19 OM-1888 併設扱い時の入れ替えで資料請求フラグも入れ替える
			}
			// -----ループ処理ここまで-----

			// 機能コード1ではない場合(一意照会動作)
			//ANK-1392-00-00 棟別マンション対応>>>
			if (JFUMansionSearchConstCC.FUNC_CODE_KEY_2.equals(this.func_code))
			{
				// マンション検索一覧照会リストをマップに設定する
				dataMap.put(JFUMansionSearchConstCC.MANSION_SEARCH_A_LIST, mansion_search_list);
			}
			if (!JFUMansionSearchConstCC.FUNC_CODE_KEY_1.equals(this.func_code) && !JFUMansionSearchConstCC.FUNC_CODE_KEY_2.equals(this.func_code)
					&& !JFUMansionSearchConstCC.FUNC_CODE_KEY_4.equals(this.func_code))
			//if (!JFUMansionSearchConstCC.FUNC_CODE_KEY_1.equals(this.func_code))
			//ANK-1392-00-00 棟別マンション対応<<<
			{
				// 結果を詰めるリストを取得
				ArrayList mansion_search_a_list = (ArrayList)dataMap.get(JFUMansionSearchConstCC.MANSION_SEARCH_A_LIST);
				// 結果を詰める現在の配列のリストを取得する
				HashMap targetMap = (HashMap)mansion_search_a_list.get(index);

				// この時点で1レコードになっている
				HashMap addMap = (HashMap)mansion_search_list.get(0);

				// 退避マップにも持つ
				this.temp_mansion_map = new HashMap(addMap);

				// 詰め替え処理開始
				Iterator addIt = addMap.entrySet().iterator();
				while (addIt.hasNext())
				{
					Map.Entry entry = (Map.Entry)addIt.next();

					// HashMapのキー取得
					String key = (String)entry.getKey();
					// HashMapの値取得
					String value = (String)entry.getValue();

					// 参照しているマップに詰めなおす
					targetMap.put(key, value);
				}
			}
		}

		if (JFUMansionSearchConstCC.FUNC_CODE_KEY_1.equals(this.func_code) || JFUMansionSearchConstCC.FUNC_CODE_KEY_4.equals(this.func_code))
		{
			// マンション検索一覧照会リストをマップに設定する
			dataMap.put(JFUMansionSearchConstCC.MANSION_SEARCH_B_LIST, mansion_search_list);
		}

		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		// エラー発生時はExceptionを設定
		if (errList != null && !errList.isEmpty())
		{
			throw new CCException(JFUStrConst.EMPTY, new SCCallException(JFUStrConst.EMPTY, ((Integer)return_code).toString(), templates[0].getInt(EKK0861B501CBSMsg.STATUS)));
		}

		return param;
	}

	/**
	 * マンション検索結果MAPを比較し、提供方式コードが大きいMAPを返却する。
	 *
	 * <br>
	 * @param beforeMap 比較対象MAP
	 * @param afterMap 比較対象MAP
	 * @return 提供方式コードが大きいMAP
	 */
	@SuppressWarnings("unchecked")
	private HashMap getMaxTkHoshikiCdMap(HashMap beforeMap, HashMap afterMap)
	{
		// 比較対象MAPがNULLの場合
		if (beforeMap == null || afterMap == null)
		{
			return null;
		}

		// 提供方式コードを取得
		String before_tk_hoshiki_cd = (String)beforeMap.get("tk_hoshiki_cd");
		String after_tk_hoshiki_cd = (String)afterMap.get("tk_hoshiki_cd");

		if (null == before_tk_hoshiki_cd || null == after_tk_hoshiki_cd)
		{
			return null;
		}

		if (JFUStrConst.EMPTY.equals(before_tk_hoshiki_cd) || JFUStrConst.EMPTY.equals(after_tk_hoshiki_cd))
		{
			return null;
		}

		try
		{

			Integer i_before_tk_hoshiki_cd = Integer.parseInt(before_tk_hoshiki_cd);
			Integer i_after_tk_hoshiki_cd = Integer.parseInt(after_tk_hoshiki_cd);

			if (i_before_tk_hoshiki_cd > i_after_tk_hoshiki_cd)
			{
				return beforeMap;
			}
			else
			{

				return afterMap;
			}
		}

		catch (NumberFormatException nfe)
		{
			return null;
		}
	}

	/**
	 * 退避から下りマッピングを行う
	 *
	 * <br>
	 * @param param
	 * @return
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editMansionSearchOutMsgFromTemp(IRequestParameterReadWrite param) throws Throwable
	{
		// 結果を詰めるマップを取得
		HashMap dataMap = (HashMap)param.getData(cName);

		// 結果を詰めるリストを取得
		ArrayList mansion_search_a_list = (ArrayList)dataMap.get(JFUMansionSearchConstCC.MANSION_SEARCH_A_LIST);

		// 結果を詰める現在の配列のリストを取得する
		HashMap childMap = (HashMap)mansion_search_a_list.get(index);

		// マンション物件番号
		childMap.put("mansion_bukken_no", temp_mansion_map.get("mansion_bukken_no"));

		// マンション物件コード
		childMap.put("mansion_bukken_cd", temp_mansion_map.get("mansion_bukken_cd"));

		// 物件管理番号
		childMap.put("bkn_knri_no", temp_mansion_map.get("bkn_knri_no"));

		// 回線使用契約物件名
		childMap.put("kisnusekei_bkn_nm", temp_mansion_map.get("kisnusekei_bkn_nm"));

		// 回線使用契約物件住所コード
		childMap.put("kisnusekei_bkn_ad_cd", temp_mansion_map.get("kisnusekei_bkn_ad_cd"));

		// 回線使用契約物件郵便番号
		childMap.put("kisnusekei_bkn_pcd", temp_mansion_map.get("kisnusekei_bkn_pcd"));

		// 回線使用契約物件都道府県名
		childMap.put("kisnusekei_bkn_state_nm", temp_mansion_map.get("kisnusekei_bkn_state_nm"));

		// 回線使用契約物件市区町村名
		childMap.put("kisnusekei_bkn_city_nm", temp_mansion_map.get("kisnusekei_bkn_city_nm"));

		// 回線使用契約物件大字通称名
		childMap.put("kisnusekei_bkn_oaztsu_nm", temp_mansion_map.get("kisnusekei_bkn_oaztsu_nm"));

		// 回線使用物件字丁名
		childMap.put("kisnusekei_bkn_azcho_nm", temp_mansion_map.get("kisnusekei_bkn_azcho_nm"));

		// 回線使用契約番号
		childMap.put("kaisen_use_kei_no", temp_mansion_map.get("kaisen_use_kei_no"));

		// マンションＩＤ
		childMap.put("mansion_id", temp_mansion_map.get("mansion_id"));

		// ペアＩＤ
		childMap.put("pairid", temp_mansion_map.get("pairid"));

		// CAT-ID
		childMap.put("catid", temp_mansion_map.get("catid"));

		// 宅内特殊配線有料工事コード
		childMap.put("takni_tokuhsen_yrkoji_cd", temp_mansion_map.get("takni_tokuhsen_yrkoji_cd"));

		// マンション価格帯コード
		childMap.put("mansion_kakakutai_cd", temp_mansion_map.get("mansion_kakakutai_cd"));

		// 加入契約申込条件コード
		childMap.put("knykei_mskm_joken_cd", temp_mansion_map.get("knykei_mskm_joken_cd"));

		// 加入契約ネット10G申込可否
		childMap.put("knykei_net_10g_mskm_kh", temp_mansion_map.get("knykei_net_10g_mskm_kh"));

		// 加入契約ネット1G申込可否
		childMap.put("knykei_net_1g_mskm_kh", temp_mansion_map.get("knykei_net_1g_mskm_kh"));

		// 加入契約ネット200M申込可否
		childMap.put("knykei_net_200m_mskm_kh", temp_mansion_map.get("knykei_net_200m_mskm_kh"));

		// 加入契約ネット100M申込可否
		childMap.put("knykei_net_100m_mskm_kh", temp_mansion_map.get("knykei_net_100m_mskm_kh"));

		// メゾン光テレビ提供コード
		childMap.put("maison_hikari_tv_tk_cd", temp_mansion_map.get("maison_hikari_tv_tk_cd"));

		// 光テレビ提供状況コード
		childMap.put("hikari_tv_tk_jokyo_cd", temp_mansion_map.get("hikari_tv_tk_jokyo_cd"));

		// 光電話提供コード
		childMap.put("hikari_tel_tk_cd", temp_mansion_map.get("hikari_tel_tk_cd"));

		// 標準サービス開始日数
		childMap.put("stdard_svc_sta_nisu", temp_mansion_map.get("stdard_svc_sta_nisu"));

		// 提供方式コード
		childMap.put("tk_hoshiki_cd", temp_mansion_map.get("tk_hoshiki_cd"));

		// 提供料金種別コード
		childMap.put("tk_prc_sbt_cd", temp_mansion_map.get("tk_prc_sbt_cd"));

		// 棟内速度コード
		childMap.put("tonai_speed_cd", temp_mansion_map.get("tonai_speed_cd"));

		// 提供方式契約番号
		childMap.put("tk_hoshiki_kei_no", temp_mansion_map.get("tk_hoshiki_kei_no"));

		// Ｐ−ＩＤ
		childMap.put("pid", temp_mansion_map.get("pid"));

		// オーナー契約番号
		childMap.put("ownr_kei_no", temp_mansion_map.get("ownr_kei_no"));

		// マンションオーナーＩＤ
		childMap.put("mansion_ownr_id", temp_mansion_map.get("mansion_ownr_id"));

		// IP払出コード
		childMap.put("ip_hradsi_cd", temp_mansion_map.get("ip_hradsi_cd"));

		// 支払方式コード
		childMap.put("pay_hoshiki_cd", temp_mansion_map.get("pay_hoshiki_cd"));

		// 契約付加(レンタル)コード
		childMap.put("kei_huka_rent_cd", temp_mansion_map.get("kei_huka_rent_cd"));

		// 契約付加(買取)コード
		childMap.put("kei_huka_kaitori_cd", temp_mansion_map.get("kei_huka_kaitori_cd"));

		// マンション接続機器コード
		childMap.put("mcntkk_cd", temp_mansion_map.get("mcntkk_cd"));

		// マンション接続機器型式コード
		childMap.put("mcntkk_model_cd", temp_mansion_map.get("mcntkk_model_cd"));

		// BSパススルー可否
		childMap.put("bspt_kh", temp_mansion_map.get("bspt_kh"));

		// 光配線1Gのみフラグ
		childMap.put("hhs_1gonly_flg", temp_mansion_map.get("hhs_1gonly_flg"));

		// イーサ他社併行フラグ
		childMap.put("ether_tashaheiko_flg", temp_mansion_map.get("ether_tashaheiko_flg"));

		return param;
	}

	/**
	 * 持ちうるフィールドにNullマッピングで埋める
	 * @param msg 対象クラス
	 * @param contents 対応クラスのフィールド列挙
	 */
	private void fillCAANMSGNullMapping(CAANMsg msg, Object[][] contents)
	{

		//要素ごとのループ
		for (int i = 0; i < contents.length; i++)
		{

			Object element = null;

			//キーに該当する箇所の取得
			element = contents[i][0];

			//Nullでマッピング
			msg.setNull((String)element);
		}
	}

	/**
	 * 値が設定されているか判断する
	 * <br>
	 * @param str
	 * @return
	 */
	@SuppressWarnings("unchecked")
	private boolean isBlank(Object obj)
	{
		boolean ret = false;
		if (obj == null)
		{
			// オブジェクトがNull
			ret = true;
		}
		else if (obj instanceof String)
		{
			// String型の場合
			if (JFUStrConst.EMPTY.equals(obj))
			{
				ret = true;
			}
		}
		else if (obj instanceof ArrayList)
		{
			// ArrayList型の場合
			if (((ArrayList)obj).isEmpty())
			{
				ret = true;
			}
		}
		else if (obj instanceof HashMap)
		{
			// HashMap型の場合
			if (((HashMap)obj).isEmpty())
			{
				ret = true;
			}
		}

		return ret;
	}

	/**
	 * 別のマップよりマンション検索CCに対してマッピングを行う
	 *
	 * <br>
	 * @param inMap
	 */
	@SuppressWarnings("unchecked")
	private void atherMapToMapping(IRequestParameterReadWrite param, HashMap inMap) throws Throwable
	{
		// マッピング対象マップキー
		String mapping_tg_map_key = JFUStrConst.EMPTY;

		// マッピング対象リストキー
		String mapping_tg_list_key = JFUStrConst.EMPTY;

		// マッピング対象キー
		String mapping_tg_key = JFUStrConst.EMPTY;

		// 任意マッピングキーリスト
		ArrayList use_mapping_key_list = null;

		// マッピング対象マップキー取得
		if (inMap.containsKey(JFUMansionSearchConstCC.MAPPING_TG_MAP_KEY))
		{
			mapping_tg_map_key = (String)inMap.get(JFUMansionSearchConstCC.MAPPING_TG_MAP_KEY);
		}

		// マッピング対象リストキー取得
		if (inMap.containsKey(JFUMansionSearchConstCC.MAPPING_TG_LIST_KEY))
		{
			mapping_tg_list_key = (String)inMap.get(JFUMansionSearchConstCC.MAPPING_TG_LIST_KEY);
		}

		// マッピング対象キー
		if (inMap.containsKey(JFUMansionSearchConstCC.MAPPING_TG_KEY))
		{
			mapping_tg_key = (String)inMap.get(JFUMansionSearchConstCC.MAPPING_TG_KEY);
		}

		if (!isBlank(mapping_tg_map_key) && !isBlank(mapping_tg_list_key) && !isBlank(mapping_tg_key))
		{
			// -----対象マップ.対象リスト分キーを取得する-----

			// 任意マッピングキーリスト
			if (inMap.containsKey(JFUMansionSearchConstCC.USE_MAPPING_KEY_LIST))
			{
				use_mapping_key_list = (ArrayList)inMap.get(JFUMansionSearchConstCC.USE_MAPPING_KEY_LIST);
			}

			// 対象マップ取得
			HashMap tgMap = (HashMap)param.getData(mapping_tg_map_key);

			if (tgMap == null)
			{
				// 対象マップが無い場合は処理終了
				return;
			}

			// 対象リスト取得
			ArrayList tgList = (ArrayList)tgMap.get(mapping_tg_list_key);
			if (tgList == null || tgList.size() == 0)
			{
				// 対象リストが無い場合は処理終了
				return;
			}

			// 対象リストのイテレーター
			Iterator tgIte = tgList.iterator();

			// マンション検索リスト生成
			ArrayList mansion_search_a_list = new ArrayList();

			// マッピング対象ループ
			while (tgIte.hasNext())
			{
				// 対象リストのマップを取得
				HashMap tgChildMap = (HashMap)tgIte.next();

				// マンション検索一意照会マップ
				HashMap mansionSearchMap = new HashMap();

				// 任意マッピング項目
				mansionSearchMap = useMapping(tgChildMap, use_mapping_key_list, mansionSearchMap);

				// マンション検索用キー取得
				String mansionSearchKey = (String)tgChildMap.get(mapping_tg_key);

				if (!isBlank(mansionSearchKey))
				{
					//ANK-1392-00-00 I/F変更 <<<
					// FUNC_CODE_KEY_2の処理を分離したため削除
					//ANK-1392-00-00 I/F変更 >>>
					if (JFUMansionSearchConstCC.FUNC_CODE_KEY_3.equals(this.func_code))
					{
						// マンション物件番号キー
						mansionSearchMap.put(EKK0861B501CBSMsg.KEY_MANSION_BUKKEN_NO, mansionSearchKey);
						mansion_search_a_list.add(mansionSearchMap);
					}
					else if (JFUMansionSearchConstCC.FUNC_CODE_KEY_4.equals(this.func_code))
					{
						// マンション物件番号キー
						this.key_mansion_bukken_no = mansionSearchKey;
					}
				}
			}

			// 生成したマンション検索一意照会リストを設定
			inMap.put(JFUMansionSearchConstCC.MANSION_SEARCH_A_LIST, mansion_search_a_list);

		}
		else if (!isBlank(mapping_tg_map_key) && isBlank(mapping_tg_list_key) && !isBlank(mapping_tg_key))
		{
			// -----対象マップ内のキーを取得する-----

			// 任意マッピングキーリスト
			if (inMap.containsKey(JFUMansionSearchConstCC.USE_MAPPING_KEY_LIST))
			{
				use_mapping_key_list = (ArrayList)inMap.get(JFUMansionSearchConstCC.USE_MAPPING_KEY_LIST);
			}

			// 対象マップ取得
			HashMap tgMap = (HashMap)param.getData(mapping_tg_map_key);

			if (tgMap == null)
			{
				// 対象マップが無い場合は処理終了
				return;
			}

			// マンション検索用キー取得
			String mansionSearchKey = (String)tgMap.get(mapping_tg_key);

			// マンション検索一意照会マップ
			HashMap mansionSearchMap = new HashMap();

			// マンション検索リスト生成
			ArrayList mansion_search_a_list = new ArrayList();

			// 任意マッピング項目
			mansionSearchMap = useMapping(tgMap, use_mapping_key_list, mansionSearchMap);

			if (!isBlank(mansionSearchKey))
			{
				//ANK-1392-00-00 I/F変更 <<<
				// FUNC_CODE_KEY_2の処理を分離したため削除
				//ANK-1392-00-00 I/F変更 >>>
				if (JFUMansionSearchConstCC.FUNC_CODE_KEY_3.equals(this.func_code))
				{
					// マンション物件番号キー
					mansionSearchMap.put(EKK0861B501CBSMsg.KEY_MANSION_BUKKEN_NO, mansionSearchKey);
					mansion_search_a_list.add(mansionSearchMap);
				}
			}
		}
		// それ以外はマッピングされているものとする

	}

	/**
	 * 任意マッピングキーの件数分マッピングを行う。
	 * <br>
	 * @param tgMap
	 * @param use_mapping_key_list
	 * @param mansionSearchMap
	 * @return
	 */
	@SuppressWarnings("unchecked")
	private HashMap useMapping(HashMap inMap, ArrayList use_mapping_key_list, HashMap mansionSearchMap)
	{

		if (use_mapping_key_list != null && use_mapping_key_list.size() != 0)
		{
			// 任意マッピングキーリストが存在する場合
			Iterator useIte = use_mapping_key_list.iterator();

			// 任意マッピングループ
			while (useIte.hasNext())
			{
				// 任意マッピングマップ取得
				HashMap useMap = (HashMap)useIte.next();
				// 任意マッピングキー取得
				String useKey = (String)useMap.get(JFUMansionSearchConstCC.USE_MAPPING_KEY);
				// 任意マッピングキーで取得した値をマンション検索一意紹介マップへ設定する
				mansionSearchMap.put(useKey, inMap.get(useKey));
			}
		}

		return mansionSearchMap;
	}

	/**
	 * マンションのチェックを行う
	 * <br>
	 * @param inMap
	 * @return
	 */
	@SuppressWarnings("unchecked")
	private String mansionCheck(HashMap inMap)
	{
		// ANK-1220-00-00対応 2012/09/23 h.iwamoto START
		// 戻り値
		String result = "0";

		// マンション情報
		HashMap<String, String> mansionInfo = new HashMap<String, String>();

		// マンション物件コード
		mansionInfo.put(JFUCheckMansionInfo.MANSION_BUKKEN_CD, (String)inMap.get(EKK0861B501CBSMsg1List.MANSION_BUKKEN_CD));
		// 提供方式コード
		mansionInfo.put(JFUCheckMansionInfo.TK_HOSHIKI_CD, (String)inMap.get(EKK0861B501CBSMsg1List.TK_HOSHIKI_CD));
		// CATID
		mansionInfo.put(JFUCheckMansionInfo.CATID, (String)inMap.get(EKK0861B501CBSMsg1List.CATID));
		// 光テレビ提供状況コード
		mansionInfo.put(JFUCheckMansionInfo.HIKARI_TV_TK_JOKYO_CD, (String)inMap.get(EKK0861B501CBSMsg1List.HIKARI_TV_TK_JOKYO_CD));
		// 加入契約申込条件コード
		mansionInfo.put(JFUCheckMansionInfo.KNYKEI_MSKM_JOKEN_CD, (String)inMap.get(EKK0861B501CBSMsg1List.KNYKEI_MSKM_JOKEN_CD));
		// ネット加入契約申込条件コード
		mansionInfo.put(JFUCheckMansionInfo.NET_KNYKEI_MSKM_JOKEN_CD, (String)inMap.get(EKK0861B501CBSMsg1List.NET_KNYKEI_MSKM_JOKEN_CD));
		// テレビ加入契約申込条件コード
		mansionInfo.put(JFUCheckMansionInfo.TV_KNYKEI_MSKM_JOKEN_CD, (String)inMap.get(EKK0861B501CBSMsg1List.TV_KNYKEI_MSKM_JOKEN_CD));
		// 棟内速度コード
		mansionInfo.put(JFUCheckMansionInfo.TONAI_SPEED_CD, (String)inMap.get(EKK0861B501CBSMsg1List.TONAI_SPEED_CD));
		// 提供料金種別コード
		mansionInfo.put(JFUCheckMansionInfo.TK_PRC_SBT_CD, (String)inMap.get(EKK0861B501CBSMsg1List.TK_PRC_SBT_CD));
		// 加入契約ネット10G申込可否
		mansionInfo.put(JFUCheckMansionInfo.KNYKEI_NET_10G_MSKM_KH, (String)inMap.get(EKK0861B501CBSMsg1List.KNYKEI_NET_10G_MSKM_KH));
		// 加入契約ネット1G申込可否
		mansionInfo.put(JFUCheckMansionInfo.KNYKEI_NET_1G_MSKM_KH, (String)inMap.get(EKK0861B501CBSMsg1List.KNYKEI_NET_1G_MSKM_KH));
		// 加入契約ネット200M申込可否
		mansionInfo.put(JFUCheckMansionInfo.KNYKEI_NET_200M_MSKM_KH, (String)inMap.get(EKK0861B501CBSMsg1List.KNYKEI_NET_200M_MSKM_KH));
		// 加入契約ネット100M申込可否
		mansionInfo.put(JFUCheckMansionInfo.KNYKEI_NET_100M_MSKM_KH, (String)inMap.get(EKK0861B501CBSMsg1List.KNYKEI_NET_100M_MSKM_KH));
		// 光電話提供コード
		mansionInfo.put(JFUCheckMansionInfo.HIKARI_TEL_TK_CD, (String)inMap.get(EKK0861B501CBSMsg1List.HIKARI_TEL_TK_CD));
		// メゾン光テレビ提供コード
		mansionInfo.put(JFUCheckMansionInfo.MAISON_HIKARI_TV_TK_CD, (String)inMap.get(EKK0861B501CBSMsg1List.MAISON_HIKARI_TV_TK_CD));

		// 物件管理番号
		String bknKnriNo = (String)inMap.get(EKK0861B501CBSMsg1List.BKN_KNRI_NO);
		// 回線使用契約物件名
		String kisnusekeiBknNm = (String)inMap.get(EKK0861B501CBSMsg1List.MSBSN_KRTG_BKN_NM); //ANK-1392-00-00 I/F名変更

		// マンションチェック部品呼出
		HashMap<String, String> checkInfoResult = JFUCheckMansionInfo.executeCheckMansionInfo(JFUMansionSearchConstCC.KIDO_CD_ON, mansionInfo);

		// チェック結果を取得する
		Iterator it = checkInfoResult.entrySet().iterator();

		while (it.hasNext())
		{
			Map.Entry entry = (Map.Entry)it.next();
			String key = (String)entry.getKey();
			Object obj = entry.getValue();
			if (JFUCheckMansionInfo.TK_HOSHIKI_CD_ERR.equals(key) && !"0".equals(obj))
			{
				// 提供方式コードチェックエラー
				printlnEjbLog(bknKnriNo + "_" + kisnusekeiBknNm + "：提供方式コード不整合");
				result = "2";
				// 提供方式コードチェックエラーの場合は非表示なので、拾った時点で終了
				return result;
			}
			else if (JFUCheckMansionInfo.MANSION_TV_ERR.equals(key) && !"0".equals(obj))
			{
				// マンションテレビチェックエラー
				printlnEjbLog(bknKnriNo + "_" + kisnusekeiBknNm + "：光テレビ提供状況コード不整合");
				result = "1";
			}
			else if (JFUCheckMansionInfo.KNYKEI_MSKM_JOKEN_CD_ERR.equals(key) && !"0".equals(obj))
			{
				// 加入契約申込条件コードチェックエラー
				if(CHECK_RESULT_4.equals(obj))
				{
					// 2013.08.14 無効マンション
					printlnEjbLog(bknKnriNo + "_" + kisnusekeiBknNm + "：加入契約申込条件コード：無効マンション");
					result = "2";
					// 無効マンションは非表示なので終了
					return result;
				}
				else
				{
					// 加入契約申込条件コード不正
					printlnEjbLog(bknKnriNo + "_" + kisnusekeiBknNm + "：加入契約申込条件コード不整合");
					result = "1";
				}
			}
			else if (JFUCheckMansionInfo.TONAI_SPEED_CD_ERR.equals(key) && !"0".equals(obj))
			{
				// 棟内速度チェックエラー
				printlnEjbLog(bknKnriNo + "_" + kisnusekeiBknNm + "：提供方式コードと棟内速度コードの組み合わせ不整合");
				result = "1";
			}
		}
		// ANK-1220-00-00対応 2012/09/23 h.iwamoto END

		return result;
	}

	/**
	 * 非表示物件であるか判定します。
	 *
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param mansionInfoMap 物件情報
	 * @return true:非表示 / false:表示
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private boolean judgeNodispMansion(SessionHandle handle, IRequestParameterReadWrite param, HashMap mansionInfoMap) throws Exception
	{

		// SC呼び出し部品のインスタンスを生成します。
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		// 判定結果
		boolean result = false;

		// マンション物件番号(自身)
		String myMansionBukkenNo = (String)mansionInfoMap.get("mansion_bukken_no");
		// ネット回線使用契約番号(自身)
		String myNetKaisenUseKeiNo = (String)mansionInfoMap.get("net_kaisen_use_kei_no");
		// テレビ回線使用契約番号(自身)
		String myTvKaisenUseKeiNo = (String)mansionInfoMap.get("tv_kaisen_use_kei_no");
		// オーナー契約番号(自身)
		String myOwnrKeiNo = (String)mansionInfoMap.get("ownr_kei_no");
		// CATID(自身)
		String myCatId = (String)mansionInfoMap.get("catid");
		// マンション物件コード(自身)
		String mansionBukkenCd = (String)mansionInfoMap.get("mansion_bukken_cd");

		if(JFUBPCommon.isNull(myMansionBukkenNo) || JFUBPCommon.isNull(myNetKaisenUseKeiNo) || JFUBPCommon.isNull(myTvKaisenUseKeiNo))
		{
			// ネット未提供、または、テレビ未提供の場合、チェックを実施しない
			return false;
		}

		if(JFUBPCommon.isNull(myOwnrKeiNo))
		{
			// オーナー契約番号が未設定の場合、チェックを実施しない
			return false;
		}

		// ●マンション提供回線組み合わせ候補一覧照会
		// 上りマッピング
		HashMap<String, Object> paramMap = editEKK2701B501InMsg(param, myTvKaisenUseKeiNo, myOwnrKeiNo);
		// サービスコンポーネント実行
		Map sifResultEKK2701B501 = scCall.run(paramMap, handle);
		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templatesEKK2701B501 = (CAANMsg[])sifResultEKK2701B501.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplateEKK2701B501 = templatesEKK2701B501[0];
		CAANMsg[] eKK2701B501List = parentTemplateEKK2701B501.getCAANMsgList(EKK2701B501CBSMsg.EKK2701B501CBSMSG1LIST);

		// リターンコード取得
		Object returnCodeEKK2701B501 = sifResultEKK2701B501.get(JCMConstants.RET_CD_INT_KEY);

		//エラー情報のマップを取得
		ArrayList<Object> errListEKK2701B501 = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errListEKK2701B501 == null)
		{
			errListEKK2701B501 = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(sifResultEKK2701B501, errListEKK2701B501));

		// エラー発生時はExceptionを設定
		if (errListEKK2701B501 != null && !errListEKK2701B501.isEmpty())
		{
			throw new CCException(JFUStrConst.EMPTY, new SCCallException(JFUStrConst.EMPTY, ((Integer)returnCodeEKK2701B501).toString(),
					templatesEKK2701B501[0].getInt(EKK2701B501CBSMsg.STATUS)));
		}

		if(eKK2701B501List == null || eKK2701B501List.length < 2)
		{
			// 結果なし、または、結果が2件より少ない場合、チェックを実施しない
			return false;
		}

		ArrayList outList = new ArrayList();
		for (int i = 0; i < eKK2701B501List.length; i++)
		{
			CAANMsg eKK2701B501Msg = eKK2701B501List[i];

			String inMansionId = eKK2701B501Msg.getString(EKK2701B501CBSMsg1List.MANSION_ID);

			// ●マンション検索一覧照会
			// 上りマッピング
			paramMap = editEKK0861B501InMsg(param, myMansionBukkenNo, inMansionId, myCatId);
			// サービスコンポーネント実行
			Map sifResultEKK0861B501 = scCall.run(paramMap, handle);
			// SCからの戻り値からCAANMsgを取得する。
			CAANMsg[] templatesEKK0861B501 = (CAANMsg[])sifResultEKK0861B501.get(JCMConstants.TEMPLATE_LIST_KEY);
			CAANMsg parentTemplateEKK0861B501 = templatesEKK0861B501[0];
			CAANMsg[] eKK0861B501List = parentTemplateEKK0861B501.getCAANMsgList(EKK0861B501CBSMsg.EKK0861B501CBSMSG1LIST);

			// リターンコード取得
			Object returnCodeEKK0861B501 = sifResultEKK0861B501.get(JCMConstants.RET_CD_INT_KEY);

			//エラー情報のマップを取得
			ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
			if (errList == null)
			{
				errList = new ArrayList<Object>();
			}
			// コントロールマップに設定
			param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(sifResultEKK0861B501, errList));

			// エラー発生時はExceptionを設定
			if (errList != null && !errList.isEmpty())
			{
				throw new CCException(JFUStrConst.EMPTY, new SCCallException(JFUStrConst.EMPTY, ((Integer)returnCodeEKK0861B501).toString(),
						templatesEKK0861B501[0].getInt(EKK0861B501CBSMsg.STATUS)));
			}

			if(eKK0861B501List == null || eKK0861B501List.length == 0)
			{
				// 検索結果がない場合、次の物件情報へ
				continue;
			}

			for (int j = 0; j < eKK0861B501List.length; j++)
			{
				CAANMsg eKK0861B501Msg = eKK0861B501List[j];

				// ネット回線使用契約番号
				String outNetKaisenUseKeiNo = (String)eKK0861B501Msg.getString(EKK0861B501CBSMsg1List.NET_KAISEN_USE_KEI_NO);
				// テレビ回線使用契約番号
				String outTvKaisenUseKeiNo = (String)eKK0861B501Msg.getString(EKK0861B501CBSMsg1List.TV_KAISEN_USE_KEI_NO);

				if(!JFUBPCommon.isNull(outNetKaisenUseKeiNo) && !JFUBPCommon.isNull(outTvKaisenUseKeiNo))
				{
					// ネットとテレビが存在する場合、物件リストに格納する
					outList.add(eKK0861B501Msg);
				}
			}
		}

		if(outList == null || outList.size() == 0 || outList.size() < 2)
		{
			// 物件リストが存在しない場合、または、物件が2件より少ない場合、処理を終了
			return false;
		}

		HashMap judgeMansionMap = new HashMap();
		for (int i = 0; i < outList.size(); i++)
		{
			CAANMsg mansionMap = (CAANMsg)outList.get(i);

			// 回線使用契約番号（ネット）
			String netKaisenUseKeiNo = (String)mansionMap.getString(EKK0861B501CBSMsg1List.NET_KAISEN_USE_KEI_NO);
			// 回線使用契約番号（テレビ）
			String tvKaisenUseKeiNo = (String)mansionMap.getString(EKK0861B501CBSMsg1List.TV_KAISEN_USE_KEI_NO);
			// 光テレビ提供状況コード
			String hikariTvTkJokyoCd = (String)mansionMap.getString(EKK0861B501CBSMsg1List.HIKARI_TV_TK_JOKYO_CD);
			// メゾン光テレビ提供コード
			String maisonHikariTvTkCd = (String)mansionMap.getString(EKK0861B501CBSMsg1List.MAISON_HIKARI_TV_TK_CD);
			// ネット加入契約申込条件コード
			String netKnykeiMskmJokenCd = (String)mansionMap.getString(EKK0861B501CBSMsg1List.NET_KNYKEI_MSKM_JOKEN_CD);

			if(JFUStrConst.CD01228_001.equals(mansionBukkenCd) &&
					(!JFUStrConst.HIKARI_TV_TK_JOKYO_CD_NET_HIST.equals(hikariTvTkJokyoCd) || JFUBPCommon.isNull(netKaisenUseKeiNo)))
			{
				// マンション
				// ネット併設でない
				// ネットの回線使用契約番号が未設定
				// 次の物件情報へ
				continue;
			}
			else if(JFUStrConst.CD01228_002.equals(mansionBukkenCd) &&
					(!JFUStrConst.MAISON_HIKARI_TV_TK_CD_K_CAT.equals(maisonHikariTvTkCd) || JFUBPCommon.isNull(netKaisenUseKeiNo)))
			{
				// メゾン
				// テレビ未提供
				// ネットの回線使用契約番号が未設定
				// 次の物件情報へ
				continue;
			}

			// 格納する物件情報を作成
			HashMap map = new HashMap();
			map.put(EKK0861B501CBSMsg1List.NET_KAISEN_USE_KEI_NO, netKaisenUseKeiNo);
			map.put(EKK0861B501CBSMsg1List.TV_KAISEN_USE_KEI_NO, tvKaisenUseKeiNo);
			map.put(EKK0861B501CBSMsg1List.NET_KNYKEI_MSKM_JOKEN_CD, netKnykeiMskmJokenCd);

			if(!judgeMansionMap.containsKey(tvKaisenUseKeiNo))
			{
				// キーが存在していない場合は新しく情報を格納する
				ArrayList judgeMansionList = new ArrayList();
				judgeMansionList.add(map);
				judgeMansionMap.put(tvKaisenUseKeiNo, judgeMansionList);
			}
			else
			{
				// キーが存在している場合は情報を追加格納する
				ArrayList judgeMansionList = (ArrayList)judgeMansionMap.get(tvKaisenUseKeiNo);
				judgeMansionList.add(map);
			}
		}

		// 物件除外リストを作成
		if(judgeMansionMap != null && judgeMansionMap.size() > 0)
		{
			Set<String> keys = judgeMansionMap.keySet();
			for (Iterator keyList = keys.iterator(); keyList.hasNext();)
			{
				String key = (String)keyList.next();
				ArrayList judgeMansionList = (ArrayList)judgeMansionMap.get(key);

				if(judgeMansionList.size() < 2)
				{
					// 紐付いている物件が2件より少ない場合、次の物件情報へ
					continue;
				}

				for (int i = 0; i < judgeMansionList.size(); i++)
				{
					HashMap map = (HashMap)judgeMansionList.get(i);

					// 回線使用契約番号（ネット）
					String netKaisenUseKeiNo = (String)map.get(EKK0861B501CBSMsg1List.NET_KAISEN_USE_KEI_NO);
					// 回線使用契約番号（テレビ）
					String tvKaisenUseKeiNo = (String)map.get(EKK0861B501CBSMsg1List.TV_KAISEN_USE_KEI_NO);
					// ネット加入契約申込条件コード
					String netKnykeiMskmJokenCd = (String)map.get(EKK0861B501CBSMsg1List.NET_KNYKEI_MSKM_JOKEN_CD);

					if(!(myNetKaisenUseKeiNo.equals(netKaisenUseKeiNo) && myTvKaisenUseKeiNo.equals(tvKaisenUseKeiNo)))
					{
						// 自身の物件情報でない場合、次の物件情報へ
						continue;
					}

					if(JFUStrConst.KNYKEI_MSKM_JOKEN_DONYU_MK.equals(netKnykeiMskmJokenCd)
							|| JFUStrConst.KNYKEI_MSKM_JOKEN_DONYU_MK_MAISON.equals(netKnykeiMskmJokenCd))
					{
						// 加入契約申込条件コードが「19：非表示(マンション)」また「29：非表示(メゾン)」
						return true;
					}
				}
			}
		}

		return result;
	}

	/**
	 * マンション提供回線組み合わせ候補一覧照会メッセージ取得処理
	 * <br>
	 * @param param
	 * @return
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private HashMap<String, Object> editEKK2701B501InMsg(IRequestParameterReadWrite param,
			String myTvKaisenUseKeiNo, String myOwnrKeiNo) throws RequestParameterException
	{
		HashMap<String, Object> paramMap = new HashMap<String, Object>(10);

		// 【取得元：電文ヘッダ(ヘッダ)】
		// 電文ID
		paramMap.put(JCMConstants.TRANZACTION_ID_KEY, param.getTelegramID());
		// ユースケースID
		paramMap.put(JCMConstants.USECASE_ID_KEY, param.getUsecaseID());
		// オペレーションID
		paramMap.put(JCMConstants.OPERATION_ID_KEY, param.getOperationID());
		// サービス呼び出し区分
		paramMap.put(JCMConstants.CALL_TYPE_KEY, param.getCallType());
		// 【取得元：ユーザエリア(コントロールマップ)】
		// 依頼先ホスト名
		paramMap.put(JCMConstants.CLIENT_HOST_NAME_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTNAME));
		// 依頼元IPアドレス
		paramMap.put(JCMConstants.CLIENT_IP_ADDRESS_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTIP));
		// 依頼元画面ID
		paramMap.put(JCMConstants.INVOKE_GAMEN_ID_KEY, param.getControlMapData(SCControlMapKeys.REQ_VIEWID));
		// オペレータID
		paramMap.put(JCMConstants.OPERATOR_ID_KEY, param.getControlMapData(SCControlMapKeys.OPERATOR_ID));

		// ユーザデータ情報
		HashMap inMap = (HashMap)param.getData(cName);
		CAANMsg template = setEKK2701B501Template(inMap, param, myTvKaisenUseKeiNo, myOwnrKeiNo);

		CAANMsg[] templates = new CAANMsg[1];
		templates[0] = template;
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}

	/**
	 * マンション提供回線組み合わせ候補一覧照会(上りマッピング)
	 * <br>
	 * @param inMap
	 * @param param
	 * @return
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg setEKK2701B501Template(HashMap inMap, IRequestParameterReadWrite param,
			String myTvKaisenUseKeiNo, String myOwnrKeiNo) throws RequestParameterException
	{

		CAANMsg template = new CAANMsg(EKK2701B501CBSMsg.class.getName());

		// 全項目のNullマッピングを行う
		fillCAANMSGNullMapping(template, new EKK2701B501CBSMsg().getContents());
		// テンプレートID
		template.set(EKK2701B501CBSMsg.TEMPLATEID, "EKK2701B501");
		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);
		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);
		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

		// 機能コード
		template.set(EKK2701B501CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1);
		// ＫＥＹ＿テレビ回線使用契約番号
		template.set(EKK2701B501CBSMsg.KEY_TV_KAISEN_USE_KEI_NO, myTvKaisenUseKeiNo);
		// ＫＥＹ＿オーナー契約番号
		template.set(EKK2701B501CBSMsg.KEY_OWNR_KEI_NO, myOwnrKeiNo);

		return template;
	}

	/**
	 * マンション検索一覧照会メッセージ取得処理
	 * <br>
	 * @param param
	 * @return
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private HashMap<String, Object> editEKK0861B501InMsg(IRequestParameterReadWrite param,
			String myMansionBukkenNo, String inMansionId, String myCatId) throws RequestParameterException
	{
		HashMap<String, Object> paramMap = new HashMap<String, Object>(10);

		// 【取得元：電文ヘッダ(ヘッダ)】
		// 電文ID
		paramMap.put(JCMConstants.TRANZACTION_ID_KEY, param.getTelegramID());
		// ユースケースID
		paramMap.put(JCMConstants.USECASE_ID_KEY, param.getUsecaseID());
		// オペレーションID
		paramMap.put(JCMConstants.OPERATION_ID_KEY, param.getOperationID());
		// サービス呼び出し区分
		paramMap.put(JCMConstants.CALL_TYPE_KEY, param.getCallType());
		// 【取得元：ユーザエリア(コントロールマップ)】
		// 依頼先ホスト名
		paramMap.put(JCMConstants.CLIENT_HOST_NAME_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTNAME));
		// 依頼元IPアドレス
		paramMap.put(JCMConstants.CLIENT_IP_ADDRESS_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTIP));
		// 依頼元画面ID
		paramMap.put(JCMConstants.INVOKE_GAMEN_ID_KEY, param.getControlMapData(SCControlMapKeys.REQ_VIEWID));
		// オペレータID
		paramMap.put(JCMConstants.OPERATOR_ID_KEY, param.getControlMapData(SCControlMapKeys.OPERATOR_ID));

		// ユーザデータ情報
		HashMap inMap = (HashMap)param.getData(cName);
		CAANMsg template = setEKK0861B501Template(inMap, param, myMansionBukkenNo, inMansionId, myCatId);

		CAANMsg[] templates = new CAANMsg[1];
		templates[0] = template;
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}

	/**
	 * マンション提供回線組み合わせ候補一覧照会(上りマッピング)
	 * <br>
	 * @param inMap
	 * @param param
	 * @return
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg setEKK0861B501Template(HashMap inMap, IRequestParameterReadWrite param,
			String myMansionBukkenNo, String inMansionId, String myCatId) throws RequestParameterException
	{

		CAANMsg template = new CAANMsg(EKK0861B501CBSMsg.class.getName());

		// 全項目のNullマッピングを行う
		fillCAANMSGNullMapping(template, new EKK0861B501CBSMsg().getContents());
		// テンプレートID
		template.set(EKK0861B501CBSMsg.TEMPLATEID, "EKK0861B501");
		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);
		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);
		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);

		// 機能コード
		template.set(EKK0861B501CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_3);
		// ＫＥＹ＿マンション物件番号
		template.set(EKK0861B501CBSMsg.KEY_MANSION_BUKKEN_NO, myMansionBukkenNo);
		// ＫＥＹ＿郵便番号
		template.set(EKK0861B501CBSMsg.KEY_PCD, "9999999");
		// ＫＥＹ＿マンションＩＤ
		template.set(EKK0861B501CBSMsg.KEY_MANSION_ID, inMansionId);
		// ＫＥＹ＿ＣＡＴＩＤ
		template.set(EKK0861B501CBSMsg.KEY_CATID, myCatId);

		return template;
	}

	/**
	 * デバッグログを出力します。<BR>
	 *
	 * @param dumpObj 出力するオブジェクト
	 */
	private void printlnEjbLog(Object dumpObj)
	{
		JSYejbLog.println(JSYejbLog.DEBUG, this.getClass(), dumpObj, null, null, null);
	}
}
