/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JKKAdchgAddSvcKeiTvCC
*   ソースファイル名：JKKAdchgAddSvcKeiTvCC.java
*   作成者          ：富士通
*   日付            ：2011年10月10日
*＜機能概要＞
*   eo光テレビ登録部品
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v4.00.00    2012/10/10   FJ）        新規作成
*  v10.00.00	2014/07/11  FJ)北谷     ANK-2135-00-00対応
*  v10.00.01	2014/08/07  FJ)森脇     IT1-2014-0000259対応
*  v10.00.02    2014/10/26  FJ)阮       OM-2014-0003432対応
*  v39.00.00    2018/10/10  FJ)舘山     ANK-3488-00-00対応
*
**********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import com.fujitsu.futurity.bp.custom.constant.JKKAdchgConstCC;
import com.fujitsu.futurity.bp.custom.constant.JKKAdchgConstCC.PCRS_CD;
import com.fujitsu.futurity.bp.custom.constant.JKKAdchgConstCC.PPLAN_CD;
import com.fujitsu.futurity.bp.x21.bpm.ServiceComponentRequestInvoker;
import com.fujitsu.futurity.bp.x21.bpm.db.SessionHandle;
import com.fujitsu.futurity.bp.x21.bpm.exception.RequestParameterException;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadWrite;
import com.fujitsu.futurity.bp.x21.cc.AbstractCommonComponent;
import com.fujitsu.futurity.bp.x21.cc.exception.CCException;
import com.fujitsu.futurity.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.constant.JKKStrConst;
import eo.common.constant.JPCModelConstant;
import eo.ejb.cbs.cbsmsg.EKK0021A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0021D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0101D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0181D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0241D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0381D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0581A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0581A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK1021C011CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1021C011CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK1021D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1091D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1091D010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK2931D010CBSMsg;

/**
 * eo光テレビ登録部品
 * <br>
 * @author 富士通
 */
public class JKKAdchgAddSvcKeiTvCC extends AbstractCommonComponent
{
	/** リターンメッセージ */
	private static final String RETURN_MESSAGE_STRING = "RETURN_MESSAGE_";
	/** リターンメッセージ */
	private static final String RETURN_MESSAGE_FORMAT = "%1$04d";
	/** エラー用 */
	private static final String SC_ERROR_STRING = "サービスコンポーネントエラー";
	/** 作業マップ名 */
	private static final String CC_WORK_AREA_NAME_TV = "JKKAddSvcKeiTvCCWork";
	/** 作業マップ名 */
	private static final String CC_WORK_AREA_NAME_KEISHA = "JKKAddKeishaServiceCCWork";
	/** 作業マップ名 */
	private static final String CC_WORK_AREA_NAME_MSKM = "JKKAddMskmServiceCCWork";
	/** 作業マップ名 */
	private static final String CC_WORK_AREA_NAME_MSKM_LIST = "JKKAddMskmServiceCCWorkList";
	/** 作業マップ名 */
	private static final String CC_WORK_AREA_NAME_PAYWAY = "JKKAddSvcPaywayCCWork";
	/** ArrayList名 */
	private static final String SVC_KEI_UCWK_LIST = "svc_kei_ucwk_list";
	/** ArrayList名 */
	private static final String KKTK_SVC_KEI_LIST = "kktk_svc_kei_list";
	/** 機器提供サービス契約登録用プレフィックス */
	private static final String PREFIX_KIKI_ADD = "kk0341_";	

	
	/**
	 * eo光テレビ登録処理を行います。
	 * <br>
	 * @param handle
	 * @param param
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws Exception
	 */
	public IRequestParameterReadWrite addSvcKeiTv(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		HashMap<String, Object> paramMap = setSCInputCommonData(param, new HashMap<String, Object>());
		Map<?, ?> result = null;
		CAANMsg template = null;
		
		// OM-2014-0003432 2014/10/26 ADD START
		// 住所変更登録コモンコンポーネントマッピングクラスインスタンスを取得
		JKKAdchgMapperCC mapper = JKKAdchgMapperCC.getInstance();
		HashMap<String, Object> EKK0581A010Map;
		HashMap<String, String> condMap = new HashMap<String, String>();
		// OM-2014-0003432 2014/10/26 ADD END

		/* ユーザデータ情報 */
		HashMap inMapChk = (HashMap)(param.getData(fixedText));
		if (inMapChk == null)
		{
			return param;
		}

		String mskmDtlNo = getMskmDtlWorkMapValue(param, "mskm_dtl_no_tv");
		if (mskmDtlNo == null || "".equals(mskmDtlNo))
		{
			// 申込明細登録
			template = editInEKK0021D010(param, fixedText); // 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
			editRetEKK0021D010(result, param, fixedText); // 下りマッピング
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{ // ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}
		}

		
		if ((String)inMapChk.get("kk0101_svc_cd") != null && !"".equals((String)inMapChk.get("kk0101_svc_cd")))
		{
			// OM-2014-0003432 2014/10/26 ADD START
			// 電波障害コードが空白でない場合はそれに相応するプランの取得を行う。
			String tenSakiPplanCd = "";
			if ((String)inMapChk.get("kk0101_dmps_anken_no") != null && !"".equals((String)inMapChk.get("kk0101_dmps_anken_no"))
					&& "A23".equals((String)inMapChk.get("kk0101_pcrs_cd"))) {
				// EKK0581A010  電波障害案件一意照会
				condMap.clear();
				condMap.put( JKKAdchgMapperCC.COND_KEY_DMPS_ANKEN_NO, (String)inMapChk.get("kk0101_dmps_anken_no") );
				EKK0581A010Map = mapper.setEKK0581A010( param, fixedText, condMap );
				result = scCall.run( EKK0581A010Map, handle);
				HashMap<String, Object> kk0581_a010_map = mapper.getEKK0581A010( param, fixedText, result );
				mapper.scResultCheck( param );
				if (!kk0581_a010_map.isEmpty()) {
					// 転居先相応のプランコードの取得
					tenSakiPplanCd = (String) kk0581_a010_map.get(EKK0581A010CBSMsg1List.DMPS_ANKEN_AITAI_PPLAN_CD);
					inMapChk.put( "kk0101_dmps_pplan_cd", tenSakiPplanCd );
				}
			}
			// OM-2014-0003432 2014/10/26 ADD END
			// サービス契約＜TV＞登録
			// OM-2014-0003432 2014/10/26 MOD START
//			template = editInEKK0101D010(param, fixedText); // 上りマッピング
			template = editInEKK0101D010(param, fixedText,tenSakiPplanCd); // 上りマッピング
			// OM-2014-0003432 2014/10/26 MOD END
			result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
			editRetEKK0101D010(result, param, fixedText); // 下りマッピング
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{ // ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}
		}

		// ケーブルガイド誌が0冊は、オプションサービス契約を作成しない。
		if ((String)inMapChk.get("kk0381_op_svc_cd") != null && !"".equals((String)inMapChk.get("kk0381_op_svc_cd")) &&
				!"0".equals((String)inMapChk.get("kk0381_cable_guide_mskm_cnt")) &&
					inMapChk.get("kk0381_cable_guide_mskm_cnt") != null)
		{
			// オプションサービス契約＜TV＞登録
			template = editInEKK0381D010(param, fixedText); // 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
			editRetEKK0381D010(result, param, fixedText); // 下りマッピング
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{ // ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}
		}

		// STB台数取得
		HashMap inMap = (HashMap)param.getData(fixedText);
		int devCnt = ((ArrayList)inMap.get(SVC_KEI_UCWK_LIST)).size();
		int index = 0;
	
		for (int i = 0; i < devCnt; i++)
		{
			inMap = (HashMap)param.getData(fixedText);			
			inMap = (HashMap)((ArrayList)inMap.get(SVC_KEI_UCWK_LIST)).get(i);
			
			if ((String)inMap.get("kk0181_pcrs_cd") != null && !"".equals((String)inMap.get("kk0181_pcrs_cd")))
			{
				// サービス契約内訳＜TV＞登録
				template = editInEKK0181D010(param, fixedText, i); // 上りマッピング
				result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
				editRetEKK0181D010(result, param, fixedText, i); // 下りマッピング
				if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
				{ // ステータスが単項目エラー以上であれば例外をスロー
					throw new CCException(SC_ERROR_STRING, new Exception());
				}
// DEL-SATART
//				inMap = (HashMap)param.getData(fixedText);
// DEL-END
				ArrayList dataList = null;
				dataList = (ArrayList)inMap.get(KKTK_SVC_KEI_LIST);
						
// ▽▽▽ ANK-3488-00-00 Modify START
//				for (int j = 0; j < 3; j++)
				for (int j = 0; j < 3 && j < dataList.size(); j++)
// △△△ ANK-3488-00-00 Modify END
				{						
					// 機器提供サービス契約登録
// MOD-SATART
//					editInKktkSvcKei(param, fixedText, index, KKTK_SVC_KEI_LIST, PREFIX_KIKI_ADD);
//					JKKBpCommon.addKktkSvcKei(handle, param, (HashMap)dataList.get(index), PREFIX_KIKI_ADD);
//					editOutKktkSvcKei(param, fixedText, index, KKTK_SVC_KEI_LIST, PREFIX_KIKI_ADD);
//					index ++;
					editInKktkSvcKei(param, fixedText, index, KKTK_SVC_KEI_LIST, PREFIX_KIKI_ADD, (HashMap)dataList.get(j));
					JKKBpCommon.addKktkSvcKei(handle, param, (HashMap)dataList.get(j), PREFIX_KIKI_ADD);
					editOutKktkSvcKei(param, fixedText, index, KKTK_SVC_KEI_LIST, PREFIX_KIKI_ADD, (HashMap)dataList.get(j));
// MOD-END
				}
			}
		}

		// サービス契約回線内訳番号がわたされていれば回線対象サービス契約登録の登録を行う
		if (inMapChk != null && inMapChk.get("kk0241_svc_kei_kaisen_ucwk_no") != null && !"".equals(inMapChk.get("kk0241_svc_kei_kaisen_ucwk_no")))
		{
			// 回線対象サービス契約登録
			template = editInEKK0241D010(param, fixedText); // 上りマッピング
			result = scCall.run(putParamMap(paramMap, template), handle); // SC呼び出し
			editRetEKK0241D010(result, param, fixedText); // 下りマッピング
			if (getReturnCode(param) >= JPCModelConstant.SINGLEDATA_ERR)
			{ // ステータスが単項目エラー以上であれば例外をスロー
				throw new CCException(SC_ERROR_STRING, new Exception());
			}
		}

		HashMap<String, Object> KKSV0674048CC = (HashMap<String, Object>)param.getData("KKSV0674048CC");
		String jdgChgDivTv = (String)KKSV0674048CC.get("jdg_chg_div_tv");
		if (!"4".equals(jdgChgDivTv))
		{
			// 一時金設定処理
			addTempChrg(param, fixedText, handle);
		}
		
		// ANK-2135-00-00 2014/07/11 add start
		if (("0".equals(jdgChgDivTv) || "4".equals(jdgChgDivTv))      // 0:追加  4:解約新規
			 && "1".equals(inMapChk.get("cdbs_stch_set_mskm_um")) ){
			// 申込時登録不可契約予約にスタｃｈセット申込内容を登録する
			addMkjAddfKeiRvStarCh(param, fixedText, handle);
		}
		// ANK-2135-00-00 2014/07/11 add end
		
		// 進捗吐き出し
		writePgr(param, fixedText, handle);

		return param;
	}

	/**
	 * リクエストパラメータのキーに対応する値を返却します。
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText
	 * @param key 取得する値のキー
	 * @return 取得した値
	 * @throws RequestParameterException
	 */
	private String getMapValue(IRequestParameterReadWrite param, String fixedText, String key) throws RequestParameterException
	{
		HashMap inMap = (HashMap)(param.getData(fixedText));
		String result = (String)inMap.get(key);
		if ("".equals(result))
		{
			result = null;
		}

		return result;
	}

	/**
	 * 作業マップの値を取得します。
	 * 
	 * <br>
	 * @param param
	 * @param key
	 * @return 取得した値
	 * @throws RequestParameterException
	 */
	private String getWorkMapValue(IRequestParameterReadWrite param, String key) throws RequestParameterException
	{
		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();

		HashMap inMap = null;
		/* 作業項目情報 */
		if (workMap != null)
		{
			inMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_TV);
		}
		else
		{
			inMap = null;
		}

		String result = null;
		if (inMap != null)
		{
			result = (String)inMap.get(key);
		}

		if ("".equals(result))
		{
			result = null;
		}

		return result;
	}

	/**
	 * 作業マップ（申込）の値を取得します。
	 * 
	 * <br>
	 * @param param
	 * @param key
	 * @return 取得した値
	 * @throws RequestParameterException
	 */
	private String getMskmWorkMapValue(IRequestParameterReadWrite param, String key) throws RequestParameterException
	{
		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();

		HashMap inMap = null;
		/* 申込作業項目情報 */
		if (workMap != null)
		{
			inMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_MSKM);
		}
		else
		{
			inMap = null;
		}

		String result = null;
		if (inMap != null)
		{
			result = (String)inMap.get(key);
		}

		if ("".equals(result))
		{
			result = null;
		}

		return result;
	}

	/**
	 * 作業マップ（申込明細）の値を取得します。
	 * 
	 * <br>
	 * @param param
	 * @param key
	 * @return 取得した値
	 * @throws RequestParameterException
	 */
	private String getMskmDtlWorkMapValue(IRequestParameterReadWrite param, String key) throws RequestParameterException
	{
		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();
		HashMap inMap = null;
		HashMap workDataMap_Mskm = null;
		String result = null;

		if (workMap != null)
		{
			workDataMap_Mskm = (HashMap)workMap.get(CC_WORK_AREA_NAME_MSKM);
			if (workDataMap_Mskm != null)
			{
				ArrayList inList1 = ((ArrayList)workDataMap_Mskm.get(CC_WORK_AREA_NAME_MSKM_LIST));
				int devCnt = inList1 != null ? inList1.size() : 0;
				for (int i = 0; i < devCnt; i++)
				{
					inMap = (HashMap)(inList1).get(i);

					if (inMap != null)
					{
						result = (String)inMap.get(key);
					}

					if ("".equals(result) || result == null)
					{
						result = null;
					}
					else
					{
						break;
					}
				}
			}
		}

		return result;
	}

	/**
	 * 作業マップ（契約者）の値を取得します。
	 * 
	 * <br>
	 * @param param
	 * @param key
	 * @return 取得した値
	 * @throws RequestParameterException
	 */
	private String getKeishaWorkMapValue(IRequestParameterReadWrite param, String key) throws RequestParameterException
	{
		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();

		HashMap inMap = null;
		/* 契約者作業項目情報 */
		if (workMap != null)
		{
			inMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_KEISHA);
		}
		else
		{
			inMap = null;
		}

		String result = null;
		if (inMap != null)
		{
			result = (String)inMap.get(key);
		}

		if ("".equals(result))
		{
			result = null;
		}

		return result;
	}

	/**
	 * SCの実行ステータスの取得処理を行います。
	 * <br>
	 * @param param
	 * @return SCの実行ステータス
	 * @throws Exception
	 */
	private int getReturnCode(IRequestParameterReadWrite param) throws Exception
	{
		return Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
	}

	/**
	 * CAANMsgに必要なデータのマッピング処理を行います。
	 * <br>
	 * @param handle
	 * @param param
	 * @param fixedText
	 * @return パラメータマップ
	 * @throws RequestParameterException
	 */
	public HashMap<String, Object> getInvokeCBS(SessionHandle handle, IRequestParameterReadWrite param, String fixedText)
			throws RequestParameterException
	{
		ArrayList<CAANMsg> msgList = new ArrayList<CAANMsg>();

		// ユーザデータ情報
		HashMap inMapChk = (HashMap)(param.getData(fixedText));
		if (inMapChk == null)
		{
			return null;
		}

		String mskmDtlNo = getMskmDtlWorkMapValue(param, "mskm_dtl_no_tv");
		if (mskmDtlNo == null || "".equals(mskmDtlNo))
		{
			msgList.add(editInEKK0021D010(param, fixedText));
		}

		if ((String)inMapChk.get("kk0101_svc_cd") != null && !"".equals((String)inMapChk.get("kk0101_svc_cd")))
		{
			// サービス契約＜TV＞登録
			// OM-2014-0003432 2014/10/26 MOD START
//			msgList.add(editInEKK0101D010(param, fixedText));
			msgList.add(editInEKK0101D010(param, fixedText, new String()));
			// OM-2014-0003432 2014/10/26 MOD END
		}

		// ケーブルガイド誌が0冊は、オプションサービス契約を作成しない。
		if ((String)inMapChk.get("kk0381_op_svc_cd") != null && !"".equals((String)inMapChk.get("kk0381_op_svc_cd")) &&
				!"0".equals((String)inMapChk.get("kk0381_cable_guide_mskm_cnt")) &&
					inMapChk.get("kk0381_cable_guide_mskm_cnt") != null)
		{
			// オプションサービス契約＜TV＞登録
			msgList.add(editInEKK0381D010(param, fixedText));
		}

		// STB台数取得
		HashMap inMap = (HashMap)param.getData(fixedText);
		int devCnt = ((ArrayList)inMap.get(SVC_KEI_UCWK_LIST)).size();
		int index = 0;
		for (int i = 0; i < devCnt; i++)
		{
			//再送信でベーシックか地デジを判定できないため、マッピングされているかで判断
			inMap = (HashMap)param.getData(fixedText);
			inMap = (HashMap)((ArrayList)inMap.get(SVC_KEI_UCWK_LIST)).get(i);
						
			if ((String)inMap.get("kk0181_pcrs_cd") != null && !"".equals((String)inMap.get("kk0181_pcrs_cd")))
			{
				// サービス契約内訳＜TV＞登録
				msgList.add(editInEKK0181D010(param, fixedText, i));
			}
		}

		// サービス契約回線内訳番号がわたされていれば回線対象サービス契約登録の登録を行う
		if (inMap != null && inMap.get("kk0241_svc_kei_kaisen_ucwk_no") != null && !"".equals(inMap.get("kk0241_svc_kei_kaisen_ucwk_no")))
		{
			// 回線対象サービス契約登録
			msgList.add(editInEKK0241D010(param, fixedText));
		}

		int msgCnt = msgList.size();
		CAANMsg[] templates = new CAANMsg[msgCnt];
		for (int i = 0; i < msgCnt; i++)
		{
			templates[i] = msgList.get(i);
		}

		HashMap<String, Object> paramMap = setSCInputCommonData(param, new HashMap<String, Object>());
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}

	/**
	 * 単一CAANMsgのマッピング処理を行います。
	 * <br>
	 * @param paramMap
	 * @param template
	 * @return パラメータマップ
	 * @throws RequestParameterException
	 */
	private HashMap<String, Object> putParamMap(HashMap<String, Object> paramMap, CAANMsg template) throws RequestParameterException
	{
		CAANMsg[] templates = new CAANMsg[1];
		templates[0] = template;
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}

