/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JCKSV902201CC
*   ソースファイル名：JCKSV902201CC.java
*   作成者          ：富士通
*   日付            ：2011年12月16日
*＜機能概要＞
*  お客様情報を登録（仮登録、本登録）します。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/12/16   FJ）関      新規作成
*   v5.00.00    2013/02/18   FJ）関      【ST1-2013-0000330】標準コンテンツ契約存在チェックを追加
*   v8.00.00    2014/03/25   FJ）塚田    【ANK-1962-00-00】S-IF入力項目変更対応
*   v8.00.01    2014/06/11   FJ）窪田    OM-2014-0002141対応
*   v8.00.02    2014/07/22   FJ）山下    OM-2014-0002427対応
*   v12.00.00	2015/01/09   FJ) 舩橋    【ANK-2381-00-00】eoIDなしの新規申込対応
*   v17.00.00   2015/07/30   FJ) 山岡    【ANK-2557-00-00_PMP再構築対応】eoID形式チェックを追加
*   v27.00.00   2016/10/10   FJ) 阮      ANK-2987-00-00対応
*   v33.00.00   2017/07/28   FJ) 辻本    【ANK-3194-00-00】コンテンツ同意・コンテンツ連絡先メールアドレスの挙動改善
*   v33.00.01   2017/08/25   FK) 辻本    【IT1-2017-0000107】メールアドレス仮登録中のお客様仮登録で、仮登録メールアドレスが本登録状態になる
*   v41.00.00   2019/04/16   FJ) 岡井    【ANK-3612-00-00】eoマイページからのお客さま情報自動更新機能改善
*   v47.00.00   2019/11/07   FJ) 三原    【ANK-3706-00-00】ｅｏＩＤログインのセキュリティ強化対応
*   v48.00.00   2020/02/17   FJ) 美濃原  【ANK-3814-00-00】eoIDログインセキュリティ強化フォロー対応
*   v48.00.00   2020/02/28   FJ) 三原    【ANK-3814-00-00】eoIDログインセキュリティ強化フォロー対応
*   v73.00.00   2024/11/22   FJ) 丸田    【ANK-4570-00-00】コンテンツ新規同時申込み時契約仕様見直し対応
*   v74.00.00   2025/03/03   FJ)佐々木   【ANK-4668-00-00】コンテンツ新規同時申込み時契約仕様見直し対応 メール文面変更対応
**********************************************************************/

package com.fujitsu.futurity.bp.custom.common;

import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.*;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpScParamHenshu.*;
import static eo.common.constant.JCKStrConst.*;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.fujitsu.futurity.bp.custom.constant.CKSV9022_CKSV9022OP_CKSV902201CC;
import com.fujitsu.futurity.bp.custom.constant.CKSV9022_CKSV9022OP_CKSV902201CC_mail_rcv_sette_list;
import com.fujitsu.futurity.bp.x21.bpm.db.SessionHandle;
import com.fujitsu.futurity.bp.x21.bpm.exception.RequestParameterException;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadWrite;
import com.fujitsu.futurity.bp.x21.cc.AbstractCommonComponent;
import com.fujitsu.futurity.bp.x21.cc.ICommonComponent;
import com.fujitsu.futurity.bp.x21.cc.exception.CCException;
import com.fujitsu.futurity.bp.x21.sc.exception.SCException;
// ANK-2381-00-00 ADD START
import com.fujitsu.futurity.common.x01.sc.SCControlMapKeys;
// ANK-2381-00-00 ADD END
import com.fujitsu.futurity.model.base.CAANMsg;

import eo.common.constant.JCKStrConst;
import eo.common.constant.JKKStrConst;
import eo.common.util.JCKLcsCommonUtil;
import eo.common.util.JKKStringUtil;
import eo.common.util.JZMCommonUtil;
import eo.ejb.cbs.cbsmsg.ECH0231B010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECH0231B010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0011A010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0011B050CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011B050CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0011B060CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011B060CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0011B120CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011B120CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0011C100CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0021C010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0021D010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0021D020CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0031C010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0121D010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0151D010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0201B002CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0201B002CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0201C030CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0201C060CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0201E010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECKA9020001CBSMsg;
import eo.ejb.cbs.cbsmsg.ECN0131D011CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0081B002CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1681A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1681A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK1681B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1681B001CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK1681C010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1681D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0111B040CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0111B040CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EZM0111E010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0321A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0321A010CBSMsg1List;

/**
 * お客様情報を登録（仮登録、本登録）します。
 * <BR>
 * @author 富士通
 */
public class JCKSV902201CC extends AbstractCommonComponent implements ICommonComponent
{
	/** 当CCの内部でしか使わないエラーコード */
	private static final String PMP_ERR_OTHER = "OTHER";
	
	// ANK-2381-00-00 ADD START
	/** OPERATOR-ID */
	private static final String OPE_MNV1 = "MVN1";
	private static final String OPE_MNV2 = "MVN2";
	private static final String OPE_MNV3 = "MVN3";
	// ANK-2381-00-00 ADD END
	
	// ANK-3612-00-00 ADD START
	/** OPERATOR-ID */
	private static final String OPE_PMP1 = "EIFPMP1";
	private static final String OPE_PMP2 = "EIFPMP2";
	private static final String OPE_PMP3 = "EIFPMP3";

	/** 都道府県・市区町村の最大文字数 */
	private static final int MAX_LEN_STATE_CITY = 16;
	// ANK-3612-00-00 ADD END
	
	// ANK-3194-00-00 ADD START
	/** 異動区分："00089"(コンテンツ利用規約同意登録) */
	private static final String IDO_DIV_00089 = JKKStrConst.CD00576_CONTENTS_AGREEMENT;
	/** 異動予約詳細コード："031"(お客様情報仮登録) */
	private static final String IDO_RSV_DTL_CD_031 = "031";
	/** 異動予約状態コード："02"(キャンセル済) */
	private static final String IDO_RSV_STAT_CD_02 = JKKStrConst.CD01168_IDO_RSV_STAT_CD_02;
	/** 異動予約状態コード："04"(異動予約対象外) */
	private static final String IDO_RSV_STAT_CD_04 = "04";
	// ANK-3194-00-00 ADD END
	
	// ANK-4668-00-00 ADD START
	/** オプトインメール受信設定反映除外フラグ 1(反映しない) */
	private static final String OPTINM_RCVST_HANEIJGI_FLG_1 = "1";
	// ANK-4668-00-00 ADD END
	
