/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom, 2011
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JKKBumpMdsCC
*   ソースファイル名：JKKBumpMdsCC.java
*   作成者          ：富士通
*   日付            ：2016年06月15日
*＜機能概要＞
* 番ポ戻し（SIP解約オーダ発行）チェック・実行を行うクラスです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v25.00.00    2016/06/15   FJ）原田    新規作成
*   v26.00.00    2016/10/03   FJ) 原田    【ANK-2995-00-00】番ポ戻しのチェック条件緩和
*   v72.00.00    2024/07/11   FJ) 大路    【ANK-4494-00-00】【eo定期】双方向番ポ対応
*   v72.00.00    2024/07/08   FJ) 山岡    【ANK-4494-00-00】【eo定期】双方向番ポ対応 Step2
*   v72.00.01    2025/02/06   FJ) 寺田     #86474 光電話・番ポ戻し（強制利用終了）後、解約できない
*   v74.00.00    2025/03/12   FJ) 北尾     #86474 光電話・番ポ戻し（強制利用終了）後、解約できない
**********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


import com.fujitsu.futurity.bp.custom.constant.JKKHakkoSODConstCC;
import com.fujitsu.futurity.bp.custom.constant.JKKTelnoStatJudgeConstCC;
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.IRequestParameterReadOnly;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadWrite;
import com.fujitsu.futurity.bp.x21.cc.AbstractCommonComponent;
import com.fujitsu.futurity.bp.x21.cc.exception.SCCallException;
import com.fujitsu.futurity.common.JCMConstants;
import com.fujitsu.futurity.common.x01.sc.SCControlMapKeys;
import com.fujitsu.futurity.mapping.bp.common.TemplateErrorUtil;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.common.JCMAPLConstMgr;


import eo.common.constant.JKKStrConst;
import eo.common.constant.JPCModelConstant;
import eo.ejb.cbs.cbsmsg.EKK0161A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0161A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0161B004CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0161B004CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0161B013CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0161B013CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0191A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0191A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK1041B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1041B001CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK1081B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1081B001CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK1091D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1091D010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK2101B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK2101B501CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK2101B501CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ETU0051B010CBSMsg;
import eo.ejb.cbs.cbsmsg.ETU0051B010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ETU0151A011CBSMsg;
import eo.ejb.cbs.cbsmsg.ETU0151C030CBSMsg;
import eo.ejb.cbs.cbsmsg.ETU0151A011CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EZM0121A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0121A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EZM0121C010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0121E011CBSMsg;


/**
 * 旧機器キャンセル・解約・回復用部品クラス
 * @author 富士通
 */
@SuppressWarnings("unchecked")
public class JKKBumpMdsCC extends AbstractCommonComponent {
	
	/** データマップキー（対象データリスト） */
	public static final String KEY_TRGT_DATA_LIST = "trgt_data_list";
	
	/** サービス契約内訳＜電話＞一意照会 **/
	private static final String TEMPLATE_ID_EKK0191A010 = "EKK0191A010";
	
	/** サービス契約内訳一意照会 **/
	private static final String TEMPLATE_ID_EKK0161A010 = "EKK0161A010";
	
	/** オーダ設定一覧照会 **/
	private static final String TEMPLATE_ID_EKK1041B001 = "EKK1041B001";
	
	/** オーダ設定一覧照会 **/
	private static final String TEMPLATE_ID_EKK1081B001 = "EKK1081B001";
	
	/** 住所変更中住所変更明細一覧照会２ **/
	private static final String TEMPLATE_ID_EKK2101B501 = "EKK2101B501";
	
	/** 住所変更明細一覧照会 **/
	private static final String TEMPLATE_ID_EKK2101B001 = "EKK2101B001";
	
	/** サービス契約内訳一覧照会（サービス契約番号） **/
	private static final String TEMPLATE_ID_EKK0161B004 = "EKK0161B004";
	
	/** サービス契約内訳一覧照会（電話番号） **/
	private static final String TEMPLATE_ID_EKK0161B013 = "EKK0161B013";
	
	/** 進捗登録SIF **/
	private static final String TEMPLATE_ID_EKK1091D010 = "EKK1091D010";
	
	// ANK-4494-00-00 ADD START
	/** 通信事業者一覧照会 **/
	private static final String TEMPLATE_ID_ETU0051B010 = "ETU0051B010";
	
	/** ポートアウト受付情報一意照会（サービス契約照会） **/
	private static final String TEMPLATE_ID_ETU0151A011 = "ETU0151A011";
	
	/** 電話番号一意照会 **/
	private static final String TEMPLATE_ID_EZM0121A010 = "EZM0121A010";
	
	/** 電話番号変更 **/
	private static final String TEMPLATE_ID_EZM0121C010 = "EZM0121C010";
	
	/** 電話番号物理削除 **/
	private static final String TEMPLATE_ID_EZM0121E011 = "EZM0121E011";
	
	//	ANK-4494-00-00 Step2 MOD START
//	/** ポートアウト受付情報内容変更 **/
//	private static final String TEMPLATE_ID_ETU0151C010 = "ETU0151C010";
	/** ポートアウト受付情報ステータス変更 **/
	private static final String TEMPLATE_ID_ETU0151C030 = "ETU0151C030";
	//	ANK-4494-00-00 Step2 MOD END
	// ANK-4494-00-00 ADD END

	/** INPUT.サービス契約番号 */
	public static final String SVC_KEI_NO = "svc_kei_no";

	/** INPUT.SYSID */
	public static final String SYSID = "sysid";
	
	/** INPUT.サービス契約内訳番号 */
	public static final String SVC_KEI_UCWK_NO = "svc_kei_ucwk_no";
	
	/** INPUT.電話番号 */
	public static final String TELNO = "telno";
	
	/** INPUT.異動区分 */
	public static final String IDO_DIV = "ido_div";
	
	/** INPUT.異動理由コード */
	public static final String IDO_RSN_CD = "ido_rsn_cd";
	
	// ANK-4494-00-00 ADD START
	/** INPUT.電話番号 更新年月日時分秒 */
	public static final String ZM0121_UPD_DTM = "zm0121_upd_dtm";
	
	/** INPUT.ポートアウト受付情報 更新年月日時分秒 */
	public static final String TU0151_UPD_DTM = "tu0151_upd_dtm";
	
	/** INPUT.ENUMの切り替えも実施する */
	public static final String ENUM_KRKE_DOUJI = "enum_krke_douji";
	// ANK-4494-00-00 ADD END
	// ANK-4494-00-00 Step2 ADD START
	/** 網内番ポ有無　あり*/
	public static final String MONAIBMPUM_ARI = "1";
	/** 個人法人電話番号帯コード KOJIN_HOJIN_TLN_TAI_CD_2(法人)*/
	public static final String KOJIN_HOJIN_TLN_TAI_CD_2 = "2";
	/** 番ポなし*/
	public static final String BMP_0 = "0";
	// ANK-4494-00-00 Step2 ADD END
	/** サービスコード「０１：ネット」 */
	public static final String BMP_1 = "1";

	/** サービスコード「０１：ネット」 */
	public static final String SVC_CD_01 = "01";
	
	/** サービスコード「０２：電話」 */
	public static final String SVC_CD_02 = "02";
	
	/** 運用日を取得する関数 */
	private String opeDate = "";
	
	/** ユーザ任意文字列 */
	private String fixedTextGlobal = null;
	
	/** 正常終了コード */
	public static final String ERR_LV_NOMAL = "0000";
	
	/** 業務エラーコード */
	public static final String ERR_LV_BIJINES_ERR = "1100";
	
	/** データマップキー(機器提供サービス契約) */
	public static final String ERR_CD = "err_cd";
	
	/** データマップキー(機器提供サービス契約) */
	public static final String ERR_TYPE = "err_type";
	