	/**
	 * SCインプット共通データ設定処理を行います。
	 * <br>
	 * @param param
	 * @param paramMap
	 * @return パラメータマップ
	 * @throws RequestParameterException
	 */
	private HashMap<String, Object> setSCInputCommonData(IRequestParameterReadWrite param, HashMap<String, Object> paramMap)
			throws RequestParameterException
	{
		/* 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));

		return paramMap;
	}

	/**
	 * 申込明細登録の上りマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	private CAANMsg editInEKK0021D010(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0021D010CBSMsg.class.getName());

		// テンプレートID
		template.set(EKK0021D010CBSMsg.TEMPLATEID, "EKK0021D010");

		// 機能コード（デフォルト：１）
		template.set(EKK0021D010CBSMsg.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);

		/* ユーザデータ情報 */
		HashMap inMap = (HashMap)(param.getData(fixedText));

		// 機能コード
		template.set(EKK0021D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// 作業領域のマップを取得
		HashMap workDataMap_Keisya = null;
		Map workMap = param.getMappingWorkArea();
		if (workMap != null)
		{
			workDataMap_Keisya = (HashMap)workMap.get(CC_WORK_AREA_NAME_KEISHA);
		}

		// 申込番号
		if (inMap == null || inMap.get("kk0021_mskm_no") == null || "".equals(inMap.get("kk0021_mskm_no")))
		{
			if (getMskmWorkMapValue(param, "mskm_no") == null)
			{
				template.setNull(EKK0021D010CBSMsg.MSKM_NO);
			}
			else
			{
				template.set(EKK0021D010CBSMsg.MSKM_NO, getMskmWorkMapValue(param, "mskm_no"));
			}
		}
		else
		{
			template.set(EKK0021D010CBSMsg.MSKM_NO, (String)inMap.get("kk0021_mskm_no"));
		}

		// SYSID
		if (inMap == null || inMap.get("kk0021_sysid") == null || "".equals(inMap.get("kk0021_sysid")))
		{
			if (getKeishaWorkMapValue(param, "sysid") == null)
			{
				template.setNull(EKK0021D010CBSMsg.SYSID);
			}
			else
			{
				template.set(EKK0021D010CBSMsg.SYSID, getKeishaWorkMapValue(param, "sysid"));
			}
		}
		else
		{
			template.set(EKK0021D010CBSMsg.SYSID, (String)inMap.get("kk0021_sysid"));
		}

		//申込書番号
		setTemplate(param, template, EKK0021D010CBSMsg.MSKMSHO_NO, inMap, "kk0021_",  "mskmsho_no");

		//申込年月日
		setTemplate(param, template, EKK0021D010CBSMsg.MSKM_YMD, inMap, "kk0021_",  "mskm_ymd");

		//WEB受付番号
		setTemplate(param, template, EKK0021D010CBSMsg.WEB_UK_NO, inMap, "kk0021_",  "web_uk_no");

		//申込形態コード
		setTemplate(param, template, EKK0021D010CBSMsg.MSKM_FORM_CD, inMap, "kk0021_",  "mskm_form_cd");

		//申込明細種別コード
		setTemplate(param, template, EKK0021D010CBSMsg.MSKM_DTL_SBT_CD, inMap, "kk0021_",  "mskm_dtl_sbt_cd");

		//連絡先携帯電話番号
		setTemplate(param, template, EKK0021D010CBSMsg.RRKS_KTAI_TELNO, inMap, "kk0021_",  "rrks_ktai_telno");

		//連絡先勤務先名
		setTemplate(param, template, EKK0021D010CBSMsg.RRKS_OFFC_NM, inMap, "kk0021_",  "rrks_offc_nm");

		//昼間連絡先電話番号
		setTemplate(param, template, EKK0021D010CBSMsg.DT_RRKS_TELNO, inMap, "kk0021_",  "dt_rrks_telno");

		//新規申込種別コード
		setTemplate(param, template, EKK0021D010CBSMsg.NEW_MSKM_SBT_CD, inMap, "kk0021_",  "new_mskm_sbt_cd");

		//申込契機コード
		setTemplate(param, template, EKK0021D010CBSMsg.MSKM_OPTNTY_CD, inMap, "kk0021_",  "mskm_optnty_cd");

		//宅内調査希望アポ期限年月日
		setTemplate(param, template, EKK0021D010CBSMsg.TAKCHO_KIBO_APO_KIGEN_YMD, inMap, "kk0021_",  "takcho_kibo_apo_kigen_ymd");

		//工事アポ連絡先指定コード
		setTemplate(param, template, EKK0021D010CBSMsg.KOJI_APO_RRKS_SHITEI_CD, inMap, "kk0021_",  "koji_apo_rrks_shitei_cd");

		//工事アポ連絡先電話番号
		setTemplate(param, template, EKK0021D010CBSMsg.KOJI_APO_RRKS_TELNO, inMap, "kk0021_",  "koji_apo_rrks_telno");

		//連絡事項登録年月日時分秒
		setTemplate(param, template, EKK0021D010CBSMsg.RRK_JIKO_ADD_DTM, inMap, "kk0021_",  "rrk_jiko_add_dtm");

		//申込連絡先メールアドレス
		setTemplate(param, template, EKK0021D010CBSMsg.MSKM_RRKS_MLAD, inMap, "kk0021_",  "mskm_rrks_mlad");

		//工事進捗通知メールアドレス
		setTemplate(param, template, EKK0021D010CBSMsg.KOJI_PRG_TCHI_MLAD, inMap, "kk0021_",  "koji_prg_tchi_mlad");

		//連絡事項
		setTemplate(param, template, EKK0021D010CBSMsg.RRK_JIKO, inMap, "kk0021_",  "rrk_jiko");

		//工事進捗通知携帯メールアドレス
		setTemplate(param, template, EKK0021D010CBSMsg.KJSC_TCH_KTAI_MLAD, inMap, "kk0021_",  "kjsc_tch_ktai_mlad");

		//メール送信除外フラグ
		setTemplate(param, template, EKK0021D010CBSMsg.ML_SEND_JGI_FLG, inMap, "kk0021_",  "ml_send_jgi_flg");

		//メール送信除外理由メモ
		setTemplate(param, template, EKK0021D010CBSMsg.ML_SEND_JGI_RSN_MEMO, inMap, "kk0021_",  "ml_send_jgi_rsn_memo");

		//番ポ申込連絡先電話番号
		setTemplate(param, template, EKK0021D010CBSMsg.BMP_MSKM_RRKS_TLN, inMap, "kk0021_",  "bmp_mskm_rrks_tln");

		//オプションサービス引継有無
		//**********↓障害対応(IT1-2012-0000024)**********/
//		setTemplate(param, template, EKK0021D010CBSMsg.OP_SVC_HKTGI_UM, inMap, "kk0021_",  "op_svc_hktgi_um");
		if (null == inMap || null == inMap.get("kk0021_" + "op_svc_hktgi_um") || 0 == ((String)inMap.get("kk0021_" + "op_svc_hktgi_um")).length())
		{
			template.set(EKK0021D010CBSMsg.OP_SVC_HKTGI_UM, JKKStrConst.CD_DIV_UM_NASHI);
		}
		else
		{
			template.set(EKK0021D010CBSMsg.OP_SVC_HKTGI_UM, (String)inMap.get("kk0021_" + "op_svc_hktgi_um"));
		}
		//**********↑障害対応(IT1-2012-0000024)**********/

		//解約書類送付希望有無
		setTemplate(param, template, EKK0021D010CBSMsg.DSL_ATICLE_SOHU_KIBO_UM, inMap, "kk0021_",  "dsl_aticle_sohu_kibo_um");

		//連絡手段補記
		setTemplate(param, template, EKK0021D010CBSMsg.RRK_WAY_HOKI, inMap, "kk0021_",  "rrk_way_hoki");

		//新築物件コード
		setTemplate(param, template, EKK0021D010CBSMsg.NEWCONST_BUKKEN_CD, inMap, "kk0021_",  "newconst_bukken_cd");

		//復活案件フラグ
		setTemplate(param, template, EKK0021D010CBSMsg.HUKKAT_ANKEN_FLG, inMap, "kk0021_",  "hukkat_anken_flg");

		//同一設備再申込コード
		setTemplate(param, template, EKK0021D010CBSMsg.SAME_EQUIP_RE_MSKM_CD, inMap, "kk0021_",  "same_equip_re_mskm_cd");

		//本人確認書類種別コード
		setTemplate(param, template, EKK0021D010CBSMsg.HNIN_CFM_ATICLE_SBT_CD, inMap, "kk0021_",  "hnin_cfm_aticle_sbt_cd");

		//申込書種別コード
		setTemplate(param, template, EKK0021D010CBSMsg.MSKMSHO_SBT_CD, inMap, "kk0021_",  "mskmsho_sbt_cd");

		//契約付加コード
		setTemplate(param, template, EKK0021D010CBSMsg.KEI_HUKA_CD, inMap, "kk0021_",  "kei_huka_cd");

		//地図添付有無
		setTemplate(param, template, EKK0021D010CBSMsg.MAP_TEMP_UM, inMap, "kk0021_",  "map_temp_um");

		//KCNSTB申込台数
		setTemplate(param, template, EKK0021D010CBSMsg.KCN_STB_MSKM_CNT, inMap, "kk0021_",  "kcn_stb_mskm_cnt");

		//KCNSTB種類コード
		setTemplate(param, template, EKK0021D010CBSMsg.KCN_STB_KIND_CD, inMap, "kk0021_",  "kcn_stb_kind_cd");

		//マンション設備システム連携用記事欄
		setTemplate(param, template, EKK0021D010CBSMsg.MANSSBSYS_RNKI_YO_KIJIRAN, inMap, "kk0021_",  "manssbsys_rnki_yo_kijiran");

		//マンションID
		setTemplate(param, template, EKK0021D010CBSMsg.MANSION_ID, inMap, "kk0021_",  "mansion_id");

		//CAT-ID
		setTemplate(param, template, EKK0021D010CBSMsg.CATID, inMap, "kk0021_",  "catid");

		//申込受付種別コード
		setTemplate(param, template, EKK0021D010CBSMsg.MKM_UK_SBT_CD, inMap, "kk0021_",  "mkm_uk_sbt_cd");

		//申込書取扱情報担当者名
		setTemplate(param, template, EKK0021D010CBSMsg.MSKMSHO_TRAT_IF_TNTSHA_NM, inMap, "kk0021_",  "mskmsho_trat_if_tntsha_nm");

		//申込書取扱情報電話番号
		setTemplate(param, template, EKK0021D010CBSMsg.MSKMSHO_TRAT_IF_TELNO, inMap, "kk0021_",  "mskmsho_trat_if_telno");

		//更新年月日時分秒(更新前)
		String lastDtm = JKKBpCommon.getLastDtmByMskm(param, (String)inMap.get("kk0021_upd_dtm_bf"));
		template.set(EKK0021D010CBSMsg.UPD_DTM_BF, lastDtm);
		
		//申込書明細番号
		setTemplate(param, template, EKK0021D010CBSMsg.MSKMSHO_DTL_NO, inMap, "kk0021_",  "mskmsho_dtl_no");

		//本人確認書類名
		setTemplate(param, template, EKK0021D010CBSMsg.HNIN_CFM_ATICLE_NM, inMap, "kk0021_",  "hnin_cfm_aticle_nm");

		return template;
	}

	/**
	 * サービス契約＜TV＞登録の上りマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	// OM-2014-0003432 2014/10/26 MOD START
//	private CAANMsg editInEKK0101D010(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	private CAANMsg editInEKK0101D010(IRequestParameterReadWrite param, String fixedText, String tenSakiPplanCd) throws RequestParameterException
	// OM-2014-0003432 2014/10/26 MOD END
	{
		CAANMsg template = new CAANMsg(EKK0101D010CBSMsg.class.getName());

		// テンプレートID
		template.set(EKK0101D010CBSMsg.TEMPLATEID, "EKK0101D010");

		// 機能コード（デフォルト：１）
		template.set(EKK0101D010CBSMsg.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);

		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード
		if (inMap != null)
		{
			template.set(EKK0101D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));
		}

		// 作業領域のマップを取得
		HashMap workDataMap = null;
		HashMap workDataMap_Keisya = null;
		HashMap workDataMap_Payway = null;
		Map workMap = param.getMappingWorkArea();
		if (workMap != null)
		{
			workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_TV);
			workDataMap_Keisya = (HashMap)workMap.get(CC_WORK_AREA_NAME_KEISHA);
			workDataMap_Payway = (HashMap)workMap.get(CC_WORK_AREA_NAME_PAYWAY);
		}

		// 申込明細番号を申込登録ＣＣの作業領域から取得
		String mskmDtlNo = getMskmDtlWorkMapValue(param, "mskm_dtl_no_tv");
		if (mskmDtlNo == null || "".equals(mskmDtlNo))
		{
			// 申込登録ＣＣの作業領域から取得できなければ、テレビ登録ＣＣの作業領域から取得
			if (workDataMap != null)
			{
				mskmDtlNo = (String)workDataMap.get("mskm_dtl_no");
			}
		}

		// サービス契約＜eo光ＴＶ＞登録マップ.ＳＹＳＩＤ → SYSID
		if (inMap == null || inMap.get("kk0101_sysid") == null || "".equals(inMap.get("kk0101_sysid")))
		{
			if (workDataMap_Keisya == null || workDataMap_Keisya.get("sysid") == null || "".equals(workDataMap_Keisya.get("sysid")))
			{
				template.setNull(EKK0101D010CBSMsg.SYSID);
			}
			else
			{
				template.set(EKK0101D010CBSMsg.SYSID, (String)workDataMap_Keisya.get("sysid"));
			}
		}
		else
		{
			template.set(EKK0101D010CBSMsg.SYSID, (String)inMap.get("kk0101_sysid"));
		}

		// サービス契約＜eo光ＴＶ＞登録マップ.申込明細番号 → 申込明細番号
		if (inMap == null || inMap.get("kk0101_mskm_dtl_no") == null || "".equals(inMap.get("kk0101_mskm_dtl_no")))
		{
			if (mskmDtlNo == null || "".equals(mskmDtlNo))
			{
				template.setNull(EKK0101D010CBSMsg.MSKM_DTL_NO);
			}
			else
			{
				template.set(EKK0101D010CBSMsg.MSKM_DTL_NO, mskmDtlNo);
			}
		}
		else
		{
			template.set(EKK0101D010CBSMsg.MSKM_DTL_NO, (String)inMap.get("kk0101_mskm_dtl_no"));
		}

		// サービス契約＜eo光ＴＶ＞登録マップ.請求契約番号 → 請求契約番号
		if (inMap == null || inMap.get("kk0101_seiky_kei_no") == null || "".equals(inMap.get("kk0101_seiky_kei_no")))
		{
			if (workDataMap_Payway == null || workDataMap_Payway.get("seiky_kei_no") == null || "".equals(workDataMap_Payway.get("seiky_kei_no")))
			{
				template.setNull(EKK0101D010CBSMsg.SEIKY_KEI_NO);
			}
			else
			{
				template.set(EKK0101D010CBSMsg.SEIKY_KEI_NO, (String)workDataMap_Payway.get("seiky_kei_no"));
			}
		}
		else
		{
			template.set(EKK0101D010CBSMsg.SEIKY_KEI_NO, (String)inMap.get("kk0101_seiky_kei_no"));
		}

		//サービスコード
		setTemplate(param, template, EKK0101D010CBSMsg.SVC_CD, inMap, "kk0101_",  "svc_cd");	

		//面開発案件番号
		setTemplate(param, template, EKK0101D010CBSMsg.MENKAIHAT_ANKEN_NO, inMap, "kk0101_",  "menkaihat_anken_no");	

		//料金グループコード
		setTemplate(param, template, EKK0101D010CBSMsg.PRC_GRP_CD, inMap, "kk0101_",  "prc_grp_cd");	

		//料金コースコード
		setTemplate(param, template, EKK0101D010CBSMsg.PCRS_CD, inMap, "kk0101_",  "pcrs_cd");	

		//料金プランコード
		// OM-2014-0003432 2014/10/26 MOD START
//		setTemplate(param, template, EKK0101D010CBSMsg.PPLAN_CD, inMap, "kk0101_",  "pplan_cd");	
		if (tenSakiPplanCd != null && !"".equals(tenSakiPplanCd)) {
			template.set(EKK0101D010CBSMsg.PPLAN_CD, tenSakiPplanCd);
		} else {
			setTemplate(param, template, EKK0101D010CBSMsg.PPLAN_CD, inMap, "kk0101_",  "pplan_cd");
		}
		// OM-2014-0003432 2014/10/26 MOD END

		//提供方式契約番号
		setTemplate(param, template, EKK0101D010CBSMsg.TK_HOSHIKI_KEI_NO, inMap, "kk0101_",  "tk_hoshiki_kei_no");	

		//サービス利用開始希望年月日
		setTemplate(param, template, EKK0101D010CBSMsg.SVC_USE_STA_KIBO_YMD, inMap, "kk0101_",  "svc_use_sta_kibo_ymd");	

		//予約適用開始希望年月日
		setTemplate(param, template, EKK0101D010CBSMsg.RSV_TSTA_KIBO_YMD, inMap, "kk0101_",  "rsv_tsta_kibo_ymd");	

		//ID速報書出力要否
		setTemplate(param, template, EKK0101D010CBSMsg.ID_SOKHOSHO_OUTPUT_YH, inMap, "kk0101_",  "id_sokhosho_output_yh");	

		//支払い方法継続フラグ
		setTemplate(param, template, EKK0101D010CBSMsg.PAYWAY_KEIZOKU_FLG, inMap, "kk0101_",  "payway_keizoku_flg");	

		//試用加入年月日
		setTemplate(param, template, EKK0101D010CBSMsg.FTRIAL_KANYU_YMD, inMap, "kk0101_",  "ftrial_kanyu_ymd");	

		//試用期間終了年月日
		setTemplate(param, template, EKK0101D010CBSMsg.FTRIAL_PRD_ENDYMD, inMap, "kk0101_",  "ftrial_prd_endymd");	

		//本加入年月日
		setTemplate(param, template, EKK0101D010CBSMsg.HONKANYU_YMD, inMap, "kk0101_",  "honkanyu_ymd");	

		//本加入移行期限年月日
		setTemplate(param, template, EKK0101D010CBSMsg.HONKANYU_IKO_KIGEN_YMD, inMap, "kk0101_",  "honkanyu_iko_kigen_ymd");	

		//レター発送仕分区分
		setTemplate(param, template, EKK0101D010CBSMsg.LETTER_HASSO_SHIWAKE_DIV, inMap, "kk0101_",  "letter_hasso_shiwake_div");	

		//サンキューレター送付先コード
		setTemplate(param, template, EKK0101D010CBSMsg.THNX_LETTER_SHS_CD, inMap, "kk0101_",  "thnx_letter_shs_cd");	

		//WEBオプション追加不可フラグ
		setTemplate(param, template, EKK0101D010CBSMsg.WEB_OP_ADD_FAIL_FLG, inMap, "kk0101_",  "web_op_add_fail_flg");	

		//変更元法人サービス契約受付番号
		setTemplate(param, template, EKK0101D010CBSMsg.CHGE_MT_HOJINSVKEI_UK_NO, inMap, "kk0101_",  "chge_mt_hojinsvkei_uk_no");	

		//変更元法人サービス契約受付番号子
		setTemplate(param, template, EKK0101D010CBSMsg.CHGE_MT_HOJINSVKEI_UK_NOPT, inMap, "kk0101_",  "chge_mt_hojinsvkei_uk_nopt");	

		//違約金発生コード
		setTemplate(param, template, EKK0101D010CBSMsg.PNLTY_HASSEI_CD, inMap, "kk0101_",  "pnlty_hassei_cd");	

		//異動区分
		setTemplate(param, template, EKK0101D010CBSMsg.IDO_DIV, inMap, "kk0101_",  "ido_div");	

		//紹介コード
		setTemplate(param, template, EKK0101D010CBSMsg.INTR_CD, inMap, "kk0101_",  "intr_cd");	

		//業務連絡備考
		setTemplate(param, template, EKK0101D010CBSMsg.WORK_RRK_BIKO, inMap, "kk0101_",  "work_rrk_biko");	

		//自動照査処理状態コード
		setTemplate(param, template, EKK0101D010CBSMsg.AUTO_SHOSA_TRAN_STAT_CD, inMap, "kk0101_",  "auto_shosa_tran_stat_cd");	

		//電波障害案件番号
		setTemplate(param, template, EKK0101D010CBSMsg.DMPS_ANKEN_NO, inMap, "kk0101_",  "dmps_anken_no");	

		//**********↓UI残-717**********
		//再送信種別
		setTemplate(param, template, EKK0101D010CBSMsg.RE_SEND_TK_SVC_SBT_CD, inMap, "kk0101_",  "re_send_tk_svc_sbt_cd");	
		//**********↑UI残-717**********

		//TV営業地区コード
		setTemplate(param, template, EKK0101D010CBSMsg.TV_BUSINESS_CHIK_CD, inMap, "kk0101_",  "tv_business_chik_cd");	

		//TV営業担当ユーザーID
		setTemplate(param, template, EKK0101D010CBSMsg.TV_BUSINESS_TNT_USER_ID, inMap, "kk0101_",  "tv_business_tnt_user_id");	

		//料金項目コード
		setTemplate(param, template, EKK0101D010CBSMsg.PRC_KMK_CD, inMap, "kk0101_",  "prc_kmk_cd");	

		//事務手数料自動適用要否
		setTemplate(param, template, EKK0101D010CBSMsg.RULE0059_AUTO_APLY, inMap, "kk0101_",  "rule0059_auto_aply");	

		//工事費自動適用要否
		setTemplate(param, template, EKK0101D010CBSMsg.RULE0079_AUTO_APLY, inMap, "kk0101_",  "rule0079_auto_aply");	



		return template;
	}

	/**
	 * オプションサービス契約＜TV＞登録の上りマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	private CAANMsg editInEKK0381D010(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0381D010CBSMsg.class.getName());

		// テンプレートID
		template.set(EKK0381D010CBSMsg.TEMPLATEID, "EKK0381D010");

		// 機能コード（デフォルト：１）
		template.set(EKK0381D010CBSMsg.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);

		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード
		if (inMap != null)
		{
			template.set(EKK0381D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));
		}

		// 作業領域のマップを取得
		HashMap workDataMap = null;
		HashMap workDataMap_Keisya = null;
		HashMap workDataMap_Payway = null;
		Map workMap = param.getMappingWorkArea();
		if (workMap != null)
		{
			workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_TV);
			workDataMap_Keisya = (HashMap)workMap.get(CC_WORK_AREA_NAME_KEISHA);
			workDataMap_Payway = (HashMap)workMap.get(CC_WORK_AREA_NAME_PAYWAY);
		}
		
		String str_svc_keino = "";
		// オプションサービス契約＜ＴＶ＞登録マップ.サービス契約番号 → サービス契約番号
		if (inMap == null || inMap.get("kk0381_svc_kei_no") == null || "".equals(inMap.get("kk0381_svc_kei_no")))
		{
			if (workDataMap == null || workDataMap.get("svc_kei_no") == null || "".equals(workDataMap.get("svc_kei_no")))
			{
				template.setNull(EKK0381D010CBSMsg.SVC_KEI_NO);
			}
			else
			{
				template.set(EKK0381D010CBSMsg.SVC_KEI_NO, (String)workDataMap.get("svc_kei_no"));
				str_svc_keino = (String)workDataMap.get("svc_kei_no");
			}
		}
		else
		{
			template.set(EKK0381D010CBSMsg.SVC_KEI_NO, (String)inMap.get("kk0381_svc_kei_no"));
		}
		
		// オプションサービス契約＜ＴＶ＞登録マップ.ＳＹＳＩＤ → SYSID
		if (inMap == null || inMap.get("kk0381_sysid") == null || "".equals(inMap.get("kk0381_sysid")))
		{
			if (workDataMap_Keisya == null || workDataMap_Keisya.get("sysid") == null || "".equals(workDataMap_Keisya.get("sysid")))
			{
				template.setNull(EKK0381D010CBSMsg.SYSID);
			}
			else
			{
				template.set(EKK0381D010CBSMsg.SYSID, (String)workDataMap_Keisya.get("sysid"));
			}
		}
		else
		{
			template.set(EKK0381D010CBSMsg.SYSID, (String)inMap.get("kk0381_sysid"));
		}

		// オプションサービス契約＜ＴＶ＞登録マップ.申込明細番号 → 申込明細番号
		if (workDataMap == null || workDataMap.get("mskm_dtl_no") == null || "".equals(workDataMap.get("mskm_dtl_no")))
		{
			String mskmDtlNo = getMskmDtlWorkMapValue(param, "mskm_dtl_no_tv");
			if (mskmDtlNo == null || "".equals(mskmDtlNo))
			{
				if (inMap == null || inMap.get("kk0381_mskm_dtl_no") == null || "".equals(inMap.get("kk0381_mskm_dtl_no")))
				{
					template.setNull(EKK0381D010CBSMsg.MSKM_DTL_NO);
				}
				else
				{
					template.set(EKK0381D010CBSMsg.MSKM_DTL_NO, (String)inMap.get("kk0381_mskm_dtl_no"));
				}
			}
			else
			{
				template.set(EKK0381D010CBSMsg.MSKM_DTL_NO, mskmDtlNo);
			}
		}
		else
		{
			template.set(EKK0381D010CBSMsg.MSKM_DTL_NO, (String)workDataMap.get("mskm_dtl_no"));
		}

		// オプションサービス契約＜ＴＶ＞登録マップ.請求契約番号 → 請求契約番号
		if (inMap == null || inMap.get("kk0381_seiky_kei_no") == null || "".equals(inMap.get("kk0381_seiky_kei_no")))
		{
			if (workDataMap_Payway == null || workDataMap_Payway.get("seiky_kei_no") == null || "".equals(workDataMap_Payway.get("seiky_kei_no")))
			{
				template.setNull(EKK0381D010CBSMsg.SEIKY_KEI_NO);
			}
			else
			{
				template.set(EKK0381D010CBSMsg.SEIKY_KEI_NO, (String)workDataMap_Payway.get("seiky_kei_no"));
			}
		}
		else
		{
			template.set(EKK0381D010CBSMsg.SEIKY_KEI_NO, (String)inMap.get("kk0381_seiky_kei_no"));
		}
		
		// 更新年月日時分秒(更新前)
		String lastDtm = JKKBpCommon.getLastDtmBySvcKeiNo(param, str_svc_keino,
				(String)inMap.get("kk0381_upd_dtm_bf"));
		template.set(EKK0381D010CBSMsg.UPD_DTM_BF, lastDtm);
		
		//オプションサービスコード
		setTemplate(param, template, EKK0381D010CBSMsg.OP_SVC_CD, inMap, "kk0381_",  "op_svc_cd");		

		//料金コースコード
		setTemplate(param, template, EKK0381D010CBSMsg.PCRS_CD, inMap, "kk0381_",  "pcrs_cd");		

		//料金プランコード
		setTemplate(param, template, EKK0381D010CBSMsg.PPLAN_CD, inMap, "kk0381_",  "pplan_cd");		

		//親契約識別コード
		setTemplate(param, template, EKK0381D010CBSMsg.OYA_KEI_SKBT_CD, inMap, "kk0381_",  "oya_kei_skbt_cd");		

		//サービス契約内訳番号
		setTemplate(param, template, EKK0381D010CBSMsg.SVC_KEI_UCWK_NO, inMap, "kk0381_",  "svc_kei_ucwk_no");		

		//試用加入年月日
		setTemplate(param, template, EKK0381D010CBSMsg.FTRIAL_KANYU_YMD, inMap, "kk0381_",  "ftrial_kanyu_ymd");		

		//試用期間終了年月日
		setTemplate(param, template, EKK0381D010CBSMsg.FTRIAL_PRD_ENDYMD, inMap, "kk0381_",  "ftrial_prd_endymd");		

		//本加入年月日
		setTemplate(param, template, EKK0381D010CBSMsg.HONKANYU_YMD, inMap, "kk0381_",  "honkanyu_ymd");		

		//本加入移行期限年月日
		setTemplate(param, template, EKK0381D010CBSMsg.HONKANYU_IKO_KIGEN_YMD, inMap, "kk0381_",  "honkanyu_iko_kigen_ymd");		

		//サービス利用開始希望年月日
		setTemplate(param, template, EKK0381D010CBSMsg.SVC_USE_STA_KIBO_YMD, inMap, "kk0381_",  "svc_use_sta_kibo_ymd");		

		//予約適用開始希望年月日
		setTemplate(param, template, EKK0381D010CBSMsg.RSV_TSTA_KIBO_YMD, inMap, "kk0381_",  "rsv_tsta_kibo_ymd");		

		//違約金発生コード
		setTemplate(param, template, EKK0381D010CBSMsg.PNLTY_HASSEI_CD, inMap, "kk0381_",  "pnlty_hassei_cd");		

		//異動区分
		setTemplate(param, template, EKK0381D010CBSMsg.IDO_DIV, inMap, "kk0381_",  "ido_div");		

		//NHK団体一括支払サイクルコード
		setTemplate(param, template, EKK0381D010CBSMsg.NHK_GRP_IKT_PAY_CYCLE_CD, inMap, "kk0381_",  "nhk_grp_ikt_pay_cycle_cd");		

		//初回請求年月日
		setTemplate(param, template, EKK0381D010CBSMsg.FIRST_SEIYMD, inMap, "kk0381_",  "first_seiymd");		

		//ケーブルガイド申込数
		setTemplate(param, template, EKK0381D010CBSMsg.CABLE_GUIDE_MSKM_CNT, inMap, "kk0381_",  "cable_guide_mskm_cnt");		

		//ガイド誌種別コード
//		setTemplate(param, template, EKK0381D010CBSMsg.GUIDEMG_SBT_CD, inMap, "kk0381_",  "guidemg_sbt_cd");		

		//ガイド誌発送方法コード
//		setTemplate(param, template, EKK0381D010CBSMsg.GUIDEMG_HASSO_WAY_CD, inMap, "kk0381_",  "guidemg_hasso_way_cd");		

		//ガイド誌送付先名
		setTemplate(param, template, EKK0381D010CBSMsg.GUIDEMG_SOHUS_NM, inMap, "kk0381_",  "guidemg_sohus_nm");		

		//ガイド誌送付先カナ名
		setTemplate(param, template, EKK0381D010CBSMsg.GUIDEMG_SOHUS_KANA, inMap, "kk0381_",  "guidemg_sohus_kana");		

		//ガイド誌送付先住所コード
		setTemplate(param, template, EKK0381D010CBSMsg.GUIDEMG_SOHUS_AD_CD, inMap, "kk0381_",  "guidemg_sohus_ad_cd");		

		//ガイド誌送付先郵便番号
		setTemplate(param, template, EKK0381D010CBSMsg.GUIDEMG_SOHUS_PCD, inMap, "kk0381_",  "guidemg_sohus_pcd");		

		//ガイド誌送付先都道府県名
		setTemplate(param, template, EKK0381D010CBSMsg.GUIDEMG_SOHUS_STATE_NM, inMap, "kk0381_",  "guidemg_sohus_state_nm");		

		//ガイド誌送付先市区町村名
		setTemplate(param, template, EKK0381D010CBSMsg.GUIDEMG_SOHUS_CITY_NM, inMap, "kk0381_",  "guidemg_sohus_city_nm");		

		//ガイド誌送付先大字通称名
		setTemplate(param, template, EKK0381D010CBSMsg.GUIDEMG_SOHUS_OAZTSU_NM, inMap, "kk0381_",  "guidemg_sohus_oaztsu_nm");		

		//ガイド誌送付先字丁目名
		setTemplate(param, template, EKK0381D010CBSMsg.GUIDEMG_SOHUS_AZCHO_NM, inMap, "kk0381_",  "guidemg_sohus_azcho_nm");		

		//ガイド誌送付先番地号
		setTemplate(param, template, EKK0381D010CBSMsg.GUIDEMG_SOHUS_BNCHIGO, inMap, "kk0381_",  "guidemg_sohus_bnchigo");		

		//ガイド誌送付先住所補記・建物名
		setTemplate(param, template, EKK0381D010CBSMsg.GUIDEMG_SOHUS_ADRTTM, inMap, "kk0381_",  "guidemg_sohus_adrttm");		

		//ガイド誌送付先住所補記・部屋番号
		setTemplate(param, template, EKK0381D010CBSMsg.GUIDEMG_SOHUS_ADRRM, inMap, "kk0381_",  "guidemg_sohus_adrrm");		

		//ガイド誌送付先電話番号
		setTemplate(param, template, EKK0381D010CBSMsg.GUIDEMG_SOHUS_TELNO, inMap, "kk0381_",  "guidemg_sohus_telno");		

		//ガイド誌送付先個別指定フラグ
		setTemplate(param, template, EKK0381D010CBSMsg.GUIDEMG_SHS_KSITEI_FLG, inMap, "kk0381_",  "guidemg_shs_ksitei_flg");		

		//NHKお客様番号
		setTemplate(param, template, EKK0381D010CBSMsg.NHK_CUST_NO, inMap, "kk0381_",  "nhk_cust_no");		

		//NHK団体一括契約NHK締結年月日
		setTemplate(param, template, EKK0381D010CBSMsg.NHK_DNTIKTKEI_NHK_CNC_YMD, inMap, "kk0381_",  "nhk_dntiktkei_nhk_cnc_ymd");		

		//NHK団体一括契約変更届年月日
		setTemplate(param, template, EKK0381D010CBSMsg.NHK_DNTIKTKEI_HKTDK_YMD, inMap, "kk0381_",  "nhk_dntiktkei_hktdk_ymd");		

		//NHK団体一括契約登録メモ
		setTemplate(param, template, EKK0381D010CBSMsg.NHK_DNTIKTKEI_ADD_MEMO, inMap, "kk0381_",  "nhk_dntiktkei_add_memo");		

		//赤B-CAS番号
		setTemplate(param, template, EKK0381D010CBSMsg.RED_BCAS_NO, inMap, "kk0381_",  "red_bcas_no");		

		//料金項目コード
		setTemplate(param, template, EKK0381D010CBSMsg.PRC_KMK_CD, inMap, "kk0381_",  "prc_kmk_cd");		

		//ガイド誌送付先住所手動入力フラグ
		setTemplate(param, template, EKK0381D010CBSMsg.GUDMG_SHS_AD_MAN_INPUT_FLG, inMap, "kk0381_",  "gudmg_shs_ad_man_input_flg");

		//ガイド誌送付先住所チェックレベル
		setTemplate(param, template, EKK0381D010CBSMsg.GUIDEMG_SOHUS_AD_CHK_LV, inMap, "kk0381_",  "guidemg_sohus_ad_chk_lv");

		return template;
	}

	/**
	 * サービス契約内訳＜TV＞登録の上りマッピングを行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @param index
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	private CAANMsg editInEKK0181D010(IRequestParameterReadWrite param, String fixedText, int index) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0181D010CBSMsg.class.getName());

		// テンプレートID
		template.set(EKK0181D010CBSMsg.TEMPLATEID, "EKK0181D010");

		// 機能コード（デフォルト：１）
		template.set(EKK0181D010CBSMsg.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);

		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード
		if (inMap != null)
		{
			template.set(EKK0181D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));
		}

		inMap = (HashMap)((ArrayList)inMap.get(SVC_KEI_UCWK_LIST)).get(index);

		// 作業領域のマップを取得
		HashMap workDataMap = null;
		HashMap workDataMap_Payway = null;
		Map workMap = param.getMappingWorkArea();
		if (workMap != null)
		{
			workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_TV);
			workDataMap_Payway = (HashMap)workMap.get(CC_WORK_AREA_NAME_PAYWAY);
		}

		// 申込明細番号を申込登録ＣＣの作業領域から取得
		String mskmDtlNo = getMskmDtlWorkMapValue(param, "mskm_dtl_no_tv");
		if (mskmDtlNo == null || "".equals(mskmDtlNo))
		{
			// 申込登録ＣＣの作業領域から取得できなければ、テレビ登録ＣＣの作業領域から取得
			if (workDataMap != null)
			{
				mskmDtlNo = (String)workDataMap.get("mskm_dtl_no");
			}
		}
		
		String str_svc_keino = "";
		// サービス契約内訳＜eo光ＴＶ＞登録マップ.サービス契約番号 → サービス契約番号
		if (inMap == null || inMap.get("kk0181_svc_kei_no") == null || "".equals(inMap.get("kk0181_svc_kei_no")))
		{
			if (workDataMap == null || workDataMap.get("svc_kei_no") == null || "".equals(workDataMap.get("svc_kei_no")))
			{
				template.setNull(EKK0181D010CBSMsg.SVC_KEI_NO);
			}
			else
			{
				template.set(EKK0181D010CBSMsg.SVC_KEI_NO, (String)workDataMap.get("svc_kei_no"));
				str_svc_keino = (String)workDataMap.get("svc_kei_no");
			}
		}
		else
		{
			template.set(EKK0181D010CBSMsg.SVC_KEI_NO, (String)inMap.get("kk0181_svc_kei_no"));
		}

		// サービス契約内訳＜eo光ＴＶ＞登録マップ.申込明細番号 → 申込明細番号
		if (inMap == null || inMap.get("kk0181_mskm_dtl_no") == null || "".equals(inMap.get("kk0181_mskm_dtl_no")))
		{
			if (mskmDtlNo == null || "".equals(mskmDtlNo))
			{
				template.setNull(EKK0181D010CBSMsg.MSKM_DTL_NO);
			}
			else
			{
				template.set(EKK0181D010CBSMsg.MSKM_DTL_NO, mskmDtlNo);
			}
		}
		else
		{
			template.set(EKK0181D010CBSMsg.MSKM_DTL_NO, (String)inMap.get("kk0181_mskm_dtl_no"));
		}

		// サービス契約内訳＜eo光ＴＶ＞登録マップ.請求契約番号 → 請求契約番号
		if (inMap == null || inMap.get("kk0181_seiky_kei_no") == null || "".equals(inMap.get("kk0181_seiky_kei_no")))
		{
			if (workDataMap_Payway == null || workDataMap_Payway.get("seiky_kei_no") == null || "".equals(workDataMap_Payway.get("seiky_kei_no")))
			{
				template.setNull(EKK0181D010CBSMsg.SEIKY_KEI_NO);
			}
			else
			{
				template.set(EKK0181D010CBSMsg.SEIKY_KEI_NO, (String)workDataMap_Payway.get("seiky_kei_no"));
			}
		}
		else
		{
			template.set(EKK0181D010CBSMsg.SEIKY_KEI_NO, (String)inMap.get("kk0181_seiky_kei_no"));
		}
		
		// 更新年月日時分秒(更新前)
		String lastDtm = JKKBpCommon.getLastDtmBySvcKeiNo(param, str_svc_keino,
				(String)inMap.get("kk0181_upd_dtm_bf"));
		template.set(EKK0181D010CBSMsg.UPD_DTM_BF, lastDtm);

		
		//料金コースコード
		setTemplate(param, template, EKK0181D010CBSMsg.PCRS_CD, inMap, "kk0181_",  "pcrs_cd");		

		//料金プランコード
		setTemplate(param, template, EKK0181D010CBSMsg.PPLAN_CD, inMap, "kk0181_",  "pplan_cd");		

		//提供方式契約番号
		setTemplate(param, template, EKK0181D010CBSMsg.TK_HOSHIKI_KEI_NO, inMap, "kk0181_",  "tk_hoshiki_kei_no");		

		//支払い方法継続フラグ
		setTemplate(param, template, EKK0181D010CBSMsg.PAYWAY_KEIZOKU_FLG, inMap, "kk0181_",  "payway_keizoku_flg");		

		//WEBオプション追加不可フラグ
		setTemplate(param, template, EKK0181D010CBSMsg.WEB_OP_ADD_FAIL_FLG, inMap, "kk0181_",  "web_op_add_fail_flg");		

		//業務連絡備考
		setTemplate(param, template, EKK0181D010CBSMsg.WORK_RRK_BIKO, inMap, "kk0181_",  "work_rrk_biko");		

		//サービス利用開始希望年月日
		setTemplate(param, template, EKK0181D010CBSMsg.SVC_USE_STA_KIBO_YMD, inMap, "kk0181_",  "svc_use_sta_kibo_ymd");		

		//予約適用開始希望年月日
		setTemplate(param, template, EKK0181D010CBSMsg.RSV_TSTA_KIBO_YMD, inMap, "kk0181_",  "rsv_tsta_kibo_ymd");		

		//試用加入年月日
		setTemplate(param, template, EKK0181D010CBSMsg.FTRIAL_KANYU_YMD, inMap, "kk0181_",  "ftrial_kanyu_ymd");		

		//試用期間終了年月日
		setTemplate(param, template, EKK0181D010CBSMsg.FTRIAL_PRD_ENDYMD, inMap, "kk0181_",  "ftrial_prd_endymd");		

		//本加入年月日
		setTemplate(param, template, EKK0181D010CBSMsg.HONKANYU_YMD, inMap, "kk0181_",  "honkanyu_ymd");		

		//本加入移行期限年月日
		setTemplate(param, template, EKK0181D010CBSMsg.HONKANYU_IKO_KIGEN_YMD, inMap, "kk0181_",  "honkanyu_iko_kigen_ymd");		

		//違約金発生コード
		setTemplate(param, template, EKK0181D010CBSMsg.PNLTY_HASSEI_CD, inMap, "kk0181_",  "pnlty_hassei_cd");		

		//異動区分
		setTemplate(param, template, EKK0181D010CBSMsg.IDO_DIV, inMap, "kk0181_",  "ido_div");		

		//撤去工事希望年月日
		setTemplate(param, template, EKK0181D010CBSMsg.TEKKYO_KOJI_KIBO_YMD, inMap, "kk0181_",  "tekkyo_koji_kibo_ymd");		

		//アダルトフラグ
		setTemplate(param, template, EKK0181D010CBSMsg.ADULT_FLG, inMap, "kk0181_",  "adult_flg");		

		//料金項目コード
		setTemplate(param, template, EKK0181D010CBSMsg.PRC_KMK_CD, inMap, "kk0181_",  "prc_kmk_cd");	

		return template;
	}

	


	/**
	 * 回線対象サービス契約登録の上りマッピングを行います。
	 * <br>
	 * @param param
	 * @param fixedText
	 * @return CAANMsg
	 * @throws RequestParameterException
	 */
	private CAANMsg editInEKK0241D010(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0241D010CBSMsg.class.getName());

		// テンプレートID
		template.set(EKK0241D010CBSMsg.TEMPLATEID, "EKK0241D010");

		// 機能コード（デフォルト：１）
		template.set(EKK0241D010CBSMsg.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);

		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード
		if (inMap != null)
		{
			template.set(EKK0241D010CBSMsg.FUNC_CODE, inMap.get(JCMConstants.FUNC_CODE_KEY));
		}

		// 作業領域のマップを取得
		HashMap workDataMap = null;
		Map workMap = param.getMappingWorkArea();
		if (workMap != null)
		{
			workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_TV);
		}

