/********************************************************************
 *  All Rights reserved,Copyright (c) K-Opticom
 ********************************************************************
 *＜プログラム内容＞
 *  システム名      ：eo顧客基幹システム
 *  モジュール名    ：住所変更・開始日補正コモンコンポーネントマッピングクラス
 *  ソースファイル名：JKKAdChgStaYmdModMapperCC.java
 *  作成者          ：FJ
 *  日付            ：2014年04月15日
 *＜機能概要＞
 *  住所変更・開始日補正コモンコンポーネント部品におけるマッピングクラス
 *＜修正履歴＞
 *  バージョン  修正日      修正者      修正内容
 *  v8.00.00    2014/04/15  FJ）寺田    新規作成(ANK-1683-00-00)
 ********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import com.fujitsu.futurity.bp.custom.constant.JKKAdChgStaYmdModConstCC;
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.*;


/**
 * 住所変更・開始日補正コモンコンポーネントマッピングクラス.
 * <br>
 * @author FJ
 */
public class JKKAdChgStaYmdModMapperCC {


	// ◆◆◆ リターンコード ◆◆◆
	/** リターンコード．-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;

	// ◆◆◆ リターンメッセージ ◆◆◆
	/** リターンメッセージ．キー定数 **/
	private static final String RETURN_MSG_ = "RETURN_MESSAGE_";
	/** リターンメッセージ．フォーマット **/
	private static final String RETURN_MSG_FORMAT = "%1$04d";

	// ◆◆◆ エラーメッセージ ◆◆◆
	/** エラーメッセージ．実行結果エラーあり */
	private static final String ERR_STR_RESULT_CD = "サービスコンポーネントの実行結果にエラーがあります";

	// ◆◆◆ S-IF機能コード ◆◆◆
	/** S-IF機能コード．キー定数(テンプレート) **/
	private static final String TEMPLATE_ID = "templateID";
	/** S-IF機能コード．キー定数 **/
	private static final String FUNC_CODE = "func_code";
	/** S-IF機能コード(照会系)．PK指定 **/
	private static final String FUNC_CD_SEL_PK = "1";
	/** S-IF機能コード(照会系)．カレント **/
	private static final String FUNC_CD_SEL_CURRENT = "2";

	// ◆◆◆ テンプレートID、マッピングID ◆◆◆
	/** ECK0011A010 お客様一意照会 **/
	private static final String ECK0011A010 = "ECK0011A010";
	public static final String ECK0011A010_MAP = "ck0011_a010_map";

	/** EKK0081A010 サービス契約一意照会 **/
	private static final String EKK0081A010 = "EKK0081A010";
	public static final String EKK0081A010_MAP = "kk0081_a010_map";

	/** EKK0011D020 申込内容承認登録 **/
	private static final String EKK0011D020 = "EKK0011D020";
	public static final String EKK0011D020_MAP = "kk0011_d020_map";

	/** EKK0021C060 申込明細照査・後続業務依頼 **/
	private static final String EKK0021C060 = "EKK0021C060";
	public static final String EKK0021C060_MAP = "kk0021_c060_map";

	/** EKK0081C320 サービス契約サービス開始日変更２ **/
	private static final String EKK0081C320 = "EKK0081C320";
	public static final String EKK0081C320_MAP = "kk0081_c320_map";

	/** EKK1091D010 進捗登録 **/
	private static final String EKK1091D010 = "EKK1091D010";
	public static final String EKK1091D010_MAP = "kk1091_d010_map";

	
	/**
	 * リターンコード・メッセージの設定.
	 * <br>
	 * @param   param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   template   テンプレート情報
	 * @param   returnCd   リターンコード
	 * @param   statusKey  ステータス取得キー
	 * @throws  Exception  例外が発生した場合
	 * @return  リクエストパラメータ(param)に戻り値を追加して返却する
	 */
	private IRequestParameterReadWrite scResultStat( IRequestParameterReadWrite param, 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 = param.getControlMapData( SCControlMapKeys.RETURN_CODE );
		if ( obj == null ) {
			bpStatus = RTN_CODE_MINUS;
		} else {
			bpStatus = Integer.parseInt(param.getControlMapData( SCControlMapKeys.RETURN_CODE ).toString() );
		}

		if ( templateStatus > bpStatus ) {
			String returnCdStr = String.format( RETURN_MSG_FORMAT, templateStatus );
			String returnMsgString = JCMAPLConstMgr.getString( RETURN_MSG_.concat( returnCdStr ) );
			param.setControlMapData( SCControlMapKeys.RETURN_CODE, returnCdStr );
			param.setControlMapData( SCControlMapKeys.RETURN_MESSAGE, returnMsgString );
		}

		return param;
	}

	/**
	 * サービスコンポーネント実行結果確認.
	 * <br>
	 * @param   handle     セッションマネージャなどを持ったハンドル情報
	 * @throws  Exception  例外が発生した場合
	 */
	public void scResultCheck( IRequestParameterReadWrite param ) throws CCException, RequestParameterException {
		int scReturnCode = Integer.parseInt(param.getControlMapData( SCControlMapKeys.RETURN_CODE).toString() );

		// サービスコンポーネントの実行結果に単項目以上のエラーがある場合、例外とする
		if ( scReturnCode >= JPCModelConstant.SINGLEDATA_ERR ) {
			throw new CCException( ERR_STR_RESULT_CD, new Exception() );
		}
	}

	/**
	 * パラメータマップ設定.
	 * <br>
	 * @param   param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @throws  Exception  例外が発生した場合
	 */
	public HashMap<String, Object> createParamMap( IRequestParameterReadWrite param ) throws RequestParameterException {
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// 電文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 ) );

		return paramMap;
	}

	/**
	 * テンプレート設定.
	 * <br>
	 * @param   param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   name       テンプレート名
	 * @param   id         テンプレートID
	 * @param   funcCode   機能コード
	 * @throws  Exception  例外が発生した場合
	 * @return  設定済みテンプレート情報
	 */
	private CAANMsg createTemplate( IRequestParameterReadWrite param, String name, String id, String funcCode ) throws RequestParameterException {
		CAANMsg template = new CAANMsg( name );

		// オペレータID
		template.set( JCMConstants.OPERATOR_ID_KEY, param.getControlMapData( SCControlMapKeys.OPERATOR_ID ) );
		// 運用日付
		template.set( JCMConstants.OPERATE_DATE_KEY, param.getControlMapData( SCControlMapKeys.OPE_DATE ) );
		// 運用日時
		template.set( JCMConstants.OPERATE_DATETIME_KEY, param.getControlMapData( SCControlMapKeys.OPE_TIME ) );
		// テンプレートID
		template.set( TEMPLATE_ID, id );
		// 機能コード
		template.set( FUNC_CODE, funcCode );

		return template;
	}

	/**
	 * 単一テンプレートのマッピング.
	 * <br>
	 * @param   template   単一テンプレート情報
	 * @return  テンプレートリスト
	 */
	private CAANMsg[] singleTemplateMapping( CAANMsg template ) {
		CAANMsg[] templates = new CAANMsg[1];
		templates[0] = template;

		return templates;
	}

	/**
	 * 単項目の上りマッピング.
	 * <br>
	 * @param  template  テンプレート情報
	 * @param  dataMap   マップ情報
	 * @param  targetNm  マッピング対象項目
	 */
	@SuppressWarnings( "unchecked" )
	private void updMapping( CAANMsg template, HashMap dataMap, String targetNm ) {
		if ( dataMap != null ) {
			if ( dataMap.containsKey( targetNm ) ) {
				if ( dataMap.get( targetNm ) != null ) {
					if ( StringUtils.isEmpty( dataMap.get( targetNm ).toString() ) ) {
						template.setNull( targetNm );
					} else {
						template.set( targetNm, dataMap.get( targetNm ).toString() );
					}
				} else {
					template.setNull( targetNm );
				}
			} else {
				template.setNull( targetNm );
			}
		} else {
			template.setNull( targetNm );
		}
	}

	/**
	 * 単項目の下りマッピング.
	 * <br>
	 * @param  template  テンプレート情報
	 * @param  dataMap   マップ情報
	 * @param  targetNm  マッピング対象項目
	 */
	@SuppressWarnings( "unchecked" )
	private void dwnMapping( CAANMsg template, HashMap dataMap, String targetNm ) {
		if ( template.isNull( targetNm ) ) {
			dataMap.put( targetNm, "" );
		} else {
			dataMap.put( targetNm, template.getString( targetNm ) );
		}
	}