	/**
	 * 番ポ戻し実行メソッド
	 * 
	 * @param handle
	 * @param param
	 * @param fixedText
	 * @throws Throwable
	 * @return  リクエストパラメータ(param)に戻り値を追加して返却する
	 */
	public IRequestParameterReadWrite executeBumpMds(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Throwable
	{
		
		// 運用日付
		opeDate = JCCBPCommon.getOpeDate(null);
		
		// S-IF結果格納用
		HashMap<String, Object> resultHash =  new HashMap<String, Object>();
		
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない）
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		
		this.fixedTextGlobal = fixedText;
		
		HashMap requestParam = (HashMap)param.getData(this.fixedTextGlobal);
		
		// 共通SIFステータス取得変数の設定
		int statusCode = 0;
		
		// リターンコード（独自実装）初期化
		String err_code = new String();
		
		// エラーコード（独自実装）初期化
		String err_type = new String();
		
		

			
// 初期処理にて各パラメータの格納を実施
// -------------------START-------------------
			// INPUT.対象SYSID
			String sysid = (String)requestParam.get(SYSID);
			
			// INPUT.対象サービス契約番号
			String svcKeiNo = (String)requestParam.get(SVC_KEI_NO);

			// INPUT.対象サービス契約内訳番号
			String svcKeiUcwkNo = (String)requestParam.get(SVC_KEI_UCWK_NO);
			
			// INPUT.電話番号
			String telNo = (String)requestParam.get(TELNO);

			// INPUT.異動区分を取得
			String prm_ido_div = (String)requestParam.get(IDO_DIV);
			
			// INPUT.異動理由コードを取得
			String prm_ido_rsn_cd = (String)requestParam.get(IDO_RSN_CD);
			
			// ANK-4494-00-00 ADD START
			// INPUT.電話番号の更新年月日時分秒を取得
			String zm0121UpdDtm = (String)requestParam.get(ZM0121_UPD_DTM);
			
			// INPUT.ポートアウト受付情報の更新年月日時分秒を取得
			String tu0151UpdDtm = (String)requestParam.get(TU0151_UPD_DTM);
			
			// INPUT.ENUMの切り替えも実施するを取得
			Boolean enum_krke_douji = (Boolean)requestParam.get(ENUM_KRKE_DOUJI);
			// ANK-4494-00-00 ADD END
			
// -------------------END-------------------
			
// エラーチェックエリア
// -------------------START-------------------
			
			// 共通リストの
			List<CAANMsg> tgRirekiDataList = new ArrayList<CAANMsg>();
			
			// ・番ポ有無チェック
			//****************************************
			// ■サービス契約内訳＜eo光電話＞一意照会（サービス契約番号）(EKK0191A010)
			//****************************************
			statusCode = callEKK0191A010SC(param, handle, requestParam, resultHash, svcKeiUcwkNo);
			if(statusCode != 0)
			{
				return param;
			}
			//サービス契約内訳＜電話＞一意照会を取得
			HashMap<String, Object> eKK0191A010Hash = (HashMap<String, Object>)resultHash.get(TEMPLATE_ID_EKK0191A010);
			
			// 番ポ有無を取得
			String bmpUm  = (String)eKK0191A010Hash.get(EKK0191A010CBSMsg1List.BMP_UM);
			
// ANK-4494-00-00 DEL START
//			// 番ポ有無が「有」以外の場合、エラーと判断
//			if(!BMP_1.equals(bmpUm))
//			{
//				err_code = ERR_LV_BIJINES_ERR;
//				err_type = "E001";
//				requestParam.put(ERR_CD, err_code);
//				requestParam.put(ERR_TYPE, err_type);
//				return param;
//			}
// ANK-4494-00-00 DEL END
			
			// ・契約状態チェック
			//****************************************
			// ■サービス契約内訳一意照会(EKK0161A010)
			//****************************************
			statusCode = callEKK0161A010SC(param, handle, requestParam, resultHash, svcKeiUcwkNo);
			if(statusCode != 0)
			{
				return param;
			}
			//サービス契約内訳＜電話＞一意照会を取得
			HashMap<String, Object> eKK0161A010Hash = (HashMap<String, Object>)resultHash.get(TEMPLATE_ID_EKK0161A010);
			
			// サービス契約内訳ステータス
			String svcKeiUcwkStats = (String)eKK0161A010Hash.get(EKK0161A010CBSMsg1List.SVC_KEI_UCWK_STAT);
			
			if (!"100".equals(svcKeiUcwkStats))
			{
				err_code = ERR_LV_BIJINES_ERR;
				err_type = "E002";
				requestParam.put(ERR_CD, err_code);
				requestParam.put(ERR_TYPE, err_type);
				return param;
			}
			
			// ・消去SOD発行済みチェック
			//****************************************
			// ■オーダ設定一覧照会（EKK1041B001）(電話オーダ／SIP指定、サービス契約内訳にて検索)
			//****************************************
			statusCode = callEKK1041B001SC(param, handle, requestParam, resultHash, svcKeiUcwkNo);
			if(statusCode != 0)
			{
				return param;
			}
			
			// オーダ設定一覧照会を取得
			CAANMsg[] eKK1041B001List = (CAANMsg[])resultHash.get(TEMPLATE_ID_EKK1041B001);
			
			if (eKK1041B001List != null && eKK1041B001List.length > 0) {
				for (int i = 0; i < eKK1041B001List.length; i ++)
				{
					HashMap<String, Object> eKK1041B001Hash = eKK1041B001List[i].getMsgData();
					
					// 最新要求種別コードの取得
					String rcnt_yokyu_sbt_cd = (String)eKK1041B001Hash.get(EKK1041B001CBSMsg1List.RCNT_YOKYU_SBT_CD);
					
					// 最新要求種別コードが「解約」または「消去」の場合エラー
					if("03".equals(rcnt_yokyu_sbt_cd) || "08".equals(rcnt_yokyu_sbt_cd))
					{
						err_code = ERR_LV_BIJINES_ERR;
						err_type = "E005";
						break;
					}
				}
				if (ERR_LV_BIJINES_ERR.equals(err_code))
				{
					// 前期オーダー一覧でエラーの場合、後続をスキップする
					requestParam.put(ERR_CD, err_code);
					requestParam.put(ERR_TYPE, err_type);
					return param;
				}
			}
		
			
			// ・消去SOD発行依頼中チェック
			//****************************************
			// ■オーダ発行条件一覧照会(EKK1081B001)を実施（サービス契約番号／内訳番号／オーダ種別コード／サービスオーダコード）※　未発行分のみ取得
			//****************************************
			statusCode = callEKK1081B001SC(param, handle, requestParam, resultHash, svcKeiUcwkNo, svcKeiNo);
			if(statusCode != 0)
			{
				return param;
			}
			// オーダ発行条件一覧照会を取得
			CAANMsg[] eKK1081B001List = (CAANMsg[])resultHash.get(TEMPLATE_ID_EKK1081B001);
			
			if (eKK1081B001List != null && eKK1081B001List.length > 0) {
				for (int i = 0; i < eKK1081B001List.length; i ++)
				{
					HashMap<String, Object> eKKeKK1081B001ListHash = eKK1081B001List[i].getMsgData();
					
					// 要求種別コードの取得
					String yokyu_sbt_cd = (String)eKKeKK1081B001ListHash.get(EKK1081B001CBSMsg1List.YOKYU_SBT_CD);
					
					// 対象サービス契約内訳番号
					String tgSvcKeiUcwkNo = (String)eKKeKK1081B001ListHash.get(EKK1081B001CBSMsg1List.KK1551_SVC_KEI_UCWK_NO);
					
					// 要求種別コードが「解約」または「消去」の場合エラー ※　未処理分
					if ("03".equals(yokyu_sbt_cd) || "08".equals(yokyu_sbt_cd) 
							&& !"".equals(tgSvcKeiUcwkNo) && tgSvcKeiUcwkNo != null && svcKeiUcwkNo.equals(tgSvcKeiUcwkNo))
					{
						err_code = ERR_LV_BIJINES_ERR;
						err_type = "E006";
						break;
					}
					
				}
				if (ERR_LV_BIJINES_ERR.equals(err_code))
				{
					// オーダ発行条件一覧照会でエラーの場合、後続をスキップする
					requestParam.put(ERR_CD, err_code);
					requestParam.put(ERR_TYPE, err_type);
					return param;
				}
			}
			
			
// ANK-2995-00-00 DEL START
//			// ・番ポ戻し可否チェック
//			// @　住所変更中住所変更明細一覧照会（EKK2101B501）
//			// 住所変更中フラグ
//			boolean adchgFlg = false;
//			// 変更前番号フラグ
//			boolean changeBfFlg = false;
//			
//			//****************************************
//			// ■住所変更中住所変更明細一覧照会２(EKK2101B501)
//			//****************************************
//			statusCode = callEKK2101B501SC(param, handle, requestParam, resultHash, svcKeiUcwkNo, svcKeiNo);
//			if(statusCode != 0)
//			{
//				return param;
//			}
//			// 住所変更中住所変更明細一覧照会２
//			CAANMsg[] eK2101B501List = (CAANMsg[])resultHash.get(TEMPLATE_ID_EKK2101B501);
//			
//			// 住所変更中住所変更明細一覧照会２
//			if (eK2101B501List != null && eK2101B501List.length > 0)
//			{
//				// 住所変更中住所変更明細一覧照会２(EKK2101B501)を確認
//				
//				for (int i = 0; i < eK2101B501List.length; i ++)
//				{
//					HashMap<String, Object> eK2101B501ListHash = eK2101B501List[i].getMsgData();
//					
//					// 住所変更中住所変更明細一覧照会２.住所変更番号
//					String adchgNo = (String)eK2101B501ListHash.get(EKK2101B501CBSMsg1List.ADCHG_NO);
//					
//					// 住所変更中住所変更明細一覧照会２.変更前識別番号
//					String chgBkSvckeiNo = (String)eK2101B501ListHash.get(EKK2101B501CBSMsg1List.CHBF_SKBT_NO);
//					
//					// 変更前識別番号＝サービス契約番号
//					if (svcKeiNo.equals(chgBkSvckeiNo))
//					{
//						// 住所変更中とみなし、住所変更明細一覧照会
//						//****************************************
//						// ■住所変更明細一覧照会(EKK2101B001)
//						//****************************************
//						statusCode = callEKK2101B001SC(param, handle, requestParam, resultHash, svcKeiUcwkNo, adchgNo);
//						if(statusCode != 0)
//						{
//							return param;
//						}
//						// 住所変更明細一覧照会 一覧検索結果を取得する
//						CAANMsg[] eKK2101B001List = (CAANMsg[])resultHash.get(TEMPLATE_ID_EKK2101B001);
//						
//						// 住所変更明細一覧照会
//						for (int j = 0; j < eKK2101B001List.length; j ++)
//						{
//							HashMap<String, Object> eKK2101B001ListHash = eKK2101B001List[j].getMsgData();
//							
//							// 住所変更明細一覧照会.変更前識別番号
//							String chbfUcwkNo = (String)eKK2101B001ListHash.get(EKK2101B501CBSMsg1List.CHBF_SKBT_NO);
//							
//							// 処理中のサービス契約内訳番号が住所変更前の変更前識別番号でことを確認する
//							if (svcKeiUcwkNo.equals(chbfUcwkNo))
//							{
//								// ヒットした場合は住所変更中の転居元番号であることが確定
//								adchgFlg = true;
//								break;
//							}
//						}
//						
//					}
//				}
//			}
//			
//			// 住所変更中でない場合、番号変更中の変更前番号かどうかを確認
//			if (!adchgFlg) 
//			{
//				//****************************************
//				// ■サービス契約番号にてサービス契約内訳一覧照会（EKK0161B004）
//				//****************************************
//				statusCode = callEKK0161B004SC(param, handle, requestParam, resultHash, svcKeiUcwkNo, svcKeiNo);
//				if(statusCode != 0)
//				{
//					return param;
//				}
//				// サービス契約番号にてサービス契約内訳一覧照会
//				CAANMsg[] eKK0161B004List = (CAANMsg[])resultHash.get(TEMPLATE_ID_EKK0161B004);
//				
//				if (eKK0161B004List != null && eKK0161B004List.length > 0)
//				{
//					// 内訳の数分検索する
//					for (int i = 0; i < eKK0161B004List.length; i ++)
//					{
//						HashMap<String, Object> eKK0161B004ListHash = eKK0161B004List[i].getMsgData();
//
//						// サービス契約内訳番号の取得
//						// カーソル上のサービス契約内訳番号
//						String svcKeiUcwkNoTel = (String)eKK0161B004ListHash.get(EKK0161B004CBSMsg1List.SVC_KEI_UCWK_NO);
//						// カーソル上のサービス契約内訳ステータス
//						String svcKeiUcwkStat = (String)eKK0161B004ListHash.get(EKK0161B004CBSMsg1List.SVC_KEI_UCWK_STAT);
//						// 継続元サービス契約内訳番号
//						String keizkMtUcwkNo = (String)eKK0161B004ListHash.get(EKK0161B004CBSMsg1List.KEIZK_MT_SVC_KEI_UCWK_NO);
//						// 継続後契約変更手続中フラグ
//						String keizkAfKeiFlg = (String)eKK0161B004ListHash.get(EKK0161B004CBSMsg1List.KEIZK_AF_KEI_CHGECHU_FLG);
//						// カーソル上のサービス契約内訳番号と画面選択.サービス契約内訳番号が一致しない場合かつステータスが９１０、９２０以外であること
//						if (!svcKeiUcwkNoTel.equals(svcKeiUcwkNo) && !"910".equals(svcKeiUcwkStat) && !"920".equals(svcKeiUcwkStat))
//						{
//							// 継続元サービス契約内訳番号が画面選択内訳番号と一致し、継続後契約変更手続中フラグが「１」変更であればチェックOK
//							if(keizkMtUcwkNo != null && !"".equals(keizkMtUcwkNo) && svcKeiUcwkNo.equals(keizkMtUcwkNo)
//									&& keizkAfKeiFlg != null && !"".equals(keizkAfKeiFlg) && "1".equals(keizkAfKeiFlg))
//							{
//								changeBfFlg = true;
//								break;
//							}
//						}
//						
//					}
//				}
//			}
//			
//			// 住所変更中の変更元番号でもなく、番号変更前番号でもない場合はNG
//			if (!adchgFlg && !changeBfFlg) {
//				err_code = ERR_LV_BIJINES_ERR;
//				err_type = "E007";
//				requestParam.put(ERR_CD, err_code);
//				requestParam.put(ERR_TYPE, err_type);
//				return param;
//			}
//			
// ANK-2995-00-00 DEL END
			
			// ・電話番号トーキ登録済みチェック
			//サービス契約内訳＜電話＞一意照会を取得
			eKK0191A010Hash = (HashMap<String, Object>)resultHash.get(TEMPLATE_ID_EKK0191A010);
			
			// 解約・休止トーキ種別コード
			String dsl_pause_toki_sbt_cd  = (String)eKK0191A010Hash.get(EKK0191A010CBSMsg1List.DSL_PAUSE_TOKI_SBT_CD);
			String dsl_pause_toki_end_ymd  = (String)eKK0191A010Hash.get(EKK0191A010CBSMsg1List.DSL_PAUSE_TOKI_END_YMD);
			String itens_opaf_toki_sbt_cd  = (String)eKK0191A010Hash.get(EKK0191A010CBSMsg1List.ITENS_OPAF_TOKI_SBT_CD);
			String itens_opaf_toki_end_ymd  = (String)eKK0191A010Hash.get(EKK0191A010CBSMsg1List.ITENS_OPAF_TOKI_END_YMD);
			
			// 移転元解約によるトーキ中または移転先開始によるトーキ中の場合エラー
			if ((dsl_pause_toki_sbt_cd != null && !"".equals(dsl_pause_toki_sbt_cd)
					&& (dsl_pause_toki_end_ymd == null || "".equals(dsl_pause_toki_end_ymd)))
				|| (itens_opaf_toki_sbt_cd != null && !"".equals(itens_opaf_toki_sbt_cd)
					&& (itens_opaf_toki_end_ymd == null || "".equals(itens_opaf_toki_end_ymd)))
			)
			{
				err_code = ERR_LV_BIJINES_ERR;
				err_type = "E004";
				requestParam.put(ERR_CD, err_code);
				requestParam.put(ERR_TYPE, err_type);
				return param;
			}
			
			// ・他契約利用中チェック
			//****************************************
			// ■サービス契約内訳一覧照会（電話番号）（EKK0161B013）
			//****************************************
			statusCode = callEKK0161B013SC(param, handle, requestParam, resultHash, svcKeiUcwkNo, telNo);
			if(statusCode != 0)
			{
				return param;
			}
			// サービス契約内訳一覧照会（電話番号）検索結果を取得するｓ
			CAANMsg[] eKK0161B013List = (CAANMsg[])resultHash.get(TEMPLATE_ID_EKK0161B013);
			
			// 
			for (int i = 0; i < eKK0161B013List.length; i ++)
			{
				HashMap<String, Object> eKK0161B013ListHash = eKK0161B013List[i].getMsgData();
				
				// サービス契約内訳番号
				String kasSvckeiUcwkNo = (String)eKK0161B013ListHash.get(EKK0161B013CBSMsg1List.SVC_KEI_UCWK_NO);
				
				// サービス契約内訳ステータス
				String kasSvckeiUcwkStat = (String)eKK0161B013ListHash.get(EKK0161B013CBSMsg1List.SVC_KEI_UCWK_STAT);
				
				// 処理中内訳番号と一致しない内訳であることかつそのステータスが９１０、９２０以外の場合他契約利用中チェックエラー
				if (!kasSvckeiUcwkNo.equals(svcKeiUcwkNo) && !"910".equals(kasSvckeiUcwkStat) && !"920".equals(kasSvckeiUcwkStat))
				{
					err_code = ERR_LV_BIJINES_ERR;
					err_type = "E008";
					break;
				}
				
			}
			if (ERR_LV_BIJINES_ERR.equals(err_code))
			{
				// 他契約利用中チェックの場合、後続をスキップする
				requestParam.put(ERR_CD, err_code);
				requestParam.put(ERR_TYPE, err_type);
				return param;
			}
			
			// ANK-4494-00-00 ADD START
			//****************************************
			// ■電話番号状態判定CC部品(JKKTelnoStatJudgeCC)
			//****************************************
			HashMap<String, Object> telNoStatJudgeCc = new HashMap<String, Object>();
			
			telNoStatJudgeCc.put(JKKTelnoStatJudgeConstCC.TELNO, telNo);
			
			JKKTelnoStatJudgeCC TelnoStatJudgeCC = new JKKTelnoStatJudgeCC();
			param.setData("telnoStatJudgeCc", telNoStatJudgeCc);
			TelnoStatJudgeCC.telnoStatJudge(handle, param, "telnoStatJudgeCc");
			
			HashMap telnoStatJudgeCcHashMap = (HashMap) param.getData("telnoStatJudgeCc");
			ArrayList telNoStatJudgeCcList = (ArrayList)telnoStatJudgeCcHashMap.get(JKKTelnoStatJudgeConstCC.TELNOSTATJUDGECC_LIST);
			HashMap telNoStatJudgeCcListHashMap = (HashMap)telNoStatJudgeCcList.get(0);
			String telnoJudgeDiv = (String)telNoStatJudgeCcListHashMap.get(JKKTelnoStatJudgeConstCC.TELNOJUDGEDIV);
			// #86474_2025/03/26 ADD START
			String tlnStkuTsjgsJishaTashaDiv = (String)telNoStatJudgeCcListHashMap.get(JKKTelnoStatJudgeConstCC.TLNSTKUTSJGS_JISHATASHADIV);
			// #86474_2025/03/26 ADD END
			// ANK-4494-00-00 Step2 ADD START
			String monaiBmpUm = (String)telNoStatJudgeCcListHashMap.get(JKKTelnoStatJudgeConstCC.MONAIBMPUM);
			// ANK-4494-00-00 Step2 ADD END
			
			// ・ポートアウト申請情報存在チェック
			if (!enum_krke_douji){
				err_code = ERR_LV_BIJINES_ERR;
				err_type = "E010";
				requestParam.put(ERR_CD, err_code);
				requestParam.put(ERR_TYPE, err_type);
				return param;
			}
			
			// ・電話番号状態チェック
// ANK-4494-00-00 Step2 MOD START
			//if (JKKTelnoStatJudgeConstCC.TELNOJUDGEDIV_06.equals(telnoJudgeDiv)){
			if (JKKTelnoStatJudgeConstCC.TELNOJUDGEDIV_06.equals(telnoJudgeDiv) ||
				JKKTelnoStatJudgeConstCC.TELNOJUDGEDIV_11.equals(telnoJudgeDiv)	){	
// ANK-4494-00-00 Step2 MOD END
				err_code = ERR_LV_BIJINES_ERR;
				err_type = "E011";
				requestParam.put(ERR_CD, err_code);
				requestParam.put(ERR_TYPE, err_type);
				return param;
			}
			
			// ・ENUM同時切替チェック
// ANK-4494-00-00 Step2 MOD START
			//if (JKKTelnoStatJudgeConstCC.TELNOJUDGEDIV_04.equals(telnoJudgeDiv) || JKKTelnoStatJudgeConstCC.TELNOJUDGEDIV_05.equals(telnoJudgeDiv)){
			if (JKKTelnoStatJudgeConstCC.TELNOJUDGEDIV_04.equals(telnoJudgeDiv) 
					|| JKKTelnoStatJudgeConstCC.TELNOJUDGEDIV_05.equals(telnoJudgeDiv) 
					|| JKKTelnoStatJudgeConstCC.TELNOJUDGEDIV_06.equals(telnoJudgeDiv) 
					|| JKKTelnoStatJudgeConstCC.TELNOJUDGEDIV_09.equals(telnoJudgeDiv) 
					|| JKKTelnoStatJudgeConstCC.TELNOJUDGEDIV_10.equals(telnoJudgeDiv) 
					|| JKKTelnoStatJudgeConstCC.TELNOJUDGEDIV_11.equals(telnoJudgeDiv)
				){			
// ANK-4494-00-00 Step2 MOD END
				err_code = ERR_LV_BIJINES_ERR;
				err_type = "E012";
				requestParam.put(ERR_CD, err_code);
				requestParam.put(ERR_TYPE, err_type);
				return param;
			}
			// ANK-4494-00-00 ADD END
// -------------------END-------------------

// SODCCコールエリア
// -------------------START-------------------
			HashMap<String, Object> sodMap = new HashMap<String, Object>();
			
			ArrayList<HashMap<String, Object>> sodDataList = new ArrayList<HashMap<String, Object>>();
			// SOD対象データマップ
			HashMap<String, Object> sodTrgtData = new HashMap<String, Object>();
			
			// SOD基本情報
			HashMap<String, Object> sodKihonInfo = new HashMap<String, Object>();
			sodKihonInfo.put(JKKHakkoSODConstCC.INFO_SYSID, sysid);
			sodKihonInfo.put(JKKHakkoSODConstCC.INFO_IDO_DIV, prm_ido_div);
			sodMap.put(JKKHakkoSODConstCC.SOD_KIHON_INFO, sodKihonInfo);
			
			// サービス契約情報
			HashMap<String, Object> svcKeiInfo = new HashMap<String, Object>();
			svcKeiInfo.put(JKKHakkoSODConstCC.INFO_SVC_KEI_NO, svcKeiNo);
			sodMap.put(JKKHakkoSODConstCC.SVC_KEI_INFO, svcKeiInfo);
			
			// サービス契約内訳情報
			HashMap<String, Object> svcKeiUcwkInfo = new HashMap<String, Object>();
			svcKeiUcwkInfo.put(JKKHakkoSODConstCC.INFO_SVC_KEI_UCWK_NO, svcKeiUcwkNo);
			svcKeiUcwkInfo.put(JKKHakkoSODConstCC.INFO_CHAF_SVC_KEI_UCWK_GENE_ADD_DTM, (String)eKK0191A010Hash.get(EKK0191A010CBSMsg1List.GENE_ADD_DTM));
			sodMap.put(JKKHakkoSODConstCC.SVC_KEI_UCWK_INFO, svcKeiUcwkInfo);
			
			sodDataList.add(sodMap);
			
			sodTrgtData.put(JKKHakkoSODConstCC.TRGT_DATA_LIST, sodDataList);
			sodTrgtData.put(JCMConstants.FUNC_CODE_KEY, "1");
			
			// サービスオーダ発行CCを呼び出す
			JKKHakkoSODCC hakkoSODCC = new JKKHakkoSODCC();
			param.setData("sodTrgtData", sodTrgtData);
			hakkoSODCC.hakkoSOD(handle, param, "sodTrgtData");
			
			// ANK-4494-00-00 ADD START
			//****************************************
			// ■ポートアウト受付情報一意照会（サービス契約照会）(ETU0151A011)
			//****************************************
			statusCode = callETU0151A011SC(param, handle, requestParam, resultHash, telNo);
			if(statusCode != 0)
			{
				return param;
			}
			// ポートアウト受付情報一意照会（サービス契約照会）を取得
			HashMap<String, Object> eTU0151A011Hash = (HashMap<String, Object>)resultHash.get(TEMPLATE_ID_ETU0151A011);
			
			HashMap<String, Object> enumSodMap = new HashMap<String, Object>();
			
			ArrayList<HashMap<String, Object>> enumSodDataList = new ArrayList<HashMap<String, Object>>();
			// ENUMSOD対象データマップ
			HashMap<String, Object> enumSodTrgtData = new HashMap<String, Object>();
			
			// ENUMSOD基本情報
			HashMap<String, Object> enumSodKihonInfo = new HashMap<String, Object>();
			enumSodKihonInfo.put(JKKHakkoSODConstCC.PORT_OUT_NO, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.PORT_OUT_NO));
			enumSodKihonInfo.put(JKKHakkoSODConstCC.PORT_OUT_GENE_ADD_DTM, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.GENE_ADD_DTM));
			enumSodKihonInfo.put(JKKHakkoSODConstCC.TELNO, telNo);
			// 番ポありの場合、ENUM消去業務
			if (BMP_1.equals(bmpUm)){
				enumSodKihonInfo.put(JKKHakkoSODConstCC.INFO_IDO_DIV, JKKHakkoSODConstCC.IDO_DIV_ENUMDEL);
			// 番ポなしの場合、ENUM登録業務
			}else{
				enumSodKihonInfo.put(JKKHakkoSODConstCC.INFO_IDO_DIV, JKKHakkoSODConstCC.IDO_DIV_ENUMIADD);
			}
			enumSodMap.put(JKKHakkoSODConstCC.SOD_KIHON_INFO, enumSodKihonInfo);
			
