/********************************************************************
 *  All Rights reserved,Copyright (c) K-Opticom
 ********************************************************************
 *＜プログラム内容＞
 *  システム名      ：eo顧客基幹システム
 *  モジュール名    ：住所変更登録コモンコンポーネントマッピングクラス
 *  ソースファイル名：JKKAdchgMapperCC.java
 *  作成者          ：FJ
 *  日付            ：2011年11月05日
 *＜機能概要＞
 *  住所変更登録コモンコンポーネント部品におけるマッピングクラス。
 *＜修正履歴＞
 *  バージョン  修正日      修正者      修正内容
 *  v1.00.00    2011/11/11  FJ          新規作成
 * v46.00.00	2019/09/16  FJ)澤田	     ANK-3731-00-00 マンション光配線切替対応
 * v51.00.00	2020/09/25  FJ)荒木	     ANK-3885-00-00 光化マンションの自動設計対応
 * v60.00.00	2022/06/09	FJ)平野	     ANK-4244-00-00_【eo定期】MT既設賃貸対応
 * v73.00.00	2024/10/04	FJ)柴田		【ANK-4493-00-00】光配線マンションのコースアップ対応
 ********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import com.fujitsu.futurity.bp.custom.constant.JKKAdchgConstCC;
import com.fujitsu.futurity.bp.x21.bpm.exception.RequestParameterException;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadWrite;
import com.fujitsu.futurity.bp.x21.cc.exception.CCException;
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.sun.enterprise.tools.common.util.StringUtils;

import eo.common.constant.JPCModelConstant;
import eo.ejb.cbs.cbsmsg.EKK0861A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0861A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0871B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0871B001CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0881B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0881B001CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0891B002CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0891B002CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK3251B010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK3251B010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EZM0171A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0171A010CBSMsg1List;

/**
 * 住所変更登録コモンコンポーネントマッピングクラス.
 * <br>
 * @author FJ
 */
public class JKKMansInfoMapperCC {

	//--------------------------------------------------
	// リターンコード
	//--------------------------------------------------
	/** リターンコード: -1 */
	private static final Integer RTN_CODE_MINUS = -1;
	/** リターンコード: 0000 */
	private static final Integer RTN_CODE_0000 = 0;
	/** リターンコード: 9000 */
	private static final Integer RTN_CODE_9000 = 9000;
	/** リターンメッセージ: "RETURN_MESSAGE_" */
	private static final String RETURN_MSG_ = "RETURN_MESSAGE_";
	/** リターンメッセージ: フォーマット(%1$04d) */
	private static final String RETURN_MSG_FORMAT = "%1$04d";

	//--------------------------------------------------
	// 照会系サービスI/F 機能コード
	//--------------------------------------------------
	/** 照会系サービスI/F 機能コード: 1 (標準) */
	private static final String SEL_IF_FUNC_CD_DEF = "1";
	/** 照会系サービスI/F 機能コード: 2 (カレント) */
	private static final String SEL_IF_FUNC_CD_CUR = "2";

	//--------------------------------------------------
	// テンプレートID
	//--------------------------------------------------
	/** EKK0861A010 マンション物件一意照会 */
	private static final String TEMPLATE_ID_EKK0861A010 = "EKK0861A010";
	/** EKK0871B001 オーナー契約一覧照会 */
	private static final String TEMPLATE_ID_EKK0871B001 = "EKK0871B001";
	/** EKK0881B001 回線使用契約一覧照会 */
	private static final String TEMPLATE_ID_EKK0881B001 = "EKK0881B001";
	/** EKK0891B002 提供方式契約一覧照会 */
	private static final String TEMPLATE_ID_EKK0891B002 = "EKK0891B002";
	/** EKK2121A010 回線使用契約物件一意照会 */
	private static final String TEMPLATE_ID_EKK2121A010 = "EKK2121A010";
//>>> 巻2 ANK-1224-00-00 Y.MORIMOTO MOD START 2012.11.21 ------------------------
	/** EZM0171A010 コード名称管理一意照会 */
	private static final String TEMPLATE_ID_EZM0171A010 = "EZM0171A010";
//>>> 巻2 ANK-1224-00-00 Y.MORIMOTO MOD END   2012.11.21 ------------------------
// ANK-3885-00-00 ADD START
	/** EKK3251B010 棟内空き状況情報一覧照会 */
	private static final String TEMPLATE_ID_EKK3251B010 = "EKK3251B010";
// ANK-3885-00-00 ADD END

	//--------------------------------------------------
	// param <---> サービスI/F 変換マップ名
	//--------------------------------------------------
	/** EKK0861A010 マンション物件一意照会 */
	private static final String EKK0861A010_MAP = "kk0861_a010_map";
	/** EKK0871B001 オーナー契約一覧照会 */
	private static final String EKK0871B001_MAP = "kk0871_b001_map";
	/** EKK0881B001 回線使用契約一覧照会 */
	private static final String EKK0881B001_MAP = "kk0881_b001_map";
	/** EKK0891B002 提供方式契約一覧照会 */
	private static final String EKK0891B002_MAP = "kk0891_b002_map";
	/** EKK2121A010 回線使用契約物件一意照会 */
	private static final String EKK2121A010_MAP = "kk2121_a010_map";
//>>> 巻2 ANK-1224-00-00 Y.MORIMOTO MOD START 2012.11.21 ------------------------
	/** EZM0171A010 コード名称管理一意照会 */
	private static final String EZM0171A010_MAP = "ezm0171_a010_map";
//>>> 巻2 ANK-1224-00-00 Y.MORIMOTO MOD END   2012.11.21 ------------------------
// ANK-3885-00-00 ADD START
	/** EKK3251B010 棟内空き状況情報一覧照会 */
	private static final String EKK3251B010_MAP = "kk3251_b010_map";
// ANK-3885-00-00 ADD END

	//--------------------------------------------------
	// 入力情報マップ設定項目キー
	//--------------------------------------------------
	/** 入力情報マップ:リクエストパラメータ */
	private static final String IN_INF_KEY_REQ_PARAM = "req_param";
	/** 入力情報マップ:ユーザ任意文字列 */
	private static final String IN_INF_KEY_FIXED_TEXT = "fixed_text";

	//--------------------------------------------------
	// サービスI/Fマッピング共通情報マップ設定項目キー
	//--------------------------------------------------
	/** サービスI/Fマッピング共通情報マップ[上り]:CBSMsgクラス */
	private static final String SVC_IF_CMN_INF_KEY_USE_CBSMSG = "use_cbsmsg";
	/** サービスI/Fマッピング共通情報マップ[上り]:テンプレートID(キー名) */
	private static final String SVC_IF_CMN_INF_KEY_USE_TEMP_ID_KEY = "use_temp_id_key";
	/** サービスI/Fマッピング共通情報マップ[上り]:テンプレートID(設定値) */
	private static final String SVC_IF_CMN_INF_KEY_USE_TEMP_ID_VAL = "use_temp_id_val";
	/** サービスI/Fマッピング共通情報マップ[上り]:機能コード(キー名) */
	private static final String SVC_IF_CMN_INF_KEY_USE_FUNC_CD_KEY = "use_func_cd_key";
	/** サービスI/Fマッピング共通情報マップ[上り]:機能コード(設定値) */
	private static final String SVC_IF_CMN_INF_KEY_USE_FUNC_CD_VAL = "use_func_cd_val";
	/** サービスI/Fマッピング共通情報マップ[下り]:明細リスト名 */
	private static final String SVC_IF_CMN_INF_KEY_USE_DTL_LST_NM = "use_dtl_lst_nm";
	/** サービスI/Fマッピング共通情報マップ[下り]:param <---> サービスI/F 変換マップ名 */
	private static final String SVC_IF_CMN_INF_KEY_USE_CONV_MAP_NM = "use_conv_map_nm";
	/** サービスI/Fマッピング共通情報マップ[下り]:ステータス項目名 */
	private static final String SVC_IF_CMN_INF_KEY_USE_STS_COLUM_NM = "use_sts_colum_nm";

	//--------------------------------------------------------------------
	// 照会 - 検索条件格納マップ用キー項目
	//--------------------------------------------------------------------
	/** 検索条件格納マップ用キー項目:マンション物件番号 */
	public static final String COND_KEY_MANSION_BUKKEN_NO = "cond_key_mansion_bukken_no";
	/** 検索条件格納マップ用キー項目:P-ID */
	public static final String COND_KEY_PID = "cond_key_pid";
	/** 検索条件格納マップ用キー項目:マンションID */
	public static final String COND_KEY_MANSION_ID = "cond_key_mansion_id";
	/** 検索条件格納マップ用キー項目:CAT-ID */
	public static final String COND_KEY_CATID = "cond_key_catid";
	/** 検索条件格納マップ用キー項目:オーナー契約番号 */
	public static final String COND_KEY_OWNR_KEI_NO = "cond_key_ownr_kei_no";
	/** 検索条件格納マップ用キー項目:回線使用契約番号 */
	public static final String COND_KEY_KAISEN_USE_KEI_NO = "cond_key_kaisen_use_kei_no";
	/** 検索条件格納マップ用キー項目:物件管理番号 */
	public static final String COND_KEY_BKN_KNRI_NO = "cond_key_bkn_knri_no";
//>>> 巻2 ANK-1224-00-00 Y.MORIMOTO MOD START 2012.11.21 ------------------------
	/** 検索条件格納マップ用キー項目:マンション接続機器コード */
	public static final String COND_KEY_MCNTKK_CD = "cond_key_mcntkk_cd";
	/** 検索条件格納マップ用キー項目:コード種別コード */
	public static final String COND_KEY_CD_SBT_CD = "cond_key_cd_sbt_cd";
	/** 検索条件格納マップ用キー項目:コード区分 */
	public static final String COND_KEY_CD_DIV = "cond_key_cd_div";
//>>> 巻2 ANK-1224-00-00 Y.MORIMOTO MOD END   2012.11.21 ------------------------

	//--------------------------------------------------
	// 設定データ項目名格納マップ設定項目キー
	//   注)単項目形式の設定項目キーは、
	//      使用するCBSMsgの設定項目名を
	//      そのまま使用する
	//--------------------------------------------------
	/** 設定データ項目名格納マップ:リスト項目 */
	private static final String SET_DT_KEY_LIST_COLS = "set_dt_key_list_cols";

	//--------------------------------------------------
	// 返却データ項目名格納マップ設定項目キー
	//   注)リスト形式の設定項目キーは、
	//      使用するCBSMsgの明細リスト名を
	//      そのまま使用する
	//--------------------------------------------------
	/** 返却データ項目名格納マップ:単項目 */
	private static final String RES_DT_KEY_PRIME_COLS = "res_dt_key_prime_cols";


	//--------------------------------------------------
	// ローカル変数
	//--------------------------------------------------
	/** 唯一のインスタンス */
	private static JKKMansInfoMapperCC  myIns = null;


	/**
	 * コンストラクタ.
	 *   単一インスタンスにする為に非公開化
	 * <br>
	 */
	private JKKMansInfoMapperCC(){
	}

	/**
	 * インスタンス取得.
	 * <br>
	 */
	public static JKKMansInfoMapperCC getInstance(){

		if( myIns == null ){
			myIns = new JKKMansInfoMapperCC();
		}

		return myIns;
	}