		// サービス契約番号
		if (inMap == null || inMap.get("kk0241_svc_kei_no") == null || "".equals(inMap.get("kk0241_svc_kei_no")))
		{
			if (workDataMap == null || workDataMap.get("svc_kei_no") == null || "".equals(workDataMap.get("svc_kei_no")))
			{
				template.setNull(EKK0241D010CBSMsg.SVC_KEI_NO);
			}
			else
			{
				template.set(EKK0241D010CBSMsg.SVC_KEI_NO, (String)workDataMap.get("svc_kei_no"));
			}
		}
		else
		{
			template.set(EKK0241D010CBSMsg.SVC_KEI_NO, (String)inMap.get("kk0241_svc_kei_no"));
		}

		// サービス契約回線内訳番号
		if (inMap == null || inMap.get("kk0241_svc_kei_kaisen_ucwk_no") == null || "".equals(inMap.get("kk0241_svc_kei_kaisen_ucwk_no")))
		{
			template.setNull(EKK0241D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO);
		}
		else
		{
			template.set(EKK0241D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO, (String)inMap.get("kk0241_svc_kei_kaisen_ucwk_no"));
		}

		return template;
	}

	/**
	 * サービス契約＜TV＞登録の下りマッピング処理を行います。
	 * <br>
	 * @param msgList
	 * @param param
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws Exception
	 */
	private IRequestParameterReadWrite editRetEKK0101D010(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}
		HashMap workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_TV);
		if (workDataMap == null)
		{
			workDataMap = new HashMap();
			workMap.put(CC_WORK_AREA_NAME_TV, workDataMap);
		}

		HashMap dataMap = (HashMap)param.getData(fixedText);
		if (dataMap == null)
		{
			dataMap = new HashMap();
			param.setData(fixedText, dataMap);
		}

		// サービス契約＜ＴＶ＞登録マップ.サービス契約番号（サービス契約＜eo光ＴＶ＞） ← サービス契約番号
		if (template.isNull(EKK0101D010CBSMsg.SVC_KEI_NO))
		{
			dataMap.put("kk0101_svc_kei_no", "");
		}
		else
		{
			dataMap.put("kk0101_svc_kei_no", template.getString(EKK0101D010CBSMsg.SVC_KEI_NO));
			workDataMap.put("svc_kei_no", template.getString(EKK0101D010CBSMsg.SVC_KEI_NO));
			// 契約新規申込ワークエリアへ登録
			JKKBpCommon.setWkSvcKeiNoTv(param, template.getString(EKK0101D010CBSMsg.SVC_KEI_NO));
		}
		
		//更新年月日時分秒
		if (template.isNull(EKK0101D010CBSMsg.UPD_DTM))
		{
			dataMap.put("kk0101_upd_dtm", "");
		}
		else
		{
			dataMap.put("kk0101_upd_dtm", template.getString(EKK0101D010CBSMsg.UPD_DTM));

			HashMap inMap = (HashMap)param.getData(fixedText);
			JKKBpCommon.setLastDtmBySvcKeiNo(param, (String)inMap.get("kk0101_svc_kei_no"), 
					template.getString(EKK0101D010CBSMsg.UPD_DTM));

		}
		
		//世代登録年月日時分秒
		setOutData(dataMap, "kk0101_gene_add_dtm", template, EKK0101D010CBSMsg.GENE_ADD_DTM);	

		//サービス契約ステータス
		setOutData(dataMap, "kk0101_svc_kei_stat", template, EKK0101D010CBSMsg.SVC_KEI_STAT);
		
		//審査結果送信コード
		setOutData(dataMap, "kk0101_skekka_send_cd", template, EKK0101D010CBSMsg.SKEKKA_SEND_CD);

		//予約適用年月日
		setOutData(dataMap, "kk0101_rsv_aply_ymd", template, EKK0101D010CBSMsg.RSV_APLY_YMD);	

		//予約適用コード
		setOutData(dataMap, "kk0101_rsv_aply_cd", template, EKK0101D010CBSMsg.RSV_APLY_CD);	

		//初期デフォルトパスワード
		setOutData(dataMap, "kk0101_shk_dflt_pwd", template, EKK0101D010CBSMsg.SHK_DFLT_PWD);	

		//回復不可契約抽出済フラグ
		setOutData(dataMap, "kk0101_kaihk_fail_kei_cst_zm_flg", template, EKK0101D010CBSMsg.KAIHK_FAIL_KEI_CST_ZM_FLG);	

		//世代登録年月日時分秒(サービス契約<eo光TV>)
		setOutData(dataMap, "kk0101_kk0101_gene_add_dtm", template, EKK0101D010CBSMsg.KK0101_GENE_ADD_DTM);	

		//課金先番号
		setOutData(dataMap, "kk0101_kakins_no", template, EKK0101D010CBSMsg.KAKINS_NO);	

		//課金先適用開始年月日
		setOutData(dataMap, "kk0101_kakins_tstaymd", template, EKK0101D010CBSMsg.KAKINS_TSTAYMD);	

		//課金先適用終了年月日
		setOutData(dataMap, "kk0101_kakins_tendymd", template, EKK0101D010CBSMsg.KAKINS_TENDYMD);	

		//登録年月日時分秒
		setOutData(dataMap, "kk0101_add_dtm", template, EKK0101D010CBSMsg.ADD_DTM);	

		//登録オペレータアカウント
		setOutData(dataMap, "kk0101_add_opeacnt", template, EKK0101D010CBSMsg.ADD_OPEACNT);	