	/**
	 * お客様情報登録メイン処理。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite executeMain(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Throwable
	{
		// 入力パラメータ取得
		Map inMap = (Map)param.getData(fixedText);
		String workDiv = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.WORK_DIV);
		String sysid = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SYSID);
		String eoid = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.EOID);
		String grpJoinCd = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.GRP_JOIN_CD);
		String popid = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.POPID);
		String kanaSeiNm = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.KANA_SEI)
							+ PMP_NAME_DELIMITER + (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.KANA_NM);
		String telno = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.TELNO);
		String birthd = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.BIRTHD);
		String sex = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SEX);
		String rrksMlad = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.RRKS_MLAD);
		String chgechuMlad = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.CHGECHU_MLAD);
		String pwdReminderQsCd = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.PWD_REMINDER_QS_CD);
		String pwdReminderAns = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.PWD_REMINDER_ANS);
		String nkname = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.NKNAME);
		String ispKssaiSvcKeiNo = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.ISP_KSSAI_SVC_KEI_NO);
		String rcvSetSvcKeiNo = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SVC_KEI_NO);
		String rcvSetTsyrnSvkeiCdSeq = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.TSYRN_SVKEI_CD_SEQ);
		List mailRcvSetteList = (List)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.MAIL_RCV_SETTE_LIST);
		//String ckUpdDtm = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.CK_UPD_DTM); // 使用しない
		String kkUpdDtm = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.KK_UPD_DTM);
// ANK-4570-00-00 ADD START
		String ispKssaiAddNasiFlg = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.ISP_KSSAI_ADD_NASI_FLG);
// ANK-4570-00-00 ADD END
// ANK-4668-00-00 ADD START
		String optinmRcvstHaneiJgiFlg = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.OPTINM_RCVST_HANEI_JGI_FLG);
// ANK-4668-00-00 ADD END

		// リターンコード初期化
		String returnCd = PMP_NORMAL_END;

		//***************************************************
		// 内部で使用する変数の初期化
		//***************************************************
		String opeDate = JCCBPCommon.getOpeDate(null);
		Map<String, Object> nowCustMap = new HashMap<String, Object>();
		// ANK-3814-00-00 DEL START
		// ANK-3706-00-00 ADD START
		//Map<String, Object> nowCustMap2 = new HashMap<String, Object>();
		// ANK-3706-00-00 ADD END
		// ANK-3814-00-00 DEL END
		String funcCd = null;
		boolean chkResult = false;
		String memberSbtCd = null;
		String updDtmSysid = null;
		String workParamId = null;
		String mstSysid = null;
		String mstMemberSbtCd = null;
		String mstKeishaTypeCd = null;
		String mstGrpCd = null;
		String retContCustNm = null;
		String trgtMlad = null;
		String trgtTelno = null;
		String contSvcKeiNo = null;
		boolean isEoidChge = false;
		boolean isSameInitEoid = false;
		boolean isNknmChge = false;
		String kepgKjnifTratDoiUm = null;
		String kepgKjnifTratDoiYmd = null;
		String kepgKjniftFfg = null;
		String kepgKjniftFfgChgYmd = null;
		String kepgKjniftFfgChgUwyCd = null;
		String kepgKjniftJokyoCd = null;
		String kepgKjniftStaYmd = null;
		String kepgKjniftRscd = null;
		String kepgKjniftRscdChgYmd = null;
		// ANK-3194-00-00 ADD START
		String kariAddPsbKigen = "";
		// ANK-3194-00-00 ADD END
		// ANK-3814-00-00 DEL START
		// ANK-3706-00-00 ADD START
		//String keishaTelno = "";
		// ANK-3706-00-00 ADD END
		// ANK-3814-00-00 DEL END
		
		// ANK-2381-00-00 ADD START
		// オペレーターID
		String ope_id = (String)param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		boolean run_flg = true;
		// MVNO実行判定（SOAP連携）
		if (OPE_MNV1.equals(ope_id) || OPE_MNV2.equals(ope_id) || OPE_MNV3.equals(ope_id)) {
			run_flg = false;
		}
		// ANK-2381-00-00 ADD END

		// ANK-3612-00-00 ADD START
		// サービスIDを取得
		String serviceId = param.getUsecaseID();
		// ANK-3612-00-00 ADD END

		//***************************************************
		// PMP連携用排他制御
		//***************************************************
		Map result = callECKA9020001(handle, param, sysid, "2");
		if (isSuccess(result))
		{
			String errFlg = getResultString(result, ECKA9020001CBSMsg.LOCK_ERR_FLG);
			if (!"0".equals(errFlg))
			{
				returnCd = PMP_ERR_EXCLUSION;
			}
		}
		else
		{
			returnCd = PMP_ERR_OTHER;
		}
		
		//***************************************************
		// 最終更新日時チェック
		//***************************************************
		String lastCkUpdDtm = null;
		String lastKkUpdDtm = null;
		if (JCKBPCommon.inArray(returnCd, PMP_NORMAL_END, PMP_ERR_EXCLUSION))
		{
			// 業務区分：「3」（マスター会員）の場合
			if ("3".equals(workDiv))
			{
				result = callECK0011B120(handle, param, sysid);
				if (isSuccess(result))
				{
					String mapKeyPre = ECK0011B120CBSMsg.ECK0011B120CBSMSG1LIST + "[0].";
					String chkCkUpdDtm = getResultString(result, mapKeyPre + ECK0011B120CBSMsg1List.CK_UPD_DTM);
					String chkKkUpdDtm = getResultString(result, mapKeyPre + ECK0011B120CBSMsg1List.KK_UPD_DTM);
					updDtmSysid  = chkCkUpdDtm;
					if ((!kkUpdDtm.equals(chkKkUpdDtm)) || (PMP_ERR_EXCLUSION.equals(returnCd)))
					{
						if ((chkCkUpdDtm  != null) && (chkKkUpdDtm != null))
						{
							lastCkUpdDtm = chkCkUpdDtm;
							lastKkUpdDtm = chkKkUpdDtm;
							returnCd = PMP_ERR_EXCLUSION;   // 更新日時が異なる時は排他エラー
						}
						else
						{
							returnCd = PMP_ERR_NODATA;   // 該当データが存在しない場合はデータ無しエラー
						}
					}
				}
				else
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}
			}
		}

		// ANK-3814-00-00 DEL START
//		// ANK-3706-00-00 ADD START
//		//***************************************************
//		// お客様情報取得(2)
//		//***************************************************
//		if (PMP_NORMAL_END.equals(returnCd))
//		{
//			// お客様情報照会(PMP連携用)SC呼出
//			result = callECK0011B050(handle, param, "1", sysid);
//			
//			if (isSuccess(result))
//			{
//				CAANMsg[] dataList = getResultMsgList(result, ECK0011B050CBSMsg.ECK0011B050CBSMSG1LIST);
//				if (dataList != null && dataList.length != 0)
//				{
//					// お客様情報照会(PMP連携用)結果マップ(2)を取得
//					nowCustMap2 = copyMsgToMap(dataList[0], ECK0011B050CBSMsg1List.class, ECK0011B050CBSMsg1List.class);
//					if (nowCustMap2 != null)
//					{
//						// 契約者電話番号
//						keishaTelno = (String)nowCustMap2.get(ECK0011B050CBSMsg1List.KEISHA_TELNO);
//					}
//				}
//			}
//		}
//		// ANK-3706-00-00 ADD END
		// ANK-3814-00-00 DEL END

		//***************************************************
		// お客様情報取得
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「3」（マスター会員）の場合
			if ("3".equals(workDiv))
			{
				// お客様情報照会(PMP連携用)SC呼出
				result = callECK0011B050(handle, param, "1", sysid);
				if (isSuccess(result))
				{
					CAANMsg[] dataList = getResultMsgList(result, ECK0011B050CBSMsg.ECK0011B050CBSMSG1LIST);
					if (dataList == null || dataList.length == 0)
					{
						returnCd = PMP_ERR_NODATA;   // データなし
					}
					else
					{
						// お客様情報照会(PMP連携用)結果マップを取得
						nowCustMap = copyMsgToMap(dataList[0], ECK0011B050CBSMsg1List.class, ECK0011B050CBSMsg1List.class);
						// eoID変更有無
						isEoidChge = !eoid.equals((String)nowCustMap.get(ECK0011B050CBSMsg1List.EOID));
						// ニックネーム変更有無
						isNknmChge = !nullToEmpty(nkname).equals(nullToEmpty((String)nowCustMap.get(ECK0011B050CBSMsg1List.NKNAME)));
						// 変更前eoIDが初期eoIDと同じか
						isSameInitEoid = ((String)nowCustMap.get(ECK0011B050CBSMsg1List.EOID)).equals(((String)nowCustMap.get(ECK0011B050CBSMsg1List.SHK_EOID)));
						//標準コンテンツサービス契約番号
						contSvcKeiNo = (String)nowCustMap.get(ECK0011B050CBSMsg1List.SVC_KEI_NO);
						// ANK-3814-00-00 DEL START
						// ANK-3706-00-00 ADD START
						// 契約者電話番号
						// keishaTelno = (String)nowCustMap2.get(ECK0011B050CBSMsg1List.KEISHA_TELNO);
						// ANK-3706-00-00 ADD END
						// ANK-3814-00-00 DEL END
					}
				}
				else
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}

			}
		}

		//***************************************************
		// 標準コンテンツ契約存在チェック
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「3」（マスター会員）
			if ("3".equals(workDiv))
			{
				// 標準コンテンツ契約が設定済みの場合
				if (!JCKBPCommon.isNullOrBlank(contSvcKeiNo))
				{
					returnCd = PMP_ERR_OTHER;	// システムエラー
				}
			}
		}

		//***************************************************
		// グループ入会コード存在チェック
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「0」（ファミリー会員(個人、法人)：グループ入会コード入力）
			if ("0".equals(workDiv))
			{
				// グループ入会コード存在チェック
				chkResult = checkGrpJoinCdPwd(handle, param, "1", grpJoinCd, "");
				if (!chkResult)
				{
					returnCd = PMP_ERR_NO_GRP;	// グループ入会コードなしエラー
				}
			}
		}

		//***************************************************
		// POPID存在チェック
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「1」（ファミリー会員(個人、法人)：POPID入力）
			if ("1".equals(workDiv))
			{
				// POPID存在チェック
				chkResult = checkPopId(handle, param, "1", popid);
				if (!chkResult)
				{
					returnCd = PMP_ERR_POPID_AUTH;	// POPID認証エラー
				}
			}
		}

		//***************************************************
		// マスター会員情報照会
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「0」（ファミリー会員(個人、法人)：グループ入会コード入力）、「1」（ファミリー会員(個人、法人)：POPID入力）
			if ("0".equals(workDiv) || "1".equals(workDiv))
			{
				// 機能コードを設定（"3":グループ入会コード検索、"4":POPID検索）
				funcCd = "0".equals(workDiv) ? "3" : "4";

				// マスター会員情報照会（PMP連携用）SC呼出
				result = callECK0011B060(handle, param, funcCd, null, null, popid, null, null, grpJoinCd, null);
				if (isSuccess(result))
				{
					CAANMsg[] dataList = getResultMsgList(result, ECK0011B060CBSMsg.ECK0011B060CBSMSG1LIST);
					if ((dataList == null) || (dataList.length == 0))
					{
						returnCd = PMP_ERR_NODATA;   // データなし
					}
					else
					{
						String mapKeyPre = ECK0011B060CBSMsg.ECK0011B060CBSMSG1LIST + "[0].";
						mstSysid = getResultString(result, mapKeyPre + ECK0011B060CBSMsg1List.SYSID);
						mstMemberSbtCd = getResultString(result, mapKeyPre + ECK0011B060CBSMsg1List.MEMBER_SBT_CD);
						mstKeishaTypeCd = getResultString(result, mapKeyPre + ECK0011B060CBSMsg1List.KEISHA_TYPE_CD);
						mstGrpCd = getResultString(result, mapKeyPre + ECK0011B060CBSMsg1List.GRP_CD);
					}
				}
			}
		}

		//***************************************************
		// 会員種別コード取得
		//***************************************************
		// 業務区分：「0」（ファミリー会員(個人、法人)：グループ入会コード入力）、「1」（ファミリー会員(個人、法人)：POPID入力）
		if ("0".equals(workDiv) || "1".equals(workDiv))
		{
			// マスター会員（個人）の場合
			if (MMB_SBT_CD_MASTER_KOJIN.equals(mstMemberSbtCd))
			{
				// ファミリー会員（個人）
				memberSbtCd = MMB_SBT_CD_FAMILY_KOJIN;
			}
			// 上記以外の場合
			else
			{
				// ファミリー会員（法人）
				memberSbtCd = MMB_SBT_CD_FAMILY_HOJIN;
			}
		}
		// 業務区分：「2」（オープン会員）の場合
		else if ("2".equals(workDiv))
		{
			memberSbtCd = MMB_SBT_CD_OPEN;
		}
		// 上記以外（業務区分：「3」（マスター会員））の場合
		else
		{
			// 上記「お客様情報照会（PMP連携用）」で取得した会員種別
			memberSbtCd = (String)nowCustMap.get(ECK0011B050CBSMsg1List.MEMBER_SBT_CD);
		
		}

		//***************************************************
		// 必須チェック
		//***************************************************
		// 会員種別コードがマスター会員（法人）の場合、必須項目チェックを行う。
		if (MMB_SBT_CD_MASTER_HOJIN.equals(memberSbtCd))
		{
			String[] chkItem = new String[]{CKSV9022_CKSV9022OP_CKSV902201CC.SEI,
												CKSV9022_CKSV9022OP_CKSV902201CC.NM,
												CKSV9022_CKSV9022OP_CKSV902201CC.KANA_SEI,
												CKSV9022_CKSV9022OP_CKSV902201CC.KANA_NM,
												CKSV9022_CKSV9022OP_CKSV902201CC.SEX,
												CKSV9022_CKSV9022OP_CKSV902201CC.PCD,
												CKSV9022_CKSV9022OP_CKSV902201CC.AD_STATE_CITY,
												CKSV9022_CKSV9022OP_CKSV902201CC.AD_OTHER,
												CKSV9022_CKSV9022OP_CKSV902201CC.BIRTHD};

			for (String itemKey : chkItem)
			{
				String itemValue = (String)inMap.get(itemKey);
				if (JCKBPCommon.isNullOrBlank(itemValue))
				{
					returnCd = PMP_ERR_PARAM;  //パラメータ不正エラー
					break;
				}
			}
		}

		//***************************************************
		// 更新対象メールアドレス取得
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 処理区分：「01」（お客様情報仮登録）かつ業務区分：「3」（マスター会員）
			if ("01".equals(getTrnDiv()) && "3".equals(workDiv))
			{
				// 変更手続き中メールアドレス
				trgtMlad = chgechuMlad;
			}
			else
			{
				// 連絡先メールアドレス
				trgtMlad = rrksMlad;
			}
		}

		//***************************************************
		// 更新対象電話番号取得
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 会員種別がマスター会員(個人)の場合
			if (MMB_SBT_CD_MASTER_KOJIN.equals(memberSbtCd))
			{
				// 契約者電話番号
				trgtTelno = (String)nowCustMap.get(ECK0011B050CBSMsg1List.KEISHA_TELNO);
			}
			else
			{
				// 入力パラメータの電話番号
				trgtTelno = telno;
			}
		}

		//***************************************************
		// ファミリー会員登録件数チェック
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「0」（ファミリー会員(個人、法人)＝グループ入会コード入力）、「1」（ファミリー会員(個人、法人)＝POPID入力）
			if ("0".equals(workDiv) || "1".equals(workDiv))
			{
				// 機能コードを設定（"1":グループ入会コード検索、"2":POPID検索）
				funcCd = "0".equals(workDiv) ? "1" : "2";

				// マスター会員の会員種別コードから業務パラメータIDを決定する。
				workParamId = MMB_SBT_CD_MASTER_KOJIN.equals(mstMemberSbtCd) ? WORK_PARAM_ID_FAMILY_KJ_MMB_CNT : WORK_PARAM_ID_FAMILY_HJ_MMB_CNT;

				// ファミリー会員登録件数チェック
				chkResult = checkFamilyMmbAddCnt(handle, param, funcCd, grpJoinCd, popid, "", "", workParamId);
				if (!chkResult)
				{
					returnCd = PMP_ERR_FAMILY_MMB_CNT;	// ファミリー会員登録件数超過エラー
				}
			}
		}

		//***************************************************
		// eoID更新日チェック
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「3」（マスター会員）、かつeoIDに変更があり、変更前eoID≠初期eoID
			if ("3".equals(workDiv) && isEoidChge && !isSameInitEoid)
			{
				// 変更不可期間チェック
				chkResult = checkUpdFailPrd(handle, param, opeDate, WORK_PARAM_ID_EOID_CHGFAIL_DAYS, (String)nowCustMap.get(ECK0011B050CBSMsg1List.EOID_CHGE_YMD));
				if (!chkResult)
				{
					returnCd = PMP_ERR_EOID_TERM;	// eoID規定の期間以内の更新エラー
				}
			}
		}

		//***************************************************
		// サービス契約番号存在チェック
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「3」（マスター会員）、かつパラメータのメール受信設定.サービス契約番号≠"ZZZZZZZZZZ"
			// ANK-2987-00-00 MOD START
//			if ("3".equals(workDiv) && !SVC_KEI_NO_RRKS_MLAD.equals(rcvSetSvcKeiNo))
			if ("3".equals(workDiv) && (rcvSetSvcKeiNo != null && !"".equals(rcvSetSvcKeiNo)) && !SVC_KEI_NO_RRKS_MLAD.equals(rcvSetSvcKeiNo))
			// ANK-2987-00-00 MOD END
			{
				// サービス契約番号存在チェック
				chkResult = checkSvcKeiNo(handle, param, sysid, rcvSetSvcKeiNo);
				if (!chkResult)
				{
					returnCd = PMP_ERR_NODATA_SVCKEINO;	// サービス契約番号なしエラー
				}
			}
		}

		//***************************************************
		// 回線契約状態チェック
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「3」（マスター会員）
			if ("3".equals(workDiv))
			{
				// 回線契約状態チェック
				chkResult = checkKisnKeiStat(handle, param, ispKssaiSvcKeiNo);
				if (!chkResult)
				{
					returnCd = PMP_ERR_STAT_KSN_KEI;	// 回線契約状態チェックエラー（会員状態・ステータス）
				}
			}
		}

		//***************************************************
		// eoID重複チェック
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「3」（マスター会員）でeoIDが変更されている場合、または業務区分：「3」（マスター会員）以外
			if (("3".equals(workDiv) && isEoidChge) || (!"3".equals(workDiv)))
			{
				// eoID重複チェック
				chkResult = checkDupEoId(handle, param, eoid);
				if (!chkResult)
				{
					returnCd = PMP_ERR_EOID_DUP;	// eoID重複チェック
				}
			}
		}

		//***************************************************
		// ニックネーム重複チェック
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// ニックネーム≠NULL かつ（業務区分：「3」（マスター会員）でニックネームが変更されている場合、または業務区分：「3」（マスター会員）以外）
			if (!JCKBPCommon.isNullOrBlank(nkname) && ("3".equals(workDiv) && isNknmChge) || (!"3".equals(workDiv)))
			{
				// ニックネーム重複チェック
				chkResult = checkDupNkName(handle, param, nkname);
				if (!chkResult)
				{
					returnCd = PMP_ERR_NKNM_DUP;	// ニックネーム重複エラー
				}
			}
		}

		//***************************************************
		// 拒否メールドメインチェック
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
// ANK-2987-00-00 MOD START
//			String mailDomain = trgtMlad.substring(trgtMlad.indexOf("@") + 1);
//			// 拒否メールドメインチェック
//			chkResult = checkKyohiMailDomain(handle, param, opeDate, mailDomain);
//			if (!chkResult)
//			{
//				returnCd = PMP_ERR_REJECT_DOMAIN;	// 拒否メールドメインチェックエラー
//			}
			if ("3".equals(workDiv) && (trgtMlad == null || "".equals(trgtMlad)))
			{
				// 『拒否メールドメインチェック』を見送る
			}
			else
			{
				String mailDomain = trgtMlad.substring(trgtMlad.indexOf("@") + 1);
				// 拒否メールドメインチェック
				chkResult = checkKyohiMailDomain(handle, param, opeDate, mailDomain);
				if (!chkResult)
				{
					returnCd = PMP_ERR_REJECT_DOMAIN;	// 拒否メールドメインチェックエラー
				}
// ANK-2987-00-00 MOD END
			}
		}

		//***************************************************
		// eoID禁則文字チェック
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「3」（マスター会員）でeoIDが変更されている場合、または業務区分：「3」（マスター会員）以外
			if (("3".equals(workDiv) && isEoidChge) || (!"3".equals(workDiv)))
			{
				// eoID禁則文字チェック呼出
				chkResult = checkEoidErrMoji(handle, param, eoid);
				if (!chkResult)
				{
					returnCd = PMP_ERR_EOID_PROHIBITION;	// eoID禁則文字チェックエラー
				}
			}
		}
		
		/*---< ANK-2557-00-00 add start >---*/
		//***************************************************
		// eoID半角英数字11チェック
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 業務区分：「3」（マスター会員）でeoIDが変更されている場合、または業務区分：「3」（マスター会員）以外
			if (("3".equals(workDiv) && isEoidChge) || (!"3".equals(workDiv)))
			{
				// eoID半角英数字11チェック呼出
				chkResult = enNumber11Check(handle, param, eoid);
				if (!chkResult)
				{
					returnCd = PMP_ERR_EOID_PROHIBITION;	// eoID半角英数字11チェックエラー
				}
			}
		}
		/*---< ANK-2557-00-00 add end >---*/
		
		//***************************************************
		// 同一人チェック
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
// ANK-2987-00-00 MOD START
//			String chkKanaNm = "";
//			String chkBirthd = "";
//			// 業務区分＝3 かつ 会員種別が マスター会員（個人）
//			if ("3".equals(workDiv) && MMB_SBT_CD_MASTER_KOJIN.equals(memberSbtCd))
//			{
//				chkKanaNm = (String)nowCustMap.get(ECK0011B050CBSMsg1List.CUST_KANA);
//				chkBirthd = (String)nowCustMap.get(ECK0011B050CBSMsg1List.CUST_BIRTHD);
//			}
//			else
//			{
//				chkKanaNm = kanaSeiNm;
//				chkBirthd = birthd;
//			}
//			// 同一人チェック
//			chkResult = checkSameMmb(handle, param, chkKanaNm, chkBirthd, trgtMlad, sysid);
//			if (!chkResult)
//			{
//				returnCd = PMP_ERR_MMB_DUP;	// フリガナ氏名、生年月日、連絡用アドレス重複エラー
//			}
			// 同一人チェック
			if ("3".equals(workDiv) && (trgtMlad == null || "".equals(trgtMlad)))
			{
				// 同一人チェックを見送る
			}
			else
			{
				String chkKanaNm = "";
				String chkBirthd = "";
				// 業務区分＝3 かつ 会員種別が マスター会員（個人）
				if ("3".equals(workDiv) && MMB_SBT_CD_MASTER_KOJIN.equals(memberSbtCd))
				{
					chkKanaNm = (String)nowCustMap.get(ECK0011B050CBSMsg1List.CUST_KANA);
					chkBirthd = (String)nowCustMap.get(ECK0011B050CBSMsg1List.CUST_BIRTHD);
				}
				else
				{
					chkKanaNm = kanaSeiNm;
					chkBirthd = birthd;
				}
				chkResult = checkSameMmb(handle, param, chkKanaNm, chkBirthd, trgtMlad, sysid);
				if (!chkResult)
				{
					returnCd = PMP_ERR_MMB_DUP;	// フリガナ氏名、生年月日、連絡用アドレス重複エラー
				}
			}