	/**
	 * EKK0861A010 マンション物件一意照会 上りマッピング.
	 * <br>
	 * @param   reqParam   モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   fixedText  ユーザ任意文字列
	 * @param   condMap    検索条件格納マップ
	 * @throws  Exception  例外が発生した場合
	 * @return  サービスIF実行用のマッピング情報
	 */
	public HashMap<String, Object> setEKK0861A010( IRequestParameterReadWrite reqParam, String fixedText, HashMap<String, String> condMap ) throws RequestParameterException {

		/** 入力情報マップ 生成 */
		HashMap<String, Object> inInfoMap = new HashMap<String, Object>();
		inInfoMap.put( IN_INF_KEY_REQ_PARAM, reqParam );
		inInfoMap.put( IN_INF_KEY_FIXED_TEXT, fixedText );

		/** サービスI/Fマッピング共通情報マップ 生成 */
		HashMap<String, Object> svcIfCmnInfMap = new HashMap<String, Object>();
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_CBSMSG, EKK0861A010CBSMsg.class );
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_TEMP_ID_KEY, EKK0861A010CBSMsg.TEMPLATEID );
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_TEMP_ID_VAL, TEMPLATE_ID_EKK0861A010 );
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_FUNC_CD_KEY, EKK0861A010CBSMsg.FUNC_CODE );
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_FUNC_CD_VAL, JPCModelConstant.FUNC_CD_1 );

		/** 設定値格納マップ 生成  ※検索条件を格納 */
		HashMap<String, Object> setDtMap = new HashMap<String, Object>();
		// condMap.マンション物件番号 ⇒ EKK0861A010.ＫＥＹ＿マンション物件番号
		setDtMap.put( EKK0861A010CBSMsg.KEY_MANSION_BUKKEN_NO, condMap.get( COND_KEY_MANSION_BUKKEN_NO ) );

		/** 上りマッピング実施 */
		return setUppMapping( inInfoMap, svcIfCmnInfMap, setDtMap );
	}

	/**
	 * EKK0861A010 マンション物件一意照会 下りマッピング.
	 * <br>
	 * @param   reqParam   モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   fixedText  ユーザ任意文字列
	 * @param   resultMap  サービスIFの結果が格納されているマップ情報
	 * @throws  Exception  例外が発生した場合
	 * @return  下りマッピング項目
	 */
	public HashMap<String, Object> getEKK0861A010( IRequestParameterReadWrite reqParam, String fixedText, Map<?, ?> resultMap ) throws Exception {

		/** 事前準備 */
		// 返却データ項目名
		String[] resDataColums = {
				// マンション物件番号
				EKK0861A010CBSMsg1List.MANSION_BUKKEN_NO,
				// マンション物件住所コード
				EKK0861A010CBSMsg1List.MANSION_BUKKEN_AD_CD,
				// マンション物件郵便番号
				EKK0861A010CBSMsg1List.MANSION_BUKKEN_PCD,
				// マンション物件都道府県名
				EKK0861A010CBSMsg1List.MANSION_BUKKEN_STATE_NM,
				// マンション物件市区町村名
				EKK0861A010CBSMsg1List.MANSION_BUKKEN_CITY_NM,
				// マンション物件大字通称名
				EKK0861A010CBSMsg1List.MANS_BUKKEN_OAZTSU_NM,
				// マンション物件字丁目名
				EKK0861A010CBSMsg1List.MANSION_BUKKEN_AZCHO_NM,
				// マンション名
				EKK0861A010CBSMsg1List.MANSION_NM,
				// マンションカナ名
				EKK0861A010CBSMsg1List.MANSION_KANA,
				// マンションオーナーID
				EKK0861A010CBSMsg1List.MANSION_OWNR_ID,
				// マンション物件コード
				EKK0861A010CBSMsg1List.MANSION_BUKKEN_CD,
				// 戸数
				EKK0861A010CBSMsg1List.KOSU,
				// 総棟数
				EKK0861A010CBSMsg1List.TTL_TOU_CNT,
				// マンション最上階
				EKK0861A010CBSMsg1List.MANSION_MAX_FLR,
				// マンション物件住所_マンション代表者住所差異フラグ
//				EKK0861A010CBSMsg1List.MANSB_AD_MANSD_AD_SAI_FLG,
				// 登録年月日時分秒
				EKK0861A010CBSMsg1List.ADD_DTM,
				// 登録オペレータアカウント
				EKK0861A010CBSMsg1List.ADD_OPEACNT,
				// 更新年月日時分秒
				EKK0861A010CBSMsg1List.UPD_DTM,
				// 更新オペレータアカウント
				EKK0861A010CBSMsg1List.UPD_OPEACNT,
				// 削除年月日時分秒
				EKK0861A010CBSMsg1List.DEL_DTM,
				// 削除オペレータアカウント
				EKK0861A010CBSMsg1List.DEL_OPEACNT,
				// 無効フラグ
				EKK0861A010CBSMsg1List.MK_FLG,
				// 無効フラグ名称
				EKK0861A010CBSMsg1List.MK_FLG_NM
		};

		// エラー項目へ割付するデータ項目名
		String[] errMappingDataColums = {
				// ＫＥＹ＿マンション物件番号
				EKK0861A010CBSMsg.KEY_MANSION_BUKKEN_NO_ERR
		};


		/** 入力情報マップ 生成 */
		HashMap<String, Object> inInfoMap = new HashMap<String, Object>();
		inInfoMap.put( IN_INF_KEY_REQ_PARAM, reqParam );
		inInfoMap.put( IN_INF_KEY_FIXED_TEXT, fixedText );

		/** サービスI/Fマッピング共通情報マップ 生成 */
		HashMap<String, Object> svcIfCmnInfMap = new HashMap<String, Object>();
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_CONV_MAP_NM, EKK0861A010_MAP );
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_DTL_LST_NM, EKK0861A010CBSMsg.EKK0861A010CBSMSG1LIST );
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_STS_COLUM_NM, EKK0861A010CBSMsg.STATUS );

		/** 返却データ項目名リスト 生成 */
		ArrayList<String> resDtLst = new ArrayList<String>();
		for( int i=0; i < resDataColums.length; i++ ){
			resDtLst.add( resDataColums[i] );
		}

		/** エラー項目へ割付するデータ項目名リスト 生成 */
		ArrayList<String> errDtLst = new ArrayList<String>();
		for( int i=0; i < errMappingDataColums.length; i++ ){
			errDtLst.add( errMappingDataColums[i] );
		}

		/** 下りマッピング実施 */
		return setSelDwnMappingToOne( inInfoMap, svcIfCmnInfMap, resultMap, resDtLst, errDtLst );
	}

	/**
	 * EKK0871B001 オーナー契約一覧照会 上りマッピング.
	 * <br>
	 * @param   reqParam   モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   fixedText  ユーザ任意文字列
	 * @param   condMap    検索条件格納マップ
	 * @throws  Exception  例外が発生した場合
	 * @return  サービスIF実行用のマッピング情報
	 */
	public HashMap<String, Object> setEKK0871B001( IRequestParameterReadWrite reqParam, String fixedText, HashMap<String, String> condMap ) throws RequestParameterException {

		/** 入力情報マップ 生成 */
		HashMap<String, Object> inInfoMap = new HashMap<String, Object>();
		inInfoMap.put( IN_INF_KEY_REQ_PARAM, reqParam );
		inInfoMap.put( IN_INF_KEY_FIXED_TEXT, fixedText );

		/** サービスI/Fマッピング共通情報マップ 生成 */
		HashMap<String, Object> svcIfCmnInfMap = new HashMap<String, Object>();
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_CBSMSG, EKK0871B001CBSMsg.class );
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_TEMP_ID_KEY, EKK0871B001CBSMsg.TEMPLATEID );
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_TEMP_ID_VAL, TEMPLATE_ID_EKK0871B001 );
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_FUNC_CD_KEY, EKK0871B001CBSMsg.FUNC_CODE );
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_FUNC_CD_VAL, JPCModelConstant.FUNC_CD_1 );

		/** 設定値格納マップ 生成  ※検索条件を格納 */
		HashMap<String, Object> setDtMap = new HashMap<String, Object>();
		// condMap.P-ID ⇒ EKK0871B001.ＫＥＹ＿P-ID
		setDtMap.put( EKK0871B001CBSMsg.KEY_PID, condMap.get( COND_KEY_PID ) );

		/** 上りマッピング実施 */
		return setUppMapping( inInfoMap, svcIfCmnInfMap, setDtMap );
	}

	/**
	 * EKK0871B001 オーナー契約一覧照会 下りマッピング.
	 * <br>
	 * @param   reqParam   モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   fixedText  ユーザ任意文字列
	 * @param   resultMap  サービスIFの結果が格納されているマップ情報
	 * @throws  Exception  例外が発生した場合
	 * @return  下りマッピング項目
	 */
	public ArrayList<HashMap<String, Object>> getEKK0871B001( IRequestParameterReadWrite reqParam, String fixedText, Map<?, ?> resultMap ) throws Exception {

		/** 事前準備 */
		// 返却データ項目名
		String[] resDataColums = {
				// オーナー契約番号
				EKK0871B001CBSMsg1List.OWNR_KEI_NO,
				// マンション物件番号
				EKK0871B001CBSMsg1List.MANSION_BUKKEN_NO,
				// マンション物件番号名称
				EKK0871B001CBSMsg1List.MANSION_BUKKEN_NO_NM,
				// P-ID
				EKK0871B001CBSMsg1List.PID,
				// マンションオーナーID
				EKK0871B001CBSMsg1List.MANSION_OWNR_ID,
				// マンションオーナーID名称
				EKK0871B001CBSMsg1List.MANSION_OWNR_ID_NM,
				// マンションサービスメニューコード
				EKK0871B001CBSMsg1List.MANSION_SVC_MENU_CD,
				// マンションサービスメニューコード名称
				EKK0871B001CBSMsg1List.MANSION_SVC_MENU_CD_NM,
				// 電波障害案件番号
				EKK0871B001CBSMsg1List.DMPS_ANKEN_NO,
				// 申込年月日
				EKK0871B001CBSMsg1List.MSKM_YMD,
				// 契約締結年月日
				EKK0871B001CBSMsg1List.KEI_CNC_YMD,
				// 支払方式コード
				EKK0871B001CBSMsg1List.PAY_HOSHIKI_CD,
				// ベース契約按分比率
				EKK0871B001CBSMsg1List.BASE_KEI_AMBUN_RT,
				// サービス開始年月日
				EKK0871B001CBSMsg1List.SVC_STAYMD,
				// サービス終了年月日
				EKK0871B001CBSMsg1List.SVC_ENDYMD,
				// P-IDメモ
				EKK0871B001CBSMsg1List.PID_MEMO,
				// オーナー契約関係特記事項
				EKK0871B001CBSMsg1List.OWNR_KEI_KANKEI_TKJK,
				// オーナー契約解約理由メモ
				EKK0871B001CBSMsg1List.OWNR_KEI_DLRE_MEMO,
				// 関電営業所コード
				EKK0871B001CBSMsg1List.KEPCO_BUSIOFFICE_CD,
				// オーナー契約中断年月日
				EKK0871B001CBSMsg1List.OWNR_KEI_STP_YMD,
				// オーナー契約中断理由コード
				EKK0871B001CBSMsg1List.OWNR_KEI_STP_RSN_CD,
				// オーナー契約中断詳細理由メモ
				EKK0871B001CBSMsg1List.OWNR_KEI_STP_DTL_RSN_MEMO,
				// オーナー契約解約予定年月日
				EKK0871B001CBSMsg1List.OWNR_KEI_DSL_RSYMD,
				// オーナー契約解約年月日
				EKK0871B001CBSMsg1List.OWNR_KEI_DSL_YMD,
				// 登録年月日時分秒
				EKK0871B001CBSMsg1List.ADD_DTM,
				// 登録オペレータアカウント
				EKK0871B001CBSMsg1List.ADD_OPEACNT,
				// 更新年月日時分秒
				EKK0871B001CBSMsg1List.UPD_DTM,
				// 更新オペレータアカウント
				EKK0871B001CBSMsg1List.UPD_OPEACNT,
				// 削除年月日時分秒
				EKK0871B001CBSMsg1List.DEL_DTM,
				// 削除オペレータアカウント
				EKK0871B001CBSMsg1List.DEL_OPEACNT,
				// 無効フラグ
				EKK0871B001CBSMsg1List.MK_FLG,
				// 無効フラグ名称
				EKK0871B001CBSMsg1List.MK_FLG_NM
		};

		// エラー項目へ割付するデータ項目名
		String[] errMappingDataColums = {
				// ＫＥＹ＿P-ID
				EKK0871B001CBSMsg.KEY_PID_ERR
		};


		/** 入力情報マップ 生成 */
		HashMap<String, Object> inInfoMap = new HashMap<String, Object>();
		inInfoMap.put( IN_INF_KEY_REQ_PARAM, reqParam );
		inInfoMap.put( IN_INF_KEY_FIXED_TEXT, fixedText );

		/** サービスI/Fマッピング共通情報マップ 生成 */
		HashMap<String, Object> svcIfCmnInfMap = new HashMap<String, Object>();
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_CONV_MAP_NM, EKK0871B001_MAP );
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_DTL_LST_NM, EKK0871B001CBSMsg.EKK0871B001CBSMSG1LIST );
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_STS_COLUM_NM, EKK0871B001CBSMsg.STATUS );

		/** 返却データ項目名リスト 生成 */
		ArrayList<String> resDtLst = new ArrayList<String>();
		for( int i=0; i < resDataColums.length; i++ ){
			resDtLst.add( resDataColums[i] );
		}

		/** エラー項目へ割付するデータ項目名リスト 生成 */
		ArrayList<String> errDtLst = new ArrayList<String>();
		for( int i=0; i < errMappingDataColums.length; i++ ){
			errDtLst.add( errMappingDataColums[i] );
		}

		/** 下りマッピング実施 */
		return setSelDwnMappingToLst( inInfoMap, svcIfCmnInfMap, resultMap, resDtLst, errDtLst );
	}