//		//更新年月日時分秒
//		setOutData(dataMap, "kk0101_upd_dtm", template, EKK0101D010CBSMsg.UPD_DTM);	

		//更新オペレータアカウント
		setOutData(dataMap, "kk0101_upd_opeacnt", template, EKK0101D010CBSMsg.UPD_OPEACNT);	

		//無効フラグ
		setOutData(dataMap, "kk0101_mk_flg", template, EKK0101D010CBSMsg.MK_FLG);	

		//外部連携契約コード
		setOutData(dataMap, "kk0101_out_rnki_kei_cd", template, EKK0101D010CBSMsg.OUT_RNKI_KEI_CD);

		param.setData(fixedText, dataMap);

		// エラー情報の設定
		editErrInfoEKK0101D010(param, template, (Integer)returnCode, fixedText);

		// エラー情報のマップを取得
		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));

		return param;
	}

	/**
	 * オプションサービス契約＜TV＞登録の下りマッピング処理を行います。
	 * <br>
	 * @param msgList
	 * @param param
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws Exception
	 */
	private IRequestParameterReadWrite editRetEKK0381D010(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		HashMap dataMap = (HashMap)param.getData(fixedText);
		if (dataMap == null)
		{
			dataMap = new HashMap();
			param.setData(fixedText, dataMap);
		}
		
		//オプションサービス契約番号
		setOutData(dataMap, "kk0381_op_svc_kei_no", template, EKK0381D010CBSMsg.OP_SVC_KEI_NO);	

		//世代登録年月日時分秒(オプションサービス契約)
		setOutData(dataMap, "kk0381_kk0351_gene_add_dtm", template, EKK0381D010CBSMsg.KK0351_GENE_ADD_DTM);	

		//オプションサービス契約ステータス
		setOutData(dataMap, "kk0381_op_svc_kei_stat", template, EKK0381D010CBSMsg.OP_SVC_KEI_STAT);	

		//予約適用年月日
		setOutData(dataMap, "kk0381_rsv_aply_ymd", template, EKK0381D010CBSMsg.RSV_APLY_YMD);	

		//予約適用コード
		setOutData(dataMap, "kk0381_rsv_aply_cd", template, EKK0381D010CBSMsg.RSV_APLY_CD);	

		//登録年月日時分秒
		setOutData(dataMap, "kk0381_add_dtm", template, EKK0381D010CBSMsg.ADD_DTM);	

		//登録オペレータアカウント
		setOutData(dataMap, "kk0381_add_opeacnt", template, EKK0381D010CBSMsg.ADD_OPEACNT);	

		//更新年月日時分秒
		if (template.isNull(EKK0381D010CBSMsg.UPD_DTM))
		{
			dataMap.put("kk0381_upd_dtm", "");
		}
		else
		{
			dataMap.put("kk0381_upd_dtm", template.getString(EKK0381D010CBSMsg.UPD_DTM));

			HashMap inMap = (HashMap)param.getData(fixedText);
			JKKBpCommon.setLastDtmBySvcKeiNo(param, (String)inMap.get("kk0101_svc_kei_no"), 
					template.getString(EKK0381D010CBSMsg.UPD_DTM));
		}

		//更新オペレータアカウント
		setOutData(dataMap, "kk0381_upd_opeacnt", template, EKK0381D010CBSMsg.UPD_OPEACNT);	

		//無効フラグ
		setOutData(dataMap, "kk0381_mk_flg", template, EKK0381D010CBSMsg.MK_FLG);	

		//世代登録年月日時分秒(オプションサービス契約<TV>)
		setOutData(dataMap, "kk0381_kk0381_gene_add_dtm", template, EKK0381D010CBSMsg.KK0381_GENE_ADD_DTM);	

		//課金先番号
		setOutData(dataMap, "kk0381_kakins_no", template, EKK0381D010CBSMsg.KAKINS_NO);	

		//課金先適用開始年月日
		setOutData(dataMap, "kk0381_kakins_tstaymd", template, EKK0381D010CBSMsg.KAKINS_TSTAYMD);	

		//課金先適用終了年月日
		setOutData(dataMap, "kk0381_kakins_tendymd", template, EKK0381D010CBSMsg.KAKINS_TENDYMD);	


		param.setData(fixedText, dataMap);

		// エラー情報の設定
		editErrInfoEKK0381D010(param, template, (Integer)returnCode, fixedText);

		// エラー情報のマップを取得
		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));

		return param;
	}

	/**
	 * サービス契約内訳＜TV＞登録の下りマッピング処理を行います。
	 * <br>
	 * @param msgList
	 * @param param
	 * @param fixedText
	 * @param index
	 * @return リクエストパラメータ
	 * @throws Exception
	 */
	private IRequestParameterReadWrite editRetEKK0181D010(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText, int index)
			throws Exception
	{
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}
		HashMap workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_TV);
		if (workDataMap == null)
		{
			workDataMap = new HashMap();
			workMap.put(CC_WORK_AREA_NAME_TV, workDataMap);
		}

		HashMap dataMap = (HashMap)param.getData(fixedText);
		if (dataMap == null)
		{
			dataMap = new HashMap();
			param.setData(fixedText, dataMap);
		}

		ArrayList dataList = (ArrayList)dataMap.get(SVC_KEI_UCWK_LIST);
		if (dataList == null)
		{
			dataList = new ArrayList();
			dataMap.put(SVC_KEI_UCWK_LIST, dataList);
		}

		HashMap childMap = (HashMap)dataList.get(index);
		if (childMap == null)
		{
			childMap = new HashMap();
			dataList.add(index, childMap);
		}

		// サービス契約内訳＜ＴＶ＞登録マップ.サービス契約内訳番号（サービス契約内訳＜eo光ＴＶ＞） ← サービス契約内訳番号
		if (template.isNull(EKK0181D010CBSMsg.SVC_KEI_UCWK_NO))
		{
			childMap.put("kk0181_svc_kei_ucwk_no", "");
		}
		else
		{
			childMap.put("kk0181_svc_kei_ucwk_no", template.getString(EKK0181D010CBSMsg.SVC_KEI_UCWK_NO));
			workDataMap.put("svc_kei_ucwk_no", template.getString(EKK0181D010CBSMsg.SVC_KEI_UCWK_NO));
		}

		//世代登録年月日時分秒(サービス契約内訳)
		setOutData(childMap, "kk0181_kk0161_gene_add_dtm", template, EKK0181D010CBSMsg.KK0161_GENE_ADD_DTM);	

		//サービス契約内訳ステータス
		setOutData(childMap, "kk0181_svc_kei_ucwk_stat", template, EKK0181D010CBSMsg.SVC_KEI_UCWK_STAT);	

		//予約適用年月日
		setOutData(childMap, "kk0181_rsv_aply_ymd", template, EKK0181D010CBSMsg.RSV_APLY_YMD);	

		//予約適用コード
		setOutData(childMap, "kk0181_rsv_aply_cd", template, EKK0181D010CBSMsg.RSV_APLY_CD);	

		//世代登録年月日時分秒(サービス契約内訳<eo光TV>)
		setOutData(childMap, "kk0181_kk0181_gene_add_dtm", template, EKK0181D010CBSMsg.KK0181_GENE_ADD_DTM);	

		//登録年月日時分秒
		setOutData(childMap, "kk0181_add_dtm", template, EKK0181D010CBSMsg.ADD_DTM);	

		//登録オペレータアカウント
		setOutData(childMap, "kk0181_add_opeacnt", template, EKK0181D010CBSMsg.ADD_OPEACNT);	

		//更新年月日時分秒
		if (template.isNull(EKK0181D010CBSMsg.UPD_DTM))
		{
			dataMap.put("kk0181_upd_dtm", "");
		}
		else
		{
			dataMap.put("kk0181_upd_dtm", template.getString(EKK0181D010CBSMsg.UPD_DTM));

			HashMap inMap = (HashMap)param.getData(fixedText);
			JKKBpCommon.setLastDtmBySvcKeiNo(param, (String)inMap.get("kk0101_svc_kei_no"), 
					template.getString(EKK0181D010CBSMsg.UPD_DTM));
		}

		//更新オペレータアカウント
		setOutData(childMap, "kk0181_upd_opeacnt", template, EKK0181D010CBSMsg.UPD_OPEACNT);	

		//無効フラグ
		setOutData(childMap, "kk0181_mk_flg", template, EKK0181D010CBSMsg.MK_FLG);	

		//課金先番号
		setOutData(childMap, "kk0181_kakins_no", template, EKK0181D010CBSMsg.KAKINS_NO);	

		//課金先適用開始年月日
		setOutData(childMap, "kk0181_kakins_tstaymd", template, EKK0181D010CBSMsg.KAKINS_TSTAYMD);	

		//課金先適用終了年月日
		setOutData(childMap, "kk0181_kakins_tendymd", template, EKK0181D010CBSMsg.KAKINS_TENDYMD);	

		// エラー情報の設定
		editErrInfoEKK0181D010(param, template, (Integer)returnCode, fixedText, index);

		// エラー情報のマップを取得
		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));

		return param;
	}

	
	/**
	 * 回線対象サービス契約登録の下りマッピング処理を行います。
	 * <br>
	 * @param msgList
	 * @param param
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws Exception
	 */
	private IRequestParameterReadWrite editRetEKK0241D010(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		HashMap dataMap = (HashMap)param.getData(fixedText);
		if (dataMap == null)
		{
			dataMap = new HashMap();
			param.setData(fixedText, dataMap);
		}

		//回線内訳使用開始年月日
		setOutData(dataMap, "kk0241_kaisen_ucwk_use_staymd", template, EKK0241D010CBSMsg.KAISEN_UCWK_USE_STAYMD);	

		//回線内訳使用終了年月日
		setOutData(dataMap, "kk0241_kaisen_ucwk_use_endymd", template, EKK0241D010CBSMsg.KAISEN_UCWK_USE_ENDYMD);	

		//登録年月日時分秒
		setOutData(dataMap, "kk0241_add_dtm", template, EKK0241D010CBSMsg.ADD_DTM);	

		//登録オペレータアカウント
		setOutData(dataMap, "kk0241_add_opeacnt", template, EKK0241D010CBSMsg.ADD_OPEACNT);	

		//更新年月日時分秒
		setOutData(dataMap, "kk0241_upd_dtm", template, EKK0241D010CBSMsg.UPD_DTM);	

		//更新オペレータアカウント
		setOutData(dataMap, "kk0241_upd_opeacnt", template, EKK0241D010CBSMsg.UPD_OPEACNT);	

		//無効フラグ
		setOutData(dataMap, "kk0241_mk_flg", template, EKK0241D010CBSMsg.MK_FLG);	

		// エラー情報の設定
		editErrInfoEKK0241D010(param, template, (Integer)returnCode, fixedText);

		// エラー情報のマップを取得
		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));

		return param;
	}

	/**
	 * 申込明細登録の下りマッピング処理
	 * <br>
	 * @param msgList
	 * @param param
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws Exception 
	 */
	private IRequestParameterReadWrite editRetEKK0021D010(Map<?, ?> msgList, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// リターンコード取得
		Object returnCode = msgList.get(JCMConstants.RET_CD_INT_KEY);

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}
		HashMap workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_TV);
		if (workDataMap == null)
		{
			workDataMap = new HashMap();
			workMap.put(CC_WORK_AREA_NAME_TV, workDataMap);
		}

		/* 業務データ設定 */
		HashMap dataMap = (HashMap)param.getData(fixedText);
		if (dataMap == null)
		{
			dataMap = new HashMap();
			param.setData(fixedText, dataMap);
		}
		
		// 申込明細番号
		if (template.isNull(EKK0021D010CBSMsg.MSKM_DTL_NO))
		{
			dataMap.put("kk0021_mskm_dtl_no", "");
		}
		else
		{
			dataMap.put("kk0021_mskm_dtl_no", template.getString(EKK0021D010CBSMsg.MSKM_DTL_NO));
			workDataMap.put("mskm_dtl_no", template.getString(EKK0021D010CBSMsg.MSKM_DTL_NO));
			// 契約新規申込ワークエリアへ登録
			JKKBpCommon.setWkMskmDtlNoTv(param, template.getString(EKK0021D010CBSMsg.MSKM_DTL_NO));
		}
		
		// 更新年月日時分秒
		if (template.isNull(EKK0021D010CBSMsg.UPD_DTM))
		{
			dataMap.put("kk0021_upd_dtm", "");
		}
		else
		{
			String updDtm = template.getString(EKK0021D010CBSMsg.UPD_DTM);
			dataMap.put("kk0021_upd_dtm", updDtm);
			// 申込排他制御作業マップにセットする
			JKKBpCommon.setLastDtmByMskm(param, updDtm);
		}
		
		//世代登録年月日時分秒
		setOutData(dataMap, "kk0021_gene_add_dtm", template, EKK0021D010CBSMsg.GENE_ADD_DTM);		

		//申込明細ステータス
		setOutData(dataMap, "kk0021_mskm_dtl_stat", template, EKK0021D010CBSMsg.MSKM_DTL_STAT);		

		//登録年月日時分秒
		setOutData(dataMap, "kk0021_add_dtm", template, EKK0021D010CBSMsg.ADD_DTM);		

		//登録オペレータアカウント
		setOutData(dataMap, "kk0021_add_opeacnt", template, EKK0021D010CBSMsg.ADD_OPEACNT);		

