/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JKKKojiCourseChgCC
*	ソースファイル名：JKKKojiCourseChgCC.java
*	作成者			：FJ
*	日付			：2013年02月14日
*＜機能概要＞
*	工事案件コース変更CCの共通コンポーネント
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v5.00.00	2013/02/14	FJ			新規作成
*	v5.00.01	2013/03/04	 FJ）中井	【ANK-1356-00-00】対応
*	v5.00.02	2013/07/08	 FJ）中井	【IT2-2013-0000603】対応
*	v5.00.03	2013/09/18	 FJ）中井	【OM-2013-0002202】対応
*	v6.00.00	2013/12/24	 FJ）中井	【OM-2013-0004525】対応
*   v7.00.00	2014/02/11	 FJ) 中井	【OM-2014-0000476】対応
*   v75.00.00	2025/04/21	 FJ)柴田	【ANK-4673-00-00】テレビ新コース（スカパー用）導入対応　2025年6月フォロー案件
**
**********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import com.fujitsu.futurity.bp.x21.bpm.ServiceComponentRequestInvoker;
import com.fujitsu.futurity.bp.x21.bpm.db.SessionHandle;
import com.fujitsu.futurity.bp.x21.bpm.exception.RequestParameterException;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadWrite;
import com.fujitsu.futurity.bp.x21.cc.AbstractCommonComponent;
import com.fujitsu.futurity.bp.x21.cc.exception.SCCallException;
import com.fujitsu.futurity.common.JCMConstants;
import com.fujitsu.futurity.common.x01.sc.SCControlMapKeys;
import com.fujitsu.futurity.mapping.bp.common.TemplateErrorUtil;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.common.JCMAPLConstMgr;

import eo.common.util.JCCFrameworkException;
import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0081C130CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0101A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0101A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0101C050CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0101C060CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1681A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1681A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK2101C010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKU0091B020CBSMsg;
import eo.ejb.cbs.cbsmsg.EKU0091B020CBSMsg1List;

/**
 * 
 * @author 909488
 *
 */
public class JKKKojiCourseChgCC extends AbstractCommonComponent
{

	/** テンプレートID(EKK0081A010)サービス契約一意照会 */
	private static final String TEMPLATE_ID_EKK0081A010 = "EKK0081A010";
	
	/** テンプレートID(EKK0101A010)サービス契約＜eo光TV＞一意照会 */
	private static final String TEMPLATE_ID_EKK0101A010 = "EKK0101A010";
	
	/** テンプレートID(EKK1681A010)異動予約一意照会 */
	private static final String TEMPLATE_ID_EKK1681A010 = "EKK1681A010";
	
	/** テンプレートID(EKK0101C050)サービス契約＜eo光TV＞手続中料金プラン変更 */
	private static final String TEMPLATE_ID_EKK0101C050 = "EKK0101C050";

	/** テンプレートID(EKK0101C060)サービス契約＜eo光TV＞料金プラン変更 */
	private static final String TEMPLATE_ID_EKK0101C060 = "EKK0101C060";

	/** テンプレートID(EKK0081C130)サービス契約料金プラン変更中止 */
	private static final String TEMPLATE_ID_EKK0081C130 = "EKK0081C130";
	
	/** テンプレートID(EKK2101C010)住所変更明細更新 */
	private static final String TEMPLATE_ID_EKK2101C010 = "EKK2101C010";
	
	/** テンプレートID(EKU0091B020)申込明細＿工事案件一覧照会 */
	private static final String TEMPLATE_ID_EKU0091B020 = "EKU0091B020";
	
	
	/** 工事案件種別コード（新設）*/
	private static final String KOJIAK_SBT_CD_001 = "001";
	
	/** 工事案件種別コード（住所変更(新設)）*/
	private static final String KOJIAK_SBT_CD_003 = "003";
	
	/** 工事案件種別コード（eoテレビ変更）*/
	private static final String KOJIAK_SBT_CD_013 = "013";
	
	/** 住所変更明細種別コード（サービス契約番号）*/
	private static final String ADCHG_DTL_SBT_CD_01 = "01";
	
	/** 異動区分（住所変更・登録）*/
	private static final String IDO_DIV_00019 = "00019";
	
	/** 異動区分（コース変更(eoテレビ変更中)）*/
	private static final String IDO_DIV_00081 = "00081";

	/**
	 * サービス契約の更新タイムスタンプ格納キー
	 */
	private static final String KK_COM_SVC_UP_DTM = "KK_COM_SVC_UP_DTM";
	


	/**
	 * 工事案件住所変更画面情報取得CCを呼出し、
	 * 工事案件住所変更画面情報取得を行う。
	 * 
	 * @param handle
	 * @param param
	 * @param fixedText
	 * @return IRequestParameterReadWrite
	 * @throws Throwable 
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite chgTvCourse(SessionHandle handle,
													IRequestParameterReadWrite param,
													String fixedText) throws Throwable
	{
		Map<?, ?> result = null;
		CAANMsg template = null;
		
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		// データ情報
		Map<String, Object> dataMap = (HashMap<String, Object>)param.getData(fixedText);
		if(dataMap == null)
		{
			return param;
		}
		Map<String, Object> juhenMap = (HashMap<String, Object>)param.getData("jushoHenkoInfo");
		String bfr_pcrs_nm = (String)dataMap.get("bfr_pcrs_nm");
		String aft_pcrs_nm = (String)dataMap.get("aft_pcrs_nm");
		String aft_pcrs_cd = (String)dataMap.get("aft_pcrs_cd");

		//料金コード名称が空なら処理無し
		if("".equals(bfr_pcrs_nm) || "".equals(aft_pcrs_nm))
		{
			return param;
		}
		/* ++++++++++ v5.00.03 追加開始 ++++++++++ */
		// 作業領域の取得
		Map workMap = (Map)param.getMappingWorkArea();
		if (workMap == null) {
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}
		workMap.put("aft_pcrs_nm_newkoji", "");
		/* ++++++++++ v5.00.03 追加終了 ++++++++++ */
		//工事案件種別コード
		String kojiak_sbt_cd = (String) dataMap.get("kojiak_sbt_cd");
		
		//サービス契約＜eo光TV＞一意照会
		template = editInMsgEKK0101A010(param, dataMap);
		// ◇ SC呼出実行
		result = scCall.run(getParamMsg(param, new CAANMsg[]{template}), handle);
		// ◇ 下りマッピング処理
		editOutMsgEKK0101A010(result, param, dataMap);
		
		//サービス契約一意照会
		template = editInMsgEKK0081A010(param, dataMap);
		// ◇ SC呼出実行
		result = scCall.run(getParamMsg(param, new CAANMsg[]{template}), handle);
		// ◇ 下りマッピング処理
		editOutMsgEKK0081A010(result, param, dataMap);
		
		//異動予約番号
		String ido_rsv_no = (String) dataMap.get("ido_rsv_no");
		
		ArrayList<HashMap<String, Object>> dataList101 = (ArrayList<HashMap<String, Object>>) dataMap.get("EKK0101A010CBSMsg1List");
		/* ++++++++++ v5.00.01 修正開始 ++++++++++ */
		ArrayList<HashMap<String, Object>> dataList81 = (ArrayList<HashMap<String, Object>>) dataMap.get("EKK0081A010CBSMsg1List");
		/* ++++++++++ v5.00.01 修正終了 ++++++++++ */
		if(dataList81 == null || dataList81.size() == 0 || dataList101 == null || dataList101.size() == 0)
		{
			// エラーメッセージを設定
			throw new JCCFrameworkException("サービス契約またはサービス契約＜eo光TV＞が存在しません。");
		}
		HashMap childMap101 = (HashMap)dataList101.get(0);
		HashMap childMap81 = (HashMap)dataList81.get(0);
		/* ++++++++++ v7.00.00 削除開始 ++++++++++ */
//		if(KOJIAK_SBT_CD_001.equals(kojiak_sbt_cd))
//		{
//			//事案件種別コード（新設）
//			//サービス契約＜eo光TV＞手続中料金プラン変更
//			template = editInMsgEKK0101C050(param, dataMap, childMap101, childMap81);
//			// ◇ SC呼出実行
//			result = scCall.run(getParamMsg(param, new CAANMsg[]{template}), handle);
//			// ◇ 下りマッピング処理
//			editOutMsgEKK0101C050(result, param, dataMap);
//			
//			/* ++++++++++ v5.00.03 追加開始 ++++++++++ */
//			workMap.put("course_chg_aft_pcrs_cd", aft_pcrs_cd);
//			/* ++++++++++ v5.00.03 追加終了 ++++++++++ */
//		}
//		else
//		{
		/* ++++++++++ v7.00.00 削除終了 ++++++++++ */
			// ***** 異動予約有りの場合
			if(ido_rsv_no != null && !"".equals(ido_rsv_no))
			{
				//
				//異動予約一意照会
				template = editInMsgEKK1681A010(param, dataMap);
				// ◇ SC呼出実行
				result = scCall.run(getParamMsg(param, new CAANMsg[]{template}), handle);
				// ◇ 下りマッピング処理
				editOutMsgEKK1681A010(result, param, dataMap);
				
				/* ++++++++++ v7.00.00 修正開始 ++++++++++ */
				if(KOJIAK_SBT_CD_001.equals(kojiak_sbt_cd))
				{
					//事案件種別コード（新設）
					//サービス契約＜eo光TV＞手続中料金プラン変更
					template = editInMsgEKK0101C050(param, dataMap, childMap101, childMap81);
					// ◇ SC呼出実行
					result = scCall.run(getParamMsg(param, new CAANMsg[]{template}), handle);
					// ◇ 下りマッピング処理
					editOutMsgEKK0101C050(result, param, dataMap);
					
					/* ++++++++++ v5.00.03 追加開始 ++++++++++ */
					workMap.put("course_chg_aft_pcrs_cd", aft_pcrs_cd);
					/* ++++++++++ v5.00.03 追加終了 ++++++++++ */
				}
				else if(KOJIAK_SBT_CD_003.equals(kojiak_sbt_cd))
				/* ++++++++++ v7.00.00 修正終了 ++++++++++ */
				{
					//サービス契約＜eo光TV＞手続中料金プラン変更
					template = editInMsgEKK0101C050(param, dataMap, childMap101, childMap81);
					// ◇ SC呼出実行
					result = scCall.run(getParamMsg(param, new CAANMsg[]{template}), handle);
					// ◇ 下りマッピング処理
					editOutMsgEKK0101C050(result, param, dataMap);
					
				}
				else if(KOJIAK_SBT_CD_013.equals(kojiak_sbt_cd))
				{
					//コース変更チェック
					if(!isIdoRsvCourseChg(param, dataMap))
					{
						//サービス契約料金プラン変更中止
						template = editInMsgEKK0081C130(param, dataMap);
						// ◇ SC呼出実行
						result = scCall.run(getParamMsg(param, new CAANMsg[]{template}), handle);
						// ◇ 下りマッピング処理
						editOutMsgEKK0081C130(result, param, dataMap);
						
					}
					else
					{
						//サービス契約＜eo光TV＞手続中料金プラン変更
						template = editInMsgEKK0101C050(param, dataMap, childMap101, childMap81);
						// ◇ SC呼出実行
						result = scCall.run(getParamMsg(param, new CAANMsg[]{template}), handle);
						// ◇ 下りマッピング処理
						editOutMsgEKK0101C050(result, param, dataMap);

					}
					
				}
			}
			else
			{
				// ***** 異動予約無しの場合
				/* ++++++++++ v7.00.00 修正開始 ++++++++++ */
				if(KOJIAK_SBT_CD_001.equals(kojiak_sbt_cd))
				{
					//事案件種別コード（新設）
					//サービス契約＜eo光TV＞手続中料金プラン変更
					template = editInMsgEKK0101C050(param, dataMap, childMap101, childMap81);
					// ◇ SC呼出実行
					result = scCall.run(getParamMsg(param, new CAANMsg[]{template}), handle);
					// ◇ 下りマッピング処理
					editOutMsgEKK0101C050(result, param, dataMap);
					
					/* ++++++++++ v5.00.03 追加開始 ++++++++++ */
					workMap.put("course_chg_aft_pcrs_cd", aft_pcrs_cd);
					/* ++++++++++ v5.00.03 追加終了 ++++++++++ */
				}
				else
				{
					if(KOJIAK_SBT_CD_003.equals(kojiak_sbt_cd))
					/* ++++++++++ v7.00.00 修正終了 ++++++++++ */
					{
						//申込明細＿工事案件一覧照会
						template = editInMsgEKU0091B020(param, dataMap);
						// ◇ SC呼出実行
						result = scCall.run(getParamMsg(param, new CAANMsg[]{template}), handle);
						// ◇ 下りマッピング処理
						editOutMsgEKU0091B020(result, param, dataMap);
						
					}
					else
					{
						dataMap.put("mskm_dtl_no", workMap.get("mskm_dtl_no"));
					}
					//サービス契約＜eo光TV＞料金プラン変更
					template = editInMsgEKK0101C060(param, dataMap, childMap101, childMap81);
					// ◇ SC呼出実行
					result = scCall.run(getParamMsg(param, new CAANMsg[]{template}), handle);
					// ◇ 下りマッピング処理
					editOutMsgEKK0101C060(result, param, dataMap);
					
					/* ++++++++++ v5.00.03 追加開始 ++++++++++ */
					workMap.put("course_chg_aft_pcrs_cd", aft_pcrs_cd);
					/* ++++++++++ v5.00.03 追加終了 ++++++++++ */
					
					if(KOJIAK_SBT_CD_003.equals(kojiak_sbt_cd))
					{
						ArrayList adchgDtlList = (ArrayList)juhenMap.get("adrChgDtlList");
						HashMap childadrMap = null;
						for (int j = 0; j < adchgDtlList.size(); j++)
						{
							childadrMap = (HashMap)adchgDtlList.get(j);
							String adchg_dtl_sbt_cd = (String)childadrMap.get("adchg_dtl_sbt_cd");
							if(ADCHG_DTL_SBT_CD_01.equals(adchg_dtl_sbt_cd) 
								&& (dataMap.get("svc_kei_no").equals(childadrMap.get("chbf_skbt_no"))||dataMap.get("svc_kei_no").equals(childadrMap.get("chaf_skbt_no")) )
								)
							{
								//工事案件種別コード（住所変更(新設)）
								//住所変更明細更新
								template = editInMsgEKK2101C010(param, dataMap, childadrMap, juhenMap);
								// ◇ SC呼出実行
								result = scCall.run(getParamMsg(param, new CAANMsg[]{template}), handle);
								// ◇ 下りマッピング処理
								editOutMsgEKK2101C010(result, param, dataMap, juhenMap);
								
								break;
							}
						}
						
					}
					
				}
			}
			