// ANK-2987-00-00 MOD END
		}

		// ANK-3194-00-00 ADD START
		// 業務区分：「3」(マスター会員) の場合
		if ("3".equals(workDiv))
		{
			// お客様情報仮登録データ削除
			if (PMP_NORMAL_END.equals(returnCd))
			{
// ▽▽▽ IT1-2017-0000107 Modify START
//				Map<String, String> resMap = delKariCustInfo(handle, param, nowCustMap, sysid, updDtmSysid, opeDate);
				// 変更手続き中メールアドレスが指定されているかどうかの引数を追加
				Map<String, String> resMap = delKariCustInfo(handle, param, nowCustMap, sysid, updDtmSysid, opeDate, !JCKBPCommon.isNullOrBlank(chgechuMlad));
// △△△ IT1-2017-0000107 Modify END
				updDtmSysid = resMap.get("upd_dtm_sysid");
				returnCd = resMap.get("return_cd");
			}
		}

		// 処理区分：「01」(お客様情報仮登録) かつ 業務区分：「3」(マスター会員) の場合
		if ("01".equals(getTrnDiv()) && "3".equals(workDiv))
		{
			// お客様情報仮登録
			if (PMP_NORMAL_END.equals(returnCd))
			{
				// 会員種別 マスター会員（個人）
				if (MMB_SBT_CD_MASTER_KOJIN.equals(memberSbtCd))
				{
					// 返却用お客様名を退避
					retContCustNm = (String)nowCustMap.get(ECK0011B050CBSMsg1List.CUST_NM);
				}
				// 会員種別が マスター会員（法人）
				if (MMB_SBT_CD_MASTER_HOJIN.equals(memberSbtCd))
				{
					// 返却用お客様名を退避
					retContCustNm = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SEI) + PMP_NAME_DELIMITER + (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.NM);
				}
				
				Map<String, String> resMap = regKariCustInfo(handle, param, inMap, nowCustMap, sysid, updDtmSysid, trgtMlad, eoid, isEoidChge, nkname, isNknmChge, opeDate);
				updDtmSysid = resMap.get("upd_dtm_sysid");
				returnCd = resMap.get("return_cd");
			}
		}
		else
		{
		// ANK-3194-00-00 ADD END

			//***************************************************
			// お客様仮登録
			//***************************************************
			if (PMP_NORMAL_END.equals(returnCd))
			{
				// 処理区分：「01」（お客様情報仮登録）かつ 
				// 業務区分：「0」（ファミリー会員(個人、法人)：グループ入会コード入力）、「1」（ファミリー会員(個人、法人)：POPID入力）、「2」（オープン会員）
				if ("01".equals(getTrnDiv()) && ("0".equals(workDiv) || "1".equals(workDiv) || "2".equals(workDiv)))
				{
					// お客様＜個人＞仮登録SC呼出用マップ取得
					// ANK-3612-00-00 MOD START
					//Map custMap = getAddCustMapForKari(inMap, memberSbtCd, opeDate, mstKeishaTypeCd);
					Map custMap = getAddCustMapForKari(inMap, memberSbtCd, opeDate, mstKeishaTypeCd, handle, param, ope_id, serviceId);
					// ANK-3612-00-00 MOD END
					// 返却用お客様名を退避
					retContCustNm = (String)custMap.get(ECK0021D020CBSMsg.CONT_CUST_NM);
					// お客様＜個人＞仮登録SC呼出
					result = callECK0021D020(handle, param, custMap);
					if (isSuccess(result))
					{
						updDtmSysid = getResultString(result, ECK0021D020CBSMsg.UPD_DTM);
					}
					else
					{
						returnCd = PMP_ERR_OTHER;   // その他のエラー
					}
				}
			}

			//***************************************************
			// お客様本登録
			//***************************************************
			if (PMP_NORMAL_END.equals(returnCd))
			{
				// 処理区分：「02」（お客様情報本登録）かつ 
				// 業務区分：「0」（ファミリー会員(個人、法人)：グループ入会コード入力）、「1」（ファミリー会員(個人、法人)：POPID入力）
				if ("02".equals(getTrnDiv()) && ("0".equals(workDiv) || "1".equals(workDiv)))
				{
					// お客様＜個人＞登録SC呼出用マップ取得
					// ANK-3612-00-00 MOD START
					//Map custMap = getAddCustMapForHon(inMap, memberSbtCd, opeDate, mstKeishaTypeCd);
					// ANK-3612-00-00 MOD END
					Map custMap = getAddCustMapForHon(inMap, memberSbtCd, opeDate, mstKeishaTypeCd, handle, param, ope_id, serviceId);
					// 返却用お客様名を退避
					retContCustNm = (String)custMap.get(ECK0021D010CBSMsg.CONT_CUST_NM);
					// お客様＜個人＞登録SC呼出
					result = callECK0021D010(handle, param, custMap);
					if (isSuccess(result))
					{
						updDtmSysid = getResultString(result, ECK0021D010CBSMsg.UPD_DTM);
					}
					else
					{
						returnCd = PMP_ERR_OTHER;   // その他のエラー
					}
				}
			}

			//***************************************************
			//お客様一意照会
			//***************************************************
			if (PMP_NORMAL_END.equals(returnCd))
			{
				// お客様一意照会SC呼出
				result = callECK0011A010(handle, param, "2", sysid, opeDate);
				if (isSuccess(result))
				{
					String mapKeyPre = ECK0011A010CBSMsg.ECK0011A010CBSMSG1LIST + "[0].";
					// 関電G個人情報取扱同意有無
					kepgKjnifTratDoiUm = getResultString(result, mapKeyPre + ECK0011A010CBSMsg1List.KEPG_KJNIF_TRAT_DOI_UM);
					// 関電G個人情報取扱同意年月日
					kepgKjnifTratDoiYmd = getResultString(result, mapKeyPre + ECK0011A010CBSMsg1List.KEPG_KJNIF_TRAT_DOI_YMD);
					// 関電G個人情報提供不可フラグ
					kepgKjniftFfg = getResultString(result, mapKeyPre + ECK0011A010CBSMsg1List.KEPG_KJNIFT_FFG);
					// 関電G個人情報提供不可フラグ変更年月日
					kepgKjniftFfgChgYmd = getResultString(result, mapKeyPre + ECK0011A010CBSMsg1List.KEPG_KJNIFT_FFG_CHG_YMD);
					// 関電G個人情報提供不可フラグ変更受付方法コード
					kepgKjniftFfgChgUwyCd = getResultString(result, mapKeyPre + ECK0011A010CBSMsg1List.KEPG_KJNIFT_FFG_CHG_UWY_CD);
					// 関電G個人情報提供状況コード
					kepgKjniftJokyoCd = getResultString(result, mapKeyPre + ECK0011A010CBSMsg1List.KEPG_KJNIFT_JOKYO_CD);
					// 関電G個人情報提供開始年月日
					kepgKjniftStaYmd = getResultString(result, mapKeyPre + ECK0011A010CBSMsg1List.KEPG_KJNIFT_STAYMD);
					// 関電G個人情報提供連携状態コード
					kepgKjniftRscd = getResultString(result, mapKeyPre + ECK0011A010CBSMsg1List.KEPG_KJNIFT_RSCD);
					// 関電G個人情報提供連携状態コード変更年月日
					kepgKjniftRscdChgYmd = getResultString(result, mapKeyPre + ECK0011A010CBSMsg1List.KEPG_KJNIFT_RSCD_CHG_YMD);
				}
				else
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}
			}
			
			//***************************************************
			// お客様<個人>内容変更
			//***************************************************
			if (PMP_NORMAL_END.equals(returnCd))
			{
				// 業務区分：「3」（マスター会員）、かつ会員種別 マスター会員（個人） 
				if ("3".equals(workDiv) && MMB_SBT_CD_MASTER_KOJIN.equals(memberSbtCd))
				{
					// お客様<個人>内容変更SC呼出用マップ取得
					Map custMap = getUpdCustMapForKojin(inMap, nowCustMap, updDtmSysid, kepgKjnifTratDoiUm,
																						kepgKjnifTratDoiYmd,
																						kepgKjniftFfg,
																						kepgKjniftFfgChgYmd,
																						kepgKjniftFfgChgUwyCd,
																						kepgKjniftJokyoCd,
																						kepgKjniftStaYmd,
																						kepgKjniftRscd,
																						kepgKjniftRscdChgYmd);
					// 返却用お客様名を退避
					retContCustNm = (String)custMap.get(ECK0021C010CBSMsg.CONT_CUST_NM);
					// お客様<個人>内容変更SC呼出
					result = callECK0021C010(handle, param, custMap);
					if (isSuccess(result))
					{
						updDtmSysid = getResultString(result, ECK0021C010CBSMsg.UPD_DTM);
					}
					else
					{
						returnCd = PMP_ERR_OTHER;   // その他のエラー
					}
				}
			}

			//***************************************************
			// お客様<法人>内容変更
			//***************************************************
			if (PMP_NORMAL_END.equals(returnCd))
			{
				// 業務区分：「3」（マスター会員）、かつ会員種別が マスター会員（法人） 
				if ("3".equals(workDiv) && MMB_SBT_CD_MASTER_HOJIN.equals(memberSbtCd))
				{
					// お客様<法人>内容変更SC呼出用マップ取得
					Map custMap = getUpdCustMapForHojin(inMap, nowCustMap, updDtmSysid, kepgKjnifTratDoiUm,
																						kepgKjnifTratDoiYmd,
																						kepgKjniftFfg,
																						kepgKjniftFfgChgYmd,
																						kepgKjniftFfgChgUwyCd,
																						kepgKjniftJokyoCd,
																						kepgKjniftStaYmd,
																						kepgKjniftRscd,
																						kepgKjniftRscdChgYmd,
																						handle,
																						param,
																						ope_id,
																						serviceId);
					// 返却用お客様名を退避
					retContCustNm = (String)custMap.get(ECK0031C010CBSMsg.CONT_CUST_NM);
					// お客様<法人>内容変更SC呼出
					result = callECK0031C010(handle, param, custMap);
					if (isSuccess(result))
					{
						updDtmSysid = getResultString(result, ECK0031C010CBSMsg.UPD_DTM);
					}
					else
					{
						returnCd = PMP_ERR_OTHER;   // その他のエラー
					}
				}
			}

			//***************************************************
			// eoID変更
			//***************************************************
			if (PMP_NORMAL_END.equals(returnCd))
			{
				// 業務区分：「3」（マスター会員）、かつeoIDに変更あり
				if ("3".equals(workDiv) && isEoidChge)
				{
					boolean agingEndFlg = false;
					// 初期ｅｏＩＤと変更前ｅｏＩＤが異なる場合、変更前ｅｏＩＤをエイジング終了にする。
					if (!isSameInitEoid)
					{
						agingEndFlg = true;
					}
					// eoID変更(エイジング終了実行指定)
					Map tmpResult = chgEoIdAndAgingEnd(handle, param, opeDate, sysid, eoid, (String)nowCustMap.get(ECK0011B050CBSMsg1List.EOID), updDtmSysid, agingEndFlg);
					result = (Map)tmpResult.get("result");
					if (isSuccess(result))
					{
						updDtmSysid = (String)tmpResult.get("upd_dtm_sysid");
					}
					else
					{
						returnCd = PMP_ERR_OTHER;   // その他のエラー
					}
				}
			}

			//***************************************************
			// ニックネーム変更
			//***************************************************
			if (PMP_NORMAL_END.equals(returnCd))
			{
				// 業務区分：「3」（マスター会員）でニックネームが変更されている場合
				if ("3".equals(workDiv) && isNknmChge)
				{
					// ニックネーム変更
					result = callECK0011C090(handle, param, opeDate, sysid, nkname, updDtmSysid);
					//result = chgNkNm(handle, param, sysid, nkname, nowNkname, updDtmSysid);
					if (isError(result))
					{
						returnCd = PMP_ERR_OTHER;   // その他のエラー
					}
				}
			}

			//***************************************************
			// パスワードリマインダ変更
			//***************************************************
			if (PMP_NORMAL_END.equals(returnCd))
			{
				// 業務区分：「3」（マスター会員）
				// かつ、パスワードリマインダ用質問コードとパスワードリマインダ用回答のいずれかに変更あり
				
				// ANK-3706-00-00 ADD START
				// パスワードリマインダ用質問コードとパスワードリマインダ用回答がnullの場合には
				// ""で置き換えて処理する。
				if (pwdReminderQsCd == null)
				{
					pwdReminderQsCd = "";
				}
				if (pwdReminderAns == null)
				{
					pwdReminderAns = "";
				}
				
				// 現在のパスワードリマインダ用質問コード
				String nowPwdReminderQsCd = (String)nowCustMap.get(ECK0011B050CBSMsg1List.PWD_REMINDER_QS_CD);
				if (nowPwdReminderQsCd == null)
				{
					nowPwdReminderQsCd = "";
				}
				
				// 現在のパスワードリマインダ用回答
				String nowPwdReminderAns = (String)nowCustMap.get(ECK0011B050CBSMsg1List.PWD_REMINDER_QS_CD);
				if (nowPwdReminderAns == null)
				{
					nowPwdReminderAns = "";
				}
				// ANK-3706-00-00 ADD END
				// ANK-3706-00-00 DEL START
//// ANK-2987-00-00 ADD START
//				if (pwdReminderQsCd != null && !"".equals(pwdReminderQsCd)
//						&& pwdReminderAns != null && !"".equals(pwdReminderAns))
//				{
//// ANK-2987-00-00 ADD END
				// ANK-3706-00-00 DEL END
				if ("3".equals(workDiv)
						// ANK-3706-00-00 MOD START
//						&& (!pwdReminderQsCd.equals((String)nowCustMap.get(ECK0011B050CBSMsg1List.PWD_REMINDER_QS_CD))
//							|| !pwdReminderAns.equals((String)nowCustMap.get(ECK0011B050CBSMsg1List.PWD_REMINDER_ANS))))
						&& (!pwdReminderQsCd.equals(nowPwdReminderQsCd)
							|| !pwdReminderAns.equals(nowPwdReminderAns)))
						// ANK-3706-00-00 MOD END
				{
					// パスワードリマインダ変更SC呼出
					result = callECK0011C100(handle, param, sysid, pwdReminderQsCd, pwdReminderAns, updDtmSysid);
					if (isSuccess(result))
					{
						updDtmSysid = getResultString(result, ECK0011C100CBSMsg.UPD_DTM);
					}
					else
					{
						returnCd = PMP_ERR_OTHER;   // その他のエラー
					}
				// ANK-3706-00-00 DEL START
//// ANK-2987-00-00 ADD START
//				}
//// ANK-2987-00-00 ADD END
				// ANK-3706-00-00 DEL END
				}
			}

			//***************************************************
			// 連絡先メールアドレス本登録
			//***************************************************
			if (PMP_NORMAL_END.equals(returnCd))
			{
				// 処理区分：「02」（お客様情報本登録）
				if (("01".equals(getTrnDiv()) && "3".equals(workDiv)) ||  "02".equals(getTrnDiv()))
				{
// ANK-2987-00-00 ADD START
					if ("3".equals(workDiv) && (trgtMlad == null || "".equals(trgtMlad)))
					{
						// 連絡先(メールアドレス)登録更新を実施しない
					}
					else
					{
// ANK-2987-00-00 ADD END				
					// 連絡先(メールアドレス)登録更新
					Map tmpResult = addUpdRrksMlad(handle, param, opeDate, "1", sysid, trgtMlad, updDtmSysid, opeDate);
					result = (Map)tmpResult.get("result");
					if (isError(result))
					{
						returnCd = PMP_ERR_OTHER;   // その他のエラー
					}
// ANK-2987-00-00 ADD START
					}
// ANK-2987-00-00 ADD END
				}
			}

			//***************************************************
			// 連絡先メールアドレス仮登録
			//***************************************************
			if (PMP_NORMAL_END.equals(returnCd))
			{
				// 処理区分：「01」（お客様情報仮登録）
				if ("01".equals(getTrnDiv()))
				{
// ANK-2987-00-00 ADD START
					if ("3".equals(workDiv) && (trgtMlad == null || "".equals(trgtMlad)))
					{
						// 連絡先(メールアドレス)登録更新を実施しない
					}
					else
					{
// ANK-2987-00-00 ADD END
					// 連絡先(メールアドレス)登録更新
					Map tmpResult = addUpdRrksMlad(handle, param, opeDate, "2", sysid, trgtMlad, updDtmSysid, opeDate);
					result = (Map)tmpResult.get("result");
					if (isSuccess(result))
					{
						updDtmSysid = (String)tmpResult.get("upd_dtm_sysid");
					}
					else
					{
						returnCd = PMP_ERR_OTHER;   // その他のエラー
					}
// ANK-2987-00-00 ADD START
					}
// ANK-2987-00-00 ADD END 
				}
				
			}

			//***************************************************
			// 連絡先（電話番号）登録
			//***************************************************
			if (PMP_NORMAL_END.equals(returnCd))
			{
				// 更新対象電話番号が設定されている
				if (!JCKBPCommon.isNullOrBlank(trgtTelno))
				{
					// 連絡先(電話番号)登録更新
					Map tmpResult = addUpdRrksTelno(handle, param, opeDate, sysid, trgtTelno, updDtmSysid);
					result = (Map)tmpResult.get("result");
					if (isSuccess(result))
					{
						updDtmSysid = (String)tmpResult.get("upd_dtm_sysid");
					}
					else
					{
						returnCd = PMP_ERR_OTHER;   // その他のエラー
					}
				}
			}

			//***************************************************
			// お客様グループ設定登録
			//***************************************************
			Map<String, String> grpSetteMap = new HashMap<String, String>();;
			if (PMP_NORMAL_END.equals(returnCd))
			{
				// 業務区分：「0」（ファミリー会員(個人、法人)：グループ入会コード入力）、「1」（ファミリー会員(個人、法人)：POPID入力）
				if ("0".equals(workDiv) || "1".equals(workDiv))
				{
					// お客様グループ設定登録SC呼出
					result = callECK0121D010(handle, param, sysid, mstGrpCd, updDtmSysid);
					if (isSuccess(result))
					{
						grpSetteMap.put("mk_flg", getResultString(result, ECK0121D010CBSMsg.MK_FLG));
						grpSetteMap.put("add_dtm", getResultString(result, ECK0121D010CBSMsg.ADD_DTM));
						grpSetteMap.put("add_opeacnt", getResultString(result, ECK0121D010CBSMsg.ADD_OPEACNT));
						grpSetteMap.put("upd_dtm", getResultString(result, ECK0121D010CBSMsg.UPD_DTM));
						grpSetteMap.put("upd_opeacnt", getResultString(result, ECK0121D010CBSMsg.UPD_OPEACNT));
						updDtmSysid = getResultString(result, ECK0121D010CBSMsg.UPD_DTM);
					}
					else
					{
						returnCd = PMP_ERR_OTHER;   // その他のエラー
					}
				}
			}

			//***************************************************
			// サービス契約<ホスティング>登録
			//***************************************************
			if (PMP_NORMAL_END.equals(returnCd))
			{
				result = addStdardContDoi(handle, param, sysid, opeDate);
				if (isError(result))
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}
			}

			//***************************************************
			// 支払方法入力支援登録
			//***************************************************
			Map<String, String> paywayInsupMap = new HashMap<String, String>();;
			if (PMP_NORMAL_END.equals(returnCd))
			{
// ANK-4570-00-00 MOD START
				// 業務区分：「3」（マスター会員）、かつ、ISP決済登録なしフラグ≠「1」(未設定はtrue)の場合
//				if ("3".equals(workDiv))
				if ("3".equals(workDiv) && !JCKStrConst.ISP_KSSAI_ADD_NASI.equals(ispKssaiAddNasiFlg))
// ANK-4570-00-00 MOD END
				{
					// 支払方法入力支援登録SC呼出
					result = callECN0131D011ForIspks(handle, param, sysid, ispKssaiSvcKeiNo);
					if (isSuccess(result))
					{
						paywayInsupMap.put("payway_input_shien_cd", getResultString(result, ECN0131D011CBSMsg.PAYWAY_INPUT_SHIEN_CD));
						paywayInsupMap.put("tsyrn_pay_seq", getResultString(result, ECN0131D011CBSMsg.TSYRN_PAY_SEQ));
						paywayInsupMap.put("isp_kssai_svc_kei_no", getResultString(result, ECN0131D011CBSMsg.ISP_KSSAI_SVC_KEI_NO));
						paywayInsupMap.put("crecard_id", getResultString(result, ECN0131D011CBSMsg.CRECARD_ID));
						paywayInsupMap.put("mk_flg", getResultString(result, ECN0131D011CBSMsg.MK_FLG));
						paywayInsupMap.put("add_dtm", getResultString(result, ECN0131D011CBSMsg.ADD_DTM));
						paywayInsupMap.put("add_opeacnt", getResultString(result, ECN0131D011CBSMsg.ADD_OPEACNT));
						paywayInsupMap.put("upd_dtm", getResultString(result, ECN0131D011CBSMsg.UPD_DTM));
						paywayInsupMap.put("upd_opeacnt", getResultString(result, ECN0131D011CBSMsg.UPD_OPEACNT));
					}
					else
					{
						returnCd = PMP_ERR_OTHER;   // その他のエラー
					}
				}
			}

			//***************************************************
			// オプトインメール受信設定登録更新
			//***************************************************
			if (PMP_NORMAL_END.equals(returnCd))
			{
// ANK-2987-00-00 MOD START
//				// オプトインメール受信設定登録更新
//				Map tmpResult = addUpdOptinmRcvSette(handle, param, opeDate, sysid,
//						memberSbtCd, "", trgtMlad, rcvSetSvcKeiNo,
//						rcvSetTsyrnSvkeiCdSeq, mailRcvSetteList, updDtmSysid);
//				result = (Map)tmpResult.get("result");
//				if (isSuccess(result))
//				{
//					updDtmSysid = (String)tmpResult.get("upd_dtm_sysid");
//				}
//				else
//				{
//					returnCd = PMP_ERR_OTHER;   // その他のエラー
//				}
// ANK-4668-00-00 MOD START
//				if ("3".equals(workDiv) && (trgtMlad == null || "".equals(trgtMlad)))
				//業務区分：「3」（マスター会員）、更新対象メールアドレス(内部変数)が未設定の場合、
				//またはオプトインメール受信設定反映除外フラグに'1'(反映しない)が設定されている場合
				if ("3".equals(workDiv) && (trgtMlad == null || "".equals(trgtMlad))
						|| OPTINM_RCVST_HANEIJGI_FLG_1.equals(optinmRcvstHaneiJgiFlg))
// ANK-4668-00-00 MOD END
				{
					// 連絡先(メールアドレス)登録更新を実施しない
				}
				else
				{
					// オプトインメール受信設定登録更新
					Map tmpResult = addUpdOptinmRcvSette(handle, param, opeDate, sysid,
							memberSbtCd, "", trgtMlad, rcvSetSvcKeiNo,
							rcvSetTsyrnSvkeiCdSeq, mailRcvSetteList, updDtmSysid);
					result = (Map)tmpResult.get("result");
					if (isSuccess(result))
					{
						updDtmSysid = (String)tmpResult.get("upd_dtm_sysid");
					}
					else
					{
						returnCd = PMP_ERR_OTHER;   // その他のエラー
					}
				}
// ANK-2987-00-00 MOD END
			}

			//***************************************************
			// eoIDエイジング登録
			//***************************************************
			if (PMP_NORMAL_END.equals(returnCd))
			{
				// 業務区分：「3」（マスター会員）以外
				if (!"3".equals(workDiv))
				{
					// eoIDエイジング登録
					result = callEZM0111D010(handle, param, AGING_SBT_CD_EOID, eoid);
					if (isError(result))
					{
						returnCd = PMP_ERR_OTHER;   // その他のエラー
					}
				}
			}

			//***************************************************
			// ニックネームエイジング登録
			//***************************************************
			if (PMP_NORMAL_END.equals(returnCd))
			{
				// ニックネームが入力されてる場合
				if (!JCKBPCommon.isNullOrBlank(nkname))
				{
					// ニックネームエイジング登録
					result = callEZM0111D010(handle, param, AGING_SBT_CD_NKNAME, nkname);
					if (isError(result))
					{
						returnCd = PMP_ERR_OTHER;   // その他のエラー
					}
				}
			}

			//***************************************************
			// AxM連携用督促データ抽出
			//***************************************************
			String tkskst = "";
			if (PMP_NORMAL_END.equals(returnCd))
			{
				// 業務区分：「3」（マスター会員）
				if ("3".equals(workDiv))
				{
					// 督促データ抽出SC呼出
					result = callECH0231B010(handle, param, "1", sysid);
					if (isSuccess(result))
					{
						String mapKeyPre = ECH0231B010CBSMsg.ECH0231B010CBSMSG1LIST + "[0].";
						tkskst = getResultString(result, mapKeyPre + ECH0231B010CBSMsg1List.TOKUSOKU_STAT);
					}
					else
					{
						returnCd = PMP_ERR_OTHER;   // その他のエラー
					}
				}
			}

			//***************************************************
			// 指示書登録
			//***************************************************
			// ANK-3814-00-00 ADD START
			// eoIDセキュリティ強化連携電話番号取得
			String keishaTelno = "";
			//***************************************************
			// お客様情報取得(2)
			//***************************************************
			if (PMP_NORMAL_END.equals(returnCd))
			{
				// お客様情報照会(PMP連携用)SC呼出
				result = callECK0011B050(handle, param, "1", sysid);
				
				if (isSuccess(result))
				{
					CAANMsg[] dataList = getResultMsgList(result, ECK0011B050CBSMsg.ECK0011B050CBSMSG1LIST);
					if (dataList != null && dataList.length != 0)
					{
						// お客様情報照会(PMP連携用)結果マップ(2)を取得
						Map<String, Object> nowCustMap2 = copyMsgToMap(dataList[0], ECK0011B050CBSMsg1List.class, ECK0011B050CBSMsg1List.class);
						if (nowCustMap2 != null)
						{
							// eoIDセキュリティ強化連携電話番号取得
							String wkTelno = (String)nowCustMap2.get(ECK0011B050CBSMsg1List.KEISHA_TELNO);
							String member_sbt_cd = (String)nowCustMap2.get(ECK0011B050CBSMsg1List.MEMBER_SBT_CD);
							keishaTelno = getSecurityRenkeiTelno(handle, param, sysid, member_sbt_cd, wkTelno);
						}
					}
				}
			}
			// ANK-3814-00-00 ADD END

			if (PMP_NORMAL_END.equals(returnCd))
			{
				// 業務区分：「3」（マスター会員）の場合
				if ("3".equals(workDiv))
				{
					String tmpBirthd = null;
					String tmpSex = null;
					if (MMB_SBT_CD_MASTER_KOJIN.equals(memberSbtCd))
					{
						tmpBirthd = (String)nowCustMap.get(ECK0011B050CBSMsg1List.CUST_BIRTHD);
						tmpSex = (String)nowCustMap.get(ECK0011B050CBSMsg1List.CUST_SEX_CD);
					}
					else
					{
						tmpBirthd = birthd;
						tmpSex = sex;
					}
					// AdminAPI部分更新用の指示書パラメータ作成
					// ANK-3706-00-00 MOD START
					//Map sjishoMap = createShijishoParamAdminApiUpd(inMap, tmpBirthd, tmpSex, trgtMlad);
					// v48.00.00 ANK-3814-00-00 MOD START
					//Map sjishoMap = createShijishoParamAdminApiUpd(inMap, tmpBirthd, tmpSex, trgtMlad, keishaTelno);
					Map sjishoMap = createShijishoParamAdminApiUpd(inMap, fixedText, tmpBirthd, tmpSex, trgtMlad, keishaTelno);
					// v48.00.00 ANK-3814-00-00 MOD END
					// ANK-3706-00-00 MOD END
					result = callECK0151D010Map(handle, param, sjishoMap);
				}
				else
				{
					// AdminAPI新規登録用の指示書パラメータ作成
					// ANK-3706-00-00 MOD START
					//Map sjishoMap = createShijishoParamAdminApiAdd(workDiv, inMap, memberSbtCd, trgtMlad, mstKeishaTypeCd);
					Map sjishoMap = createShijishoParamAdminApiAdd(workDiv, inMap, memberSbtCd, trgtMlad, mstKeishaTypeCd, keishaTelno);
					// ANK-3706-00-00 MOD END
					result = callECK0151D010Map(handle, param, sjishoMap);
				}

				// グループ情報連携用の指示書作成
				if (isSuccess(result))
				{
					// 業務区分：「0」（ファミリー会員(個人、法人)：グループ入会コード入力）、「1」（ファミリー会員(個人、法人)：POPID入力）
					if ("0".equals(workDiv) || "1".equals(workDiv))
					{
						// グループ情報連携用の指示書パラメータ作成
						Map sjishoMap = createShijishoParamMkGrpSette(sysid, mstSysid, grpSetteMap);
						result = callECK0151D010Map(handle, param, sjishoMap);
					}
				}

				// 支払方法連携用の指示書作成
				if (isSuccess(result))
				{
// ANK-4570-00-00 MOD START
					// 業務区分：「3」（マスター会員）、かつ、ISP決済登録なしフラグ ≠「1」(未設定はtrue)の場合
//					if ("3".equals(workDiv))
					if ("3".equals(workDiv) && !JCKStrConst.ISP_KSSAI_ADD_NASI.equals(ispKssaiAddNasiFlg))
// ANK-4570-00-00 MOD END
					{
						// 支払方法情報連携用の指示書パラメータ作成
						Map sjishoMap = createShijishoParamDelPayway(sysid, paywayInsupMap, tkskst);
						result = callECK0151D010Map(handle, param, sjishoMap);
					}
				}

				if (isError(result))
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}
			}

			//***************************************************
			// 仮登録者本登録可能日数取得
			//***************************************************
			// ANK-3194-00-00 DEL START