//		//更新年月日時分秒
		setOutData(dataMap, "kk0021_upd_dtm", template, EKK0021D010CBSMsg.UPD_DTM);		

		//更新オペレータアカウント
		setOutData(dataMap, "kk0021_upd_opeacnt", template, EKK0021D010CBSMsg.UPD_OPEACNT);		

		//無効フラグ
		setOutData(dataMap, "kk0021_mk_flg", template, EKK0021D010CBSMsg.MK_FLG);		

		/* 作業項目情報 */
		HashMap addSvcKeiTvWorkMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_TV);
		if (addSvcKeiTvWorkMap == null)
		{
			addSvcKeiTvWorkMap = new HashMap();
			workMap.put(CC_WORK_AREA_NAME_TV, addSvcKeiTvWorkMap);
		}

		// 申込明細番号
		if (template.isNull(EKK0021D010CBSMsg.MSKM_DTL_NO))
		{
			addSvcKeiTvWorkMap.put("mskm_dtl_no", "");
		}
		else
		{
			addSvcKeiTvWorkMap.put("mskm_dtl_no", template.getString(EKK0021D010CBSMsg.MSKM_DTL_NO));
		}
		
		//更新年月日時分秒
		
		if (template.isNull(EKK0021D010CBSMsg.UPD_DTM))
		{
			addSvcKeiTvWorkMap.put("upd_dtm", "");
		}
		else
		{
			addSvcKeiTvWorkMap.put("upd_dtm", template.getString(EKK0021D010CBSMsg.UPD_DTM));
		}
		
		// エラー情報の設定
		editErrInfoEKK0021D010(param, template, (Integer)returnCode, fixedText);

		// エラー情報のマップを取得
		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));

		return param;
	}

	/**
	 * エラー情報のマッピング処理を行います。
	 * <br>
	 * @param param
	 * @param templates
	 * @param returnCode
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	public IRequestParameterReadWrite editErrorInfo(IRequestParameterReadWrite param, CAANMsg[] templates, int returnCode, String fixedText)
			throws RequestParameterException
	{
		// ユーザデータ情報
		HashMap inMapChk = (HashMap)(param.getData(fixedText));
		if (inMapChk == null)
		{
			return param;
		}

		int index = 0;

		// 申込明細登録
		String mskmDtlNo = getMskmDtlWorkMapValue(param, "mskm_dtl_no_tv");
		if (mskmDtlNo == null || "".equals(mskmDtlNo))
		{
			editErrInfoEKK0021D010(param, templates[index], returnCode, fixedText);
			index += 1;
		}

		// サービス契約＜TV＞登録
		editErrInfoEKK0101D010(param, templates[index], returnCode, fixedText);
		index += 1;
		
		if ((String)inMapChk.get("kk0381_op_svc_cd") != null && !"".equals((String)inMapChk.get("kk0381_op_svc_cd")) && 
				!"0".equals((String)inMapChk.get("kk0381_cable_guide_mskm_cnt")) &&
					inMapChk.get("kk0381_cable_guide_mskm_cnt") != null)
		{
			// オプションサービス契約＜TV＞登録
			editErrInfoEKK0381D010(param, templates[index], returnCode, fixedText);
			index += 1;
		}

		// STB台数取得
		HashMap inMap = (HashMap)param.getData(fixedText);
		int devCnt = ((ArrayList)inMap.get(SVC_KEI_UCWK_LIST)).size();

		for (int i = 0; i < devCnt; i++)
		{
			if ((String)inMap.get("kk0181_pcrs_cd") != null && !"".equals((String)inMap.get("kk0181_pcrs_cd")))
			{
				// サービス契約内訳＜TV＞登録
				editErrInfoEKK0181D010(param, templates[index], returnCode, fixedText, i);
				index += 1;
			}
		}

		// サービス契約回線内訳番号がわたされていれば回線対象サービス契約登録の登録を行う
		if (inMap != null && inMap.get("kk0241_svc_kei_kaisen_ucwk_no") != null && !"".equals(inMap.get("kk0241_svc_kei_kaisen_ucwk_no")))
		{
			// 回線対象サービス契約登録
			editErrInfoEKK0241D010(param, templates[index], returnCode, fixedText);
		}

		return param;
	}

	/**
	 * コントロールマップエラー情報格納処理を行います。
	 * <br>
	 * @param param
	 * @param itemplateStatus
	 * @param returnCode
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	private IRequestParameterReadWrite setControlMapErrInfo(IRequestParameterReadWrite param, int itemplateStatus, int returnCode)
			throws RequestParameterException
	{
		int templateStatus = itemplateStatus;

		if (returnCode != 0)
		{
			templateStatus = 9000;
		}
		if (JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + String.format(RETURN_MESSAGE_FORMAT, 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)
		{
			String formatStatus = String.format(RETURN_MESSAGE_FORMAT, templateStatus);
			String message = JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
		}
		return param;
	}

	/**
	 * 申込明細登録のエラー情報マッピング処理を行います。
	 * 
	 * <br>
	 * @param param
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	private IRequestParameterReadWrite editErrInfoEKK0021D010(IRequestParameterReadWrite param, CAANMsg template, int returnCode, String fixedText)
			throws RequestParameterException
	{
		int templateStatus = template.getInt(EKK0021D010CBSMsg.STATUS);
		if (returnCode != 0)
		{
			templateStatus = 9000;
		}
		if (JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + String.format(RETURN_MESSAGE_FORMAT, 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)
		{
			String formatStatus = String.format(RETURN_MESSAGE_FORMAT, templateStatus);
			String message = JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
		}

		HashMap inMap = (HashMap)(param.getData(fixedText));
		
		//サービス契約内訳＜eo光ＴＶ＞変更マップ.申込番号　→　申込番号 のエラー情報返却
		setErrInfo(inMap, "kk0021_mskm_no_err", template, EKK0021D010CBSMsg.MSKM_NO_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.申込書番号　→　申込書番号 のエラー情報返却
		setErrInfo(inMap, "kk0021_mskmsho_no_err", template, EKK0021D010CBSMsg.MSKMSHO_NO_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.申込年月日　→　申込年月日 のエラー情報返却
		setErrInfo(inMap, "kk0021_mskm_ymd_err", template, EKK0021D010CBSMsg.MSKM_YMD_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.SYSID　→　SYSID のエラー情報返却
		setErrInfo(inMap, "kk0021_sysid_err", template, EKK0021D010CBSMsg.SYSID_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.WEB受付番号　→　WEB受付番号 のエラー情報返却
		setErrInfo(inMap, "kk0021_web_uk_no_err", template, EKK0021D010CBSMsg.WEB_UK_NO_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.申込形態コード　→　申込形態コード のエラー情報返却
		setErrInfo(inMap, "kk0021_mskm_form_cd_err", template, EKK0021D010CBSMsg.MSKM_FORM_CD_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.申込明細種別コード　→　申込明細種別コード のエラー情報返却
		setErrInfo(inMap, "kk0021_mskm_dtl_sbt_cd_err", template, EKK0021D010CBSMsg.MSKM_DTL_SBT_CD_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.連絡先携帯電話番号　→　連絡先携帯電話番号 のエラー情報返却
		setErrInfo(inMap, "kk0021_rrks_ktai_telno_err", template, EKK0021D010CBSMsg.RRKS_KTAI_TELNO_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.連絡先勤務先名　→　連絡先勤務先名 のエラー情報返却
		setErrInfo(inMap, "kk0021_rrks_offc_nm_err", template, EKK0021D010CBSMsg.RRKS_OFFC_NM_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.昼間連絡先電話番号　→　昼間連絡先電話番号 のエラー情報返却
		setErrInfo(inMap, "kk0021_dt_rrks_telno_err", template, EKK0021D010CBSMsg.DT_RRKS_TELNO_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.新規申込種別コード　→　新規申込種別コード のエラー情報返却
		setErrInfo(inMap, "kk0021_new_mskm_sbt_cd_err", template, EKK0021D010CBSMsg.NEW_MSKM_SBT_CD_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.申込契機コード　→　申込契機コード のエラー情報返却
		setErrInfo(inMap, "kk0021_mskm_optnty_cd_err", template, EKK0021D010CBSMsg.MSKM_OPTNTY_CD_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.宅内調査希望アポ期限年月日　→　宅内調査希望アポ期限年月日 のエラー情報返却
		setErrInfo(inMap, "kk0021_takcho_kibo_apo_kigen_ymd_err", template, EKK0021D010CBSMsg.TAKCHO_KIBO_APO_KIGEN_YMD_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.工事アポ連絡先指定コード　→　工事アポ連絡先指定コード のエラー情報返却
		setErrInfo(inMap, "kk0021_koji_apo_rrks_shitei_cd_err", template, EKK0021D010CBSMsg.KOJI_APO_RRKS_SHITEI_CD_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.工事アポ連絡先電話番号　→　工事アポ連絡先電話番号 のエラー情報返却
		setErrInfo(inMap, "kk0021_koji_apo_rrks_telno_err", template, EKK0021D010CBSMsg.KOJI_APO_RRKS_TELNO_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.連絡事項登録年月日時分秒　→　連絡事項登録年月日時分秒 のエラー情報返却
		setErrInfo(inMap, "kk0021_rrk_jiko_add_dtm_err", template, EKK0021D010CBSMsg.RRK_JIKO_ADD_DTM_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.申込連絡先メールアドレス　→　申込連絡先メールアドレス のエラー情報返却
		setErrInfo(inMap, "kk0021_mskm_rrks_mlad_err", template, EKK0021D010CBSMsg.MSKM_RRKS_MLAD_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.工事進捗通知メールアドレス　→　工事進捗通知メールアドレス のエラー情報返却
		setErrInfo(inMap, "kk0021_koji_prg_tchi_mlad_err", template, EKK0021D010CBSMsg.KOJI_PRG_TCHI_MLAD_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.連絡事項　→　連絡事項 のエラー情報返却
		setErrInfo(inMap, "kk0021_rrk_jiko_err", template, EKK0021D010CBSMsg.RRK_JIKO_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.工事進捗通知携帯メールアドレス　→　工事進捗通知携帯メールアドレス のエラー情報返却
		setErrInfo(inMap, "kk0021_kjsc_tch_ktai_mlad_err", template, EKK0021D010CBSMsg.KJSC_TCH_KTAI_MLAD_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.メール送信除外フラグ　→　メール送信除外フラグ のエラー情報返却
		setErrInfo(inMap, "kk0021_ml_send_jgi_flg_err", template, EKK0021D010CBSMsg.ML_SEND_JGI_FLG_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.メール送信除外理由メモ　→　メール送信除外理由メモ のエラー情報返却
		setErrInfo(inMap, "kk0021_ml_send_jgi_rsn_memo_err", template, EKK0021D010CBSMsg.ML_SEND_JGI_RSN_MEMO_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.番ポ申込連絡先電話番号　→　番ポ申込連絡先電話番号 のエラー情報返却
		setErrInfo(inMap, "kk0021_bmp_mskm_rrks_tln_err", template, EKK0021D010CBSMsg.BMP_MSKM_RRKS_TLN_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.オプションサービス引継有無　→　オプションサービス引継有無 のエラー情報返却
		setErrInfo(inMap, "kk0021_op_svc_hktgi_um_err", template, EKK0021D010CBSMsg.OP_SVC_HKTGI_UM_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.解約書類送付希望有無　→　解約書類送付希望有無 のエラー情報返却
		setErrInfo(inMap, "kk0021_dsl_aticle_sohu_kibo_um_err", template, EKK0021D010CBSMsg.DSL_ATICLE_SOHU_KIBO_UM_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.連絡手段補記　→　連絡手段補記 のエラー情報返却
		setErrInfo(inMap, "kk0021_rrk_way_hoki_err", template, EKK0021D010CBSMsg.RRK_WAY_HOKI_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.新築物件コード　→　新築物件コード のエラー情報返却
		setErrInfo(inMap, "kk0021_newconst_bukken_cd_err", template, EKK0021D010CBSMsg.NEWCONST_BUKKEN_CD_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.復活案件フラグ　→　復活案件フラグ のエラー情報返却
		setErrInfo(inMap, "kk0021_hukkat_anken_flg_err", template, EKK0021D010CBSMsg.HUKKAT_ANKEN_FLG_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.同一設備再申込コード　→　同一設備再申込コード のエラー情報返却
		setErrInfo(inMap, "kk0021_same_equip_re_mskm_cd_err", template, EKK0021D010CBSMsg.SAME_EQUIP_RE_MSKM_CD_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.本人確認書類種別コード　→　本人確認書類種別コード のエラー情報返却
		setErrInfo(inMap, "kk0021_hnin_cfm_aticle_sbt_cd_err", template, EKK0021D010CBSMsg.HNIN_CFM_ATICLE_SBT_CD_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.申込書種別コード　→　申込書種別コード のエラー情報返却
		setErrInfo(inMap, "kk0021_mskmsho_sbt_cd_err", template, EKK0021D010CBSMsg.MSKMSHO_SBT_CD_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.契約付加コード　→　契約付加コード のエラー情報返却
		setErrInfo(inMap, "kk0021_kei_huka_cd_err", template, EKK0021D010CBSMsg.KEI_HUKA_CD_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.地図添付有無　→　地図添付有無 のエラー情報返却
		setErrInfo(inMap, "kk0021_map_temp_um_err", template, EKK0021D010CBSMsg.MAP_TEMP_UM_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.KCNSTB申込台数　→　KCNSTB申込台数 のエラー情報返却
		setErrInfo(inMap, "kk0021_kcn_stb_mskm_cnt_err", template, EKK0021D010CBSMsg.KCN_STB_MSKM_CNT_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.KCNSTB種類コード　→　KCNSTB種類コード のエラー情報返却
		setErrInfo(inMap, "kk0021_kcn_stb_kind_cd_err", template, EKK0021D010CBSMsg.KCN_STB_KIND_CD_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.マンション設備システム連携用記事欄　→　マンション設備システム連携用記事欄 のエラー情報返却
		setErrInfo(inMap, "kk0021_manssbsys_rnki_yo_kijiran_err", template, EKK0021D010CBSMsg.MANSSBSYS_RNKI_YO_KIJIRAN_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.マンションID　→　マンションID のエラー情報返却
		setErrInfo(inMap, "kk0021_mansion_id_err", template, EKK0021D010CBSMsg.MANSION_ID_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.CAT-ID　→　CAT-ID のエラー情報返却
		setErrInfo(inMap, "kk0021_catid_err", template, EKK0021D010CBSMsg.CATID_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.申込受付種別コード　→　申込受付種別コード のエラー情報返却
		setErrInfo(inMap, "kk0021_mkm_uk_sbt_cd_err", template, EKK0021D010CBSMsg.MKM_UK_SBT_CD_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.申込書取扱情報担当者名　→　申込書取扱情報担当者名 のエラー情報返却
		setErrInfo(inMap, "kk0021_mskmsho_trat_if_tntsha_nm_err", template, EKK0021D010CBSMsg.MSKMSHO_TRAT_IF_TNTSHA_NM_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.申込書取扱情報電話番号　→　申込書取扱情報電話番号 のエラー情報返却
		setErrInfo(inMap, "kk0021_mskmsho_trat_if_telno_err", template, EKK0021D010CBSMsg.MSKMSHO_TRAT_IF_TELNO_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.更新年月日時分秒(更新前)　→　更新年月日時分秒(更新前) のエラー情報返却
		setErrInfo(inMap, "kk0021_upd_dtm_bf_err", template, EKK0021D010CBSMsg.UPD_DTM_BF_ERR);
		
		//サービス契約内訳＜eo光ＴＶ＞変更マップ.申込書明細番号　→　申込書明細番号 のエラー情報返却
		setErrInfo(inMap, "kk0021_mskmsho_dtl_no_err", template, EKK0021D010CBSMsg.MSKMSHO_DTL_NO_ERR);

		//サービス契約内訳＜eo光ＴＶ＞変更マップ.本人確認書類名　→　本人確認書類名 のエラー情報返却
		setErrInfo(inMap,"kk0021_hnin_cfm_aticle_nm_err", template, EKK0021D010CBSMsg.HNIN_CFM_ATICLE_NM_ERR);

		return param;
	}

	/**
	 * サービス契約＜TV＞登録のエラー情報マッピング処理を行います。
	 * <br>
	 * @param iparam
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	private IRequestParameterReadWrite editErrInfoEKK0101D010(IRequestParameterReadWrite iparam, CAANMsg template, int returnCode, String fixedText)
			throws RequestParameterException
	{
		IRequestParameterReadWrite param = setControlMapErrInfo(iparam, template.getInt(EKK0101D010CBSMsg.STATUS), returnCode);

		HashMap inMap = (HashMap)param.getData(fixedText);


		//サービス契約内訳＜eo光ＴＶ＞登録マップ.SYSID　→　SYSID のエラー情報返却
		setErrInfo(inMap, "kk0101_sysid_err", template, EKK0101D010CBSMsg.SYSID_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.サービスコード　→　サービスコード のエラー情報返却
		setErrInfo(inMap, "kk0101_svc_cd_err", template, EKK0101D010CBSMsg.SVC_CD_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.申込明細番号　→　申込明細番号 のエラー情報返却
		setErrInfo(inMap, "kk0101_mskm_dtl_no_err", template, EKK0101D010CBSMsg.MSKM_DTL_NO_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.面開発案件番号　→　面開発案件番号 のエラー情報返却
		setErrInfo(inMap, "kk0101_menkaihat_anken_no_err", template, EKK0101D010CBSMsg.MENKAIHAT_ANKEN_NO_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.料金グループコード　→　料金グループコード のエラー情報返却
		setErrInfo(inMap, "kk0101_prc_grp_cd_err", template, EKK0101D010CBSMsg.PRC_GRP_CD_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.料金コースコード　→　料金コースコード のエラー情報返却
		setErrInfo(inMap, "kk0101_pcrs_cd_err", template, EKK0101D010CBSMsg.PCRS_CD_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.料金プランコード　→　料金プランコード のエラー情報返却
		setErrInfo(inMap, "kk0101_pplan_cd_err", template, EKK0101D010CBSMsg.PPLAN_CD_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.提供方式契約番号　→　提供方式契約番号 のエラー情報返却
		setErrInfo(inMap, "kk0101_tk_hoshiki_kei_no_err", template, EKK0101D010CBSMsg.TK_HOSHIKI_KEI_NO_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.サービス利用開始希望年月日　→　サービス利用開始希望年月日 のエラー情報返却
		setErrInfo(inMap, "kk0101_svc_use_sta_kibo_ymd_err", template, EKK0101D010CBSMsg.SVC_USE_STA_KIBO_YMD_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.予約適用開始希望年月日　→　予約適用開始希望年月日 のエラー情報返却
		setErrInfo(inMap, "kk0101_rsv_tsta_kibo_ymd_err", template, EKK0101D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.ID速報書出力要否　→　ID速報書出力要否 のエラー情報返却
		setErrInfo(inMap, "kk0101_id_sokhosho_output_yh_err", template, EKK0101D010CBSMsg.ID_SOKHOSHO_OUTPUT_YH_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.支払い方法継続フラグ　→　支払い方法継続フラグ のエラー情報返却
		setErrInfo(inMap, "kk0101_payway_keizoku_flg_err", template, EKK0101D010CBSMsg.PAYWAY_KEIZOKU_FLG_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.試用加入年月日　→　試用加入年月日 のエラー情報返却
		setErrInfo(inMap, "kk0101_ftrial_kanyu_ymd_err", template, EKK0101D010CBSMsg.FTRIAL_KANYU_YMD_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.試用期間終了年月日　→　試用期間終了年月日 のエラー情報返却
		setErrInfo(inMap, "kk0101_ftrial_prd_endymd_err", template, EKK0101D010CBSMsg.FTRIAL_PRD_ENDYMD_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.本加入年月日　→　本加入年月日 のエラー情報返却
		setErrInfo(inMap, "kk0101_honkanyu_ymd_err", template, EKK0101D010CBSMsg.HONKANYU_YMD_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.本加入移行期限年月日　→　本加入移行期限年月日 のエラー情報返却
		setErrInfo(inMap, "kk0101_honkanyu_iko_kigen_ymd_err", template, EKK0101D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.レター発送仕分区分　→　レター発送仕分区分 のエラー情報返却
		setErrInfo(inMap, "kk0101_letter_hasso_shiwake_div_err", template, EKK0101D010CBSMsg.LETTER_HASSO_SHIWAKE_DIV_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.サンキューレター送付先コード　→　サンキューレター送付先コード のエラー情報返却
		setErrInfo(inMap, "kk0101_thnx_letter_shs_cd_err", template, EKK0101D010CBSMsg.THNX_LETTER_SHS_CD_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.WEBオプション追加不可フラグ　→　WEBオプション追加不可フラグ のエラー情報返却
		setErrInfo(inMap, "kk0101_web_op_add_fail_flg_err", template, EKK0101D010CBSMsg.WEB_OP_ADD_FAIL_FLG_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.変更元法人サービス契約受付番号　→　変更元法人サービス契約受付番号 のエラー情報返却
		setErrInfo(inMap, "kk0101_chge_mt_hojinsvkei_uk_no_err", template, EKK0101D010CBSMsg.CHGE_MT_HOJINSVKEI_UK_NO_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.変更元法人サービス契約受付番号子　→　変更元法人サービス契約受付番号子 のエラー情報返却
		setErrInfo(inMap, "kk0101_chge_mt_hojinsvkei_uk_nopt_err", template, EKK0101D010CBSMsg.CHGE_MT_HOJINSVKEI_UK_NOPT_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.違約金発生コード　→　違約金発生コード のエラー情報返却
		setErrInfo(inMap, "kk0101_pnlty_hassei_cd_err", template, EKK0101D010CBSMsg.PNLTY_HASSEI_CD_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.異動区分　→　異動区分 のエラー情報返却
		setErrInfo(inMap, "kk0101_ido_div_err", template, EKK0101D010CBSMsg.IDO_DIV_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.紹介コード　→　紹介コード のエラー情報返却
		setErrInfo(inMap, "kk0101_intr_cd_err", template, EKK0101D010CBSMsg.INTR_CD_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.業務連絡備考　→　業務連絡備考 のエラー情報返却
		setErrInfo(inMap, "kk0101_work_rrk_biko_err", template, EKK0101D010CBSMsg.WORK_RRK_BIKO_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.自動照査処理状態コード　→　自動照査処理状態コード のエラー情報返却
		setErrInfo(inMap, "kk0101_auto_shosa_tran_stat_cd_err", template, EKK0101D010CBSMsg.AUTO_SHOSA_TRAN_STAT_CD_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.電波障害案件番号　→　電波障害案件番号 のエラー情報返却
		setErrInfo(inMap, "kk0101_dmps_anken_no_err", template, EKK0101D010CBSMsg.DMPS_ANKEN_NO_ERR);	

		//**********↓UI残-717**********
		//サービス契約内訳＜eo光ＴＶ＞登録マップ.再送信提供サービス種別コード　→　再送信提供サービス種別コード のエラー情報返却
		setErrInfo(inMap, "kk0101_re_send_tk_svc_sbt_cd_err", template, EKK0101D010CBSMsg.RE_SEND_TK_SVC_SBT_CD_ERR);
		//**********↑UI残-717**********

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.TV営業地区コード　→　TV営業地区コード のエラー情報返却
		setErrInfo(inMap, "kk0101_tv_business_chik_cd_err", template, EKK0101D010CBSMsg.TV_BUSINESS_CHIK_CD_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.TV営業担当ユーザーID　→　TV営業担当ユーザーID のエラー情報返却
		setErrInfo(inMap, "kk0101_tv_business_tnt_user_id_err", template, EKK0101D010CBSMsg.TV_BUSINESS_TNT_USER_ID_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.請求契約番号　→　請求契約番号 のエラー情報返却
		setErrInfo(inMap, "kk0101_seiky_kei_no_err", template, EKK0101D010CBSMsg.SEIKY_KEI_NO_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.料金項目コード　→　料金項目コード のエラー情報返却
		setErrInfo(inMap, "kk0101_prc_kmk_cd_err", template, EKK0101D010CBSMsg.PRC_KMK_CD_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.事務手数料自動適用要否　→　事務手数料自動適用要否 のエラー情報返却
		setErrInfo(inMap, "kk0101_rule0059_auto_aply_err", template, EKK0101D010CBSMsg.RULE0059_AUTO_APLY_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.工事費自動適用要否　→　工事費自動適用要否 のエラー情報返却
		setErrInfo(inMap, "kk0101_rule0079_auto_aply_err", template, EKK0101D010CBSMsg.RULE0079_AUTO_APLY_ERR);	


		return param;
	}

	/**
	 * オプションサービス契約＜TV＞登録のエラー情報マッピング処理を行います。
	 * <br>
	 * @param iparam
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	private IRequestParameterReadWrite editErrInfoEKK0381D010(IRequestParameterReadWrite iparam, CAANMsg template, int returnCode, String fixedText)
			throws RequestParameterException
	{
		IRequestParameterReadWrite param = setControlMapErrInfo(iparam, template.getInt(EKK0381D010CBSMsg.STATUS), returnCode);

		HashMap inMap = (HashMap)param.getData(fixedText);

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.オプションサービスコード　→　オプションサービスコード のエラー情報返却
		setErrInfo(inMap, "kk0381_op_svc_cd_err", template, EKK0381D010CBSMsg.OP_SVC_CD_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.料金コースコード　→　料金コースコード のエラー情報返却
		setErrInfo(inMap, "kk0381_pcrs_cd_err", template, EKK0381D010CBSMsg.PCRS_CD_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.料金プランコード　→　料金プランコード のエラー情報返却
		setErrInfo(inMap, "kk0381_pplan_cd_err", template, EKK0381D010CBSMsg.PPLAN_CD_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.親契約識別コード　→　親契約識別コード のエラー情報返却
		setErrInfo(inMap, "kk0381_oya_kei_skbt_cd_err", template, EKK0381D010CBSMsg.OYA_KEI_SKBT_CD_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.サービス契約番号　→　サービス契約番号 のエラー情報返却
		setErrInfo(inMap, "kk0381_svc_kei_no_err", template, EKK0381D010CBSMsg.SVC_KEI_NO_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.サービス契約内訳番号　→　サービス契約内訳番号 のエラー情報返却
		setErrInfo(inMap, "kk0381_svc_kei_ucwk_no_err", template, EKK0381D010CBSMsg.SVC_KEI_UCWK_NO_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.SYSID　→　SYSID のエラー情報返却
		setErrInfo(inMap, "kk0381_sysid_err", template, EKK0381D010CBSMsg.SYSID_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.申込明細番号　→　申込明細番号 のエラー情報返却
		setErrInfo(inMap, "kk0381_mskm_dtl_no_err", template, EKK0381D010CBSMsg.MSKM_DTL_NO_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.試用加入年月日　→　試用加入年月日 のエラー情報返却
		setErrInfo(inMap, "kk0381_ftrial_kanyu_ymd_err", template, EKK0381D010CBSMsg.FTRIAL_KANYU_YMD_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.試用期間終了年月日　→　試用期間終了年月日 のエラー情報返却
		setErrInfo(inMap, "kk0381_ftrial_prd_endymd_err", template, EKK0381D010CBSMsg.FTRIAL_PRD_ENDYMD_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.本加入年月日　→　本加入年月日 のエラー情報返却
		setErrInfo(inMap, "kk0381_honkanyu_ymd_err", template, EKK0381D010CBSMsg.HONKANYU_YMD_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.本加入移行期限年月日　→　本加入移行期限年月日 のエラー情報返却
		setErrInfo(inMap, "kk0381_honkanyu_iko_kigen_ymd_err", template, EKK0381D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.サービス利用開始希望年月日　→　サービス利用開始希望年月日 のエラー情報返却
		setErrInfo(inMap, "kk0381_svc_use_sta_kibo_ymd_err", template, EKK0381D010CBSMsg.SVC_USE_STA_KIBO_YMD_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.予約適用開始希望年月日　→　予約適用開始希望年月日 のエラー情報返却
		setErrInfo(inMap, "kk0381_rsv_tsta_kibo_ymd_err", template, EKK0381D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.違約金発生コード　→　違約金発生コード のエラー情報返却
		setErrInfo(inMap, "kk0381_pnlty_hassei_cd_err", template, EKK0381D010CBSMsg.PNLTY_HASSEI_CD_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.異動区分　→　異動区分 のエラー情報返却
		setErrInfo(inMap, "kk0381_ido_div_err", template, EKK0381D010CBSMsg.IDO_DIV_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.NHK団体一括支払サイクルコード　→　NHK団体一括支払サイクルコード のエラー情報返却
		setErrInfo(inMap, "kk0381_nhk_grp_ikt_pay_cycle_cd_err", template, EKK0381D010CBSMsg.NHK_GRP_IKT_PAY_CYCLE_CD_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.初回請求年月日　→　初回請求年月日 のエラー情報返却
		setErrInfo(inMap, "kk0381_first_seiymd_err", template, EKK0381D010CBSMsg.FIRST_SEIYMD_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.ケーブルガイド申込数　→　ケーブルガイド申込数 のエラー情報返却
		setErrInfo(inMap, "kk0381_cable_guide_mskm_cnt_err", template, EKK0381D010CBSMsg.CABLE_GUIDE_MSKM_CNT_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.ガイド誌種別コード　→　ガイド誌種別コード のエラー情報返却
//		setErrInfo(inMap, "kk0381_guidemg_sbt_cd_err", template, EKK0381D010CBSMsg.GUIDEMG_SBT_CD_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.ガイド誌発送方法コード　→　ガイド誌発送方法コード のエラー情報返却
//		setErrInfo(inMap, "kk0381_guidemg_hasso_way_cd_err", template, EKK0381D010CBSMsg.GUIDEMG_HASSO_WAY_CD_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.ガイド誌送付先名　→　ガイド誌送付先名 のエラー情報返却
		setErrInfo(inMap, "kk0381_guidemg_sohus_nm_err", template, EKK0381D010CBSMsg.GUIDEMG_SOHUS_NM_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.ガイド誌送付先カナ名　→　ガイド誌送付先カナ名 のエラー情報返却
		setErrInfo(inMap, "kk0381_guidemg_sohus_kana_err", template, EKK0381D010CBSMsg.GUIDEMG_SOHUS_KANA_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.ガイド誌送付先住所コード　→　ガイド誌送付先住所コード のエラー情報返却
		setErrInfo(inMap, "kk0381_guidemg_sohus_ad_cd_err", template, EKK0381D010CBSMsg.GUIDEMG_SOHUS_AD_CD_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.ガイド誌送付先郵便番号　→　ガイド誌送付先郵便番号 のエラー情報返却
		setErrInfo(inMap, "kk0381_guidemg_sohus_pcd_err", template, EKK0381D010CBSMsg.GUIDEMG_SOHUS_PCD_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.ガイド誌送付先都道府県名　→　ガイド誌送付先都道府県名 のエラー情報返却
		setErrInfo(inMap, "kk0381_guidemg_sohus_state_nm_err", template, EKK0381D010CBSMsg.GUIDEMG_SOHUS_STATE_NM_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.ガイド誌送付先市区町村名　→　ガイド誌送付先市区町村名 のエラー情報返却
		setErrInfo(inMap, "kk0381_guidemg_sohus_city_nm_err", template, EKK0381D010CBSMsg.GUIDEMG_SOHUS_CITY_NM_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.ガイド誌送付先大字通称名　→　ガイド誌送付先大字通称名 のエラー情報返却
		setErrInfo(inMap, "kk0381_guidemg_sohus_oaztsu_nm_err", template, EKK0381D010CBSMsg.GUIDEMG_SOHUS_OAZTSU_NM_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.ガイド誌送付先字丁目名　→　ガイド誌送付先字丁目名 のエラー情報返却
		setErrInfo(inMap, "kk0381_guidemg_sohus_azcho_nm_err", template, EKK0381D010CBSMsg.GUIDEMG_SOHUS_AZCHO_NM_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.ガイド誌送付先番地号　→　ガイド誌送付先番地号 のエラー情報返却
		setErrInfo(inMap, "kk0381_guidemg_sohus_bnchigo_err", template, EKK0381D010CBSMsg.GUIDEMG_SOHUS_BNCHIGO_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.ガイド誌送付先住所補記・建物名　→　ガイド誌送付先住所補記・建物名 のエラー情報返却
		setErrInfo(inMap, "kk0381_guidemg_sohus_adrttm_err", template, EKK0381D010CBSMsg.GUIDEMG_SOHUS_ADRTTM_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.ガイド誌送付先住所補記・部屋番号　→　ガイド誌送付先住所補記・部屋番号 のエラー情報返却
		setErrInfo(inMap, "kk0381_guidemg_sohus_adrrm_err", template, EKK0381D010CBSMsg.GUIDEMG_SOHUS_ADRRM_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.ガイド誌送付先電話番号　→　ガイド誌送付先電話番号 のエラー情報返却
		setErrInfo(inMap, "kk0381_guidemg_sohus_telno_err", template, EKK0381D010CBSMsg.GUIDEMG_SOHUS_TELNO_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.ガイド誌送付先個別指定フラグ　→　ガイド誌送付先個別指定フラグ のエラー情報返却
		setErrInfo(inMap, "kk0381_guidemg_shs_ksitei_flg_err", template, EKK0381D010CBSMsg.GUIDEMG_SHS_KSITEI_FLG_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.NHKお客様番号　→　NHKお客様番号 のエラー情報返却
		setErrInfo(inMap, "kk0381_nhk_cust_no_err", template, EKK0381D010CBSMsg.NHK_CUST_NO_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.NHK団体一括契約NHK締結年月日　→　NHK団体一括契約NHK締結年月日 のエラー情報返却
		setErrInfo(inMap, "kk0381_nhk_dntiktkei_nhk_cnc_ymd_err", template, EKK0381D010CBSMsg.NHK_DNTIKTKEI_NHK_CNC_YMD_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.NHK団体一括契約変更届年月日　→　NHK団体一括契約変更届年月日 のエラー情報返却
		setErrInfo(inMap, "kk0381_nhk_dntiktkei_hktdk_ymd_err", template, EKK0381D010CBSMsg.NHK_DNTIKTKEI_HKTDK_YMD_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.NHK団体一括契約登録メモ　→　NHK団体一括契約登録メモ のエラー情報返却
		setErrInfo(inMap, "kk0381_nhk_dntiktkei_add_memo_err", template, EKK0381D010CBSMsg.NHK_DNTIKTKEI_ADD_MEMO_ERR);

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.赤B-CAS番号　→　赤B-CAS番号 のエラー情報返却
		setErrInfo(inMap, "kk0381_red_bcas_no_err", template, EKK0381D010CBSMsg.RED_BCAS_NO_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.請求契約番号　→　請求契約番号 のエラー情報返却
		setErrInfo(inMap, "kk0381_seiky_kei_no_err", template, EKK0381D010CBSMsg.SEIKY_KEI_NO_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.料金項目コード　→　料金項目コード のエラー情報返却
		setErrInfo(inMap, "kk0381_prc_kmk_cd_err", template, EKK0381D010CBSMsg.PRC_KMK_CD_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.更新年月日時分秒(更新前)　→　更新年月日時分秒(更新前) のエラー情報返却
		setErrInfo(inMap, "kk0381_upd_dtm_bf_err", template, EKK0381D010CBSMsg.UPD_DTM_BF_ERR);		

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.ガイド誌送付先住所手動入力フラグ　→　ガイド誌送付先住所手動入力フラグ のエラー情報返却
		setErrInfo(inMap, "kk0381_gudmg_shs_ad_man_input_flg_err", template, EKK0381D010CBSMsg.GUDMG_SHS_AD_MAN_INPUT_FLG_ERR);

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.ガイド誌送付先住所チェックレベル　→　ガイド誌送付先住所チェックレベル のエラー情報返却
		setErrInfo(inMap, "kk0381_guidemg_sohus_ad_chk_lv_err", template, EKK0381D010CBSMsg.GUIDEMG_SOHUS_AD_CHK_LV_ERR);

		return param;
	}

	/**
	 * サービス契約内訳＜TV＞登録のエラー情報マッピング処理を行います。
	 * <br>
	 * @param iparam
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @param index
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	private IRequestParameterReadWrite editErrInfoEKK0181D010(IRequestParameterReadWrite iparam, CAANMsg template, int returnCode, String fixedText,
			int index) throws RequestParameterException
	{
		IRequestParameterReadWrite param = setControlMapErrInfo(iparam, template.getInt(EKK0181D010CBSMsg.STATUS), returnCode);

		HashMap inMap = (HashMap)((ArrayList)((HashMap)param.getData(fixedText)).get(SVC_KEI_UCWK_LIST)).get(index);

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.サービス契約番号　→　サービス契約番号 のエラー情報返却
		setErrInfo(inMap, "kk0181_svc_kei_no_err", template, EKK0181D010CBSMsg.SVC_KEI_NO_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.申込明細番号　→　申込明細番号 のエラー情報返却
		setErrInfo(inMap, "kk0181_mskm_dtl_no_err", template, EKK0181D010CBSMsg.MSKM_DTL_NO_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.料金コースコード　→　料金コースコード のエラー情報返却
		setErrInfo(inMap, "kk0181_pcrs_cd_err", template, EKK0181D010CBSMsg.PCRS_CD_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.料金プランコード　→　料金プランコード のエラー情報返却
		setErrInfo(inMap, "kk0181_pplan_cd_err", template, EKK0181D010CBSMsg.PPLAN_CD_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.提供方式契約番号　→　提供方式契約番号 のエラー情報返却
		setErrInfo(inMap, "kk0181_tk_hoshiki_kei_no_err", template, EKK0181D010CBSMsg.TK_HOSHIKI_KEI_NO_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.支払い方法継続フラグ　→　支払い方法継続フラグ のエラー情報返却
		setErrInfo(inMap, "kk0181_payway_keizoku_flg_err", template, EKK0181D010CBSMsg.PAYWAY_KEIZOKU_FLG_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.WEBオプション追加不可フラグ　→　WEBオプション追加不可フラグ のエラー情報返却
		setErrInfo(inMap, "kk0181_web_op_add_fail_flg_err", template, EKK0181D010CBSMsg.WEB_OP_ADD_FAIL_FLG_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.業務連絡備考　→　業務連絡備考 のエラー情報返却
		setErrInfo(inMap, "kk0181_work_rrk_biko_err", template, EKK0181D010CBSMsg.WORK_RRK_BIKO_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.サービス利用開始希望年月日　→　サービス利用開始希望年月日 のエラー情報返却
		setErrInfo(inMap, "kk0181_svc_use_sta_kibo_ymd_err", template, EKK0181D010CBSMsg.SVC_USE_STA_KIBO_YMD_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.予約適用開始希望年月日　→　予約適用開始希望年月日 のエラー情報返却
		setErrInfo(inMap, "kk0181_rsv_tsta_kibo_ymd_err", template, EKK0181D010CBSMsg.RSV_TSTA_KIBO_YMD_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.試用加入年月日　→　試用加入年月日 のエラー情報返却
		setErrInfo(inMap, "kk0181_ftrial_kanyu_ymd_err", template, EKK0181D010CBSMsg.FTRIAL_KANYU_YMD_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.試用期間終了年月日　→　試用期間終了年月日 のエラー情報返却
		setErrInfo(inMap, "kk0181_ftrial_prd_endymd_err", template, EKK0181D010CBSMsg.FTRIAL_PRD_ENDYMD_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.本加入年月日　→　本加入年月日 のエラー情報返却
		setErrInfo(inMap, "kk0181_honkanyu_ymd_err", template, EKK0181D010CBSMsg.HONKANYU_YMD_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.本加入移行期限年月日　→　本加入移行期限年月日 のエラー情報返却
		setErrInfo(inMap, "kk0181_honkanyu_iko_kigen_ymd_err", template, EKK0181D010CBSMsg.HONKANYU_IKO_KIGEN_YMD_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.違約金発生コード　→　違約金発生コード のエラー情報返却
		setErrInfo(inMap, "kk0181_pnlty_hassei_cd_err", template, EKK0181D010CBSMsg.PNLTY_HASSEI_CD_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.異動区分　→　異動区分 のエラー情報返却
		setErrInfo(inMap, "kk0181_ido_div_err", template, EKK0181D010CBSMsg.IDO_DIV_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.撤去工事希望年月日　→　撤去工事希望年月日 のエラー情報返却
		setErrInfo(inMap, "kk0181_tekkyo_koji_kibo_ymd_err", template, EKK0181D010CBSMsg.TEKKYO_KOJI_KIBO_YMD_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.アダルトフラグ　→　アダルトフラグ のエラー情報返却
		setErrInfo(inMap, "kk0181_adult_flg_err", template, EKK0181D010CBSMsg.ADULT_FLG_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.請求契約番号　→　請求契約番号 のエラー情報返却
		setErrInfo(inMap, "kk0181_seiky_kei_no_err", template, EKK0181D010CBSMsg.SEIKY_KEI_NO_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.料金項目コード　→　料金項目コード のエラー情報返却
		setErrInfo(inMap, "kk0181_prc_kmk_cd_err", template, EKK0181D010CBSMsg.PRC_KMK_CD_ERR);	

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.更新年月日時分秒(更新前)　→　更新年月日時分秒(更新前) のエラー情報返却
		setErrInfo(inMap, "kk0181_upd_dtm_bf_err", template, EKK0181D010CBSMsg.UPD_DTM_BF_ERR);	


		return param;
	}

	
	/**
	 * 回線対象サービス契約登録のエラー情報マッピング処理を行います。
	 * <br>
	 * @param iparam
	 * @param template
	 * @param returnCode
	 * @param fixedText
	 * @return リクエストパラメータ
	 * @throws RequestParameterException
	 */
	private IRequestParameterReadWrite editErrInfoEKK0241D010(IRequestParameterReadWrite iparam, CAANMsg template, int returnCode, String fixedText)
			throws RequestParameterException
	{
		IRequestParameterReadWrite param = setControlMapErrInfo(iparam, template.getInt(EKK0241D010CBSMsg.STATUS), returnCode);

		HashMap inMap = (HashMap)param.getData(fixedText);

		//サービス契約内訳＜eo光ＴＶ＞登録マップ.サービス契約番号　→　サービス契約番号 のエラー情報返却
		setErrInfo(inMap, "kk0241_svc_kei_no_err", template, EKK0241D010CBSMsg.SVC_KEI_NO_ERR);
		
		//サービス契約内訳＜eo光ＴＶ＞登録マップ.サービス契約回線内訳番号　→　サービス契約回線内訳番号 のエラー情報返却
		setErrInfo(inMap, "kk0241_svc_kei_kaisen_ucwk_no_err", template, EKK0241D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO_ERR);

		return param;
	}
	
	/**
	 * CAANMsgに値を設定します。<br>
	 *  @inMap内にデータが存在する場合、inMap内のデータを設定します。<br>
	 *  A上記以外の場合、setNullを呼び出します。<br>
	 * @param template 値を設定するメッセージキャリア
	 * @param setKey 設定先メッセージキャリアのキー名
	 * @param inMap ユーザデータ情報
	 * @param prefix ユーザデータ情報より取得する場合に付加するプレフィックス
	 * @param getKey ユーザデータ情報より取得するキー名
	 */
	private void setTemplate(CAANMsg template, String setKey, HashMap<String, Object> inMap, String prefix, String getKey)
	{
		
		if (null == inMap || null == inMap.get(prefix + getKey) || 0 == ((String)inMap.get(prefix + getKey)).length())
		{
			template.setNull(setKey);
		}
		else
		{
			template.set(setKey, (String)inMap.get(prefix + getKey));
		}
	}
	
	/**
	 * ユーザデータ情報にエラー情報を設定します。<br>
	 * 　※ユーザデータ情報内にすでにキーが存在する場合、値は設定されません。<br>
	 * @param inMap	 ユーザデータ情報
	 * @param setKey ユーザデータ情報に設定するキー名
	 * @param template メッセージキャリア
	 * @param getKey メッセージキャリアより取得するキー名
	 */
	private void setErrInfo(HashMap<String, Object> inMap, String setKey, CAANMsg template, String getKey)
	{
		if (!template.isNull(getKey))
		{
			if (!inMap.containsKey(setKey))
			{
				inMap.put(setKey, template.getString(getKey));
			}
		}
	}
	
	/**
	 * CAANMsgに値を設定します。<br>
	 *  @inMap内にデータが存在する場合、inMap内のデータを設定します。<br>
	 *  AinMap内にデータが存在せず、KeishaWorkMap内にデータが存在する場合、<br>
	 *  　 KeishaWorkMap内のデータを設定します。<br>
	 *  B上記以外の場合、setNullを呼び出します。<br>
	 * @param param IRequestParameterReadWrite
	 * @param template 値を設定するメッセージキャリア
	 * @param setKey 設定先メッセージキャリアのキー名
	 * @param inMap ユーザデータ情報
	 * @param prefix ユーザデータ情報より取得する場合に付加するプレフィックス
	 * @param getKey ユーザデータ情報より取得するキー名
	 * @throws RequestParameterException
	 */
	private void setTemplateKeishaWorkMap(IRequestParameterReadWrite param, CAANMsg template, String setKey,
			HashMap<String, Object> inMap, String prefix, String getKey) throws RequestParameterException
	{
		
		if (null == inMap || null == inMap.get(prefix + getKey) || 0 == ((String)inMap.get(prefix + getKey)).length())
		{
			if (null == getKeishaWorkMapValue(param, getKey))
			{
				template.setNull(setKey);
			}
			else
			{
				template.set(setKey, getKeishaWorkMapValue(param, getKey));
			}
		}
		else
		{
			template.set(setKey, (String)inMap.get(prefix + getKey));
		}
	}
	
	/**
	 * CAANMsgに値を設定します。<br>
	 *  @inMap内にデータが存在する場合、inMap内のデータを設定します。<br>
	 *  A上記以外の場合、setNullを呼び出します。<br>
	 * @param param IRequestParameterReadWrite
	 * @param template 値を設定するメッセージキャリア
	 * @param setKey 設定先メッセージキャリアのキー名
	 * @param inMap ユーザデータ情報
	 * @param prefix ユーザデータ情報より取得する場合に付加するプレフィックス
	 * @param getKey ユーザデータ情報より取得するキー名
	 */
	private void setTemplate(IRequestParameterReadWrite param, CAANMsg template, String setKey,
			HashMap<String, Object> inMap, String prefix, String getKey)
	{
		
		if (null == inMap || null == inMap.get(prefix + getKey) || 0 == ((String)inMap.get(prefix + getKey)).length())
		{
			template.setNull(setKey);
		}
		else
		{
			template.set(setKey, (String)inMap.get(prefix + getKey));
		}
	}
	
	/**
	 * ユーザデータ情報に値を設定します。<br>
	 * 　※CAANMsg内のデータがNullの場合、空文字を設定します。<br>
	 * @param dataMap ユーザデータ情報
	 * @param setKey ユーザデータ情報に設定するキー名
	 * @param template メッセージキャリア
	 * @param getKey メッセージキャリアより取得するキー名
	 */
	private void setOutData(HashMap<String, Object> dataMap, String setKey, CAANMsg template, String getKey)
	{
		if (template.isNull(getKey))
		{
			dataMap.put(setKey, "");
		}
		else
		{
			dataMap.put(setKey, template.getString(getKey));
		}
	}
	
	/**
	 * 機器提供サービス契約登録部品の上りマッピング処理を行います。
	 * @param param
	 * @param fixedText
	 * @param index
	 * @param svcListNm
	 * @param prefix
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private void editInKktkSvcKei(IRequestParameterReadWrite param, String fixedText, int index, String svcListNm, String prefix, HashMap<String, Object> svcMap)
	throws RequestParameterException
	{
		
		/* ユーザデータ情報 */
		HashMap inMap = (HashMap)param.getData(fixedText);