	/**
	 * 単項目のエラーマッピング.
	 * <br>
	 * @param  template  テンプレート情報
	 * @param  dataMap   マップ情報
	 * @param  targetNm  マッピング対象項目
	 */
	@SuppressWarnings( "unchecked" )
	private void errMapping( CAANMsg template, HashMap dataMap, String targetNm ) {
		if ( ( !template.isNull( targetNm ) ) && ( !dataMap.containsKey( targetNm ) ) ) {
			dataMap.put( targetNm, template.getString( targetNm ) );
		}
	}

	/**
	 * 下りマッピング内容のパラメータ返却.
	 * <br>
	 * @param  param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param  paramNm    パラメータマッピング対象項目
	 * @param  putString  設定内容
	 * @param  fixedText  ユーザ任意文字列
	 */
	@SuppressWarnings( "unchecked" )
	private void putParam( IRequestParameterReadWrite param, String paramNm, String putString, String fixedText ) throws RequestParameterException {
		HashMap updMap = (HashMap)( param.getData( fixedText ) );

		if ( updMap != null ) {
			updMap.put( paramNm, putString );
		}
	}

	/**
	 *【上りマッピング】ECK0011A010 お客様一意照会.
	 * <br>
	 * @param   param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   fixedText  ユーザ任意文字列
	 * @throws  Exception  例外が発生した場合
	 * @return  サービスIF実行用のマッピング情報
	 */
	@SuppressWarnings( "unchecked" )
	public HashMap<String, Object> setECK0011A010( IRequestParameterReadWrite param, String fixedText ) throws RequestParameterException {

		HashMap<String, Object> paramMap = createParamMap( param );
		HashMap updMap = (HashMap)( param.getData( fixedText ) );

		/** テンプレート **/
		CAANMsg template = null;
		if ( updMap.containsKey( JKKAdChgStaYmdModConstCC.SYSID_GENE_ADD_DTM ) ) {
			template = createTemplate( param, ECK0011A010CBSMsg.class.getName(), ECK0011A010, FUNC_CD_SEL_PK );
		} else {
			template = createTemplate( param, ECK0011A010CBSMsg.class.getName(), ECK0011A010, FUNC_CD_SEL_CURRENT );
		}

		/** 上りマッピング **/
		// param.SYSID ⇒ ECK0011A010.ＫＥＹ＿SYSID
		if ( updMap.containsKey( JKKAdChgStaYmdModConstCC.SYSID ) ) {
			template.set( ECK0011A010CBSMsg.KEY_SYSID, updMap.get( JKKAdChgStaYmdModConstCC.SYSID ).toString() );
		} else {
			template.setNull( ECK0011A010CBSMsg.KEY_SYSID );
		}
		// param.SYSID_世代登録年月日時分秒 ⇒ ECK0011A010.ＫＥＹ＿世代登録年月日時分秒
		if ( updMap.containsKey( JKKAdChgStaYmdModConstCC.SYSID_GENE_ADD_DTM ) ) {
			template.set( ECK0011A010CBSMsg.KEY_GENE_ADD_DTM, updMap.get( JKKAdChgStaYmdModConstCC.SYSID_GENE_ADD_DTM ).toString() );
		} else {
			template.setNull( ECK0011A010CBSMsg.KEY_GENE_ADD_DTM );
		}
		// param.SYSID_予約適用年月日 ⇒ ECK0011A010.ＫＥＹ＿予約適用年月日
		if ( updMap.containsKey( JKKAdChgStaYmdModConstCC.SYSID_RSV_APLY_YMD ) ) {
			template.set( ECK0011A010CBSMsg.KEY_RSV_APLY_YMD, updMap.get( JKKAdChgStaYmdModConstCC.SYSID_RSV_APLY_YMD ).toString() );
		} else {
			template.set( ECK0011A010CBSMsg.KEY_RSV_APLY_YMD, JCCBPCommon.getOpeDate(null) );
		}

		/** パラメータとテンプレートのマッピング **/
		paramMap.put( JCMConstants.TEMPLATE_LIST_KEY, singleTemplateMapping( template ) );

		return paramMap;
	}