//			String kariAddPsbKigen = "";
			// ANK-3194-00-00 DEL END
			if (PMP_NORMAL_END.equals(returnCd))
			{
				// 業務区分：「0」（ファミリー会員(個人、法人)：グループ入会コード入力）、「1」（ファミリー会員(個人、法人)：POPID入力）、「2」（オープン会員）
				if ("0".equals(workDiv) || "1".equals(workDiv) || "2".equals(workDiv))
				{
					// 業務パラメータ設定値取得SC呼出
					result = callEZM0321A010(handle, param, "1", "CK_KARI_ADD_PSB_DAYS");
					if (isSuccess(result))
					{
						String mapKeyPre = EZM0321A010CBSMsg.EZM0321A010CBSMSG1LIST + "[0].";
						String workParam = getResultString(result, mapKeyPre + EZM0321A010CBSMsg1List.WORK_PARAM_SETTE_VALUE);
						if (workParam == null || "".equals(workParam))
						{
							returnCd = PMP_ERR_OTHER;   // その他のエラー
						}
						else
						{
							// 仮登録者本登録可能期限を取得（運用日付＋仮登録者本登録可能日数）
							kariAddPsbKigen = JCCBPCommon.addDay(JCCBPCommon.getOpeDate(null), Integer.parseInt(workParam));
						}
					}
					else
					{
						returnCd = PMP_ERR_OTHER;   // その他のエラー
					}
				}
			}

		// ANK-3194-00-00 ADD START
		}
		// ANK-3194-00-00 ADD END

		//***************************************************
		// 返却パラメータ設定
		//***************************************************

		// 最後に実行したSCの実行結果を取得
		result = getLastResult(param);

		// 下りコントロールマップのセット
		setResultCtrlData(param, result, fixedText);

		// SC実行エラーの場合は、結果に応じてリターンコードを設定
		if (PMP_ERR_OTHER.equals(returnCd))
		{
			String scReturnCd = getReturnCode(result).toString();
			String scStatusCd = getStatus(result).toString();
			returnCd = ("0".equals(scReturnCd) && "1000".equals(scStatusCd)) ? PMP_ERR_PARAM : PMP_ERR_SYSTEM;
		}

		// 下りユーザデータマップのセット
		Map<String, Object> resultMap = new HashMap();
		resultMap.put(CKSV9022_CKSV9022OP_CKSV902201CC.RETURN_CD, returnCd);
		resultMap.put(CKSV9022_CKSV9022OP_CKSV902201CC.CK_UPD_DTM_RES, lastCkUpdDtm);			// 最新更新日時(お客様)
		resultMap.put(CKSV9022_CKSV9022OP_CKSV902201CC.KK_UPD_DTM_RES, lastKkUpdDtm);			// 最新更新日時(サービス契約)
		resultMap.put(CKSV9022_CKSV9022OP_CKSV902201CC.CONT_CUST_NM, retContCustNm);			// コンテンツお客様名
		resultMap.put(CKSV9022_CKSV9022OP_CKSV902201CC.KARI_ADD_PSB_KIGEN, kariAddPsbKigen);	// 仮登録者本登録可能期限
		resultMap.put(CKSV9022_CKSV9022OP_CKSV902201CC.SENDS_MLAD, trgtMlad);					// 送信先メールアドレス

		setResultUserData(param, fixedText, resultMap);

		//*************************************************
		// 処理結果の判定
		//*************************************************
		if (isError(result))
		{
			// ANK-2381-00-00 MOD START
//			String errMsg = getCcName() + "でエラーが発生しました(リターンコード：" + returnCd + ")";
//			throw new CCException(errMsg, new Exception(errMsg));
			if (run_flg)
			{
				String errMsg = getCcName() + "でエラーが発生しました(リターンコード：" + returnCd + ")";
				throw new CCException(errMsg, new Exception(errMsg));
			}
			// ANK-2381-00-00 MOD END
		}

		return param;
	}

	/**
	 * AdminAPI新規登録用の指示書パラメータ作成
	 * @param workDiv 業務区分
	 * @param paramMap 入力パラメータマップ
	 * @param memberSbtCd 会員種別コード
	 * @param trgtMlad 変更対象連絡先メールアドレス
	 * @param mstKeishaTypeCd 契約者タイプコード
	 * @param keishaTelno 連携電話番号（契約者電話番号、コンテンツ電話番号等）
	 * @return 指示書登録用パラメータ
	 */
	private Map<String, Object> createShijishoParamAdminApiAdd(String workDiv, Map<String, Object> paramMap,
	// ANK-3706-00-00 MOD START
			//String memberSbtCd, String trgtMlad, String mstKeishaTypeCd)
			String memberSbtCd, String trgtMlad, String mstKeishaTypeCd, String keishaTelno)
	// ANK-3706-00-00 MOD END
	{
		Map<String, Object> inMap = new HashMap<String, Object>();

		String kariAddDiv = null;
		String contDoiDiv = null;
		String testIdDiv = null;
		String rrksMlad = null;

		String sysid = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SYSID);
		String eoid = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.EOID);
		String eoidPw = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.EOID_PW);
		String nkname = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.NKNAME);
		String birthd = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.BIRTHD);
		String sex = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SEX);

		// 仮登録の場合
		if ("01".equals(getTrnDiv()))
		{
			kariAddDiv = ADMIN_SJISHO_PARAM10_KARI;		// 仮登録
			contDoiDiv = ADMIN_SJISHO_PARAM12_MIDOI;	// 標準コンテンツ未同意
			rrksMlad = trgtMlad;						// 連絡先メールアドレス
		}
		// 本登録の場合
		else
		{
			kariAddDiv = ADMIN_SJISHO_PARAM10_HON;		// 本登録
			contDoiDiv = ADMIN_SJISHO_PARAM12_DOI;		// 標準コンテンツ同意
			rrksMlad = trgtMlad;						// 連絡先メールアドレス
		}

		// 契約者タイプコードが「保守用」の場合、テスト用IDを設定。
		if (("0".equals(workDiv) || "1".equals(workDiv)) && KEISHA_TYPE_CD_MNT.equals(mstKeishaTypeCd))
		{
			testIdDiv = "1";
		}
		else
		{
			testIdDiv = "0";
		}

		inMap.put(ECK0151D010CBSMsg.TRN_CD, SJISHO_TRN_CD_ADMIN_API);
		inMap.put(ECK0151D010CBSMsg.ERR_CNT, "0");
		inMap.put(ECK0151D010CBSMsg.TRAN_TRGT_SYSID, sysid);
		inMap.put(ECK0151D010CBSMsg.RSLT_FLG, "0");
		// ANK-3706-00-00 MOD START
		//inMap.put(ECK0151D010CBSMsg.PARAMETER_YK_CNT, "19");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_YK_CNT, "22");
		// ANK-3706-00-00 MOD END
		inMap.put(ECK0151D010CBSMsg.PARAMETER_1, ADMIN_SJISHO_PARAM1_NEW);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_2, eoid);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_3, sysid);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_4, eoidPw);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_5, nkname);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_6, memberSbtCd);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_7, rrksMlad);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_8, getAgeFlg(birthd, JCCBPCommon.getOpeDate(null)));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_9, sex);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_10, kariAddDiv);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_11, "1");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_12, contDoiDiv);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_13, testIdDiv);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_14, "0");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_15, "0");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_16, "0");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_17, "0");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_18, "1");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_19, JCCBPCommon.getSysDateTime());
		// ANK-3706-00-00 ADD START
		inMap.put(ECK0151D010CBSMsg.PARAMETER_20, keishaTelno);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_21, "");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_22, "");
		// ANK-3706-00-00 ADD END

		return inMap;
	}

	/**
	 * AdminAPI部分更新用の指示書パラメータ作成
	 * @param paramMap 入力パラメータマップ
	 * @param fixedText ユーザー定義文字列
	 * @param birthd 生年月日
	 * @param sex 性別
	 * @param rrksMlad 連絡先メールアドレス
	 * @param keishaTelno 連携電話番号（契約者電話番号、コンテンツ電話番号等）
	 * @return 指示書登録用パラメータ
	 */
	private Map<String, Object> createShijishoParamAdminApiUpd(Map<String, Object> paramMap, 
																// v48.00.00 ANK-3814-00-00 ADD START
																String fixedText,
																// v48.00.00 ANK-3814-00-00 ADD END
																// ANK-3706-00-00 MOD START
																//String birthd, String sex, String rrksMlad)
																String birthd, String sex, String rrksMlad, String keishaTelno)
																// ANK-3706-00-00 MOD END
	{
		Map<String, Object> inMap = new HashMap<String, Object>();

		String sysid = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SYSID);
		String eoid = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.EOID);
		String eoidPw = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.EOID_PW);
		String nkname = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.NKNAME);

		inMap.put(ECK0151D010CBSMsg.TRN_CD, SJISHO_TRN_CD_ADMIN_API);
		inMap.put(ECK0151D010CBSMsg.ERR_CNT, "0");
		inMap.put(ECK0151D010CBSMsg.TRAN_TRGT_SYSID, sysid);
		inMap.put(ECK0151D010CBSMsg.RSLT_FLG, "0");
		// ANK-3706-00-00 MOD START
		//inMap.put(ECK0151D010CBSMsg.PARAMETER_YK_CNT, "19");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_YK_CNT, "22");
		// ANK-3706-00-00 MOD END
		inMap.put(ECK0151D010CBSMsg.PARAMETER_1, ADMIN_SJISHO_PARAM1_UPD_PART);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_2, eoid);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_3, sysid);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_4, eoidPw);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_5, nkname);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_7, rrksMlad);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_8, getAgeFlg(birthd, JCCBPCommon.getOpeDate(null)));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_9, sex);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_12, ADMIN_SJISHO_PARAM12_DOI);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_18, "1");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_19, JCCBPCommon.getSysDateTime());
		// ANK-3706-00-00 ADD START
		// v48.00.00 ANK-3814-00-00 ADD START
		if (!"CKSV006002CC".equals(fixedText))
		{
		// v48.00.00 ANK-3814-00-00 ADD END
		inMap.put(ECK0151D010CBSMsg.PARAMETER_20, keishaTelno);
		// v48.00.00 ANK-3814-00-00 ADD START
		}
		else
		{
			inMap.put(ECK0151D010CBSMsg.PARAMETER_20, "");
		}
		// v48.00.00 ANK-3814-00-00 ADD END
		inMap.put(ECK0151D010CBSMsg.PARAMETER_21, "");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_22, "");
		// ANK-3706-00-00 ADD END

		return inMap;
	}

	/**
	 * グループ情報連携用の指示書パラメータ作成
	 * @param sysid SYSID
	 * @param mstSysid マスター会員SYSID
	 * @param grpSetteMap お客様グループ設定マップ
	 * @return 指示書登録用パラメータリスト
	 */
	private Map<String, Object> createShijishoParamMkGrpSette(String sysid, String mstSysid, Map<String, String> grpSetteMap)
	{
		Map<String, Object> inMap = new HashMap<String, Object>();

		inMap.put(ECK0151D010CBSMsg.TRN_CD, SJISHO_TRN_CD_REPLICA_API);
		inMap.put(ECK0151D010CBSMsg.TRGT_TABLE_ID, "TNM00030");
		inMap.put(ECK0151D010CBSMsg.ERR_CNT, "0");
		inMap.put(ECK0151D010CBSMsg.TRAN_TRGT_SYSID, sysid);
		inMap.put(ECK0151D010CBSMsg.RSLT_FLG, "0");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_YK_CNT, "10");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_1, "001");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_2, mstSysid);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_3, sysid);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_4, (String)grpSetteMap.get("mk_flg"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_5, (String)grpSetteMap.get("add_dtm"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_6, (String)grpSetteMap.get("add_opeacnt"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_7, null);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_8, (String)grpSetteMap.get("upd_dtm"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_9, (String)grpSetteMap.get("upd_opeacnt"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_10, null);

		return inMap;
	}

	/**
	 * 支払方法連携用の指示書パラメータ作成。<br />
	 * @param sysid SYSID
	 * @param paywayInsupMap
	 * @param tkskst 督促ステータス
	 * @return 指示書登録用パラメータリスト
	 */
	private Map<String, Object> createShijishoParamDelPayway(String sysid, Map<String, String> paywayInsupMap, String tkskst)
	{
		Map<String, Object> inMap = new HashMap<String, Object>();
		inMap.put(ECK0151D010CBSMsg.TRN_CD, SJISHO_TRN_CD_REPLICA_API);
		inMap.put(ECK0151D010CBSMsg.TRGT_TABLE_ID, "TNM00060");
		inMap.put(ECK0151D010CBSMsg.ERR_CNT, "0");
		inMap.put(ECK0151D010CBSMsg.TRAN_TRGT_SYSID, sysid);
		inMap.put(ECK0151D010CBSMsg.RSLT_FLG, "0");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_YK_CNT, "13");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_1, sysid);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_2, (String)paywayInsupMap.get("payway_input_shien_cd"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_3, (String)paywayInsupMap.get("tsyrn_pay_seq"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_4, (String)paywayInsupMap.get("isp_kssai_svc_kei_no"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_5, (String)paywayInsupMap.get("crecard_id"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_6, (String)paywayInsupMap.get("mk_flg"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_7, (String)paywayInsupMap.get("add_dtm"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_8, (String)paywayInsupMap.get("add_opeacnt"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_9, null);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_10, (String)paywayInsupMap.get("upd_dtm"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_11, (String)paywayInsupMap.get("upd_opeacnt"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_12, null);
		inMap.put(ECK0151D010CBSMsg.PARAMETER_13, tkskst);

		return inMap;
	}

	/**
	 * お客様仮登録用マップを生成します
	 * @param paramMap 入力パラメータマップ
	 * @param memberSbtCd 会員種別コード
	 * @param opeDate 運用日付
	 * @return お客様仮登録用マップ
	 * @throws Throwable 
	 */
	@SuppressWarnings("unchecked")
	// ANK-3612-00-00 MOD START
	//private Map getAddCustMapForKari(Map paramMap, String memberSbtCd, String opeDate, String keisyaTypeCd)
	// ANK-3612-00-00 MOD END
	private Map getAddCustMapForKari(Map paramMap, String memberSbtCd, String opeDate, String keisyaTypeCd,
			SessionHandle handle, IRequestParameterReadWrite param, String opeId, String serviceId) throws Throwable
	{
		Map custMap = new HashMap();

		String sysid = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SYSID);
		String eoid = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.EOID);
		String sei = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SEI);
		String nm = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.NM);
		String kanaSei = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.KANA_SEI);
		String kanaNm = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.KANA_NM);
		String sex = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SEX);
		String pcd = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.PCD);
		String adStateCity = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.AD_STATE_CITY);
		String adOther = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.AD_OTHER);
		String adMansion = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.AD_MANSION);
		String birthd = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.BIRTHD);
		String pwdReminderQsCd = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.PWD_REMINDER_QS_CD);
		String pwdReminderAns = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.PWD_REMINDER_ANS);
		String nkname = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.NKNAME);

		// ANK-3612-00-00 ADD START
		// コンテンツ住所編集結果
		String adStateCityOther = adStateCity + adOther;
		Map<String, Object> contAdEditRslt = null;
		String[] contAdLst = null;
		if (OPE_PMP1.equals(opeId) || OPE_PMP2.equals(opeId) || OPE_PMP3.equals(opeId))
		{
			if (!JKKStringUtil.isNullSpace(pcd))
			{
				// 住所編集部品のパラメータ作成
				Map<String, Object> trgtData = new HashMap<String, Object>();
				// 編集モード
				trgtData.put(JKKAdEdit.EDIT_MODE, JKKAdEdit.EDIT_MODE_CHG);
				// 郵便番号
				trgtData.put(JKKAdEdit.PCD, pcd);
				// 番地号
				trgtData.put(JKKAdEdit.BNCHIGO, adStateCityOther);
				// 建物名
				trgtData.put(JKKAdEdit.ADRTTM, adMansion);
				// 部屋番号
				trgtData.put(JKKAdEdit.ADRRM, "");
				// 住所編集部品を実行(呼び出し元サービスIDが追加の場合、住所編集部品も修正すること)
				contAdEditRslt = JKKBpCommon.editAd(handle, param, trgtData, serviceId + "01CC");
				// コンテンツ住所分割位置を取得
				contAdLst = JZMCommonUtil.getPtn05(getValue(contAdEditRslt, JKKAdEdit.STATE_NM, ""),
													getValue(contAdEditRslt, JKKAdEdit.CITY_NM, ""),
													getValue(contAdEditRslt, JKKAdEdit.OAZTSU_NM, ""),
													getValue(contAdEditRslt, JKKAdEdit.AZCHO_NM, ""),
													getValue(contAdEditRslt, JKKAdEdit.BNCHIGO, ""),
													getValue(contAdEditRslt, JKKAdEdit.ADRTTM, ""),
													getValue(contAdEditRslt, JKKAdEdit.ADRRM, ""));
			}
		}
		// ANK-3612-00-00 ADD END

		custMap.put(ECK0021D020CBSMsg.SYSID, sysid);													// SYSID
		custMap.put(ECK0021D020CBSMsg.EOID, eoid);														// eoID
		custMap.put(ECK0021D020CBSMsg.KEISHA_TYPE_CD_I, keisyaTypeCd);									// 契約者タイプコード
		custMap.put(ECK0021D020CBSMsg.EOID_CHGE_YMD, JCCBPCommon.getOpeDate(null));						// eoID変更年月日
		custMap.put(ECK0021D020CBSMsg.CONT_CUST_NM, sei + PMP_NAME_DELIMITER + nm);						// コンテンツお客様名
		custMap.put(ECK0021D020CBSMsg.CONT_CUST_KANA, kanaSei + PMP_NAME_DELIMITER + kanaNm);			// コンテンツお客様カナ名
		custMap.put(ECK0021D020CBSMsg.CONT_CUST_SEX_CD, sex);											// コンテンツお客様性別コード
		custMap.put(ECK0021D020CBSMsg.CONT_CUST_BIRTHD, birthd);										// コンテンツお客様生年月日
		custMap.put(ECK0021D020CBSMsg.CONT_AD_CD, CONT_AD_CD_DEFAULT);									// コンテンツ住所コード
		custMap.put(ECK0021D020CBSMsg.CONT_PCD, pcd);													// コンテンツ郵便番号

		// ANK-3612-00-00 ADD/MOD START
		if (OPE_PMP1.equals(opeId) || OPE_PMP2.equals(opeId) || OPE_PMP3.equals(opeId))
		{
			custMap.put(ECK0021D020CBSMsg.CONT_BNCHIGO, contAdLst[0]);												// コンテンツ番地号
			custMap.put(ECK0021D020CBSMsg.CONT_ADRTTM, contAdLst[1]);												// コンテンツ住所補記・建物名
			custMap.put(ECK0021D020CBSMsg.CONT_ADRRM, contAdLst[2]);												// コンテンツ住所補記・部屋番号
			custMap.put(ECK0021D020CBSMsg.CONT_AD_BNKT_STA_PST, getContAdBnktStaPst(contAdLst[3], adStateCity));	// コンテンツ住所分割開始位置
		}
		else
		{
			custMap.put(ECK0021D020CBSMsg.CONT_BNCHIGO, adStateCity + adOther);										// コンテンツ番地号
			custMap.put(ECK0021D020CBSMsg.CONT_ADRTTM, adMansion);													// コンテンツ住所補記・建物名
			custMap.put(ECK0021D020CBSMsg.CONT_AD_BNKT_STA_PST, String.valueOf(adStateCity.length() + 1));			// コンテンツ住所分割開始位置
		}
		// ANK-3612-00-00 ADD/MOD END

		custMap.put(ECK0021D020CBSMsg.MEMBER_SBT_CD, memberSbtCd);										// 会員種別コード
		custMap.put(ECK0021D020CBSMsg.CONT_ISP_USE_FAIL_FLG, CONT_ISP_USE_FAIL_FLG_HI);					// コンテンツISP利用不可フラグ
		custMap.put(ECK0021D020CBSMsg.CONT_ISP_USE_STP_YMD, JCCBPCommon.getOpeDate(null));				// コンテンツISP利用停止年月日
		custMap.put(ECK0021D020CBSMsg.PWD_REMINDER_QS_CD, pwdReminderQsCd);								// パスワードリマインダ用質問コード
		custMap.put(ECK0021D020CBSMsg.PWD_REMINDER_ANS, pwdReminderAns);								// パスワードリマインダ用回答
		custMap.put(ECK0021D020CBSMsg.NKNAME, nkname);													// ニックネーム
		if (nkname != null &&  !"".equals(nkname))
		{
			custMap.put(ECK0021D020CBSMsg.NKNAME_CHGE_YMD, JCCBPCommon.getOpeDate(null));				// ニックネーム変更年月日
		}
		custMap.put(ECK0021D020CBSMsg.LOGIN_NINSHO_KH, PMP_LOGIN_NINSHO_KH_KA);							// ログイン認証可否
		custMap.put(ECK0021D020CBSMsg.CUST_NTAIKAI_CD, CUST_NTAIKAI_CD_JOIN);							// お客様入退会コード
		custMap.put(ECK0021D020CBSMsg.MMB_SBT_TOKUT_FLG, MMB_SBT_TOKUT_FLG_TOKUTZUMI);					// 会員種別特定フラグ
		custMap.put(ECK0021D020CBSMsg.MMB_ISP_KSSAI_STAT_CD, ISP_KSSAI_STAT_CD_TUJYO);					// 会員ISP決済状態コード
		custMap.put(ECK0021D020CBSMsg.KARI_ADD_YMD, opeDate);											// 仮登録年月日

		return custMap;
	}
	
	/**
	 * お客様本登録用マップを生成します
	 * @param paramMap 入力パラメータマップ
	 * @param memberSbtCd 会員種別コード
	 * @param opeDate 運用日付
	 * @return お客様本登録用マップ
	 * @throws Throwable 
	 */
	@SuppressWarnings("unchecked")
	// ANK-3612-00-00 MOD START
	//private Map getAddCustMapForHon(Map paramMap, String memberSbtCd, String opeDate, String keisyaTypeCd)
	// ANK-3612-00-00 MOD END
	private Map getAddCustMapForHon(Map paramMap, String memberSbtCd, String opeDate, String keisyaTypeCd,
			SessionHandle handle, IRequestParameterReadWrite param, String opeId, String serviceId) throws Throwable
	{
		Map custMap = new HashMap();

		String sysid = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SYSID);
		String eoid = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.EOID);
		String sei = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SEI);
		String nm = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.NM);
		String kanaSei = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.KANA_SEI);
		String kanaNm = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.KANA_NM);
		String sex = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SEX);
		String pcd = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.PCD);
		String adStateCity = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.AD_STATE_CITY);
		String adOther = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.AD_OTHER);
		String adMansion = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.AD_MANSION);
		String birthd = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.BIRTHD);
		String pwdReminderQsCd = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.PWD_REMINDER_QS_CD);
		String pwdReminderAns = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.PWD_REMINDER_ANS);
		String nkname = (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.NKNAME);

		// ANK-3612-00-00 ADD START
		String adStateCityOther = adStateCity + adOther;
		Map<String, Object> contAdEditRslt = null;
		String[] contAdLst = null;
		if (OPE_PMP1.equals(opeId) || OPE_PMP2.equals(opeId) || OPE_PMP3.equals(opeId))
		{
			// コンテンツ住所編集結果
			if (!JKKStringUtil.isNullSpace(pcd))
			{
				// 住所編集部品のパラメータ作成
				Map<String, Object> trgtData = new HashMap<String, Object>();
				// 編集モード
				trgtData.put(JKKAdEdit.EDIT_MODE, JKKAdEdit.EDIT_MODE_CHG);
				// 郵便番号
				trgtData.put(JKKAdEdit.PCD, pcd);
				// 番地号
				trgtData.put(JKKAdEdit.BNCHIGO, adStateCityOther);
				// 建物名
				trgtData.put(JKKAdEdit.ADRTTM, adMansion);
				// 部屋番号
				trgtData.put(JKKAdEdit.ADRRM, "");
				// 住所編集部品を実行(呼び出し元サービスIDが追加の場合、住所編集部品も修正すること)
				contAdEditRslt = JKKBpCommon.editAd(handle, param, trgtData, serviceId + "01CC");
				// コンテンツ住所分割位置を取得
				contAdLst = JZMCommonUtil.getPtn05(getValue(contAdEditRslt, JKKAdEdit.STATE_NM, ""),
													getValue(contAdEditRslt, JKKAdEdit.CITY_NM, ""),
													getValue(contAdEditRslt, JKKAdEdit.OAZTSU_NM, ""),
													getValue(contAdEditRslt, JKKAdEdit.AZCHO_NM, ""),
													getValue(contAdEditRslt, JKKAdEdit.BNCHIGO, ""),
													getValue(contAdEditRslt, JKKAdEdit.ADRTTM, ""),
													getValue(contAdEditRslt, JKKAdEdit.ADRRM, ""));
			}
		}
		// ANK-3612-00-00 ADD END

		custMap.put(ECK0021D010CBSMsg.SYSID, sysid);												// SYSID
		custMap.put(ECK0021D010CBSMsg.KEISHA_TYPE_CD, keisyaTypeCd);								// 契約者タイプコード
		custMap.put(ECK0021D010CBSMsg.EOID, eoid);													// eoID
		custMap.put(ECK0021D010CBSMsg.EOID_CHGE_YMD, JCCBPCommon.getOpeDate(null));					// eoID変更年月日
		custMap.put(ECK0021D010CBSMsg.CONT_CUST_NM, sei + PMP_NAME_DELIMITER + nm);					// コンテンツお客様名
		custMap.put(ECK0021D010CBSMsg.CONT_CUST_KANA, kanaSei + PMP_NAME_DELIMITER + kanaNm);		// コンテンツお客様カナ名
		custMap.put(ECK0021D010CBSMsg.CONT_CUST_SEX_CD, sex);										// コンテンツお客様性別コード
		custMap.put(ECK0021D010CBSMsg.CONT_CUST_BIRTHD, birthd);									// コンテンツお客様生年月日
		custMap.put(ECK0021D010CBSMsg.CONT_AD_CD, CONT_AD_CD_DEFAULT);								// コンテンツ住所コード
		custMap.put(ECK0021D010CBSMsg.CONT_PCD, pcd);												// コンテンツ郵便番号

		// ANK-3612-00-00 ADD/MOD START
		if (OPE_PMP1.equals(opeId) || OPE_PMP2.equals(opeId) || OPE_PMP3.equals(opeId))
		{
			custMap.put(ECK0021D010CBSMsg.CONT_BNCHIGO, contAdLst[0]);												// コンテンツ番地号
			custMap.put(ECK0021D010CBSMsg.CONT_ADRTTM, contAdLst[1]);												// コンテンツ住所補記・建物名
			custMap.put(ECK0021D010CBSMsg.CONT_ADRRM, contAdLst[2]);												// コンテンツ住所補記・部屋番号
			custMap.put(ECK0021D010CBSMsg.CONT_AD_BNKT_STA_PST, getContAdBnktStaPst(contAdLst[3], adStateCity));	// コンテンツ住所分割開始位置
		}
		else
		{
			custMap.put(ECK0021D010CBSMsg.CONT_BNCHIGO, adStateCity + adOther);										// コンテンツ番地号
			custMap.put(ECK0021D010CBSMsg.CONT_ADRTTM, adMansion);													// コンテンツ住所補記・建物名
			custMap.put(ECK0021D010CBSMsg.CONT_AD_BNKT_STA_PST, String.valueOf(adStateCity.length() + 1));			// コンテンツ住所分割開始位置
		}
		// ANK-3612-00-00 ADD/MOD END

		custMap.put(ECK0021D010CBSMsg.MEMBER_SBT_CD, memberSbtCd);									// 会員種別コード
		custMap.put(ECK0021D010CBSMsg.CONT_ISP_USE_FAIL_FLG, CONT_ISP_USE_FAIL_FLG_HI);				// コンテンツISP利用不可フラグ
		custMap.put(ECK0021D010CBSMsg.CONT_ISP_USE_STP_YMD, opeDate);								// コンテンツISP利用停止年月日
		custMap.put(ECK0021D010CBSMsg.PWD_REMINDER_QS_CD, pwdReminderQsCd);							// パスワードリマインダ用質問コード
		custMap.put(ECK0021D010CBSMsg.PWD_REMINDER_ANS, pwdReminderAns);							// パスワードリマインダ用回答
		custMap.put(ECK0021D010CBSMsg.NKNAME, nkname);												// ニックネーム
		if (nkname != null &&  !"".equals(nkname))
		{
			custMap.put(ECK0021D010CBSMsg.NKNAME_CHGE_YMD, opeDate);								// ニックネーム変更年月日
		}
		custMap.put(ECK0021D010CBSMsg.LOGIN_NINSHO_KH, PMP_LOGIN_NINSHO_KH_KA);						// ログイン認証可否
		custMap.put(ECK0021D010CBSMsg.CUST_NTAIKAI_CD, CUST_NTAIKAI_CD_JOIN);						// お客様入退会コード
		custMap.put(ECK0021D010CBSMsg.MMB_SBT_TOKUT_FLG, MMB_SBT_TOKUT_FLG_TOKUTZUMI);				// 会員種別特定フラグ
		custMap.put(ECK0021D010CBSMsg.MMB_ISP_KSSAI_STAT_CD, ISP_KSSAI_STAT_CD_TUJYO);				// 会員ISP決済状態コード
		custMap.put(ECK0021D010CBSMsg.JOIN_YMD, opeDate);											// 入会年月日
		
		return custMap;
	}
	
	/**
	 * お客様＜個人＞内容変更用マップを生成します
	 * @param inMap 入力パラメータマップ
	 * @param nowCustMap お客様情報マップ
	 * @param updDtmSysid 更新年月日時分秒（お客様）
	 * @param kepgKjnifTratDoiUm 関電G個人情報取扱同意有無
	 * @param kepgKjnifTratDoiYmd 関電G個人情報取扱同意年月日
	 * @param kepgKjniftFfg 関電G個人情報提供不可フラグ
	 * @param kepgKjniftFfgChgYmd 関電G個人情報提供不可フラグ変更年月日
	 * @param kepgKjniftFfgChgUwyCd 関電G個人情報提供不可フラグ変更受付方法コード
	 * @param kepgKjniftJokyoCd 関電G個人情報提供状況コード
	 * @param kepgKjniftStaYmd 関電G個人情報提供開始年月日
	 * @param kepgKjniftRscd 関電G個人情報提供連携状態コード
	 * @param kepgKjniftRscdChgYmd 関電G個人情報提供連携状態コード変更年月日
	 * @return お客様＜個人＞内容変更用マップ
	 */
	@SuppressWarnings("unchecked")
	private Map getUpdCustMapForKojin(Map inMap, Map<String, Object> nowCustMap, String updDtmSysid, String kepgKjnifTratDoiUm,
																										String kepgKjnifTratDoiYmd,
																										String kepgKjniftFfg,
																										String kepgKjniftFfgChgYmd,
																										String kepgKjniftFfgChgUwyCd,
																										String kepgKjniftJokyoCd,
																										String kepgKjniftStaYmd,
																										String kepgKjniftRscd,
																										String kepgKjniftRscdChgYmd)

	{
		Map custMap = (Map)((HashMap)nowCustMap).clone();

		String sysid = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SYSID);

		String custNm = (String)nowCustMap.get(ECK0011B050CBSMsg1List.CUST_NM);
		String custKana = (String)nowCustMap.get(ECK0011B050CBSMsg1List.CUST_KANA);
		String custSexCd = (String)nowCustMap.get(ECK0011B050CBSMsg1List.CUST_SEX_CD);
		String custBirthd = (String)nowCustMap.get(ECK0011B050CBSMsg1List.CUST_BIRTHD);
		String keishaAdCd = (String)nowCustMap.get(ECK0011B050CBSMsg1List.KEISHA_AD_CD);
		String keishaPcd = (String)nowCustMap.get(ECK0011B050CBSMsg1List.KEISHA_PCD);
		String keishaStateNm = nullToEmpty((String)nowCustMap.get(ECK0011B050CBSMsg1List.KEISHA_STATE_NM));
		String keishaCityNm = nullToEmpty((String)nowCustMap.get(ECK0011B050CBSMsg1List.KEISHA_CITY_NM));
		String keishaOaztsuNm = nullToEmpty((String)nowCustMap.get(ECK0011B050CBSMsg1List.KEISHA_OAZTSU_NM));
		String keishaAzcho = nullToEmpty((String)nowCustMap.get(ECK0011B050CBSMsg1List.KEISHA_AZCHO_NM));
		String keishaBnchigo = nullToEmpty((String)nowCustMap.get(ECK0011B050CBSMsg1List.KEISHA_BNCHIGO));
		String keishaAdrttm = nullToEmpty((String)nowCustMap.get(ECK0011B050CBSMsg1List.KEISHA_ADRTTM));
		String keishaAdrrm = nullToEmpty((String)nowCustMap.get(ECK0011B050CBSMsg1List.KEISHA_ADRRM));

		// 住所編集部品を利用して契約者住所をコンテンツ住所に変換する
		String[] adInfo = JCKLcsCommonUtil.convAdForEo(keishaStateNm, keishaCityNm, keishaOaztsuNm, keishaAzcho, keishaBnchigo, keishaAdrttm, keishaAdrrm);

		// 入力値の設定
		custMap.put(ECK0021C010CBSMsg.SYSID, sysid);											// SYSID
		custMap.put(ECK0021C010CBSMsg.UPD_DTM_BF, updDtmSysid);									// 更新年月日時分秒(更新前)
		custMap.put(ECK0021C010CBSMsg.RSV_APLY_YMD, JCCBPCommon.getOpeDate(null));				// 予約適用年月日

		custMap.put(ECK0021C010CBSMsg.CONT_CUST_NM, custNm);									// コンテンツお客様名
		custMap.put(ECK0021C010CBSMsg.CONT_CUST_KANA, custKana);								// コンテンツお客様カナ名
		custMap.put(ECK0021C010CBSMsg.CONT_CUST_SEX_CD, custSexCd);								// コンテンツお客様性別コード
		custMap.put(ECK0021C010CBSMsg.CONT_CUST_BIRTHD, custBirthd);							// コンテンツお客様生年月日
		custMap.put(ECK0021C010CBSMsg.CONT_AD_CD, keishaAdCd);									// コンテンツ住所コード
		custMap.put(ECK0021C010CBSMsg.CONT_PCD, keishaPcd);										// コンテンツ郵便番号
		custMap.put(ECK0021C010CBSMsg.CONT_STATE_NM, null);										// コンテンツ都道府県名
		custMap.put(ECK0021C010CBSMsg.CONT_CITY_NM, null);										// コンテンツ市区町村名
		custMap.put(ECK0021C010CBSMsg.CONT_OAZTSU_NM, null);									// コンテンツ大字通称名
		custMap.put(ECK0021C010CBSMsg.CONT_AZCHO_NM, null);										// コンテンツ字丁目名
		custMap.put(ECK0021C010CBSMsg.CONT_BNCHIGO, adInfo[0]); 								// コンテンツ番地号
		// OM-2014-0002427 MOD START
		//custMap.put(ECK0021C010CBSMsg.CONT_ADRTTM, adInfo[1]);									// コンテンツ住所補記・建物名
		//custMap.put(ECK0021C010CBSMsg.CONT_ADRRM, adInfo[2]);									// コンテンツ住所補記・部屋番号
		custMap.put(ECK0021C010CBSMsg.CONT_ADRTTM, adInfo[1] + adInfo[2]);						// コンテンツ住所補記・建物名
		custMap.put(ECK0021C010CBSMsg.CONT_ADRRM, null);										// コンテンツ住所補記・部屋番号
		// OM-2014-0002427 MOD END
		custMap.put(ECK0021C010CBSMsg.CONT_AD_BNKT_STA_PST, adInfo[3]);							// コンテンツ住所分割開始位置
		custMap.put(ECK0021C010CBSMsg.MMB_SBT_TOKUT_FLG, MMB_SBT_TOKUT_FLG_TOKUTZUMI);			// 会員種別特定フラグ

		custMap.put(ECK0021C010CBSMsg.KEPG_KJNIF_TRAT_DOI_UM, kepgKjnifTratDoiUm);				// 関電G個人情報取扱同意有無
		custMap.put(ECK0021C010CBSMsg.KEPG_KJNIF_TRAT_DOI_YMD, kepgKjnifTratDoiYmd);			// 関電G個人情報取扱同意年月日
		custMap.put(ECK0021C010CBSMsg.KEPG_KJNIFT_FFG, kepgKjniftFfg);							// 関電G個人情報提供不可フラグ
		custMap.put(ECK0021C010CBSMsg.KEPG_KJNIFT_FFG_CHG_YMD, kepgKjniftFfgChgYmd);			// 関電G個人情報提供不可フラグ変更年月日
		custMap.put(ECK0021C010CBSMsg.KEPG_KJNIFT_FFG_CHG_UWY_CD, kepgKjniftFfgChgUwyCd);		// 関電G個人情報提供不可フラグ変更受付方法コード
		custMap.put(ECK0021C010CBSMsg.KEPG_KJNIFT_JOKYO_CD, kepgKjniftJokyoCd);					// 関電G個人情報提供状況コード
		custMap.put(ECK0021C010CBSMsg.KEPG_KJNIFT_STAYMD, kepgKjniftStaYmd);					// 関電G個人情報提供開始年月日
		custMap.put(ECK0021C010CBSMsg.KEPG_KJNIFT_RSCD, kepgKjniftRscd);						// 関電G個人情報提供連携状態コード
		custMap.put(ECK0021C010CBSMsg.KEPG_KJNIFT_RSCD_CHG_YMD, kepgKjniftRscdChgYmd);			// 関電G個人情報提供連携状態コード変更年月日

		return custMap;
	}

	/**
	 * お客様＜法人＞内容変更用マップを生成します
	 * @param inMap 入力パラメータマップ
	 * @param nowCustMap お客様情報マップ
	 * @param updDtmSysid 更新年月日時分秒（お客様）
	 * @param kepgKjnifTratDoiUm 関電G個人情報取扱同意有無
	 * @param kepgKjnifTratDoiYmd 関電G個人情報取扱同意年月日
	 * @param kepgKjniftFfg 関電G個人情報提供不可フラグ
	 * @param kepgKjniftFfgChgYmd 関電G個人情報提供不可フラグ変更年月日
	 * @param kepgKjniftFfgChgUwyCd 関電G個人情報提供不可フラグ変更受付方法コード
	 * @param kepgKjniftJokyoCd 関電G個人情報提供状況コード
	 * @param kepgKjniftStaYmd 関電G個人情報提供開始年月日
	 * @param kepgKjniftRscd 関電G個人情報提供連携状態コード
	 * @param kepgKjniftRscdChgYmd 関電G個人情報提供連携状態コード変更年月日
	 * @return お客様＜法人＞内容変更用マップ
	 * @throws Throwable 
	 */
	@SuppressWarnings("unchecked")
	// ANK-3612-00-00 MOD START
	//private Map getUpdCustMapForHojin(Map inMap, Map<String, Object> nowCustMap, String updDtmSysid, String kepgKjnifTratDoiUm,
	//																									String kepgKjnifTratDoiYmd,
	//																									String kepgKjniftFfg,
	//																									String kepgKjniftFfgChgYmd,
	//																									String kepgKjniftFfgChgUwyCd,
	//																									String kepgKjniftJokyoCd,
	//																									String kepgKjniftStaYmd,
	//																									String kepgKjniftRscd,
	//																									String kepgKjniftRscdChgYmd)
	//{
	private Map getUpdCustMapForHojin(Map inMap, Map<String, Object> nowCustMap, String updDtmSysid, String kepgKjnifTratDoiUm,
																										String kepgKjnifTratDoiYmd,
																										String kepgKjniftFfg,
																										String kepgKjniftFfgChgYmd,
																										String kepgKjniftFfgChgUwyCd,
																										String kepgKjniftJokyoCd,
																										String kepgKjniftStaYmd,
																										String kepgKjniftRscd,
																										String kepgKjniftRscdChgYmd,
																										SessionHandle handle,
																										IRequestParameterReadWrite param,
																										String opeId,
																										String serviceId) throws Throwable
	{
	// ANK-3612-00-00 MOD END
		Map custMap = (Map)((HashMap)nowCustMap).clone();

		String sysid = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SYSID);
		String sei = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SEI);
		String nm = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.NM);
		String kanaSei = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.KANA_SEI);
		String kanaNm = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.KANA_NM);
		String sex = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SEX);
		String pcd = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.PCD);
		String adStateCity = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.AD_STATE_CITY);
		String adOther = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.AD_OTHER);
		String adMansion = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.AD_MANSION);
		String birthd = (String)inMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.BIRTHD);

		// ANK-3612-00-00 ADD START
		String adStateCityOther = adStateCity + adOther;
		Map<String, Object> contAdEditRslt = null;
		String[] contAdLst = null;
		if (OPE_PMP1.equals(opeId) || OPE_PMP2.equals(opeId) || OPE_PMP3.equals(opeId))
		{
			// コンテンツ住所編集結果
			if (!JKKStringUtil.isNullSpace(pcd))
			{
				// 住所編集部品のパラメータ作成
				Map<String, Object> trgtData = new HashMap<String, Object>();
				// 編集モード
				trgtData.put(JKKAdEdit.EDIT_MODE, JKKAdEdit.EDIT_MODE_CHG);
				// 郵便番号
				trgtData.put(JKKAdEdit.PCD, pcd);
				// 番地号
				trgtData.put(JKKAdEdit.BNCHIGO, adStateCityOther);
				// 建物名
				trgtData.put(JKKAdEdit.ADRTTM, adMansion);
				// 部屋番号
				trgtData.put(JKKAdEdit.ADRRM, "");
				// 住所編集部品を実行(呼び出し元サービスIDが追加の場合、住所編集部品も修正すること)
				contAdEditRslt = JKKBpCommon.editAd(handle, param, trgtData, serviceId + "01CC");
				// コンテンツ住所分割位置を取得
				contAdLst = JZMCommonUtil.getPtn05(getValue(contAdEditRslt, JKKAdEdit.STATE_NM, ""),
													getValue(contAdEditRslt, JKKAdEdit.CITY_NM, ""),
													getValue(contAdEditRslt, JKKAdEdit.OAZTSU_NM, ""),
													getValue(contAdEditRslt, JKKAdEdit.AZCHO_NM, ""),
													getValue(contAdEditRslt, JKKAdEdit.BNCHIGO, ""),
													getValue(contAdEditRslt, JKKAdEdit.ADRTTM, ""),
													getValue(contAdEditRslt, JKKAdEdit.ADRRM, ""));
			}
		}
		// ANK-3612-00-00 ADD END

		// 入力値の設定
		custMap.put(ECK0031C010CBSMsg.SYSID, sysid);											// SYSID
		custMap.put(ECK0031C010CBSMsg.UPD_DTM_BF, updDtmSysid);									// 更新年月日時分秒(更新前)
		custMap.put(ECK0031C010CBSMsg.RSV_APLY_YMD, JCCBPCommon.getOpeDate(null));				// 予約適用年月日
		custMap.put(ECK0031C010CBSMsg.CONT_CUST_NM, sei + PMP_NAME_DELIMITER + nm);				// コンテンツお客様名
		custMap.put(ECK0031C010CBSMsg.CONT_CUST_KANA, kanaSei + PMP_NAME_DELIMITER + kanaNm);	// コンテンツお客様カナ名
		custMap.put(ECK0031C010CBSMsg.CONT_CUST_SEX_CD, sex);									// コンテンツお客様性別コード
		custMap.put(ECK0031C010CBSMsg.CONT_CUST_BIRTHD, birthd);								// コンテンツお客様生年月日
		custMap.put(ECK0031C010CBSMsg.CONT_AD_CD, CONT_AD_CD_DEFAULT);							// コンテンツ住所コード
		custMap.put(ECK0031C010CBSMsg.CONT_PCD, pcd);											// コンテンツ郵便番号
		custMap.put(ECK0021C010CBSMsg.CONT_STATE_NM, null);										// コンテンツ都道府県名
		custMap.put(ECK0021C010CBSMsg.CONT_CITY_NM, null);										// コンテンツ市区町村名
		custMap.put(ECK0021C010CBSMsg.CONT_OAZTSU_NM, null);									// コンテンツ大字通称名
		custMap.put(ECK0021C010CBSMsg.CONT_AZCHO_NM, null);										// コンテンツ字丁目名

		// ANK-3612-00-00 ADD/MOD START
		if (OPE_PMP1.equals(opeId) || OPE_PMP2.equals(opeId) || OPE_PMP3.equals(opeId))
		{
			custMap.put(ECK0031C010CBSMsg.CONT_BNCHIGO, contAdLst[0]);												// コンテンツ番地号
			custMap.put(ECK0031C010CBSMsg.CONT_ADRTTM, contAdLst[1]);												// コンテンツ住所補記・建物名
			custMap.put(ECK0021C010CBSMsg.CONT_ADRRM, contAdLst[2]);												// コンテンツ住所補記・部屋番号
			custMap.put(ECK0031C010CBSMsg.CONT_AD_BNKT_STA_PST, getContAdBnktStaPst(contAdLst[3], adStateCity));	// コンテンツ住所分割開始位置
		}
		else
		{
			custMap.put(ECK0031C010CBSMsg.CONT_BNCHIGO, adStateCity + adOther);										// コンテンツ番地号
			custMap.put(ECK0031C010CBSMsg.CONT_ADRTTM, adMansion);													// コンテンツ住所補記・建物名
			custMap.put(ECK0021C010CBSMsg.CONT_ADRRM, null);														// コンテンツ住所補記・部屋番号
			custMap.put(ECK0031C010CBSMsg.CONT_AD_BNKT_STA_PST, String.valueOf(adStateCity.length() + 1));			// コンテンツ住所分割開始位置
		}
		// ANK-3612-00-00 ADD/MOD END

		custMap.put(ECK0031C010CBSMsg.MMB_SBT_TOKUT_FLG, MMB_SBT_TOKUT_FLG_TOKUTZUMI);			// 会員種別特定フラグ

		custMap.put(ECK0031C010CBSMsg.KEPG_KJNIF_TRAT_DOI_UM, kepgKjnifTratDoiUm);				// 関電G個人情報取扱同意有無
		custMap.put(ECK0031C010CBSMsg.KEPG_KJNIF_TRAT_DOI_YMD, kepgKjnifTratDoiYmd);			// 関電G個人情報取扱同意年月日
		custMap.put(ECK0031C010CBSMsg.KEPG_KJNIFT_FFG, kepgKjniftFfg);							// 関電G個人情報提供不可フラグ
		custMap.put(ECK0031C010CBSMsg.KEPG_KJNIFT_FFG_CHG_YMD, kepgKjniftFfgChgYmd);			// 関電G個人情報提供不可フラグ変更年月日
		custMap.put(ECK0031C010CBSMsg.KEPG_KJNIFT_FFG_CHG_UWY_CD, kepgKjniftFfgChgUwyCd);		// 関電G個人情報提供不可フラグ変更受付方法コード
		custMap.put(ECK0031C010CBSMsg.KEPG_KJNIFT_JOKYO_CD, kepgKjniftJokyoCd);					// 関電G個人情報提供状況コード
		custMap.put(ECK0031C010CBSMsg.KEPG_KJNIFT_STAYMD, kepgKjniftStaYmd);					// 関電G個人情報提供開始年月日
		custMap.put(ECK0031C010CBSMsg.KEPG_KJNIFT_RSCD, kepgKjniftRscd);						// 関電G個人情報提供連携状態コード
		custMap.put(ECK0031C010CBSMsg.KEPG_KJNIFT_RSCD_CHG_YMD, kepgKjniftRscdChgYmd);			// 関電G個人情報提供連携状態コード変更年月日

		return custMap;
	}

	/**
	 * BPチェック用パラメータ作成。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return BPチェック用パラメータ
	 */
	@SuppressWarnings("unchecked")
	public HashMap getInvokeCBS(SessionHandle handle, IRequestParameterReadWrite param, String fixedText)
	{
		// BPチェックはスキップする
		return JCKPmpScParamHenshu.createBpNotCheckParam();
	}

	/**
	 * ＢＰチェック結果を編集する。<br />
	 * @param param リクエストパラメータ
	 * @param caanMsgs サービスインターフェイス用のパラメータ配列
	 * @param returnCode リターンコード
	 * @return リクエストパラメータ
	 * @throws Throwable 
	 */
	public IRequestParameterReadWrite editErrorInfo(IRequestParameterReadWrite param, CAANMsg[] caanMsgs, Integer returnCode) throws Throwable
	{
		return JCKPmpScParamHenshu.editErrorInfo(param, caanMsgs, returnCode);
	}

	/**
	 * 処理区分（仮登録）を返却します。
	 * @return String
	 */
	protected String getTrnDiv()
	{
		return "01";
	}

	/**
	 * CC名を返却します。
	 * @return String
	 */
	protected String getCcName()
	{
		return "お客様情報仮登録CC";
	}

	/**
	 * NULLを空文字に変換する。
	 * @param value
	 * @return 変換後の文字列
	 */
	private String nullToEmpty(String value)
	{
		return (value == null) ? "" : value;
	}

	// ANK-3194-00-00 ADD START
	/**
	 * 異動予約一覧照会SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param funcCd 機能コード
	 * @param idoDiv 異動区分
	 * @param idoRsvDtlCd 異動予約詳細コード
	 * @param idoRsvStatCd 異動予約状態コード
	 * @param sysid ＳＹＳＩＤ
	 * @return SC実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	private Map<?, ?> callEKK1681B001(SessionHandle handle, IRequestParameterReadWrite param, String funcCd, String idoDiv, String idoRsvDtlCd, String idoRsvStatCd, String sysid) throws RequestParameterException, SCException
	{
		//***************************************************
		// SCへの上りマッピング
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		
		// ＫＥＹ＿異動区分
		inMap.put(EKK1681B001CBSMsg.KEY_IDO_DIV, idoDiv);
		// ＫＥＹ＿異動予約詳細コード
		inMap.put(EKK1681B001CBSMsg.KEY_IDO_RSV_DTL_CD, idoRsvDtlCd);
		// ＫＥＹ＿異動予約状態コード
		inMap.put(EKK1681B001CBSMsg.KEY_IDO_RSV_STAT_CD, idoRsvStatCd);
		// ＫＥＹ＿ＳＹＳＩＤ
		inMap.put(EKK1681B001CBSMsg.KEY_SYSID, sysid);
		
		HashMap<String, Object> paramMap = JCKBPCommon.createScParamForSearch(param, EKK1681B001CBSMsg.class , inMap, funcCd);
		
		//***************************************************
		// SC呼出実行
		//***************************************************
		printDebugLog("異動予約一覧照会SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("異動予約一覧照会SC呼び出し完了" + result);
		
		return result;
	}
	
	/**
	 * 異動予約一意照会SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param funcCd 機能コード
	 * @param idoRsvNo 異動予約番号
	 * @return SC実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	private Map<?, ?> callEKK1681A010(SessionHandle handle, IRequestParameterReadWrite param, String funcCd, String idoRsvNo) throws RequestParameterException, SCException
	{
		//***************************************************
		// SCへの上りマッピング
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		
		// ＫＥＹ＿異動予約番号
		inMap.put(EKK1681A010CBSMsg.KEY_IDO_RSV_NO, idoRsvNo);
		
		HashMap<String, Object> paramMap = JCKBPCommon.createScParamForSearch(param, EKK1681A010CBSMsg.class , inMap, funcCd);
		
		//***************************************************
		// SC呼出実行
		//***************************************************
		printDebugLog("異動予約一意照会SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("異動予約一意照会SC呼び出し完了" + result);
		
		return result;
	}
	
	/**
	 * 連絡先予約取消SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param funcCd 機能コード
	 * @param rrksNo 連絡先番号
	 * @param geneAddDtm 世代登録年月日時分秒
	 * @param updDtmBf 更新年月日時分秒(更新前)
	 * @return SC実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	private Map<?, ?> callECK0201C060(SessionHandle handle, IRequestParameterReadWrite param, String funcCd, String rrksNo, String geneAddDtm, String updDtmBf) throws RequestParameterException, SCException
	{
		//***************************************************
		// SCへの上りマッピング
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		
		// 連絡先番号
		inMap.put(ECK0201C060CBSMsg.RRKS_NO, rrksNo);
		// 世代登録年月日時分秒
		inMap.put(ECK0201C060CBSMsg.GENE_ADD_DTM, geneAddDtm);
		// 更新年月日時分秒(更新前)
		inMap.put(ECK0201C060CBSMsg.UPD_DTM_BF, updDtmBf);
		
		HashMap<String, Object> paramMap = JCKBPCommon.createScParam(param, ECK0201C060CBSMsg.class , inMap, funcCd);
		
		//***************************************************
		// SC呼出実行
		//***************************************************
		printDebugLog("連絡先予約取消SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("連絡先予約取消SC呼び出し完了" + result);
		
		return result;
	}
	
	/**
	 * 連絡先(コンテンツ用メールアドレス)一覧照会SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param funcCd 機能コード
	 * @param sysid ＳＹＳＩＤ
	 * @return SC実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	private Map<?, ?> callECK0201B002(SessionHandle handle, IRequestParameterReadWrite param, String funcCd, String sysid) throws RequestParameterException, SCException
	{
		//***************************************************
		// SCへの上りマッピング
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		
		// ＫＥＹ＿ＳＹＳＩＤ
		inMap.put(ECK0201B002CBSMsg.KEY_SYSID, sysid);
		
		HashMap<String, Object> paramMap = JCKBPCommon.createScParamForSearch(param, ECK0201B002CBSMsg.class , inMap, funcCd);
		
		//***************************************************
		// SC呼出実行
		//***************************************************
		printDebugLog("連絡先(コンテンツ用メールアドレス)一覧照会SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("連絡先(コンテンツ用メールアドレス)一覧照会SC呼び出し完了" + result);
		
		return result;
	}
	
	/**
	 * エイジング一覧照会（ユニーク）SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param funcCd 機能コード
	 * @param agingSbtCd エイジング種別コード
	 * @param agingTgValue エイジング対象値
	 * @return SC実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	private Map<?, ?> callEZM0111B040(SessionHandle handle, IRequestParameterReadWrite param, String funcCd, String agingSbtCd, String agingTgValue) throws RequestParameterException, SCException
	{
		//***************************************************
		// SCへの上りマッピング
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		
		// ＫＥＹ＿エイジング種別コード
		inMap.put(EZM0111B040CBSMsg.KEY_AGING_SBT_CD, agingSbtCd);
		// ＫＥＹ＿エイジング対象値
		inMap.put(EZM0111B040CBSMsg.KEY_AGING_TG_VALUE, agingTgValue);
		
		HashMap<String, Object> paramMap = JCKBPCommon.createScParamForSearch(param, EZM0111B040CBSMsg.class , inMap, funcCd);
		
		//***************************************************
		// SC呼出実行
		//***************************************************
		printDebugLog("エイジング一覧照会（ユニーク）SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("エイジング一覧照会（ユニーク）SC呼び出し完了" + result);
		
		return result;
	}
	
	/**
	 * エイジング削除SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param funcCd 機能コード
	 * @param agingSbtCd エイジング種別コード
	 * @param agingTgValue エイジング対象値
	 * @param lastUpdDtmBf 更新前最終年月日時分秒
	 * @return SC実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	private Map<?, ?> callEZM0111E010(SessionHandle handle, IRequestParameterReadWrite param, String funcCd, String agingSbtCd, String agingTgValue, String lastUpdDtmBf) throws RequestParameterException, SCException
	{
		//***************************************************
		// SCへの上りマッピング
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		
		// ＫＥＹ＿エイジング種別コード
		inMap.put(EZM0111E010CBSMsg.AGING_SBT_CD, agingSbtCd);
		// ＫＥＹ＿エイジング対象値
		inMap.put(EZM0111E010CBSMsg.AGING_TG_VALUE, agingTgValue);
		// 更新前最終年月日時分秒
		inMap.put(EZM0111E010CBSMsg.LAST_UPD_DTM_BF, lastUpdDtmBf);
		
		HashMap<String, Object> paramMap = JCKBPCommon.createScParam(param, EZM0111E010CBSMsg.class , inMap, funcCd);
		
		//***************************************************
		// SC呼出実行
		//***************************************************
		printDebugLog("エイジング削除SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("エイジング削除SC呼び出し完了" + result);
		
		return result;
	}
	
	/**
	 * 異動予約異動予約状態変更SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param funcCd 機能コード
	 * @param idoRsvNo 異動予約番号
	 * @param idoRsvClYmd 異動予約取消年月日
	 * @param idoRsvStatCd 異動予約状態コード
	 * @param updDtmBf 更新年月日時分秒(更新前)
	 * @return SC実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	private Map<?, ?> callEKK1681C010(SessionHandle handle, IRequestParameterReadWrite param, String funcCd, String idoRsvNo, String idoRsvClYmd, String idoRsvStatCd, String updDtmBf) throws RequestParameterException, SCException
	{
		//***************************************************
		// SCへの上りマッピング
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		
		// 異動予約番号
		inMap.put(EKK1681C010CBSMsg.IDO_RSV_NO, idoRsvNo);
		// 異動予約取消年月日
		inMap.put(EKK1681C010CBSMsg.IDO_RSV_CL_YMD, idoRsvClYmd);
		// 異動予約状態コード
		inMap.put(EKK1681C010CBSMsg.IDO_RSV_STAT_CD, idoRsvStatCd);
		// 更新年月日時分秒(更新前)
		inMap.put(EKK1681C010CBSMsg.UPD_DTM_BF, updDtmBf);
		
		HashMap<String, Object> paramMap = JCKBPCommon.createScParam(param, EKK1681C010CBSMsg.class , inMap, funcCd);
		
		//***************************************************
		// SC呼出実行
		//***************************************************
		printDebugLog("異動予約異動予約状態変更SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMap);
		printDebugLog("異動予約異動予約状態変更SC呼び出し完了" + result);
		
		return result;
	}
	
	/**
	 * 異動予約登録SC呼出。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param funcCd 機能コード
	 * @param paramMap 入力パラメータマップ
	 * @return SC実行結果
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	private Map<?, ?> callEKK1681D010(SessionHandle handle, IRequestParameterReadWrite param, String funcCd, Map<String, Object> paramMap) throws RequestParameterException, SCException
	{
		// メール受信設定リスト
		List<Map<String, String>> mailRcvSetteList = (List<Map<String, String>>)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.MAIL_RCV_SETTE_LIST);
		
		//***************************************************
		// SCへの上りマッピング 
		//***************************************************
		Map<Object, Object> inMap = new HashMap<Object, Object>();
		
		// 異動区分
		inMap.put(EKK1681D010CBSMsg.IDO_DIV, IDO_DIV_00089);
		// 異動予約詳細コード
		inMap.put(EKK1681D010CBSMsg.IDO_RSV_DTL_CD, IDO_RSV_DTL_CD_031);
		// 予約適用年月日
		inMap.put(EKK1681D010CBSMsg.RSV_APLY_YMD, "20991231");
		// 異動予約状態コード
		inMap.put(EKK1681D010CBSMsg.IDO_RSV_STAT_CD, IDO_RSV_STAT_CD_04);
		// SYSID
		inMap.put(EKK1681D010CBSMsg.SYSID, (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SYSID));
		// パラメータ1
		inMap.put(EKK1681D010CBSMsg.PARAMETER_1, "01");
		// パラメータ2
		inMap.put(EKK1681D010CBSMsg.PARAMETER_2, "3");
		// パラメータ3
		inMap.put(EKK1681D010CBSMsg.PARAMETER_3, (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SYSID));
		// パラメータ4
		inMap.put(EKK1681D010CBSMsg.PARAMETER_4, (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.EOID));
		// パラメータ5
		inMap.put(EKK1681D010CBSMsg.PARAMETER_5, (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.EOID_PW));
		// パラメータ6
		inMap.put(EKK1681D010CBSMsg.PARAMETER_6, (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SEI));
		// パラメータ7
		inMap.put(EKK1681D010CBSMsg.PARAMETER_7, (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.NM));
		// パラメータ8
		inMap.put(EKK1681D010CBSMsg.PARAMETER_8, (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.KANA_SEI));
		// パラメータ9
		inMap.put(EKK1681D010CBSMsg.PARAMETER_9, (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.KANA_NM));
		// パラメータ10
		inMap.put(EKK1681D010CBSMsg.PARAMETER_10, (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SEX));
		// パラメータ11
		inMap.put(EKK1681D010CBSMsg.PARAMETER_11, (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.PCD));
		// パラメータ12
		inMap.put(EKK1681D010CBSMsg.PARAMETER_12, (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.AD_STATE_CITY));
		// パラメータ13
		inMap.put(EKK1681D010CBSMsg.PARAMETER_13, (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.AD_OTHER));
		// パラメータ14
		inMap.put(EKK1681D010CBSMsg.PARAMETER_14, (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.AD_MANSION));
		// パラメータ15
		inMap.put(EKK1681D010CBSMsg.PARAMETER_15, (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.TELNO));
		// パラメータ16
		inMap.put(EKK1681D010CBSMsg.PARAMETER_16, (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.BIRTHD));
		// パラメータ17
		inMap.put(EKK1681D010CBSMsg.PARAMETER_17, (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.RRKS_MLAD));
		// パラメータ18
		inMap.put(EKK1681D010CBSMsg.PARAMETER_18, (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.CHGECHU_MLAD));
		// パラメータ19
		inMap.put(EKK1681D010CBSMsg.PARAMETER_19, (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.PWD_REMINDER_QS_CD));
		// パラメータ20
		inMap.put(EKK1681D010CBSMsg.PARAMETER_20, (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.PWD_REMINDER_ANS));
		// パラメータ21
		inMap.put(EKK1681D010CBSMsg.PARAMETER_21, (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.NKNAME));
		// パラメータ22
		inMap.put(EKK1681D010CBSMsg.PARAMETER_22, (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.ISP_KSSAI_SVC_KEI_NO));
		// パラメータ23
		inMap.put(EKK1681D010CBSMsg.PARAMETER_23, (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.SVC_KEI_NO));
		// パラメータ24
		inMap.put(EKK1681D010CBSMsg.PARAMETER_24, (String)paramMap.get(CKSV9022_CKSV9022OP_CKSV902201CC.TSYRN_SVKEI_CD_SEQ));
		// パラメータ25
		inMap.put(EKK1681D010CBSMsg.PARAMETER_25, (String)mailRcvSetteList.get(0).get(CKSV9022_CKSV9022OP_CKSV902201CC_mail_rcv_sette_list.KMK_NUMBER));
		// パラメータ26
		inMap.put(EKK1681D010CBSMsg.PARAMETER_26, (String)mailRcvSetteList.get(0).get(CKSV9022_CKSV9022OP_CKSV902201CC_mail_rcv_sette_list.RCV_DIV));
		// パラメータ27
		inMap.put(EKK1681D010CBSMsg.PARAMETER_27, (String)mailRcvSetteList.get(1).get(CKSV9022_CKSV9022OP_CKSV902201CC_mail_rcv_sette_list.KMK_NUMBER));
		// パラメータ28
		inMap.put(EKK1681D010CBSMsg.PARAMETER_28, (String)mailRcvSetteList.get(1).get(CKSV9022_CKSV9022OP_CKSV902201CC_mail_rcv_sette_list.RCV_DIV));
		// パラメータ29
		inMap.put(EKK1681D010CBSMsg.PARAMETER_29, (String)mailRcvSetteList.get(2).get(CKSV9022_CKSV9022OP_CKSV902201CC_mail_rcv_sette_list.KMK_NUMBER));
		// パラメータ30
		inMap.put(EKK1681D010CBSMsg.PARAMETER_30, (String)mailRcvSetteList.get(2).get(CKSV9022_CKSV9022OP_CKSV902201CC_mail_rcv_sette_list.RCV_DIV));
		// パラメータ31
		inMap.put(EKK1681D010CBSMsg.PARAMETER_31, (String)mailRcvSetteList.get(3).get(CKSV9022_CKSV9022OP_CKSV902201CC_mail_rcv_sette_list.KMK_NUMBER));
		// パラメータ32
		inMap.put(EKK1681D010CBSMsg.PARAMETER_32, (String)mailRcvSetteList.get(3).get(CKSV9022_CKSV9022OP_CKSV902201CC_mail_rcv_sette_list.RCV_DIV));
		// パラメータ33
		inMap.put(EKK1681D010CBSMsg.PARAMETER_33, (String)mailRcvSetteList.get(4).get(CKSV9022_CKSV9022OP_CKSV902201CC_mail_rcv_sette_list.KMK_NUMBER));
		// パラメータ34
		inMap.put(EKK1681D010CBSMsg.PARAMETER_34, (String)mailRcvSetteList.get(4).get(CKSV9022_CKSV9022OP_CKSV902201CC_mail_rcv_sette_list.RCV_DIV));
		
		HashMap<String, Object> paramMapTemp = JCKBPCommon.createScParam(param, EKK1681D010CBSMsg.class , inMap, funcCd);
		
		//***************************************************
		// SC呼出実行
		//***************************************************
		printDebugLog("異動予約登録SC呼び出し開始");
		Map<?, ?> result = scCallRun(param, handle, paramMapTemp);
		printDebugLog("異動予約登録SC呼び出し完了" + result);
		
		return result;
	}
	
	/**
	 * お客様情報仮登録データ削除。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param nowCustMap お客様情報マップ
	 * @param sysid SYSID
	 * @param updDtmSysid 顧客最終更新年月日時分秒
	 * @param opeDate 運用年月日
	 * @param hasChgMlad 変更手続き中メールアドレスが有無
	 * @return 結果Map
	 * @throws RequestParameterException
	 * @throws SCException
	 */