			// サービス契約情報
			HashMap<String, Object> enumSodSvcKeiInfo = new HashMap<String, Object>();
			enumSodSvcKeiInfo.put(JKKHakkoSODConstCC.INFO_SVC_KEI_NO, svcKeiNo);
			enumSodMap.put(JKKHakkoSODConstCC.SVC_KEI_INFO, enumSodSvcKeiInfo);
			
			enumSodDataList.add(enumSodMap);
			
			enumSodTrgtData.put(JKKHakkoSODConstCC.TRGT_DATA_LIST, enumSodDataList);
			enumSodTrgtData.put(JCMConstants.FUNC_CODE_KEY, "1");
			
			// サービスオーダ発行CCを呼び出す（ENUMSOD）
			param.setData("enumSodTrgtData", enumSodTrgtData);
			// #86474_2025/03/26 MOD START
//			hakkoSODCC.hakkoSOD(handle, param, "enumSodTrgtData");
			// 番号取得通信事業者_自社他社区分を取得し、自社("1")ならサービスオーダ発行CCを呼び出す
			if(JKKTelnoStatJudgeConstCC.TLNSTKUTSJGS_JISHATASHADIV_JISHA.equals(tlnStkuTsjgsJishaTashaDiv)) {
				hakkoSODCC.hakkoSOD(handle, param, "enumSodTrgtData");
			}
			// #86474_2025/03/26 MOD END
			
			// ANK-4494-00-00 ADD END
// -------------------END-------------------
			// ANK-4494-00-00 ADD START
			//****************************************
			// ■電話番号一意照会(EZM0121A010)
			//****************************************
			statusCode = callEZM0121A010SC(param, handle, requestParam, resultHash, telNo);
			if(statusCode != 0)
			{
				return param;
			}
			// 電話番号一意照会を取得
			HashMap<String, Object> eZM0121A010Hash = (HashMap<String, Object>)resultHash.get(TEMPLATE_ID_EZM0121A010);
			
			// 番ポありの場合
			if (BMP_1.equals(bmpUm))
			{
// #86474 DEL START
//				//****************************************
//				// ■電話番号物理削除(EZM0121E011)
//				//****************************************
//				statusCode = callEZM0121E011SC(param, handle, requestParam, resultHash, telNo, zm0121UpdDtm);
//				if(statusCode != 0)
//				{
//					return param;
//				}
// #86474 DEL END
				// #86474_2025/03/12 ADD START
				//****************************************
				// ■電話番号変更(EZM0121C010)
				//****************************************
				// 番ポ廃止依頼制御コードを「0:不要」に変更する
				statusCode = callEZM0121C010SC_2(param, handle, resultHash, eZM0121A010Hash, telNo, zm0121UpdDtm);
				if(statusCode != 0)
				{
					return param;
				}
				// #86474_2025/03/12 ADD END
				//	ANK-4494-00-00 Step2 ADD START
				//****************************************
				// ■ポートアウト受付情報ステータス変更(ETU0151C030)
				//****************************************
				statusCode = callETU0151C030SC(param, handle, requestParam, resultHash, eTU0151A011Hash, tu0151UpdDtm);
				if(statusCode != 0)
				{
					return param;
				}
				//	ANK-4494-00-00 Step2 ADD END
			
			}
			// 番ポなしの場合
			else
			{
				//****************************************
				// ■通信事業者一覧照会(ETU0051B010)
				//****************************************
				statusCode = callETU0051B010SC(param, handle, requestParam, resultHash);
				if(statusCode != 0)
				{
					return param;
				}
				// 通信事業者一覧照会を取得
				HashMap<String, Object> eTU0051B010Hash = (HashMap<String, Object>)resultHash.get(TEMPLATE_ID_ETU0051B010);
				
				//****************************************
				// ■電話番号変更(EZM0121C010)
				//****************************************
				statusCode = callEZM0121C010SC(param, handle, requestParam, resultHash, eTU0051B010Hash, eTU0151A011Hash, eZM0121A010Hash, telNo, zm0121UpdDtm);
				if(statusCode != 0)
				{
					return param;
				}
				//	ANK-4494-00-00 Step2 MOD START
//			}
//			
//			//****************************************
//			// ■ポートアウト受付情報内容変更(ETU0151C010)
//			//****************************************
//			statusCode = callETU0151C010SC(param, handle, requestParam, resultHash, eTU0151A011Hash, tu0151UpdDtm);
//			if(statusCode != 0)
//			{
//				return param;
				//****************************************
				// ■ポートアウト受付情報ステータス変更(ETU0151C030)
				//****************************************
				statusCode = callETU0151C030SC(param, handle, requestParam, resultHash, eTU0151A011Hash, tu0151UpdDtm);
				if(statusCode != 0)
				{
					return param;
				}
				//	ANK-4494-00-00 Step2 MOD END
			}
			// ANK-4494-00-00 ADD END
// 進捗コールエリア
// -------------------START-------------------
			HashMap<String, Object> eKK1091D010Hash = new HashMap<String, Object>();
			HashMap<String, Object> work = new HashMap<String, Object>();
			// 進捗パラメータの設定
			work.put("prg_mskm_dtl_no", (String)eKK0161A010Hash.get(EKK0161A010CBSMsg1List.MSKM_DTL_NO));
			work.put("prg_svc_kei_no", svcKeiNo);
			work.put("prg_ido_div", prm_ido_div);
			work.put("prg_tel_no", telNo);
			work.put("prg_ido_rsn_cd", prm_ido_rsn_cd);
			