// DEL-START
//		HashMap svcMap = null;
//		ArrayList inList = (ArrayList)(inMap.get(svcListNm));
//		if (inList == null)
//		{
//			svcMap = inMap;
//		}
//		else
//		{
//			svcMap = (HashMap)inList.get(index);
//		}
// DEL-END
		svcMap.put(JCMConstants.FUNC_CODE_KEY, inMap.get(JCMConstants.FUNC_CODE_KEY));

		// 作業領域のマップを取得
		HashMap workDataMap = null;
		HashMap workDataMap_Keisya = null;
		HashMap workDataMap_Payway = null;
		Map workMap = param.getMappingWorkArea();
		if (workMap != null)
		{
			workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_TV);
			workDataMap_Keisya = (HashMap)workMap.get(CC_WORK_AREA_NAME_KEISHA);
			workDataMap_Payway = (HashMap)workMap.get(CC_WORK_AREA_NAME_PAYWAY);
		}


		// 申込明細番号を申込登録ＣＣの作業領域から取得
		String mskmDtlNo = getMskmDtlWorkMapValue(param, "mskm_dtl_no_tv");
		if (mskmDtlNo == null || "".equals(mskmDtlNo))
		{
			// 申込登録ＣＣの作業領域から取得できなければ、テレビ登録ＣＣの作業領域から取得
			if (workDataMap != null)
			{
				mskmDtlNo = (String)workDataMap.get("mskm_dtl_no");
			}
		}

		String str_svc_keino = "";
		// 機器提供サービス契約登録マップ.サービス契約番号 → サービス契約番号
		if (inMap == null || inMap.get("kk0341_svc_kei_no") == null || "".equals(inMap.get("kk0341_svc_kei_no")))
		{
			if (workDataMap == null || workDataMap.get("svc_kei_no") == null || "".equals(workDataMap.get("svc_kei_no")))
			{
			}
			else
			{
				svcMap.put(prefix + "svc_kei_no", (String)workDataMap.get("svc_kei_no"));
				str_svc_keino = (String)workDataMap.get("svc_kei_no");
			}
		}
		else
		{
			svcMap.put(prefix + "svc_kei_no", (String)inMap.get("kk0341_svc_kei_no"));
		}

		// 機器提供サービス契約登録マップ.サービス契約内訳番号 → サービス契約内訳番号
		if (inMap == null || inMap.get("kk0341_svc_kei_ucwk_no") == null || "".equals(inMap.get("kk0341_svc_kei_ucwk_no")))
		{
			if (workDataMap == null || workDataMap.get("svc_kei_ucwk_no") == null || "".equals(workDataMap.get("svc_kei_ucwk_no")))
			{
			}
			else
			{
				svcMap.put(prefix + "svc_kei_ucwk_no", (String)workDataMap.get("svc_kei_ucwk_no"));
			}
		}
		else
		{
			svcMap.put(prefix + "svc_kei_ucwk_no", (String)inMap.get("kk0341_svc_kei_ucwk_no"));
		}

		// 機器提供サービス契約登録マップ.ＳＹＳＩＤ → SYSID
		if (inMap == null || inMap.get("kk0341_sysid") == null || "".equals(inMap.get("kk0341_sysid")))
		{
			if (workDataMap_Keisya == null || workDataMap_Keisya.get("sysid") == null || "".equals(workDataMap_Keisya.get("sysid")))
			{
			}
			else
			{
				svcMap.put(prefix + "sysid", (String)workDataMap_Keisya.get("sysid"));
			}
		}
		else
		{
			svcMap.put(prefix + "sysid", (String)inMap.get("kk0341_sysid"));
		}


		// 機器提供サービス契約登録マップ.申込明細番号 → 申込明細番号
		if (inMap == null || inMap.get("kk0341_mskm_dtl_no") == null || "".equals(inMap.get("kk0341_mskm_dtl_no")))
		{
			if (mskmDtlNo == null || "".equals(mskmDtlNo))
			{
			}
			else
			{
				svcMap.put(prefix + "mskm_dtl_no", mskmDtlNo);
			}
		}
		else
		{
			svcMap.put(prefix + "mskm_dtl_no", (String)inMap.get("kk0341_mskm_dtl_no"));
		}
	
		// 機器提供サービス契約登録マップ.請求契約番号 → 請求契約番号
		if (inMap == null || inMap.get("kk0341_seiky_kei_no") == null || "".equals(inMap.get("kk0341_seiky_kei_no")))
		{
			if (workDataMap_Payway == null || workDataMap_Payway.get("seiky_kei_no") == null || "".equals(workDataMap_Payway.get("seiky_kei_no")))
			{
			}
			else
			{
				svcMap.put(prefix + "seiky_kei_no", (String)workDataMap_Payway.get("seiky_kei_no"));
			}
		}
		else
		{
			svcMap.put(prefix + "seiky_kei_no", (String)inMap.get("kk0341_seiky_kei_no"));
		}

		// 更新年月日時分秒(更新前)
		String lastDtm = JKKBpCommon.getLastDtmBySvcKeiNo(param, str_svc_keino,
				(String)inMap.get("kk0341_upd_dtm_bf"));
		svcMap.put(prefix + "upd_dtm_bf", lastDtm);
		
	}
	
	/**
	 * 機器提供サービス契約登録部品の下りマッピング処理を行います。
	 * @param param
	 * @param fixedText
	 * @param index
	 * @param svcListNm
	 * @param prefix
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private void editOutKktkSvcKei(IRequestParameterReadWrite param, String fixedText, int index, String svcListNm, String prefix, HashMap<String, Object> svcMap)
	throws RequestParameterException
	{
		// 作業領域のマップを取得
		HashMap workDataMap = null;
		Map workMap = param.getMappingWorkArea();
		if (workMap != null)
		{
			workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_TV);
		}
// DEL-START
//		ArrayList dataList = (ArrayList)((HashMap)param.getData(fixedText)).get(svcListNm);
//		if (dataList == null)
//		{
//			dataList = new ArrayList();
//			((HashMap)param.getData(fixedText)).put(svcListNm, dataList);
//		}
//		/* 業務データ設定 */
//		HashMap dataMap = (HashMap)dataList.get(index);
// DEL-END
		HashMap dataMap = svcMap;
		if (dataMap == null)
		{
			dataMap = new HashMap();
			param.setData(fixedText, dataMap);
		}
		
		// 更新年月日時分秒
		if (!(dataMap == null || dataMap.get(prefix + "upd_dtm") == null || "".equals(dataMap.get(prefix + "upd_dtm"))))
		{
			String lastDtm = (String)dataMap.get(prefix + "upd_dtm");
			JKKBpCommon.setLastDtmBySvcKeiNo(param, (String)workDataMap.get("svc_kei_no"), lastDtm);
		}
	}
	
	/**
	 * 一時金情報の設定を行います。
	 * @param param
	 * @param fixedText
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private void addTempChrg(IRequestParameterReadWrite param, String fixedText, SessionHandle handle) throws Exception
	{
		/* ユーザデータ情報 */
		HashMap inMap = (HashMap)param.getData(fixedText);
		
		HashMap<String, String> condMap = new HashMap<String, String>();
		HashMap<String, Object> reqMap;
		Map<?, ?> resMap;
		
		// 住所変更登録コモンコンポーネントマッピングクラスインスタンスを取得
		JKKAdchgMapperCC mapper = JKKAdchgMapperCC.getInstance();

		// SCリクエストInvokerを取得
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		
		/** 事務手数料判定SIFにて必須項目を取得 */
		
		// 異動区分を設定
		condMap.put(EKK1021C011CBSMsg.IDO_DIV, "00001");
		// 申込料金グループコードを設定
		condMap.put(EKK1021C011CBSMsg.MSKM_PRC_GRP_CD, (String)inMap.get("mskm_prc_grp_cd"));
		// ネット同時申込有無を設定
		condMap.put(EKK1021C011CBSMsg.NET_DOJI_MSKM_UM, (String)inMap.get("net_doji_mskm_um"));
		// 申込料金コースコードを設定
		condMap.put(EKK1021C011CBSMsg.MSKM_PCRS_CD, (String)inMap.get("mskm_pcrs_cd"));
		// 工事有無を設定
		condMap.put(EKK1021C011CBSMsg.KOJI_UM, (String)inMap.get("koji_um"));
		// オプションサービスコードを設定
		condMap.put(EKK1021C011CBSMsg.OP_SVC_CD, (String)inMap.get("op_svc_cd"));
		// 割引サービスコードを設定
		condMap.put(EKK1021C011CBSMsg.WRIB_SVC_CD, (String)inMap.get("wrib_svc_cd"));
		// 割ID通知書手数料有無を設定
		condMap.put(EKK1021C011CBSMsg.ID_TCHISHO_CMS_UM, (String)inMap.get("id_tchisho_cms_um"));
		// 異動理由コードを設定
		condMap.put(EKK1021C011CBSMsg.IDO_RSN_CD, (String)inMap.get("ido_rsn_cd"));
		// 番ポ有無を設定
		condMap.put(EKK1021C011CBSMsg.BMP_UM, (String)inMap.get("bmp_um"));
		// マンション識別コードを設定
		condMap.put(EKK1021C011CBSMsg.MANS_SKBT_CD, (String)inMap.get("mans_skbt_cd"));
		
		// ・EKK1021C011  事務手数料判定
		reqMap = mapper.setEKK1021C011(param, fixedText, condMap);
		resMap = scCall.run(reqMap, handle);
		HashMap<String, Object> kk1021_c011_map = mapper.getEKK1021C011(param, fixedText, resMap);
		mapper.scResultCheck(param);
		
		/** 一時金設定SIFにて必須項目を取得 */
		// 事務手数料判定結果取得用マップ
		HashMap<String, Object> kk1021_d010_map = new HashMap<String, Object>();
		if ("1".equals(kk1021_c011_map.get(EKK1021C011CBSMsg1List.JUDGE_RSLT))) {
			
			// 作業領域のマップを取得
			Map workMap = param.getMappingWorkArea();
			if (workMap == null)
			{
				workMap = new HashMap();
				param.setMappingWorkArea(workMap);
			}
			HashMap workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_TV);
			
			// 一時支払料金番号
			kk1021_d010_map.put(EKK1021D010CBSMsg.TMP_PAY_PRC_NO, kk1021_c011_map.get(EKK1021C011CBSMsg1List.TMP_PAY_PRC_NO));