// ST1-2013-0000144対応 20130117 星野 ADD START
	/**
	 * EKK0881B001 回線使用契約一覧照会 上りマッピング.
	 * <br>
	 * @param   reqParam   モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   fixedText  ユーザ任意文字列
	 * @param   condMap    検索条件格納マップ
	 * @param   funcCd     機能コード
	 * @throws  Exception  例外が発生した場合
	 * @return  サービスIF実行用のマッピング情報
	 */
	public HashMap<String, Object> setEKK0881B001( IRequestParameterReadWrite reqParam, String fixedText, HashMap<String, String> condMap ) throws RequestParameterException {
		return setEKK0881B001(reqParam, fixedText, condMap, JPCModelConstant.FUNC_CD_1);
	}
	
// ST1-2013-0000144対応 20130117 星野 ADD START
	/**
	 * EKK0881B001 回線使用契約一覧照会 上りマッピング.
	 * <br>
	 * @param   reqParam   モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   fixedText  ユーザ任意文字列
	 * @param   condMap    検索条件格納マップ
	 * @param   funcCd     機能コード
	 * @throws  Exception  例外が発生した場合
	 * @return  サービスIF実行用のマッピング情報
	 */
// ST1-2013-0000144対応 20130117 星野 MOD START
//	public HashMap<String, Object> setEKK0881B001( IRequestParameterReadWrite reqParam, String fixedText, HashMap<String, String> condMap ) throws RequestParameterException {
	public HashMap<String, Object> setEKK0881B001( IRequestParameterReadWrite reqParam, String fixedText, HashMap<String, String> condMap, String funcCd ) throws RequestParameterException {
// ST1-2013-0000144対応 20130117 星野 MOD END

		/** 入力情報マップ 生成 */
		HashMap<String, Object> inInfoMap = new HashMap<String, Object>();
		inInfoMap.put( IN_INF_KEY_REQ_PARAM, reqParam );
		inInfoMap.put( IN_INF_KEY_FIXED_TEXT, fixedText );

		/** サービスI/Fマッピング共通情報マップ 生成 */
		HashMap<String, Object> svcIfCmnInfMap = new HashMap<String, Object>();
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_CBSMSG, EKK0881B001CBSMsg.class );
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_TEMP_ID_KEY, EKK0881B001CBSMsg.TEMPLATEID );
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_TEMP_ID_VAL, TEMPLATE_ID_EKK0881B001 );
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_FUNC_CD_KEY, EKK0881B001CBSMsg.FUNC_CODE );
// ST1-2013-0000144対応 20130117 星野 MOD START
//		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_FUNC_CD_VAL, JPCModelConstant.FUNC_CD_1 );
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_FUNC_CD_VAL, funcCd);
// ST1-2013-0000144対応 20130117 星野 MOD END

		/** 設定値格納マップ 生成  ※検索条件を格納 */
		HashMap<String, Object> setDtMap = new HashMap<String, Object>();
		// condMap.オーナー契約番号 ⇒ EKK0881B001.ＫＥＹ＿オーナー契約番号
		setDtMap.put( EKK0881B001CBSMsg.KEY_OWNR_KEI_NO, condMap.get( COND_KEY_OWNR_KEI_NO ) );
		// condMap.マンションID ⇒ EKK0881B001.ＫＥＹ＿マンションID
		setDtMap.put( EKK0881B001CBSMsg.KEY_MANSION_ID, condMap.get( COND_KEY_MANSION_ID ) );
		// condMap.CAT-ID ⇒ EKK0881B001.ＫＥＹ＿CAT-ID
		setDtMap.put( EKK0881B001CBSMsg.KEY_CATID, condMap.get( COND_KEY_CATID ) );

		/** 上りマッピング実施 */
		return setUppMapping( inInfoMap, svcIfCmnInfMap, setDtMap );
	}

	/**
	 * EKK0881B001 回線使用契約一覧照会 下りマッピング.
	 * <br>
	 * @param   reqParam   モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   fixedText  ユーザ任意文字列
	 * @param   resultMap  サービスIFの結果が格納されているマップ情報
	 * @throws  Exception  例外が発生した場合
	 * @return  下りマッピング項目
	 */
	public ArrayList<HashMap<String, Object>> getEKK0881B001( IRequestParameterReadWrite reqParam, String fixedText, Map<?, ?> resultMap ) throws Exception {

		/** 事前準備 */
		// 返却データ項目名
		String[] resDataColums = {
				// 回線使用契約番号
				EKK0881B001CBSMsg1List.KAISEN_USE_KEI_NO,
				// オーナー契約番号
				EKK0881B001CBSMsg1List.OWNR_KEI_NO,
				// マンションID
				EKK0881B001CBSMsg1List.MANSION_ID,
				// マンションコースコード
				EKK0881B001CBSMsg1List.MANSION_COURSE_CD,
				// マンションコースコード名称
				EKK0881B001CBSMsg1List.MANSION_COURSE_CD_NM,
				// 回線番号
				EKK0881B001CBSMsg1List.KAISEN_NO,
				// マンション営業案件管理番号
				EKK0881B001CBSMsg1List.MSBSN_ANKEN_KNRI_NO,
// ANK-1392-00-00 2012.12.19 Y.MORIMOTO DEL START
//				// 物件管理番号
//				EKK0881B001CBSMsg1List.BKN_KNRI_NO,
// ANK-1392-00-00 2012.12.19 Y.MORIMOTO DEL END
				// ペアID
				EKK0881B001CBSMsg1List.PAIRID,
				// オーナー契約回線工事案件番号
				EKK0881B001CBSMsg1List.OWNR_KEI_KISN_KOJIAK_NO,
				// オーナー契約回線工事案件枝番号1
				EKK0881B001CBSMsg1List.OWNR_KEI_KISN_KOJIAK_SEQ_1,
				// オーナー契約回線工事案件枝番号2
				EKK0881B001CBSMsg1List.OWNR_KEI_KISN_KOJIAK_SEQ_2,
				// 起点変電所コード
				EKK0881B001CBSMsg1List.KITEN_HDSHO_CD,
				// 集約局コード
				EKK0881B001CBSMsg1List.SHYAKK_CD,
				// マンション設備種別コード
				EKK0881B001CBSMsg1List.MANS_EQUIP_SBT_CD,
				// サービス開始予定年月日
// MODEL対応
//				EKK0881B001CBSMsg1List.SVC_STA_RSV_YMD,
// MODEL対応
				// 総棟数
				EKK0881B001CBSMsg1List.TTL_TOU_CNT,
				// 要望事項メモ
				EKK0881B001CBSMsg1List.YOBO_JIKO_MEMO,
				// CAT-ID
				EKK0881B001CBSMsg1List.CATID,
				// マンション価格帯コード
				EKK0881B001CBSMsg1List.MANSION_KAKAKUTAI_CD,
				// 特殊配線フラグ
				EKK0881B001CBSMsg1List.TOKUSHU_HAISEN_FLG,
				// BSパススルー可否
				EKK0881B001CBSMsg1List.BSPT_KH,
				// 併行乗り換え導入情報コード
				EKK0881B001CBSMsg1List.HEKO_NORIKAE_DONYU_INFO_CD,
				// 工事施工依頼受付年月日
				EKK0881B001CBSMsg1List.KOJI_SEKOU_REQ_UK_YMD,
				// 先行工事指示年月日
				EKK0881B001CBSMsg1List.SENKO_KOJI_SJI_YMD,
				// 先行工事予定年月日
				EKK0881B001CBSMsg1List.SENKO_KOJI_RSYMD,
				// 先行工事完了年月日
				EKK0881B001CBSMsg1List.SENKO_KOJI_FIN_YMD,
				// 開通日調整依頼年月日(マンション設備)
				EKK0881B001CBSMsg1List.OPD_ADJ_REQYMD_MANSSB,
				// 開通日調整完了年月日(マンション設備)
				EKK0881B001CBSMsg1List.OPD_ADJ_FIN_YMD_MANSSB,
				// 調整開通年月日(マンション設備)
				EKK0881B001CBSMsg1List.ADJ_OPEN_YMD_MANSSB,
				// 設計依頼受付年月日
				EKK0881B001CBSMsg1List.DSGN_REQ_UK_YMD,
				// 設計完了年月日
				EKK0881B001CBSMsg1List.DSGN_FIN_YMD,
				// 開通日調整依頼年月日
				EKK0881B001CBSMsg1List.OPD_ADJ_REQYMD,
				// 開通工事予定年月日
				EKK0881B001CBSMsg1List.OPEN_KOJI_RSYMD,
				// 開通工事完了年月日
				EKK0881B001CBSMsg1List.OPEN_KOJI_FIN_YMD,
				// 24時間入所対応確認コード
				EKK0881B001CBSMsg1List.N_24H_NYUSHO_TAIO_CFM_CD,
				// 多対PVC線使用確認コード
				EKK0881B001CBSMsg1List.TTPVSEN_USE_CFM_CD,
				// 共用部機器条件コード
				EKK0881B001CBSMsg1List.KYB_KIKI_JOKEN_CD,
				// 光電話提供エリアコード
				EKK0881B001CBSMsg1List.HIKARI_TEL_TK_AREA_CD,
				// 光電話提供コード
				EKK0881B001CBSMsg1List.HIKARI_TEL_TK_CD,
				// 光電話サービス提供開始年月日
				EKK0881B001CBSMsg1List.HIKARI_TEL_SVCTK_STAYMD,
				// 宅内特殊配線有料工事コード
				EKK0881B001CBSMsg1List.TAKNI_TOKUHSEN_YRKOJI_CD,
				// 光テレビ提供エリアコード
				EKK0881B001CBSMsg1List.HIKARI_TV_TK_AREA_CD,
				// 加入契約WEB申込受付可否
				EKK0881B001CBSMsg1List.KNYKEI_WEB_MSKM_UK_KH,
				// 加入契約WEB申込開始年月日
				EKK0881B001CBSMsg1List.KNYKEI_WEB_MSKM_STAYMD,
				// 契約付加(レンタル)コード
				EKK0881B001CBSMsg1List.KEI_HUKA_RENT_CD,
				// 契約付加(買取)コード
				EKK0881B001CBSMsg1List.KEI_HUKA_KAITORI_CD,
				// マンション接続機器コード
				EKK0881B001CBSMsg1List.MCNTKK_CD,
				// 加入契約申込条件コード
				EKK0881B001CBSMsg1List.KNYKEI_MSKM_JOKEN_CD,
				// VDSLモデム宅内機器型式コード
				EKK0881B001CBSMsg1List.VDSL_MODEM_TAKNKIKI_MDL_CD,
				// 標準サービス開始日数
				EKK0881B001CBSMsg1List.STDARD_SVC_STA_NISU,
				// 加入契約ネット1G申込可否
				EKK0881B001CBSMsg1List.KNYKEI_NET_1G_MSKM_KH,
				// 加入契約ネット200M申込可否
				EKK0881B001CBSMsg1List.KNYKEI_NET_200M_MSKM_KH,
				// 加入契約ネット100M申込可否
				EKK0881B001CBSMsg1List.KNYKEI_NET_100M_MSKM_KH,
				// 光テレビ提供状況コード
				EKK0881B001CBSMsg1List.HIKARI_TV_TK_JOKYO_CD,
				// メゾン光テレビ提供コード
				EKK0881B001CBSMsg1List.MAISON_HIKARI_TV_TK_CD,
				// 登録年月日時分秒
				EKK0881B001CBSMsg1List.ADD_DTM,
				// 登録オペレータアカウント
				EKK0881B001CBSMsg1List.ADD_OPEACNT,
				// 更新年月日時分秒
				EKK0881B001CBSMsg1List.UPD_DTM,
				// 更新オペレータアカウント
				EKK0881B001CBSMsg1List.UPD_OPEACNT,
				// 削除年月日時分秒
				EKK0881B001CBSMsg1List.DEL_DTM,
				// 削除オペレータアカウント
				EKK0881B001CBSMsg1List.DEL_OPEACNT,
				// 無効フラグ
				EKK0881B001CBSMsg1List.MK_FLG,
				// 無効フラグ名称
				EKK0881B001CBSMsg1List.MK_FLG_NM,
				//ANK-3731-00-00 ADD START
				// 光配線1Gのみフラグ
				//ANK-4493-00-00 MOD START
//				EKK0881B001CBSMsg1List.HHS_1GONLY_FLG
				EKK0881B001CBSMsg1List.HHS_1GONLY_FLG,
				//ANK-4493-00-00 MOD END
				//ANK-3731-00-00 ADD END
				//ANK-4493-00-00 ADD START
				// 加入契約ネット1G申込可否_マンションフラグ
				EKK0881B001CBSMsg1List.KNYKEI_NET_1G_MKM_KH_MANS,
				// 加入契約ネット10G申込可否_マンションフラグ
				EKK0881B001CBSMsg1List.KNYKEI_NET_10G_MKM_KH_MANS
				//ANK-4493-00-00 ADD END
		};

		// エラー項目へ割付するデータ項目名
		String[] errMappingDataColums = {
				// ＫＥＹ＿オーナー契約番号
				EKK0881B001CBSMsg.KEY_OWNR_KEI_NO_ERR,
				// ＫＥＹ＿マンションID
				EKK0881B001CBSMsg.KEY_MANSION_ID_ERR,
				// ＫＥＹ＿CAT-ID
				EKK0881B001CBSMsg.KEY_CATID_ERR
		};


		/** 入力情報マップ 生成 */
		HashMap<String, Object> inInfoMap = new HashMap<String, Object>();
		inInfoMap.put( IN_INF_KEY_REQ_PARAM, reqParam );
		inInfoMap.put( IN_INF_KEY_FIXED_TEXT, fixedText );

		/** サービスI/Fマッピング共通情報マップ 生成 */
		HashMap<String, Object> svcIfCmnInfMap = new HashMap<String, Object>();
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_CONV_MAP_NM, EKK0881B001_MAP );
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_DTL_LST_NM, EKK0881B001CBSMsg.EKK0881B001CBSMSG1LIST );
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_STS_COLUM_NM, EKK0881B001CBSMsg.STATUS );

		/** 返却データ項目名リスト 生成 */
		ArrayList<String> resDtLst = new ArrayList<String>();
		for( int i=0; i < resDataColums.length; i++ ){
			resDtLst.add( resDataColums[i] );
		}

		/** エラー項目へ割付するデータ項目名リスト 生成 */
		ArrayList<String> errDtLst = new ArrayList<String>();
		for( int i=0; i < errMappingDataColums.length; i++ ){
			errDtLst.add( errMappingDataColums[i] );
		}

		/** 下りマッピング実施 */
		return setSelDwnMappingToLst( inInfoMap, svcIfCmnInfMap, resultMap, resDtLst, errDtLst );
	}

	/**
	 * EKK0891B002 提供方式契約一覧照会 上りマッピング.
	 * <br>
	 * @param   reqParam   モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   fixedText  ユーザ任意文字列
	 * @param   condMap    検索条件格納マップ
	 * @throws  Exception  例外が発生した場合
	 * @return  サービスIF実行用のマッピング情報
	 */
	public HashMap<String, Object> setEKK0891B002( IRequestParameterReadWrite reqParam, String fixedText, HashMap<String, String> condMap ) throws RequestParameterException {

		/** 入力情報マップ 生成 */
		HashMap<String, Object> inInfoMap = new HashMap<String, Object>();
		inInfoMap.put( IN_INF_KEY_REQ_PARAM, reqParam );
		inInfoMap.put( IN_INF_KEY_FIXED_TEXT, fixedText );

		/** サービスI/Fマッピング共通情報マップ 生成 */
		HashMap<String, Object> svcIfCmnInfMap = new HashMap<String, Object>();
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_CBSMSG, EKK0891B002CBSMsg.class );
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_TEMP_ID_KEY, EKK0891B002CBSMsg.TEMPLATEID );
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_TEMP_ID_VAL, TEMPLATE_ID_EKK0891B002 );
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_FUNC_CD_KEY, EKK0891B002CBSMsg.FUNC_CODE );
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_FUNC_CD_VAL, JPCModelConstant.FUNC_CD_1 );

		/** 設定値格納マップ 生成  ※検索条件を格納 */
		HashMap<String, Object> setDtMap = new HashMap<String, Object>();
		// condMap.回線使用契約番号 ⇒ EKK0891B002.ＫＥＹ＿回線使用契約番号
		setDtMap.put( EKK0891B002CBSMsg.KEY_KAISEN_USE_KEI_NO, condMap.get( COND_KEY_KAISEN_USE_KEI_NO ) );

		/** 上りマッピング実施 */
		return setUppMapping( inInfoMap, svcIfCmnInfMap, setDtMap );
	}

	/**
	 * EKK0891B002 提供方式契約一覧照会 下りマッピング.
	 * <br>
	 * @param   reqParam   モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   fixedText  ユーザ任意文字列
	 * @param   resultMap  サービスIFの結果が格納されているマップ情報
	 * @throws  Exception  例外が発生した場合
	 * @return  下りマッピング項目
	 */
	public ArrayList<HashMap<String, Object>> getEKK0891B002( IRequestParameterReadWrite reqParam, String fixedText, Map<?, ?> resultMap ) throws Exception {

		/** 事前準備 */
		// 返却データ項目名
		String[] resDataColums = {
				// 提供方式契約番号
				EKK0891B002CBSMsg1List.TK_HOSHIKI_KEI_NO,
				// 提供設備種別コード
				EKK0891B002CBSMsg1List.TK_EQUIP_SBT_CD,
				// 提供設備帯域種別コード
				EKK0891B002CBSMsg1List.TK_EQUIP_TAIIKI_SBT_CD,
				// 回線使用契約番号
				EKK0891B002CBSMsg1List.KAISEN_USE_KEI_NO,
				// マンションプランコード
				EKK0891B002CBSMsg1List.MANSION_PLAN_CD,
				// マンションプランコード名称
				EKK0891B002CBSMsg1List.MANSION_PLAN_CD_NM,
				// 提供方式パターンコード
				EKK0891B002CBSMsg1List.TK_HOSHIKI_PATTERN_CD,
				// 提供方式コード
				EKK0891B002CBSMsg1List.TK_HOSHIKI_CD,
				// アクセス回線速度コード
				EKK0891B002CBSMsg1List.ACCSS_KISN_SPEED_CD,
				// 棟内速度コード
				EKK0891B002CBSMsg1List.TONAI_SPEED_CD,
				// 加入契約支払方式コード
				EKK0891B002CBSMsg1List.KANYU_KEI_PAY_HOSHIKI_CD,
				// 提供料金種別コード
				EKK0891B002CBSMsg1List.TK_PRC_SBT_CD,
				// 提供方式詳細メモ
				EKK0891B002CBSMsg1List.TK_HOSHIKI_DTAIL_MEMO,
				// サービス課金開始年月日
				EKK0891B002CBSMsg1List.SVC_CHRG_STAYMD,
				// サービス課金終了年月日
				EKK0891B002CBSMsg1List.SVC_CHRG_ENDYMD,
// ANK-1392-00-00 2012.12.19 Y.MORIMOTO ADD START
				// マンション営業管理対象物件名
				EKK0891B002CBSMsg1List.MSBSN_KRTG_BKN_NM,
				// マンション営業管理対象物件形態コード
				EKK0891B002CBSMsg1List.MSBSN_KRTG_BKN_FORM_CD,
				// マンション営業管理対象物件住所コード
				EKK0891B002CBSMsg1List.MSBSN_KRTG_BKN_AD_CD,
				// マンション営業管理対象物件郵便番号
				EKK0891B002CBSMsg1List.MSBSN_KRTG_BKN_PCD,
				// マンション営業管理対象物件都道府県名
				EKK0891B002CBSMsg1List.MSBSN_KRTG_BKN_STATE_NM,
				// マンション営業管理対象物件市区町村名
				EKK0891B002CBSMsg1List.MSBSN_KRTG_BKN_CITY_NM,
				// マンション営業管理対象物件大字通称名
				EKK0891B002CBSMsg1List.MSBSN_KRTG_BKN_OAZTSU_NM,
				// マンション営業管理対象物件字丁目名
				EKK0891B002CBSMsg1List.MSBSN_KRTG_BKN_AZCHO_NM,
				// マンション営業管理対象物件番地号
				EKK0891B002CBSMsg1List.MSBSN_KRTG_BKN_BNCHIGO,
// ANK-1392-00-00 2012.12.19 Y.MORIMOTO ADD END
				// 登録年月日時分秒
				EKK0891B002CBSMsg1List.ADD_DTM,
				// 登録オペレータアカウント
				EKK0891B002CBSMsg1List.ADD_OPEACNT,
				// 更新年月日時分秒
				EKK0891B002CBSMsg1List.UPD_DTM,
				// 更新オペレータアカウント
				EKK0891B002CBSMsg1List.UPD_OPEACNT,
				// 削除年月日時分秒
				EKK0891B002CBSMsg1List.DEL_DTM,
				// 削除オペレータアカウント
				EKK0891B002CBSMsg1List.DEL_OPEACNT,
				// 無効フラグ
				EKK0891B002CBSMsg1List.MK_FLG,
				// 無効フラグ名称
				EKK0891B002CBSMsg1List.MK_FLG_NM
		};

		// エラー項目へ割付するデータ項目名
		String[] errMappingDataColums = {
				// ＫＥＹ＿回線使用契約番号
				EKK0891B002CBSMsg.KEY_KAISEN_USE_KEI_NO_ERR
		};


		/** 入力情報マップ 生成 */
		HashMap<String, Object> inInfoMap = new HashMap<String, Object>();
		inInfoMap.put( IN_INF_KEY_REQ_PARAM, reqParam );
		inInfoMap.put( IN_INF_KEY_FIXED_TEXT, fixedText );

		/** サービスI/Fマッピング共通情報マップ 生成 */
		HashMap<String, Object> svcIfCmnInfMap = new HashMap<String, Object>();
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_CONV_MAP_NM, EKK0891B002_MAP );
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_DTL_LST_NM, EKK0891B002CBSMsg.EKK0891B002CBSMSG1LIST );
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_STS_COLUM_NM, EKK0891B002CBSMsg.STATUS );

		/** 返却データ項目名リスト 生成 */
		ArrayList<String> resDtLst = new ArrayList<String>();
		for( int i=0; i < resDataColums.length; i++ ){
			resDtLst.add( resDataColums[i] );
		}

		/** エラー項目へ割付するデータ項目名リスト 生成 */
		ArrayList<String> errDtLst = new ArrayList<String>();
		for( int i=0; i < errMappingDataColums.length; i++ ){
			errDtLst.add( errMappingDataColums[i] );
		}

		/** 下りマッピング実施 */
		return setSelDwnMappingToLst( inInfoMap, svcIfCmnInfMap, resultMap, resDtLst, errDtLst );
	}