			callEKK1091D010SC(param,handle,eKK1091D010Hash, work);
// -------------------END-------------------
			
// 正常終了パラメータ設定
// -------------------START-------------------
			// ここまで問題なく進捗登録できた場合
			// エラーコード「００００」正常終了
			err_code = ERR_LV_NOMAL;
			// エラータイプ「」空白＝エラー発生しない
			err_type = "";
// -------------------END-------------------
			requestParam.put(ERR_CD, err_code);
			requestParam.put(ERR_TYPE, err_type);
		// 処理終了
		return param;
		
	}
	
	/**
	 * サービス契約一意照会SIFを呼び出し
	 * @param	param		リクエストパラメータ	
	 * @param	handle		セッションハンドル
	 * @param	inHash		条件用Hash
	 * @param	resultHash	結果のハッシュ
	 * @param	svcKeiNo	サービス契約内訳番号
	 * @return				サービスインターフェースのリターンコード
	 * @throws	RequestParameterException, SCException 例外時にスローされます
	 */
	private int callEKK0191A010SC(
			IRequestParameterReadWrite param,
			SessionHandle handle,
			HashMap<String, Object> inHash,
			HashMap<String, Object> resultHash,
			String svcKeiUcwkNo
	) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg[] resultMsgs = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EKK0191A010への呼び出しパラメータ設定
		template = new CAANMsg(EKK0191A010CBSMsg.class.getName());
		mappingEKK0191A010InMsg(template, inHash, svcKeiUcwkNo);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]{template});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);

		// エラーマッピング処理
		editResultRP(sIFResult, param);

		// エラーチェック
		errChk(sIFResult);

		// 結果の取得
		resultMsgs = (CAANMsg[])sIFResult.get(JCMConstants.TEMPLATE_LIST_KEY);

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		// ステータスが0以外はエラーとなっている
		if(status == 0)
		{
			resultHash.put(TEMPLATE_ID_EKK0191A010, mappingEKK0191A010SCOutMsg(resultMsgs));
		}

		return status;
		
	}
	
	/**
	 * サービス契約内訳一意照会SIFを呼び出し
	 * @param	param		リクエストパラメータ	
	 * @param	handle		セッションハンドル
	 * @param	inHash		条件用Hash
	 * @param	resultHash	結果のハッシュ
	 * @param	svcKeiNo	サービス契約内訳番号
	 * @return				サービスインターフェースのリターンコード
	 * @throws	RequestParameterException, SCException 例外時にスローされます
	 */
	private int callEKK0161A010SC(
			IRequestParameterReadWrite param,
			SessionHandle handle,
			HashMap<String, Object> inHash,
			HashMap<String, Object> resultHash,
			String svcKeiUcwkNo
	) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg[] resultMsgs = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EKK0161A010への呼び出しパラメータ設定
		template = new CAANMsg(EKK0161A010CBSMsg.class.getName());
		mappingEKK0161A010InMsg(template, inHash, svcKeiUcwkNo);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]{template});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);

		// エラーマッピング処理
		editResultRP(sIFResult, param);

		// エラーチェック
		errChk(sIFResult);

		// 結果の取得
		resultMsgs = (CAANMsg[])sIFResult.get(JCMConstants.TEMPLATE_LIST_KEY);

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		// ステータスが0以外はエラーとなっている
		if(status == 0)
		{
			resultHash.put(TEMPLATE_ID_EKK0161A010, mappingEKK0161A010SCOutMsg(resultMsgs));
		}

		return status;
		
	}
	
	/**
	 * サービス契約内訳一意照会SIFを呼び出し
	 * @param	param		リクエストパラメータ	
	 * @param	handle		セッションハンドル
	 * @param	inHash		条件用Hash
	 * @param	resultHash	結果のハッシュ
	 * @param	svcKeiNo	サービス契約内訳番号
	 * @return				サービスインターフェースのリターンコード
	 * @throws	RequestParameterException, SCException 例外時にスローされます
	 */
	private int callEKK1041B001SC(
			IRequestParameterReadWrite param,
			SessionHandle handle,
			HashMap<String, Object> inHash,
			HashMap<String, Object> resultHash,
			String svcKeiUcwkNo
	) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg[] resultMsgs = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EKK1041B001への呼び出しパラメータ設定
		template = new CAANMsg(EKK1041B001CBSMsg.class.getName());
		mappingEKK1041B0011InMsg(template, inHash, svcKeiUcwkNo);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]{template});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);

		// エラーマッピング処理
		editResultRP(sIFResult, param);

		// エラーチェック
		errChk(sIFResult);

		// 結果の取得
		resultMsgs = (CAANMsg[])sIFResult.get(JCMConstants.TEMPLATE_LIST_KEY);

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		// ステータスが0以外はエラーとなっている
		if(status == 0)
		{
			resultHash.put(TEMPLATE_ID_EKK1041B001, mappingEKK1041B001SCOutMsg(resultMsgs));
		}

		return status;
		
	}
	
	/**
	 * オーダ発行条件一覧照会(EKK1081B001)SIFを呼び出し
	 * @param	param		リクエストパラメータ	
	 * @param	handle		セッションハンドル
	 * @param	inHash		条件用Hash
	 * @param	resultHash	結果のハッシュ
	 * @param	svcKeiNo	サービス契約内訳番号
	 * @return				サービスインターフェースのリターンコード
	 * @throws	RequestParameterException, SCException 例外時にスローされます
	 */
	private int callEKK1081B001SC(
			IRequestParameterReadWrite param,
			SessionHandle handle,
			HashMap<String, Object> inHash,
			HashMap<String, Object> resultHash,
			String svcKeiUcwkNo,
			String svckeino
	) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg[] resultMsgs = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EKK1081B001への呼び出しパラメータ設定
		template = new CAANMsg(EKK1081B001CBSMsg.class.getName());
		mappingEKK1081B001InMsg(template, inHash, svcKeiUcwkNo, svckeino);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]{template});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);

		// エラーマッピング処理
		editResultRP(sIFResult, param);

		// エラーチェック
		errChk(sIFResult);

		// 結果の取得
		resultMsgs = (CAANMsg[])sIFResult.get(JCMConstants.TEMPLATE_LIST_KEY);

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		// ステータスが0以外はエラーとなっている
		if(status == 0)
		{
			resultHash.put(TEMPLATE_ID_EKK1081B001, mappingEKK1081B001SCOutMsg(resultMsgs));
		}

		return status;
		
	}
	
	/**
	 * 住所変更中住所変更明細一覧照会２(EKK2101B501)SIFを呼び出し
	 * @param	param		リクエストパラメータ	
	 * @param	handle		セッションハンドル
	 * @param	inHash		条件用Hash
	 * @param	resultHash	結果のハッシュ
	 * @param	svcKeiNo	サービス契約内訳番号
	 * @return				サービスインターフェースのリターンコード
	 * @throws	RequestParameterException, SCException 例外時にスローされます
	 */
	private int callEKK2101B501SC(
			IRequestParameterReadWrite param,
			SessionHandle handle,
			HashMap<String, Object> inHash,
			HashMap<String, Object> resultHash,
			String svcKeiUcwkNo,
			String svckeino
	) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg[] resultMsgs = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EKK2101B501への呼び出しパラメータ設定
		template = new CAANMsg(EKK2101B501CBSMsg.class.getName());
		mappingEKK2101B501InMsg(template, inHash, svcKeiUcwkNo, svckeino);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]{template});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);

		// エラーマッピング処理
		editResultRP(sIFResult, param);

		// エラーチェック
		errChk(sIFResult);

		// 結果の取得
		resultMsgs = (CAANMsg[])sIFResult.get(JCMConstants.TEMPLATE_LIST_KEY);

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		// ステータスが0以外はエラーとなっている
		if(status == 0)
		{
			resultHash.put(TEMPLATE_ID_EKK2101B501, mappingEKK2101B501SCOutMsg(resultMsgs));
		}

		return status;
		
	}
	
	/**
	 * 住所変更中住所変更明細一覧照会２(EKK2101B501)SIFを呼び出し
	 * @param	param		リクエストパラメータ	
	 * @param	handle		セッションハンドル
	 * @param	inHash		条件用Hash
	 * @param	resultHash	結果のハッシュ
	 * @param	svcKeiNo	サービス契約内訳番号
	 * @return				サービスインターフェースのリターンコード
	 * @throws	RequestParameterException, SCException 例外時にスローされます
	 */
	private int callEKK0161B013SC(
			IRequestParameterReadWrite param,
			SessionHandle handle,
			HashMap<String, Object> inHash,
			HashMap<String, Object> resultHash,
			String svcKeiUcwkNo,
			String telNo
	) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg[] resultMsgs = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EKK0161B013への呼び出しパラメータ設定
		template = new CAANMsg(EKK0161B013CBSMsg.class.getName());
		mappingEKK0161B013InMsg(template, inHash, svcKeiUcwkNo, telNo);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]{template});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);

		// エラーマッピング処理
		editResultRP(sIFResult, param);

		// エラーチェック
		errChk(sIFResult);

		// 結果の取得
		resultMsgs = (CAANMsg[])sIFResult.get(JCMConstants.TEMPLATE_LIST_KEY);

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		// ステータスが0以外はエラーとなっている
		if(status == 0)
		{
			resultHash.put(TEMPLATE_ID_EKK0161B013, mappingEKK0161B013SCOutMsg(resultMsgs));
		}

		return status;
		
	}
	
	/**
	 * 住所変更中住所変更明細一覧照会２(EKK2101B501)SIFを呼び出し
	 * @param	param		リクエストパラメータ	
	 * @param	handle		セッションハンドル
	 * @param	inHash		条件用Hash
	 * @param	resultHash	結果のハッシュ
	 * @param	svcKeiNo	サービス契約内訳番号
	 * @return				サービスインターフェースのリターンコード
	 * @throws	RequestParameterException, SCException 例外時にスローされます
	 */
	private int callEKK2101B001SC(
			IRequestParameterReadWrite param,
			SessionHandle handle,
			HashMap<String, Object> inHash,
			HashMap<String, Object> resultHash,
			String svcKeiUcwkNo,
			String adchgno
	) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg[] resultMsgs = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EKK2101B001への呼び出しパラメータ設定
		template = new CAANMsg(EKK2101B001CBSMsg.class.getName());
		mappingEKK2101B001InMsg(template, inHash, svcKeiUcwkNo, adchgno);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]{template});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);

		// エラーマッピング処理
		editResultRP(sIFResult, param);

		// エラーチェック
		errChk(sIFResult);

		// 結果の取得
		resultMsgs = (CAANMsg[])sIFResult.get(JCMConstants.TEMPLATE_LIST_KEY);

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		// ステータスが0以外はエラーとなっている
		if(status == 0)
		{
			resultHash.put(TEMPLATE_ID_EKK2101B001, mappingEKK2101B001SCOutMsg(resultMsgs));
		}

		return status;
		
	}
	
	/**
	 * 住所変更中住所変更明細一覧照会２(EKK2101B501)SIFを呼び出し
	 * @param	param		リクエストパラメータ	
	 * @param	handle		セッションハンドル
	 * @param	inHash		条件用Hash
	 * @param	resultHash	結果のハッシュ
	 * @param	svcKeiNo	サービス契約内訳番号
	 * @return				サービスインターフェースのリターンコード
	 * @throws	RequestParameterException, SCException 例外時にスローされます
	 */
	private int callEKK0161B004SC(
			IRequestParameterReadWrite param,
			SessionHandle handle,
			HashMap<String, Object> inHash,
			HashMap<String, Object> resultHash,
			String svcKeiUcwkNo,
			String svckeino
	) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg[] resultMsgs = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EKK0161B004への呼び出しパラメータ設定
		template = new CAANMsg(EKK0161B004CBSMsg.class.getName());
		mappingEKK0161B004InMsg(template, inHash, svcKeiUcwkNo, svckeino);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]{template});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);

		// エラーマッピング処理
		editResultRP(sIFResult, param);

		// エラーチェック
		errChk(sIFResult);

		// 結果の取得
		resultMsgs = (CAANMsg[])sIFResult.get(JCMConstants.TEMPLATE_LIST_KEY);

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		// ステータスが0以外はエラーとなっている
		if(status == 0)
		{
			resultHash.put(TEMPLATE_ID_EKK0161B004, mappingEKK0161B004SCOutMsg(resultMsgs));
		}

		return status;
		
	}
	
	/**
	 * 進捗登録SIF呼び出し
	 * @param param
	 * @param handle
	 * @param resultHash
	 * @param work
	 * @return
	 * @throws Throwable
	 */
	private int callEKK1091D010SC(IRequestParameterReadWrite param, SessionHandle handle,
			HashMap<String, Object> resultHash, HashMap<String, Object> work) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EKK1091D010への呼び出しパラメータ設定
		template = new CAANMsg(EKK1091D010CBSMsg.class.getName());
		mappingEKK1091D010InMsg(template, work);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
		{
			template
		});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);
		
		// エラーマッピング処理
		editResultRP(sIFResult, param);

		// エラーチェック
		errChk(sIFResult);

		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	
	// ANK-4494-00-00 ADD START
	/**
	 * ポートアウト受付情報一意照会（サービス契約照会）(ETU0151A011)を呼び出し
	 * @param	param		リクエストパラメータ	
	 * @param	handle		セッションハンドル
	 * @param	inHash		条件用Hash
	 * @param	resultHash	結果のハッシュ
	 * @param	telNo		電話番号
	 * @return				サービスインターフェースのリターンコード
	 * @throws	RequestParameterException, SCException 例外時にスローされます
	 */
	private int callETU0151A011SC(
			IRequestParameterReadWrite param,
			SessionHandle handle,
			HashMap<String, Object> inHash,
			HashMap<String, Object> resultHash,
			String telNo
	) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg[] resultMsgs = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// ETU0151A011への呼び出しパラメータ設定
		template = new CAANMsg(ETU0151A011CBSMsg.class.getName());
		mappingETU0151A011InMsg(template, inHash, telNo);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]{template});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);

		// エラーマッピング処理
		editResultRP(sIFResult, param);

		// エラーチェック
		errChk(sIFResult);

		// 結果の取得
		resultMsgs = (CAANMsg[])sIFResult.get(JCMConstants.TEMPLATE_LIST_KEY);

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		// ステータスが0以外はエラーとなっている
		if(status == 0)
		{
			resultHash.put(TEMPLATE_ID_ETU0151A011, mappingETU0151A011SCOutMsg(resultMsgs));
		}

		return status;
		
	}
	
	/**
	 * 電話番号一意照会(EZM0121A010)を呼び出し
	 * @param	param		リクエストパラメータ	
	 * @param	handle		セッションハンドル
	 * @param	inHash		条件用Hash
	 * @param	resultHash	結果のハッシュ
	 * @param	telNo		電話番号
	 * @return				サービスインターフェースのリターンコード
	 * @throws	RequestParameterException, SCException 例外時にスローされます
	 */
	private int callEZM0121A010SC(
			IRequestParameterReadWrite param,
			SessionHandle handle,
			HashMap<String, Object> inHash,
			HashMap<String, Object> resultHash,
			String telNo
	) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg[] resultMsgs = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EZM0121A010への呼び出しパラメータ設定
		template = new CAANMsg(EZM0121A010CBSMsg.class.getName());
		mappingEZM0121A010InMsg(template, inHash, telNo);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]{template});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);

		// エラーマッピング処理
		editResultRP(sIFResult, param);

		// エラーチェック
		errChk(sIFResult);

		// 結果の取得
		resultMsgs = (CAANMsg[])sIFResult.get(JCMConstants.TEMPLATE_LIST_KEY);

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		// ステータスが0以外はエラーとなっている
		if(status == 0)
		{
			resultHash.put(TEMPLATE_ID_EZM0121A010, mappingEZM0121A010SCOutMsg(resultMsgs));
		}

		return status;
		
	}
	
	/**
	 * 通信事業者一覧照会(ETU0051B010)を呼び出し
	 * @param	param		リクエストパラメータ	
	 * @param	handle		セッションハンドル
	 * @param	inHash		条件用Hash
	 * @param	resultHash	結果のハッシュ
	 * @return				サービスインターフェースのリターンコード
	 * @throws	RequestParameterException, SCException 例外時にスローされます
	 */
	private int callETU0051B010SC(
			IRequestParameterReadWrite param,
			SessionHandle handle,
			HashMap<String, Object> inHash,
			HashMap<String, Object> resultHash
	) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg[] resultMsgs = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// ETU0051B010への呼び出しパラメータ設定
		template = new CAANMsg(ETU0051B010CBSMsg.class.getName());
		mappingETU0051B010InMsg(template, inHash);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]{template});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);

		// エラーマッピング処理
		editResultRP(sIFResult, param);

		// エラーチェック
		errChk(sIFResult);

		// 結果の取得
		resultMsgs = (CAANMsg[])sIFResult.get(JCMConstants.TEMPLATE_LIST_KEY);

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		// ステータスが0以外はエラーとなっている
		if(status == 0)
		{
			resultHash.put(TEMPLATE_ID_ETU0051B010, mappingETU0051B010SCOutMsg(resultMsgs));
		}

		return status;
		
	}
	
	/**
	 * 電話番号物理削除(EZM0121E011)を呼び出し
	 * @param	param		リクエストパラメータ	
	 * @param	handle		セッションハンドル
	 * @param	inHash		条件用Hash
	 * @param	resultHash	結果のハッシュ
	 * @param	telNo		電話番号
	 * @param	updDtm		更新年月日時分秒
	 * @return				サービスインターフェースのリターンコード
	 * @throws	RequestParameterException, SCException 例外時にスローされます
	 */
	private int callEZM0121E011SC(
			IRequestParameterReadWrite param,
			SessionHandle handle,
			HashMap<String, Object> inHash,
			HashMap<String, Object> resultHash,
			String telNo,
			String updDtm
	) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EZM0121E011への呼び出しパラメータ設定
		template = new CAANMsg(EZM0121E011CBSMsg.class.getName());
		mappingEZM0121E011InMsg(template, inHash, telNo, updDtm);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]{template});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);

		// エラーマッピング処理
		editResultRP(sIFResult, param);

		// エラーチェック
		errChk(sIFResult);

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	
	/**
	 * ポートアウト受付情報ステータス変更(ETU0151C030)呼び出し
	 * @param	param		リクエストパラメータ	
	 * @param	handle		セッションハンドル
	 * @param	inHash		条件用Hash
	 * @param	resultHash	結果のハッシュ
	 * @param	eTU0151A011Hash		ポートアウト受付情報一意照会（サービス契約照会）の結果のハッシュ
	 * @param	updDtm		更新年月日時分秒
	 * @return				サービスインターフェースのリターンコード
	 * @throws	RequestParameterException, SCException 例外時にスローされます
	 */
	 //	ANK-4494-00-00 Step2 MOD START
//	private int callETU0151C010SC(
	private int callETU0151C030SC(
	//	ANK-4494-00-00 Step2 MOD END
			IRequestParameterReadWrite param,
			SessionHandle handle,
			HashMap<String, Object> inHash,
			HashMap<String, Object> resultHash,
			HashMap<String, Object> eTU0151A011Hash,
			String updDtm
	) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		//	ANK-4494-00-00 Step2 MOD START