// OM-2013-0003954対応 20131106 星野 DEL START
//			// 一時金設定コード
//			kk1021_d010_map.put(EKK1021D010CBSMsg.ICJKN_SETTE_CD, kk1021_c011_map.get(EKK1021C011CBSMsg1List.ICJKN_SETTE_CD));
// OM-2013-0003954対応 20131106 星野 DEL END
			// 一時金指定率
			String icjkn_shitei_rt = (String)inMap.get("icjkn_shitei_rt");
// OM-2013-0003954対応 20131106 星野 ADD START
			// 一時金設定コード
			kk1021_d010_map.put(EKK1021D010CBSMsg.ICJKN_SETTE_CD, icjkn_shitei_rt );
// OM-2013-0003954対応 20131106 星野 ADD END
			String rt = null;

			if ("02".equals(icjkn_shitei_rt))		//一時金設定コード：有り
			{
				rt = "100.0";
			}
			else if ("03".equals(icjkn_shitei_rt))	//一時金設定コード：半額
			{
				rt = "50.0";
			}
			else if ("04".equals(icjkn_shitei_rt))	//一時金設定コード：指定額
			{
				rt = "100.0";
			}
			kk1021_d010_map.put(EKK1021D010CBSMsg.ICJKN_SHITEI_RT, rt);
			
			// 一時金指定額
			kk1021_d010_map.put(EKK1021D010CBSMsg.ICJKN_SHITEI_AMNT, inMap.get("icjkn_shitei_gk"));
			// サービス契約番号
			kk1021_d010_map.put(EKK1021D010CBSMsg.SVC_KEI_NO, workDataMap.get("svc_kei_no"));
			// 申込明細番号
			kk1021_d010_map.put(EKK1021D010CBSMsg.MSKM_DTL_NO, getMskmDtlWorkMapValue(param, "mskm_dtl_no_tv"));
			
			// ・EKK1021D010  一時金設定登録
			reqMap = mapper.setEKK1021D010(param, fixedText, kk1021_d010_map);
			resMap = scCall.run(reqMap, handle);
			mapper.getEKK1021D010(param, fixedText, resMap);
			mapper.scResultCheck(param);
		}
		