// ▽▽▽ IT1-2017-0000107 Modify START
//	private Map<String, String> delKariCustInfo(SessionHandle handle, IRequestParameterReadWrite param, Map<String, Object> nowCustMap, String sysid, String updDtmSysid, String opeDate) throws RequestParameterException, SCException
	private Map<String, String> delKariCustInfo(SessionHandle handle, IRequestParameterReadWrite param, Map<String, Object> nowCustMap, String sysid, String updDtmSysid, String opeDate, boolean hasChgMlad) throws RequestParameterException, SCException
// △△△ IT1-2017-0000107 Modify END
	{
		// リターンコード初期化
		String returnCd = PMP_NORMAL_END;
		// 異動予約から取得する値
		String idoRsvNo = "";
		String idoRsvUpdDtm = "";
		String idoRsvEoid = "";
		String idoRsvChgechuMlad = "";
		String idoRsvNkname = "";
		// お客様情報照会(PMP連携用)で取得する値
		String rrksNoChgechuMlad = "";
		
		// 異動予約一覧照会
		Map result = callEKK1681B001(handle, param, "1", IDO_DIV_00089, IDO_RSV_DTL_CD_031, IDO_RSV_STAT_CD_04, sysid);
		if (isSuccess(result))
		{
			CAANMsg[] dataList = getResultMsgList(result, EKK1681B001CBSMsg.EKK1681B001CBSMSG1LIST);
			if (dataList != null && dataList.length > 0)
			{
				// 異動予約番号
				idoRsvNo = dataList[0].getString(EKK1681B001CBSMsg1List.IDO_RSV_NO);
				
				// 異動予約一意照会
				result = callEKK1681A010(handle, param, "1", idoRsvNo);
				if (isSuccess(result))
				{
					CAANMsg idoRsvMsg = getResultMsgList(result, EKK1681A010CBSMsg.EKK1681A010CBSMSG1LIST)[0];
					
					// 更新年月日時分秒
					idoRsvUpdDtm = idoRsvMsg.getString(EKK1681A010CBSMsg1List.UPD_DTM);
					// eoID
					idoRsvEoid = idoRsvMsg.getString(EKK1681A010CBSMsg1List.PARAMETER_4);
					// 変更手続き中メールアドレス
					idoRsvChgechuMlad = idoRsvMsg.getString(EKK1681A010CBSMsg1List.PARAMETER_18);
					// ニックネーム
					idoRsvNkname = idoRsvMsg.getString(EKK1681A010CBSMsg1List.PARAMETER_21);
				}
				else
				{
					returnCd = PMP_ERR_OTHER;
				}
			}
		}
		else
		{
			returnCd = PMP_ERR_OTHER;
		}
		
		// 連絡先取消(予約手続中レコード)
// ▽▽▽ IT1-2017-0000107 Modify START
//		if (PMP_NORMAL_END.equals(returnCd) && !JCKBPCommon.isNullOrBlank(idoRsvNo))
		
		// 変更手続き中メールアドレスが設定されている場合へ条件を変更
		if (PMP_NORMAL_END.equals(returnCd) && !JCKBPCommon.isNullOrBlank(nowCustMap.get(ECK0011B050CBSMsg1List.CHGECHU_MLAD)))
// △△△ IT1-2017-0000107 Modify END
		{
			// お客様情報照会(PMP連携用)で取得した変更手続中メールアドレス
			String chgechuMladTemp = (String)nowCustMap.get(ECK0011B050CBSMsg1List.CHGECHU_MLAD);
			// お客様情報照会(PMP連携用)で取得した連絡先番号(変更手続中メールアドレス)
			rrksNoChgechuMlad = (String)nowCustMap.get(ECK0011B050CBSMsg1List.RRKS_NO_CHGECHU_MLAD);
			// お客様情報照会(PMP連携用)で取得した世代登録年月日時分秒(変更手続中メールアドレス)
			String geneAddDtmChgechuMlad = (String)nowCustMap.get(ECK0011B050CBSMsg1List.GENE_ADD_DTM_CHGECHU_MLAD);
			
// ▽▽▽ IT1-2017-0000107 Modify START
			// 「異動予約一意照会」で取得した手続き変更中メールアドレスと「お客様情報照会」で取得した変更手続き中メールアドレスが一致する場合
			// もしくは、新たに仮登録メールアドレスが設定される場合
//			if (!JCKBPCommon.isNullOrBlank(idoRsvChgechuMlad) && !JCKBPCommon.isNullOrBlank(chgechuMladTemp) && idoRsvChgechuMlad.equals(chgechuMladTemp))
//			{
			if (hasChgMlad || (!JCKBPCommon.isNullOrBlank(idoRsvChgechuMlad) && !JCKBPCommon.isNullOrBlank(chgechuMladTemp) && idoRsvChgechuMlad.equals(chgechuMladTemp)))
			{
// △△△ IT1-2017-0000107 Modify END
				// 連絡先取消(予約手続中レコード)
				result = callECK0201C060(handle, param, "3", rrksNoChgechuMlad, geneAddDtmChgechuMlad, updDtmSysid);
				if (isSuccess(result))
				{
					updDtmSysid = getResultString(result, ECK0201C060CBSMsg.UPD_DTM);
// ▽▽▽ IT1-2017-0000107 ADD START
					// 連絡先取消(予約確定レコード)
					
					// 連絡先(コンテンツ用メールアドレス)一覧照会
					result = callECK0201B002(handle, param, "1", sysid);
					if (isSuccess(result))
					{
						CAANMsg[] dataList = getResultMsgList(result, ECK0201B002CBSMsg.ECK0201B002CBSMSG1LIST);
						if (dataList != null && dataList.length > 0)
						{
							// メールアドレス
							String mlad = dataList[0].getString(ECK0201B002CBSMsg1List.MLAD);
							// 連絡先番号
							String rrksNo = dataList[0].getString(ECK0201B002CBSMsg1List.RRKS_NO);
							// 世代登録年月日時分秒
							String geneAddDtm = dataList[0].getString(ECK0201B002CBSMsg1List.GENE_ADD_DTM);
							
							if (!JCKBPCommon.isNullOrBlank(mlad) && mlad.equals(chgechuMladTemp) && rrksNoChgechuMlad.equals(rrksNo))
							{
								// 連絡先取消(予約確定レコード)
								result = callECK0201C060(handle, param, "3", rrksNo, geneAddDtm, updDtmSysid);
								if (isSuccess(result))
								{
									updDtmSysid = getResultString(result, ECK0201C060CBSMsg.UPD_DTM);
								}
								else
								{
									returnCd = PMP_ERR_OTHER;   // その他のエラー
								}
							}
						}
					}
					else
					{
						returnCd = PMP_ERR_OTHER;
					}
// △△△ IT1-2017-0000107 ADD END
				}
				else
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}
			}
		}
		