//		// ETU0151C010への呼び出しパラメータ設定
//		template = new CAANMsg(ETU0151C010CBSMsg.class.getName());
//		mappingETU0151C010InMsg(template, inHash, eTU0151A011Hash, updDtm);
		// ETU0151C030への呼び出しパラメータ設定
		template = new CAANMsg(ETU0151C030CBSMsg.class.getName());
		mappingETU0151C030InMsg(template, inHash, eTU0151A011Hash, updDtm);
		//	ANK-4494-00-00 Step2 MOD END
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]{template});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);

		// エラーマッピング処理
		editResultRP(sIFResult, param);

		// エラーチェック
		errChk(sIFResult);

		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	
	/**
	 * 電話番号変更(EZM0121C010)呼び出し
	 * @param	param		リクエストパラメータ	
	 * @param	handle		セッションハンドル
	 * @param	inHash		条件用Hash
	 * @param	resultHash	結果のハッシュ
	 * @param	eTU0051B010Hash	通信事業者一覧照会の結果のハッシュ
	 * @param	eTU0151A011Hash	ポートアウト受付情報一意照会（サービス契約照会）の結果のハッシュ
	 * @param	eZM0121A010Hash	電話番号一意照会の結果のハッシュ
	 * @param	telNo		電話番号
	 * @param	updDtm		更新年月日時分秒
	 * @return				サービスインターフェースのリターンコード
	 * @throws	RequestParameterException, SCException 例外時にスローされます
	 */
	private int callEZM0121C010SC(
			IRequestParameterReadWrite param,
			SessionHandle handle,
			HashMap<String, Object> inHash,
			HashMap<String, Object> resultHash,
			HashMap<String, Object> eTU0051B010Hash,
			HashMap<String, Object> eTU0151A011Hash,
			HashMap<String, Object> eZM0121A010Hash,
			String telNo,
			String updDtm
	) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EZM0121C010への呼び出しパラメータ設定
		template = new CAANMsg(EZM0121C010CBSMsg.class.getName());
		mappingEZM0121C010InMsg(template, inHash, eTU0051B010Hash, eTU0151A011Hash, eZM0121A010Hash, telNo, updDtm);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]{template});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);

		// エラーマッピング処理
		editResultRP(sIFResult, param);

		// エラーチェック
		errChk(sIFResult);

		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	// ANK-4494-00-00 ADD END
	
	// #86474_2025/03/12 ADD START
	/**
	 * 電話番号変更(EZM0121C010)呼び出し
	 * @param	param		リクエストパラメータ	
	 * @param	handle		セッションハンドル
	 * @param	resultHash	結果のハッシュ
	 * @param	eZM0121A010Hash	電話番号一意照会の結果のハッシュ
	 * @param	telNo		電話番号
	 * @param	updDtm		更新年月日時分秒
	 * @return				サービスインターフェースのリターンコード
	 * @throws	RequestParameterException, SCException 例外時にスローされます
	 */
	private int callEZM0121C010SC_2(
			IRequestParameterReadWrite param,
			SessionHandle handle,
			HashMap<String, Object> resultHash,
			HashMap<String, Object> eZM0121A010Hash,
			String telNo,
			String updDtm
	) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EZM0121C010への呼び出しパラメータ設定
		template = new CAANMsg(EZM0121C010CBSMsg.class.getName());
		mappingEZM0121C010InMsg_2(template, eZM0121A010Hash, telNo, updDtm);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]{template});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);

		// エラーマッピング処理
		editResultRP(sIFResult, param);

		// エラーチェック
		errChk(sIFResult);

		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	// #86474_2025/03/12 ADD END
	
	/**
	 * templateに対してEKK1091D010の条件に関する部分を設定する
	 * 
	 * @param template
	 * @param inHash
	 */
	private void mappingEKK1091D010InMsg(CAANMsg template, HashMap work)
	{
		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK1091D010CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(EKK1091D010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK1091D010);

		// 機能コード--進捗登録
		template.set(EKK1091D010CBSMsg.FUNC_CODE, "1");

		// 申込詳細番号
		template.set(EKK1091D010CBSMsg.MSKM_DTL_NO, (String)work.get("prg_mskm_dtl_no"));

		// サービス契約番号
		template.set(EKK1091D010CBSMsg.SVC_KEI_NO, (String)work.get("prg_svc_kei_no"));

		// 異動区分
		template.set(EKK1091D010CBSMsg.IDO_DIV,  (String)work.get("prg_ido_div"));

		// 異動年月日時分秒
		template.set(EKK1091D010CBSMsg.IDO_DTM, JCCBPCommon.getSysDateTimeStamp());
		
		// 進捗ステータス(固定)
		template.set(EKK1091D010CBSMsg.PRG_STAT, "B901");
		
		template.set(EKK1091D010CBSMsg.PRG_TKJK_1, "電話番号:"+work.get("prg_tel_no"));
		
		// 異動理由明細の枠を作成
		CAANMsg[] eKK1091D010CBSMSG1LIST = null;

		CAANMsg  eKK1091D010CBSMSG1 = new CAANMsg(EKK1091D010CBSMsg1List.class.getName());
		eKK1091D010CBSMSG1.set(EKK1091D010CBSMsg1List.IDO_RSN_CD, work.get("prg_ido_rsn_cd"));
		eKK1091D010CBSMSG1.setNull(EKK1091D010CBSMsg1List.IDO_RSN_MEMO);
		eKK1091D010CBSMSG1LIST = new CAANMsg[]
		{
				eKK1091D010CBSMSG1
		};
		
		template.set(EKK1091D010CBSMsg.EKK1091D010CBSMSG1LIST, eKK1091D010CBSMSG1LIST);
	}
	
	/**
	 * サービスI/F実行用の共通部を設定します<br>
	 * <br>
	 * 
	 * @param param (I) 業務データ取得用I/F
	 * @param msg データ登録内容
	 * @return オプションサービス契約作成数
	 * @throws RequestParameterException
	 * @exception RequestParameterExceptionがスローされます 。
	 */
	private HashMap<String, Object> editInMsgCmn(IRequestParameterReadOnly param) 
	throws RequestParameterException
	{
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		//電文ID
		paramMap.put(JCMConstants.TRANZACTION_ID_KEY, param.getTelegramID());
		
		//ユースケースID
		paramMap.put(JCMConstants.USECASE_ID_KEY, param.getUsecaseID());
		
		//オペレーションID
		paramMap.put(JCMConstants.OPERATION_ID_KEY, param.getOperationID());
		
		//サービス呼び出し区分
		paramMap.put(JCMConstants.CALL_TYPE_KEY, param.getCallType());
		
		//依頼先ホスト名
		paramMap.put(JCMConstants.CLIENT_HOST_NAME_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTNAME));
		
		//依頼元IPアドレス
		paramMap.put(JCMConstants.CLIENT_IP_ADDRESS_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTIP));
		
		//依頼元画面ID
		paramMap.put(JCMConstants.INVOKE_GAMEN_ID_KEY, param.getControlMapData(SCControlMapKeys.REQ_VIEWID));
		
		//オペレータID
		paramMap.put(JCMConstants.OPERATOR_ID_KEY, param.getControlMapData(SCControlMapKeys.OPERATOR_ID));
		
		return paramMap;
	}
	

	/**
	 * templateに対してEKK0191A010の条件に関する部分を設定する
	 * @param template 条件の設定先
	 * @param inHash 設定条件
	 * @param svcKeiNo サービス契約内訳番号
	 * @param requestParam アプリ固有のパラメータ
	 */
	private void mappingEKK0191A010InMsg(CAANMsg template, HashMap<String, Object> inHash, String svckeiucwkno)
	{

		//まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0191A010CBSMsg().getContents());
		
		//テンプレートID(SIFのID)
		template.set(EKK0191A010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0191A010);

		//機能コード--サービス契約内訳＜電話＞一覧照会
		template.set(EKK0191A010CBSMsg.FUNC_CODE, "4");

		//ＫＥＹ＿サービス契約番号
		template.set(EKK0191A010CBSMsg.KEY_SVC_KEI_UCWK_NO, svckeiucwkno);

		//ＫＥＹ＿世代登録年月日時分
		template.setNull(EKK0191A010CBSMsg.KEY_GENE_ADD_DTM);
	}
	
	/**
	 * templateに対してEKK0161A010の条件に関する部分を設定する
	 * @param template 条件の設定先
	 * @param inHash 設定条件
	 * @param svcKeiNo サービス契約内訳番号
	 * @param requestParam アプリ固有のパラメータ
	 */
	private void mappingEKK0161A010InMsg(CAANMsg template, HashMap<String, Object> inHash, String svckeiucwkno)
	{

		//まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0161A010CBSMsg().getContents());
		
		//テンプレートID(SIFのID)
		template.set(EKK0161A010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0161A010);

		//機能コード--サービス契約内訳一覧照会
		template.set(EKK0161A010CBSMsg.FUNC_CODE, "2");

		//ＫＥＹ＿サービス契約内訳番号
		template.set(EKK0161A010CBSMsg.KEY_SVC_KEI_UCWK_NO, svckeiucwkno);

		//ＫＥＹ＿世代登録年月日時分
		template.setNull(EKK0161A010CBSMsg.KEY_GENE_ADD_DTM);
		
		//ＫＥＹ＿予約適用年月日
		template.set(EKK0161A010CBSMsg.KEY_RSV_APLY_YMD, opeDate);
	}
	
	/**
	 * templateに対してEKK2101B501sの条件に関する部分を設定する
	 * @param template 条件の設定先
	 * @param inHash 設定条件
	 * @param svcKeiNo サービス契約内訳番号
	 * @param requestParam アプリ固有のパラメータ
	 */
	private void mappingEKK1041B0011InMsg(CAANMsg template, HashMap<String, Object> inHash, String svckeiucwkno)
	{

		//まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK1041B001CBSMsg().getContents());
		
		//テンプレートID(SIFのID)
		template.set(EKK1041B001CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK1041B001);

		//機能コード--サービス契約内訳一覧照会
		template.set(EKK1041B001CBSMsg.FUNC_CODE, "1");

		//ＫＥＹ＿サービス契約内訳番号
		template.set(EKK1041B001CBSMsg.KEY_SVC_KEI_UCWK_NO, svckeiucwkno);

		//ＫＥＹ＿オーダ種別コード
		template.set(EKK1041B001CBSMsg.KEY_ORDER_SBT_CD, "2");
		
		//ＫＥＹ＿サービスオーダコード
		template.set(EKK1041B001CBSMsg.KEY_SVC_ORDER_CD, "21");
		
	}
	
	/**
	 * templateに対してEKK1081B001の条件に関する部分を設定する
	 * @param template 条件の設定先
	 * @param inHash 設定条件
	 * @param svcKeiNo サービス契約番号
	 * @param requestParam アプリ固有のパラメータ
	 */
	private void mappingEKK1081B001InMsg(CAANMsg template, HashMap<String, Object> inHash, String svckeiucwkno, String svckeino)
	{

		//まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK1081B001CBSMsg().getContents());
		
		//テンプレートID(SIFのID)
		template.set(EKK1081B001CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK1081B001);

		//機能コード--オーダ発行条件一覧照会 ※　未完了のレコードのみ取得
		template.set(EKK1081B001CBSMsg.FUNC_CODE, "2");
		
		//ＫＥＹ＿サービス契約番号
		template.set(EKK1081B001CBSMsg.KEY_SVC_KEI_NO, svckeino);

		//ＫＥＹ＿オーダ種別コード
		template.set(EKK1081B001CBSMsg.KEY_ORDER_SBT_CD, "2");
		
		//ＫＥＹ＿サービスオーダコード
		template.set(EKK1081B001CBSMsg.KEY_SVC_ORDER_CD, "21");
		
	}
	
	/**
	 * templateに対してEKK2101B501の条件に関する部分を設定する
	 * @param template 条件の設定先
	 * @param inHash 設定条件
	 * @param svcKeiNo サービス契約番号
	 * @param requestParam アプリ固有のパラメータ
	 */
	private void mappingEKK2101B501InMsg(CAANMsg template, HashMap<String, Object> inHash, String svckeiucwkno, String svckeino)
	{

		//まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK2101B501CBSMsg().getContents());
		
		//テンプレートID(SIFのID) 住所変更中住所変更明細一覧照会２
		template.set(EKK2101B501CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK2101B501);

		//機能コード--住所変更中住所変更明細一覧照会２
		template.set(EKK2101B501CBSMsg.FUNC_CODE, "1");
		
		//ＫＥＹ＿サービス契約番号
		template.set(EKK2101B501CBSMsg.KEY_SVC_KEI_NO, svckeino);
		
	}
	
	/**
	 * templateに対してEKK2101B501の条件に関する部分を設定する
	 * @param template 条件の設定先
	 * @param inHash 設定条件
	 * @param svcKeiNo サービス契約番号
	 * @param requestParam アプリ固有のパラメータ
	 */
	private void mappingEKK0161B013InMsg(CAANMsg template, HashMap<String, Object> inHash, String svckeiucwkno, String telNo)
	{

		//まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0161B013CBSMsg().getContents());
		
		//テンプレートID(SIFのID)サービス契約内訳一覧照会（電話番号）
		template.set(EKK0161B013CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0161B013);

		//機能コード--サービス契約内訳一覧照会（電話番号）
		template.set(EKK0161B013CBSMsg.FUNC_CODE, "1");
		
		//ＫＥＹ＿電話番号
		template.set(EKK0161B013CBSMsg.KEY_TELNO, telNo);
		
	}
	
	/**
	 * templateに対してEKK2101B501の条件に関する部分を設定する
	 * @param template 条件の設定先
	 * @param inHash 設定条件
	 * @param svcKeiNo サービス契約番号
	 * @param requestParam アプリ固有のパラメータ
	 */
	private void mappingEKK2101B001InMsg(CAANMsg template, HashMap<String, Object> inHash, String svckeiucwkno, String adchgno)
	{

		//まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK2101B001CBSMsg().getContents());
		
		//テンプレートID(SIFのID) 住所変更明細一覧照会
		template.set(EKK2101B001CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK2101B001);

		//機能コード--住所変更中住所変更明細一覧照会２
		template.set(EKK2101B001CBSMsg.FUNC_CODE, "1");
		
		//ＫＥＹ＿住所変更番号
		template.set(EKK2101B001CBSMsg.KEY_ADCHG_NO, adchgno);
		
		//ＫＥＹ＿住所変更明細種別コード
		template.set(EKK2101B001CBSMsg.KEY_ADCHG_DTL_SBT_CD, "02");
	}
	
	/**
	 * templateに対してEKK2101B501の条件に関する部分を設定する
	 * @param template 条件の設定先
	 * @param inHash 設定条件
	 * @param svcKeiNo サービス契約番号
	 * @param requestParam アプリ固有のパラメータ
	 */
	private void mappingEKK0161B004InMsg(CAANMsg template, HashMap<String, Object> inHash, String svckeiucwkno, String svckeino)
	{

		//まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0161B004CBSMsg().getContents());
		
		//テンプレートID(SIFのID) 住所変更明細一覧照会
		template.set(EKK0161B004CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0161B004);

		//機能コード--住所変更中住所変更明細一覧照会２
		template.set(EKK0161B004CBSMsg.FUNC_CODE, "3");
		
		//ＫＥＹ＿住所変更番号
		template.set(EKK0161B004CBSMsg.KEY_SVC_KEI_NO, svckeino);
		
	}
	
	// ANK-4494-00-00 ADD START
	/**
	 * templateに対してETU0151A011の条件に関する部分を設定する
	 * @param template 条件の設定先
	 * @param inHash 設定条件
	 * @param telNo 電話番号
	 */
	private void mappingETU0151A011InMsg(CAANMsg template, HashMap<String, Object> inHash, String telNo)
	{

		// まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new ETU0151A011CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(ETU0151A011CBSMsg.TEMPLATEID, TEMPLATE_ID_ETU0151A011);

		// 機能コード--ポートアウト受付情報一意照会（サービス契約照会）
		template.set(ETU0151A011CBSMsg.FUNC_CODE, "1");

		// ＫＥＹ＿電話番号
		template.set(ETU0151A011CBSMsg.KEY_TELNO, telNo);
	}
	
	/**
	 * templateに対してEZM0121A010の条件に関する部分を設定する
	 * @param template 条件の設定先
	 * @param inHash 設定条件
	 * @param telNo 電話番号
	 */
	private void mappingEZM0121A010InMsg(CAANMsg template, HashMap<String, Object> inHash, String telNo)
	{

		// まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EZM0121A010CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(EZM0121A010CBSMsg.TEMPLATEID, TEMPLATE_ID_EZM0121A010);

		// 機能コード--電話番号一意照会
		template.set(EZM0121A010CBSMsg.FUNC_CODE, "1");

		// ＫＥＹ＿電話番号
		template.set(EZM0121A010CBSMsg.KEY_TELNO, telNo);
	}
	
	/**
	 * templateに対してETU0051B010の条件に関する部分を設定する
	 * @param template 条件の設定先
	 * @param inHash 設定条件
	 */
	private void mappingETU0051B010InMsg(CAANMsg template, HashMap<String, Object> inHash)
	{

		// まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new ETU0051B010CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(ETU0051B010CBSMsg.TEMPLATEID, TEMPLATE_ID_ETU0051B010);

		// 機能コード--通信事業者一覧照会
		template.set(ETU0051B010CBSMsg.FUNC_CODE, "1");

		// 検索処理パターン--通信事業者一覧照会
		template.set(ETU0051B010CBSMsg.SEARCH_TYPE, "1");

		// 最大検索件数--通信事業者一覧照会
		template.set(ETU0051B010CBSMsg.MAX_SEARCH_NUM, "100");

		// ＫＥＹ＿自社他社フラグ
		template.set(ETU0051B010CBSMsg.KEY_JISHA_TASHA_FLG, JKKStrConst.CD00189_JISHA);
	}
	
	/**
	 * templateに対してEZM0121E011の条件に関する部分を設定する
	 * @param template 条件の設定先
	 * @param inHash 設定条件
	 * @param telNo 電話番号
	 * @param updDtm 更新年月日時分秒
	 */
	private void mappingEZM0121E011InMsg(CAANMsg template, HashMap<String, Object> inHash, String telNo, String updDtm)
	{

		// まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EZM0121E011CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(EZM0121E011CBSMsg.TEMPLATEID, TEMPLATE_ID_EZM0121E011);

		// 機能コード--電話番号物理削除
		template.set(EZM0121E011CBSMsg.FUNC_CODE, "1");

		// 電話番号
		template.set(EZM0121E011CBSMsg.TELNO, telNo);

		// 更新前最終年月日時分秒
		template.set(EZM0121E011CBSMsg.LAST_UPD_DTM_BF, updDtm);
	}
	
	//	ANK-4494-00-00 Step2 DEL START