// OT-2013-0000688対応 20130724 星野 ADD START
		String hyoujyun_kojihi_div = (String)inMap.get("hyoujyun_kojihi_div");
		// 標準工事費区分が「無料」の場合
		if("02".equals(hyoujyun_kojihi_div)){
			
			HashMap<String, Object> kk1021_d010_map_kojihi = new HashMap<String, Object>();
			// 一時支払料金番号 工事費（徴収しない）
			kk1021_d010_map_kojihi.put(EKK1021D010CBSMsg.TMP_PAY_PRC_NO, "999990000001");
			// 一時金設定コード 有
			kk1021_d010_map_kojihi.put(EKK1021D010CBSMsg.ICJKN_SETTE_CD, "02");
			// 一時金指定率
			kk1021_d010_map_kojihi.put(EKK1021D010CBSMsg.ICJKN_SHITEI_RT, "");
			// 一時金指定額
			kk1021_d010_map_kojihi.put(EKK1021D010CBSMsg.ICJKN_SHITEI_AMNT, "");
			// サービス契約番号
			Map workMap = param.getMappingWorkArea();
			if (workMap == null)
			{
				workMap = new HashMap();
				param.setMappingWorkArea(workMap);
			}
			HashMap workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_TV);
			kk1021_d010_map_kojihi.put(EKK1021D010CBSMsg.SVC_KEI_NO, workDataMap.get("svc_kei_no"));
			// 申込明細番号
			kk1021_d010_map_kojihi.put(EKK1021D010CBSMsg.MSKM_DTL_NO, getMskmDtlWorkMapValue(param, "mskm_dtl_no_tv"));
			// 完了状態コード 対象外
			kk1021_d010_map_kojihi.put(EKK1021D010CBSMsg.FIN_STAT_CD, "2");
			
			// ・EKK1021D010  一時金設定登録
			reqMap = mapper.setEKK1021D010(param, fixedText, kk1021_d010_map_kojihi);
			resMap = scCall.run(reqMap, handle);
			mapper.getEKK1021D010(param, fixedText, resMap);
			mapper.scResultCheck(param);
		}
// OT-2013-0000688対応 20130724 星野 ADD END
	}

	
	/**
	 * 進捗の設定を行います。
	 * @param param
	 * @param fixedText
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private void writePgr(IRequestParameterReadWrite param, String fixedText, SessionHandle handle) throws Exception
	{
		/* ユーザデータ情報 */
		HashMap inMap = (HashMap)param.getData(fixedText);
		
		HashMap<String, String> condMap = new HashMap<String, String>();
		HashMap<String, Object> reqMap;
		Map<?, ?> resMap;
		
		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}
		HashMap workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_TV);
		
		// 住所変更登録コモンコンポーネントマッピングクラスインスタンスを取得
		JKKAdchgMapperCC mapper = JKKAdchgMapperCC.getInstance();

		// SCリクエストInvokerを取得
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		
		/** 進捗を登録 */ 
		// 異動区分を設定
		condMap.put(EKK1091D010CBSMsg.IDO_DIV, (String)inMap.get("kk0101_ido_div"));
		// サービス契約番号
		condMap.put(EKK1091D010CBSMsg.SVC_KEI_NO, (String)workDataMap.get("svc_kei_no"));
		// 異動年月日時分秒
		condMap.put(EKK1091D010CBSMsg.IDO_DTM, JCCBPCommon.getSysDateTimeStamp());
		// 進捗ステータス
		condMap.put(EKK1091D010CBSMsg.PRG_STAT, "0100");
		// 機能コードを設定
		inMap.put("func_cd", "1");
		// ・EKK1091D010 進捗登録
		reqMap = mapper.setEKK1091D010(param, fixedText, condMap, getIdoRsnList(param, fixedText));
		resMap = scCall.run(reqMap, handle);
		mapper.scResultCheck(param);
		
		// 進捗ステータス
		condMap.put(EKK1091D010CBSMsg.PRG_STAT, "3100");
		// ・EKK1091D010 進捗登録
		reqMap = mapper.setEKK1091D010(param, fixedText, condMap, getIdoRsnList(param, fixedText));
		resMap = scCall.run(reqMap, handle);
		mapper.scResultCheck(param);
		
		// 進捗ステータス
		condMap.put(EKK1091D010CBSMsg.PRG_STAT, "3301");
		// ・EKK1091D010 進捗登録
		reqMap = mapper.setEKK1091D010(param, fixedText, condMap, getIdoRsnList(param, fixedText));
		resMap = scCall.run(reqMap, handle);
		mapper.scResultCheck(param);
		
		// 進捗ステータス
		condMap.put(EKK1091D010CBSMsg.PRG_STAT, "9811");
		// ・EKK1091D010 進捗登録
		reqMap = mapper.setEKK1091D010(param, fixedText, condMap, getIdoRsnList(param, fixedText));
		resMap = scCall.run(reqMap, handle);
		mapper.scResultCheck(param);
	}
	
	/**
	 * 異動理由リスト 取得処理.
	 * <br>
	 * @param   param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @throws  Exception  例外が発生した場合
	 * @return  進捗登録用の異動理由リスト
	 */
	private ArrayList<HashMap<String, Object>> getIdoRsnList( IRequestParameterReadWrite param, String fixedText ) throws Exception {

		/** 事前準備 */
		HashMap<String, Object> paramMap = (HashMap<String, Object>)param.getData(fixedText);

		// 投入データ設定[異動理由リスト]
		ArrayList<HashMap<String, Object>> put_ido_rsn_list = new ArrayList<HashMap<String, Object>>();

		// param.異動理由リストの情報を投入データとして登録
		ArrayList<HashMap<String, Object>> prm_ido_rsn_list = (ArrayList<HashMap<String, Object>>)paramMap.get( JKKAdchgConstCC.PARAM_KEY_IDO_RSN_LIST );
		Iterator<HashMap<String, Object>> prm_ido_rsn_ite = prm_ido_rsn_list.iterator();
		while( prm_ido_rsn_ite.hasNext() ){

			HashMap<String, Object> cur_ido_rsn = prm_ido_rsn_ite.next();

			// 投入データを登録
			HashMap<String, Object> put_ido_rsn = new HashMap<String, Object>();
			put_ido_rsn.put( EKK1091D010CBSMsg1List.IDO_RSN_CD, (String)cur_ido_rsn.get( JKKAdchgConstCC.PARAM_KEY_IDO_RSN_CD ) );
			put_ido_rsn.put( EKK1091D010CBSMsg1List.IDO_RSN_MEMO, (String)cur_ido_rsn.get( JKKAdchgConstCC.PARAM_KEY_IDO_RSN_MEMO ) );
			put_ido_rsn_list.add( put_ido_rsn );
		}

		return put_ido_rsn_list;
	}
	
	// ANK-2135-00-00 2014/07/11 add start
	/**
	 * 申込時登録不可契約予約の設定を行います。
	 * @param param
	 * @param fixedText
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private void addMkjAddfKeiRvStarCh(IRequestParameterReadWrite param, String fixedText, SessionHandle handle) throws Exception
	{
		HashMap<String, String> condMap = new HashMap<String, String>();
		HashMap<String, Object> reqMap;
		Map<?, ?> resMap;
		
		// 住所変更登録コモンコンポーネントマッピングクラスインスタンスを取得
		JKKAdchgMapperCC mapper = JKKAdchgMapperCC.getInstance();

		// SCリクエストInvokerを取得
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		
		String mskm_dtl_no_tv = getMskmDtlWorkMapValue(param, "mskm_dtl_no_tv");
		// ・EKK0021A010 申込明細一意照会
		condMap.clear();
		condMap.put( JKKAdchgMapperCC.COND_KEY_MSKM_DTL_NO, mskm_dtl_no_tv );
		reqMap = mapper.setEKK0021A010( param, fixedText, condMap );
		resMap = scCall.run( reqMap, handle);
		HashMap<String, Object> kk0021_a010 = mapper.getEKK0021A010( param, fixedText, resMap );
		mapper.scResultCheck( param );

		// 作業領域のマップを取得
		Map workMap = param.getMappingWorkArea();
		HashMap workDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_TV);

		HashMap<String, Object> kk2931_d010_map = new HashMap<String, Object>();
		// 申込時登録不可契約予約種別コード  →01:地デジ・BS スターチャンネルセット
		kk2931_d010_map.put(EKK2931D010CBSMsg.MKJ_ADDF_KEI_RV_SBT_CD, JKKAdchgConstCC.MKJ_ADDF_KEI_RV_SBT_CD_01);
		// 申込明細番号  
		kk2931_d010_map.put(EKK2931D010CBSMsg.MSKM_DTL_NO, mskm_dtl_no_tv);
		// 設定対象契約識別コード  →01:サービス契約
		kk2931_d010_map.put(EKK2931D010CBSMsg.SETE_TG_KEI_SKBT_CD, JKKAdchgConstCC.SETE_TG_KEI_SKBT_CD_SVC_KEI);
		//設定対象契約番号  →サービス契約番号
		kk2931_d010_map.put(EKK2931D010CBSMsg.SETE_TG_KEI_NO, (String)workDataMap.get("svc_kei_no"));
		// オプションサービスコード
		kk2931_d010_map.put(EKK2931D010CBSMsg.OP_SVC_CD, JKKAdchgConstCC.OP_SVC_CD_STACH);
		// IT1-2014-0000259対応 2014/08/07 DEL START
		// 割引サービスコード
//		kk2931_d010_map.put(EKK2931D010CBSMsg.WRIB_SVC_CD, JKKAdchgConstCC.WRIB_SVC_CD_STACH_SET);
		// IT1-2014-0000259対応 2014/08/07 DEL START
		// 料金コースコード
		kk2931_d010_map.put(EKK2931D010CBSMsg.PCRS_CD, PCRS_CD.BB5_STACH);
		// 料金プランコード
		kk2931_d010_map.put(EKK2931D010CBSMsg.PPLAN_CD, PPLAN_CD.PBB501);
		// 予約契約数
		kk2931_d010_map.put(EKK2931D010CBSMsg.RSV_KEI_CNT, "1");
		// 申込時登録不可契約予約反映方法コード  1:手動反映
		kk2931_d010_map.put(EKK2931D010CBSMsg.MKJ_ADDF_KEI_RVHNE_WAY_CD, JKKAdchgConstCC.MKJ_ADDF_KEI_RVHNE_WAY_CD_SYUDO);
		// 申込時登録不可契約予約反映タイミングコード  01:設定対象契約サービス開始
		kk2931_d010_map.put(EKK2931D010CBSMsg.MKJ_ADDF_KEI_RVHNE_TMG_CD, JKKAdchgConstCC.MKJ_ADDF_KEI_RVHNE_TMG_CD_SVC_STA);
		//更新年月日時分秒(更新前)
		kk2931_d010_map.put(EKK2931D010CBSMsg.UPD_DTM_BF, kk0021_a010.get(EKK0021A010CBSMsg1List.LAST_UPD_DTM));
		
		// ・EKK2931D010  申込時登録不可契約予約登録
		reqMap = mapper.setEKK2931D010(param, fixedText, kk2931_d010_map);
		resMap = scCall.run(reqMap, handle);
		mapper.getEKK2931D010(param, fixedText, resMap);
		mapper.scResultCheck(param);
		

	}
	// ANK-2135-00-00 2014/07/11 add end

}