// ANK-1392-00-00 2012.12.19 Y.MORIMOTO DEL START
//	/**
//	 * EKK2121A010 回線使用契約物件一意照会 上りマッピング.
//	 * <br>
//	 * @param   reqParam   モデルグループ、コントロールマップを含むリクエストパラメータ
//	 * @param   fixedText  ユーザ任意文字列
//	 * @param   condMap    検索条件格納マップ
//	 * @throws  Exception  例外が発生した場合
//	 * @return  サービスIF実行用のマッピング情報
//	 */
//	public HashMap<String, Object> setEKK2121A010( IRequestParameterReadWrite reqParam, String fixedText, HashMap<String, String> condMap ) throws RequestParameterException {
//
//		/** 入力情報マップ 生成 */
//		HashMap<String, Object> inInfoMap = new HashMap<String, Object>();
//		inInfoMap.put( IN_INF_KEY_REQ_PARAM, reqParam );
//		inInfoMap.put( IN_INF_KEY_FIXED_TEXT, fixedText );
//
//		/** サービスI/Fマッピング共通情報マップ 生成 */
//		HashMap<String, Object> svcIfCmnInfMap = new HashMap<String, Object>();
//		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_CBSMSG, EKK2121A010CBSMsg.class );
//		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_TEMP_ID_KEY, EKK2121A010CBSMsg.TEMPLATEID );
//		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_TEMP_ID_VAL, TEMPLATE_ID_EKK2121A010 );
//		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_FUNC_CD_KEY, EKK2121A010CBSMsg.FUNC_CODE );
//		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_FUNC_CD_VAL, JPCModelConstant.FUNC_CD_1 );
//
//		/** 設定値格納マップ 生成  ※検索条件を格納 */
//		HashMap<String, Object> setDtMap = new HashMap<String, Object>();
//		// condMap.物件管理番号 ⇒ EKK2121A010.ＫＥＹ＿物件管理番号
//		setDtMap.put( EKK2121A010CBSMsg.KEY_BKN_KNRI_NO, condMap.get( COND_KEY_BKN_KNRI_NO ) );
//
//		/** 上りマッピング実施 */
//		return setUppMapping( inInfoMap, svcIfCmnInfMap, setDtMap );
//	}
//
//	/**
//	 * EKK2121A010 回線使用契約物件一意照会 下りマッピング.
//	 * <br>
//	 * @param   reqParam   モデルグループ、コントロールマップを含むリクエストパラメータ
//	 * @param   fixedText  ユーザ任意文字列
//	 * @param   resultMap  サービスIFの結果が格納されているマップ情報
//	 * @throws  Exception  例外が発生した場合
//	 * @return  下りマッピング項目
//	 */
//	public HashMap<String, Object> getEKK2121A010( IRequestParameterReadWrite reqParam, String fixedText, Map<?, ?> resultMap ) throws Exception {
//
//		/** 事前準備 */
//		// 返却データ項目名
//		String[] resDataColums = {
//				// 物件管理番号
//				EKK2121A010CBSMsg1List.BKN_KNRI_NO,
//				// 回線使用契約物件名
//				EKK2121A010CBSMsg1List.KISNUSEKEI_BKN_NM,
//				// 回線使用契約物件カナ名
//				EKK2121A010CBSMsg1List.KISNUSEKEI_BKN_KANA,
//				// 仮称フラグ
//				EKK2121A010CBSMsg1List.KSYO_FLG,
//				// 新築既設コード
//				EKK2121A010CBSMsg1List.NEWCONST_KST_CD,
//				// 新築既設コード名称
//				EKK2121A010CBSMsg1List.NEWCONST_KST_CD_NM,
//				// 回線使用契約物件形態コード
//				EKK2121A010CBSMsg1List.KISNUSEKEI_BKN_FORM_CD,
//				// 回線使用契約物件形態コード名称
//				EKK2121A010CBSMsg1List.KISNUSEKEI_BKN_FORM_CD_NM,
//				// 回線使用契約物件住所コード
//				EKK2121A010CBSMsg1List.KISNUSEKEI_BKN_AD_CD,
//				// 回線使用契約物件郵便番号
//				EKK2121A010CBSMsg1List.KISNUSEKEI_BKN_PCD,
//				// 回線使用契約物件都道府県名
//				EKK2121A010CBSMsg1List.KISNUSEKEI_BKN_STATE_NM,
//				// 回線使用契約物件市区町村名
//				EKK2121A010CBSMsg1List.KISNUSEKEI_BKN_CITY_NM,
//				// 回線使用契約物件大字通称名
//				EKK2121A010CBSMsg1List.KISNUSEKEI_BKN_OAZTSU_NM,
//				// 回線使用契約物件字丁目名
//				EKK2121A010CBSMsg1List.KISNUSEKEI_BKN_AZCHO_NM,
//				// 回線使用契約物件番地号
//				EKK2121A010CBSMsg1List.KISNUSEKEI_BKN_BNCHIGO,
//				// 回線使用契約物件最上階
//				EKK2121A010CBSMsg1List.KISNUSEKEI_BKN_MAX_FLR,
//				// 住所未確定フラグ
//				EKK2121A010CBSMsg1List.AD_MI_FIX_FLG,
//				// 住所未確定フラグ名称
//				EKK2121A010CBSMsg1List.AD_MI_FIX_FLG_NM,
//				// 総棟数
//				EKK2121A010CBSMsg1List.TTL_TOU_CNT,
//				// 総戸数
//				EKK2121A010CBSMsg1List.TTL_KOSU,
//				// 棟構成メモ
//				EKK2121A010CBSMsg1List.TOU_KOSE_MEMO,
//				// 棟別住所情報メモ
//				EKK2121A010CBSMsg1List.TOU_BETU_AD_INFO_MEMO,
//				// 登録年月日時分秒
//				EKK2121A010CBSMsg1List.ADD_DTM,
//				// 登録オペレータアカウント
//				EKK2121A010CBSMsg1List.ADD_OPEACNT,
//				// 更新年月日時分秒
//				EKK2121A010CBSMsg1List.UPD_DTM,
//				// 更新オペレータアカウント
//				EKK2121A010CBSMsg1List.UPD_OPEACNT,
//				// 削除年月日時分秒
//				EKK2121A010CBSMsg1List.DEL_DTM,
//				// 削除オペレータアカウント
//				EKK2121A010CBSMsg1List.DEL_OPEACNT,
//				// 無効フラグ
//				EKK2121A010CBSMsg1List.MK_FLG,
//				// 無効フラグ名称
//				EKK2121A010CBSMsg1List.MK_FLG_NM
//		};
//
//		// エラー項目へ割付するデータ項目名
//		String[] errMappingDataColums = {
//				// ＫＥＹ＿物件管理番号
//				EKK2121A010CBSMsg.KEY_BKN_KNRI_NO_ERR
//		};
//
//
//		/** 入力情報マップ 生成 */
//		HashMap<String, Object> inInfoMap = new HashMap<String, Object>();
//		inInfoMap.put( IN_INF_KEY_REQ_PARAM, reqParam );
//		inInfoMap.put( IN_INF_KEY_FIXED_TEXT, fixedText );
//
//		/** サービスI/Fマッピング共通情報マップ 生成 */
//		HashMap<String, Object> svcIfCmnInfMap = new HashMap<String, Object>();
//		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_CONV_MAP_NM, EKK2121A010_MAP );
//		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_DTL_LST_NM, EKK2121A010CBSMsg.EKK2121A010CBSMSG1LIST );
//		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_STS_COLUM_NM, EKK2121A010CBSMsg.STATUS );
//
//		/** 返却データ項目名リスト 生成 */
//		ArrayList<String> resDtLst = new ArrayList<String>();
//		for( int i=0; i < resDataColums.length; i++ ){
//			resDtLst.add( resDataColums[i] );
//		}
//
//		/** エラー項目へ割付するデータ項目名リスト 生成 */
//		ArrayList<String> errDtLst = new ArrayList<String>();
//		for( int i=0; i < errMappingDataColums.length; i++ ){
//			errDtLst.add( errMappingDataColums[i] );
//		}
//
//		/** 下りマッピング実施 */
//		return setSelDwnMappingToOne( inInfoMap, svcIfCmnInfMap, resultMap, resDtLst, errDtLst );
//	}
// ANK-1392-00-00 2012.12.19 Y.MORIMOTO DEL END
//>>> 巻2 ANK-1224-00-00 Y.MORIMOTO MOD START 2012.11.21 ------------------------
	/**
	 * EZM0171A010 コード名称管理一意照会 上りマッピング.
	 * <br>
	 * @param   reqParam   モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   fixedText  ユーザ任意文字列
	 * @param   condMap    検索条件格納マップ
	 * @throws  Exception  例外が発生した場合
	 * @return  サービスIF実行用のマッピング情報
	 */
	public HashMap<String, Object> setEZM0171A010( IRequestParameterReadWrite reqParam, String fixedText, HashMap<String, String> condMap ) throws RequestParameterException {

		/** 入力情報マップ 生成 */
		HashMap<String, Object> inInfoMap = new HashMap<String, Object>();
		inInfoMap.put( IN_INF_KEY_REQ_PARAM, reqParam );
		inInfoMap.put( IN_INF_KEY_FIXED_TEXT, fixedText );

		/** サービスI/Fマッピング共通情報マップ 生成 */
		HashMap<String, Object> svcIfCmnInfMap = new HashMap<String, Object>();
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_CBSMSG, EZM0171A010CBSMsg.class );
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_TEMP_ID_KEY, EZM0171A010CBSMsg.TEMPLATEID );
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_TEMP_ID_VAL, TEMPLATE_ID_EZM0171A010 );
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_FUNC_CD_KEY, EZM0171A010CBSMsg.FUNC_CODE );
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_FUNC_CD_VAL, SEL_IF_FUNC_CD_DEF );

		/** 設定値格納マップ 生成  ※検索条件を格納 */
		HashMap<String, Object> setDtMap = new HashMap<String, Object>();

		// condMap.KEY_CD_SBT_CD ⇒ EZM0171A010.KEY_CD_SBT_CD
		setDtMap.put( EZM0171A010CBSMsg.KEY_CD_SBT_CD, condMap.get( COND_KEY_CD_SBT_CD ) );

		// condMap.KEY_CD_DIV ⇒ EZM0171A010.KEY_CD_DIV
		setDtMap.put( EZM0171A010CBSMsg.KEY_CD_DIV, condMap.get( COND_KEY_CD_DIV ) );

		/** 上りマッピング実施 */
		return setUppMapping( inInfoMap, svcIfCmnInfMap, setDtMap );
	}

	/**
	 * EZM0171A010 コード名称管理一意照会 下りマッピング.
	 * <br>
	 * @param   reqParam   モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   fixedText  ユーザ任意文字列
	 * @param   resultMap  サービスIFの結果が格納されているマップ情報
	 * @throws  Exception  例外が発生した場合
	 * @return  下りマッピング項目
	 */
	public HashMap<String, Object> getEZM0171A010( IRequestParameterReadWrite reqParam, String fixedText, Map<?, ?> resultMap ) throws Exception {

		/** 事前準備 */
		// 返却データ項目名
		String[] resDataColums = {

			// コード種別コード
			EZM0171A010CBSMsg1List.CD_SBT_CD,
			// コード種別名
			EZM0171A010CBSMsg1List.CD_SBT_NM,
			// コード種別説明
			EZM0171A010CBSMsg1List.CD_SBT_SETMEI,
			// コード区分
			EZM0171A010CBSMsg1List.CD_DIV,
			// コード区分名
			EZM0171A010CBSMsg1List.CD_DIV_NM,
			// コード区分略称
			EZM0171A010CBSMsg1List.CD_DIV_ALI,
			// コード適用開始年月日
			EZM0171A010CBSMsg1List.CD_TSTAYMD,
			// コード適用終了年月日
			EZM0171A010CBSMsg1List.CD_TENDYMD,
			// 表示順序
			EZM0171A010CBSMsg1List.DSP_JUN,
			// 初期表示コード
			EZM0171A010CBSMsg1List.SHK_DSP_CD_NM,
			// 登録年月日時分秒
			EZM0171A010CBSMsg1List.ADD_DTM,
			// 登録オペレータアカウント
			EZM0171A010CBSMsg1List.ADD_OPEACNT,
			// 登録更新年月日時分秒
			EZM0171A010CBSMsg1List.UPD_DTM,
			// 更新オペレータアカウント
			EZM0171A010CBSMsg1List.UPD_OPEACNT,
			// 削除年月日時分秒
			EZM0171A010CBSMsg1List.DEL_DTM,
			// 削除オペレータアカウント
			EZM0171A010CBSMsg1List.DEL_OPEACNT,
			// 無効フラグ
			EZM0171A010CBSMsg1List.MK_FLG,
			// 無効フラグ名称
			EZM0171A010CBSMsg1List.MK_FLG_NM,

		};

		// エラー項目へ割付するデータ項目名
		String[] errMappingDataColums = {
				// ＫＥＹ＿SYSID
				EZM0171A010CBSMsg.KEY_CD_DIV_ERR
		};


		/** 入力情報マップ 生成 */
		HashMap<String, Object> inInfoMap = new HashMap<String, Object>();
		inInfoMap.put( IN_INF_KEY_REQ_PARAM, reqParam );
		inInfoMap.put( IN_INF_KEY_FIXED_TEXT, fixedText );

		/** サービスI/Fマッピング共通情報マップ 生成 */
		HashMap<String, Object> svcIfCmnInfMap = new HashMap<String, Object>();
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_CONV_MAP_NM, EZM0171A010_MAP );
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_DTL_LST_NM, EZM0171A010CBSMsg.EZM0171A010CBSMSG1LIST );
		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_STS_COLUM_NM, EZM0171A010CBSMsg.STATUS );

		/** 返却データ項目名リスト 生成 */
		ArrayList<String> resDtLst = new ArrayList<String>();
		for( int i=0; i < resDataColums.length; i++ ){
			resDtLst.add( resDataColums[i] );
		}

		/** エラー項目へ割付するデータ項目名リスト 生成 */
		ArrayList<String> errDtLst = new ArrayList<String>();
		for( int i=0; i < errMappingDataColums.length; i++ ){
			errDtLst.add( errMappingDataColums[i] );
		}

		/** 下りマッピング実施 */
		return setSelDwnMappingToOne( inInfoMap, svcIfCmnInfMap, resultMap, resDtLst, errDtLst );
	}