// ▽▽▽ IT1-2017-0000107 DEL START
//		// 連絡先取消(予約確定レコード)
//		if (PMP_NORMAL_END.equals(returnCd) && !JCKBPCommon.isNullOrBlank(idoRsvNo))
//		{
//			// 連絡先(コンテンツ用メールアドレス)一覧照会
//			result = callECK0201B002(handle, param, "1", sysid);
//			if (isSuccess(result))
//			{
//				CAANMsg[] dataList = getResultMsgList(result, ECK0201B002CBSMsg.ECK0201B002CBSMSG1LIST);
//				if (dataList != null && dataList.length > 0)
//				{
//					// メールアドレス
//					String mlad = dataList[0].getString(ECK0201B002CBSMsg1List.MLAD);
//					// 連絡先番号
//					String rrksNo = dataList[0].getString(ECK0201B002CBSMsg1List.RRKS_NO);
//					// 世代登録年月日時分秒
//					String geneAddDtm = dataList[0].getString(ECK0201B002CBSMsg1List.GENE_ADD_DTM);
//					
//					// 「異動予約一意照会」で取得した手続き変更中メールアドレスと「連絡先(コンテンツ用メールアドレス)一覧照会」で取得した連絡先メールアドレスが一致する場合
//					// かつ「お客様情報照会(PMP連携用)」で取得した連絡先番号(変更手続中メールアドレス)と「連絡先(コンテンツ用メールアドレス)一覧照会」で取得した連絡先番号が一致する場合
//					if (!JCKBPCommon.isNullOrBlank(idoRsvChgechuMlad) && !JCKBPCommon.isNullOrBlank(mlad) && idoRsvChgechuMlad.equals(mlad) && rrksNoChgechuMlad.equals(rrksNo))
//					{
//						// 連絡先取消(予約確定レコード)
//						result = callECK0201C060(handle, param, "3", rrksNo, geneAddDtm, updDtmSysid);
//						if (isSuccess(result))
//						{
//							updDtmSysid = getResultString(result, ECK0201C060CBSMsg.UPD_DTM);
//						}
//						else
//						{
//							returnCd = PMP_ERR_OTHER;   // その他のエラー
//						}
//					}
//				}
//			}
//			else
//			{
//				returnCd = PMP_ERR_OTHER;
//			}
//		}
// △△△ IT1-2017-0000107 DEL END
		
		// エイジング物理削除(eoID)
		if (PMP_NORMAL_END.equals(returnCd) && !JCKBPCommon.isNullOrBlank(idoRsvNo))
		{
			// お客様情報照会で取得したeoID
			String eoidTemp = (String)nowCustMap.get(ECK0011B050CBSMsg1List.EOID);
			
			// 「異動予約一意照会」で取得したeoIDと「お客様情報照会」で取得したeoIDが異なる場合
			if (!idoRsvEoid.equals(eoidTemp))
			{
				// エイジング一覧照会
				result = callEZM0111B040(handle, param, "1", AGING_SBT_CD_EOID, idoRsvEoid);
				if (isSuccess(result))
				{
					CAANMsg[] dataList = getResultMsgList(result, EZM0111B040CBSMsg.EZM0111B040CBSMSG1LIST);
					if (dataList != null && dataList.length > 0)
					{
						// 更新年月日時分秒
						String updDtm = dataList[0].getString(EZM0111B040CBSMsg1List.UPD_DTM);
						
						// エイジング物理削除
						result = callEZM0111E010(handle, param, "1", AGING_SBT_CD_EOID, idoRsvEoid, updDtm);
						if (isError(result))
						{
							returnCd = PMP_ERR_OTHER;   // その他のエラー
						}
					}
				}
				else
				{
					returnCd = PMP_ERR_OTHER;
				}
			}
		}
		
		// エイジング物理削除(ニックネーム)
		if (PMP_NORMAL_END.equals(returnCd) && !JCKBPCommon.isNullOrBlank(idoRsvNo))
		{
			// 「異動予約一意照会」で取得したニックネームが空ではない場合
			if (!JCKBPCommon.isNullOrBlank(idoRsvNkname))
			{
				// エイジング一覧照会
				result = callEZM0111B040(handle, param, "1", AGING_SBT_CD_NKNAME, idoRsvNkname);
				if (isSuccess(result))
				{
					CAANMsg[] dataList = getResultMsgList(result, EZM0111B040CBSMsg.EZM0111B040CBSMSG1LIST);
					if (dataList != null && dataList.length > 0)
					{
						// 更新年月日時分秒
						String updDtm = dataList[0].getString(EZM0111B040CBSMsg1List.UPD_DTM);
						
						// エイジング物理削除
						result = callEZM0111E010(handle, param, "1", AGING_SBT_CD_NKNAME, idoRsvNkname, updDtm);
						if (isError(result))
						{
							returnCd = PMP_ERR_OTHER;   // その他のエラー
						}
					}
				}
				else
				{
					returnCd = PMP_ERR_OTHER;
				}
			}
		}
		
		// 異動予約取消
		if (PMP_NORMAL_END.equals(returnCd) && !JCKBPCommon.isNullOrBlank(idoRsvNo))
		{
			result = callEKK1681C010(handle, param, "1", idoRsvNo, opeDate, IDO_RSV_STAT_CD_02, idoRsvUpdDtm);
			if (isError(result))
			{
				returnCd = PMP_ERR_OTHER;   // その他のエラー
			}
		}
		
		Map<String, String> resMap = new HashMap<String, String>();
		resMap.put("upd_dtm_sysid", updDtmSysid);
		resMap.put("return_cd", returnCd);
		return resMap;
	}
	
	/**
	 * お客様情報仮登録。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param inMap 入力パラメータマップ
	 * @param nowCustMap お客様情報マップ
	 * @param sysid SYSID
	 * @param updDtmSysid 顧客最終更新年月日時分秒
	 * @param trgtMlad 変更手続き中メールアドレス
	 * @param eoid eoID
	 * @param isEoidChge eoID変更有無
	 * @param nkname ニックネーム
	 * @param isNknmChge ニックネーム変更有無
	 * @param opeDate 運用年月日
	 * @return 結果Map
	 * @throws Throwable
	 */
	private Map<String, String> regKariCustInfo(SessionHandle handle, IRequestParameterReadWrite param, Map<String, Object> inMap, Map<String, Object> nowCustMap, String sysid, String updDtmSysid, String trgtMlad, String eoid, boolean isEoidChge, String nkname, boolean isNknmChge, String opeDate) throws Throwable
	{
		// リターンコード初期化
		String returnCd = PMP_NORMAL_END;
		
		// 異動予約登録
		Map result = callEKK1681D010(handle, param, "1", inMap);
		if (isError(result))
		{
			returnCd = PMP_ERR_OTHER;   // その他のエラー
		}
		
		// コンテンツ系メールアドレスの予約確定レコードがあれば、予約手続中レコードのみ登録。
		// コンテンツ系メールアドレスの予約確定レコードがなければ、予約確定レコードと予約手続中レコードを登録。
		if (PMP_NORMAL_END.equals(returnCd))
		{
			if (!JCKBPCommon.isNullOrBlank(trgtMlad))
			{
				// 連絡先(メールアドレス)登録更新
				Map tmpResult = addUpdRrksMlad(handle, param, opeDate, "2", sysid, trgtMlad, updDtmSysid, opeDate);
				result = (Map)tmpResult.get("result");
				if (isSuccess(result))
				{
					updDtmSysid = (String)tmpResult.get("upd_dtm_sysid");
				}
				else
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}
			}
		}
		
		// eoIDエイジング登録
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// eoID変更あり
			if (isEoidChge)
			{
				// 新eoIDエイジング登録
				result = callEZM0111D010(handle, param, AGING_SBT_CD_EOID, eoid);
				if (isError(result))
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}
			}
		}
		
		// ニックネームエイジング登録
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// ニックネームのエイジングはコンテンツ解約時に削除されているため
			// 仮登録時にはニックネーム変更有無にかかわらず、入力されたニックネームをエイジングに登録する
			if (!JCKBPCommon.isNullOrBlank(nkname))
			{
				// 新ニックネームエイジング登録
				result = callEZM0111D010(handle, param, AGING_SBT_CD_NKNAME, nkname);
				if (isError(result))
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}
			}
		}
		
		Map<String, String> resMap = new HashMap<String, String>();
		resMap.put("upd_dtm_sysid", updDtmSysid);
		resMap.put("return_cd", returnCd);
		return resMap;
	}
	// ANK-3194-00-00 ADD END

	// ANK-3612-00-00 ADD START
	/**
	 * コンテンツ住所分割開始位置を取得します。
	 * @param contAdBnktStaPst コンテンツ住所分割開始位置
	 * @param adStateCity 住所（都道府県/市区町村）
	 * @return コンテンツ住所分割開始位置
	 */
	private String getContAdBnktStaPst(String contAdBnktStaPst, String adStateCity)
	{
		// お客様情報変更画面(CKW00401)の画面表示同様に開始位置は5より小さく16より大きい値は設定しない
		// ※分割開始位置は5〜17までの値となる

		int len = adStateCity.length();
		if (contAdBnktStaPst != null && !"".equals(contAdBnktStaPst))
		{
			int start = Integer.parseInt(contAdBnktStaPst);
			if (start < 5 && len < 5)
			{
				return "5";
			}
			else if (start < 5 && len < 17)
			{
				return String.valueOf(len + 1);
			}
			else if (start < 5 && len > MAX_LEN_STATE_CITY)
			{
				return "17";
			}
		}
		else
		{
			if (len < 17)
			{
				return String.valueOf(len + 1);
			}
			else
			{
				return "17";
			}
		}

		return contAdBnktStaPst;
	}

	/**
	 * 指定された項目の値を取得します。
	 * <br>
	 * @param map 指定された項目を持つマップ
	 * @param key マップのキー
	 * @param defaultVal デフォルト値
	 * @return 指定された項目の値。設定されていない場合はデフォルト値
	 */
	private String getValue(Map<String, Object> map, String key, String defaultVal)
	{
		if (map != null && map.containsKey(key))
		{
			return JKKStringUtil.nullToBlank((String)map.get(key));
		}

		return JKKStringUtil.nullToBlank(defaultVal);
	}
	// ANK-3612-00-00 ADD END
}