		/* ++++++++++ v7.00.00 削除開始 ++++++++++ */
//		}
		/* ++++++++++ v7.00.00 削除終了 ++++++++++ */
		
		
		return param;
	}


	/**
	 * サービス契約＜eo光TV＞一意照会のマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param inMap
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	private CAANMsg editInMsgEKK0101A010(IRequestParameterReadWrite param, Map<String, Object> inMap) throws RequestParameterException
	{
		// サービス契約＜eo光TV＞一意照会サービスインターフェイスを作成
		CAANMsg template = new CAANMsg(EKK0101A010CBSMsg.class.getName());
		// テンプレートID
		template.set(EKK0101A010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0101A010);
		// 機能コード
		template.set(EKK0101A010CBSMsg.FUNC_CODE, "2");
		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);
		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);
		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);
		
		// ◇ 業務データの設定
		// サービス契約番号
		if(inMap.get("svc_kei_no") == null || "".equals(inMap.get("svc_kei_no")))
		{
			template.setNull(EKK0101A010CBSMsg.KEY_SVC_KEI_NO);
		}
		else
		{
			template.set(EKK0101A010CBSMsg.KEY_SVC_KEI_NO, (String)inMap.get("svc_kei_no"));
		}
		
		return template;
	}

	/**
	 * サービス契約＜eo光TV＞一意照会の下りマッピング処理を行います。
	 * <br>
	 * @param msgList
	 * @param param
	 * @param inMap
	 * @param ccMap
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private void editOutMsgEKK0101A010(Map<?, ?> msgList, IRequestParameterReadWrite param, Map<String, Object> inMap) throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];
		CAANMsg[] templateArray = null;
		// 結果を詰めるマップを取得
		ArrayList<HashMap<String, Object>> dataList = null;
		
		templateArray = parentTemplate.getCAANMsgList(EKK0101A010CBSMsg.EKK0101A010CBSMSG1LIST);
		dataList = (ArrayList)inMap.get("EKK0101A010CBSMsg1List");
		if (dataList == null)
		{
			dataList = new ArrayList();
		}
		
		
		if (templateArray != null )
		{

			CAANMsg childTemplate = templateArray[0];
			dataList.add(new HashMap());
			HashMap childMap = (HashMap)dataList.get(0);
			
			// 
			if (childTemplate.isNull(EKK0101A010CBSMsg1List.SVC_KEI_NO)) {
				childMap.put("svc_kei_no", new String());
			} else {
				childMap.put("svc_kei_no", childTemplate.getString(EKK0101A010CBSMsg1List.SVC_KEI_NO));
			}
			if (childTemplate.isNull(EKK0101A010CBSMsg1List.GENE_ADD_DTM)) {
				childMap.put("gene_add_dtm", new String());
			} else {
				childMap.put("gene_add_dtm", childTemplate.getString(EKK0101A010CBSMsg1List.GENE_ADD_DTM));
			}
			if (childTemplate.isNull(EKK0101A010CBSMsg1List.DMPS_ANKEN_NO)) {
				childMap.put("dmps_anken_no", new String());
			} else {
				childMap.put("dmps_anken_no", childTemplate.getString(EKK0101A010CBSMsg1List.DMPS_ANKEN_NO));
			}
			if (childTemplate.isNull(EKK0101A010CBSMsg1List.RE_SEND_TK_SVC_SBT_CD)) {
				childMap.put("re_send_tk_svc_sbt_cd", new String());
			} else {
				childMap.put("re_send_tk_svc_sbt_cd", childTemplate.getString(EKK0101A010CBSMsg1List.RE_SEND_TK_SVC_SBT_CD));
			}
			if (childTemplate.isNull(EKK0101A010CBSMsg1List.RE_SEND_TK_SVC_SBT_CD_NM)) {
				childMap.put("re_send_tk_svc_sbt_cd_nm", new String());
			} else {
				childMap.put("re_send_tk_svc_sbt_cd_nm", childTemplate.getString(EKK0101A010CBSMsg1List.RE_SEND_TK_SVC_SBT_CD_NM));
			}
			if (childTemplate.isNull(EKK0101A010CBSMsg1List.TV_BUSINESS_CHIK_CD)) {
				childMap.put("tv_business_chik_cd", new String());
			} else {
				childMap.put("tv_business_chik_cd", childTemplate.getString(EKK0101A010CBSMsg1List.TV_BUSINESS_CHIK_CD));
			}
			if (childTemplate.isNull(EKK0101A010CBSMsg1List.TV_BUSINESS_TNT_USER_ID)) {
				childMap.put("tv_business_tnt_user_id", new String());
			} else {
				childMap.put("tv_business_tnt_user_id", childTemplate.getString(EKK0101A010CBSMsg1List.TV_BUSINESS_TNT_USER_ID));
			}
			if (childTemplate.isNull(EKK0101A010CBSMsg1List.OUT_RNKI_KEI_CD)) {
				childMap.put("out_rnki_kei_cd", new String());
			} else {
				childMap.put("out_rnki_kei_cd", childTemplate.getString(EKK0101A010CBSMsg1List.OUT_RNKI_KEI_CD));
			}
			if (childTemplate.isNull(EKK0101A010CBSMsg1List.BUNDLE_IF_CD)) {
				childMap.put("bundle_if_cd", new String());
			} else {
				childMap.put("bundle_if_cd", childTemplate.getString(EKK0101A010CBSMsg1List.BUNDLE_IF_CD));
			}
			if (childTemplate.isNull(EKK0101A010CBSMsg1List.BUNDLE_IF_CD_NM)) {
				childMap.put("bundle_if_cd_nm", new String());
			} else {
				childMap.put("bundle_if_cd_nm", childTemplate.getString(EKK0101A010CBSMsg1List.BUNDLE_IF_CD_NM));
			}
			if (childTemplate.isNull(EKK0101A010CBSMsg1List.RSV_APLY_CD)) {
				childMap.put("rsv_aply_cd", new String());
			} else {
				childMap.put("rsv_aply_cd", childTemplate.getString(EKK0101A010CBSMsg1List.RSV_APLY_CD));
			}
			if (childTemplate.isNull(EKK0101A010CBSMsg1List.RSV_APLY_CD_NM)) {
				childMap.put("rsv_aply_cd_nm", new String());
			} else {
				childMap.put("rsv_aply_cd_nm", childTemplate.getString(EKK0101A010CBSMsg1List.RSV_APLY_CD_NM));
			}
			if (childTemplate.isNull(EKK0101A010CBSMsg1List.ADD_DTM)) {
				childMap.put("add_dtm", new String());
			} else {
				childMap.put("add_dtm", childTemplate.getString(EKK0101A010CBSMsg1List.ADD_DTM));
			}
			if (childTemplate.isNull(EKK0101A010CBSMsg1List.ADD_OPEACNT)) {
				childMap.put("add_opeacnt", new String());
			} else {
				childMap.put("add_opeacnt", childTemplate.getString(EKK0101A010CBSMsg1List.ADD_OPEACNT));
			}
			if (childTemplate.isNull(EKK0101A010CBSMsg1List.UPD_DTM)) {
				childMap.put("upd_dtm", new String());
			} else {
				childMap.put("upd_dtm", childTemplate.getString(EKK0101A010CBSMsg1List.UPD_DTM));
			}
			if (childTemplate.isNull(EKK0101A010CBSMsg1List.UPD_OPEACNT)) {
				childMap.put("upd_opeacnt", new String());
			} else {
				childMap.put("upd_opeacnt", childTemplate.getString(EKK0101A010CBSMsg1List.UPD_OPEACNT));
			}
			if (childTemplate.isNull(EKK0101A010CBSMsg1List.DEL_DTM)) {
				childMap.put("del_dtm", new String());
			} else {
				childMap.put("del_dtm", childTemplate.getString(EKK0101A010CBSMsg1List.DEL_DTM));
			}
			if (childTemplate.isNull(EKK0101A010CBSMsg1List.DEL_OPEACNT)) {
				childMap.put("del_opeacnt", new String());
			} else {
				childMap.put("del_opeacnt", childTemplate.getString(EKK0101A010CBSMsg1List.DEL_OPEACNT));
			}
			if (childTemplate.isNull(EKK0101A010CBSMsg1List.MK_FLG)) {
				childMap.put("mk_flg", new String());
			} else {
				childMap.put("mk_flg", childTemplate.getString(EKK0101A010CBSMsg1List.MK_FLG));
			}
			if (childTemplate.isNull(EKK0101A010CBSMsg1List.MK_FLG_NM)) {
				childMap.put("mk_flg_nm", new String());
			} else {
				childMap.put("mk_flg_nm", childTemplate.getString(EKK0101A010CBSMsg1List.MK_FLG_NM));
			}
			if (childTemplate.isNull(EKK0101A010CBSMsg1List.LAST_UPD_DTM)) {
				childMap.put("last_upd_dtm", new String());
			} else {
				childMap.put("last_upd_dtm", childTemplate.getString(EKK0101A010CBSMsg1List.LAST_UPD_DTM));
			}

		}
	
		inMap.put("EKK0101A010CBSMsg1List", dataList);
		
		
		// リターンコード取得
		int returnCode = (Integer)msgList.get(JCMConstants.RET_CD_INT_KEY);
		// エラー情報の設定
		editErrorInfoEKK0101A010(param, inMap, templates, returnCode);
		
		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));
		
		// 取得したリターンコード、ステータスの内容を見て異常かどうかの判断をする。
		String rtnCode = msgList.get(JCMConstants.RET_CD_INT_KEY).toString();
		Integer status = parentTemplate.getInt(JCMConstants.STATUS_INT_KEY);
		// 異常の場合、SCCallExceptionを生成してスローする
		if(!("0".equals(rtnCode) && 0 == status.intValue()))
		{
			SCCallException scCallEx = new SCCallException("戻り値不正", rtnCode, status);
			throw scCallEx;
		}
	}

	/**
	 * サービス契約＜eo光TV＞一意照会のエラー情報マッピング処理を行います。
	 * <br>
	 * @param param
	 * @param inMap
	 * @param templates
	 * @param returnCode
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException
	 */
	private IRequestParameterReadWrite editErrorInfoEKK0101A010(IRequestParameterReadWrite param, Map<String, Object> inMap,
																CAANMsg[] templates, int returnCode) throws RequestParameterException
	{
		CAANMsg template = templates[0];
		int templateStatus = template.getInt(EKK0101A010CBSMsg.STATUS);
		if (returnCode != 0)
		{
			templateStatus = 9000;
		}
		if (JCMAPLConstMgr.getString("RETURN_MESSAGE_" + String.format("%1$04d", templateStatus)) == null)
		{
			templateStatus = 0;
		}
		int bpStatus = 0;
		Object obj = param.getControlMapData(SCControlMapKeys.RETURN_CODE);
		if (obj == null)
		{
			bpStatus = -1;
		}
		else
		{
			bpStatus = Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
		}
		if (templateStatus > bpStatus)
		{
			// BPにサービスコンポーネントのステータスを設定する。
			String formatStatus = String.format("%1$04d", templateStatus);
			String message = JCMAPLConstMgr.getString("RETURN_MESSAGE_" + formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
		}
		if (!template.isNull(EKK0101A010CBSMsg.KEY_SVC_KEI_NO_ERR))
		{
			if (!inMap.containsKey(EKK0101A010CBSMsg.KEY_SVC_KEI_NO_ERR))
			{
				inMap.put(EKK0101A010CBSMsg.KEY_SVC_KEI_NO_ERR, template.getString(EKK0101A010CBSMsg.KEY_SVC_KEI_NO_ERR));
			}
		}
		return param;
	}

	/**
	 * サービス契約一意照会のマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param inMap
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	private CAANMsg editInMsgEKK0081A010(IRequestParameterReadWrite param, Map<String, Object> inMap) throws RequestParameterException
	{
		// サービス契約一意照会サービスインターフェイスを作成
		CAANMsg template = new CAANMsg(EKK0081A010CBSMsg.class.getName());
		// テンプレートID
		template.set(EKK0081A010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0081A010);
		// 機能コード
		template.set(EKK0081A010CBSMsg.FUNC_CODE, "2");
		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);
		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);
		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);
		
		// ◇ 業務データの設定
		// サービス契約番号
		if(inMap.get("svc_kei_no") == null || "".equals(inMap.get("svc_kei_no")))
		{
			template.setNull(EKK0081A010CBSMsg.KEY_SVC_KEI_NO);
		}
		else
		{
			template.set(EKK0081A010CBSMsg.KEY_SVC_KEI_NO, (String)inMap.get("svc_kei_no"));
		}
		
		template.set(EKK0081A010CBSMsg.KEY_RSV_APLY_YMD, JPCBPCommon.getOpeDate(null));
		
		return template;
	}

	/**
	 * サービス契約一意照会の下りマッピング処理を行います。
	 * <br>
	 * @param msgList
	 * @param param
	 * @param inMap
	 * @param ccMap
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private void editOutMsgEKK0081A010(Map<?, ?> msgList, IRequestParameterReadWrite param, Map<String, Object> inMap) throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];
		CAANMsg[] templateArray = null;
		// 結果を詰めるマップを取得
		ArrayList<HashMap<String, Object>> dataList = null;
		
		templateArray = parentTemplate.getCAANMsgList(EKK0081A010CBSMsg.EKK0081A010CBSMSG1LIST);
		dataList = (ArrayList)inMap.get("EKK0081A010CBSMsg1List");
		if (dataList == null)
		{
			dataList = new ArrayList();
		}
		
		
		if (templateArray != null )
		{

			CAANMsg childTemplate = templateArray[0];
			dataList.add(new HashMap());
			HashMap childMap = (HashMap)dataList.get(0);
			
			// 
			if (childTemplate.isNull(EKK0081A010CBSMsg1List.MSKM_DTL_NO)) {
				childMap.put("mskm_dtl_no", new String());
			} else {
				childMap.put("mskm_dtl_no", childTemplate.getString(EKK0081A010CBSMsg1List.MSKM_DTL_NO));
			}
			if (childTemplate.isNull(EKK0081A010CBSMsg1List.PNLTY_HASSEI_CD)) {
				childMap.put("pnlty_hassei_cd", new String());
			} else {
				childMap.put("pnlty_hassei_cd", childTemplate.getString(EKK0081A010CBSMsg1List.PNLTY_HASSEI_CD));
			}
			if (childTemplate.isNull(EKK0081A010CBSMsg1List.TK_HOSHIKI_KEI_NO)) {
				childMap.put("tk_hoshiki_kei_no", new String());
			} else {
				childMap.put("tk_hoshiki_kei_no", childTemplate.getString(EKK0081A010CBSMsg1List.TK_HOSHIKI_KEI_NO));
			}

		}
	
		inMap.put("EKK0081A010CBSMsg1List", dataList);
		
		
		// リターンコード取得
		int returnCode = (Integer)msgList.get(JCMConstants.RET_CD_INT_KEY);
		// エラー情報の設定
		editErrorInfoEKK0081A010(param, inMap, templates, returnCode);
		
		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));
		
		// 取得したリターンコード、ステータスの内容を見て異常かどうかの判断をする。
		String rtnCode = msgList.get(JCMConstants.RET_CD_INT_KEY).toString();
		Integer status = parentTemplate.getInt(JCMConstants.STATUS_INT_KEY);
		// 異常の場合、SCCallExceptionを生成してスローする
		if(!("0".equals(rtnCode) && 0 == status.intValue()))
		{
			SCCallException scCallEx = new SCCallException("戻り値不正", rtnCode, status);
			throw scCallEx;
		}
	}

	/**
	 * サービス契約一意照会のエラー情報マッピング処理を行います。
	 * <br>
	 * @param param
	 * @param inMap
	 * @param templates
	 * @param returnCode
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException
	 */
	private IRequestParameterReadWrite editErrorInfoEKK0081A010(IRequestParameterReadWrite param, Map<String, Object> inMap,
																CAANMsg[] templates, int returnCode) throws RequestParameterException
	{
		CAANMsg template = templates[0];
		int templateStatus = template.getInt(EKK0081A010CBSMsg.STATUS);
		if (returnCode != 0)
		{
			templateStatus = 9000;
		}
		if (JCMAPLConstMgr.getString("RETURN_MESSAGE_" + String.format("%1$04d", templateStatus)) == null)
		{
			templateStatus = 0;
		}
		int bpStatus = 0;
		Object obj = param.getControlMapData(SCControlMapKeys.RETURN_CODE);
		if (obj == null)
		{
			bpStatus = -1;
		}
		else
		{
			bpStatus = Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
		}
		if (templateStatus > bpStatus)
		{
			// BPにサービスコンポーネントのステータスを設定する。
			String formatStatus = String.format("%1$04d", templateStatus);
			String message = JCMAPLConstMgr.getString("RETURN_MESSAGE_" + formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
		}
		if (!template.isNull(EKK0081A010CBSMsg.KEY_SVC_KEI_NO_ERR))
		{
			if (!inMap.containsKey(EKK0081A010CBSMsg.KEY_SVC_KEI_NO_ERR))
			{
				inMap.put(EKK0081A010CBSMsg.KEY_SVC_KEI_NO_ERR, template.getString(EKK0081A010CBSMsg.KEY_SVC_KEI_NO_ERR));
			}
		}
		if (!template.isNull(EKK0081A010CBSMsg.KEY_RSV_APLY_YMD_ERR))
		{
			if (!inMap.containsKey(EKK0081A010CBSMsg.KEY_RSV_APLY_YMD_ERR))
			{
				inMap.put(EKK0081A010CBSMsg.KEY_RSV_APLY_YMD_ERR, template.getString(EKK0081A010CBSMsg.KEY_RSV_APLY_YMD_ERR));
			}
		}
		return param;
	}

	/**
	 * 異動予約一意照会のマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param inMap
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	private CAANMsg editInMsgEKK1681A010(IRequestParameterReadWrite param, Map<String, Object> inMap) throws RequestParameterException
	{
		// 異動予約一意照会サービスインターフェイスを作成
		CAANMsg template = new CAANMsg(EKK1681A010CBSMsg.class.getName());
		// テンプレートID
		template.set(EKK1681A010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK1681A010);
		// 機能コード
		template.set(EKK1681A010CBSMsg.FUNC_CODE, "1");
		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);
		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);
		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);
		
		// ◇ 業務データの設定
		// サービス契約番号
		if(inMap.get("ido_rsv_no") == null || "".equals(inMap.get("ido_rsv_no")))
		{
			template.setNull(EKK1681A010CBSMsg.KEY_IDO_RSV_NO);
		}
		else
		{
			template.set(EKK1681A010CBSMsg.KEY_IDO_RSV_NO, (String)inMap.get("ido_rsv_no"));
		}
		
		return template;
	}

	/**
	 * 異動予約一意照会の下りマッピング処理を行います。
	 * <br>
	 * @param msgList
	 * @param param
	 * @param inMap
	 * @param ccMap
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private void editOutMsgEKK1681A010(Map<?, ?> msgList, IRequestParameterReadWrite param, Map<String, Object> inMap) throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];
		CAANMsg[] templateArray = null;
		// 結果を詰めるマップを取得
		ArrayList<HashMap<String, Object>> dataList = null;
		
		templateArray = parentTemplate.getCAANMsgList(EKK1681A010CBSMsg.EKK1681A010CBSMSG1LIST);
		dataList = (ArrayList)inMap.get("EKK1681A010CBSMsg1List");
		if (dataList == null)
		{
			dataList = new ArrayList();
		}
		
		
		if (templateArray != null )
		{

			CAANMsg childTemplate = templateArray[0];
			dataList.add(new HashMap());
			HashMap childMap = (HashMap)dataList.get(0);
			
			// 
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.IDO_RSV_NO)) {
				childMap.put("ido_rsv_no", new String());
			} else {
				childMap.put("ido_rsv_no", childTemplate.getString(EKK1681A010CBSMsg1List.IDO_RSV_NO));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.IDO_DIV)) {
				childMap.put("ido_div", new String());
			} else {
				childMap.put("ido_div", childTemplate.getString(EKK1681A010CBSMsg1List.IDO_DIV));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.IDO_DIV_NM)) {
				childMap.put("ido_div_nm", new String());
			} else {
				childMap.put("ido_div_nm", childTemplate.getString(EKK1681A010CBSMsg1List.IDO_DIV_NM));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.IDO_RSV_DTL_CD)) {
				childMap.put("ido_rsv_dtl_cd", new String());
			} else {
				childMap.put("ido_rsv_dtl_cd", childTemplate.getString(EKK1681A010CBSMsg1List.IDO_RSV_DTL_CD));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.IDO_RSV_DTL_CD_NM)) {
				childMap.put("ido_rsv_dtl_cd_nm", new String());
			} else {
				childMap.put("ido_rsv_dtl_cd_nm", childTemplate.getString(EKK1681A010CBSMsg1List.IDO_RSV_DTL_CD_NM));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.RSV_APLY_YMD)) {
				childMap.put("rsv_aply_ymd", new String());
			} else {
				childMap.put("rsv_aply_ymd", childTemplate.getString(EKK1681A010CBSMsg1List.RSV_APLY_YMD));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.IDO_RSV_HANEI_YMD)) {
				childMap.put("ido_rsv_hanei_ymd", new String());
			} else {
				childMap.put("ido_rsv_hanei_ymd", childTemplate.getString(EKK1681A010CBSMsg1List.IDO_RSV_HANEI_YMD));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.IDO_RSV_CL_YMD)) {
				childMap.put("ido_rsv_cl_ymd", new String());
			} else {
				childMap.put("ido_rsv_cl_ymd", childTemplate.getString(EKK1681A010CBSMsg1List.IDO_RSV_CL_YMD));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.IDO_RSV_STAT_CD)) {
				childMap.put("ido_rsv_stat_cd", new String());
			} else {
				childMap.put("ido_rsv_stat_cd", childTemplate.getString(EKK1681A010CBSMsg1List.IDO_RSV_STAT_CD));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.IDO_RSV_STAT_CD_NM)) {
				childMap.put("ido_rsv_stat_cd_nm", new String());
			} else {
				childMap.put("ido_rsv_stat_cd_nm", childTemplate.getString(EKK1681A010CBSMsg1List.IDO_RSV_STAT_CD_NM));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.MSKM_DTL_NO)) {
				childMap.put("mskm_dtl_no", new String());
			} else {
				childMap.put("mskm_dtl_no", childTemplate.getString(EKK1681A010CBSMsg1List.MSKM_DTL_NO));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.SYSID)) {
				childMap.put("sysid", new String());
			} else {
				childMap.put("sysid", childTemplate.getString(EKK1681A010CBSMsg1List.SYSID));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.SYSID_NM)) {
				childMap.put("sysid_nm", new String());
			} else {
				childMap.put("sysid_nm", childTemplate.getString(EKK1681A010CBSMsg1List.SYSID_NM));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.SEIKY_KEI_NO)) {
				childMap.put("seiky_kei_no", new String());
			} else {
				childMap.put("seiky_kei_no", childTemplate.getString(EKK1681A010CBSMsg1List.SEIKY_KEI_NO));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.SVC_KEI_NO)) {
				childMap.put("svc_kei_no", new String());
			} else {
				childMap.put("svc_kei_no", childTemplate.getString(EKK1681A010CBSMsg1List.SVC_KEI_NO));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.SVC_KEI_UCWK_NO)) {
				childMap.put("svc_kei_ucwk_no", new String());
			} else {
				childMap.put("svc_kei_ucwk_no", childTemplate.getString(EKK1681A010CBSMsg1List.SVC_KEI_UCWK_NO));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.OP_SVC_KEI_NO)) {
				childMap.put("op_svc_kei_no", new String());
			} else {
				childMap.put("op_svc_kei_no", childTemplate.getString(EKK1681A010CBSMsg1List.OP_SVC_KEI_NO));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.SBOP_SVC_KEI_NO)) {
				childMap.put("sbop_svc_kei_no", new String());
			} else {
				childMap.put("sbop_svc_kei_no", childTemplate.getString(EKK1681A010CBSMsg1List.SBOP_SVC_KEI_NO));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.KKTK_SVC_KEI_NO)) {
				childMap.put("kktk_svc_kei_no", new String());
			} else {
				childMap.put("kktk_svc_kei_no", childTemplate.getString(EKK1681A010CBSMsg1List.KKTK_SVC_KEI_NO));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.WRIB_SVC_KEI_NO)) {
				childMap.put("wrib_svc_kei_no", new String());
			} else {
				childMap.put("wrib_svc_kei_no", childTemplate.getString(EKK1681A010CBSMsg1List.WRIB_SVC_KEI_NO));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.SVC_KEI_KAISEN_UCWK_NO)) {
				childMap.put("svc_kei_kaisen_ucwk_no", new String());
			} else {
				childMap.put("svc_kei_kaisen_ucwk_no", childTemplate.getString(EKK1681A010CBSMsg1List.SVC_KEI_KAISEN_UCWK_NO));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.HEIGO_SK_SYSID)) {
				childMap.put("heigo_sk_sysid", new String());
			} else {
				childMap.put("heigo_sk_sysid", childTemplate.getString(EKK1681A010CBSMsg1List.HEIGO_SK_SYSID));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.HEIGO_SK_SYSID_NM)) {
				childMap.put("heigo_sk_sysid_nm", new String());
			} else {
				childMap.put("heigo_sk_sysid_nm", childTemplate.getString(EKK1681A010CBSMsg1List.HEIGO_SK_SYSID_NM));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.BUNKATSU_SK_SYSID)) {
				childMap.put("bunkatsu_sk_sysid", new String());
			} else {
				childMap.put("bunkatsu_sk_sysid", childTemplate.getString(EKK1681A010CBSMsg1List.BUNKATSU_SK_SYSID));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.BUNKATSU_SK_SYSID_NM)) {
				childMap.put("bunkatsu_sk_sysid_nm", new String());
			} else {
				childMap.put("bunkatsu_sk_sysid_nm", childTemplate.getString(EKK1681A010CBSMsg1List.BUNKATSU_SK_SYSID_NM));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.HEIGO_SK_SEIKY_KEI_NO)) {
				childMap.put("heigo_sk_seiky_kei_no", new String());
			} else {
				childMap.put("heigo_sk_seiky_kei_no", childTemplate.getString(EKK1681A010CBSMsg1List.HEIGO_SK_SEIKY_KEI_NO));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.BUNKATSU_SK_SEIKY_KEI_NO)) {
				childMap.put("bunkatsu_sk_seiky_kei_no", new String());
			} else {
				childMap.put("bunkatsu_sk_seiky_kei_no", childTemplate.getString(EKK1681A010CBSMsg1List.BUNKATSU_SK_SEIKY_KEI_NO));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.NEW_PRC_GRP_CD)) {
				childMap.put("new_prc_grp_cd", new String());
			} else {
				childMap.put("new_prc_grp_cd", childTemplate.getString(EKK1681A010CBSMsg1List.NEW_PRC_GRP_CD));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.NEW_PRC_GRP_CD_NM)) {
				childMap.put("new_prc_grp_cd_nm", new String());
			} else {
				childMap.put("new_prc_grp_cd_nm", childTemplate.getString(EKK1681A010CBSMsg1List.NEW_PRC_GRP_CD_NM));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.NEW_PCRS_CD)) {
				childMap.put("new_pcrs_cd", new String());
			} else {
				childMap.put("new_pcrs_cd", childTemplate.getString(EKK1681A010CBSMsg1List.NEW_PCRS_CD));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.NEW_PCRS_CD_NM)) {
				childMap.put("new_pcrs_cd_nm", new String());
			} else {
				childMap.put("new_pcrs_cd_nm", childTemplate.getString(EKK1681A010CBSMsg1List.NEW_PCRS_CD_NM));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.NEW_PPLAN_CD)) {
				childMap.put("new_pplan_cd", new String());
			} else {
				childMap.put("new_pplan_cd", childTemplate.getString(EKK1681A010CBSMsg1List.NEW_PPLAN_CD));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.NEW_PPLAN_CD_NM)) {
				childMap.put("new_pplan_cd_nm", new String());
			} else {
				childMap.put("new_pplan_cd_nm", childTemplate.getString(EKK1681A010CBSMsg1List.NEW_PPLAN_CD_NM));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.NEW_TK_HOSHIKI_KEI_NO)) {
				childMap.put("new_tk_hoshiki_kei_no", new String());
			} else {
				childMap.put("new_tk_hoshiki_kei_no", childTemplate.getString(EKK1681A010CBSMsg1List.NEW_TK_HOSHIKI_KEI_NO));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.NEW_DMPS_ANKEN_NO)) {
				childMap.put("new_dmps_anken_no", new String());
			} else {
				childMap.put("new_dmps_anken_no", childTemplate.getString(EKK1681A010CBSMsg1List.NEW_DMPS_ANKEN_NO));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.OLD_PRC_GRP_CD)) {
				childMap.put("old_prc_grp_cd", new String());
			} else {
				childMap.put("old_prc_grp_cd", childTemplate.getString(EKK1681A010CBSMsg1List.OLD_PRC_GRP_CD));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.OLD_PRC_GRP_CD_NM)) {
				childMap.put("old_prc_grp_cd_nm", new String());
			} else {
				childMap.put("old_prc_grp_cd_nm", childTemplate.getString(EKK1681A010CBSMsg1List.OLD_PRC_GRP_CD_NM));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.OLD_PCRS_CD)) {
				childMap.put("old_pcrs_cd", new String());
			} else {
				childMap.put("old_pcrs_cd", childTemplate.getString(EKK1681A010CBSMsg1List.OLD_PCRS_CD));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.OLD_PCRS_CD_NM)) {
				childMap.put("old_pcrs_cd_nm", new String());
			} else {
				childMap.put("old_pcrs_cd_nm", childTemplate.getString(EKK1681A010CBSMsg1List.OLD_PCRS_CD_NM));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.OLD_PPLAN_CD)) {
				childMap.put("old_pplan_cd", new String());
			} else {
				childMap.put("old_pplan_cd", childTemplate.getString(EKK1681A010CBSMsg1List.OLD_PPLAN_CD));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.OLD_PPLAN_CD_NM)) {
				childMap.put("old_pplan_cd_nm", new String());
			} else {
				childMap.put("old_pplan_cd_nm", childTemplate.getString(EKK1681A010CBSMsg1List.OLD_PPLAN_CD_NM));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.OLD_TK_HOSHIKI_KEI_NO)) {
				childMap.put("old_tk_hoshiki_kei_no", new String());
			} else {
				childMap.put("old_tk_hoshiki_kei_no", childTemplate.getString(EKK1681A010CBSMsg1List.OLD_TK_HOSHIKI_KEI_NO));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.OLD_DMPS_ANKEN_NO)) {
				childMap.put("old_dmps_anken_no", new String());
			} else {
				childMap.put("old_dmps_anken_no", childTemplate.getString(EKK1681A010CBSMsg1List.OLD_DMPS_ANKEN_NO));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.KOJIAK_NO)) {
				childMap.put("kojiak_no", new String());
			} else {
				childMap.put("kojiak_no", childTemplate.getString(EKK1681A010CBSMsg1List.KOJIAK_NO));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.PNLTY_HASSEI_CD)) {
				childMap.put("pnlty_hassei_cd", new String());
			} else {
				childMap.put("pnlty_hassei_cd", childTemplate.getString(EKK1681A010CBSMsg1List.PNLTY_HASSEI_CD));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.OP_HKTGI_SK_SVC_KEI_NO)) {
				childMap.put("op_hktgi_sk_svc_kei_no", new String());
			} else {
				childMap.put("op_hktgi_sk_svc_kei_no", childTemplate.getString(EKK1681A010CBSMsg1List.OP_HKTGI_SK_SVC_KEI_NO));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.SVC_PAUSE_CHRG_STA_YMD)) {
				childMap.put("svc_pause_chrg_sta_ymd", new String());
			} else {
				childMap.put("svc_pause_chrg_sta_ymd", childTemplate.getString(EKK1681A010CBSMsg1List.SVC_PAUSE_CHRG_STA_YMD));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.ADD_DTM)) {
				childMap.put("add_dtm", new String());
			} else {
				childMap.put("add_dtm", childTemplate.getString(EKK1681A010CBSMsg1List.ADD_DTM));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.ADD_OPEACNT)) {
				childMap.put("add_opeacnt", new String());
			} else {
				childMap.put("add_opeacnt", childTemplate.getString(EKK1681A010CBSMsg1List.ADD_OPEACNT));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.UPD_DTM)) {
				childMap.put("upd_dtm", new String());
			} else {
				childMap.put("upd_dtm", childTemplate.getString(EKK1681A010CBSMsg1List.UPD_DTM));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.UPD_OPEACNT)) {
				childMap.put("upd_opeacnt", new String());
			} else {
				childMap.put("upd_opeacnt", childTemplate.getString(EKK1681A010CBSMsg1List.UPD_OPEACNT));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.DEL_DTM)) {
				childMap.put("del_dtm", new String());
			} else {
				childMap.put("del_dtm", childTemplate.getString(EKK1681A010CBSMsg1List.DEL_DTM));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.DEL_OPEACNT)) {
				childMap.put("del_opeacnt", new String());
			} else {
				childMap.put("del_opeacnt", childTemplate.getString(EKK1681A010CBSMsg1List.DEL_OPEACNT));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.MK_FLG)) {
				childMap.put("mk_flg", new String());
			} else {
				childMap.put("mk_flg", childTemplate.getString(EKK1681A010CBSMsg1List.MK_FLG));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.MK_FLG_NM)) {
				childMap.put("mk_flg_nm", new String());
			} else {
				childMap.put("mk_flg_nm", childTemplate.getString(EKK1681A010CBSMsg1List.MK_FLG_NM));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.SVC_CHRG_ENDYMD)) {
				childMap.put("svc_chrg_endymd", new String());
			} else {
				childMap.put("svc_chrg_endymd", childTemplate.getString(EKK1681A010CBSMsg1List.SVC_CHRG_ENDYMD));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.PLAN_CHRG_STAYMD)) {
				childMap.put("plan_chrg_staymd", new String());
			} else {
				childMap.put("plan_chrg_staymd", childTemplate.getString(EKK1681A010CBSMsg1List.PLAN_CHRG_STAYMD));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.PLAN_CHRG_ENDYMD)) {
				childMap.put("plan_chrg_endymd", new String());
			} else {
				childMap.put("plan_chrg_endymd", childTemplate.getString(EKK1681A010CBSMsg1List.PLAN_CHRG_ENDYMD));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.IDO_RSV_RSN_CD)) {
				childMap.put("ido_rsv_rsn_cd", new String());
			} else {
				childMap.put("ido_rsv_rsn_cd", childTemplate.getString(EKK1681A010CBSMsg1List.IDO_RSV_RSN_CD));
			}
			if (childTemplate.isNull(EKK1681A010CBSMsg1List.IDO_RSV_RSN_MEMO)) {
				childMap.put("ido_rsv_rsn_memo", new String());
			} else {
				childMap.put("ido_rsv_rsn_memo", childTemplate.getString(EKK1681A010CBSMsg1List.IDO_RSV_RSN_MEMO));
			}

		}
	
		inMap.put("EKK1681A010CBSMsg1List", dataList);
		
		
		// リターンコード取得
		int returnCode = (Integer)msgList.get(JCMConstants.RET_CD_INT_KEY);
		// エラー情報の設定
		editErrorInfoEKK1681A010(param, inMap, templates, returnCode);
		
		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));
		
		// 取得したリターンコード、ステータスの内容を見て異常かどうかの判断をする。
		String rtnCode = msgList.get(JCMConstants.RET_CD_INT_KEY).toString();
		Integer status = parentTemplate.getInt(JCMConstants.STATUS_INT_KEY);
		// 異常の場合、SCCallExceptionを生成してスローする
		if(!("0".equals(rtnCode) && 0 == status.intValue()))
		{
			SCCallException scCallEx = new SCCallException("戻り値不正", rtnCode, status);
			throw scCallEx;
		}
	}

	/**
	 * 異動予約一意照会のエラー情報マッピング処理を行います。
	 * <br>
	 * @param param
	 * @param inMap
	 * @param templates
	 * @param returnCode
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException
	 */
	private IRequestParameterReadWrite editErrorInfoEKK1681A010(IRequestParameterReadWrite param, Map<String, Object> inMap,
																CAANMsg[] templates, int returnCode) throws RequestParameterException
	{
		CAANMsg template = templates[0];
		int templateStatus = template.getInt(EKK1681A010CBSMsg.STATUS);
		if (returnCode != 0)
		{
			templateStatus = 9000;
		}
		if (JCMAPLConstMgr.getString("RETURN_MESSAGE_" + String.format("%1$04d", templateStatus)) == null)
		{
			templateStatus = 0;
		}
		int bpStatus = 0;
		Object obj = param.getControlMapData(SCControlMapKeys.RETURN_CODE);
		if (obj == null)
		{
			bpStatus = -1;
		}
		else
		{
			bpStatus = Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
		}
		if (templateStatus > bpStatus)
		{
			// BPにサービスコンポーネントのステータスを設定する。
			String formatStatus = String.format("%1$04d", templateStatus);
			String message = JCMAPLConstMgr.getString("RETURN_MESSAGE_" + formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
		}
		if (!template.isNull(EKK1681A010CBSMsg.KEY_IDO_RSV_NO_ERR))
		{
			if (!inMap.containsKey(EKK1681A010CBSMsg.KEY_IDO_RSV_NO_ERR))
			{
				inMap.put(EKK1681A010CBSMsg.KEY_IDO_RSV_NO_ERR, template.getString(EKK1681A010CBSMsg.KEY_IDO_RSV_NO_ERR));
			}
		}
		return param;
	}


	/**
	 * 住所変更明細更新のマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param inMap
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	private CAANMsg editInMsgEKK2101C010(IRequestParameterReadWrite param, Map<String, Object> inMap, Map<String, Object> childAdrMap, Map<String, Object> juhenMap) throws RequestParameterException
	{
		/* ++++++++++ v5.00.02 修正開始 ++++++++++ */
		// 機能コード取得
		String funcCode = (String)inMap.get("func_code");
		/* ++++++++++ v5.00.02 修正終了 ++++++++++ */
		// 住所変更明細更新サービスインターフェイスを作成
		CAANMsg template = new CAANMsg(EKK2101C010CBSMsg.class.getName());
		// テンプレートID
		template.set(EKK2101C010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK2101C010);
		/* ++++++++++ v5.00.02 修正開始 ++++++++++ */
		// 機能コード
		template.set(EKK2101C010CBSMsg.FUNC_CODE, funcCode);
		/* ++++++++++ v5.00.02 修正終了 ++++++++++ */
		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);
		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);
		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);
		
		// ◇ 業務データの設定
		// サービス契約異動種別コード
		template.set(EKK2101C010CBSMsg.SVC_KEI_IDO_SBT_CD, "1");

		// 住所変更番号
		if(childAdrMap.get("adchg_no") == null || "".equals(childAdrMap.get("adchg_no")))
		{
			template.setNull(EKK2101C010CBSMsg.ADCHG_NO);
		}
		else
		{
			template.set(EKK2101C010CBSMsg.ADCHG_NO, (String)childAdrMap.get("adchg_no"));
		}
		// 住所変更明細番号
		if(childAdrMap.get("adchg_dtl_no") == null || "".equals(childAdrMap.get("adchg_dtl_no")))
		{
			template.setNull(EKK2101C010CBSMsg.ADCHG_DTL_NO);
		}
		else
		{
			template.set(EKK2101C010CBSMsg.ADCHG_DTL_NO, (String)childAdrMap.get("adchg_dtl_no"));
		}
		// 住所変更明細種別コード
		if(childAdrMap.get("adchg_dtl_sbt_cd") == null || "".equals(childAdrMap.get("adchg_dtl_sbt_cd")))
		{
			template.setNull(EKK2101C010CBSMsg.ADCHG_DTL_SBT_CD);
		}
		else
		{
			template.set(EKK2101C010CBSMsg.ADCHG_DTL_SBT_CD, (String)childAdrMap.get("adchg_dtl_sbt_cd"));
		}

		// 変更対象契約番号
		if(childAdrMap.get("chg_tg_kei_no") == null || "".equals(childAdrMap.get("chg_tg_kei_no")))
		{
			template.setNull(EKK2101C010CBSMsg.CHG_TG_KEI_NO);
		}
		else
		{
			template.set(EKK2101C010CBSMsg.CHG_TG_KEI_NO, (String)childAdrMap.get("chg_tg_kei_no"));
		}
		// 変更前識別番号
		if(childAdrMap.get("chbf_skbt_no") != null && !"".equals(childAdrMap.get("chbf_skbt_no")))
		{
			template.set(EKK2101C010CBSMsg.CHBF_SKBT_NO, (String)childAdrMap.get("chbf_skbt_no"));
		}
		else
		{
			template.setNull(EKK2101C010CBSMsg.CHBF_SKBT_NO);
		}
		// 変更後識別番号
		if(childAdrMap.get("chaf_skbt_no") != null && !"".equals(childAdrMap.get("chaf_skbt_no")))
		{
			template.set(EKK2101C010CBSMsg.CHAF_SKBT_NO, (String)childAdrMap.get("chaf_skbt_no"));
		}
		else
		{
			template.setNull(EKK2101C010CBSMsg.CHAF_SKBT_NO);
		}
		// 請求書送付先変更有無
		if(childAdrMap.get("sks_shs_chg_um") == null || "".equals(childAdrMap.get("sks_shs_chg_um")))
		{
			template.setNull(EKK2101C010CBSMsg.SKS_SHS_CHG_UM);
		}
		else
		{
			template.set(EKK2101C010CBSMsg.SKS_SHS_CHG_UM, (String)childAdrMap.get("sks_shs_chg_um"));
		}
		// 住所変更業務連絡備考
		if(childAdrMap.get("adchg_work_rrk_biko") == null || "".equals(childAdrMap.get("adchg_work_rrk_biko")))
		{
			template.setNull(EKK2101C010CBSMsg.ADCHG_WORK_RRK_BIKO);
		}
		else
		{
			template.set(EKK2101C010CBSMsg.ADCHG_WORK_RRK_BIKO, (String)childAdrMap.get("adchg_work_rrk_biko"));
		}
		// 更新年月日時分秒(更新前)
		if(juhenMap.get("adchg_upd_dtm") == null || "".equals(juhenMap.get("adchg_upd_dtm")))
		{
			template.setNull(EKK2101C010CBSMsg.UPD_DTM_BF);
		}
		else
		{
			template.set(EKK2101C010CBSMsg.UPD_DTM_BF, (String)juhenMap.get("adchg_upd_dtm"));
		}
		
		return template;
	}

	/**
	 * 住所変更明細更新の下りマッピング処理を行います。
	 * <br>
	 * @param msgList
	 * @param param
	 * @param inMap
	 * @param ccMap
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private void editOutMsgEKK2101C010(Map<?, ?> msgList, IRequestParameterReadWrite param, Map<String, Object> inMap, Map<String, Object> juhenMap) throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];
		// 更新年月日時分秒を作業領域に設定
		setAdchgUpdDtm(parentTemplate.getString(EKK2101C010CBSMsg.UPD_DTM), juhenMap);
				
		// リターンコード取得
		int returnCode = (Integer)msgList.get(JCMConstants.RET_CD_INT_KEY);
		// エラー情報の設定
		editErrorInfoEKK2101C010(param, inMap, templates, returnCode);
		
		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));
		
		// 取得したリターンコード、ステータスの内容を見て異常かどうかの判断をする。
		String rtnCode = msgList.get(JCMConstants.RET_CD_INT_KEY).toString();
		Integer status = parentTemplate.getInt(JCMConstants.STATUS_INT_KEY);
		// 異常の場合、SCCallExceptionを生成してスローする
		if(!("0".equals(rtnCode) && 0 == status.intValue()))
		{
			SCCallException scCallEx = new SCCallException("戻り値不正", rtnCode, status);
			throw scCallEx;
		}
	}

	/**
	 * 住所変更明細更新のエラー情報マッピング処理を行います。
	 * <br>
	 * @param param
	 * @param inMap
	 * @param templates
	 * @param returnCode
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException
	 */
	private IRequestParameterReadWrite editErrorInfoEKK2101C010(IRequestParameterReadWrite param, Map<String, Object> inMap,
																CAANMsg[] templates, int returnCode) throws RequestParameterException
	{
		CAANMsg template = templates[0];
		int templateStatus = template.getInt(EKK2101C010CBSMsg.STATUS);
		if (returnCode != 0)
		{
			templateStatus = 9000;
		}
		if (JCMAPLConstMgr.getString("RETURN_MESSAGE_" + String.format("%1$04d", templateStatus)) == null)
		{
			templateStatus = 0;
		}
		int bpStatus = 0;
		Object obj = param.getControlMapData(SCControlMapKeys.RETURN_CODE);
		if (obj == null)
		{
			bpStatus = -1;
		}
		else
		{
			bpStatus = Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
		}
		if (templateStatus > bpStatus)
		{
			// BPにサービスコンポーネントのステータスを設定する。
			String formatStatus = String.format("%1$04d", templateStatus);
			String message = JCMAPLConstMgr.getString("RETURN_MESSAGE_" + formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
		}
		if (!template.isNull(EKK2101C010CBSMsg.ADCHG_NO_ERR))
		{
			if (!inMap.containsKey(EKK2101C010CBSMsg.ADCHG_NO_ERR))
			{
				inMap.put(EKK2101C010CBSMsg.ADCHG_NO_ERR, template.getString(EKK2101C010CBSMsg.ADCHG_NO_ERR));
			}
		}
		if (!template.isNull(EKK2101C010CBSMsg.ADCHG_DTL_SBT_CD_ERR))
		{
			if (!inMap.containsKey(EKK2101C010CBSMsg.ADCHG_DTL_SBT_CD_ERR))
			{
				inMap.put(EKK2101C010CBSMsg.ADCHG_DTL_SBT_CD_ERR, template.getString(EKK2101C010CBSMsg.ADCHG_DTL_SBT_CD_ERR));
			}
		}
		if (!template.isNull(EKK2101C010CBSMsg.CHG_TG_KEI_NO_ERR))
		{
			if (!inMap.containsKey(EKK2101C010CBSMsg.CHG_TG_KEI_NO_ERR))
			{
				inMap.put(EKK2101C010CBSMsg.CHG_TG_KEI_NO_ERR, template.getString(EKK2101C010CBSMsg.CHG_TG_KEI_NO_ERR));
			}
		}
		if (!template.isNull(EKK2101C010CBSMsg.CHBF_SKBT_NO_ERR))
		{
			if (!inMap.containsKey(EKK2101C010CBSMsg.CHBF_SKBT_NO_ERR))
			{
				inMap.put(EKK2101C010CBSMsg.CHBF_SKBT_NO_ERR, template.getString(EKK2101C010CBSMsg.CHBF_SKBT_NO_ERR));
			}
		}
		if (!template.isNull(EKK2101C010CBSMsg.CHAF_SKBT_NO_ERR))
		{
			if (!inMap.containsKey(EKK2101C010CBSMsg.CHAF_SKBT_NO_ERR))
			{
				inMap.put(EKK2101C010CBSMsg.CHAF_SKBT_NO_ERR, template.getString(EKK2101C010CBSMsg.CHAF_SKBT_NO_ERR));
			}
		}
		if (!template.isNull(EKK2101C010CBSMsg.SVC_KEI_IDO_SBT_CD_ERR))
		{
			if (!inMap.containsKey(EKK2101C010CBSMsg.SVC_KEI_IDO_SBT_CD_ERR))
			{
				inMap.put(EKK2101C010CBSMsg.SVC_KEI_IDO_SBT_CD_ERR, template.getString(EKK2101C010CBSMsg.SVC_KEI_IDO_SBT_CD_ERR));
			}
		}
		if (!template.isNull(EKK2101C010CBSMsg.SKS_SHS_CHG_UM_ERR))
		{
			if (!inMap.containsKey(EKK2101C010CBSMsg.SKS_SHS_CHG_UM_ERR))
			{
				inMap.put(EKK2101C010CBSMsg.SKS_SHS_CHG_UM_ERR, template.getString(EKK2101C010CBSMsg.SKS_SHS_CHG_UM_ERR));
			}
		}
		if (!template.isNull(EKK2101C010CBSMsg.ADCHG_WORK_RRK_BIKO_ERR))
		{
			if (!inMap.containsKey(EKK2101C010CBSMsg.ADCHG_WORK_RRK_BIKO_ERR))
			{
				inMap.put(EKK2101C010CBSMsg.ADCHG_WORK_RRK_BIKO_ERR, template.getString(EKK2101C010CBSMsg.ADCHG_WORK_RRK_BIKO_ERR));
			}
		}
		return param;
	}

	/**
	 * サービス契約＜eo光TV＞手続中料金プラン変更のマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param inMap
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInMsgEKK0101C050(IRequestParameterReadWrite param, Map<String, Object> inMap, Map<String, Object> childMap101, Map<String, Object> childMap81) throws RequestParameterException
	{
		/* ++++++++++ v5.00.02 修正開始 ++++++++++ */
		// 機能コード取得
		String funcCode = (String)inMap.get("func_code");
		/* ++++++++++ v5.00.02 修正終了 ++++++++++ */
		/* ++++++++++ v7.00.00 修正開始 ++++++++++ */
		String ido_rsv_no = (String) inMap.get("ido_rsv_no");
		ArrayList<HashMap<String, Object>> dataList = (ArrayList)inMap.get("EKK1681A010CBSMsg1List");
		HashMap childMap = null;
		if(dataList != null && dataList.size() > 0)
		{
			childMap = (HashMap)dataList.get(0);
		}
		/* ++++++++++ v7.00.00 修正終了 ++++++++++ */
		
		// サービス契約＜eo光TV＞手続中料金プラン変更サービスインターフェイスを作成
		CAANMsg template = new CAANMsg(EKK0101C050CBSMsg.class.getName());
		// テンプレートID
		template.set(EKK0101C050CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0101C050);
		/* ++++++++++ v5.00.02 修正開始 ++++++++++ */
		// 機能コード
		template.set(EKK0101C050CBSMsg.FUNC_CODE, funcCode);
		/* ++++++++++ v5.00.02 修正終了 ++++++++++ */
		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);
		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);
		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);
		//更新日付
		Map<Object, Object> workMap = param.getMappingWorkArea();
		if((String) workMap.get(KK_COM_SVC_UP_DTM) == null || "".equals((String) workMap.get(KK_COM_SVC_UP_DTM)))
		{
			if(inMap.get("upd_dtm_svc_kei") == null || "".equals(inMap.get("upd_dtm_svc_kei")))
			{
				template.setNull(EKK0101C050CBSMsg.UPD_DTM_BF);
			}
			else
			{
				template.set(EKK0101C050CBSMsg.UPD_DTM_BF, (String)inMap.get("upd_dtm_svc_kei"));
			}
		}
		else
		{
			template.set(EKK0101C050CBSMsg.UPD_DTM_BF, (String) workMap.get(KK_COM_SVC_UP_DTM));
		}
		
		// ◇ 業務データの設定
		// サービス契約番号
		if(inMap.get("svc_kei_no") == null || "".equals(inMap.get("svc_kei_no")))
		{
			template.setNull(EKK0101C050CBSMsg.SVC_KEI_NO);
		}
		else
		{
			template.set(EKK0101C050CBSMsg.SVC_KEI_NO, (String)inMap.get("svc_kei_no"));
		}
		
		/* ++++++++++ v7.00.00 修正開始 ++++++++++ */
		if(ido_rsv_no == null || "".equals(ido_rsv_no))
		{
			if(childMap81.get("mskm_dtl_no") == null || "".equals(childMap81.get("mskm_dtl_no")))
			{
				template.setNull(EKK0101C050CBSMsg.MSKM_DTL_NO);
			}
			else
			{
				template.set(EKK0101C050CBSMsg.MSKM_DTL_NO, (String)childMap81.get("mskm_dtl_no"));
			}
		}
		else
		{
			if(childMap.get("mskm_dtl_no") == null || "".equals(childMap.get("mskm_dtl_no")))
			{
				template.setNull(EKK0101C050CBSMsg.MSKM_DTL_NO);
			}
			else
			{
				template.set(EKK0101C050CBSMsg.MSKM_DTL_NO, (String)childMap.get("mskm_dtl_no"));
			}
			/* ++++++++++ v7.00.00 修正終了 ++++++++++ */
		}
		
		if(inMap.get("prc_grp_cd") == null || "".equals(inMap.get("prc_grp_cd")))
		{
			template.setNull(EKK0101C050CBSMsg.PRC_GRP_CD);
		}
		else
		{
			template.set(EKK0101C050CBSMsg.PRC_GRP_CD, (String)inMap.get("prc_grp_cd"));
		}
		
		if(inMap.get("aft_pcrs_cd") == null || "".equals(inMap.get("aft_pcrs_cd")))
		{
			template.setNull(EKK0101C050CBSMsg.PCRS_CD);
		}
		else
		{
			template.set(EKK0101C050CBSMsg.PCRS_CD, (String)inMap.get("aft_pcrs_cd"));
		}
		
		if(inMap.get("aft_pplan_cd") == null || "".equals(inMap.get("aft_pplan_cd")))
		{
			template.setNull(EKK0101C050CBSMsg.PPLAN_CD);
		}
		else
		{
			template.set(EKK0101C050CBSMsg.PPLAN_CD, (String)inMap.get("aft_pplan_cd"));
		}
		
		if(childMap81.get("tk_hoshiki_kei_no") == null || "".equals(childMap81.get("tk_hoshiki_kei_no")))
		{
			template.setNull(EKK0101C050CBSMsg.TK_HOSHIKI_KEI_NO);
		}
		else
		{
			template.set(EKK0101C050CBSMsg.TK_HOSHIKI_KEI_NO, (String)childMap81.get("tk_hoshiki_kei_no"));
		}
		
		if(childMap81.get("pnlty_hassei_cd") == null || "".equals(childMap81.get("pnlty_hassei_cd")))
		{
			template.setNull(EKK0101C050CBSMsg.PNLTY_HASSEI_CD);
		}
		else
		{
			template.set(EKK0101C050CBSMsg.PNLTY_HASSEI_CD, (String)childMap81.get("pnlty_hassei_cd"));
		}
		
		if(childMap101.get("dmps_anken_no") == null || "".equals(childMap101.get("dmps_anken_no")))
		{
			template.setNull(EKK0101C050CBSMsg.DMPS_ANKEN_NO);
		}
		else
		{
			template.set(EKK0101C050CBSMsg.DMPS_ANKEN_NO, (String)childMap101.get("dmps_anken_no"));
		}
		// ANK-4673-00-00 ADD START
		if(inMap.get("bfr_pcrs_cd") == null || "".equals(inMap.get("bfr_pcrs_cd")))
		{
			template.setNull(EKK0101C050CBSMsg.EX_PCRS_CD);
		}
		else
		{
			template.set(EKK0101C050CBSMsg.EX_PCRS_CD, (String)inMap.get("bfr_pcrs_cd"));
		}
		// ANK-4673-00-00 ADD END
		
		return template;
	}

	/**
	 * サービス契約＜eo光TV＞手続中料金プラン変更の下りマッピング処理を行います。
	 * <br>
	 * @param msgList
	 * @param param
	 * @param inMap
	 * @param ccMap
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private void editOutMsgEKK0101C050(Map<?, ?> msgList, IRequestParameterReadWrite param, Map<String, Object> inMap) throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];
		// 更新年月日時分秒を作業領域に設定
		setSvcUpdDtm(param, parentTemplate.getString(EKK0101C050CBSMsg.UPD_DTM));
				
		// リターンコード取得
		int returnCode = (Integer)msgList.get(JCMConstants.RET_CD_INT_KEY);
		// エラー情報の設定
		editErrorInfoEKK0101C050(param, inMap, templates, returnCode);
		
		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));
		
		// 取得したリターンコード、ステータスの内容を見て異常かどうかの判断をする。
		String rtnCode = msgList.get(JCMConstants.RET_CD_INT_KEY).toString();
		Integer status = parentTemplate.getInt(JCMConstants.STATUS_INT_KEY);
		// 異常の場合、SCCallExceptionを生成してスローする
		if(!("0".equals(rtnCode) && 0 == status.intValue()))
		{
			SCCallException scCallEx = new SCCallException("戻り値不正", rtnCode, status);
			throw scCallEx;
		}
	}

	/**
	 * サービス契約＜eo光TV＞手続中料金プラン変更のエラー情報マッピング処理を行います。
	 * <br>
	 * @param param
	 * @param inMap
	 * @param templates
	 * @param returnCode
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException
	 */
	private IRequestParameterReadWrite editErrorInfoEKK0101C050(IRequestParameterReadWrite param, Map<String, Object> inMap,
																CAANMsg[] templates, int returnCode) throws RequestParameterException
	{
		CAANMsg template = templates[0];
		int templateStatus = template.getInt(EKK0101C050CBSMsg.STATUS);
		if (returnCode != 0)
		{
			templateStatus = 9000;
		}
		if (JCMAPLConstMgr.getString("RETURN_MESSAGE_" + String.format("%1$04d", templateStatus)) == null)
		{
			templateStatus = 0;
		}
		int bpStatus = 0;
		Object obj = param.getControlMapData(SCControlMapKeys.RETURN_CODE);
		if (obj == null)
		{
			bpStatus = -1;
		}
		else
		{
			bpStatus = Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
		}
		if (templateStatus > bpStatus)
		{
			// BPにサービスコンポーネントのステータスを設定する。
			String formatStatus = String.format("%1$04d", templateStatus);
			String message = JCMAPLConstMgr.getString("RETURN_MESSAGE_" + formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
		}
		if (!template.isNull(EKK0101C050CBSMsg.SVC_KEI_NO_ERR))
		{
			if (!inMap.containsKey(EKK0101C050CBSMsg.SVC_KEI_NO_ERR))
			{
				inMap.put(EKK0101C050CBSMsg.SVC_KEI_NO_ERR, template.getString(EKK0101C050CBSMsg.SVC_KEI_NO_ERR));
			}
		}
		if (!template.isNull(EKK0101C050CBSMsg.MSKM_DTL_NO_ERR))
		{
			if (!inMap.containsKey(EKK0101C050CBSMsg.MSKM_DTL_NO_ERR))
			{
				inMap.put(EKK0101C050CBSMsg.MSKM_DTL_NO_ERR, template.getString(EKK0101C050CBSMsg.MSKM_DTL_NO_ERR));
			}
		}
		if (!template.isNull(EKK0101C050CBSMsg.PRC_GRP_CD_ERR))
		{
			if (!inMap.containsKey(EKK0101C050CBSMsg.PRC_GRP_CD_ERR))
			{
				inMap.put(EKK0101C050CBSMsg.PRC_GRP_CD_ERR, template.getString(EKK0101C050CBSMsg.PRC_GRP_CD_ERR));
			}
		}
		if (!template.isNull(EKK0101C050CBSMsg.PCRS_CD_ERR))
		{
			if (!inMap.containsKey(EKK0101C050CBSMsg.PCRS_CD_ERR))
			{
				inMap.put(EKK0101C050CBSMsg.PCRS_CD_ERR, template.getString(EKK0101C050CBSMsg.PCRS_CD_ERR));
			}
		}
		if (!template.isNull(EKK0101C050CBSMsg.PPLAN_CD_ERR))
		{
			if (!inMap.containsKey(EKK0101C050CBSMsg.PPLAN_CD_ERR))
			{
				inMap.put(EKK0101C050CBSMsg.PPLAN_CD_ERR, template.getString(EKK0101C050CBSMsg.PPLAN_CD_ERR));
			}
		}
		if (!template.isNull(EKK0101C050CBSMsg.TK_HOSHIKI_KEI_NO_ERR))
		{
			if (!inMap.containsKey(EKK0101C050CBSMsg.TK_HOSHIKI_KEI_NO_ERR))
			{
				inMap.put(EKK0101C050CBSMsg.TK_HOSHIKI_KEI_NO_ERR, template.getString(EKK0101C050CBSMsg.TK_HOSHIKI_KEI_NO_ERR));
			}
		}
		if (!template.isNull(EKK0101C050CBSMsg.PNLTY_HASSEI_CD_ERR))
		{
			if (!inMap.containsKey(EKK0101C050CBSMsg.PNLTY_HASSEI_CD_ERR))
			{
				inMap.put(EKK0101C050CBSMsg.PNLTY_HASSEI_CD_ERR, template.getString(EKK0101C050CBSMsg.PNLTY_HASSEI_CD_ERR));
			}
		}
		if (!template.isNull(EKK0101C050CBSMsg.DMPS_ANKEN_NO_ERR))
		{
			if (!inMap.containsKey(EKK0101C050CBSMsg.DMPS_ANKEN_NO_ERR))
			{
				inMap.put(EKK0101C050CBSMsg.DMPS_ANKEN_NO_ERR, template.getString(EKK0101C050CBSMsg.DMPS_ANKEN_NO_ERR));
			}
		}
		// ANK-4673-00-00 ADD START
		if (!template.isNull(EKK0101C050CBSMsg.EX_PCRS_CD_ERR))
		{
			if (!inMap.containsKey(EKK0101C050CBSMsg.EX_PCRS_CD_ERR))
			{
				inMap.put(EKK0101C050CBSMsg.EX_PCRS_CD_ERR, template.getString(EKK0101C050CBSMsg.EX_PCRS_CD_ERR));
			}
		}
		// ANK-4673-00-00 ADD END
		return param;
	}

	/**
	 * サービス契約＜eo光TV＞料金プラン変更のマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param inMap
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	private CAANMsg editInMsgEKK0101C060(IRequestParameterReadWrite param, Map<String, Object> inMap, Map<String, Object> childMap101, Map<String, Object> childMap81) throws RequestParameterException
	{
		/* ++++++++++ v5.00.02 修正開始 ++++++++++ */
		// 機能コード取得
		String funcCode = (String)inMap.get("func_code");
		/* ++++++++++ v5.00.02 修正終了 ++++++++++ */

		// サービス契約＜eo光TV＞料金プラン変更サービスインターフェイスを作成
		CAANMsg template = new CAANMsg(EKK0101C060CBSMsg.class.getName());
		// テンプレートID
		template.set(EKK0101C060CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0101C060);
		/* ++++++++++ v5.00.02 修正開始 ++++++++++ */
		// 機能コード
		template.set(EKK0101C060CBSMsg.FUNC_CODE, funcCode);
		/* ++++++++++ v5.00.02 修正終了 ++++++++++ */
		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);
		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);
		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);
		//工事案件種別コード
		String kojiak_sbt_cd = (String) inMap.get("kojiak_sbt_cd");
		//更新日付
		Map<Object, Object> workMap = param.getMappingWorkArea();
		if((String) workMap.get(KK_COM_SVC_UP_DTM) == null || "".equals((String) workMap.get(KK_COM_SVC_UP_DTM)))
		{
			if(inMap.get("upd_dtm_svc_kei") == null || "".equals(inMap.get("upd_dtm_svc_kei")))
			{
				template.setNull(EKK0101C060CBSMsg.UPD_DTM_BF);
			}
			else
			{
				template.set(EKK0101C060CBSMsg.UPD_DTM_BF, (String)inMap.get("upd_dtm_svc_kei"));
			}
		}
		else
		{
			template.set(EKK0101C060CBSMsg.UPD_DTM_BF, (String) workMap.get(KK_COM_SVC_UP_DTM));
		}
		
		// ◇ 業務データの設定
		// サービス契約番号
		if(inMap.get("svc_kei_no") == null || "".equals(inMap.get("svc_kei_no")))
		{
			template.setNull(EKK0101C060CBSMsg.SVC_KEI_NO);
		}
		else
		{
			template.set(EKK0101C060CBSMsg.SVC_KEI_NO, (String)inMap.get("svc_kei_no"));
		}

		if(inMap.get("mskm_dtl_no") == null || "".equals(inMap.get("mskm_dtl_no")))
		{
			template.setNull(EKK0101C060CBSMsg.MSKM_DTL_NO);
		}
		else
		{
			template.set(EKK0101C060CBSMsg.MSKM_DTL_NO, (String)inMap.get("mskm_dtl_no"));
		}
		
		if(inMap.get("prc_grp_cd") == null || "".equals(inMap.get("prc_grp_cd")))
		{
			template.setNull(EKK0101C060CBSMsg.PRC_GRP_CD);
		}
		else
		{
			template.set(EKK0101C060CBSMsg.PRC_GRP_CD, (String)inMap.get("prc_grp_cd"));
		}
		
		if(inMap.get("aft_pcrs_cd") == null || "".equals(inMap.get("aft_pcrs_cd")))
		{
			template.setNull(EKK0101C060CBSMsg.PCRS_CD);
		}
		else
		{
			template.set(EKK0101C060CBSMsg.PCRS_CD, (String)inMap.get("aft_pcrs_cd"));
		}
		
		if(inMap.get("aft_pplan_cd") == null || "".equals(inMap.get("aft_pplan_cd")))
		{
			template.setNull(EKK0101C060CBSMsg.PPLAN_CD);
		}
		else
		{
			template.set(EKK0101C060CBSMsg.PPLAN_CD, (String)inMap.get("aft_pplan_cd"));
		}
		
		if(childMap81.get("tk_hoshiki_kei_no") == null || "".equals(childMap81.get("tk_hoshiki_kei_no")))
		{
			template.setNull(EKK0101C060CBSMsg.TK_HOSHIKI_KEI_NO);
		}
		else
		{
			template.set(EKK0101C060CBSMsg.TK_HOSHIKI_KEI_NO, (String)childMap81.get("tk_hoshiki_kei_no"));
		}
		
		if(childMap81.get("pnlty_hassei_cd") == null || "".equals(childMap81.get("pnlty_hassei_cd")))
		{
			template.setNull(EKK0101C060CBSMsg.PNLTY_HASSEI_CD);
		}
		else
		{
			template.set(EKK0101C060CBSMsg.PNLTY_HASSEI_CD, (String)childMap81.get("pnlty_hassei_cd"));
		}
		
		if(childMap101.get("dmps_anken_no") == null || "".equals(childMap101.get("dmps_anken_no")))
		{
			template.setNull(EKK0101C060CBSMsg.DMPS_ANKEN_NO);
		}
		else
		{
			template.set(EKK0101C060CBSMsg.DMPS_ANKEN_NO, (String)childMap101.get("dmps_anken_no"));
		}
		
		/* ++++++++++ v6.00.00 修正開始 ++++++++++ */
		if(inMap.get("tekiyo_date") == null || "".equals(inMap.get("tekiyo_date")))
		{
			template.set(EKK0101C060CBSMsg.RSV_APLY_YMD, "20991231");
			template.setNull(EKK0101C060CBSMsg.STB_TEKKYO_YMD);
		}
		else
		{
			template.set(EKK0101C060CBSMsg.RSV_APLY_YMD, (String)inMap.get("tekiyo_date"));
			template.set(EKK0101C060CBSMsg.STB_TEKKYO_YMD, (String)inMap.get("tekiyo_date"));
		}
		/* ++++++++++ v6.00.00 修正終了 ++++++++++ */
		
		if(KOJIAK_SBT_CD_003.equals(kojiak_sbt_cd))
		{
			template.set(EKK0101C060CBSMsg.IDO_DIV, IDO_DIV_00019);
		}
		else
		{
			template.set(EKK0101C060CBSMsg.IDO_DIV, IDO_DIV_00081);
		}
		

		return template;
	}

	/**
	 * サービス契約＜eo光TV＞料金プラン変更の下りマッピング処理を行います。
	 * <br>
	 * @param msgList
	 * @param param
	 * @param inMap
	 * @param ccMap
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private void editOutMsgEKK0101C060(Map<?, ?> msgList, IRequestParameterReadWrite param, Map<String, Object> inMap) throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];
		// 更新年月日時分秒を作業領域に設定
		setSvcUpdDtm(param, parentTemplate.getString(EKK0101C060CBSMsg.UPD_DTM));
		
		// リターンコード取得
		int returnCode = (Integer)msgList.get(JCMConstants.RET_CD_INT_KEY);
		// エラー情報の設定
		editErrorInfoEKK0101C060(param, inMap, templates, returnCode);
		
		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));
		
		// 取得したリターンコード、ステータスの内容を見て異常かどうかの判断をする。
		String rtnCode = msgList.get(JCMConstants.RET_CD_INT_KEY).toString();
		Integer status = parentTemplate.getInt(JCMConstants.STATUS_INT_KEY);
		// 異常の場合、SCCallExceptionを生成してスローする
		if(!("0".equals(rtnCode) && 0 == status.intValue()))
		{
			SCCallException scCallEx = new SCCallException("戻り値不正", rtnCode, status);
			throw scCallEx;
		}
	}

	/**
	 * サービス契約＜eo光TV＞料金プラン変更のエラー情報マッピング処理を行います。
	 * <br>
	 * @param param
	 * @param inMap
	 * @param templates
	 * @param returnCode
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException
	 */
	private IRequestParameterReadWrite editErrorInfoEKK0101C060(IRequestParameterReadWrite param, Map<String, Object> inMap,
																CAANMsg[] templates, int returnCode) throws RequestParameterException
	{
		CAANMsg template = templates[0];
		int templateStatus = template.getInt(EKK0101C060CBSMsg.STATUS);
		if (returnCode != 0)
		{
			templateStatus = 9000;
		}
		if (JCMAPLConstMgr.getString("RETURN_MESSAGE_" + String.format("%1$04d", templateStatus)) == null)
		{
			templateStatus = 0;
		}
		int bpStatus = 0;
		Object obj = param.getControlMapData(SCControlMapKeys.RETURN_CODE);
		if (obj == null)
		{
			bpStatus = -1;
		}
		else
		{
			bpStatus = Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
		}
		if (templateStatus > bpStatus)
		{
			// BPにサービスコンポーネントのステータスを設定する。
			String formatStatus = String.format("%1$04d", templateStatus);
			String message = JCMAPLConstMgr.getString("RETURN_MESSAGE_" + formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
		}
		if (!template.isNull(EKK0101C060CBSMsg.SVC_KEI_NO_ERR))
		{
			if (!inMap.containsKey(EKK0101C060CBSMsg.SVC_KEI_NO_ERR))
			{
				inMap.put(EKK0101C060CBSMsg.SVC_KEI_NO_ERR, template.getString(EKK0101C060CBSMsg.SVC_KEI_NO_ERR));
			}
		}
		if (!template.isNull(EKK0101C060CBSMsg.MSKM_DTL_NO_ERR))
		{
			if (!inMap.containsKey(EKK0101C060CBSMsg.MSKM_DTL_NO_ERR))
			{
				inMap.put(EKK0101C060CBSMsg.MSKM_DTL_NO_ERR, template.getString(EKK0101C060CBSMsg.MSKM_DTL_NO_ERR));
			}
		}
		if (!template.isNull(EKK0101C060CBSMsg.PRC_GRP_CD_ERR))
		{
			if (!inMap.containsKey(EKK0101C060CBSMsg.PRC_GRP_CD_ERR))
			{
				inMap.put(EKK0101C060CBSMsg.PRC_GRP_CD_ERR, template.getString(EKK0101C060CBSMsg.PRC_GRP_CD_ERR));
			}
		}
		if (!template.isNull(EKK0101C060CBSMsg.PCRS_CD_ERR))
		{
			if (!inMap.containsKey(EKK0101C060CBSMsg.PCRS_CD_ERR))
			{
				inMap.put(EKK0101C060CBSMsg.PCRS_CD_ERR, template.getString(EKK0101C060CBSMsg.PCRS_CD_ERR));
			}
		}
		if (!template.isNull(EKK0101C060CBSMsg.PPLAN_CD_ERR))
		{
			if (!inMap.containsKey(EKK0101C060CBSMsg.PPLAN_CD_ERR))
			{
				inMap.put(EKK0101C060CBSMsg.PPLAN_CD_ERR, template.getString(EKK0101C060CBSMsg.PPLAN_CD_ERR));
			}
		}
		if (!template.isNull(EKK0101C060CBSMsg.TK_HOSHIKI_KEI_NO_ERR))
		{
			if (!inMap.containsKey(EKK0101C060CBSMsg.TK_HOSHIKI_KEI_NO_ERR))
			{
				inMap.put(EKK0101C060CBSMsg.TK_HOSHIKI_KEI_NO_ERR, template.getString(EKK0101C060CBSMsg.TK_HOSHIKI_KEI_NO_ERR));
			}
		}
		if (!template.isNull(EKK0101C060CBSMsg.PNLTY_HASSEI_CD_ERR))
		{
			if (!inMap.containsKey(EKK0101C060CBSMsg.PNLTY_HASSEI_CD_ERR))
			{
				inMap.put(EKK0101C060CBSMsg.PNLTY_HASSEI_CD_ERR, template.getString(EKK0101C060CBSMsg.PNLTY_HASSEI_CD_ERR));
			}
		}
		if (!template.isNull(EKK0101C060CBSMsg.DMPS_ANKEN_NO_ERR))
		{
			if (!inMap.containsKey(EKK0101C060CBSMsg.DMPS_ANKEN_NO_ERR))
			{
				inMap.put(EKK0101C060CBSMsg.DMPS_ANKEN_NO_ERR, template.getString(EKK0101C060CBSMsg.DMPS_ANKEN_NO_ERR));
			}
		}
		if (!template.isNull(EKK0101C060CBSMsg.RSV_APLY_YMD_ERR))
		{
			if (!inMap.containsKey(EKK0101C060CBSMsg.RSV_APLY_YMD_ERR))
			{
				inMap.put(EKK0101C060CBSMsg.RSV_APLY_YMD_ERR, template.getString(EKK0101C060CBSMsg.RSV_APLY_YMD_ERR));
			}
		}
		if (!template.isNull(EKK0101C060CBSMsg.IDO_DIV_ERR))
		{
			if (!inMap.containsKey(EKK0101C060CBSMsg.IDO_DIV_ERR))
			{
				inMap.put(EKK0101C060CBSMsg.IDO_DIV_ERR, template.getString(EKK0101C060CBSMsg.IDO_DIV_ERR));
			}
		}
		return param;
	}


	/**
	 * サービス契約料金プラン変更中止のマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param inMap
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg editInMsgEKK0081C130(IRequestParameterReadWrite param, Map<String, Object> inMap) throws RequestParameterException
	{
		/* ++++++++++ v5.00.02 修正開始 ++++++++++ */
		// 機能コード取得
		String funcCode = (String)inMap.get("func_code");
		/* ++++++++++ v5.00.02 修正終了 ++++++++++ */
		// サービス契約料金プラン変更中止サービスインターフェイスを作成
		CAANMsg template = new CAANMsg(EKK0081C130CBSMsg.class.getName());
		// テンプレートID
		template.set(EKK0081C130CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0081C130);
		/* ++++++++++ v5.00.02 修正開始 ++++++++++ */
		// 機能コード
		template.set(EKK0081C130CBSMsg.FUNC_CODE, funcCode);
		/* ++++++++++ v5.00.02 修正終了 ++++++++++ */
		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);
		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);
		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);
		
		Map<Object, Object> workMap = param.getMappingWorkArea();
		/* ++++++++++ v7.00.00 追加開始 ++++++++++ */
		ArrayList<HashMap<String, Object>> dataList1681 = (ArrayList<HashMap<String, Object>>) inMap.get("EKK1681A010CBSMsg1List");
		HashMap childMap1681 = (HashMap)dataList1681.get(0);
		/* ++++++++++ v7.00.00 追加終了 ++++++++++ */
		
		// ◇ 業務データの設定
		// サービス契約番号
		if(inMap.get("svc_kei_no") == null || "".equals(inMap.get("svc_kei_no")))
		{
			template.setNull(EKK0081C130CBSMsg.SVC_KEI_NO);
		}
		else
		{
			template.set(EKK0081C130CBSMsg.SVC_KEI_NO, (String)inMap.get("svc_kei_no"));
		}
		/* ++++++++++ v7.00.00 追加開始 ++++++++++ */
		//申込明細番号
		if(childMap1681.get("mskm_dtl_no") == null || "".equals(childMap1681.get("mskm_dtl_no")))
		{
			template.setNull(EKK0081C130CBSMsg.MSKM_DTL_NO);
		}
		else
		{
			template.set(EKK0081C130CBSMsg.MSKM_DTL_NO, (String)childMap1681.get("mskm_dtl_no"));
		}
		/* ++++++++++ v7.00.00 追加終了 ++++++++++ */
		if(workMap.get(KK_COM_SVC_UP_DTM) == null || "".equals(workMap.get(KK_COM_SVC_UP_DTM)))
		{
			if(inMap.get("upd_dtm_svc_kei") == null || "".equals(inMap.get("upd_dtm_svc_kei")))
			{
				template.setNull(EKK0081C130CBSMsg.UPD_DTM_BF);
			}
			else
			{
				template.set(EKK0081C130CBSMsg.UPD_DTM_BF, (String)inMap.get("upd_dtm_svc_kei"));
			}
		}
		else
		{
			template.set(EKK0081C130CBSMsg.UPD_DTM_BF, (String)workMap.get(KK_COM_SVC_UP_DTM));
		}
		
		return template;
	}

	/**
	 * サービス契約料金プラン変更中止の下りマッピング処理を行います。
	 * <br>
	 * @param msgList
	 * @param param
	 * @param inMap
	 * @param ccMap
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private void editOutMsgEKK0081C130(Map<?, ?> msgList, IRequestParameterReadWrite param, Map<String, Object> inMap) throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];
		// 更新年月日時分秒を作業領域に設定
		setSvcUpdDtm(param, parentTemplate.getString(EKK0081C130CBSMsg.UPD_DTM));
		// リターンコード取得
		int returnCode = (Integer)msgList.get(JCMConstants.RET_CD_INT_KEY);
		// エラー情報の設定
		editErrorInfoEKK0081C130(param, inMap, templates, returnCode);
		
		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));
		
		// 取得したリターンコード、ステータスの内容を見て異常かどうかの判断をする。
		String rtnCode = msgList.get(JCMConstants.RET_CD_INT_KEY).toString();
		Integer status = parentTemplate.getInt(JCMConstants.STATUS_INT_KEY);
		// 異常の場合、SCCallExceptionを生成してスローする
		if(!("0".equals(rtnCode) && 0 == status.intValue()))
		{
			SCCallException scCallEx = new SCCallException("戻り値不正", rtnCode, status);
			throw scCallEx;
		}
	}

	/**
	 * サービス契約料金プラン変更中止のエラー情報マッピング処理を行います。
	 * <br>
	 * @param param
	 * @param inMap
	 * @param templates
	 * @param returnCode
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException
	 */
	private IRequestParameterReadWrite editErrorInfoEKK0081C130(IRequestParameterReadWrite param, Map<String, Object> inMap,
																CAANMsg[] templates, int returnCode) throws RequestParameterException
	{
		CAANMsg template = templates[0];
		int templateStatus = template.getInt(EKK0081C130CBSMsg.STATUS);
		if (returnCode != 0)
		{
			templateStatus = 9000;
		}
		if (JCMAPLConstMgr.getString("RETURN_MESSAGE_" + String.format("%1$04d", templateStatus)) == null)
		{
			templateStatus = 0;
		}
		int bpStatus = 0;
		Object obj = param.getControlMapData(SCControlMapKeys.RETURN_CODE);
		if (obj == null)
		{
			bpStatus = -1;
		}
		else
		{
			bpStatus = Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
		}
		if (templateStatus > bpStatus)
		{
			// BPにサービスコンポーネントのステータスを設定する。
			String formatStatus = String.format("%1$04d", templateStatus);
			String message = JCMAPLConstMgr.getString("RETURN_MESSAGE_" + formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
		}
		if (!template.isNull(EKK0081C130CBSMsg.SVC_KEI_NO_ERR))
		{
			if (!inMap.containsKey(EKK0081C130CBSMsg.SVC_KEI_NO_ERR))
			{
				inMap.put(EKK0081C130CBSMsg.SVC_KEI_NO_ERR, template.getString(EKK0081C130CBSMsg.SVC_KEI_NO_ERR));
			}
		}
		if (!template.isNull(EKK0081C130CBSMsg.UPD_DTM_BF_ERR))
		{
			if (!inMap.containsKey(EKK0081C130CBSMsg.UPD_DTM_BF_ERR))
			{
				inMap.put(EKK0081C130CBSMsg.UPD_DTM_BF_ERR, template.getString(EKK0081C130CBSMsg.UPD_DTM_BF_ERR));
			}
		}
		return param;
	}

	/**
	 * 申込明細＿工事案件一覧照会のマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param inMap
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	private CAANMsg editInMsgEKU0091B020(IRequestParameterReadWrite param, Map<String, Object> inMap) throws RequestParameterException
	{
		// 申込明細＿工事案件一覧照会サービスインターフェイスを作成
		CAANMsg template = new CAANMsg(EKU0091B020CBSMsg.class.getName());
		// テンプレートID
		template.set(EKU0091B020CBSMsg.TEMPLATEID, TEMPLATE_ID_EKU0091B020);
		// 機能コード
		template.set(EKU0091B020CBSMsg.FUNC_CODE, "1");
		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);
		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);
		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);
		
		// ◇ 業務データの設定
		// サービス契約番号
		if(inMap.get("kojiak_no") == null || "".equals(inMap.get("kojiak_no")))
		{
			template.setNull(EKU0091B020CBSMsg.KEY_KOJIAK_NO);
		}
		else
		{
			template.set(EKU0091B020CBSMsg.KEY_KOJIAK_NO, (String)inMap.get("kojiak_no"));
		}
		
		return template;
	}

	/**
	 * 申込明細＿工事案件一覧照会の下りマッピング処理を行います。
	 * <br>
	 * @param msgList
	 * @param param
	 * @param inMap
	 * @param ccMap
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private void editOutMsgEKU0091B020(Map<?, ?> msgList, IRequestParameterReadWrite param, Map<String, Object> inMap) throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];
		CAANMsg[] templateArray = null;
		// 結果を詰めるマップを取得
		ArrayList<HashMap<String, Object>> dataList = null;
		
		templateArray = parentTemplate.getCAANMsgList(EKU0091B020CBSMsg.EKU0091B020CBSMSG1LIST);
		dataList = (ArrayList)inMap.get("EKU0091B020CBSMsg1List");
		if (dataList == null)
		{
			dataList = new ArrayList();
		}
		
		
		if (templateArray != null )
		{

			CAANMsg childTemplate = templateArray[0];
			dataList.add(new HashMap());
			HashMap childMap = (HashMap)dataList.get(0);
			
			// 
			if (childTemplate.isNull(EKU0091B020CBSMsg1List.MSKM_DTL_NO)) {
				childMap.put("mskm_dtl_no", new String());
				inMap.put("mskm_dtl_no", new String());
			} else {
				childMap.put("mskm_dtl_no", childTemplate.getString(EKU0091B020CBSMsg1List.MSKM_DTL_NO));
				inMap.put("mskm_dtl_no", childTemplate.getString(EKU0091B020CBSMsg1List.MSKM_DTL_NO));
			}


		}
	
		inMap.put("EKU0091B020CBSMsg1List", dataList);
		
		
		// リターンコード取得
		int returnCode = (Integer)msgList.get(JCMConstants.RET_CD_INT_KEY);
		// エラー情報の設定
		editErrorInfoEKU0091B020(param, inMap, templates, returnCode);
		
		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));
		
		// 取得したリターンコード、ステータスの内容を見て異常かどうかの判断をする。
		String rtnCode = msgList.get(JCMConstants.RET_CD_INT_KEY).toString();
		Integer status = parentTemplate.getInt(JCMConstants.STATUS_INT_KEY);
		// 異常の場合、SCCallExceptionを生成してスローする
		if(!("0".equals(rtnCode) && 0 == status.intValue()))
		{
			SCCallException scCallEx = new SCCallException("戻り値不正", rtnCode, status);
			throw scCallEx;
		}
	}

	/**
	 * 申込明細＿工事案件一覧照会のエラー情報マッピング処理を行います。
	 * <br>
	 * @param param
	 * @param inMap
	 * @param templates
	 * @param returnCode
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException
	 */
	private IRequestParameterReadWrite editErrorInfoEKU0091B020(IRequestParameterReadWrite param, Map<String, Object> inMap,
																CAANMsg[] templates, int returnCode) throws RequestParameterException
	{
		CAANMsg template = templates[0];
		int templateStatus = template.getInt(EKU0091B020CBSMsg.STATUS);
		if (returnCode != 0)
		{
			templateStatus = 9000;
		}
		if (JCMAPLConstMgr.getString("RETURN_MESSAGE_" + String.format("%1$04d", templateStatus)) == null)
		{
			templateStatus = 0;
		}
		int bpStatus = 0;
		Object obj = param.getControlMapData(SCControlMapKeys.RETURN_CODE);
		if (obj == null)
		{
			bpStatus = -1;
		}
		else
		{
			bpStatus = Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
		}
		if (templateStatus > bpStatus)
		{
			// BPにサービスコンポーネントのステータスを設定する。
			String formatStatus = String.format("%1$04d", templateStatus);
			String message = JCMAPLConstMgr.getString("RETURN_MESSAGE_" + formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
		}
		if (!template.isNull(EKU0091B020CBSMsg.KEY_KOJIAK_NO_ERR))
		{
			if (!inMap.containsKey(EKU0091B020CBSMsg.KEY_KOJIAK_NO_ERR))
			{
				inMap.put(EKU0091B020CBSMsg.KEY_KOJIAK_NO_ERR, template.getString(EKU0091B020CBSMsg.KEY_KOJIAK_NO_ERR));
			}
		}
		return param;
	}

	
	/**
	 * eoテレビ変更、移動予約ありの場合、コース変更要不要を判断します。
	 * <br>
	 * @param param
	 * @param inMap
	 * @param templates
	 * @param returnCode
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private boolean isIdoRsvCourseChg(IRequestParameterReadWrite param, Map<String, Object> inMap)
	{
		ArrayList<HashMap<String, Object>> dataList = (ArrayList)inMap.get("EKK1681A010CBSMsg1List");
		HashMap childMap = (HashMap)dataList.get(0);
		
		if(childMap.get("new_prc_grp_cd") != null && !"".equals(childMap.get("new_prc_grp_cd")))
		{
			if(!childMap.get("new_prc_grp_cd").equals(childMap.get("old_prc_grp_cd")))
			{
				return true;
			}
		}
		if(inMap.get("aft_pcrs_cd") != null && !"".equals(inMap.get("aft_pcrs_cd")))
		{
			if(!inMap.get("aft_pcrs_cd").equals(childMap.get("old_pcrs_cd")))
			{
				return true;
			}
		}
		if(inMap.get("aft_pplan_cd") != null && !"".equals(inMap.get("aft_pplan_cd")))
		{
			if(!inMap.get("aft_pplan_cd").equals(childMap.get("old_pplan_cd")))
			{
				return true;
			}
		}
		if(childMap.get("new_tk_hoshiki_kei_no") != null && !"".equals(childMap.get("new_tk_hoshiki_kei_no")))
		{
			if(!childMap.get("new_tk_hoshiki_kei_no").equals(childMap.get("old_tk_hoshiki_kei_no")))
			{
				return true;
			}
		}
		if(childMap.get("new_dmps_anken_no") != null && !"".equals(childMap.get("new_dmps_anken_no")))
		{
			if(!childMap.get("new_dmps_anken_no").equals(childMap.get("old_dmps_anken_no")))
			{
				return true;
			}
		}
		
		
		return false;
	}
	
	
	/**
	 * SCインプット共通データ設定処理を行います。
	 * <br>
	 * @param param
	 * @param templates
	 * @return HashMap<String, Object>
	 * @throws RequestParameterException
	 */
	private HashMap<String, Object> getParamMsg(IRequestParameterReadWrite param, CAANMsg[] templates) throws RequestParameterException
	{
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		
		/* SCインプット共通データ */
		// 【取得元：電文ヘッダ(ヘッダ)】
		// 電文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));
		
		// テンプレートリスト
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);
		
		return paramMap;
	}
	
	/**
	 * サービス契約の更新タイムスタンプを取得します。
	 * @param param リクエストパラメータ
	 * @param updDtm 更新時間
	 * @throws Exception 
	 */
	private void setSvcUpdDtm(IRequestParameterReadWrite param, String updDtm) throws Exception
	{
		// 作業領域の取得
		Map<Object, Object> workMap = param.getMappingWorkArea();
		if (updDtm != null && !"".equals(updDtm))
		{
			workMap.put(KK_COM_SVC_UP_DTM, updDtm);
		}
	}
	/**
	 * サービス契約の更新タイムスタンプを取得します。
	 * @param param リクエストパラメータ
	 * @param updDtm 更新時間
	 * @throws Exception 
	 */
	private void setAdchgUpdDtm(String updDtm, Map<String, Object> ccMap) throws Exception
	{
		// 作業領域の取得
		if (updDtm != null && !"".equals(updDtm))
		{
			ccMap.put("adchg_upd_dtm", updDtm);
		}
	}

}