//>>> 巻2 ANK-1224-00-00 Y.MORIMOTO MOD END   2012.11.21 ------------------------
// ANK-3885-00-00 ADD START
// ANK-4244-00-00 DEL START
//	/**
//	 * EKK3251B010 棟内空き状況情報一覧照会 上りマッピング.
//	 * <br>
//	 * @param   reqParam   モデルグループ、コントロールマップを含むリクエストパラメータ
//	 * @param   fixedText  ユーザ任意文字列
//	 * @param   condMap    検索条件格納マップ
//	 * @throws  Exception  例外が発生した場合
//	 * @return  サービスIF実行用のマッピング情報
//	 */
//	public HashMap<String, Object> setEKK3251B010( IRequestParameterReadWrite reqParam, String fixedText, HashMap<String, String> condMap ) throws RequestParameterException
//	{
//		/** 入力情報マップ 生成 */
//		HashMap<String, Object> inInfoMap = new HashMap<String, Object>();
//		inInfoMap.put( IN_INF_KEY_REQ_PARAM, reqParam );
//		inInfoMap.put( IN_INF_KEY_FIXED_TEXT, fixedText );
//
//		/** サービスI/Fマッピング共通情報マップ 生成 */
//		HashMap<String, Object> svcIfCmnInfMap = new HashMap<String, Object>();
//		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_CBSMSG, EKK3251B010CBSMsg.class );
//		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_TEMP_ID_KEY, EKK3251B010CBSMsg.TEMPLATEID );
//		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_TEMP_ID_VAL, TEMPLATE_ID_EKK3251B010 );
//		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_FUNC_CD_KEY, EKK3251B010CBSMsg.FUNC_CODE );
//		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_FUNC_CD_VAL, JPCModelConstant.FUNC_CD_1 );
//
//		/** 設定値格納マップ 生成  ※検索条件を格納 */
//		HashMap<String, Object> setDtMap = new HashMap<String, Object>();
//		// condMap.P-ID ⇒ EKK3251B010.ＫＥＹ＿P-ID
//		setDtMap.put( EKK3251B010CBSMsg.KEY_PID, condMap.get( COND_KEY_PID ) );
//
//		/** 上りマッピング実施 */
//		return setUppMapping( inInfoMap, svcIfCmnInfMap, setDtMap );
//	}
//
//	/**
//	 * EKK3251B010 棟内空き状況情報一覧照会 下りマッピング.
//	 * <br>
//	 * @param   reqParam   モデルグループ、コントロールマップを含むリクエストパラメータ
//	 * @param   fixedText  ユーザ任意文字列
//	 * @param   resultMap  サービスIFの結果が格納されているマップ情報
//	 * @throws  Exception  例外が発生した場合
//	 * @return  下りマッピング項目
//	 */
//	public ArrayList<HashMap<String, Object>> getEKK3251B010( IRequestParameterReadWrite reqParam, String fixedText, Map<?, ?> resultMap ) throws Exception
//	{
//		/** 事前準備 */
////		String prefix = "kk3251_";
//		// 返却データ項目名
//		String[] resDataColums =
//		{
//				// 棟内空き状況情報番号
//				EKK3251B010CBSMsg1List.TONAI_AKIJK_INF_NO,
//				// P-ID
//				EKK3251B010CBSMsg1List.PID,
//				// 棟情報
//				EKK3251B010CBSMsg1List.TOU_INFO,
//				// 部屋番号
//				EKK3251B010CBSMsg1List.RM_NO,
//				// ポート空き状況コード
//				EKK3251B010CBSMsg1List.PORT_AKI_JOKYO_CD,
//				// 施工不可フラグ
//				EKK3251B010CBSMsg1List.SEKOU_FFG
//		};
//
//		// エラー項目へ割付するデータ項目名
//		String[] errMappingDataColums =
//		{
//				// ＫＥＹ＿P-ID
//				EKK3251B010CBSMsg.KEY_PID_ERR
//		};
//
//		/** 入力情報マップ 生成 */
//		HashMap<String, Object> inInfoMap = new HashMap<String, Object>();
//		inInfoMap.put( IN_INF_KEY_REQ_PARAM, reqParam );
//		inInfoMap.put( IN_INF_KEY_FIXED_TEXT, fixedText );
//
//		/** サービスI/Fマッピング共通情報マップ 生成 */
//		HashMap<String, Object> svcIfCmnInfMap = new HashMap<String, Object>();
//		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_CONV_MAP_NM, EKK3251B010_MAP );
//		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_DTL_LST_NM, EKK3251B010CBSMsg.EKK3251B010CBSMSG1LIST );
//		svcIfCmnInfMap.put( SVC_IF_CMN_INF_KEY_USE_STS_COLUM_NM, EKK3251B010CBSMsg.STATUS );
//
//		/** 返却データ項目名リスト 生成 */
//		ArrayList<String> resDtLst = new ArrayList<String>();
//		for( int i=0; i < resDataColums.length; i++ )
//		{
//			resDtLst.add( resDataColums[i] );
//		}
//
//		/** エラー項目へ割付するデータ項目名リスト 生成 */
//		ArrayList<String> errDtLst = new ArrayList<String>();
//		for( int i=0; i < errMappingDataColums.length; i++ )
//		{
//			errDtLst.add( errMappingDataColums[i] );
//		}
//
//		/** 下りマッピング実施 */
//		return setSelDwnMappingToLst( inInfoMap, svcIfCmnInfMap, resultMap, resDtLst, errDtLst );
//	}
// ANK-4244-00-00 DEL END
// ANK-3885-00-00 ADD END
	/**
	 * 上りマッピング共通処理[照会系,更新系].
	 * <br>
	 * @param   inInfMap        入力情報マップ
	 * @param   svcIfCmnInfMap  サービスI/Fマッピング共通情報マップ
	 * @param   setDtMap        設定値格納マップ
	 * @throws  Exception       例外が発生した場合
	 * @return  サービスIF実行用のマッピング情報
	 */
	private HashMap<String, Object> setUppMapping( HashMap<String, Object> inInfMap,
													HashMap<String, Object> svcIfCmnInfMap,
													HashMap<String, Object> setDtMap ) throws RequestParameterException {

		/** 事前処理 */
		// リクエストパラメータを取得
		IRequestParameterReadWrite reqParam = (IRequestParameterReadWrite)inInfMap.get( IN_INF_KEY_REQ_PARAM );

		// 使用するCBSMsgクラスを取得
		Class<?> cbsMsg = (Class<?>)svcIfCmnInfMap.get( SVC_IF_CMN_INF_KEY_USE_CBSMSG );

		// 使用するテンプレートIDを取得
		String templateIdKey = (String)svcIfCmnInfMap.get( SVC_IF_CMN_INF_KEY_USE_TEMP_ID_KEY );
		String templateIdVal = (String)svcIfCmnInfMap.get( SVC_IF_CMN_INF_KEY_USE_TEMP_ID_VAL );

		// 使用する機能コードを取得
		String funcCdKey = (String)svcIfCmnInfMap.get( SVC_IF_CMN_INF_KEY_USE_FUNC_CD_KEY );
		String funcCdVal = (String)svcIfCmnInfMap.get( SVC_IF_CMN_INF_KEY_USE_FUNC_CD_VAL );


		/** パラメータマップ設定 */
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		// 電文ID
		paramMap.put( JCMConstants.TRANZACTION_ID_KEY, reqParam.getTelegramID() );
		// ユースケースID
		paramMap.put( JCMConstants.USECASE_ID_KEY, reqParam.getUsecaseID() );
		// オペレーションID
		paramMap.put( JCMConstants.OPERATION_ID_KEY, reqParam.getOperationID() );
		// サービス呼出し区分
		paramMap.put( JCMConstants.CALL_TYPE_KEY, reqParam.getCallType() );
		// 依頼先ホスト名
		paramMap.put( JCMConstants.CLIENT_HOST_NAME_KEY, reqParam.getControlMapData( SCControlMapKeys.REQ_HOSTNAME ) );
		// 依頼元IPアドレス
		paramMap.put( JCMConstants.CLIENT_IP_ADDRESS_KEY, reqParam.getControlMapData( SCControlMapKeys.REQ_HOSTIP ) );
		// 依頼元画面ID
		paramMap.put( JCMConstants.INVOKE_GAMEN_ID_KEY, reqParam.getControlMapData( SCControlMapKeys.REQ_VIEWID ) );
		// オペレータID
		paramMap.put( JCMConstants.OPERATOR_ID_KEY, reqParam.getControlMapData( SCControlMapKeys.OPERATOR_ID ) );

		/** テンプレート設定 */
		CAANMsg template = new CAANMsg( cbsMsg.getName() );
		// オペレータID
		template.set( JCMConstants.OPERATOR_ID_KEY, reqParam.getControlMapData( SCControlMapKeys.OPERATOR_ID ) );
		// 運用日付
		template.set( JCMConstants.OPERATE_DATE_KEY, reqParam.getControlMapData( SCControlMapKeys.OPE_DATE ) );
		// 運用日時
		template.set( JCMConstants.OPERATE_DATETIME_KEY, reqParam.getControlMapData( SCControlMapKeys.OPE_TIME ) );
		// テンプレートID
		template.set( templateIdKey, templateIdVal );
		// 機能コード
		template.set( funcCdKey, funcCdVal );


		/** 上りマッピング */
		Iterator<Map.Entry<String, Object>> setDtMapIte = setDtMap.entrySet().iterator();
		while( setDtMapIte.hasNext() ){
			Map.Entry<String, Object> entry = (Map.Entry<String, Object>)setDtMapIte.next();

			/** nullチェック */
			if( entry.getValue() == null ){
				template.setNull( entry.getKey() );
				continue;
			}

			/** 単項目チェック */
			if( entry.getValue() instanceof String ) {
				String val = (String)entry.getValue();

				if( StringUtils.isEmpty( val )){
					template.setNull( entry.getKey() );
				} else {
					template.set( entry.getKey(), val );
				}
			}

			/** 一覧項目チェック */
			if( entry.getValue() instanceof ArrayList ){

				/** テンプレートへの追加する為のchildテンプレートリストの生成 */
				ArrayList<CAANMsg> child_template_lst = new ArrayList<CAANMsg>();

				/** 使用する明細リスト名を取得 */
				String dtlLstNm = (String)entry.getKey();

				/** 設定項目リストの格納域を取得 */
				ArrayList<HashMap<String, Object>> listDt = (ArrayList<HashMap<String, Object>>)entry.getValue();

				/** 設定項目リストの件数分、繰り返し */
				Iterator<HashMap<String, Object>> listDtIte = listDt.iterator();
				while(listDtIte.hasNext()){

					HashMap<String, Object> listDtMap = listDtIte.next();

					/** 使用するCBSMsgクラスを取得 */
					Class<?> childCbsMsg = (Class<?>)listDtMap.get( SVC_IF_CMN_INF_KEY_USE_CBSMSG );

					/** テンプレートへの追加する為のchildテンプレート生成 */
					CAANMsg childTemplate = new CAANMsg(childCbsMsg.getName());

					Iterator<Map.Entry<String, Object>> childEntryIte = listDtMap.entrySet().iterator();
					while( childEntryIte.hasNext() ){

						Map.Entry<String, Object> childEntry = (Map.Entry<String, Object>)childEntryIte.next();

						/** nullチェック */
						if( childEntry.getValue() == null ){
							childTemplate.setNull( childEntry.getKey() );
							continue;
						}

						/** 単項目チェック */
						if( childEntry.getValue() instanceof String ) {
							String val = (String)childEntry.getValue();

							if( StringUtils.isEmpty( val )){
								childTemplate.setNull( childEntry.getKey() );
							} else {
								childTemplate.set( childEntry.getKey(), val );
							}
						}
					}

					/** childテンプレートをchildテンプレートリストへ追加 */
					child_template_lst.add( childTemplate );
				}

				/** 一覧項目をテンプレートに追加 */
				if( child_template_lst.size() > 0 ){
					template.set( dtlLstNm, child_template_lst.toArray( new CAANMsg[0] ));
				}
			}
		}

		/** パラメータマップとテンプレートのマッピング */
		CAANMsg[] templates = new CAANMsg[1];
		templates[0] = template;
		paramMap.put( JCMConstants.TEMPLATE_LIST_KEY, templates );

		return paramMap;
	}

	/**
	 * 下りマッピング処理[照会系(一覧照会)].
	 * <br>
	 * @param   inInfMap        入力情報マップ
	 * @param   svcIfCmnInfMap  サービスI/Fマッピング共通情報マップ
	 * @param   svcResMap       サービスIFの結果が格納されているマップ情報
	 * @param   resDtLst        返却データ項目名リスト
	 * @param   errDtLst        エラー項目へ割付するデータ項目名リスト
	 * @throws  Exception       例外が発生した場合
	 * @return  下りマッピング項目
	 */
	private ArrayList<HashMap<String, Object>> setSelDwnMappingToLst( HashMap<String, Object> inInfMap,
																	   HashMap<String, Object> svcIfCmnInfMap,
																	   Map<?, ?> svcResMap,
																	   ArrayList<String> resDtLst, 
																	   ArrayList<String> errDtLst ) throws Exception {

		/** 事前処理 */
		// リクエストパラメータを取得
		IRequestParameterReadWrite reqParam = (IRequestParameterReadWrite)inInfMap.get( IN_INF_KEY_REQ_PARAM );

		// ユーザ任意文字列を取得
		String fixedText = (String)inInfMap.get( IN_INF_KEY_FIXED_TEXT );

		// 使用するparam <---> サービスI/F 変換マップ名を取得
		String convMapNm = (String)svcIfCmnInfMap.get( SVC_IF_CMN_INF_KEY_USE_CONV_MAP_NM );

		// 使用する明細リスト名を取得
		String dtlLstNm = (String)svcIfCmnInfMap.get( SVC_IF_CMN_INF_KEY_USE_DTL_LST_NM );

		// 使用するステータス項目名を取得
		String stsColumNm = (String)svcIfCmnInfMap.get( SVC_IF_CMN_INF_KEY_USE_STS_COLUM_NM );


		/** サービスIFの戻り値 */
		CAANMsg[] templates = null;
		CAANMsg template = null;
		if ( svcResMap.containsKey( JCMConstants.TEMPLATE_LIST_KEY ) ) {
			templates = (CAANMsg[])( svcResMap.get( JCMConstants.TEMPLATE_LIST_KEY ) );
			template = templates[0];
		}

		/** リクエストパラメータ作業領域 */
		Map<Object, Object> paramWorkMap = reqParam.getMappingWorkArea();
		if ( paramWorkMap == null ) {
			paramWorkMap = new HashMap<Object, Object>();
			reqParam.setMappingWorkArea( paramWorkMap );
		}

		/** マップ項目の生成 */
		HashMap<Object, Object> parent_map = (HashMap<Object, Object>)( paramWorkMap.get( convMapNm ) );
		if ( parent_map == null ) {
			parent_map = new HashMap<Object, Object>();
			paramWorkMap.put( convMapNm, parent_map );
		}

		CAANMsg[] templateArray = null;
		ArrayList<HashMap<String, Object>> parent_map_list = null;

		/** 下りマッピング */
		templateArray = template.getCAANMsgList( dtlLstNm );
		parent_map_list = (ArrayList<HashMap<String, Object>>)( parent_map.get( dtlLstNm ) );
		if ( parent_map_list == null ) {
			parent_map_list = new ArrayList<HashMap<String, Object>>();
		}
		if ( templateArray != null ) {
			// 明細
			for ( int i = 0; i < templateArray.length; i ++ ) {
				if ( i >= parent_map_list.size() ) {
					parent_map_list.add( new HashMap<String, Object>() );
				}
				CAANMsg child_template = templateArray[i];
				HashMap<String, Object> child_map = (HashMap<String, Object>)( parent_map_list.get(i) );

				/** 返却データ項目を取得 */
				Iterator<String> resDtLstIte = resDtLst.iterator();
				while( resDtLstIte.hasNext() ){
					String resDt = resDtLstIte.next();
					if ( child_template.isNull( resDt ) ) {
						child_map.put( resDt, JKKAdchgConstCC.STR_EMPTY );
					} else {
						child_map.put( resDt, child_template.getString( resDt ) );
					}
				}
			}
		}

		/** リターンコード・メッセージの設定 */
		Object returnCode = svcResMap.get( JCMConstants.RET_CD_INT_KEY );
		scResultStat(reqParam, template, Integer.parseInt( returnCode.toString() ), stsColumNm );

		/** エラーマッピング */
		HashMap<Object, Object> errMap = (HashMap<Object, Object>)( reqParam.getData( fixedText ) );

		// エラー項目へ割付するデータ項目名リストに設定されている全情報を
		// マッピングする
		Iterator<String> errDtLstIte = errDtLst.iterator();
		while( errDtLstIte.hasNext() )
		{
			String errDt = errDtLstIte.next();
			if ( ( !template.isNull( errDt ) ) && ( !errMap.containsKey( errDt ) ) ) {
				errMap.put( errDt, template.getString( errDt ) );
			}
		}

		/** エラー情報の適用 */
		ArrayList<Object> errMapList = (ArrayList<Object>)( reqParam.getControlMapData( SCControlMapKeys.ERROR_INFO ) );
		if ( errMapList == null ) {
			errMapList = new ArrayList<Object>();
		}
		reqParam.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo( svcResMap, errMapList ) );

		return parent_map_list;
	}

	/**
	 * 下りマッピング処理[照会系(一意照会)].
	 * <br>
	 * @param   inInfMap        入力情報マップ
	 * @param   svcIfCmnInfMap  サービスI/Fマッピング共通情報マップ
	 * @param   svcResMap       サービスIFの結果が格納されているマップ情報
	 * @param   resDtLst        返却データ項目名リスト
	 * @param   errDtLst        エラー項目へ割付するデータ項目名リスト
	 * @throws  Exception       例外が発生した場合
	 * @return  下りマッピング項目
	 */
	private HashMap<String, Object> setSelDwnMappingToOne( HashMap<String, Object> inInfMap,
															HashMap<String, Object> svcIfCmnInfMap,
															Map<?, ?> svcResMap,
															ArrayList<String> resDtLst, 
															ArrayList<String> errDtLst ) throws Exception {

		/** 下りマッピング処理[照会系(一覧照会)]を内部的に呼出し */
		ArrayList<HashMap<String, Object>> dwnMappingLst = setSelDwnMappingToLst( inInfMap, svcIfCmnInfMap, svcResMap, resDtLst, errDtLst );

		/** 先頭のデータのみを呼び元へ返却 */
		if ( (dwnMappingLst == null) || (dwnMappingLst.isEmpty()) ) {
			return new HashMap<String, Object>();
		}

		return (HashMap<String, Object>)( dwnMappingLst.get(0) );
	}

	/**
	 * 下りマッピング処理[更新系].
	 * <br>
	 * @param   inInfMap        入力情報マップ
	 * @param   svcIfCmnInfMap  サービスI/Fマッピング共通情報マップ
	 * @param   svcResMap       サービスIFの結果が格納されているマップ情報
	 * @param   resDtMap        返却データ項目名格納マップ
	 * @param   errDtLst        エラー項目へ割付するデータ項目名リスト
	 * @throws  Exception       例外が発生した場合
	 * @return  下りマッピング項目
	 */
	private HashMap<String, Object> setUpdDwnMapping( HashMap<String, Object> inInfMap,
													   HashMap<String, Object> svcIfCmnInfMap,
													   Map<?, ?> svcResMap,
													   HashMap<String, ArrayList<String>> resDtMap, 
													   ArrayList<String> errDtLst ) throws Exception {

		/** 事前処理 */
		// リクエストパラメータを取得
		IRequestParameterReadWrite reqParam = (IRequestParameterReadWrite)inInfMap.get( IN_INF_KEY_REQ_PARAM );

		// ユーザ任意文字列を取得
		String fixedText = (String)inInfMap.get( IN_INF_KEY_FIXED_TEXT );

		// 使用するparam <---> サービスI/F 変換マップ名を取得
		String convMapNm = (String)svcIfCmnInfMap.get( SVC_IF_CMN_INF_KEY_USE_CONV_MAP_NM );

		// 使用するステータス項目名を取得
		String stsColumNm = (String)svcIfCmnInfMap.get( SVC_IF_CMN_INF_KEY_USE_STS_COLUM_NM );


		/** サービスIFの戻り値 */
		CAANMsg[] templates = null;
		CAANMsg template = null;
		if ( svcResMap.containsKey( JCMConstants.TEMPLATE_LIST_KEY ) ) {
			templates = (CAANMsg[])( svcResMap.get( JCMConstants.TEMPLATE_LIST_KEY ) );
			template = templates[0];
		}

		/** リクエストパラメータ作業領域 */
		Map<Object, Object> paramWorkMap = reqParam.getMappingWorkArea();
		if ( paramWorkMap == null ) {
			paramWorkMap = new HashMap<Object, Object>();
			reqParam.setMappingWorkArea( paramWorkMap );
		}

		/** マップ項目の生成 */
		HashMap<String, Object> parent_map = (HashMap<String, Object>)( paramWorkMap.get( convMapNm ) );
		if ( parent_map == null ) {
			parent_map = new HashMap<String, Object>();
			paramWorkMap.put( convMapNm, parent_map );
		}


		/** 下りマッピング */
		Iterator<Map.Entry<String, ArrayList<String>>> resDtMapIte = resDtMap.entrySet().iterator();
		while( resDtMapIte.hasNext() ){

			Map.Entry<String, ArrayList<String>> cur_resDt = resDtMapIte.next();

			/** 非リスト形式の返却データ項目かをチェック */
			if( RES_DT_KEY_PRIME_COLS.equals( (String)cur_resDt.getKey() ) ){

				/** 非リスト形式の返却データ項目に対するデータマッピング */
				Iterator<String> primeColsIte = cur_resDt.getValue().iterator();
				while( primeColsIte.hasNext() ){

					String primeColNm = primeColsIte.next();

					if( template.isNull( (String)primeColNm ) ) {
						parent_map.put( (String)primeColNm, JKKAdchgConstCC.STR_EMPTY );
					} else {
						parent_map.put( (String)primeColNm, template.getString( (String)primeColNm ) );
					}
				}

			} else {

				/** リスト形式の返却データ項目に対するデータマッピング */
				// リスト名称を取得
				String dtlLstNm = cur_resDt.getKey();

				CAANMsg[] templateArray = template.getCAANMsgList( dtlLstNm );
				ArrayList<HashMap<String, Object>> parent_map_list = (ArrayList<HashMap<String, Object>>)( parent_map.get( dtlLstNm ) );

				if ( parent_map_list == null ) {
					parent_map_list = new ArrayList<HashMap<String, Object>>();
				}
				if ( templateArray != null ) {
					// 明細
					for ( int i = 0; i < templateArray.length; i ++ ) {
						if ( i >= parent_map_list.size() ) {
							parent_map_list.add( new HashMap<String, Object>() );
						}

						CAANMsg child_template = templateArray[i];
						HashMap<String, Object> child_map = (HashMap<String, Object>)( parent_map_list.get(i) );

						/** 返却データ項目を取得 */
						Iterator<String> listColsIte = cur_resDt.getValue().iterator();
						while( listColsIte.hasNext() ){

							String listColNm = listColsIte.next();

							if ( child_template.isNull( listColNm ) ) {
								child_map.put( listColNm, JKKAdchgConstCC.STR_EMPTY );
							} else {
								child_map.put( listColNm, child_template.getString( listColNm ) );
							}
							parent_map_list.set( i, child_map );
						}
					}
					parent_map.put( dtlLstNm, parent_map_list );
				}
			}
		}

		/** リターンコード・メッセージの設定 */
		Object returnCode = svcResMap.get( JCMConstants.RET_CD_INT_KEY );
		scResultStat(reqParam, template, Integer.parseInt( returnCode.toString() ), stsColumNm );

		/** エラーマッピング */
		HashMap<Object, Object> errMap = (HashMap<Object, Object>)( reqParam.getData( fixedText ) );

		// エラー項目へ割付するデータ項目名リストに設定されている全情報を
		// マッピングする
		Iterator<String> errDtLstIte = errDtLst.iterator();
		while( errDtLstIte.hasNext() )
		{
			String errDt = errDtLstIte.next();
			if ( ( !template.isNull( errDt ) ) && ( !errMap.containsKey( errDt ) ) ) {
				errMap.put( errDt, template.getString( errDt ) );
			}
		}

		/** エラー情報の適用 */
		ArrayList<Object> errMapList = (ArrayList<Object>)( reqParam.getControlMapData( SCControlMapKeys.ERROR_INFO ) );
		if ( errMapList == null ) {
			errMapList = new ArrayList<Object>();
		}
		reqParam.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo( svcResMap, errMapList ) );

		return parent_map;
	}

	/**
	 * リターンコード・メッセージの設定.
	 * <br>
	 * @param   reqParam   モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   template   テンプレート情報
	 * @param   returnCd   リターンコード
	 * @param   statusKey  ステータス取得キー
	 * @throws  Exception  例外が発生した場合
	 * @return  リクエストパラメータ(param)に戻り値を追加して返却する
	 */
	private IRequestParameterReadWrite scResultStat( IRequestParameterReadWrite reqParam, CAANMsg template, int returnCode, String statusKey ) throws RequestParameterException {

		/** リターンコード・メッセージの設定 */
		int templateStatus = template.getInt( statusKey );
		if ( returnCode != 0 ) {
			templateStatus = RTN_CODE_9000;
		}
		if ( JCMAPLConstMgr.getString( RETURN_MSG_.concat( String.format( RETURN_MSG_FORMAT, templateStatus ) ) ) == null ) {
			templateStatus = RTN_CODE_0000;
		}

		int bpStatus = RTN_CODE_0000;
		Object obj = reqParam.getControlMapData( SCControlMapKeys.RETURN_CODE );
		if ( obj == null ) {
			bpStatus = RTN_CODE_MINUS;
		} else {
			bpStatus = Integer.parseInt(reqParam.getControlMapData( SCControlMapKeys.RETURN_CODE ).toString() );
		}

		if ( templateStatus > bpStatus ) {
			String returnCdStr = String.format( RETURN_MSG_FORMAT, templateStatus );
			String returnMsgString = JCMAPLConstMgr.getString( RETURN_MSG_.concat( returnCdStr ) );
			reqParam.setControlMapData( SCControlMapKeys.RETURN_CODE, returnCdStr );
			reqParam.setControlMapData( SCControlMapKeys.RETURN_MESSAGE, returnMsgString );
		}

		return reqParam;
	}

	/**
	 * 一時保存論理削除より返却された存在チェックエラーを消去する。.
	 * <br>
	 * @param   resultMap     サービスIFの結果が格納されているマップ情報
	 * @param   errDtLst   エラー項目へ割付するデータ項目名リスト
	 * @return  リクエストパラメータ(param)に戻り値を追加して返却する
	 */
	private Map<?, ?> ctrlErrInfSysidChk( Map<?, ?> resultMap, ArrayList<String> errDtLst ) throws RequestParameterException {

		/** サービスIFの戻り値 */
		CAANMsg[] templates = null;
		CAANMsg template = null;
		Map<String, Object> resMap = (Map<String, Object>)resultMap;
		if ( resultMap.containsKey( JCMConstants.TEMPLATE_LIST_KEY ) )
		{
			templates = (CAANMsg[])( resultMap.get( JCMConstants.TEMPLATE_LIST_KEY ) );
			template = templates[0];
		
			// SYSID_ERRを取得
			String sysidErr = template.getString( errDtLst.get(0) );

			String errInf;
			boolean errChk = true;
			
			// エラーリストのチェック(SYSID_ERR以外)
			for(int i = 1; i < errDtLst.size(); i++)
			{
				errInf = template.getString( errDtLst.get(i) );
				errChk = isNull( errInf );
			}
			// SYSID_ERRが必須チェックの場合
			if( sysidErr.equals( JKKAdchgConstCC.SYSID_EA ) && errChk )
			{
				template.set( JKKAdchgConstCC.SYSID_EA, "" );
				template.set( JCMConstants.STATUS_INT_KEY, RTN_CODE_0000 );
				resMap.put( JCMConstants.RET_CD_INT_KEY, RTN_CODE_0000 );
			}
		}
		
		return resultMap;
	}

	/**
	 * サービスコンポーネント実行結果確認.
	 * <br>
	 * @param   reqParam   モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @throws  Exception  例外が発生した場合
	 */
	public void scResultCheck( IRequestParameterReadWrite reqParam ) throws CCException, RequestParameterException {
		int scReturnCode = Integer.parseInt( reqParam.getControlMapData( SCControlMapKeys.RETURN_CODE ).toString() );

		// サービスコンポーネントの実行結果に単項目以上のエラーがある場合、例外とする
		if ( scReturnCode >= JPCModelConstant.SINGLEDATA_ERR ) {
			throw new CCException( JKKAdchgConstCC.ERR_STR_RESULT_CD, new Exception() );
		}
	}
	
	/**
	 * オブジェクトに値が設定されているか判定します。
	 * <br>
	 * @param arg0 判定するオブジェクト
	 * @return オブジェクトに値が設定されていない場合はtrue
	 */
	private boolean isNull(Object arg0) 
	{
		if (arg0 == null) 
		{
			return true;
		}

		return 0 == arg0.toString().length();
	}
}