	/**
	 *【下りマッピング】ECK0011A010 お客様一意照会.
	 * <br>
	 * @param   param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   fixedText  ユーザ任意文字列
	 * @param   resultMap  サービスIFの結果が格納されているマップ情報
	 * @throws  Exception  例外が発生した場合
	 * @return  下りマッピング項目
	 */
	@SuppressWarnings( "unchecked" )
	public HashMap getECK0011A010( IRequestParameterReadWrite param, String fixedText, Map<?, ?> resultMap ) throws Exception {

		/** S-IFの戻り値 **/
		CAANMsg[] templates = null;
		CAANMsg template = null;
		if ( resultMap.containsKey( JCMConstants.TEMPLATE_LIST_KEY ) ) {
			templates = (CAANMsg[])( resultMap.get( JCMConstants.TEMPLATE_LIST_KEY ) );
			template = templates[0];
		}

		/** リクエストパラメータ作業領域 **/
		Map paramWorkMap = param.getMappingWorkArea();
		if ( paramWorkMap == null ) {
			paramWorkMap = new HashMap();
			param.setMappingWorkArea( paramWorkMap );
		}

		/** マップ項目 **/
		HashMap ck0011_a010_map = (HashMap)( paramWorkMap.get( ECK0011A010_MAP ) );
		if ( ck0011_a010_map == null ) {
			ck0011_a010_map = new HashMap();
			paramWorkMap.put( ECK0011A010_MAP, ck0011_a010_map );
		}

		CAANMsg[] templateArray = null;
		ArrayList ck0011_a010_map_list = null;

		/** 下りマッピング **/
		templateArray = template.getCAANMsgList( ECK0011A010CBSMsg.ECK0011A010CBSMSG1LIST );
		ck0011_a010_map_list = (ArrayList)( ck0011_a010_map.get( ECK0011A010CBSMsg.ECK0011A010CBSMSG1LIST ) );
		if ( ck0011_a010_map_list == null ) {
			ck0011_a010_map_list = new ArrayList();
		}
		if ( templateArray != null ) {
			for ( int i = 0; i < templateArray.length; i ++ ) {
				if ( i >= ck0011_a010_map_list.size() ) {
					ck0011_a010_map_list.add( new HashMap() );
				}
				CAANMsg child_template = templateArray[i];
				HashMap child_ck0011_a010_map = (HashMap)( ck0011_a010_map_list.get(i) );

				// SYSID
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.SYSID );
				// 世代登録年月日時分秒
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.GENE_ADD_DTM );
				// お客様ステータス
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CUST_STAT );
				// お客様ステータス名称
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CUST_STAT_NM );
				// 契約者タイプコード
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.KEISHA_TYPE_CD );
				// 契約者タイプコード名称
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.KEISHA_TYPE_CD_NM );
				// お客様名
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CUST_NM );
				// お客様カナ名
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CUST_KANA );
				// お客様性別コード
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CUST_SEX_CD );
				// お客様性別コード名称
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CUST_SEX_CD_NM );
				// お客様生年月日
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CUST_BIRTHD );
				// 氏名敬称
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.NM_KISHO );
				// お客様確認備考
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CUST_CFM_BIKO );
				// 契約者住所コード
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.KEISHA_AD_CD );
				// 契約者郵便番号
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.KEISHA_PCD );
				// 契約者都道府県名
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.KEISHA_STATE_NM );
				// 契約者市区町村名
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.KEISHA_CITY_NM );
				// 契約者大字通称名
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.KEISHA_OAZTSU_NM );
				// 契約者字丁目名
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.KEISHA_AZCHO_NM );
				// 契約者番地号
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.KEISHA_BNCHIGO );
				// 契約者住所補記・建物名
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.KEISHA_ADRTTM );
				// 契約者住所補記・部屋番号
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.KEISHA_ADRRM );
				// 契約者電話番号
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.KEISHA_TELNO );
				// お客様ランクコード
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CUST_RANK_CD );
				// お客様ランクコード名称
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CUST_RANK_CD_NM );
				// 連絡手段コード
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.RRK_WAY_CD );
				// 連絡手段コード名称
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.RRK_WAY_CD_NM );
				// 連絡手段補記
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.RRK_WAY_HOKI );
				// eoID
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.EOID );
				// eoID変更年月日
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.EOID_CHGE_YMD );
				// コンテンツお客様名
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CONT_CUST_NM );
				// コンテンツお客様カナ名
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CONT_CUST_KANA );
				// コンテンツお客様性別コード
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CONT_CUST_SEX_CD );
				// コンテンツお客様性別コード名称
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CONT_CUST_SEX_CD_NM );
				// コンテンツお客様生年月日
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CONT_CUST_BIRTHD );
				// コンテンツ住所コード
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CONT_AD_CD );
				// コンテンツ郵便番号
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CONT_PCD );
				// コンテンツ都道府県名
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CONT_STATE_NM );
				// コンテンツ市区町村名
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CONT_CITY_NM );
				// コンテンツ大字通称名
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CONT_OAZTSU_NM );
				// コンテンツ字丁目名
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CONT_AZCHO_NM );
				// コンテンツ番地号
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CONT_BNCHIGO );
				// コンテンツ住所補記・建物名
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CONT_ADRTTM );
				// コンテンツ住所補記・部屋番号
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CONT_ADRRM );
				// コンテンツ住所分割開始位置
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CONT_AD_BNKT_STA_PST );
				// 会員種別コード
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.MEMBER_SBT_CD );
				// 会員種別コード名称
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.MEMBER_SBT_CD_NM );
				// コンテンツISP利用不可フラグ
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CONT_ISP_USE_FAIL_FLG );
				// コンテンツISP利用不可フラグ名称
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CONT_ISP_USE_FAIL_FLG_NM );
				// コンテンツISP利用停止年月日
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CONT_ISP_USE_STP_YMD );
				// 仮登録年月日
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.KARI_ADD_YMD );
				// 入会年月日
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.JOIN_YMD );
				// 予約適用年月日
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.RSV_APLY_YMD );
				// 予約取消年月日
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.RSV_CL_YMD );
				// 予約適用コード
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.RSV_APLY_CD );
				// 予約適用コード名称
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.RSV_APLY_CD_NM );
				// パスワードリマインダ用質問コード
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.PWD_REMINDER_QS_CD );
				// パスワードリマインダ用質問コード名称
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.PWD_REMINDER_QS_CD_NM );
				// パスワードリマインダ用質問内容
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.PWD_REMINDER_QS_NAIYO );
				// パスワードリマインダ用回答
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.PWD_REMINDER_ANS );
				// ニックネーム
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.NKNAME );
				// ニックネーム変更年月日
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.NKNAME_CHGE_YMD );
				// 内販外販コード
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.NAIHAN_GAIHAN_CD );
				// 内販企業識別コード
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.NAIHAN_COMP_SKBT_CD );
				// 要補助コード
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.NECESSARY_HOJO_CD );
				// eonetID未移行フラグ
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.EONETID_MI_IKO_FLG );
				// eonetID未移行フラグ名称
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.EONETID_MI_IKO_FLG_NM );
				// ログイン認証可否
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.LOGIN_NINSHO_KH );
				// ログイン認証可否名称
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.LOGIN_NINSHO_KH_NM );
				// お客様特記事項コード
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CUST_TKJK_CD );
				// お客様入退会コード
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CUST_NTAIKAI_CD );
				// お客様入退会コード名称
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CUST_NTAIKAI_CD_NM );
				// お客様退会年月日
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CUST_TAIKAI_YMD );
				// お客様退会理由コード
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CUST_TAIKAI_RSN_CD );
				// お客様退会理由コード名称
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CUST_TAIKAI_RSN_CD_NM );
				// お客様回復年月日
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CUST_KAIHK_YMD );
				// ログイン認証停止年月日
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.LOGIN_NINSHO_STP_YMD );
				// 初期eoID
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.SHK_EOID );
				// 初期eoIDパスワード
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.SHK_EOID_PWD );
				// 会員種別特定フラグ
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.MMB_SBT_TOKUT_FLG );
				// 会員種別特定フラグ名称
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.MMB_SBT_TOKUT_FLG_NM );
				// 名寄せ先SYSID
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.NAYOSE_SAKI_SYSID );
				// 名寄せ先SYSID名称
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.NAYOSE_SAKI_SYSID_NM );
				// 名寄せ年月日
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.NAYOSE_YMD );
				// eoID通知書発行実績コード
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.EOID_TCHISHO_HAKKOJSKI_CD );
				// eoID通知書発行実績コード名称
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.EOID_TCHISHO_HAKKOJSKI_CD_NM );
				// 旧eonet会員認証用ID
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.OLD_EONETMB_NINSHO_ID );
				// 会員ISP決済状態コード
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.MMB_ISP_KSSAI_STAT_CD );
				// 会員ISP決済状態コード名称
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.MMB_ISP_KSSAI_STAT_CD_NM );
				// お客様無効年月日
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.CUST_MK_YMD );
				// 削除対象外フラグ
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.DEL_TRGT_GAI_FLG );
				// 削除対象外フラグ名称
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.DEL_TRGT_GAI_FLG_NM );
				// 休眠フラグ
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.KYUMIN_FLG );
				// 休眠年月日
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.KYUMIN_YMD );
				// 登録年月日時分秒
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.ADD_DTM );
				// 登録オペレータアカウント
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.ADD_OPEACNT );
				// 更新年月日時分秒
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.UPD_DTM );
				// 更新オペレータアカウント
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.UPD_OPEACNT );
				// 削除年月日時分秒
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.DEL_DTM );
				// 削除オペレータアカウント
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.DEL_OPEACNT );
				// 無効フラグ
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.MK_FLG );
				// 無効フラグ名称
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.MK_FLG_NM );
				// 最終更新年月日時分秒
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.LAST_UPD_DTM );
				// サービス提供物消去処理実施年月日時分秒
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.SVCTK_BUT_DEL_TRN_JSSI_DTM );
				// 契約者住所手動入力フラグ
				dwnMapping( child_template, child_ck0011_a010_map, ECK0011A010CBSMsg1List.KEISHA_AD_MAN_INPUT_FLG );
			}
		}

		/** エラーマッピング **/
		Object returnCode = resultMap.get( JCMConstants.RET_CD_INT_KEY );
		errECK0011A010(param, template, Integer.parseInt( returnCode.toString() ), fixedText );

		/** エラー情報の適用 **/
		ArrayList<Object> errMapList = (ArrayList<Object>)( param.getControlMapData( SCControlMapKeys.ERROR_INFO ) );
		if ( errMapList == null ) {
			errMapList = new ArrayList<Object>();
		}
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo( resultMap, errMapList ) );

		if ( ( ck0011_a010_map_list == null ) || ( ck0011_a010_map_list.size() == 0 ) ) {
			return null;
		}

		return (HashMap)( ck0011_a010_map_list.get(0) );
	}

	/**
	 *【エラーマッピング】ECK0011A010 お客様一意照会.
	 * <br>
	 * @param   param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   template   テンプレート情報一覧
	 * @param   returnCd   リターンコード
	 * @param   fixedText  ユーザ任意文字列
	 * @throws  Exception  例外が発生した場合
	 */
	@SuppressWarnings( "unchecked" )
	public IRequestParameterReadWrite errECK0011A010( IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText ) throws RequestParameterException {

		scResultStat(param, template, returnCode, ECK0011A010CBSMsg.STATUS );

		HashMap errMap = (HashMap<String, Object>)( param.getData( fixedText ) );
		if ( errMap == null ) {
			errMap = new HashMap();
			param.setData( fixedText, errMap );
		}

		/** エラーマッピング **/
		// ＫＥＹ＿SYSID
		errMapping( template, errMap, ECK0011A010CBSMsg.KEY_SYSID_ERR );
		// ＫＥＹ＿世代登録年月日時分秒
		errMapping( template, errMap, ECK0011A010CBSMsg.KEY_GENE_ADD_DTM_ERR );
		// ＫＥＹ＿予約適用年月日
		errMapping( template, errMap, ECK0011A010CBSMsg.KEY_RSV_APLY_YMD_ERR );

		return param;
	}

	/**
	 *【マッピング情報適用】ECK0011A010 お客様一意照会.
	 * <br>
	 * @param  mapping  マッピング情報
	 * @param  mapInfo 〔設定情報マップ〕ck0011_a010_map
	 */
	@SuppressWarnings( "unchecked" )
	public void mapECK0011A010( HashMap mapping, HashMap mapInfo ) {

		/** マッピング情報適用 **/
		if ( mapInfo != null ) {
			mapping.put( ECK0011A010_MAP, mapInfo);
		}
	}
	
	/**
	 *【上りマッピング】EKK0081A010 サービス契約一意照会.
	 * <br>
	 * @param   param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   fixedText  ユーザ任意文字列
	 * @throws  Exception  例外が発生した場合
	 * @return  サービスIF実行用のマッピング情報
	 */
	@SuppressWarnings( "unchecked" )
	public HashMap<String, Object> setEKK0081A010( IRequestParameterReadWrite param, String fixedText ) throws RequestParameterException {

		HashMap<String, Object> paramMap = createParamMap( param );
		HashMap updMap = (HashMap)( param.getData( fixedText ) );

		/** テンプレート **/
		CAANMsg template = null;
		if ( updMap.containsKey( JKKAdChgStaYmdModConstCC.SVC_KEI_NO_GENE_ADD_DTM ) ) {
			template = createTemplate( param, EKK0081A010CBSMsg.class.getName(), EKK0081A010, FUNC_CD_SEL_PK );
		} else {
			template = createTemplate( param, EKK0081A010CBSMsg.class.getName(), EKK0081A010, FUNC_CD_SEL_CURRENT );
		}

		/** 上りマッピング **/
		// param.サービス契約番号 ⇒ EKK0081A010.ＫＥＹ＿サービス契約番号
		if ( updMap.containsKey( JKKAdChgStaYmdModConstCC.SVC_KEI_NO ) ) {
			template.set( EKK0081A010CBSMsg.KEY_SVC_KEI_NO, updMap.get( JKKAdChgStaYmdModConstCC.SVC_KEI_NO ).toString() );
		} else {
			template.setNull( EKK0081A010CBSMsg.KEY_SVC_KEI_NO );
		}
		// param.サービス契約番号_世代登録年月日時分秒 ⇒ EKK0081A010.ＫＥＹ＿世代登録年月日時分秒
		if ( updMap.containsKey( JKKAdChgStaYmdModConstCC.SVC_KEI_NO_GENE_ADD_DTM ) ) {
			template.set( EKK0081A010CBSMsg.KEY_GENE_ADD_DTM, updMap.get( JKKAdChgStaYmdModConstCC.SVC_KEI_NO_GENE_ADD_DTM ).toString() );
		} else {
			template.setNull( EKK0081A010CBSMsg.KEY_GENE_ADD_DTM );
		}
		// param.サービス契約番号_予約適用年月日 ⇒ EKK0081A010.ＫＥＹ＿予約適用年月日
		if ( updMap.containsKey( JKKAdChgStaYmdModConstCC.SVC_KEI_NO_RSV_APLY_YMD ) ) {
			template.set( EKK0081A010CBSMsg.KEY_RSV_APLY_YMD, updMap.get( JKKAdChgStaYmdModConstCC.SVC_KEI_NO_RSV_APLY_YMD ).toString() );
		} else {
			template.set( EKK0081A010CBSMsg.KEY_RSV_APLY_YMD, JCCBPCommon.getOpeDate(null) );
		}

		/** パラメータとテンプレートのマッピング **/
		paramMap.put( JCMConstants.TEMPLATE_LIST_KEY, singleTemplateMapping( template ) );

		return paramMap;
	}
	
	/**
	 *【下りマッピング】EKK0081A010 サービス契約一意照会.
	 * <br>
	 * @param   param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   fixedText  ユーザ任意文字列
	 * @param   resultMap  サービスIFの結果が格納されているマップ情報
	 * @throws  Exception  例外が発生した場合
	 * @return  下りマッピング項目
	 */
	@SuppressWarnings( "unchecked" )
	public HashMap getEKK0081A010( IRequestParameterReadWrite param, String fixedText, Map<?, ?> resultMap ) throws Exception {

		/** S-IFの戻り値 **/
		CAANMsg[] templates = null;
		CAANMsg template = null;
		if ( resultMap.containsKey( JCMConstants.TEMPLATE_LIST_KEY ) ) {
			templates = (CAANMsg[])( resultMap.get( JCMConstants.TEMPLATE_LIST_KEY ) );
			template = templates[0];
		}

		/** リクエストパラメータ作業領域 **/
		Map paramWorkMap = param.getMappingWorkArea();
		if ( paramWorkMap == null ) {
			paramWorkMap = new HashMap();
			param.setMappingWorkArea( paramWorkMap );
		}

		/** マップ項目 **/
		HashMap kk0081_a010_map = (HashMap)( paramWorkMap.get( EKK0081A010_MAP ) );
		if ( kk0081_a010_map == null ) {
			kk0081_a010_map = new HashMap();
			paramWorkMap.put( EKK0081A010_MAP, kk0081_a010_map );
		}

		CAANMsg[] templateArray = null;
		ArrayList kk0081_a010_map_list = null;

		/** 下りマッピング **/
		templateArray = template.getCAANMsgList( EKK0081A010CBSMsg.EKK0081A010CBSMSG1LIST );
		kk0081_a010_map_list = (ArrayList)( kk0081_a010_map.get( EKK0081A010CBSMsg.EKK0081A010CBSMSG1LIST ) );
		if ( kk0081_a010_map_list == null ) {
			kk0081_a010_map_list = new ArrayList();
		}
		if ( templateArray != null ) {
			for ( int i = 0; i < templateArray.length; i ++ ) {
				if ( i >= kk0081_a010_map_list.size() ) {
					kk0081_a010_map_list.add( new HashMap() );
				}
				CAANMsg child_template = templateArray[i];
				HashMap child_kk0081_a010_map = (HashMap)( kk0081_a010_map_list.get(i) );

				// サービス契約番号
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SVC_KEI_NO );
				// 世代登録年月日時分秒
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.GENE_ADD_DTM );
				// サービス契約ステータス
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SVC_KEI_STAT );
				// サービス契約ステータス名称
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SVC_KEI_STAT_NM );
				// SYSID
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SYSID );
				// SYSID名称
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SYSID_NM );
				// サービスコード
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SVC_CD );
				// サービスコード名称
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SVC_CD_NM );
				// 申込明細番号
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.MSKM_DTL_NO );
				// 整理番号
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SEIRI_NO );
				// 面開発案件番号
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.MENKAIHAT_ANKEN_NO );
				// 料金グループコード
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.PRC_GRP_CD );
				// 料金グループコード名称
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.PRC_GRP_CD_NM );
				// 料金コースコード
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.PCRS_CD );
				// 料金コースコード名称
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.PCRS_CD_NM );
				// 料金プランコード
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.PPLAN_CD );
				// 料金プランコード名称
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.PPLAN_CD_NM );
				// 提供方式契約番号
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.TK_HOSHIKI_KEI_NO );
				// サービス利用開始希望年月日
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SVC_USE_STA_KIBO_YMD );
				// 予約適用開始希望年月日
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.RSV_TSTA_KIBO_YMD );
				// ID速報書出力要否
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.ID_SOKHOSHO_OUTPUT_YH );
				// ID速報書出力要否名称
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.ID_SOKHOSHO_OUTPUT_YH_NM );
				// サービス契約後続業務依頼年月日
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SVC_KEI_KZKWRK_REQYMD );
				// 照査年月日
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SHOSA_YMD );
				// 照査取消年月日
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SHOSA_CL_YMD );
				// 審査結果コード
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SKEKKA_CD );
				// 審査結果コード名称
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SKEKKA_CD_NM );
				// 審査結果詳細コード
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SKEKKA_DTL_CD );
				// 審査結果補記コード
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SKEKKA_HOKI_CD );
				// 審査結果補記コード名称
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SKEKKA_HOKI_CD_NM );
				// 審査結果送信コード
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SKEKKA_SEND_CD );
				// 審査結果送信コード名称
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SKEKKA_SEND_CD_NM );
				// 支払い方法継続フラグ
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.PAYWAY_KEIZOKU_FLG );
				// 支払い方法継続フラグ名称
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.PAYWAY_KEIZOKU_FLG_NM );
				// 試用加入年月日
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.FTRIAL_KANYU_YMD );
				// 試用期間終了年月日
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.FTRIAL_PRD_ENDYMD );
				// 本加入年月日
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.HONKANYU_YMD );
				// 本加入移行期限年月日
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.HONKANYU_IKO_KIGEN_YMD );
				// 契約締結年月日
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.KEI_CNC_YMD );
				// プラン開始年月日
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.PLAN_STAYMD );
				// プラン終了年月日
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.PLAN_ENDYMD );
				// プラン課金開始年月日
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.PLAN_CHRG_STAYMD );
				// プラン課金終了年月日
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.PLAN_CHRG_ENDYMD );
				// プラン終了種別コード
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.PLAN_END_SBT_CD );
				// プラン終了種別コード名称
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.PLAN_END_SBT_CD_NM );
				// 予約適用年月日
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.RSV_APLY_YMD );
				// 予約取消年月日
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.RSV_CL_YMD );
				// 予約適用コード
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.RSV_APLY_CD );
				// 予約適用コード名称
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.RSV_APLY_CD_NM );
				// サービスキャンセル年月日
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SVC_CANCEL_YMD );
				// サービスキャンセル理由コード
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SVC_CANCEL_RSN_CD );
				// サービス開始年月日
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SVC_STA_YMD );
				// サービス課金開始年月日
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SVC_CHRG_STAYMD );
				// レター発送仕分区分
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.LETTER_HASSO_SHIWAKE_DIV );
				// レター発送仕分区分名称
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.LETTER_HASSO_SHIWAKE_DIV_NM );
				// サンキューレター送付先コード
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.THNX_LETTER_SHS_CD );
				// WEBオプション追加不可フラグ
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.WEB_OP_ADD_FAIL_FLG );
				// サービス停止年月日
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SVC_STP_YMD );
				// サービス停止理由コード
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SVC_STP_RSN_CD );
				// サービス停止解除年月日
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SVC_STP_RLS_YMD );
				// サービス停止解除理由コード
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SVC_STP_RLS_RSN_CD );
				// 休止中断コード
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.PAUSE_STP_CD );
				// 休止中断コード名称
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.PAUSE_STP_CD_NM );
				// サービス休止年月日
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SVC_PAUSE_YMD );
				// サービス休止理由コード
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SVC_PAUSE_RSN_CD );
				// サービス休止理由メモ
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SVC_PAUSE_RSN_MEMO );
				// サービス休止解除年月日
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SVC_PAUSE_RLS_YMD );
				// サービス休止解除理由コード
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SVC_PAUSE_RLS_RSN_CD );
				// サービス休止解除理由メモ
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SVC_PAUSE_RLS_RSN_MEMO );
				// サービス終了年月日
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SVC_ENDYMD );
				// サービス課金終了年月日
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SVC_CHRG_ENDYMD );
				// サービス解約年月日
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SVC_DSL_YMD );
				// サービス解約理由コード
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SVC_DLRE_CD );
				// サービス解約理由コード名称
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SVC_DLRE_CD_NM );
				// サービス解約理由メモ
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SVC_DLRE_MEMO );
				// サービス解約手続完了フラグ
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SVC_DSL_TTDKI_FIN_FLG );
				// 回復年月日
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.KAIHK_YMD );
				// サービスキャンセル取消年月日
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SVC_CANCEL_CL_YMD );
				// サービス解約取消年月日
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SVC_DSL_CL_YMD );
				// 変更元法人サービス契約受付番号
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.CHGE_MT_HOJINSVKEI_UK_NO );
				// 変更元法人サービス契約受付番号子
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.CHGE_MT_HOJINSVKEI_UK_NOPT );
				// 変更先法人サービス契約受付番号
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.CHGE_SK_HOJINSVKEI_UK_NO );
				// 変更先法人サービス契約受付番号子
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.CHGE_SK_HOJINSVKEI_UK_NOPT );
				// 変更元法人eo読替サービス契約番号
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.CHMT_HJIN_EO_YKAE_SVKEI_NO );
				// 変更先法人eo読替サービス契約番号
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.CHSK_HJIN_EO_YKAE_SVKEI_NO );
				// 違約金発生コード
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.PNLTY_HASSEI_CD );
				// 違約金変更理由コード
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.PNLTY_CHGE_RSN_CD );
				// 違約金変更理由コード名称
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.PNLTY_CHGE_RSN_CD_NM );
				// 異動区分
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.IDO_DIV );
				// 異動区分名称
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.IDO_DIV_NM );
				// 初期デフォルトパスワード
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SHK_DFLT_PWD );
				// お客さまIDパスワード
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.CUST_ID_PWD );
				// 面開発案件仮登録フラグ
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.MENKAIHAT_ANKEN_KR_ADD_FLG );
				// 面開発案件仮登録フラグ名称
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.MENKAIHAT_ANKEN_KR_ADD_FLG_NM );
				// 紹介コード
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.INTR_CD );
				// 照査解約完了コード
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SHOSA_DSL_FIN_CD );
				// 照査解約完了コード名称
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SHOSA_DSL_FIN_CD_NM );
				// 異動NG状態コード
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.IDO_NG_STAT_CD );
				// 異動NG状態コード名称
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.IDO_NG_STAT_CD_NM );
				// 課金開始年月日補正有無
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.CHRG_STA_YMD_HOSEI_UM );
				// 課金開始年月日補正有無名称
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.CHRG_STA_YMD_HOSEI_UM_NM );
				// サービス休止課金開始年月日
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SVC_PAUSE_CHRG_STA_YMD );
				// 業務連絡備考
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.WORK_RRK_BIKO );
				// 自動照査処理状態コード
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.AUTO_SHOSA_TRAN_STAT_CD );
				// 自動照査処理状態コード名称
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.AUTO_SHOSA_TRAN_STAT_CD_NM );
				// 機器未登録リスト出力済フラグ
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.KIKI_MIADD_LIST_OPUTZM_FLG );
				// 機器未登録リスト出力済フラグ名称
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.KIKI_MIADD_LIST_OPUTZM_FLG_NM );
				// 回復不可契約抽出済フラグ
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.KAIHK_FAIL_KEI_CST_ZM_FLG );
				// 回復不可契約抽出済フラグ名称
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.KAIHK_FAIL_KEI_CST_ZM_FLG_NM );
				// 登録年月日時分秒
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.ADD_DTM );
				// 登録オペレータアカウント
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.ADD_OPEACNT );
				// 更新年月日時分秒
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.UPD_DTM );
				// 更新オペレータアカウント
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.UPD_OPEACNT );
				// 削除年月日時分秒
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.DEL_DTM );
				// 削除オペレータアカウント
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.DEL_OPEACNT );
				// 無効フラグ
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.MK_FLG );
				// 無効フラグ名称
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.MK_FLG_NM );
				// 最終更新年月日時分秒
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.LAST_UPD_DTM );
				// サービス提供物消去処理実施年月日時分秒
				dwnMapping( child_template, child_kk0081_a010_map, EKK0081A010CBSMsg1List.SVCTK_BUT_DEL_TRN_JSSI_DTM );
			}
		}

		/** エラーマッピング **/
		Object returnCode = resultMap.get( JCMConstants.RET_CD_INT_KEY );
		errEKK0081A010(param, template, Integer.parseInt( returnCode.toString() ), fixedText );

		/** エラー情報の適用 **/
		ArrayList<Object> errMapList = (ArrayList<Object>)( param.getControlMapData( SCControlMapKeys.ERROR_INFO ) );
		if ( errMapList == null ) {
			errMapList = new ArrayList<Object>();
		}
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo( resultMap, errMapList ) );

		if ( ( kk0081_a010_map_list == null ) || ( kk0081_a010_map_list.size() == 0 ) ) {
			return null;
		}

		return (HashMap)( kk0081_a010_map_list.get(0) );
	}

	/**
	 *【エラーマッピング】EKK0081A010 サービス契約一意照会.
	 * <br>
	 * @param   param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   template   テンプレート情報一覧
	 * @param   returnCd   リターンコード
	 * @param   fixedText  ユーザ任意文字列
	 * @throws  Exception  例外が発生した場合
	 */
	@SuppressWarnings( "unchecked" )
	public IRequestParameterReadWrite errEKK0081A010( IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText ) throws RequestParameterException {

		scResultStat(param, template, returnCode, EKK0081A010CBSMsg.STATUS );

		HashMap errMap = (HashMap<String, Object>)( param.getData( fixedText ) );
		if ( errMap == null ) {
			errMap = new HashMap();
			param.setData( fixedText, errMap );
		}

		/** エラーマッピング **/
		// ＫＥＹ＿サービス契約番号
		errMapping( template, errMap, EKK0081A010CBSMsg.KEY_SVC_KEI_NO_ERR );
		// ＫＥＹ＿世代登録年月日時分秒
		errMapping( template, errMap, EKK0081A010CBSMsg.KEY_GENE_ADD_DTM_ERR );
		// ＫＥＹ＿予約適用年月日
		errMapping( template, errMap, EKK0081A010CBSMsg.KEY_RSV_APLY_YMD_ERR );

		return param;
	}

	/**
	 *【マッピング情報適用】EKK0081A010 サービス契約一意照会.
	 * <br>
	 * @param  mapping  マッピング情報
	 * @param  mapInfo 〔設定情報マップ〕kk0081_a010_map
	 */
	@SuppressWarnings( "unchecked" )
	public void mapEKK0081A010( HashMap mapping, HashMap mapInfo ) {

		/** マッピング情報適用 **/
		if ( mapInfo != null ) {
			mapping.put( EKK0081A010_MAP, mapInfo);
		}
	}

	/**
	 *【上りマッピング】EKK0011D020 申込内容承認登録.
	 * <br>
	 * @param   param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   fixedText  ユーザ任意文字列
	 * @param   mapInfo   〔設定情報マップ〕kk0011_d020_map
	 * @param   funcCode   機能コード
	 * @throws  Exception  例外が発生した場合
	 * @return  サービスIF実行用のマッピング情報
	 */
	@SuppressWarnings( "unchecked" )
	public HashMap<String, Object> setEKK0011D020( IRequestParameterReadWrite param, String fixedText, HashMap mapInfo, String funcCode ) throws RequestParameterException {

		HashMap<String, Object> paramMap = createParamMap( param );

		/** テンプレート **/
		CAANMsg template = null;
		CAANMsg[] templateArray = null;
		template = createTemplate( param, EKK0011D020CBSMsg.class.getName(), EKK0011D020, funcCode );

		/** 上りマッピング **/
		// SYSID
		updMapping( template, mapInfo, EKK0011D020CBSMsg.SYSID );
		// 申込種別コード
		updMapping( template, mapInfo, EKK0011D020CBSMsg.MSKM_SBT_CD );
		// 申込受付年月日時分秒
		updMapping( template, mapInfo, EKK0011D020CBSMsg.MSKM_UK_DTM );
		// 申込年月日
		updMapping( template, mapInfo, EKK0011D020CBSMsg.MSKM_YMD );
		// コンシューマ営業用申込状態識別コード
		updMapping( template, mapInfo, EKK0011D020CBSMsg.CONSMBSN_MSKM_STAT_SKBT_CD );

		// 申込内容承認登録明細
		templateArray = template.getCAANMsgList(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST);
		if (templateArray == null) {
			templateArray = new CAANMsg[1];
		}

		CAANMsg childTemplate = templateArray[0];
		if (childTemplate == null) {
			childTemplate = new CAANMsg(EKK0011D020CBSMsg1List.class.getName());
		}
		// nullを設定
		fillCAANMSGNullMapping(childTemplate, new EKK0011D020CBSMsg1List().getContents());

		templateArray[0] = childTemplate;

		template.set(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST, templateArray);

		/** パラメータとテンプレートのマッピング **/
		paramMap.put( JCMConstants.TEMPLATE_LIST_KEY, singleTemplateMapping( template ) );

		return paramMap;
	}

	/**
	 *【下りマッピング】EKK0011D020 申込内容承認登録.
	 * <br>
	 * @param   param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   fixedText  ユーザ任意文字列
	 * @param   resultMap  サービスIFの結果が格納されているマップ情報
	 * @throws  Exception  例外が発生した場合
	 * @return  下りマッピング項目
	 */
	@SuppressWarnings( "unchecked" )
	public HashMap getEKK0011D020( IRequestParameterReadWrite param, String fixedText, Map<?, ?> resultMap ) throws Exception {

		/** S-IFの戻り値 **/
		CAANMsg[] templates = null;
		CAANMsg template = null;
		if ( resultMap.containsKey( JCMConstants.TEMPLATE_LIST_KEY ) ) {
			templates = (CAANMsg[])( resultMap.get( JCMConstants.TEMPLATE_LIST_KEY ) );
			template = templates[0];
		}

		/** リクエストパラメータ作業領域 **/
		Map paramWorkMap = param.getMappingWorkArea();
		if ( paramWorkMap == null ) {
			paramWorkMap = new HashMap();
			param.setMappingWorkArea( paramWorkMap );
		}

		/** マップ項目 **/
		HashMap kk0011_d020_map = (HashMap)( paramWorkMap.get( EKK0011D020_MAP ) );
		if ( kk0011_d020_map == null ) {
			kk0011_d020_map = new HashMap();
			paramWorkMap.put( EKK0011D020_MAP, kk0011_d020_map );
		}

		/** 下りマッピング **/
		if ( template != null ) {
			// EKK0011D020.申込番号 ⇒ param.申込番号
			if ( template.isNull( EKK0011D020CBSMsg.MSKM_NO ) ) {
				kk0011_d020_map.put( JKKAdChgStaYmdModConstCC.MSKM_NO, "" );
			} else {
				kk0011_d020_map.put( JKKAdChgStaYmdModConstCC.MSKM_NO, template.getString( EKK0011D020CBSMsg.MSKM_NO ) );
				putParam( param, JKKAdChgStaYmdModConstCC.MSKM_NO, template.getString( EKK0011D020CBSMsg.MSKM_NO ), fixedText );
			}
			// EKK0011D020.更新年月日時分秒 ⇒ param.更新年月日時分秒
			if ( template.isNull( EKK0011D020CBSMsg.UPD_DTM ) ) {
				kk0011_d020_map.put( JKKAdChgStaYmdModConstCC.UPD_DTM, "" );
			} else {
				kk0011_d020_map.put( JKKAdChgStaYmdModConstCC.UPD_DTM, template.getString( EKK0011D020CBSMsg.UPD_DTM ) );
				putParam( param, JKKAdChgStaYmdModConstCC.UPD_DTM, template.getString( EKK0011D020CBSMsg.UPD_DTM ), fixedText );
			}
		}

		CAANMsg[] templateArray = null;
		ArrayList kk0011_d020_map_list = null;

		/** 下りマッピング **/
		templateArray = template.getCAANMsgList( EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST );
		kk0011_d020_map_list = (ArrayList)( kk0011_d020_map.get( EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST ) );
		if ( kk0011_d020_map_list == null ) {
			kk0011_d020_map_list = new ArrayList();
		}
		if ( templateArray != null ) {
			for ( int i = 0; i < templateArray.length; i ++ ) {
				if ( i >= kk0011_d020_map_list.size() ) {
					kk0011_d020_map_list.add( new HashMap() );
				}
				CAANMsg child_template = templateArray[i];
				HashMap child_kk0011_d020_map = (HashMap)( kk0011_d020_map_list.get(i) );

				// 申込明細番号
				dwnMapping( child_template, child_kk0011_d020_map, EKK0011D020CBSMsg1List.MSKM_DTL_NO );
			}
		}

		/** エラーマッピング **/
		Object returnCode = resultMap.get( JCMConstants.RET_CD_INT_KEY );
		errEKK0011D020(param, template, Integer.parseInt( returnCode.toString() ), fixedText );

		/** エラー情報の適用 **/
		ArrayList<Object> errMapList = (ArrayList<Object>)( param.getControlMapData( SCControlMapKeys.ERROR_INFO ) );
		if ( errMapList == null ) {
			errMapList = new ArrayList<Object>();
		}
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo( resultMap, errMapList ) );

		return kk0011_d020_map;
	}

	/**
	 *【エラーマッピング】EKK0011D020 申込内容承認登録.
	 * <br>
	 * @param   param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   template   テンプレート情報一覧
	 * @param   returnCd   リターンコード
	 * @param   fixedText  ユーザ任意文字列
	 * @throws  Exception  例外が発生した場合
	 */
	@SuppressWarnings( "unchecked" )
	public IRequestParameterReadWrite errEKK0011D020( IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText ) throws RequestParameterException {

		scResultStat(param, template, returnCode, EKK0011D020CBSMsg.STATUS );

		HashMap errMap = (HashMap<String, Object>)( param.getData( fixedText ) );
		if ( errMap == null ) {
			errMap = new HashMap();
			param.setData( fixedText, errMap );
		}

		/** エラーマッピング **/
		// SYSID
		errMapping( template, errMap, EKK0011D020CBSMsg.SYSID_ERR );
		// 申込種別コード
		errMapping( template, errMap, EKK0011D020CBSMsg.MSKM_SBT_CD_ERR );
		// 申込受付年月日時分秒
		errMapping( template, errMap, EKK0011D020CBSMsg.MSKM_UK_DTM_ERR );
		// 申込年月日
		errMapping( template, errMap, EKK0011D020CBSMsg.MSKM_YMD_ERR );
		// コンシューマ営業用申込状態識別コード
		errMapping( template, errMap, EKK0011D020CBSMsg.CONSMBSN_MSKM_STAT_SKBT_CD_ERR );

		return param;
	}

	/**
	 *【上りマッピング】EKK0021C060 申込明細照査・後続業務依頼.
	 * <br>
	 * @param   param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   fixedText  ユーザ任意文字列
	 * @param   mapInfo   〔設定情報マップ〕kk0021_c060_map
	 * @param   funcCode   機能コード
	 * @throws  Exception  例外が発生した場合
	 * @return  サービスIF実行用のマッピング情報
	 */
	@SuppressWarnings( "unchecked" )
	public HashMap<String, Object> setEKK0021C060( IRequestParameterReadWrite param, String fixedText, HashMap mapInfo, String funcCode ) throws RequestParameterException {

		HashMap<String, Object> paramMap = createParamMap( param );

		/** テンプレート **/
		CAANMsg template = null;
		template = createTemplate( param, EKK0021C060CBSMsg.class.getName(), EKK0021C060, funcCode );

		/** 上りマッピング **/
		// 申込明細番号
		updMapping( template, mapInfo, EKK0021C060CBSMsg.MSKM_DTL_NO );
		// 後続業務依頼年月日
		updMapping( template, mapInfo, EKK0021C060CBSMsg.KZKWRK_REQYMD );
		// 更新年月日時分秒(更新前)
		updMapping( template, mapInfo, EKK0021C060CBSMsg.UPD_DTM_BF );

		/** パラメータとテンプレートのマッピング **/
		paramMap.put( JCMConstants.TEMPLATE_LIST_KEY, singleTemplateMapping( template ) );

		return paramMap;
	}

	/**
	 *【下りマッピング】EKK0021C060 申込明細照査・後続業務依頼.
	 * <br>
	 * @param   param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   fixedText  ユーザ任意文字列
	 * @param   resultMap  サービスIFの結果が格納されているマップ情報
	 * @throws  Exception  例外が発生した場合
	 * @return  下りマッピング項目
	 */
	@SuppressWarnings( "unchecked" )
	public HashMap getEKK0021C060( IRequestParameterReadWrite param, String fixedText, Map<?, ?> resultMap ) throws Exception {

		/** S-IFの戻り値 **/
		CAANMsg[] templates = null;
		CAANMsg template = null;
		if ( resultMap.containsKey( JCMConstants.TEMPLATE_LIST_KEY ) ) {
			templates = (CAANMsg[])( resultMap.get( JCMConstants.TEMPLATE_LIST_KEY ) );
			template = templates[0];
		}

		/** リクエストパラメータ作業領域 **/
		Map paramWorkMap = param.getMappingWorkArea();
		if ( paramWorkMap == null ) {
			paramWorkMap = new HashMap();
			param.setMappingWorkArea( paramWorkMap );
		}

		/** マップ項目 **/
		HashMap kk0021_c060_map = (HashMap)( paramWorkMap.get( EKK0021C060_MAP ) );
		if ( kk0021_c060_map == null ) {
			kk0021_c060_map = new HashMap();
		}

		/** エラーマッピング **/
		Object returnCode = resultMap.get( JCMConstants.RET_CD_INT_KEY );
		errEKK0021C060(param, template, Integer.parseInt( returnCode.toString() ), fixedText );

		/** エラー情報の適用 **/
		ArrayList<Object> errMapList = (ArrayList<Object>)( param.getControlMapData( SCControlMapKeys.ERROR_INFO ) );
		if ( errMapList == null ) {
			errMapList = new ArrayList<Object>();
		}
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo( resultMap, errMapList ) );

		return kk0021_c060_map;
	}

	/**
	 *【エラーマッピング】EKK0021C060 申込明細照査・後続業務依頼.
	 * <br>
	 * @param   param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   template   テンプレート情報一覧
	 * @param   returnCd   リターンコード
	 * @param   fixedText  ユーザ任意文字列
	 * @throws  Exception  例外が発生した場合
	 */
	@SuppressWarnings( "unchecked" )
	public IRequestParameterReadWrite errEKK0021C060( IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText ) throws RequestParameterException {

		scResultStat(param, template, returnCode, EKK0021C060CBSMsg.STATUS );

		HashMap errMap = (HashMap<String, Object>)( param.getData( fixedText ) );
		if ( errMap == null ) {
			errMap = new HashMap();
			param.setData( fixedText, errMap );
		}

		/** エラーマッピング **/
		// 申込明細番号
		errMapping( template, errMap, EKK0021C060CBSMsg.MSKM_DTL_NO_ERR );
		// 後続業務依頼年月日
		errMapping( template, errMap, EKK0021C060CBSMsg.KZKWRK_REQYMD_ERR );
		// 更新年月日時分秒(更新前)
		errMapping( template, errMap, EKK0021C060CBSMsg.UPD_DTM_BF_ERR );

		return param;
	}

	/**
	 *【上りマッピング】EKK0081C320 サービス契約サービス開始日変更２.
	 * <br>
	 * @param   param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   fixedText  ユーザ任意文字列
	 * @param   mapInfo   〔設定情報マップ〕kk0021_c060_map
	 * @param   funcCode   機能コード
	 * @throws  Exception  例外が発生した場合
	 * @return  サービスIF実行用のマッピング情報
	 */
	@SuppressWarnings( "unchecked" )
	public HashMap<String, Object> setEKK0081C320( IRequestParameterReadWrite param, String fixedText, HashMap mapInfo, String funcCode ) throws RequestParameterException {

		HashMap<String, Object> paramMap = createParamMap( param );

		/** テンプレート **/
		CAANMsg template = null;
		template = createTemplate( param, EKK0081C320CBSMsg.class.getName(), EKK0081C320, funcCode );

		/** 上りマッピング **/
		// サービス契約番号
		updMapping( template, mapInfo, EKK0081C320CBSMsg.SVC_KEI_NO );
		// 世代登録年月日時分秒
		updMapping( template, mapInfo, EKK0081C320CBSMsg.GENE_ADD_DTM );
		// サービス開始年月日
		updMapping( template, mapInfo, EKK0081C320CBSMsg.SVC_STA_YMD );
		// 更新年月日時分秒(更新前)
		updMapping( template, mapInfo, EKK0081C320CBSMsg.UPD_DTM_BF );

		/** パラメータとテンプレートのマッピング **/
		paramMap.put( JCMConstants.TEMPLATE_LIST_KEY, singleTemplateMapping( template ) );

		return paramMap;
	}

	/**
	 *【下りマッピング】EKK0081C320 サービス契約サービス開始日変更２.
	 * <br>
	 * @param   param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   fixedText  ユーザ任意文字列
	 * @param   resultMap  サービスIFの結果が格納されているマップ情報
	 * @throws  Exception  例外が発生した場合
	 * @return  下りマッピング項目
	 */
	@SuppressWarnings( "unchecked" )
	public HashMap getEKK0081C320( IRequestParameterReadWrite param, String fixedText, Map<?, ?> resultMap ) throws Exception {

		/** S-IFの戻り値 **/
		CAANMsg[] templates = null;
		CAANMsg template = null;
		if ( resultMap.containsKey( JCMConstants.TEMPLATE_LIST_KEY ) ) {
			templates = (CAANMsg[])( resultMap.get( JCMConstants.TEMPLATE_LIST_KEY ) );
			template = templates[0];
		}

		/** リクエストパラメータ作業領域 **/
		Map paramWorkMap = param.getMappingWorkArea();
		if ( paramWorkMap == null ) {
			paramWorkMap = new HashMap();
			param.setMappingWorkArea( paramWorkMap );
		}

		/** マップ項目 **/
		HashMap kk0081_c320_map = (HashMap)( paramWorkMap.get( EKK0081C320_MAP ) );
		if ( kk0081_c320_map == null ) {
			kk0081_c320_map = new HashMap();
		}

		/** エラーマッピング **/
		Object returnCode = resultMap.get( JCMConstants.RET_CD_INT_KEY );
		errEKK0081C320(param, template, Integer.parseInt( returnCode.toString() ), fixedText );

		/** エラー情報の適用 **/
		ArrayList<Object> errMapList = (ArrayList<Object>)( param.getControlMapData( SCControlMapKeys.ERROR_INFO ) );
		if ( errMapList == null ) {
			errMapList = new ArrayList<Object>();
		}
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo( resultMap, errMapList ) );

		return kk0081_c320_map;
	}

	/**
	 *【エラーマッピング】EKK0081C320 サービス契約サービス開始日変更２.
	 * <br>
	 * @param   param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   template   テンプレート情報一覧
	 * @param   returnCd   リターンコード
	 * @param   fixedText  ユーザ任意文字列
	 * @throws  Exception  例外が発生した場合
	 */
	@SuppressWarnings( "unchecked" )
	public IRequestParameterReadWrite errEKK0081C320( IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText ) throws RequestParameterException {

		scResultStat(param, template, returnCode, EKK0081C320CBSMsg.STATUS );

		HashMap errMap = (HashMap<String, Object>)( param.getData( fixedText ) );
		if ( errMap == null ) {
			errMap = new HashMap();
			param.setData( fixedText, errMap );
		}

		/** エラーマッピング **/
		// サービス契約番号
		errMapping( template, errMap, EKK0081C320CBSMsg.SVC_KEI_NO_ERR );
		// 世代登録年月日時分秒
		errMapping( template, errMap, EKK0081C320CBSMsg.GENE_ADD_DTM_ERR );
		// サービス開始年月日
		errMapping( template, errMap, EKK0081C320CBSMsg.SVC_STA_YMD_ERR );
		// 更新年月日時分秒(更新前)
		errMapping( template, errMap, EKK0081C320CBSMsg.UPD_DTM_BF_ERR );

		return param;
	}

	/**
	 *【上りマッピング】EKK1091D010 進捗登録.
	 * <br>
	 * @param   param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   fixedText  ユーザ任意文字列
	 * @param   mapInfo   〔設定情報マップ〕kk1091_d010_map
	 * @param   funcCode   機能コード
	 * @throws  Exception  例外が発生した場合
	 * @return  サービスIF実行用のマッピング情報
	 */
	@SuppressWarnings( "unchecked" )
	public HashMap<String, Object> setEKK1091D010( IRequestParameterReadWrite param, String fixedText, HashMap mapInfo, String funcCode ) throws RequestParameterException {

		HashMap<String, Object> paramMap = createParamMap( param );

		/** テンプレート **/
		CAANMsg template = null;
		CAANMsg[] templateArray = null;
		template = createTemplate( param, EKK1091D010CBSMsg.class.getName(), EKK1091D010, funcCode );

		/** 上りマッピング **/
		// 申込明細番号
		updMapping( template, mapInfo, EKK1091D010CBSMsg.MSKM_DTL_NO );
		// サービス契約番号
		updMapping( template, mapInfo, EKK1091D010CBSMsg.SVC_KEI_NO );
		// 異動区分
		updMapping( template, mapInfo, EKK1091D010CBSMsg.IDO_DIV );
		// 異動年月日時分秒
		updMapping( template, mapInfo, EKK1091D010CBSMsg.IDO_DTM );
		// 進捗ステータス
		updMapping( template, mapInfo, EKK1091D010CBSMsg.PRG_STAT );
		// 進捗特記事項1
		updMapping( template, mapInfo, EKK1091D010CBSMsg.PRG_TKJK_1 );

		// 異動理由明細
		templateArray = template.getCAANMsgList(EKK1091D010CBSMsg.EKK1091D010CBSMSG1LIST);
		if (templateArray == null) {
			templateArray = new CAANMsg[1];
		}

		CAANMsg childTemplate = templateArray[0];
		if (childTemplate == null) {
			childTemplate = new CAANMsg(EKK1091D010CBSMsg1List.class.getName());
		}
		// nullを設定
		fillCAANMSGNullMapping(childTemplate, new EKK1091D010CBSMsg1List().getContents());

		// 異動理由コード
		childTemplate.set(EKK1091D010CBSMsg1List.IDO_RSN_CD, JKKAdChgStaYmdModConstCC.IDO_RSN_CD_VALUE_56);

		templateArray[0] = childTemplate;

		template.set(EKK1091D010CBSMsg.EKK1091D010CBSMSG1LIST, templateArray);

		/** パラメータとテンプレートのマッピング **/
		paramMap.put( JCMConstants.TEMPLATE_LIST_KEY, singleTemplateMapping( template ) );

		return paramMap;
	}

	/**
	 *【下りマッピング】EKK1091D010 進捗登録.
	 * <br>
	 * @param   param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   fixedText  ユーザ任意文字列
	 * @param   resultMap  サービスIFの結果が格納されているマップ情報
	 * @throws  Exception  例外が発生した場合
	 * @return  下りマッピング項目
	 */
	@SuppressWarnings( "unchecked" )
	public HashMap getEKK1091D010( IRequestParameterReadWrite param, String fixedText, Map<?, ?> resultMap ) throws Exception {

		/** S-IFの戻り値 **/
		CAANMsg[] templates = null;
		CAANMsg template = null;
		if ( resultMap.containsKey( JCMConstants.TEMPLATE_LIST_KEY ) ) {
			templates = (CAANMsg[])( resultMap.get( JCMConstants.TEMPLATE_LIST_KEY ) );
			template = templates[0];
		}

		/** リクエストパラメータ作業領域 **/
		Map paramWorkMap = param.getMappingWorkArea();
		if ( paramWorkMap == null ) {
			paramWorkMap = new HashMap();
			param.setMappingWorkArea( paramWorkMap );
		}

		/** マップ項目 **/
		HashMap kk1091_d010_map = (HashMap)( paramWorkMap.get( EKK1091D010_MAP ) );
		if ( kk1091_d010_map == null ) {
			kk1091_d010_map = new HashMap();
			paramWorkMap.put( EKK1091D010_MAP, kk1091_d010_map );
		}

		/** エラーマッピング **/
		Object returnCode = resultMap.get( JCMConstants.RET_CD_INT_KEY );
		errEKK1091D010(param, template, Integer.parseInt( returnCode.toString() ), fixedText );

		/** エラー情報の適用 **/
		ArrayList<Object> errMapList = (ArrayList<Object>)( param.getControlMapData( SCControlMapKeys.ERROR_INFO ) );
		if ( errMapList == null ) {
			errMapList = new ArrayList<Object>();
		}
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo( resultMap, errMapList ) );

		return kk1091_d010_map;
	}

	/**
	 *【エラーマッピング】EKK1091D010 進捗登録.
	 * <br>
	 * @param   param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   template   テンプレート情報一覧
	 * @param   returnCd   リターンコード
	 * @param   fixedText  ユーザ任意文字列
	 * @throws  Exception  例外が発生した場合
	 */
	@SuppressWarnings( "unchecked" )
	public IRequestParameterReadWrite errEKK1091D010( IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText ) throws RequestParameterException {

		scResultStat(param, template, returnCode, EKK1091D010CBSMsg.STATUS );

		HashMap errMap = (HashMap<String, Object>)( param.getData( fixedText ) );
		if ( errMap == null ) {
			errMap = new HashMap();
			param.setData( fixedText, errMap );
		}

		/** エラーマッピング **/
		// 申込明細番号
		errMapping( template, errMap, EKK1091D010CBSMsg.MSKM_DTL_NO_ERR );
		// サービス契約番号
		errMapping( template, errMap, EKK1091D010CBSMsg.SVC_KEI_NO_ERR );
		// 異動区分
		errMapping( template, errMap, EKK1091D010CBSMsg.IDO_DIV_ERR );
		// 異動年月日時分秒
		errMapping( template, errMap, EKK1091D010CBSMsg.IDO_DTM_ERR );
		// 進捗ステータス
		errMapping( template, errMap, EKK1091D010CBSMsg.PRG_STAT_ERR );
		// 進捗特記事項1
		errMapping( template, errMap, EKK1091D010CBSMsg.PRG_TKJK_1_ERR );

		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);

		}
	}
}