//	/**
//	 * templateに対してETU0151C010の条件に関する部分を設定する
//	 * @param template 条件の設定先
//	 * @param inHash 設定条件
//	 * @param eTU0151A011Hash ポートアウト受付情報一意照会（サービス契約照会）の結果のハッシュ
//	 * @param updDtm 更新年月日時分秒
//	 */
//	private void mappingETU0151C010InMsg(CAANMsg template, HashMap<String, Object> inHash, HashMap<String, Object> eTU0151A011Hash, String updDtm)
//	{
//
//		// まずは全条件のNullマッピング
//		fillCAANMSGNullMapping(template, new ETU0151C010CBSMsg().getContents());
//
//		// テンプレートID(SIFのID)
//		template.set(ETU0151C010CBSMsg.TEMPLATEID, TEMPLATE_ID_ETU0151C010);
//
//		// 機能コード--ポートアウト受付情報内容変更
//		template.set(ETU0151C010CBSMsg.FUNC_CODE, "1");
//
//		// ポートアウト番号
//		template.set(ETU0151C010CBSMsg.PORT_OUT_NO, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.PORT_OUT_NO));
//
//		// ポートアウトステータス
//		template.set(ETU0151C010CBSMsg.PORT_OUT_STAT, "050");
//
//		// サービス契約番号
//		template.set(ETU0151C010CBSMsg.SVC_KEI_NO, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.SVC_KEI_NO));
//
//		// サービス契約内訳番号
//		template.set(ETU0151C010CBSMsg.SVC_KEI_UCWK_NO, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.SVC_KEI_UCWK_NO));
//
//		// 統合オーダID
//		template.set(ETU0151C010CBSMsg.TOGO_ODR_ID, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.TOGO_ODR_ID));
//
//		// 廃止注文識別
//		template.set(ETU0151C010CBSMsg.HAISHI_CHUMN_SKBT, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.HAISHI_CHUMN_SKBT));
//
//		// 再番ポ申込識別
//		template.set(ETU0151C010CBSMsg.RE_BMP_MKM_SKBT, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.RE_BMP_MKM_SKBT));
//
//		// 事後投入識別
//		template.set(ETU0151C010CBSMsg.AFT_TONYU_SKBT, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.AFT_TONYU_SKBT));
//
//		// 複数番号有無
//		template.set(ETU0151C010CBSMsg.HUKUSU_NO_UM, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.HUKUSU_NO_UM));
//
//		// 番ポ対象回線数_番ポ廃止対象回線数
//		template.set(ETU0151C010CBSMsg.BMP_TG_KSSU_BMP_HISTG_KSSU, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.BMP_TG_KSSU_BMP_HISTG_KSSU));
//
//		// 自動廃止了承済番号数
//		template.set(ETU0151C010CBSMsg.AUTO_HAISHI_RYSHZM_NO_NUM, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.AUTO_HAISHI_RYSHZM_NO_NUM));
//
//		// グループID
//		template.set(ETU0151C010CBSMsg.GRP_ID, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.GRP_ID));
//
//		// お客様申込日
//		template.set(ETU0151C010CBSMsg.CUST_MSKM_DAY, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.CUST_MSKM_DAY));
//
//		// 移転先申込日
//		template.set(ETU0151C010CBSMsg.ITENS_MSKM_DAY, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.ITENS_MSKM_DAY));
//
//		// 変更前申込日
//		template.set(ETU0151C010CBSMsg.CHBF_MSKM_DAY, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.CHBF_MSKM_DAY));
//
//		// 受付拠点番号(取扱サービス)
//		template.set(ETU0151C010CBSMsg.UK_KYOTEN_NO_TRAT_SVC, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.UK_KYOTEN_NO_TRAT_SVC));
//
//		// 移転先事業者名
//		template.set(ETU0151C010CBSMsg.ITENS_JIGYOSHA_NM, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.ITENS_JIGYOSHA_NM));
//
//		// 移転先事業者番号
//		template.set(ETU0151C010CBSMsg.ITENS_JIGYOSHA_NO, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.ITENS_JIGYOSHA_NO));
//
//		// 移転先事業者ドメイン
//		template.set(ETU0151C010CBSMsg.ITENS_JIGYOSHA_DOMAIN, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.ITENS_JIGYOSHA_DOMAIN));
//
//		// 移転先事業者担当名
//		template.set(ETU0151C010CBSMsg.ITENS_JIGYOSHA_TNT_NM, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.ITENS_JIGYOSHA_TNT_NM));
//
//		// 移転先事業者電話番号
//		template.set(ETU0151C010CBSMsg.ITENS_JIGYOSHA_TELNO, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.ITENS_JIGYOSHA_TELNO));
//
//		// 記事欄1_移転元事業者向け
//		template.set(ETU0151C010CBSMsg.KIJIRAN_1_ITNM_JGSMK, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.KIJIRAN_1_ITNM_JGSMK));
//
//		// 記事欄2_移転元事業者向け
//		template.set(ETU0151C010CBSMsg.KIJIRAN_2_ITNM_JGSMK, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.KIJIRAN_2_ITNM_JGSMK));
//
//		// 記事欄1_番号取得事業者向け
//		template.set(ETU0151C010CBSMsg.KIJIRAN_1_NOSK_JGSMK, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.KIJIRAN_1_NOSK_JGSMK));
//
//		// 記事欄2_番号取得事業者向け
//		template.set(ETU0151C010CBSMsg.KIJIRAN_2_NOSK_JGSMK, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.KIJIRAN_2_NOSK_JGSMK));
//
//		// 自社内記事欄
//		template.set(ETU0151C010CBSMsg.JI_SHANAI_KIJIRAN, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.JI_SHANAI_KIJIRAN));
//
//		// ポートアウト契約者名義
//		template.set(ETU0151C010CBSMsg.PORT_OUT_KEISHA_NM, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.PORT_OUT_KEISHA_NM));
//
//		// ポートアウト契約者カナ名
//		template.set(ETU0151C010CBSMsg.PORT_OUT_KEISHA_KANA, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.PORT_OUT_KEISHA_KANA));
//
//		// 設置場所住所変更有無
//		template.set(ETU0151C010CBSMsg.SETPLACE_ADCHG_UM, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.SETPLACE_ADCHG_UM));
//
//		// 設置場所手投入識別_市区町村名
//		template.set(ETU0151C010CBSMsg.SETPLC_HTNY_SKBT_CITY_NM, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.SETPLC_HTNY_SKBT_CITY_NM));
//
//		// 設置場所手投入識別_大字_通称名
//		template.set(ETU0151C010CBSMsg.SETPLC_HTNY_SKBT_OAZTSU_NM, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.SETPLC_HTNY_SKBT_OAZTSU_NM));
//
//		// 設置場所手投入識別_字丁目名
//		template.set(ETU0151C010CBSMsg.SETPLC_HTNY_SKBT_AZCHO_NM, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.SETPLC_HTNY_SKBT_AZCHO_NM));
//
//		// 設置場所郵便番号
//		template.set(ETU0151C010CBSMsg.SETPLACE_PCD, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.SETPLACE_PCD));
//
//		// 設置場所都道府県名
//		template.set(ETU0151C010CBSMsg.SETPLACE_STATE_NM, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.SETPLACE_STATE_NM));
//
//		// 設置場所市区町村名
//		template.set(ETU0151C010CBSMsg.SETPLACE_CITY_NM, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.SETPLACE_CITY_NM));
//
//		// 設置場所大字通称名
//		template.set(ETU0151C010CBSMsg.SETPLACE_OAZTSU_NM, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.SETPLACE_OAZTSU_NM));
//
//		// 設置場所字丁目名
//		template.set(ETU0151C010CBSMsg.SETPLACE_AZCHO_NM, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.SETPLACE_AZCHO_NM));
//
//		// 設置場所番地号
//		template.set(ETU0151C010CBSMsg.SETPLACE_BNCHIGO, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.SETPLACE_BNCHIGO));
//
//		// 設置場所住所補記・建物名
//		template.set(ETU0151C010CBSMsg.SETPLACE_ADRTTM, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.SETPLACE_ADRTTM));
//
//		// お客様連絡先
//		template.set(ETU0151C010CBSMsg.CUST_RRKS, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.CUST_RRKS));
//
//		// 工事希望年月日
//		template.set(ETU0151C010CBSMsg.KOJI_KIBO_YMD, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.KOJI_KIBO_YMD));
//
//		// 工事実施方法
//		template.set(ETU0151C010CBSMsg.KOJI_JSSI_WAY, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.KOJI_JSSI_WAY));
//
//		// 想定切替時間帯
//		template.set(ETU0151C010CBSMsg.SOTEI_SWITCH_TIMEZ, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.SOTEI_SWITCH_TIMEZ));
//
//		// 工事時間帯区分
//		template.set(ETU0151C010CBSMsg.KOJI_TIMEZ_DIV, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.KOJI_TIMEZ_DIV));
//
//		// 移転元_代表事業者名
//		template.set(ETU0151C010CBSMsg.ITENM_DAIHYO_JIGYOSHA_NM, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.ITENM_DAIHYO_JIGYOSHA_NM));
//
//		// 移転元_代表事業者番号
//		template.set(ETU0151C010CBSMsg.ITENM_DAIHYO_JIGYOSHA_NO, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.ITENM_DAIHYO_JIGYOSHA_NO));
//
//		// 記載変更申込回数
//		template.set(ETU0151C010CBSMsg.KISAI_CHGE_MSKM_CNT, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.KISAI_CHGE_MSKM_CNT));
//
//		// 記載変更申込日
//		template.set(ETU0151C010CBSMsg.KISAI_CHGE_MSKM_DAY, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.KISAI_CHGE_MSKM_DAY));
//
//		// 記載変更申込理由
//		template.set(ETU0151C010CBSMsg.KISAI_CHGE_MSKM_RSN, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.KISAI_CHGE_MSKM_RSN));
//
//		// 旧統合オーダID
//		template.set(ETU0151C010CBSMsg.OLD_TOGO_ORDER_ID, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.OLD_TOGO_ORDER_ID));
//
//		// 申込超過日数
//		template.set(ETU0151C010CBSMsg.MSKM_CHOK_NISU, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.MSKM_CHOK_NISU));
//
//		// キャンセル日時
//		template.set(ETU0151C010CBSMsg.CANCEL_DATE, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.CANCEL_DATE));
//
//		// キャンセル識別
//		template.set(ETU0151C010CBSMsg.CANCEL_SKBT, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.CANCEL_SKBT));
//
//		// キャンセル応対日
//		template.set(ETU0151C010CBSMsg.CANCEL_OTAI_DAY, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.CANCEL_OTAI_DAY));
//
//		// キャンセル投入担当名
//		template.set(ETU0151C010CBSMsg.CANCEL_TONYU_TNT_NM, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.CANCEL_TONYU_TNT_NM));
//
//		// キャンセル投入担当電話番号
//		template.set(ETU0151C010CBSMsg.CANCEL_TONYU_TNT_TELNO, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.CANCEL_TONYU_TNT_TELNO));
//
//		// ポートアウトキャンセル理由
//		template.set(ETU0151C010CBSMsg.PORT_OUT_CNRE, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.PORT_OUT_CNRE));
//
//		// 取消日時
//		template.set(ETU0151C010CBSMsg.CL_DATE, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.CL_DATE));
//
//		// 取消識別
//		template.set(ETU0151C010CBSMsg.CL_SKBT, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.CL_SKBT));
//
//		// 受付方法識別
//		template.set(ETU0151C010CBSMsg.UWY_SKBT, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.UWY_SKBT));
//
//		// サーバー到着日時
//		template.set(ETU0151C010CBSMsg.SERVER_ARIV_DATE, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.SERVER_ARIV_DATE));
//
//		// 番ポオーダ番号
//		template.set(ETU0151C010CBSMsg.BMP_ORDER_NO, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.BMP_ORDER_NO));
//
//		// 関連オーダ数
//		template.set(ETU0151C010CBSMsg.KANREN_ORDER_CNT, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.KANREN_ORDER_CNT));
//
//		// 番ポ対象回線数_番号取得毎
//		template.set(ETU0151C010CBSMsg.BMP_TG_KISN_CNT_NOSK_GT, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.BMP_TG_KISN_CNT_NOSK_GT));
//
//		// 注文種類
//		template.set(ETU0151C010CBSMsg.CHUMN_KIND, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.CHUMN_KIND));
//
//		// オーダステータス
//		template.set(ETU0151C010CBSMsg.ORDER_STAT, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.ORDER_STAT));
//
//		// 番号取得_代表事業者名
//		template.set(ETU0151C010CBSMsg.NOSK_DAIHYO_JGS_NM, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.NOSK_DAIHYO_JGS_NM));
//
//		// 番号取得_代表事業者番号
//		template.set(ETU0151C010CBSMsg.NOSK_DAIHYO_JGS_NO, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.NOSK_DAIHYO_JGS_NO));
//
//		// 工事日再調整依頼日時
//		template.set(ETU0151C010CBSMsg.KJ_DAY_RE_ADJ_REQ_DATE, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.KJ_DAY_RE_ADJ_REQ_DATE));
//
//		// 工事日再調整依頼担当名
//		template.set(ETU0151C010CBSMsg.KJ_DAY_RE_ADJ_REQ_TNT_NM, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.KJ_DAY_RE_ADJ_REQ_TNT_NM));
//
//		// 工事日再調整依頼担当電話番号
//		template.set(ETU0151C010CBSMsg.KJ_DAY_RE_ADJ_REQ_TNT_TLN, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.KJ_DAY_RE_ADJ_REQ_TNT_TLN));
//
//		// 工事日再調整依頼記事欄
//		template.set(ETU0151C010CBSMsg.KJ_DAY_RE_ADJ_REQ_KIJIRAN, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.KJ_DAY_RE_ADJ_REQ_KIJIRAN));
//
//		// 電話番号
//		template.set(ETU0151C010CBSMsg.TELNO, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.TELNO));
//
//		// 識別番号
//		template.set(ETU0151C010CBSMsg.SKBT_NO, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.SKBT_NO));
//
//		// 内部識別番号
//		template.set(ETU0151C010CBSMsg.NAIBU_SKBT_NO, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.NAIBU_SKBT_NO));
//
//		// ポートアウト変更前識別番号
//		template.set(ETU0151C010CBSMsg.PORT_OUT_CHBF_SKBT_NO, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.PORT_OUT_CHBF_SKBT_NO));
//
//		// PSTN加入権
//		template.set(ETU0151C010CBSMsg.PSTN_KANYKN, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.PSTN_KANYKN));
//
//		// PSTNドライカッパ利用有無
//		template.set(ETU0151C010CBSMsg.PSTN_DRYCOPPER_USE_UM, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.PSTN_DRYCOPPER_USE_UM));
//
//		// PSTNドライカッパ回線ID
//		template.set(ETU0151C010CBSMsg.PSTN_DRYCOPPER_KISN_ID, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.PSTN_DRYCOPPER_KISN_ID));
//
//		// PSTNドライカッパ申込事業者番号
//		template.set(ETU0151C010CBSMsg.PSTN_DRYCOPPER_MSKMJIG_NO, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.PSTN_DRYCOPPER_MSKMJIG_NO));
//
//		// PSTNドライカッパ申込識別番号
//		template.set(ETU0151C010CBSMsg.PSTN_DRYCOPPER_MKM_SKBT_NO, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.PSTN_DRYCOPPER_MKM_SKBT_NO));
//
//		// 移転先事業者使用コード
//		template.set(ETU0151C010CBSMsg.ITNS_JGS_USE_CD, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.ITNS_JGS_USE_CD));
//
//		// PSTN休止票送付先
//		template.set(ETU0151C010CBSMsg.PSTN_PAUSE_HYO_SHS, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.PSTN_PAUSE_HYO_SHS));
//
//		// PSTN休止票送付先その他住所
//		template.set(ETU0151C010CBSMsg.PSTN_PAUSE_HYO_SHS_OTR_AD, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.PSTN_PAUSE_HYO_SHS_OTR_AD));
//
//		// PSTN移転先事業者確認ID
//		template.set(ETU0151C010CBSMsg.PSTN_ITENS_JIGYOSHA_CFM_ID, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.PSTN_ITENS_JIGYOSHA_CFM_ID));
//
//		// PSTN移転先工事タイプ_所内
//		template.set(ETU0151C010CBSMsg.PSTN_ITENS_KOJI_TYPE_SNAI, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.PSTN_ITENS_KOJI_TYPE_SNAI));
//
//		// PSTN移転先工事タイプ_所外
//		template.set(ETU0151C010CBSMsg.PSTN_ITENS_KOJI_TYPE_SGAI, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.PSTN_ITENS_KOJI_TYPE_SGAI));
//
//		// 記事欄_移転先事業者向け
//		template.set(ETU0151C010CBSMsg.KIJIRAN_ITENS_JGSMK, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.KIJIRAN_ITENS_JGSMK));
//
//		// オーダ可否判定提供可否
//		template.set(ETU0151C010CBSMsg.ODKH_JUDGE_TK_KH, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.ODKH_JUDGE_TK_KH));
//
//		// オーダ可否判定提供不可理由
//		template.set(ETU0151C010CBSMsg.ODKH_JUDGE_TK_FAIL_RSN, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.ODKH_JUDGE_TK_FAIL_RSN));
//
//		// オーダ可否判定提供不可理由_その他理由
//		template.set(ETU0151C010CBSMsg.ODKH_JDGTK_FRSN_OTR_RSN, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.ODKH_JDGTK_FRSN_OTR_RSN));
//
//		// 受付担当ID
//		template.set(ETU0151C010CBSMsg.UK_TNT_ID, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.UK_TNT_ID));
//
//		// 受付担当電話番号
//		template.set(ETU0151C010CBSMsg.UK_TNT_TELNO, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.UK_TNT_TELNO));
//
//		// 工事担当名
//		template.set(ETU0151C010CBSMsg.KOJI_TNT_NM, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.KOJI_TNT_NM));
//
//		// 工事担当電話番号
//		template.set(ETU0151C010CBSMsg.KOJI_TNT_TELNO, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.KOJI_TNT_TELNO));
//
//		// 提供可否
//		template.set(ETU0151C010CBSMsg.TK_KH, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.TK_KH));
//
//		// 提供不可理由
//		template.set(ETU0151C010CBSMsg.TK_FAIL_RSN, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.TK_FAIL_RSN));
//
//		// 提供不可理由_その他理由
//		template.set(ETU0151C010CBSMsg.TK_FAIL_RSN_OTR_RSN, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.TK_FAIL_RSN_OTR_RSN));
//
//		// 法人個人コード
//		template.set(ETU0151C010CBSMsg.HOJIN_KOJIN_CD, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.HOJIN_KOJIN_CD));
//
//		// ポートアウト受付取込年月日
//		template.set(ETU0151C010CBSMsg.PORT_OUT_UK_TRKM_YMD, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.PORT_OUT_UK_TRKM_YMD));
//
//		// 切替SOD発行年月日時分秒
//		template.set(ETU0151C010CBSMsg.SWITCH_SOD_HAKKO_DTM, JCCBPCommon.getOpeDateTimeStamp(null));
//
//		// 更新年月日時分秒(更新前)
//		template.set(ETU0151C010CBSMsg.UPD_DTM_BF, updDtm);
//	}
	//	ANK-4494-00-00 Step2 DEL END
	//	ANK-4494-00-00 Step2 ADD START
	/**
	 * templateに対してETU0151C030の条件に関する部分を設定する
	 * @param template 条件の設定先
	 * @param inHash 設定条件
	 * @param eTU0151A011Hash ポートアウト受付情報一意照会（サービス契約照会）の結果のハッシュ
	 * @param updDtm 更新年月日時分秒
	 */
	private void mappingETU0151C030InMsg(CAANMsg template, HashMap<String, Object> inHash, HashMap<String, Object> eTU0151A011Hash, String updDtm)
	{

		// まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new ETU0151C030CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(ETU0151C030CBSMsg.TEMPLATEID, TEMPLATE_ID_ETU0151C030);

		// 機能コード--ポートアウト受付情報ステータス変更
		template.set(ETU0151C030CBSMsg.FUNC_CODE, "1");

		// ポートアウト番号
		template.set(ETU0151C030CBSMsg.PORT_OUT_NO, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.PORT_OUT_NO));

		// ポートアウトステータス
		template.set(ETU0151C030CBSMsg.PORT_OUT_STAT, "050");

		// 更新年月日時分秒(更新前)
		template.set(ETU0151C030CBSMsg.UPD_DTM_BF, updDtm);
	}
	//	ANK-4494-00-00 Step2 ADD END
	
	/**
	 * templateに対してEZM0121C010の条件に関する部分を設定する
	 * @param template 条件の設定先
	 * @param inHash 設定条件
	 * @param	eTU0051B010Hash 通信事業者一覧照会の結果のハッシュ
	 * @param	eTU0151A011Hash ポートアウト受付情報一意照会（サービス契約照会）の結果のハッシュ
	 * @param	eZM0121A010Hash 電話番号一意照会の結果のハッシュ
	 * @param	telNo 電話番号
	 * @param	updDtm 更新年月日時分秒
	 */
	private void mappingEZM0121C010InMsg(
			CAANMsg template, 
			HashMap<String, Object> inHash, 
			HashMap<String, Object> eTU0051B010Hash, 
			HashMap<String, Object> eTU0151A011Hash, 
			HashMap<String, Object> eZM0121A010Hash, 
			String telNo, 
			String updDtm)
	{

		// まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EZM0121C010CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(EZM0121C010CBSMsg.TEMPLATEID, TEMPLATE_ID_EZM0121C010);

		// 機能コード--電話番号変更
		template.set(EZM0121C010CBSMsg.FUNC_CODE, "1");

		// 電話番号
		template.set(EZM0121C010CBSMsg.TELNO, telNo);

		// 局番
		template.set(EZM0121C010CBSMsg.KYOKU_NO, (String)eZM0121A010Hash.get(EZM0121A010CBSMsg1List.KYOKU_NO));

		// 番号コード
		template.set(EZM0121C010CBSMsg.NO_CD, (String)eZM0121A010Hash.get(EZM0121A010CBSMsg1List.NO_CD));

		// 割当通信事業者コード
		template.set(EZM0121C010CBSMsg.WARIATE_TSJGS_CD, (String)eZM0121A010Hash.get(EZM0121A010CBSMsg1List.WARIATE_TSJGS_CD));

		// 使用通信事業者コード
		template.set(EZM0121C010CBSMsg.USE_TSJGS_CD, (String)eZM0121A010Hash.get(EZM0121A010CBSMsg1List.USE_TSJGS_CD));

		// サービス区分
		template.set(EZM0121C010CBSMsg.SVC_DIV, (String)eZM0121A010Hash.get(EZM0121A010CBSMsg1List.SVC_DIV));

		// 引当制約種別コード
		template.set(EZM0121C010CBSMsg.HKAT_SIYK_SBT_CD, (String)eZM0121A010Hash.get(EZM0121A010CBSMsg1List.HKAT_SIYK_SBT_CD));

		// 引当制約設定年月日時分秒
		template.set(EZM0121C010CBSMsg.HKAT_SIYK_SET_DTM, (String)eZM0121A010Hash.get(EZM0121A010CBSMsg1List.HKAT_SIYK_SET_DTM));

		// 電話番号説明
		template.set(EZM0121C010CBSMsg.TLN_SETMEI, (String)eZM0121A010Hash.get(EZM0121A010CBSMsg1List.TLN_SETMEI));

		// 個人法人電話番号帯コード
		template.set(EZM0121C010CBSMsg.KOJIN_HOJIN_TLN_TAI_CD, (String)eZM0121A010Hash.get(EZM0121A010CBSMsg1List.KOJIN_HOJIN_TLN_TAI_CD));

		// Ｃ５サーバ号機識別コード
		template.set(EZM0121C010CBSMsg.C5_SERVER_GOKI_SKBT_CD, (String)eZM0121A010Hash.get(EZM0121A010CBSMsg1List.C5_SERVER_GOKI_SKBT_CD));

		// 電話番号適用開始年月日
		template.set(EZM0121C010CBSMsg.TELNO_TSTAYMD, (String)eZM0121A010Hash.get(EZM0121A010CBSMsg1List.TELNO_TSTAYMD));

		// 電話番号適用終了年月日
		template.set(EZM0121C010CBSMsg.TELNO_TENDYMD, (String)eZM0121A010Hash.get(EZM0121A010CBSMsg1List.TELNO_TENDYMD));

		// ＮＲＮ番号
		template.set(EZM0121C010CBSMsg.NRN_NO, (String)eZM0121A010Hash.get(EZM0121A010CBSMsg1List.NRN_NO));

		// 初回割当年月日
		template.set(EZM0121C010CBSMsg.FIRST_WARIATE_YMD, (String)eZM0121A010Hash.get(EZM0121A010CBSMsg1List.FIRST_WARIATE_YMD));

		// 更新前最終年月日時分秒
		template.set(EZM0121C010CBSMsg.LAST_UPD_DTM_BF, updDtm);

		// 初期個人法人電話番号帯コード
		template.set(EZM0121C010CBSMsg.SHK_KOJIN_HOJIN_TLN_TAI_CD, (String)eZM0121A010Hash.get(EZM0121A010CBSMsg1List.SHK_KOJIN_HOJIN_TLN_TAI_CD));

		// 電話番号取得通信事業者コード
		template.set(EZM0121C010CBSMsg.TLN_STKU_TSJGS_CD, (String)eZM0121A010Hash.get(EZM0121A010CBSMsg1List.TLN_STKU_TSJGS_CD));
		
		// 移転元通信事業者コード
		template.set(EZM0121C010CBSMsg.ITNM_TSJGS_CD, (String)eTU0051B010Hash.get(ETU0051B010CBSMsg1List.TSJGS_CD));

		// 移転先通信事業者コード
		template.set(EZM0121C010CBSMsg.ITNS_TSJGS_CD, (String)eTU0151A011Hash.get(ETU0151A011CBSMsg1List.ITENS_JIGYOSHA_NO));
	}
	// ANK-4494-00-00 ADD END
	
	// #86474_2025/03/12 ADD START
	/**
	 * templateに対してEZM0121C010の条件に関する部分を設定する
	 * @param template 条件の設定先
	 * @param	eZM0121A010Hash 電話番号一意照会の結果のハッシュ
	 * @param	telNo 電話番号
	 * @param	updDtm 更新年月日時分秒
	 */
	private void mappingEZM0121C010InMsg_2(
			CAANMsg template, 
			HashMap<String, Object> eZM0121A010Hash, 
			String telNo, 
			String updDtm)
	{

		// まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EZM0121C010CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(EZM0121C010CBSMsg.TEMPLATEID, TEMPLATE_ID_EZM0121C010);

		// 機能コード--電話番号変更
		template.set(EZM0121C010CBSMsg.FUNC_CODE, "1");

		// 電話番号
		template.set(EZM0121C010CBSMsg.TELNO, telNo);

		// 局番
		template.set(EZM0121C010CBSMsg.KYOKU_NO, (String)eZM0121A010Hash.get(EZM0121A010CBSMsg1List.KYOKU_NO));

		// 番号コード
		template.set(EZM0121C010CBSMsg.NO_CD, (String)eZM0121A010Hash.get(EZM0121A010CBSMsg1List.NO_CD));

		// 割当通信事業者コード
		template.set(EZM0121C010CBSMsg.WARIATE_TSJGS_CD, (String)eZM0121A010Hash.get(EZM0121A010CBSMsg1List.WARIATE_TSJGS_CD));

		// 使用通信事業者コード
		template.set(EZM0121C010CBSMsg.USE_TSJGS_CD, (String)eZM0121A010Hash.get(EZM0121A010CBSMsg1List.USE_TSJGS_CD));

		// サービス区分
		template.set(EZM0121C010CBSMsg.SVC_DIV, (String)eZM0121A010Hash.get(EZM0121A010CBSMsg1List.SVC_DIV));

		// 引当制約種別コード
		template.set(EZM0121C010CBSMsg.HKAT_SIYK_SBT_CD, (String)eZM0121A010Hash.get(EZM0121A010CBSMsg1List.HKAT_SIYK_SBT_CD));

		// 引当制約設定年月日時分秒
		template.set(EZM0121C010CBSMsg.HKAT_SIYK_SET_DTM, (String)eZM0121A010Hash.get(EZM0121A010CBSMsg1List.HKAT_SIYK_SET_DTM));

		// 電話番号説明
		template.set(EZM0121C010CBSMsg.TLN_SETMEI, (String)eZM0121A010Hash.get(EZM0121A010CBSMsg1List.TLN_SETMEI));

		// 個人法人電話番号帯コード
		template.set(EZM0121C010CBSMsg.KOJIN_HOJIN_TLN_TAI_CD, (String)eZM0121A010Hash.get(EZM0121A010CBSMsg1List.KOJIN_HOJIN_TLN_TAI_CD));

		// Ｃ５サーバ号機識別コード
		template.set(EZM0121C010CBSMsg.C5_SERVER_GOKI_SKBT_CD, (String)eZM0121A010Hash.get(EZM0121A010CBSMsg1List.C5_SERVER_GOKI_SKBT_CD));

		// 電話番号適用開始年月日
		template.set(EZM0121C010CBSMsg.TELNO_TSTAYMD, (String)eZM0121A010Hash.get(EZM0121A010CBSMsg1List.TELNO_TSTAYMD));

		// 電話番号適用終了年月日
		template.set(EZM0121C010CBSMsg.TELNO_TENDYMD, (String)eZM0121A010Hash.get(EZM0121A010CBSMsg1List.TELNO_TENDYMD));

		// ＮＲＮ番号
		template.set(EZM0121C010CBSMsg.NRN_NO, (String)eZM0121A010Hash.get(EZM0121A010CBSMsg1List.NRN_NO));

		// 初回割当年月日
		template.set(EZM0121C010CBSMsg.FIRST_WARIATE_YMD, (String)eZM0121A010Hash.get(EZM0121A010CBSMsg1List.FIRST_WARIATE_YMD));

		// 更新前最終年月日時分秒
		template.set(EZM0121C010CBSMsg.LAST_UPD_DTM_BF, updDtm);

		// 番ポ廃止依頼制御コード
		template.set(EZM0121C010CBSMsg.BMP_HAISHI_REQ_CTRL_CD, "0");
	}
	// #86474_2025/03/12 ADD END
	
	/**
	 * 持ちうるフィールドにNullマッピングで埋める
	 * @param msg 対象クラス
	 * @param contents 対応クラスのフィールド列挙
	 */
	private void fillCAANMSGNullMapping(CAANMsg msg, Object[][] contents)
	{
		
		//要素ごとのループ
		for(int i = 0 ; i < contents.length ; i++)
		{
			
			Object element = null;
			
			//キーに該当する箇所の取得
			element = contents[i][0];

			//Nullでマッピング
			msg.setNull((String)element);
			
		}
	}
	
	/**
	 * 条件部の共通する項目の設定
	 * @param param リクエストパラメータ
	 * @param template template 条件の設定先
	 * @throws RequestParameterException
	 */
	private void editBasicCmn(IRequestParameterReadOnly param, CAANMsg template)
	throws RequestParameterException
	{
		
		// オペレータ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);
		
	}
	
	/**
	 * <pre>
	 * サービスコンポーネント実行後に、IRequestParameterReadWriteに必要なデータをマッピングする
	 * 
	 * </pre>
	 * @param msgList CAANMsgクラス
	 * @param param 業務データ取得・書込用I/F
	 * @return 業務データ取得・書込用I/F
	 * @throws Throwable
	 */
	private void editResultRP(Map<?, ?> msgList, IRequestParameterReadWrite param) throws Throwable 
	{
		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// リターンコード取得
		Integer returnCode = (Integer)msgList.get(JCMConstants.RET_CD_INT_KEY);

		// テンプレートID、ステータス取得
		int templateStatus = template.getInt(JCMConstants.STATUS_INT_KEY);

		if (returnCode.intValue() != 0)
		{
			templateStatus = 9000;
		}
		if (JCMAPLConstMgr.getString("RETURN_MESSAGE_" + String.format("%1$04d", templateStatus)) == null)
		{
			templateStatus = 0;
		}

		int bpStatus = 0;
		Object obj = param.getControlMapData(SCControlMapKeys.RETURN_CODE);
		if (obj == null)
		{
			bpStatus = -1;
		}
		else
		{
			bpStatus = Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
		}

		if (templateStatus > bpStatus)
		{
			// BPにサービスコンポーネントのステータスを設定する。
			String formatStatus = String.format("%1$04d", templateStatus);
			String message = JCMAPLConstMgr.getString("RETURN_MESSAGE_" + formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
		}

		// エラー情報のマップを取得
		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));
	}
	
	/**
	 * エラーチェック処理です。
	 * <br>
	 * @param msgList サービスインタフェース実行結果
	 * @return void
	 * @throws SCCallException 
	 */
	private static void errChk(Map<?, ?> msgList) 
	throws SCCallException
	{
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// リターンコード取得
		Integer returnCode = (Integer)msgList.get(JCMConstants.RET_CD_INT_KEY);

		// ステータス
		int templateStatus = template.getInt(EKK0191A010CBSMsg.STATUS);

		if ((0 != returnCode.intValue()) || (0 != templateStatus))
		{
			String errMsg = "INVALID_RETURN_MESSAGE";
			throw new SCCallException(errMsg, String.valueOf(returnCode), templateStatus);
		}
	}
	
	/**
	 * EKK0191A010の結果をHashとして抽出する
	 * @param resultMsgs EKK0191A010のテンプレートリスト
	 * @return EKK0191A010の結果部分
	 */
	private HashMap<String, Object> mappingEKK0191A010SCOutMsg(CAANMsg[] resultMsgs)
	{
		
		HashMap<String, Object> retHash = null;
		CAANMsg msg = null;
		CAANMsg[] msgList = null;
		
		//結果の抽出
		msg = resultMsgs[0];
		
		//結果の取得
		msgList = 
			(CAANMsg[])msg.getMsgData().get(EKK0191A010CBSMsg.EKK0191A010CBSMSG1LIST);
		retHash = msgList[0].getMsgData();
		
		return retHash;
	}
	
	/**
	 * EKK0161A010の結果をHashとして抽出する
	 * @param resultMsgs EKK0161A010のテンプレートリスト
	 * @return EKK0161A010の結果部分
	 */
	private HashMap<String, Object> mappingEKK0161A010SCOutMsg(CAANMsg[] resultMsgs)
	{
		
		HashMap<String, Object> retHash = null;
		CAANMsg msg = null;
		CAANMsg[] msgList = null;
		
		//結果の抽出
		msg = resultMsgs[0];
		
		//結果の取得
		msgList = 
			(CAANMsg[])msg.getMsgData().get(EKK0161A010CBSMsg.EKK0161A010CBSMSG1LIST);
		retHash = msgList[0].getMsgData();
		
		return retHash;
	}
	
	/**
	 * EKK0161A010の結果をHashとして抽出する
	 * @param resultMsgs EKK0161A010のテンプレートリスト
	 * @return EKK0161A010の結果部分
	 */
	private CAANMsg[] mappingEKK1041B001SCOutMsg(CAANMsg[] resultMsgs)
	{
		
		HashMap<String, Object> retHash = null;
		CAANMsg msg = null;
		CAANMsg[] msgList = null;
		
		//結果の抽出
		msg = resultMsgs[0];
		
		//結果の取得
		msgList = 
			(CAANMsg[])msg.getMsgData().get(EKK1041B001CBSMsg.EKK1041B001CBSMSG1LIST);
		
		
		return msgList;
	}
	
	/**
	 * EKK0161A010の結果をHashとして抽出する
	 * @param resultMsgs EKK0161A010のテンプレートリスト
	 * @return EKK0161A010の結果部分
	 */
	private CAANMsg[] mappingEKK1081B001SCOutMsg(CAANMsg[] resultMsgs)
	{
		
		HashMap<String, Object> retHash = null;
		CAANMsg msg = null;
		CAANMsg[] msgList = null;
		
		//結果の抽出
		msg = resultMsgs[0];
		
		//結果の取得
		msgList = 
			(CAANMsg[])msg.getMsgData().get(EKK1081B001CBSMsg.EKK1081B001CBSMSG1LIST);
		
		
		return msgList;
	}
	
	/**
	 * EKK0161A010の結果をHashとして抽出する
	 * @param resultMsgs EKK0161A010のテンプレートリスト
	 * @return EKK0161A010の結果部分
	 */
	private CAANMsg[] mappingEKK2101B501SCOutMsg(CAANMsg[] resultMsgs)
	{
		
		HashMap<String, Object> retHash = null;
		CAANMsg msg = null;
		CAANMsg[] msgList = null;
		
		//結果の抽出
		msg = resultMsgs[0];
		
		//結果の取得
		msgList = 
			(CAANMsg[])msg.getMsgData().get(EKK2101B501CBSMsg.EKK2101B501CBSMSG1LIST);
		
		
		return msgList;
	}
	
	/**
	 * EKK0161A010の結果をHashとして抽出する
	 * @param resultMsgs EKK0161A010のテンプレートリスト
	 * @return EKK0161A010の結果部分
	 */
	private CAANMsg[] mappingEKK0161B013SCOutMsg(CAANMsg[] resultMsgs)
	{
		
		HashMap<String, Object> retHash = null;
		CAANMsg msg = null;
		CAANMsg[] msgList = null;
		
		//結果の抽出
		msg = resultMsgs[0];
		
		//結果の取得
		msgList = 
			(CAANMsg[])msg.getMsgData().get(EKK0161B013CBSMsg.EKK0161B013CBSMSG1LIST);
		
		
		return msgList;
	}
	
	/**
	 * EKK2101B001の結果をHashとして抽出する
	 * @param resultMsgs EKK0161A010のテンプレートリスト
	 * @return EKK0161A010の結果部分
	 */
	private CAANMsg[] mappingEKK2101B001SCOutMsg(CAANMsg[] resultMsgs)
	{
		
		HashMap<String, Object> retHash = null;
		CAANMsg msg = null;
		CAANMsg[] msgList = null;
		
		//結果の抽出
		msg = resultMsgs[0];
		
		//結果の取得
		msgList = 
			(CAANMsg[])msg.getMsgData().get(EKK2101B001CBSMsg.EKK2101B001CBSMSG1LIST);
		
		
		return msgList;
	}
	
	/**
	 * EKK0161A010の結果をHashとして抽出する
	 * @param resultMsgs EKK0161A010のテンプレートリスト
	 * @return EKK0161A010の結果部分
	 */
	private CAANMsg[] mappingEKK0161B004SCOutMsg(CAANMsg[] resultMsgs)
	{
		
		HashMap<String, Object> retHash = null;
		CAANMsg msg = null;
		CAANMsg[] msgList = null;
		
		//結果の抽出
		msg = resultMsgs[0];
		
		//結果の取得
		msgList = 
			(CAANMsg[])msg.getMsgData().get(EKK0161B004CBSMsg.EKK0161B004CBSMSG1LIST);
		
		
		return msgList;
	}

	// ANK-4494-00-00 ADD START
	/**
	 * ETU0151A011の結果をHashとして抽出する
	 * @param resultMsgs ETU0151A011のテンプレートリスト
	 * @return ETU0151A011の結果部分
	 */
	private HashMap<String, Object> mappingETU0151A011SCOutMsg(CAANMsg[] resultMsgs)
	{
		
		HashMap<String, Object> retHash = null;
		CAANMsg msg = null;
		CAANMsg[] msgList = null;
		
		// 結果の抽出
		msg = resultMsgs[0];
		
		// 結果の取得
		msgList = 
			(CAANMsg[])msg.getMsgData().get(ETU0151A011CBSMsg.ETU0151A011CBSMSG1LIST);
		retHash = msgList[0].getMsgData();
		
		return retHash;
	}
	
	/**
	 * EZM0121A010の結果をHashとして抽出する
	 * @param resultMsgs EZM0121A010のテンプレートリスト
	 * @return EZM0121A010の結果部分
	 */
	private HashMap<String, Object> mappingEZM0121A010SCOutMsg(CAANMsg[] resultMsgs)
	{
		
		HashMap<String, Object> retHash = null;
		CAANMsg msg = null;
		CAANMsg[] msgList = null;
		
		// 結果の抽出
		msg = resultMsgs[0];
		
		// 結果の取得
		msgList = 
			(CAANMsg[])msg.getMsgData().get(EZM0121A010CBSMsg.EZM0121A010CBSMSG1LIST);
		retHash = msgList[0].getMsgData();
		
		return retHash;
	}
	
	/**
	 * ETU0051B010の結果をHashとして抽出する
	 * @param resultMsgs ETU0051B010のテンプレートリスト
	 * @return ETU0051B010の結果部分
	 */
	private HashMap<String, Object> mappingETU0051B010SCOutMsg(CAANMsg[] resultMsgs)
	{
		
		HashMap<String, Object> retHash = null;
		CAANMsg msg = null;
		CAANMsg[] msgList = null;
		
		// 結果の抽出
		msg = resultMsgs[0];
		
		// 結果の取得
		msgList = 
			(CAANMsg[])msg.getMsgData().get(ETU0051B010CBSMsg.ETU0051B010CBSMSG1LIST);
		retHash = msgList[0].getMsgData();
		
		return retHash;
	}
	// ANK-4494-00-00 ADD END

	/**
	 * 業務データの取得処理です。（参照IF）
	 * <br>
	 * @param workMapKey 業務データのマップキー
	 * @param rsltShokai 一意照会、一覧照会の結果データ
	 * @return 業務データ
	 */
	protected CAANMsg[] getWorkData(String workMapKey, Map<?, ?> rsltShokai)
	{
		CAANMsg[] templateArray = null;
		CAANMsg[] templates = (CAANMsg[])rsltShokai.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];

		templateArray = parentTemplate.getCAANMsgList(workMapKey);
		
		return templateArray;
	}
	
	/**
	 * 業務データの取得処理です。(更新IF）
	 * 
	 * @param rslt SVIFの実行結果データ
	 * @return 業務データ
	 */
	private HashMap<String, Object> getWorkCAANMsg(Map<?, ?> rslt)
	{
		CAANMsg[] templates = (CAANMsg[])rslt.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];

		return parentTemplate.getMsgData();
	}
	
}